diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol/DVNOptions.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol/DVNOptions.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol/DVNOptions.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol/DVNOptions.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol/DVNOptions.json deleted file mode 100644 index 8961b4c57..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "DVNOptions", - "sourceName": "@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "abi": [ - { - "inputs": [], - "name": "DVN_InvalidDVNIdx", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "cursor", - "type": "uint256" - } - ], - "name": "DVN_InvalidDVNOptions", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e53dfb044826513d808ed804ea23b198e174aff63d6855b9972cb9d192b02ea964736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e53dfb044826513d808ed804ea23b198e174aff63d6855b9972cb9d192b02ea964736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol/OApp.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol/OApp.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol/OApp.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol/OApp.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol/OApp.json deleted file mode 100644 index 5ebc756c0..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol/OApp.json +++ /dev/null @@ -1,405 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OApp", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "abi": [ - { - "inputs": [], - "name": "InvalidDelegate", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidEndpointCall", - "type": "error" - }, - { - "inputs": [], - "name": "LzTokenUnavailable", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "NoPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "msgValue", - "type": "uint256" - } - ], - "name": "NotEnoughNative", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "OnlyEndpoint", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - } - ], - "name": "OnlyPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "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": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "name": "PeerSet", - "type": "event" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - } - ], - "name": "allowInitializePath", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "endpoint", - "outputs": [ - { - "internalType": "contract ILayerZeroEndpointV2", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_sender", - "type": "address" - } - ], - "name": "isComposeMsgSender", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceive", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "nextNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oAppVersion", - "outputs": [ - { - "internalType": "uint64", - "name": "senderVersion", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "receiverVersion", - "type": "uint64" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "peers", - "outputs": [ - { - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "name": "setDelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "setPeer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol/OAppCore.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol/OAppCore.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol/OAppCore.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol/OAppCore.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol/OAppCore.json deleted file mode 100644 index 77964fd74..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol/OAppCore.json +++ /dev/null @@ -1,222 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OAppCore", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "abi": [ - { - "inputs": [], - "name": "InvalidDelegate", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidEndpointCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "NoPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - } - ], - "name": "OnlyPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "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": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "name": "PeerSet", - "type": "event" - }, - { - "inputs": [], - "name": "endpoint", - "outputs": [ - { - "internalType": "contract ILayerZeroEndpointV2", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oAppVersion", - "outputs": [ - { - "internalType": "uint64", - "name": "senderVersion", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "receiverVersion", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "peers", - "outputs": [ - { - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "name": "setDelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "setPeer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol/OAppReceiver.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol/OAppReceiver.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol/OAppReceiver.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol/OAppReceiver.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol/OAppReceiver.json deleted file mode 100644 index d660c4998..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +++ /dev/null @@ -1,389 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OAppReceiver", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "abi": [ - { - "inputs": [], - "name": "InvalidDelegate", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidEndpointCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "NoPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "OnlyEndpoint", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - } - ], - "name": "OnlyPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "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": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "name": "PeerSet", - "type": "event" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - } - ], - "name": "allowInitializePath", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "endpoint", - "outputs": [ - { - "internalType": "contract ILayerZeroEndpointV2", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_sender", - "type": "address" - } - ], - "name": "isComposeMsgSender", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceive", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "nextNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oAppVersion", - "outputs": [ - { - "internalType": "uint64", - "name": "senderVersion", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "receiverVersion", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "peers", - "outputs": [ - { - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "name": "setDelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "setPeer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol/OAppSender.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol/OAppSender.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol/OAppSender.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol/OAppSender.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol/OAppSender.json deleted file mode 100644 index ee20ea056..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol/OAppSender.json +++ /dev/null @@ -1,238 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OAppSender", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "abi": [ - { - "inputs": [], - "name": "InvalidDelegate", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidEndpointCall", - "type": "error" - }, - { - "inputs": [], - "name": "LzTokenUnavailable", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "NoPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "msgValue", - "type": "uint256" - } - ], - "name": "NotEnoughNative", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - } - ], - "name": "OnlyPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "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": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "name": "PeerSet", - "type": "event" - }, - { - "inputs": [], - "name": "endpoint", - "outputs": [ - { - "internalType": "contract ILayerZeroEndpointV2", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oAppVersion", - "outputs": [ - { - "internalType": "uint64", - "name": "senderVersion", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "receiverVersion", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "peers", - "outputs": [ - { - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "name": "setDelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "setPeer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json deleted file mode 100644 index 949240529..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IOAppCore", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "abi": [ - { - "inputs": [], - "name": "InvalidDelegate", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidEndpointCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "NoPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - } - ], - "name": "OnlyPeer", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "name": "PeerSet", - "type": "event" - }, - { - "inputs": [], - "name": "endpoint", - "outputs": [ - { - "internalType": "contract ILayerZeroEndpointV2", - "name": "iEndpoint", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oAppVersion", - "outputs": [ - { - "internalType": "uint64", - "name": "senderVersion", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "receiverVersion", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "peers", - "outputs": [ - { - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "name": "setDelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "setPeer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json deleted file mode 100644 index 35699b1ab..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IOAppMsgInspector", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "name": "InspectionFailed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "_options", - "type": "bytes" - } - ], - "name": "inspect", - "outputs": [ - { - "internalType": "bool", - "name": "valid", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json deleted file mode 100644 index 8b7da27dc..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IOAppOptionsType3", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "name": "InvalidOptions", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "indexed": false, - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "EnforcedOptionSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "_msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "_extraOptions", - "type": "bytes" - } - ], - "name": "combineOptions", - "outputs": [ - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "setEnforcedOptions", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json deleted file mode 100644 index b6f8a0228..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IOAppReceiver", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - } - ], - "name": "allowInitializePath", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_sender", - "type": "address" - } - ], - "name": "isComposeMsgSender", - "outputs": [ - { - "internalType": "bool", - "name": "isSender", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceive", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - } - ], - "name": "nextNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json deleted file mode 100644 index 5265074a6..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OAppOptionsType3", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "name": "InvalidOptions", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "indexed": false, - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "EnforcedOptionSet", - "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" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "_msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "_extraOptions", - "type": "bytes" - } - ], - "name": "combineOptions", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - } - ], - "name": "enforcedOptions", - "outputs": [ - { - "internalType": "bytes", - "name": "enforcedOption", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "setEnforcedOptions", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json deleted file mode 100644 index 29e2b97d8..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OptionsBuilder", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint16", - "name": "optionType", - "type": "uint16" - } - ], - "name": "InvalidOptionType", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "actual", - "type": "uint256" - } - ], - "name": "InvalidSize", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122045eb1cdeb50aa3baa88d3f056dd0bad5eac5edfb7bb8d8e7da631c43e247d13264736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122045eb1cdeb50aa3baa88d3f056dd0bad5eac5edfb7bb8d8e7da631c43e247d13264736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json deleted file mode 100644 index 34c0a4c17..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +++ /dev/null @@ -1,299 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OAppPreCrimeSimulator", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "abi": [ - { - "inputs": [], - "name": "OnlySelf", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "result", - "type": "bytes" - } - ], - "name": "SimulationResult", - "type": "error" - }, - { - "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": "address", - "name": "preCrimeAddress", - "type": "address" - } - ], - "name": "PreCrimeSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "isPeer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - }, - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "address", - "name": "executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct InboundPacket[]", - "name": "_packets", - "type": "tuple[]" - } - ], - "name": "lzReceiveAndRevert", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceiveSimulate", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "oApp", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "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": "address", - "name": "_preCrime", - "type": "address" - } - ], - "name": "setPreCrime", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json deleted file mode 100644 index 0d3ab41c6..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IOAppPreCrimeSimulator", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "abi": [ - { - "inputs": [], - "name": "OnlySelf", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "result", - "type": "bytes" - } - ], - "name": "SimulationResult", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "preCrimeAddress", - "type": "address" - } - ], - "name": "PreCrimeSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "isPeer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - }, - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "address", - "name": "executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct InboundPacket[]", - "name": "_packets", - "type": "tuple[]" - } - ], - "name": "lzReceiveAndRevert", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "oApp", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "preCrime", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_preCrime", - "type": "address" - } - ], - "name": "setPreCrime", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json deleted file mode 100644 index 53b4684d9..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IPreCrime", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "crime", - "type": "bytes" - } - ], - "name": "CrimeFound", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "bytes", - "name": "reason", - "type": "bytes" - } - ], - "name": "InvalidSimulationResult", - "type": "error" - }, - { - "inputs": [], - "name": "OnlyOffChain", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "actual", - "type": "uint256" - } - ], - "name": "PacketOversize", - "type": "error" - }, - { - "inputs": [], - "name": "PacketUnsorted", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "reason", - "type": "bytes" - } - ], - "name": "SimulationFailed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "SimulationResultNotFound", - "type": "error" - }, - { - "inputs": [], - "name": "buildSimulationResult", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "_packets", - "type": "bytes[]" - }, - { - "internalType": "uint256[]", - "name": "_packetMsgValues", - "type": "uint256[]" - } - ], - "name": "getConfig", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "_packets", - "type": "bytes[]" - }, - { - "internalType": "uint256[]", - "name": "_packetMsgValues", - "type": "uint256[]" - }, - { - "internalType": "bytes[]", - "name": "_simulations", - "type": "bytes[]" - } - ], - "name": "preCrime", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "_packets", - "type": "bytes[]" - }, - { - "internalType": "uint256[]", - "name": "_packetMsgValues", - "type": "uint256[]" - } - ], - "name": "simulate", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "uint64", - "name": "major", - "type": "uint64" - }, - { - "internalType": "uint8", - "name": "minor", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol/PacketDecoder.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol/PacketDecoder.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol/PacketDecoder.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol/PacketDecoder.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol/PacketDecoder.json deleted file mode 100644 index 581b687ad..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol/PacketDecoder.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "PacketDecoder", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206d908140f6b8800dabab245389ebbc3ff84f3e6b4a20e48e5fa597532882348864736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206d908140f6b8800dabab245389ebbc3ff84f3e6b4a20e48e5fa597532882348864736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json deleted file mode 100644 index afe7712f4..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json +++ /dev/null @@ -1,1899 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ILayerZeroEndpointV2", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint16", - "name": "index", - "type": "uint16" - } - ], - "name": "ComposeDelivered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint16", - "name": "index", - "type": "uint16" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "message", - "type": "bytes" - } - ], - "name": "ComposeSent", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "newLib", - "type": "address" - } - ], - "name": "DefaultReceiveLibrarySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "oldLib", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - } - ], - "name": "DefaultReceiveLibraryTimeoutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "newLib", - "type": "address" - } - ], - "name": "DefaultSendLibrarySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "delegate", - "type": "address" - } - ], - "name": "DelegateSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "name": "InboundNonceSkipped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newLib", - "type": "address" - } - ], - "name": "LibraryRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "executor", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint16", - "name": "index", - "type": "uint16" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "gas", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "reason", - "type": "bytes" - } - ], - "name": "LzComposeAlert", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "executor", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "indexed": false, - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "gas", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "reason", - "type": "bytes" - } - ], - "name": "LzReceiveAlert", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "LzTokenSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "payloadHash", - "type": "bytes32" - } - ], - "name": "PacketBurnt", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "indexed": false, - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - }, - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "PacketDelivered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "payloadHash", - "type": "bytes32" - } - ], - "name": "PacketNilified", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes", - "name": "encodedPayload", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "options", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "address", - "name": "sendLibrary", - "type": "address" - } - ], - "name": "PacketSent", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "indexed": false, - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - }, - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "payloadHash", - "type": "bytes32" - } - ], - "name": "PacketVerified", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "newLib", - "type": "address" - } - ], - "name": "ReceiveLibrarySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "oldLib", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timeout", - "type": "uint256" - } - ], - "name": "ReceiveLibraryTimeoutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "newLib", - "type": "address" - } - ], - "name": "SendLibrarySet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "_nonce", - "type": "uint64" - }, - { - "internalType": "bytes32", - "name": "_payloadHash", - "type": "bytes32" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - } - ], - "name": "clear", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "uint16", - "name": "_index", - "type": "uint16" - } - ], - "name": "composeQueue", - "outputs": [ - { - "internalType": "bytes32", - "name": "messageHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "defaultReceiveLibrary", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "defaultReceiveLibraryTimeout", - "outputs": [ - { - "internalType": "address", - "name": "lib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "defaultSendLibrary", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "eid", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "address", - "name": "_lib", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "_configType", - "type": "uint32" - } - ], - "name": "getConfig", - "outputs": [ - { - "internalType": "bytes", - "name": "config", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "getReceiveLibrary", - "outputs": [ - { - "internalType": "address", - "name": "lib", - "type": "address" - }, - { - "internalType": "bool", - "name": "isDefault", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegisteredLibraries", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getSendContext", - "outputs": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "getSendLibrary", - "outputs": [ - { - "internalType": "address", - "name": "lib", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - } - ], - "name": "inboundNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "_nonce", - "type": "uint64" - } - ], - "name": "inboundPayloadHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_receiver", - "type": "address" - } - ], - "name": "initializable", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "isDefaultSendLibrary", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_lib", - "type": "address" - } - ], - "name": "isRegisteredLibrary", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isSendingMessage", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "isSupportedEid", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_lib", - "type": "address" - } - ], - "name": "isValidReceiveLibrary", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - } - ], - "name": "lazyInboundNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "uint16", - "name": "_index", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzCompose", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceive", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "lzToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "nativeToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_receiver", - "type": "bytes32" - } - ], - "name": "nextGuid", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "_nonce", - "type": "uint64" - }, - { - "internalType": "bytes32", - "name": "_payloadHash", - "type": "bytes32" - } - ], - "name": "nilify", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_receiver", - "type": "bytes32" - } - ], - "name": "outboundNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "receiver", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "payInLzToken", - "type": "bool" - } - ], - "internalType": "struct MessagingParams", - "name": "_params", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_sender", - "type": "address" - } - ], - "name": "quote", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "receiveLibraryTimeout", - "outputs": [ - { - "internalType": "address", - "name": "lib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_lib", - "type": "address" - } - ], - "name": "registerLibrary", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "receiver", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "payInLzToken", - "type": "bool" - } - ], - "internalType": "struct MessagingParams", - "name": "_params", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_refundAddress", - "type": "address" - } - ], - "name": "send", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "fee", - "type": "tuple" - } - ], - "internalType": "struct MessagingReceipt", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "uint16", - "name": "_index", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - } - ], - "name": "sendCompose", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "address", - "name": "_lib", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "configType", - "type": "uint32" - }, - { - "internalType": "bytes", - "name": "config", - "type": "bytes" - } - ], - "internalType": "struct SetConfigParam[]", - "name": "_params", - "type": "tuple[]" - } - ], - "name": "setConfig", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_newLib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_gracePeriod", - "type": "uint256" - } - ], - "name": "setDefaultReceiveLibrary", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_lib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_expiry", - "type": "uint256" - } - ], - "name": "setDefaultReceiveLibraryTimeout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_newLib", - "type": "address" - } - ], - "name": "setDefaultSendLibrary", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "name": "setDelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_lzToken", - "type": "address" - } - ], - "name": "setLzToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_newLib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_gracePeriod", - "type": "uint256" - } - ], - "name": "setReceiveLibrary", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_lib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_expiry", - "type": "uint256" - } - ], - "name": "setReceiveLibraryTimeout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_newLib", - "type": "address" - } - ], - "name": "setSendLibrary", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "_nonce", - "type": "uint64" - } - ], - "name": "skip", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_receiver", - "type": "address" - } - ], - "name": "verifiable", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_payloadHash", - "type": "bytes32" - } - ], - "name": "verify", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json deleted file mode 100644 index de4eaf06f..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ILayerZeroReceiver", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - } - ], - "name": "allowInitializePath", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceive", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - } - ], - "name": "nextNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol/IMessageLib.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol/IMessageLib.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol/IMessageLib.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol/IMessageLib.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol/IMessageLib.json deleted file mode 100644 index 968e49ced..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol/IMessageLib.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IMessageLib", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_configType", - "type": "uint32" - } - ], - "name": "getConfig", - "outputs": [ - { - "internalType": "bytes", - "name": "config", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "isSupportedEid", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "messageLibType", - "outputs": [ - { - "internalType": "enum MessageLibType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "configType", - "type": "uint32" - }, - { - "internalType": "bytes", - "name": "config", - "type": "bytes" - } - ], - "internalType": "struct SetConfigParam[]", - "name": "_config", - "type": "tuple[]" - } - ], - "name": "setConfig", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "uint64", - "name": "major", - "type": "uint64" - }, - { - "internalType": "uint8", - "name": "minor", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "endpointVersion", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol/IMessageLibManager.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol/IMessageLibManager.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol/IMessageLibManager.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol/IMessageLibManager.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol/IMessageLibManager.json deleted file mode 100644 index 3186df602..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol/IMessageLibManager.json +++ /dev/null @@ -1,646 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IMessageLibManager", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "newLib", - "type": "address" - } - ], - "name": "DefaultReceiveLibrarySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "oldLib", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - } - ], - "name": "DefaultReceiveLibraryTimeoutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "newLib", - "type": "address" - } - ], - "name": "DefaultSendLibrarySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newLib", - "type": "address" - } - ], - "name": "LibraryRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "newLib", - "type": "address" - } - ], - "name": "ReceiveLibrarySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "oldLib", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "timeout", - "type": "uint256" - } - ], - "name": "ReceiveLibraryTimeoutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "address", - "name": "newLib", - "type": "address" - } - ], - "name": "SendLibrarySet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "defaultReceiveLibrary", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "defaultReceiveLibraryTimeout", - "outputs": [ - { - "internalType": "address", - "name": "lib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "defaultSendLibrary", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "address", - "name": "_lib", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "_configType", - "type": "uint32" - } - ], - "name": "getConfig", - "outputs": [ - { - "internalType": "bytes", - "name": "config", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "getReceiveLibrary", - "outputs": [ - { - "internalType": "address", - "name": "lib", - "type": "address" - }, - { - "internalType": "bool", - "name": "isDefault", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegisteredLibraries", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "getSendLibrary", - "outputs": [ - { - "internalType": "address", - "name": "lib", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "isDefaultSendLibrary", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_lib", - "type": "address" - } - ], - "name": "isRegisteredLibrary", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "isSupportedEid", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_lib", - "type": "address" - } - ], - "name": "isValidReceiveLibrary", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "receiveLibraryTimeout", - "outputs": [ - { - "internalType": "address", - "name": "lib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_lib", - "type": "address" - } - ], - "name": "registerLibrary", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "address", - "name": "_lib", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "configType", - "type": "uint32" - }, - { - "internalType": "bytes", - "name": "config", - "type": "bytes" - } - ], - "internalType": "struct SetConfigParam[]", - "name": "_params", - "type": "tuple[]" - } - ], - "name": "setConfig", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_newLib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_gracePeriod", - "type": "uint256" - } - ], - "name": "setDefaultReceiveLibrary", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_lib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_expiry", - "type": "uint256" - } - ], - "name": "setDefaultReceiveLibraryTimeout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_newLib", - "type": "address" - } - ], - "name": "setDefaultSendLibrary", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_newLib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_gracePeriod", - "type": "uint256" - } - ], - "name": "setReceiveLibrary", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_lib", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_expiry", - "type": "uint256" - } - ], - "name": "setReceiveLibraryTimeout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_newLib", - "type": "address" - } - ], - "name": "setSendLibrary", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol/IMessagingChannel.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol/IMessagingChannel.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol/IMessagingChannel.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol/IMessagingChannel.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol/IMessagingChannel.json deleted file mode 100644 index d584cc4a4..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol/IMessagingChannel.json +++ /dev/null @@ -1,373 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IMessagingChannel", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "name": "InboundNonceSkipped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "payloadHash", - "type": "bytes32" - } - ], - "name": "PacketBurnt", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "payloadHash", - "type": "bytes32" - } - ], - "name": "PacketNilified", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "_nonce", - "type": "uint64" - }, - { - "internalType": "bytes32", - "name": "_payloadHash", - "type": "bytes32" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "eid", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - } - ], - "name": "inboundNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "_nonce", - "type": "uint64" - } - ], - "name": "inboundPayloadHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_receiver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - } - ], - "name": "lazyInboundNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_receiver", - "type": "bytes32" - } - ], - "name": "nextGuid", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "_nonce", - "type": "uint64" - }, - { - "internalType": "bytes32", - "name": "_payloadHash", - "type": "bytes32" - } - ], - "name": "nilify", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_receiver", - "type": "bytes32" - } - ], - "name": "outboundNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "_nonce", - "type": "uint64" - } - ], - "name": "skip", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol/IMessagingComposer.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol/IMessagingComposer.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol/IMessagingComposer.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol/IMessagingComposer.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol/IMessagingComposer.json deleted file mode 100644 index 36b041bdf..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol/IMessagingComposer.json +++ /dev/null @@ -1,246 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IMessagingComposer", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint16", - "name": "index", - "type": "uint16" - } - ], - "name": "ComposeDelivered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint16", - "name": "index", - "type": "uint16" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "message", - "type": "bytes" - } - ], - "name": "ComposeSent", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "executor", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint16", - "name": "index", - "type": "uint16" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "gas", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "reason", - "type": "bytes" - } - ], - "name": "LzComposeAlert", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "uint16", - "name": "_index", - "type": "uint16" - } - ], - "name": "composeQueue", - "outputs": [ - { - "internalType": "bytes32", - "name": "messageHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "uint16", - "name": "_index", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzCompose", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "uint16", - "name": "_index", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - } - ], - "name": "sendCompose", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol/IMessagingContext.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol/IMessagingContext.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol/IMessagingContext.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol/IMessagingContext.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol/IMessagingContext.json deleted file mode 100644 index 982ed160c..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol/IMessagingContext.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IMessagingContext", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "abi": [ - { - "inputs": [], - "name": "getSendContext", - "outputs": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isSendingMessage", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol/ISendLib.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol/ISendLib.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol/ISendLib.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol/ISendLib.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol/ISendLib.json deleted file mode 100644 index d43219dfc..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol/ISendLib.json +++ /dev/null @@ -1,364 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ISendLib", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_configType", - "type": "uint32" - } - ], - "name": "getConfig", - "outputs": [ - { - "internalType": "bytes", - "name": "config", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - } - ], - "name": "isSupportedEid", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "messageLibType", - "outputs": [ - { - "internalType": "enum MessageLibType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "receiver", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - } - ], - "internalType": "struct Packet", - "name": "_packet", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "_options", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "_payInLzToken", - "type": "bool" - } - ], - "name": "quote", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "receiver", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - } - ], - "internalType": "struct Packet", - "name": "_packet", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "_options", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "_payInLzToken", - "type": "bool" - } - ], - "name": "send", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "encodedPacket", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_oapp", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "configType", - "type": "uint32" - }, - { - "internalType": "bytes", - "name": "config", - "type": "bytes" - } - ], - "internalType": "struct SetConfigParam[]", - "name": "_config", - "type": "tuple[]" - } - ], - "name": "setConfig", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_treasury", - "type": "address" - } - ], - "name": "setTreasury", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "version", - "outputs": [ - { - "internalType": "uint64", - "name": "major", - "type": "uint64" - }, - { - "internalType": "uint8", - "name": "minor", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "endpointVersion", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_lzToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "withdrawLzTokenFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol/AddressCast.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol/AddressCast.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol/AddressCast.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol/AddressCast.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol/AddressCast.json deleted file mode 100644 index 349afd276..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol/AddressCast.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "AddressCast", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "abi": [ - { - "inputs": [], - "name": "AddressCast_InvalidAddress", - "type": "error" - }, - { - "inputs": [], - "name": "AddressCast_InvalidSizeForAddress", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205c7c912ee158597c362dd2231f967bbff1f2e5e9420ddb60614885a7b61ff2c564736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205c7c912ee158597c362dd2231f967bbff1f2e5e9420ddb60614885a7b61ff2c564736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.json deleted file mode 100644 index 5b480a0cf..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "CalldataBytesLib", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220821c11b95d2c35cebe76481c875073ad077f6c35fced5c45d6b49a4a6afb835464736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220821c11b95d2c35cebe76481c875073ad077f6c35fced5c45d6b49a4a6afb835464736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol/BitMaps.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol/BitMaps.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol/BitMaps.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol/BitMaps.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol/BitMaps.json deleted file mode 100644 index 36c379dd0..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol/BitMaps.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BitMaps", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c138a090826fdbd7371903be6d9871c3634ca9859fe20ca60ca84e37db1d8c164736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c138a090826fdbd7371903be6d9871c3634ca9859fe20ca60ca84e37db1d8c164736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.json deleted file mode 100644 index 4659d56fd..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ExecutorOptions", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "abi": [ - { - "inputs": [], - "name": "Executor_InvalidLzComposeOption", - "type": "error" - }, - { - "inputs": [], - "name": "Executor_InvalidLzReceiveOption", - "type": "error" - }, - { - "inputs": [], - "name": "Executor_InvalidNativeDropOption", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209e7288ad6cd4183992b815484bcbb092a46352738421d37fa47e56f5d4b6f23464736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209e7288ad6cd4183992b815484bcbb092a46352738421d37fa47e56f5d4b6f23464736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.dbg.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.json b/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.json deleted file mode 100644 index 2b7cbcef2..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "PacketV1Codec", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122062e729053cc850e1eb250d29153ff41affd9fe228d02949c787e9c824831539c64736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122062e729053cc850e1eb250d29153ff41affd9fe228d02949c787e9c824831539c64736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.dbg.json b/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.json b/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.json deleted file mode 100644 index 67826e9dc..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ONFTComposeMsgCodec", - "sourceName": "@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a4b8a6bd4f844db8b4d60d47a67ec76133f42da35c6deb8404dac1dfa6b79a4764736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a4b8a6bd4f844db8b4d60d47a67ec76133f42da35c6deb8404dac1dfa6b79a4764736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol/ONFT721.dbg.json b/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol/ONFT721.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol/ONFT721.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol/ONFT721.json b/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol/ONFT721.json deleted file mode 100644 index c43602150..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol/ONFT721.json +++ /dev/null @@ -1,1576 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ONFT721", - "sourceName": "@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721IncorrectOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721InsufficientApproval", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC721InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC721InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721InvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC721InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC721InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721NonexistentToken", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidDelegate", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidEndpointCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "name": "InvalidOptions", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidReceiver", - "type": "error" - }, - { - "inputs": [], - "name": "LzTokenUnavailable", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "NoPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "msgValue", - "type": "uint256" - } - ], - "name": "NotEnoughNative", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "OnlyEndpoint", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OnlyNFTOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - } - ], - "name": "OnlyPeer", - "type": "error" - }, - { - "inputs": [], - "name": "OnlySelf", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "result", - "type": "bytes" - } - ], - "name": "SimulationResult", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "indexed": false, - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "EnforcedOptionSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "inspector", - "type": "address" - } - ], - "name": "MsgInspectorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "indexed": true, - "internalType": "address", - "name": "toAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ONFTReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "indexed": true, - "internalType": "address", - "name": "fromAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ONFTSent", - "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": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "name": "PeerSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "preCrimeAddress", - "type": "address" - } - ], - "name": "PreCrimeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "SEND", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SEND_AND_COMPOSE", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - } - ], - "name": "allowInitializePath", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "approvalRequired", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "_msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "_extraOptions", - "type": "bytes" - } - ], - "name": "combineOptions", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "endpoint", - "outputs": [ - { - "internalType": "contract ILayerZeroEndpointV2", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - } - ], - "name": "enforcedOptions", - "outputs": [ - { - "internalType": "bytes", - "name": "enforcedOption", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_sender", - "type": "address" - } - ], - "name": "isComposeMsgSender", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "isPeer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceive", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - }, - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "address", - "name": "executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct InboundPacket[]", - "name": "_packets", - "type": "tuple[]" - } - ], - "name": "lzReceiveAndRevert", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceiveSimulate", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "msgInspector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "nextNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oApp", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oAppVersion", - "outputs": [ - { - "internalType": "uint64", - "name": "senderVersion", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "receiverVersion", - "type": "uint64" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "onftVersion", - "outputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - }, - { - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "peers", - "outputs": [ - { - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "preCrime", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "to", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "extraOptions", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "composeMsg", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "onftCmd", - "type": "bytes" - } - ], - "internalType": "struct SendParam", - "name": "_sendParam", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "_payInLzToken", - "type": "bool" - } - ], - "name": "quoteSend", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "msgFee", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "to", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "extraOptions", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "composeMsg", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "onftCmd", - "type": "bytes" - } - ], - "internalType": "struct SendParam", - "name": "_sendParam", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "_fee", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_refundAddress", - "type": "address" - } - ], - "name": "send", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "fee", - "type": "tuple" - } - ], - "internalType": "struct MessagingReceipt", - "name": "msgReceipt", - "type": "tuple" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "name": "setDelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "setEnforcedOptions", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_msgInspector", - "type": "address" - } - ], - "name": "setMsgInspector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "setPeer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_preCrime", - "type": "address" - } - ], - "name": "setPreCrime", - "outputs": [], - "stateMutability": "nonpayable", - "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": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol/ONFT721Core.dbg.json b/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol/ONFT721Core.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol/ONFT721Core.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol/ONFT721Core.json b/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol/ONFT721Core.json deleted file mode 100644 index b2fc87308..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol/ONFT721Core.json +++ /dev/null @@ -1,1143 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ONFT721Core", - "sourceName": "@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidDelegate", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidEndpointCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "name": "InvalidOptions", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidReceiver", - "type": "error" - }, - { - "inputs": [], - "name": "LzTokenUnavailable", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "NoPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "msgValue", - "type": "uint256" - } - ], - "name": "NotEnoughNative", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "OnlyEndpoint", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OnlyNFTOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - } - ], - "name": "OnlyPeer", - "type": "error" - }, - { - "inputs": [], - "name": "OnlySelf", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "result", - "type": "bytes" - } - ], - "name": "SimulationResult", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "indexed": false, - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "EnforcedOptionSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "inspector", - "type": "address" - } - ], - "name": "MsgInspectorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "indexed": true, - "internalType": "address", - "name": "toAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ONFTReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "indexed": true, - "internalType": "address", - "name": "fromAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ONFTSent", - "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": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "name": "PeerSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "preCrimeAddress", - "type": "address" - } - ], - "name": "PreCrimeSet", - "type": "event" - }, - { - "inputs": [], - "name": "SEND", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SEND_AND_COMPOSE", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - } - ], - "name": "allowInitializePath", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "approvalRequired", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "_msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "_extraOptions", - "type": "bytes" - } - ], - "name": "combineOptions", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "endpoint", - "outputs": [ - { - "internalType": "contract ILayerZeroEndpointV2", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - } - ], - "name": "enforcedOptions", - "outputs": [ - { - "internalType": "bytes", - "name": "enforcedOption", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_sender", - "type": "address" - } - ], - "name": "isComposeMsgSender", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "isPeer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceive", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - }, - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "address", - "name": "executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct InboundPacket[]", - "name": "_packets", - "type": "tuple[]" - } - ], - "name": "lzReceiveAndRevert", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceiveSimulate", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "msgInspector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "nextNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oApp", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oAppVersion", - "outputs": [ - { - "internalType": "uint64", - "name": "senderVersion", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "receiverVersion", - "type": "uint64" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "onftVersion", - "outputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - }, - { - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "peers", - "outputs": [ - { - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "preCrime", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "to", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "extraOptions", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "composeMsg", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "onftCmd", - "type": "bytes" - } - ], - "internalType": "struct SendParam", - "name": "_sendParam", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "_payInLzToken", - "type": "bool" - } - ], - "name": "quoteSend", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "msgFee", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "to", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "extraOptions", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "composeMsg", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "onftCmd", - "type": "bytes" - } - ], - "internalType": "struct SendParam", - "name": "_sendParam", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "_fee", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_refundAddress", - "type": "address" - } - ], - "name": "send", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "fee", - "type": "tuple" - } - ], - "internalType": "struct MessagingReceipt", - "name": "msgReceipt", - "type": "tuple" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "name": "setDelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "setEnforcedOptions", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_msgInspector", - "type": "address" - } - ], - "name": "setMsgInspector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "setPeer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_preCrime", - "type": "address" - } - ], - "name": "setPreCrime", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "token", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol/IONFT721.dbg.json b/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol/IONFT721.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol/IONFT721.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol/IONFT721.json b/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol/IONFT721.json deleted file mode 100644 index 45469dcef..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol/IONFT721.json +++ /dev/null @@ -1,308 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IONFT721", - "sourceName": "@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol", - "abi": [ - { - "inputs": [], - "name": "InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OnlyNFTOwner", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "indexed": true, - "internalType": "address", - "name": "toAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ONFTReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "indexed": true, - "internalType": "address", - "name": "fromAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ONFTSent", - "type": "event" - }, - { - "inputs": [], - "name": "approvalRequired", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "onftVersion", - "outputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - }, - { - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "to", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "extraOptions", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "composeMsg", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "onftCmd", - "type": "bytes" - } - ], - "internalType": "struct SendParam", - "name": "_sendParam", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "_payInLzToken", - "type": "bool" - } - ], - "name": "quoteSend", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "to", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "extraOptions", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "composeMsg", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "onftCmd", - "type": "bytes" - } - ], - "internalType": "struct SendParam", - "name": "_sendParam", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "_fee", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_refundAddress", - "type": "address" - } - ], - "name": "send", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "fee", - "type": "tuple" - } - ], - "internalType": "struct MessagingReceipt", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "token", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol/ONFT721MsgCodec.dbg.json b/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol/ONFT721MsgCodec.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol/ONFT721MsgCodec.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol/ONFT721MsgCodec.json b/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol/ONFT721MsgCodec.json deleted file mode 100644 index 1044375af..000000000 --- a/examples/onft721/artifacts/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol/ONFT721MsgCodec.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ONFT721MsgCodec", - "sourceName": "@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220402464e4b555272fd3ad0e100ff428bb24814eb69eab0b50314e2960a6db586164736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220402464e4b555272fd3ad0e100ff428bb24814eb69eab0b50314e2960a6db586164736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json deleted file mode 100644 index aa9d6f972..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json b/examples/onft721/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json deleted file mode 100644 index 5345edc1e..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Ownable", - "sourceName": "@openzeppelin/contracts/access/Ownable.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json deleted file mode 100644 index aa9d6f972..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json b/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json deleted file mode 100644 index 107d16fe0..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC1155Errors", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC1155InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC1155InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idsLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "valuesLength", - "type": "uint256" - } - ], - "name": "ERC1155InvalidArrayLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC1155InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC1155InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC1155InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC1155MissingApprovalForAll", - "type": "error" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json deleted file mode 100644 index aa9d6f972..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json b/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json deleted file mode 100644 index f77ad64ee..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20Errors", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC20InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC20InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC20InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "ERC20InvalidSpender", - "type": "error" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json deleted file mode 100644 index aa9d6f972..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json b/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json deleted file mode 100644 index 6ccf3a73b..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721Errors", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721IncorrectOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721InsufficientApproval", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC721InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC721InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721InvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC721InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC721InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721NonexistentToken", - "type": "error" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json deleted file mode 100644 index 12e0777f7..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "abi": [ - { - "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": "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": [ - { - "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": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "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": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "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": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json deleted file mode 100644 index aa02bdff1..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20Permit", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "abi": [ - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "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" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json deleted file mode 100644 index 4544411aa..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SafeERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "currentAllowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "requestedDecrease", - "type": "uint256" - } - ], - "name": "SafeERC20FailedDecreaseAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca33cb6246e30444f0da91b82d74bc6869ff3ba6fe725e32c02df8f3bc9e0d0f64736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca33cb6246e30444f0da91b82d74bc6869ff3ba6fe725e32c02df8f3bc9e0d0f64736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json deleted file mode 100644 index 2cc04a869..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +++ /dev/null @@ -1,444 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC721", - "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721IncorrectOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721InsufficientApproval", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC721InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC721InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721InvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC721InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC721InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721NonexistentToken", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "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": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json deleted file mode 100644 index 3677fd69a..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json deleted file mode 100644 index e91c7b089..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721Receiver", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json deleted file mode 100644 index be501ff55..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json b/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json deleted file mode 100644 index 4eea2c23c..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json +++ /dev/null @@ -1,341 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721Metadata", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "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": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json deleted file mode 100644 index aa9d6f972..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json deleted file mode 100644 index 8651a7732..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Address", - "sourceName": "@openzeppelin/contracts/utils/Address.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220195f9d9223e29b7d07593b032d7ca4d36543ca8cc3b93039772852982b57875c64736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220195f9d9223e29b7d07593b032d7ca4d36543ca8cc3b93039772852982b57875c64736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json deleted file mode 100644 index aa9d6f972..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json deleted file mode 100644 index 8fe86fc78..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Context", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "abi": [], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json deleted file mode 100644 index aa9d6f972..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json deleted file mode 100644 index d981c6d93..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Strings", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "StringsInsufficientHexLength", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bb4914abe7f6eeba5e4ddbf3206858fb8294ce03aaecc1901f0a45a565423f9f64736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bb4914abe7f6eeba5e4ddbf3206858fb8294ce03aaecc1901f0a45a565423f9f64736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json deleted file mode 100644 index 1304472c7..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC165", - "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json deleted file mode 100644 index ff87f91ee..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC165", - "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json deleted file mode 100644 index b7c321d94..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Math", - "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", - "abi": [ - { - "inputs": [], - "name": "MathOverflowedMulDiv", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220324fcae33b24d21ae3a3906644907ae0f151a6f85cb15a1dbcc8623d0deceb0364736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220324fcae33b24d21ae3a3906644907ae0f151a6f85cb15a1dbcc8623d0deceb0364736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.json deleted file mode 100644 index 20d6d9836..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SafeCast", - "sourceName": "@openzeppelin/contracts/utils/math/SafeCast.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint8", - "name": "bits", - "type": "uint8" - }, - { - "internalType": "int256", - "name": "value", - "type": "int256" - } - ], - "name": "SafeCastOverflowedIntDowncast", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "int256", - "name": "value", - "type": "int256" - } - ], - "name": "SafeCastOverflowedIntToUint", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "bits", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "SafeCastOverflowedUintDowncast", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "SafeCastOverflowedUintToInt", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1f054420f4fdb1e7eb18ac5f606e2317a43d66f2b1e58174a4b2f73cfcae3dc64736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1f054420f4fdb1e7eb18ac5f606e2317a43d66f2b1e58174a4b2f73cfcae3dc64736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json deleted file mode 100644 index f87325c46..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json b/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json deleted file mode 100644 index 7b8708f0f..000000000 --- a/examples/onft721/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SignedMath", - "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202910780e4ad318b06fb6b73574673c7fe5839427085b878ead8eec84c6345e0264736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202910780e4ad318b06fb6b73574673c7fe5839427085b878ead8eec84c6345e0264736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/build-info/788a8d914e47f05fb10852ea106e611e.json b/examples/onft721/artifacts/build-info/788a8d914e47f05fb10852ea106e611e.json deleted file mode 100644 index 51816b11d..000000000 --- a/examples/onft721/artifacts/build-info/788a8d914e47f05fb10852ea106e611e.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"788a8d914e47f05fb10852ea106e611e","_format":"hh-sol-build-info-1","solcVersion":"0.8.22","solcLongVersion":"0.8.22+commit.4fc1097e","input":{"language":"Solidity","sources":{"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"content":"// SPDX-License-Identifier: LZBL-1.2\n\npragma solidity ^0.8.20;\n\nimport { BytesLib } from \"solidity-bytes-utils/contracts/BytesLib.sol\";\n\nimport { BitMap256 } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\";\nimport { CalldataBytesLib } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\";\n\nlibrary DVNOptions {\n using CalldataBytesLib for bytes;\n using BytesLib for bytes;\n\n uint8 internal constant WORKER_ID = 2;\n uint8 internal constant OPTION_TYPE_PRECRIME = 1;\n\n error DVN_InvalidDVNIdx();\n error DVN_InvalidDVNOptions(uint256 cursor);\n\n /// @dev group dvn options by its idx\n /// @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\n /// dvn_option = [option_size][dvn_idx][option_type][option]\n /// option_size = len(dvn_idx) + len(option_type) + len(option)\n /// dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\n /// @return dvnOptions the grouped options, still share the same format of _options\n /// @return dvnIndices the dvn indices\n function groupDVNOptionsByIdx(\n bytes memory _options\n ) internal pure returns (bytes[] memory dvnOptions, uint8[] memory dvnIndices) {\n if (_options.length == 0) return (dvnOptions, dvnIndices);\n\n uint8 numDVNs = getNumDVNs(_options);\n\n // if there is only 1 dvn, we can just return the whole options\n if (numDVNs == 1) {\n dvnOptions = new bytes[](1);\n dvnOptions[0] = _options;\n\n dvnIndices = new uint8[](1);\n dvnIndices[0] = _options.toUint8(3); // dvn idx\n return (dvnOptions, dvnIndices);\n }\n\n // otherwise, we need to group the options by dvn_idx\n dvnIndices = new uint8[](numDVNs);\n dvnOptions = new bytes[](numDVNs);\n unchecked {\n uint256 cursor = 0;\n uint256 start = 0;\n uint8 lastDVNIdx = 255; // 255 is an invalid dvn_idx\n\n while (cursor < _options.length) {\n ++cursor; // skip worker_id\n\n // optionLength asserted in getNumDVNs (skip check)\n uint16 optionLength = _options.toUint16(cursor);\n cursor += 2;\n\n // dvnIdx asserted in getNumDVNs (skip check)\n uint8 dvnIdx = _options.toUint8(cursor);\n\n // dvnIdx must equal to the lastDVNIdx for the first option\n // so it is always skipped in the first option\n // this operation slices out options whenever the scan finds a different lastDVNIdx\n if (lastDVNIdx == 255) {\n lastDVNIdx = dvnIdx;\n } else if (dvnIdx != lastDVNIdx) {\n uint256 len = cursor - start - 3; // 3 is for worker_id and option_length\n bytes memory opt = _options.slice(start, len);\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, opt);\n\n // reset the start and lastDVNIdx\n start += len;\n lastDVNIdx = dvnIdx;\n }\n\n cursor += optionLength;\n }\n\n // skip check the cursor here because the cursor is asserted in getNumDVNs\n // if we have reached the end of the options, we need to process the last dvn\n uint256 size = cursor - start;\n bytes memory op = _options.slice(start, size);\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, op);\n\n // revert dvnIndices to start from 0\n for (uint8 i = 0; i < numDVNs; ++i) {\n --dvnIndices[i];\n }\n }\n }\n\n function _insertDVNOptions(\n bytes[] memory _dvnOptions,\n uint8[] memory _dvnIndices,\n uint8 _dvnIdx,\n bytes memory _newOptions\n ) internal pure {\n // dvnIdx starts from 0 but default value of dvnIndices is 0,\n // so we tell if the slot is empty by adding 1 to dvnIdx\n if (_dvnIdx == 255) revert DVN_InvalidDVNIdx();\n uint8 dvnIdxAdj = _dvnIdx + 1;\n\n for (uint256 j = 0; j < _dvnIndices.length; ++j) {\n uint8 index = _dvnIndices[j];\n if (dvnIdxAdj == index) {\n _dvnOptions[j] = abi.encodePacked(_dvnOptions[j], _newOptions);\n break;\n } else if (index == 0) {\n // empty slot, that means it is the first time we see this dvn\n _dvnIndices[j] = dvnIdxAdj;\n _dvnOptions[j] = _newOptions;\n break;\n }\n }\n }\n\n /// @dev get the number of unique dvns\n /// @param _options the format is the same as groupDVNOptionsByIdx\n function getNumDVNs(bytes memory _options) internal pure returns (uint8 numDVNs) {\n uint256 cursor = 0;\n BitMap256 bitmap;\n\n // find number of unique dvn_idx\n unchecked {\n while (cursor < _options.length) {\n ++cursor; // skip worker_id\n\n uint16 optionLength = _options.toUint16(cursor);\n cursor += 2;\n if (optionLength < 2) revert DVN_InvalidDVNOptions(cursor); // at least 1 byte for dvn_idx and 1 byte for option_type\n\n uint8 dvnIdx = _options.toUint8(cursor);\n\n // if dvnIdx is not set, increment numDVNs\n // max num of dvns is 255, 255 is an invalid dvn_idx\n // The order of the dvnIdx is not required to be sequential, as enforcing the order may weaken\n // the composability of the options. e.g. if we refrain from enforcing the order, an OApp that has\n // already enforced certain options can append additional options to the end of the enforced\n // ones without restrictions.\n if (dvnIdx == 255) revert DVN_InvalidDVNIdx();\n if (!bitmap.get(dvnIdx)) {\n ++numDVNs;\n bitmap = bitmap.set(dvnIdx);\n }\n\n cursor += optionLength;\n }\n }\n if (cursor != _options.length) revert DVN_InvalidDVNOptions(cursor);\n }\n\n /// @dev decode the next dvn option from _options starting from the specified cursor\n /// @param _options the format is the same as groupDVNOptionsByIdx\n /// @param _cursor the cursor to start decoding\n /// @return optionType the type of the option\n /// @return option the option\n /// @return cursor the cursor to start decoding the next option\n function nextDVNOption(\n bytes calldata _options,\n uint256 _cursor\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\n unchecked {\n // skip worker id\n cursor = _cursor + 1;\n\n // read option size\n uint16 size = _options.toU16(cursor);\n cursor += 2;\n\n // read option type\n optionType = _options.toU8(cursor + 1); // skip dvn_idx\n\n // startCursor and endCursor are used to slice the option from _options\n uint256 startCursor = cursor + 2; // skip option type and dvn_idx\n uint256 endCursor = cursor + size;\n option = _options[startCursor:endCursor];\n cursor += size;\n }\n }\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { ILayerZeroEndpointV2 } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\";\n\n/**\n * @title IOAppCore\n */\ninterface IOAppCore {\n // Custom error messages\n error OnlyPeer(uint32 eid, bytes32 sender);\n error NoPeer(uint32 eid);\n error InvalidEndpointCall();\n error InvalidDelegate();\n\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\n event PeerSet(uint32 eid, bytes32 peer);\n\n /**\n * @notice Retrieves the OApp version information.\n * @return senderVersion The version of the OAppSender.sol contract.\n * @return receiverVersion The version of the OAppReceiver.sol contract.\n */\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\n\n /**\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\n * @return iEndpoint The LayerZero endpoint as an interface.\n */\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\n\n /**\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\n * @param _eid The endpoint ID.\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\n */\n function peers(uint32 _eid) external view returns (bytes32 peer);\n\n /**\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\n * @param _eid The endpoint ID.\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\n */\n function setPeer(uint32 _eid, bytes32 _peer) external;\n\n /**\n * @notice Sets the delegate address for the OApp Core.\n * @param _delegate The address of the delegate to be set.\n */\n function setDelegate(address _delegate) external;\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\n/**\n * @title IOAppMsgInspector\n * @dev Interface for the OApp Message Inspector, allowing examination of message and options contents.\n */\ninterface IOAppMsgInspector {\n // Custom error message for inspection failure\n error InspectionFailed(bytes message, bytes options);\n\n /**\n * @notice Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\n * @param _message The message payload to be inspected.\n * @param _options Additional options or parameters for inspection.\n * @return valid A boolean indicating whether the inspection passed (true) or failed (false).\n *\n * @dev Optionally done as a revert, OR use the boolean provided to handle the failure.\n */\n function inspect(bytes calldata _message, bytes calldata _options) external view returns (bool valid);\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Struct representing enforced option parameters.\n */\nstruct EnforcedOptionParam {\n uint32 eid; // Endpoint ID\n uint16 msgType; // Message Type\n bytes options; // Additional options\n}\n\n/**\n * @title IOAppOptionsType3\n * @dev Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.\n */\ninterface IOAppOptionsType3 {\n // Custom error message for invalid options\n error InvalidOptions(bytes options);\n\n // Event emitted when enforced options are set\n event EnforcedOptionSet(EnforcedOptionParam[] _enforcedOptions);\n\n /**\n * @notice Sets enforced options for specific endpoint and message type combinations.\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\n */\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) external;\n\n /**\n * @notice Combines options for a given endpoint and message type.\n * @param _eid The endpoint ID.\n * @param _msgType The OApp message type.\n * @param _extraOptions Additional options passed by the caller.\n * @return options The combination of caller specified options AND enforced options.\n */\n function combineOptions(\n uint32 _eid,\n uint16 _msgType,\n bytes calldata _extraOptions\n ) external view returns (bytes memory options);\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport { ILayerZeroReceiver, Origin } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\";\n\ninterface IOAppReceiver is ILayerZeroReceiver {\n /**\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\n * @param _origin The origin information containing the source endpoint and sender address.\n * - srcEid: The source chain endpoint ID.\n * - sender: The sender address on the src chain.\n * - nonce: The nonce of the message.\n * @param _message The lzReceive payload.\n * @param _sender The sender address.\n * @return isSender Is a valid sender.\n *\n * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\n * @dev The default sender IS the OAppReceiver implementer.\n */\n function isComposeMsgSender(\n Origin calldata _origin,\n bytes calldata _message,\n address _sender\n ) external view returns (bool isSender);\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { Ownable } from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport { IOAppOptionsType3, EnforcedOptionParam } from \"../interfaces/IOAppOptionsType3.sol\";\n\n/**\n * @title OAppOptionsType3\n * @dev Abstract contract implementing the IOAppOptionsType3 interface with type 3 options.\n */\nabstract contract OAppOptionsType3 is IOAppOptionsType3, Ownable {\n uint16 internal constant OPTION_TYPE_3 = 3;\n\n // @dev The \"msgType\" should be defined in the child contract.\n mapping(uint32 eid => mapping(uint16 msgType => bytes enforcedOption)) public enforcedOptions;\n\n /**\n * @dev Sets the enforced options for specific endpoint and message type combinations.\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\n *\n * @dev Only the owner/admin of the OApp can call this function.\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\n */\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) public virtual onlyOwner {\n _setEnforcedOptions(_enforcedOptions);\n }\n\n /**\n * @dev Sets the enforced options for specific endpoint and message type combinations.\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\n *\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\n */\n function _setEnforcedOptions(EnforcedOptionParam[] memory _enforcedOptions) internal virtual {\n for (uint256 i = 0; i < _enforcedOptions.length; i++) {\n // @dev Enforced options are only available for optionType 3, as type 1 and 2 dont support combining.\n _assertOptionsType3(_enforcedOptions[i].options);\n enforcedOptions[_enforcedOptions[i].eid][_enforcedOptions[i].msgType] = _enforcedOptions[i].options;\n }\n\n emit EnforcedOptionSet(_enforcedOptions);\n }\n\n /**\n * @notice Combines options for a given endpoint and message type.\n * @param _eid The endpoint ID.\n * @param _msgType The OAPP message type.\n * @param _extraOptions Additional options passed by the caller.\n * @return options The combination of caller specified options AND enforced options.\n *\n * @dev If there is an enforced lzReceive option:\n * - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether}\n * - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.\n * @dev This presence of duplicated options is handled off-chain in the verifier/executor.\n */\n function combineOptions(\n uint32 _eid,\n uint16 _msgType,\n bytes calldata _extraOptions\n ) public view virtual returns (bytes memory) {\n bytes memory enforced = enforcedOptions[_eid][_msgType];\n\n // No enforced options, pass whatever the caller supplied, even if it's empty or legacy type 1/2 options.\n if (enforced.length == 0) return _extraOptions;\n\n // No caller options, return enforced\n if (_extraOptions.length == 0) return enforced;\n\n // @dev If caller provided _extraOptions, must be type 3 as its the ONLY type that can be combined.\n if (_extraOptions.length >= 2) {\n _assertOptionsType3(_extraOptions);\n // @dev Remove the first 2 bytes containing the type from the _extraOptions and combine with enforced.\n return bytes.concat(enforced, _extraOptions[2:]);\n }\n\n // No valid set of options was found.\n revert InvalidOptions(_extraOptions);\n }\n\n /**\n * @dev Internal function to assert that options are of type 3.\n * @param _options The options to be checked.\n */\n function _assertOptionsType3(bytes memory _options) internal pure virtual {\n uint16 optionsType;\n assembly {\n optionsType := mload(add(_options, 2))\n }\n if (optionsType != OPTION_TYPE_3) revert InvalidOptions(_options);\n }\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { BytesLib } from \"solidity-bytes-utils/contracts/BytesLib.sol\";\nimport { SafeCast } from \"@openzeppelin/contracts/utils/math/SafeCast.sol\";\n\nimport { ExecutorOptions } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\";\nimport { DVNOptions } from \"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\";\n\n/**\n * @title OptionsBuilder\n * @dev Library for building and encoding various message options.\n */\nlibrary OptionsBuilder {\n using SafeCast for uint256;\n using BytesLib for bytes;\n\n // Constants for options types\n uint16 internal constant TYPE_1 = 1; // legacy options type 1\n uint16 internal constant TYPE_2 = 2; // legacy options type 2\n uint16 internal constant TYPE_3 = 3;\n\n // Custom error message\n error InvalidSize(uint256 max, uint256 actual);\n error InvalidOptionType(uint16 optionType);\n\n // Modifier to ensure only options of type 3 are used\n modifier onlyType3(bytes memory _options) {\n if (_options.toUint16(0) != TYPE_3) revert InvalidOptionType(_options.toUint16(0));\n _;\n }\n\n /**\n * @dev Creates a new options container with type 3.\n * @return options The newly created options container.\n */\n function newOptions() internal pure returns (bytes memory) {\n return abi.encodePacked(TYPE_3);\n }\n\n /**\n * @dev Adds an executor LZ receive option to the existing options.\n * @param _options The existing options container.\n * @param _gas The gasLimit used on the lzReceive() function in the OApp.\n * @param _value The msg.value passed to the lzReceive() function in the OApp.\n * @return options The updated options container.\n *\n * @dev When multiples of this option are added, they are summed by the executor\n * eg. if (_gas: 200k, and _value: 1 ether) AND (_gas: 100k, _value: 0.5 ether) are sent in an option to the LayerZeroEndpoint,\n * that becomes (300k, 1.5 ether) when the message is executed on the remote lzReceive() function.\n */\n function addExecutorLzReceiveOption(\n bytes memory _options,\n uint128 _gas,\n uint128 _value\n ) internal pure onlyType3(_options) returns (bytes memory) {\n bytes memory option = ExecutorOptions.encodeLzReceiveOption(_gas, _value);\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZRECEIVE, option);\n }\n\n /**\n * @dev Adds an executor native drop option to the existing options.\n * @param _options The existing options container.\n * @param _amount The amount for the native value that is airdropped to the 'receiver'.\n * @param _receiver The receiver address for the native drop option.\n * @return options The updated options container.\n *\n * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\n */\n function addExecutorNativeDropOption(\n bytes memory _options,\n uint128 _amount,\n bytes32 _receiver\n ) internal pure onlyType3(_options) returns (bytes memory) {\n bytes memory option = ExecutorOptions.encodeNativeDropOption(_amount, _receiver);\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_NATIVE_DROP, option);\n }\n\n /**\n * @dev Adds an executor LZ compose option to the existing options.\n * @param _options The existing options container.\n * @param _index The index for the lzCompose() function call.\n * @param _gas The gasLimit for the lzCompose() function call.\n * @param _value The msg.value for the lzCompose() function call.\n * @return options The updated options container.\n *\n * @dev When multiples of this option are added, they are summed PER index by the executor on the remote chain.\n * @dev If the OApp sends N lzCompose calls on the remote, you must provide N incremented indexes starting with 0.\n * ie. When your remote OApp composes (N = 3) messages, you must set this option for index 0,1,2\n */\n function addExecutorLzComposeOption(\n bytes memory _options,\n uint16 _index,\n uint128 _gas,\n uint128 _value\n ) internal pure onlyType3(_options) returns (bytes memory) {\n bytes memory option = ExecutorOptions.encodeLzComposeOption(_index, _gas, _value);\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZCOMPOSE, option);\n }\n\n /**\n * @dev Adds an executor ordered execution option to the existing options.\n * @param _options The existing options container.\n * @return options The updated options container.\n */\n function addExecutorOrderedExecutionOption(\n bytes memory _options\n ) internal pure onlyType3(_options) returns (bytes memory) {\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_ORDERED_EXECUTION, bytes(\"\"));\n }\n\n /**\n * @dev Adds a DVN pre-crime option to the existing options.\n * @param _options The existing options container.\n * @param _dvnIdx The DVN index for the pre-crime option.\n * @return options The updated options container.\n */\n function addDVNPreCrimeOption(\n bytes memory _options,\n uint8 _dvnIdx\n ) internal pure onlyType3(_options) returns (bytes memory) {\n return addDVNOption(_options, _dvnIdx, DVNOptions.OPTION_TYPE_PRECRIME, bytes(\"\"));\n }\n\n /**\n * @dev Adds an executor option to the existing options.\n * @param _options The existing options container.\n * @param _optionType The type of the executor option.\n * @param _option The encoded data for the executor option.\n * @return options The updated options container.\n */\n function addExecutorOption(\n bytes memory _options,\n uint8 _optionType,\n bytes memory _option\n ) internal pure onlyType3(_options) returns (bytes memory) {\n return\n abi.encodePacked(\n _options,\n ExecutorOptions.WORKER_ID,\n _option.length.toUint16() + 1, // +1 for optionType\n _optionType,\n _option\n );\n }\n\n /**\n * @dev Adds a DVN option to the existing options.\n * @param _options The existing options container.\n * @param _dvnIdx The DVN index for the DVN option.\n * @param _optionType The type of the DVN option.\n * @param _option The encoded data for the DVN option.\n * @return options The updated options container.\n */\n function addDVNOption(\n bytes memory _options,\n uint8 _dvnIdx,\n uint8 _optionType,\n bytes memory _option\n ) internal pure onlyType3(_options) returns (bytes memory) {\n return\n abi.encodePacked(\n _options,\n DVNOptions.WORKER_ID,\n _option.length.toUint16() + 2, // +2 for optionType and dvnIdx\n _dvnIdx,\n _optionType,\n _option\n );\n }\n\n /**\n * @dev Encodes legacy options of type 1.\n * @param _executionGas The gasLimit value passed to lzReceive().\n * @return legacyOptions The encoded legacy options.\n */\n function encodeLegacyOptionsType1(uint256 _executionGas) internal pure returns (bytes memory) {\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\n return abi.encodePacked(TYPE_1, _executionGas);\n }\n\n /**\n * @dev Encodes legacy options of type 2.\n * @param _executionGas The gasLimit value passed to lzReceive().\n * @param _nativeForDst The amount of native air dropped to the receiver.\n * @param _receiver The _nativeForDst receiver address.\n * @return legacyOptions The encoded legacy options of type 2.\n */\n function encodeLegacyOptionsType2(\n uint256 _executionGas,\n uint256 _nativeForDst,\n bytes memory _receiver // @dev Use bytes instead of bytes32 in legacy type 2 for _receiver.\n ) internal pure returns (bytes memory) {\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\n if (_nativeForDst > type(uint128).max) revert InvalidSize(type(uint128).max, _nativeForDst);\n if (_receiver.length > 32) revert InvalidSize(32, _receiver.length);\n return abi.encodePacked(TYPE_2, _executionGas, _nativeForDst, _receiver);\n }\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\n// @dev Import the 'MessagingFee' and 'MessagingReceipt' so it's exposed to OApp implementers\n// solhint-disable-next-line no-unused-import\nimport { OAppSender, MessagingFee, MessagingReceipt } from \"./OAppSender.sol\";\n// @dev Import the 'Origin' so it's exposed to OApp implementers\n// solhint-disable-next-line no-unused-import\nimport { OAppReceiver, Origin } from \"./OAppReceiver.sol\";\nimport { OAppCore } from \"./OAppCore.sol\";\n\n/**\n * @title OApp\n * @dev Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality.\n */\nabstract contract OApp is OAppSender, OAppReceiver {\n /**\n * @dev Constructor to initialize the OApp with the provided endpoint and owner.\n * @param _endpoint The address of the LOCAL LayerZero endpoint.\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\n */\n constructor(address _endpoint, address _delegate) OAppCore(_endpoint, _delegate) {}\n\n /**\n * @notice Retrieves the OApp version information.\n * @return senderVersion The version of the OAppSender.sol implementation.\n * @return receiverVersion The version of the OAppReceiver.sol implementation.\n */\n function oAppVersion()\n public\n pure\n virtual\n override(OAppSender, OAppReceiver)\n returns (uint64 senderVersion, uint64 receiverVersion)\n {\n return (SENDER_VERSION, RECEIVER_VERSION);\n }\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { Ownable } from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport { IOAppCore, ILayerZeroEndpointV2 } from \"./interfaces/IOAppCore.sol\";\n\n/**\n * @title OAppCore\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\n */\nabstract contract OAppCore is IOAppCore, Ownable {\n // The LayerZero endpoint associated with the given OApp\n ILayerZeroEndpointV2 public immutable endpoint;\n\n // Mapping to store peers associated with corresponding endpoints\n mapping(uint32 eid => bytes32 peer) public peers;\n\n /**\n * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\n * @param _endpoint The address of the LOCAL Layer Zero endpoint.\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\n *\n * @dev The delegate typically should be set as the owner of the contract.\n */\n constructor(address _endpoint, address _delegate) {\n endpoint = ILayerZeroEndpointV2(_endpoint);\n\n if (_delegate == address(0)) revert InvalidDelegate();\n endpoint.setDelegate(_delegate);\n }\n\n /**\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\n * @param _eid The endpoint ID.\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\n *\n * @dev Only the owner/admin of the OApp can call this function.\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\n * @dev Set this to bytes32(0) to remove the peer address.\n * @dev Peer is a bytes32 to accommodate non-evm chains.\n */\n function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\n _setPeer(_eid, _peer);\n }\n\n /**\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\n * @param _eid The endpoint ID.\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\n *\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\n * @dev Set this to bytes32(0) to remove the peer address.\n * @dev Peer is a bytes32 to accommodate non-evm chains.\n */\n function _setPeer(uint32 _eid, bytes32 _peer) internal virtual {\n peers[_eid] = _peer;\n emit PeerSet(_eid, _peer);\n }\n\n /**\n * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\n * ie. the peer is set to bytes32(0).\n * @param _eid The endpoint ID.\n * @return peer The address of the peer associated with the specified endpoint.\n */\n function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\n bytes32 peer = peers[_eid];\n if (peer == bytes32(0)) revert NoPeer(_eid);\n return peer;\n }\n\n /**\n * @notice Sets the delegate address for the OApp.\n * @param _delegate The address of the delegate to be set.\n *\n * @dev Only the owner/admin of the OApp can call this function.\n * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\n */\n function setDelegate(address _delegate) public onlyOwner {\n endpoint.setDelegate(_delegate);\n }\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { IOAppReceiver, Origin } from \"./interfaces/IOAppReceiver.sol\";\nimport { OAppCore } from \"./OAppCore.sol\";\n\n/**\n * @title OAppReceiver\n * @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\n */\nabstract contract OAppReceiver is IOAppReceiver, OAppCore {\n // Custom error message for when the caller is not the registered endpoint/\n error OnlyEndpoint(address addr);\n\n // @dev The version of the OAppReceiver implementation.\n // @dev Version is bumped when changes are made to this contract.\n uint64 internal constant RECEIVER_VERSION = 2;\n\n /**\n * @notice Retrieves the OApp version information.\n * @return senderVersion The version of the OAppSender.sol contract.\n * @return receiverVersion The version of the OAppReceiver.sol contract.\n *\n * @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\n * ie. this is a RECEIVE only OApp.\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\n */\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\n return (0, RECEIVER_VERSION);\n }\n\n /**\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\n * @dev _origin The origin information containing the source endpoint and sender address.\n * - srcEid: The source chain endpoint ID.\n * - sender: The sender address on the src chain.\n * - nonce: The nonce of the message.\n * @dev _message The lzReceive payload.\n * @param _sender The sender address.\n * @return isSender Is a valid sender.\n *\n * @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\n * @dev The default sender IS the OAppReceiver implementer.\n */\n function isComposeMsgSender(\n Origin calldata /*_origin*/,\n bytes calldata /*_message*/,\n address _sender\n ) public view virtual returns (bool) {\n return _sender == address(this);\n }\n\n /**\n * @notice Checks if the path initialization is allowed based on the provided origin.\n * @param origin The origin information containing the source endpoint and sender address.\n * @return Whether the path has been initialized.\n *\n * @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\n * @dev This defaults to assuming if a peer has been set, its initialized.\n * Can be overridden by the OApp if there is other logic to determine this.\n */\n function allowInitializePath(Origin calldata origin) public view virtual returns (bool) {\n return peers[origin.srcEid] == origin.sender;\n }\n\n /**\n * @notice Retrieves the next nonce for a given source endpoint and sender address.\n * @dev _srcEid The source endpoint ID.\n * @dev _sender The sender address.\n * @return nonce The next nonce.\n *\n * @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\n * @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\n * @dev This is also enforced by the OApp.\n * @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\n */\n function nextNonce(uint32 /*_srcEid*/, bytes32 /*_sender*/) public view virtual returns (uint64 nonce) {\n return 0;\n }\n\n /**\n * @dev Entry point for receiving messages or packets from the endpoint.\n * @param _origin The origin information containing the source endpoint and sender address.\n * - srcEid: The source chain endpoint ID.\n * - sender: The sender address on the src chain.\n * - nonce: The nonce of the message.\n * @param _guid The unique identifier for the received LayerZero message.\n * @param _message The payload of the received message.\n * @param _executor The address of the executor for the received message.\n * @param _extraData Additional arbitrary data provided by the corresponding executor.\n *\n * @dev Entry point for receiving msg/packet from the LayerZero endpoint.\n */\n function lzReceive(\n Origin calldata _origin,\n bytes32 _guid,\n bytes calldata _message,\n address _executor,\n bytes calldata _extraData\n ) public payable virtual {\n // Ensures that only the endpoint can attempt to lzReceive() messages to this OApp.\n if (address(endpoint) != msg.sender) revert OnlyEndpoint(msg.sender);\n\n // Ensure that the sender matches the expected peer for the source endpoint.\n if (_getPeerOrRevert(_origin.srcEid) != _origin.sender) revert OnlyPeer(_origin.srcEid, _origin.sender);\n\n // Call the internal OApp implementation of lzReceive.\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\n }\n\n /**\n * @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation.\n */\n function _lzReceive(\n Origin calldata _origin,\n bytes32 _guid,\n bytes calldata _message,\n address _executor,\n bytes calldata _extraData\n ) internal virtual;\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { SafeERC20, IERC20 } from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\";\nimport { OAppCore } from \"./OAppCore.sol\";\n\n/**\n * @title OAppSender\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\n */\nabstract contract OAppSender is OAppCore {\n using SafeERC20 for IERC20;\n\n // Custom error messages\n error NotEnoughNative(uint256 msgValue);\n error LzTokenUnavailable();\n\n // @dev The version of the OAppSender implementation.\n // @dev Version is bumped when changes are made to this contract.\n uint64 internal constant SENDER_VERSION = 1;\n\n /**\n * @notice Retrieves the OApp version information.\n * @return senderVersion The version of the OAppSender.sol contract.\n * @return receiverVersion The version of the OAppReceiver.sol contract.\n *\n * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\n * ie. this is a SEND only OApp.\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\n */\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\n return (SENDER_VERSION, 0);\n }\n\n /**\n * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\n * @param _dstEid The destination endpoint ID.\n * @param _message The message payload.\n * @param _options Additional options for the message.\n * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\n * @return fee The calculated MessagingFee for the message.\n * - nativeFee: The native fee for the message.\n * - lzTokenFee: The LZ token fee for the message.\n */\n function _quote(\n uint32 _dstEid,\n bytes memory _message,\n bytes memory _options,\n bool _payInLzToken\n ) internal view virtual returns (MessagingFee memory fee) {\n return\n endpoint.quote(\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\n address(this)\n );\n }\n\n /**\n * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\n * @param _dstEid The destination endpoint ID.\n * @param _message The message payload.\n * @param _options Additional options for the message.\n * @param _fee The calculated LayerZero fee for the message.\n * - nativeFee: The native fee.\n * - lzTokenFee: The lzToken fee.\n * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\n * @return receipt The receipt for the sent message.\n * - guid: The unique identifier for the sent message.\n * - nonce: The nonce of the sent message.\n * - fee: The LayerZero fee incurred for the message.\n */\n function _lzSend(\n uint32 _dstEid,\n bytes memory _message,\n bytes memory _options,\n MessagingFee memory _fee,\n address _refundAddress\n ) internal virtual returns (MessagingReceipt memory receipt) {\n // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\n uint256 messageValue = _payNative(_fee.nativeFee);\n if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\n\n return\n // solhint-disable-next-line check-send-result\n endpoint.send{ value: messageValue }(\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\n _refundAddress\n );\n }\n\n /**\n * @dev Internal function to pay the native fee associated with the message.\n * @param _nativeFee The native fee to be paid.\n * @return nativeFee The amount of native currency paid.\n *\n * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\n * this will need to be overridden because msg.value would contain multiple lzFees.\n * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\n * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\n * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\n */\n function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\n if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\n return _nativeFee;\n }\n\n /**\n * @dev Internal function to pay the LZ token fee associated with the message.\n * @param _lzTokenFee The LZ token fee to be paid.\n *\n * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\n * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\n */\n function _payLzToken(uint256 _lzTokenFee) internal virtual {\n // @dev Cannot cache the token because it is not immutable in the endpoint.\n address lzToken = endpoint.lzToken();\n if (lzToken == address(0)) revert LzTokenUnavailable();\n\n // Pay LZ token fee by sending tokens to the endpoint.\n IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\n }\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\n// @dev Import the Origin so it's exposed to OAppPreCrimeSimulator implementers.\n// solhint-disable-next-line no-unused-import\nimport { InboundPacket, Origin } from \"../libs/Packet.sol\";\n\n/**\n * @title IOAppPreCrimeSimulator Interface\n * @dev Interface for the preCrime simulation functionality in an OApp.\n */\ninterface IOAppPreCrimeSimulator {\n // @dev simulation result used in PreCrime implementation\n error SimulationResult(bytes result);\n error OnlySelf();\n\n /**\n * @dev Emitted when the preCrime contract address is set.\n * @param preCrimeAddress The address of the preCrime contract.\n */\n event PreCrimeSet(address preCrimeAddress);\n\n /**\n * @dev Retrieves the address of the preCrime contract implementation.\n * @return The address of the preCrime contract.\n */\n function preCrime() external view returns (address);\n\n /**\n * @dev Retrieves the address of the OApp contract.\n * @return The address of the OApp contract.\n */\n function oApp() external view returns (address);\n\n /**\n * @dev Sets the preCrime contract address.\n * @param _preCrime The address of the preCrime contract.\n */\n function setPreCrime(address _preCrime) external;\n\n /**\n * @dev Mocks receiving a packet, then reverts with a series of data to infer the state/result.\n * @param _packets An array of LayerZero InboundPacket objects representing received packets.\n */\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) external payable;\n\n /**\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\n * @param _eid The endpoint Id to check.\n * @param _peer The peer to check.\n * @return Whether the peer passed is considered 'trusted' by the OApp.\n */\n function isPeer(uint32 _eid, bytes32 _peer) external view returns (bool);\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\nstruct PreCrimePeer {\n uint32 eid;\n bytes32 preCrime;\n bytes32 oApp;\n}\n\n// TODO not done yet\ninterface IPreCrime {\n error OnlyOffChain();\n\n // for simulate()\n error PacketOversize(uint256 max, uint256 actual);\n error PacketUnsorted();\n error SimulationFailed(bytes reason);\n\n // for preCrime()\n error SimulationResultNotFound(uint32 eid);\n error InvalidSimulationResult(uint32 eid, bytes reason);\n error CrimeFound(bytes crime);\n\n function getConfig(bytes[] calldata _packets, uint256[] calldata _packetMsgValues) external returns (bytes memory);\n\n function simulate(\n bytes[] calldata _packets,\n uint256[] calldata _packetMsgValues\n ) external payable returns (bytes memory);\n\n function buildSimulationResult() external view returns (bytes memory);\n\n function preCrime(\n bytes[] calldata _packets,\n uint256[] calldata _packetMsgValues,\n bytes[] calldata _simulations\n ) external;\n\n function version() external view returns (uint64 major, uint8 minor);\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { Origin } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\";\nimport { PacketV1Codec } from \"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\";\n\n/**\n * @title InboundPacket\n * @dev Structure representing an inbound packet received by the contract.\n */\nstruct InboundPacket {\n Origin origin; // Origin information of the packet.\n uint32 dstEid; // Destination endpointId of the packet.\n address receiver; // Receiver address for the packet.\n bytes32 guid; // Unique identifier of the packet.\n uint256 value; // msg.value of the packet.\n address executor; // Executor address for the packet.\n bytes message; // Message payload of the packet.\n bytes extraData; // Additional arbitrary data for the packet.\n}\n\n/**\n * @title PacketDecoder\n * @dev Library for decoding LayerZero packets.\n */\nlibrary PacketDecoder {\n using PacketV1Codec for bytes;\n\n /**\n * @dev Decode an inbound packet from the given packet data.\n * @param _packet The packet data to decode.\n * @return packet An InboundPacket struct representing the decoded packet.\n */\n function decode(bytes calldata _packet) internal pure returns (InboundPacket memory packet) {\n packet.origin = Origin(_packet.srcEid(), _packet.sender(), _packet.nonce());\n packet.dstEid = _packet.dstEid();\n packet.receiver = _packet.receiverB20();\n packet.guid = _packet.guid();\n packet.message = _packet.message();\n }\n\n /**\n * @dev Decode multiple inbound packets from the given packet data and associated message values.\n * @param _packets An array of packet data to decode.\n * @param _packetMsgValues An array of associated message values for each packet.\n * @return packets An array of InboundPacket structs representing the decoded packets.\n */\n function decode(\n bytes[] calldata _packets,\n uint256[] memory _packetMsgValues\n ) internal pure returns (InboundPacket[] memory packets) {\n packets = new InboundPacket[](_packets.length);\n for (uint256 i = 0; i < _packets.length; i++) {\n bytes calldata packet = _packets[i];\n packets[i] = PacketDecoder.decode(packet);\n // @dev Allows the verifier to specify the msg.value that gets passed in lzReceive.\n packets[i].value = _packetMsgValues[i];\n }\n }\n}\n"},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport { Ownable } from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport { IPreCrime } from \"./interfaces/IPreCrime.sol\";\nimport { IOAppPreCrimeSimulator, InboundPacket, Origin } from \"./interfaces/IOAppPreCrimeSimulator.sol\";\n\n/**\n * @title OAppPreCrimeSimulator\n * @dev Abstract contract serving as the base for preCrime simulation functionality in an OApp.\n */\nabstract contract OAppPreCrimeSimulator is IOAppPreCrimeSimulator, Ownable {\n // The address of the preCrime implementation.\n address public preCrime;\n\n /**\n * @dev Retrieves the address of the OApp contract.\n * @return The address of the OApp contract.\n *\n * @dev The simulator contract is the base contract for the OApp by default.\n * @dev If the simulator is a separate contract, override this function.\n */\n function oApp() external view virtual returns (address) {\n return address(this);\n }\n\n /**\n * @dev Sets the preCrime contract address.\n * @param _preCrime The address of the preCrime contract.\n */\n function setPreCrime(address _preCrime) public virtual onlyOwner {\n preCrime = _preCrime;\n emit PreCrimeSet(_preCrime);\n }\n\n /**\n * @dev Interface for pre-crime simulations. Always reverts at the end with the simulation results.\n * @param _packets An array of InboundPacket objects representing received packets to be delivered.\n *\n * @dev WARNING: MUST revert at the end with the simulation results.\n * @dev Gives the preCrime implementation the ability to mock sending packets to the lzReceive function,\n * WITHOUT actually executing them.\n */\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) public payable virtual {\n for (uint256 i = 0; i < _packets.length; i++) {\n InboundPacket calldata packet = _packets[i];\n\n // Ignore packets that are not from trusted peers.\n if (!isPeer(packet.origin.srcEid, packet.origin.sender)) continue;\n\n // @dev Because a verifier is calling this function, it doesnt have access to executor params:\n // - address _executor\n // - bytes calldata _extraData\n // preCrime will NOT work for OApps that rely on these two parameters inside of their _lzReceive().\n // They are instead stubbed to default values, address(0) and bytes(\"\")\n // @dev Calling this.lzReceiveSimulate removes ability for assembly return 0 callstack exit,\n // which would cause the revert to be ignored.\n this.lzReceiveSimulate{ value: packet.value }(\n packet.origin,\n packet.guid,\n packet.message,\n packet.executor,\n packet.extraData\n );\n }\n\n // @dev Revert with the simulation results. msg.sender must implement IPreCrime.buildSimulationResult().\n revert SimulationResult(IPreCrime(msg.sender).buildSimulationResult());\n }\n\n /**\n * @dev Is effectively an internal function because msg.sender must be address(this).\n * Allows resetting the call stack for 'internal' calls.\n * @param _origin The origin information containing the source endpoint and sender address.\n * - srcEid: The source chain endpoint ID.\n * - sender: The sender address on the src chain.\n * - nonce: The nonce of the message.\n * @param _guid The unique identifier of the packet.\n * @param _message The message payload of the packet.\n * @param _executor The executor address for the packet.\n * @param _extraData Additional data for the packet.\n */\n function lzReceiveSimulate(\n Origin calldata _origin,\n bytes32 _guid,\n bytes calldata _message,\n address _executor,\n bytes calldata _extraData\n ) external payable virtual {\n // @dev Ensure ONLY can be called 'internally'.\n if (msg.sender != address(this)) revert OnlySelf();\n _lzReceiveSimulate(_origin, _guid, _message, _executor, _extraData);\n }\n\n /**\n * @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\n * @param _origin The origin information.\n * - srcEid: The source chain endpoint ID.\n * - sender: The sender address from the src chain.\n * - nonce: The nonce of the LayerZero message.\n * @param _guid The GUID of the LayerZero message.\n * @param _message The LayerZero message.\n * @param _executor The address of the off-chain executor.\n * @param _extraData Arbitrary data passed by the msg executor.\n *\n * @dev Enables the preCrime simulator to mock sending lzReceive() messages,\n * routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\n */\n function _lzReceiveSimulate(\n Origin calldata _origin,\n bytes32 _guid,\n bytes calldata _message,\n address _executor,\n bytes calldata _extraData\n ) internal virtual;\n\n /**\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\n * @param _eid The endpoint Id to check.\n * @param _peer The peer to check.\n * @return Whether the peer passed is considered 'trusted' by the OApp.\n */\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual returns (bool);\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\nimport { IMessageLibManager } from \"./IMessageLibManager.sol\";\nimport { IMessagingComposer } from \"./IMessagingComposer.sol\";\nimport { IMessagingChannel } from \"./IMessagingChannel.sol\";\nimport { IMessagingContext } from \"./IMessagingContext.sol\";\n\nstruct MessagingParams {\n uint32 dstEid;\n bytes32 receiver;\n bytes message;\n bytes options;\n bool payInLzToken;\n}\n\nstruct MessagingReceipt {\n bytes32 guid;\n uint64 nonce;\n MessagingFee fee;\n}\n\nstruct MessagingFee {\n uint256 nativeFee;\n uint256 lzTokenFee;\n}\n\nstruct Origin {\n uint32 srcEid;\n bytes32 sender;\n uint64 nonce;\n}\n\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\n\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\n\n event PacketDelivered(Origin origin, address receiver);\n\n event LzReceiveAlert(\n address indexed receiver,\n address indexed executor,\n Origin origin,\n bytes32 guid,\n uint256 gas,\n uint256 value,\n bytes message,\n bytes extraData,\n bytes reason\n );\n\n event LzTokenSet(address token);\n\n event DelegateSet(address sender, address delegate);\n\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\n\n function send(\n MessagingParams calldata _params,\n address _refundAddress\n ) external payable returns (MessagingReceipt memory);\n\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\n\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\n\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\n\n function lzReceive(\n Origin calldata _origin,\n address _receiver,\n bytes32 _guid,\n bytes calldata _message,\n bytes calldata _extraData\n ) external payable;\n\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\n\n function setLzToken(address _lzToken) external;\n\n function lzToken() external view returns (address);\n\n function nativeToken() external view returns (address);\n\n function setDelegate(address _delegate) external;\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\nimport { Origin } from \"./ILayerZeroEndpointV2.sol\";\n\ninterface ILayerZeroReceiver {\n function allowInitializePath(Origin calldata _origin) external view returns (bool);\n\n function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\n\n function lzReceive(\n Origin calldata _origin,\n bytes32 _guid,\n bytes calldata _message,\n address _executor,\n bytes calldata _extraData\n ) external payable;\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\nimport { IERC165 } from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport { SetConfigParam } from \"./IMessageLibManager.sol\";\n\nenum MessageLibType {\n Send,\n Receive,\n SendAndReceive\n}\n\ninterface IMessageLib is IERC165 {\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\n\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\n\n function isSupportedEid(uint32 _eid) external view returns (bool);\n\n // message libs of same major version are compatible\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\n\n function messageLibType() external view returns (MessageLibType);\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\nstruct SetConfigParam {\n uint32 eid;\n uint32 configType;\n bytes config;\n}\n\ninterface IMessageLibManager {\n struct Timeout {\n address lib;\n uint256 expiry;\n }\n\n event LibraryRegistered(address newLib);\n event DefaultSendLibrarySet(uint32 eid, address newLib);\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\n event SendLibrarySet(address sender, uint32 eid, address newLib);\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\n\n function registerLibrary(address _lib) external;\n\n function isRegisteredLibrary(address _lib) external view returns (bool);\n\n function getRegisteredLibraries() external view returns (address[] memory);\n\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\n\n function defaultSendLibrary(uint32 _eid) external view returns (address);\n\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\n\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\n\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\n\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\n\n function isSupportedEid(uint32 _eid) external view returns (bool);\n\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\n\n /// ------------------- OApp interfaces -------------------\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\n\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\n\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\n\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\n\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\n\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\n\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\n\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\n\n function getConfig(\n address _oapp,\n address _lib,\n uint32 _eid,\n uint32 _configType\n ) external view returns (bytes memory config);\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\ninterface IMessagingChannel {\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\n\n function eid() external view returns (uint32);\n\n // this is an emergency function if a message cannot be verified for some reasons\n // required to provide _nextNonce to avoid race condition\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\n\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\n\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\n\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\n\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\n\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\n\n function inboundPayloadHash(\n address _receiver,\n uint32 _srcEid,\n bytes32 _sender,\n uint64 _nonce\n ) external view returns (bytes32);\n\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\ninterface IMessagingComposer {\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\n event LzComposeAlert(\n address indexed from,\n address indexed to,\n address indexed executor,\n bytes32 guid,\n uint16 index,\n uint256 gas,\n uint256 value,\n bytes message,\n bytes extraData,\n bytes reason\n );\n\n function composeQueue(\n address _from,\n address _to,\n bytes32 _guid,\n uint16 _index\n ) external view returns (bytes32 messageHash);\n\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\n\n function lzCompose(\n address _from,\n address _to,\n bytes32 _guid,\n uint16 _index,\n bytes calldata _message,\n bytes calldata _extraData\n ) external payable;\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\ninterface IMessagingContext {\n function isSendingMessage() external view returns (bool);\n\n function getSendContext() external view returns (uint32 dstEid, address sender);\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\nimport { MessagingFee } from \"./ILayerZeroEndpointV2.sol\";\nimport { IMessageLib } from \"./IMessageLib.sol\";\n\nstruct Packet {\n uint64 nonce;\n uint32 srcEid;\n address sender;\n uint32 dstEid;\n bytes32 receiver;\n bytes32 guid;\n bytes message;\n}\n\ninterface ISendLib is IMessageLib {\n function send(\n Packet calldata _packet,\n bytes calldata _options,\n bool _payInLzToken\n ) external returns (MessagingFee memory, bytes memory encodedPacket);\n\n function quote(\n Packet calldata _packet,\n bytes calldata _options,\n bool _payInLzToken\n ) external view returns (MessagingFee memory);\n\n function setTreasury(address _treasury) external;\n\n function withdrawFee(address _to, uint256 _amount) external;\n\n function withdrawLzTokenFee(address _lzToken, address _to, uint256 _amount) external;\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"content":"// SPDX-License-Identifier: LZBL-1.2\n\npragma solidity ^0.8.20;\n\nlibrary AddressCast {\n error AddressCast_InvalidSizeForAddress();\n error AddressCast_InvalidAddress();\n\n function toBytes32(bytes calldata _addressBytes) internal pure returns (bytes32 result) {\n if (_addressBytes.length > 32) revert AddressCast_InvalidAddress();\n result = bytes32(_addressBytes);\n unchecked {\n uint256 offset = 32 - _addressBytes.length;\n result = result >> (offset * 8);\n }\n }\n\n function toBytes32(address _address) internal pure returns (bytes32 result) {\n result = bytes32(uint256(uint160(_address)));\n }\n\n function toBytes(bytes32 _addressBytes32, uint256 _size) internal pure returns (bytes memory result) {\n if (_size == 0 || _size > 32) revert AddressCast_InvalidSizeForAddress();\n result = new bytes(_size);\n unchecked {\n uint256 offset = 256 - _size * 8;\n assembly {\n mstore(add(result, 32), shl(offset, _addressBytes32))\n }\n }\n }\n\n function toAddress(bytes32 _addressBytes32) internal pure returns (address result) {\n result = address(uint160(uint256(_addressBytes32)));\n }\n\n function toAddress(bytes calldata _addressBytes) internal pure returns (address result) {\n if (_addressBytes.length != 20) revert AddressCast_InvalidAddress();\n result = address(bytes20(_addressBytes));\n }\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"content":"// SPDX-License-Identifier: LZBL-1.2\n\npragma solidity ^0.8.20;\n\nlibrary CalldataBytesLib {\n function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\n return uint8(_bytes[_start]);\n }\n\n function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\n unchecked {\n uint256 end = _start + 2;\n return uint16(bytes2(_bytes[_start:end]));\n }\n }\n\n function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\n unchecked {\n uint256 end = _start + 4;\n return uint32(bytes4(_bytes[_start:end]));\n }\n }\n\n function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\n unchecked {\n uint256 end = _start + 8;\n return uint64(bytes8(_bytes[_start:end]));\n }\n }\n\n function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\n unchecked {\n uint256 end = _start + 16;\n return uint128(bytes16(_bytes[_start:end]));\n }\n }\n\n function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\n unchecked {\n uint256 end = _start + 32;\n return uint256(bytes32(_bytes[_start:end]));\n }\n }\n\n function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\n unchecked {\n uint256 end = _start + 20;\n return address(bytes20(_bytes[_start:end]));\n }\n }\n\n function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\n unchecked {\n uint256 end = _start + 32;\n return bytes32(_bytes[_start:end]);\n }\n }\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"content":"// SPDX-License-Identifier: MIT\n\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\npragma solidity ^0.8.20;\n\ntype BitMap256 is uint256;\n\nusing BitMaps for BitMap256 global;\n\nlibrary BitMaps {\n /**\n * @dev Returns whether the bit at `index` is set.\n */\n function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\n uint256 mask = 1 << index;\n return BitMap256.unwrap(bitmap) & mask != 0;\n }\n\n /**\n * @dev Sets the bit at `index`.\n */\n function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\n uint256 mask = 1 << index;\n return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\n }\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"content":"// SPDX-License-Identifier: LZBL-1.2\n\npragma solidity ^0.8.20;\n\nimport { CalldataBytesLib } from \"../../libs/CalldataBytesLib.sol\";\n\nlibrary ExecutorOptions {\n using CalldataBytesLib for bytes;\n\n uint8 internal constant WORKER_ID = 1;\n\n uint8 internal constant OPTION_TYPE_LZRECEIVE = 1;\n uint8 internal constant OPTION_TYPE_NATIVE_DROP = 2;\n uint8 internal constant OPTION_TYPE_LZCOMPOSE = 3;\n uint8 internal constant OPTION_TYPE_ORDERED_EXECUTION = 4;\n\n error Executor_InvalidLzReceiveOption();\n error Executor_InvalidNativeDropOption();\n error Executor_InvalidLzComposeOption();\n\n /// @dev decode the next executor option from the options starting from the specified cursor\n /// @param _options [executor_id][executor_option][executor_id][executor_option]...\n /// executor_option = [option_size][option_type][option]\n /// option_size = len(option_type) + len(option)\n /// executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\n /// @param _cursor the cursor to start decoding from\n /// @return optionType the type of the option\n /// @return option the option of the executor\n /// @return cursor the cursor to start decoding the next executor option\n function nextExecutorOption(\n bytes calldata _options,\n uint256 _cursor\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\n unchecked {\n // skip worker id\n cursor = _cursor + 1;\n\n // read option size\n uint16 size = _options.toU16(cursor);\n cursor += 2;\n\n // read option type\n optionType = _options.toU8(cursor);\n\n // startCursor and endCursor are used to slice the option from _options\n uint256 startCursor = cursor + 1; // skip option type\n uint256 endCursor = cursor + size;\n option = _options[startCursor:endCursor];\n cursor += size;\n }\n }\n\n function decodeLzReceiveOption(bytes calldata _option) internal pure returns (uint128 gas, uint128 value) {\n if (_option.length != 16 && _option.length != 32) revert Executor_InvalidLzReceiveOption();\n gas = _option.toU128(0);\n value = _option.length == 32 ? _option.toU128(16) : 0;\n }\n\n function decodeNativeDropOption(bytes calldata _option) internal pure returns (uint128 amount, bytes32 receiver) {\n if (_option.length != 48) revert Executor_InvalidNativeDropOption();\n amount = _option.toU128(0);\n receiver = _option.toB32(16);\n }\n\n function decodeLzComposeOption(\n bytes calldata _option\n ) internal pure returns (uint16 index, uint128 gas, uint128 value) {\n if (_option.length != 18 && _option.length != 34) revert Executor_InvalidLzComposeOption();\n index = _option.toU16(0);\n gas = _option.toU128(2);\n value = _option.length == 34 ? _option.toU128(18) : 0;\n }\n\n function encodeLzReceiveOption(uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\n return _value == 0 ? abi.encodePacked(_gas) : abi.encodePacked(_gas, _value);\n }\n\n function encodeNativeDropOption(uint128 _amount, bytes32 _receiver) internal pure returns (bytes memory) {\n return abi.encodePacked(_amount, _receiver);\n }\n\n function encodeLzComposeOption(uint16 _index, uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\n return _value == 0 ? abi.encodePacked(_index, _gas) : abi.encodePacked(_index, _gas, _value);\n }\n}\n"},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"content":"// SPDX-License-Identifier: LZBL-1.2\n\npragma solidity ^0.8.20;\n\nimport { Packet } from \"../../interfaces/ISendLib.sol\";\nimport { AddressCast } from \"../../libs/AddressCast.sol\";\n\nlibrary PacketV1Codec {\n using AddressCast for address;\n using AddressCast for bytes32;\n\n uint8 internal constant PACKET_VERSION = 1;\n\n // header (version + nonce + path)\n // version\n uint256 private constant PACKET_VERSION_OFFSET = 0;\n // nonce\n uint256 private constant NONCE_OFFSET = 1;\n // path\n uint256 private constant SRC_EID_OFFSET = 9;\n uint256 private constant SENDER_OFFSET = 13;\n uint256 private constant DST_EID_OFFSET = 45;\n uint256 private constant RECEIVER_OFFSET = 49;\n // payload (guid + message)\n uint256 private constant GUID_OFFSET = 81; // keccak256(nonce + path)\n uint256 private constant MESSAGE_OFFSET = 113;\n\n function encode(Packet memory _packet) internal pure returns (bytes memory encodedPacket) {\n encodedPacket = abi.encodePacked(\n PACKET_VERSION,\n _packet.nonce,\n _packet.srcEid,\n _packet.sender.toBytes32(),\n _packet.dstEid,\n _packet.receiver,\n _packet.guid,\n _packet.message\n );\n }\n\n function encodePacketHeader(Packet memory _packet) internal pure returns (bytes memory) {\n return\n abi.encodePacked(\n PACKET_VERSION,\n _packet.nonce,\n _packet.srcEid,\n _packet.sender.toBytes32(),\n _packet.dstEid,\n _packet.receiver\n );\n }\n\n function encodePayload(Packet memory _packet) internal pure returns (bytes memory) {\n return abi.encodePacked(_packet.guid, _packet.message);\n }\n\n function header(bytes calldata _packet) internal pure returns (bytes calldata) {\n return _packet[0:GUID_OFFSET];\n }\n\n function version(bytes calldata _packet) internal pure returns (uint8) {\n return uint8(bytes1(_packet[PACKET_VERSION_OFFSET:NONCE_OFFSET]));\n }\n\n function nonce(bytes calldata _packet) internal pure returns (uint64) {\n return uint64(bytes8(_packet[NONCE_OFFSET:SRC_EID_OFFSET]));\n }\n\n function srcEid(bytes calldata _packet) internal pure returns (uint32) {\n return uint32(bytes4(_packet[SRC_EID_OFFSET:SENDER_OFFSET]));\n }\n\n function sender(bytes calldata _packet) internal pure returns (bytes32) {\n return bytes32(_packet[SENDER_OFFSET:DST_EID_OFFSET]);\n }\n\n function senderAddressB20(bytes calldata _packet) internal pure returns (address) {\n return sender(_packet).toAddress();\n }\n\n function dstEid(bytes calldata _packet) internal pure returns (uint32) {\n return uint32(bytes4(_packet[DST_EID_OFFSET:RECEIVER_OFFSET]));\n }\n\n function receiver(bytes calldata _packet) internal pure returns (bytes32) {\n return bytes32(_packet[RECEIVER_OFFSET:GUID_OFFSET]);\n }\n\n function receiverB20(bytes calldata _packet) internal pure returns (address) {\n return receiver(_packet).toAddress();\n }\n\n function guid(bytes calldata _packet) internal pure returns (bytes32) {\n return bytes32(_packet[GUID_OFFSET:MESSAGE_OFFSET]);\n }\n\n function message(bytes calldata _packet) internal pure returns (bytes calldata) {\n return bytes(_packet[MESSAGE_OFFSET:]);\n }\n\n function payload(bytes calldata _packet) internal pure returns (bytes calldata) {\n return bytes(_packet[GUID_OFFSET:]);\n }\n\n function payloadHash(bytes calldata _packet) internal pure returns (bytes32) {\n return keccak256(payload(_packet));\n }\n}\n"},"@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.22;\n\n/// @title ONFT Composed Message Codec\n/// @notice Library for encoding and decoding ONFT composed messages.\nlibrary ONFTComposeMsgCodec {\n // Offset constants for decoding composed messages\n uint8 private constant NONCE_OFFSET = 8;\n uint8 private constant SRC_EID_OFFSET = 12;\n uint8 private constant COMPOSE_FROM_OFFSET = 44;\n\n /// @dev Encodes a ONFT721 composed message.\n /// @param _nonce The nonce value.\n /// @param _srcEid The source LayerZero endpoint ID.\n /// @param _composeMsg The composed message.\n /// @return payload The encoded payload, including the composed message.\n function encode(\n uint64 _nonce,\n uint32 _srcEid,\n bytes memory _composeMsg // 0x[composeFrom][composeMsg]\n ) internal pure returns (bytes memory payload) {\n payload = abi.encodePacked(_nonce, _srcEid, _composeMsg);\n }\n\n /// @dev Retrieves the nonce from the composed message.\n /// @param _msg The message.\n /// @return parsedNonce The nonce value.\n function nonce(bytes calldata _msg) internal pure returns (uint64 parsedNonce) {\n parsedNonce = uint64(bytes8(_msg[:NONCE_OFFSET]));\n }\n\n /// @dev Retrieves the source LayerZero endpoint ID from the composed message.\n /// @param _msg The message.\n /// @return parsedSrcEid The source LayerZero endpoint ID.\n function srcEid(bytes calldata _msg) internal pure returns (uint32 parsedSrcEid) {\n parsedSrcEid = uint32(bytes4(_msg[NONCE_OFFSET:SRC_EID_OFFSET]));\n }\n\n /// @dev Retrieves the composeFrom value from the composed message.\n /// @param _msg The message.\n /// @return parsedComposeFrom The composeFrom value as bytes32.\n function composeFrom(bytes calldata _msg) internal pure returns (bytes32 parsedComposeFrom) {\n parsedComposeFrom = bytes32(_msg[SRC_EID_OFFSET:COMPOSE_FROM_OFFSET]);\n }\n\n /// @dev Retrieves the composed message.\n /// @param _msg The message.\n /// @return parsedComposeMsg The composed message.\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\n parsedComposeMsg = _msg[COMPOSE_FROM_OFFSET:];\n }\n\n /// @dev Converts an address to bytes32.\n /// @param _addr The address to convert.\n /// @return bytes32Repr The bytes32 representation of the address.\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\n bytes32Repr = bytes32(uint256(uint160(_addr)));\n }\n\n /// @dev Converts bytes32 to an address.\n /// @param _b The bytes32 value to convert.\n /// @return addressRepr The address representation of bytes32.\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\n addressRepr = address(uint160(uint256(_b)));\n }\n}\n"},"@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.22;\n\nimport { MessagingFee, MessagingReceipt } from \"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\";\n\n/// @dev Struct representing token parameters for the ONFT send() operation.\nstruct SendParam {\n uint32 dstEid; // Destination LayerZero EndpointV2 ID.\n bytes32 to; // Recipient address.\n uint256 tokenId;\n bytes extraOptions; // Additional options supplied by the caller to be used in the LayerZero message.\n bytes composeMsg; // The composed message for the send() operation.\n bytes onftCmd; // The ONFT command to be executed, unused in default ONFT implementations.\n}\n\n/// @title IONFT\n/// @dev Interface for the ONFT721 token.\n/// @dev Does not inherit ERC721 to accommodate usage by OFT721Adapter.\ninterface IONFT721 {\n // Custom error messages\n error InvalidReceiver();\n error OnlyNFTOwner(address caller, address owner);\n\n // Events\n event ONFTSent(\n bytes32 indexed guid, // GUID of the ONFT message.\n uint32 dstEid, // Destination Endpoint ID.\n address indexed fromAddress, // Address of the sender on the src chain.\n uint256 tokenId // ONFT ID sent.\n );\n\n event ONFTReceived(\n bytes32 indexed guid, // GUID of the ONFT message.\n uint32 srcEid, // Source Endpoint ID.\n address indexed toAddress, // Address of the recipient on the dst chain.\n uint256 tokenId // ONFT ID received.\n );\n\n /// @notice Retrieves interfaceID and the version of the ONFT.\n /// @return interfaceId The interface ID.\n /// @return version The version.\n /// @dev interfaceId: This specific interface ID is '0x94642228'.\n /// @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\n /// @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\n /// ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\n function onftVersion() external view returns (bytes4 interfaceId, uint64 version);\n\n /// @notice Retrieves the address of the token associated with the ONFT.\n /// @return token The address of the ERC721 token implementation.\n function token() external view returns (address);\n\n /// @notice Indicates whether the OFT contract requires approval of the 'token()' to send.\n /// @return requiresApproval Needs approval of the underlying token implementation.\n /// @dev Allows things like wallet implementers to determine integration requirements,\n /// without understanding the underlying token implementation.\n function approvalRequired() external view returns (bool);\n\n /// @notice Provides a quote for the send() operation.\n /// @param _sendParam The parameters for the send() operation.\n /// @param _payInLzToken Flag indicating whether the caller is paying in the LZ token.\n /// @return fee The calculated LayerZero messaging fee from the send() operation.\n /// @dev MessagingFee: LayerZero msg fee\n /// - nativeFee: The native fee.\n /// - lzTokenFee: The lzToken fee.\n function quoteSend(SendParam calldata _sendParam, bool _payInLzToken) external view returns (MessagingFee memory);\n\n /// @notice Executes the send() operation.\n /// @param _sendParam The parameters for the send operation.\n /// @param _fee The fee information supplied by the caller.\n /// - nativeFee: The native fee.\n /// - lzTokenFee: The lzToken fee.\n /// @param _refundAddress The address to receive any excess funds from fees etc. on the src.\n /// @return receipt The LayerZero messaging receipt from the send() operation.\n /// @dev MessagingReceipt: LayerZero msg receipt\n /// - guid: The unique identifier for the sent message.\n /// - nonce: The nonce of the sent message.\n /// - fee: The LayerZero fee incurred for the message.\n function send(\n SendParam calldata _sendParam,\n MessagingFee calldata _fee,\n address _refundAddress\n ) external payable returns (MessagingReceipt memory);\n}\n"},"@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.22;\n\n/// @title ONFT721MsgCodec\n/// @notice Library for encoding and decoding ONFT721 LayerZero messages.\nlibrary ONFT721MsgCodec {\n uint8 private constant SEND_TO_OFFSET = 32;\n uint8 private constant TOKEN_ID_OFFSET = 64;\n\n /// @dev Encodes an ONFT721 LayerZero message payload.\n /// @param _sendTo The recipient address.\n /// @param _tokenId The ID of the token to transfer.\n /// @param _composeMsg The composed payload.\n /// @return payload The encoded message payload.\n /// @return hasCompose A boolean indicating whether the message payload contains a composed payload.\n function encode(\n bytes32 _sendTo,\n uint256 _tokenId,\n bytes memory _composeMsg\n ) internal view returns (bytes memory payload, bool hasCompose) {\n hasCompose = _composeMsg.length > 0;\n payload = hasCompose\n ? abi.encodePacked(_sendTo, _tokenId, addressToBytes32(msg.sender), _composeMsg)\n : abi.encodePacked(_sendTo, _tokenId);\n }\n\n /// @dev Decodes sendTo from the ONFT LayerZero message.\n /// @param _msg The message.\n /// @return parsedSendTo The recipient address in bytes32 format.\n function sendTo(bytes calldata _msg) internal pure returns (bytes32 parsedSendTo) {\n parsedSendTo = bytes32(_msg[:SEND_TO_OFFSET]);\n }\n\n /// @dev Decodes tokenId from the ONFT LayerZero message.\n /// @param _msg The message.\n /// @return parsedTokenId The ID of the tokens to transfer.\n function tokenId(bytes calldata _msg) internal pure returns (uint256 parsedTokenId) {\n parsedTokenId = abi.decode(_msg[SEND_TO_OFFSET:TOKEN_ID_OFFSET], (uint256));\n }\n\n /// @dev Decodes whether there is a composed payload.\n /// @param _msg The message.\n /// @return parsedIsComposed A boolean indicating whether the message has a composed payload.\n function isComposed(bytes calldata _msg) internal pure returns (bool parsedIsComposed) {\n parsedIsComposed = _msg.length > TOKEN_ID_OFFSET;\n }\n\n /// @dev Decodes the composed message.\n /// @param _msg The message.\n /// @return parsedComposeMsg The composed message.\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\n parsedComposeMsg = _msg[TOKEN_ID_OFFSET:];\n }\n\n /// @dev Converts an address to bytes32.\n /// @param _addr The address to convert.\n /// @return bytes32Repr The bytes32 representation of the address.\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\n bytes32Repr = bytes32(uint256(uint160(_addr)));\n }\n\n /// @dev Converts bytes32 to an address.\n /// @param _b The bytes32 value to convert.\n /// @return addressRepr The address representation of bytes32.\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\n addressRepr = address(uint160(uint256(_b)));\n }\n}\n"},"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.22;\n\nimport { ERC721 } from \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\nimport { IONFT721, ONFT721Core } from \"./ONFT721Core.sol\";\n\n/// @title ONFT721 Contract\n/// @dev ONFT721 is an ERC-721 token that extends the functionality of the ONFT721Core contract.\nabstract contract ONFT721 is ONFT721Core, ERC721 {\n /// @dev Constructor for the ONFT721 contract.\n /// @param _name The name of the ONFT.\n /// @param _symbol The symbol of the ONFT.\n /// @param _lzEndpoint The LayerZero endpoint address.\n /// @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\n constructor(\n string memory _name,\n string memory _symbol,\n address _lzEndpoint,\n address _delegate\n ) ERC721(_name, _symbol) ONFT721Core(_lzEndpoint, _delegate) {}\n\n /// @notice Retrieves the address of the underlying ERC721 implementation (ie. this contract).\n function token() external view returns (address) {\n return address(this);\n }\n\n /// @notice Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\n /// @dev In the case of ONFT where the contract IS the token, approval is NOT required.\n /// @return requiresApproval Needs approval of the underlying token implementation.\n function approvalRequired() external pure virtual returns (bool) {\n return false;\n }\n\n function _debit(address _from, uint256 _tokenId, uint32 /*_dstEid*/) internal virtual override {\n if (_from != ERC721.ownerOf(_tokenId)) revert OnlyNFTOwner(_from, ERC721.ownerOf(_tokenId));\n _burn(_tokenId);\n }\n\n function _credit(address _to, uint256 _tokenId, uint32 /*_srcEid*/) internal virtual override {\n _mint(_to, _tokenId);\n }\n}\n"},"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.22;\n\nimport { OApp, Origin } from \"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\";\nimport { IOAppMsgInspector } from \"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\";\nimport { OAppOptionsType3 } from \"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\";\n\nimport { OAppPreCrimeSimulator } from \"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\";\n\nimport { IONFT721, MessagingFee, MessagingReceipt, SendParam } from \"./interfaces/IONFT721.sol\";\nimport { ONFT721MsgCodec } from \"./libs/ONFT721MsgCodec.sol\";\nimport { ONFTComposeMsgCodec } from \"../libs/ONFTComposeMsgCodec.sol\";\nimport { OptionsBuilder } from \"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\";\n\nimport { SafeCast } from \"@openzeppelin/contracts/utils/math/SafeCast.sol\";\n\nimport { Ownable } from \"@openzeppelin/contracts/access/Ownable.sol\";\n\n/// @title ONFT721Core\n/// @dev Abstract contract for an ONFT721 token.\nabstract contract ONFT721Core is IONFT721, OApp, OAppPreCrimeSimulator, OAppOptionsType3 {\n using ONFT721MsgCodec for bytes;\n using ONFT721MsgCodec for bytes32;\n using ONFT721MsgCodec for uint256;\n using OptionsBuilder for bytes;\n\n // @notice Msg types that are used to identify the various OFT operations.\n // @dev This can be extended in child contracts for non-default oft operations\n // @dev These values are used in things like combineOptions() in OAppOptionsType3.sol.\n uint16 public constant SEND = 1;\n uint16 public constant SEND_AND_COMPOSE = 2;\n\n // Address of an optional contract to inspect both 'message' and 'options'\n address public msgInspector;\n\n event MsgInspectorSet(address inspector);\n\n /// @param _lzEndpoint The address of the LayerZero endpoint.\n /// @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\n constructor(address _lzEndpoint, address _delegate) Ownable(_delegate) OApp(_lzEndpoint, _delegate) {}\n\n /// @notice Retrieves interfaceID and the version of the ONFT.\n /// @return interfaceId The interface ID (0x94642228).\n /// @return version The version.\n /// @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\n /// @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\n /// @dev ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\n function onftVersion() external pure virtual returns (bytes4 interfaceId, uint64 version) {\n return (type(IONFT721).interfaceId, 1);\n }\n\n function quoteSend(\n SendParam calldata _sendParam,\n bool _payInLzToken\n ) external view virtual returns (MessagingFee memory msgFee) {\n if (_sendParam.to == bytes32(0)) revert InvalidReceiver();\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam);\n return _quote(_sendParam.dstEid, message, options, _payInLzToken);\n }\n\n function send(\n SendParam calldata _sendParam,\n MessagingFee calldata _fee,\n address _refundAddress\n ) external payable virtual returns (MessagingReceipt memory msgReceipt) {\n if (_sendParam.to == bytes32(0)) revert InvalidReceiver();\n _debit(msg.sender, _sendParam.tokenId, _sendParam.dstEid);\n\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam);\n\n // @dev Sends the message to the LayerZero Endpoint, returning the MessagingReceipt.\n msgReceipt = _lzSend(_sendParam.dstEid, message, options, _fee, _refundAddress);\n emit ONFTSent(msgReceipt.guid, _sendParam.dstEid, msg.sender, _sendParam.tokenId);\n }\n\n /// @dev Internal function to build the message and options.\n /// @param _sendParam The parameters for the send() operation.\n /// @return message The encoded message.\n /// @return options The encoded options.\n function _buildMsgAndOptions(\n SendParam calldata _sendParam\n ) internal view virtual returns (bytes memory message, bytes memory options) {\n bool hasCompose;\n (message, hasCompose) = ONFT721MsgCodec.encode(_sendParam.to, _sendParam.tokenId, _sendParam.composeMsg);\n uint16 msgType = hasCompose ? SEND_AND_COMPOSE : SEND;\n\n options = combineOptions(_sendParam.dstEid, msgType, _sendParam.extraOptions);\n\n // @dev Optionally inspect the message and options depending if the OApp owner has set a msg inspector.\n // @dev If it fails inspection, needs to revert in the implementation. ie. does not rely on return boolean\n if (msgInspector != address(0)) IOAppMsgInspector(msgInspector).inspect(message, options);\n }\n\n /// @dev Internal function to handle the receive on the LayerZero endpoint.\n /// @param _origin The origin information.\n /// - srcEid: The source chain endpoint ID.\n /// - sender: The sender address from the src chain.\n /// - nonce: The nonce of the LayerZero message.\n /// @param _guid The unique identifier for the received LayerZero message.\n /// @param _message The encoded message.\n /// @dev _executor The address of the executor.\n /// @dev _extraData Additional data.\n function _lzReceive(\n Origin calldata _origin,\n bytes32 _guid,\n bytes calldata _message,\n address /*_executor*/, // @dev unused in the default implementation.\n bytes calldata /*_extraData*/ // @dev unused in the default implementation.\n ) internal virtual override {\n address toAddress = _message.sendTo().bytes32ToAddress();\n uint256 tokenId = _message.tokenId();\n\n _credit(toAddress, tokenId, _origin.srcEid);\n\n if (_message.isComposed()) {\n bytes memory composeMsg = ONFTComposeMsgCodec.encode(_origin.nonce, _origin.srcEid, _message.composeMsg());\n endpoint.sendCompose(toAddress, _guid, 0 /* the index of composed message*/, composeMsg);\n }\n\n emit ONFTReceived(_guid, _origin.srcEid, toAddress, tokenId);\n }\n\n /// @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\n /// @param _origin The origin information.\n /// - srcEid: The source chain endpoint ID.\n /// - sender: The sender address from the src chain.\n /// - nonce: The nonce of the LayerZero message.\n /// @param _guid The unique identifier for the received LayerZero message.\n /// @param _message The LayerZero message.\n /// @param _executor The address of the off-chain executor.\n /// @param _extraData Arbitrary data passed by the msg executor.\n /// @dev Enables the preCrime simulator to mock sending lzReceive() messages,\n /// routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\n function _lzReceiveSimulate(\n Origin calldata _origin,\n bytes32 _guid,\n bytes calldata _message,\n address _executor,\n bytes calldata _extraData\n ) internal virtual override {\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\n }\n\n /// @dev Check if the peer is considered 'trusted' by the OApp.\n /// @param _eid The endpoint ID to check.\n /// @param _peer The peer to check.\n /// @return Whether the peer passed is considered 'trusted' by the OApp.\n /// @dev Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual override returns (bool) {\n return peers[_eid] == _peer;\n }\n\n /// @notice Sets the message inspector address for the OFT.\n /// @param _msgInspector The address of the message inspector.\n /// @dev This is an optional contract that can be used to inspect both 'message' and 'options'.\n /// @dev Set it to address(0) to disable it, or set it to a contract address to enable it.\n function setMsgInspector(address _msgInspector) public virtual onlyOwner {\n msgInspector = _msgInspector;\n emit MsgInspectorSet(_msgInspector);\n }\n\n function _debit(address /*_from*/, uint256 /*_tokenId*/, uint32 /*_dstEid*/) internal virtual;\n\n function _credit(address /*_to*/, uint256 /*_tokenId*/, uint32 /*_srcEid*/) internal virtual;\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n *\n * ==== Security Considerations\n *\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n * generally recommended is:\n *\n * ```solidity\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n * doThing(..., value);\n * }\n *\n * function doThing(..., uint256 value) public {\n * token.safeTransferFrom(msg.sender, address(this), value);\n * ...\n * }\n * ```\n *\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n * {SafeERC20-safeTransferFrom}).\n *\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n * contracts should have entry points that don't rely on permit.\n */\ninterface IERC20Permit {\n /**\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n * given ``owner``'s signed approval.\n *\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n * ordering also apply here.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `deadline` must be a timestamp in the future.\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n * over the EIP712-formatted function arguments.\n * - the signature must use ``owner``'s current nonce (see {nonces}).\n *\n * For more information on the signature format, see the\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n * section].\n *\n * CAUTION: See Security Considerations above.\n */\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n /**\n * @dev Returns the current nonce for `owner`. This value must be\n * included whenever a signature is generated for {permit}.\n *\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\n * prevents a signature from being used multiple times.\n */\n function nonces(address owner) external view returns (uint256);\n\n /**\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n */\n // solhint-disable-next-line func-name-mixedcase\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\nimport {IERC20Permit} from \"../extensions/IERC20Permit.sol\";\nimport {Address} from \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using Address for address;\n\n /**\n * @dev An operation with an ERC20 token failed.\n */\n error SafeERC20FailedOperation(address token);\n\n /**\n * @dev Indicates a failed `decreaseAllowance` request.\n */\n error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\n\n /**\n * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n * non-reverting calls are assumed to be successful.\n */\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\n _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\n }\n\n /**\n * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\n */\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\n _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\n }\n\n /**\n * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n * non-reverting calls are assumed to be successful.\n */\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n uint256 oldAllowance = token.allowance(address(this), spender);\n forceApprove(token, spender, oldAllowance + value);\n }\n\n /**\n * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\n * value, non-reverting calls are assumed to be successful.\n */\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\n unchecked {\n uint256 currentAllowance = token.allowance(address(this), spender);\n if (currentAllowance < requestedDecrease) {\n revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\n }\n forceApprove(token, spender, currentAllowance - requestedDecrease);\n }\n }\n\n /**\n * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n * to be set to zero before setting it to a non-zero value, such as USDT.\n */\n function forceApprove(IERC20 token, address spender, uint256 value) internal {\n bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\n\n if (!_callOptionalReturnBool(token, approvalCall)) {\n _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\n _callOptionalReturn(token, approvalCall);\n }\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(data);\n if (returndata.length != 0 && !abi.decode(returndata, (bool))) {\n revert SafeERC20FailedOperation(address(token));\n }\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n *\n * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\n */\n function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\n // and not revert is the subcall reverts.\n\n (bool success, bytes memory returndata) = address(token).call(data);\n return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && address(token).code.length > 0;\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"./IERC721.sol\";\nimport {IERC721Receiver} from \"./IERC721Receiver.sol\";\nimport {IERC721Metadata} from \"./extensions/IERC721Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {Strings} from \"../../utils/Strings.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {IERC721Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n mapping(uint256 tokenId => address) private _owners;\n\n mapping(address owner => uint256) private _balances;\n\n mapping(uint256 tokenId => address) private _tokenApprovals;\n\n mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual returns (uint256) {\n if (owner == address(0)) {\n revert ERC721InvalidOwner(address(0));\n }\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual returns (address) {\n return _requireOwned(tokenId);\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\n _requireOwned(tokenId);\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual {\n _approve(to, tokenId, _msgSender());\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual returns (address) {\n _requireOwned(tokenId);\n\n return _getApproved(tokenId);\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n address previousOwner = _update(to, tokenId, _msgSender());\n if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\n transferFrom(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n *\n * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\n */\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n return _owners[tokenId];\n }\n\n /**\n * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\n */\n function _getApproved(uint256 tokenId) internal view virtual returns (address) {\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n * particular (ignoring whether it is owned by `owner`).\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\n return\n spender != address(0) &&\n (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n * the `spender` for the specific `tokenId`.\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\n if (!_isAuthorized(owner, spender, tokenId)) {\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else {\n revert ERC721InsufficientApproval(spender, tokenId);\n }\n }\n }\n\n /**\n * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n *\n * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n *\n * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n * remain consistent with one another.\n */\n function _increaseBalance(address account, uint128 value) internal virtual {\n unchecked {\n _balances[account] += value;\n }\n }\n\n /**\n * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that\n * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n *\n * Emits a {Transfer} event.\n *\n * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\n */\n function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\n address from = _ownerOf(tokenId);\n\n // Perform (optional) operator check\n if (auth != address(0)) {\n _checkAuthorized(from, auth, tokenId);\n }\n\n // Execute the update\n if (from != address(0)) {\n // Clear approval. No need to re-authorize or emit the Approval event\n _approve(address(0), tokenId, address(0), false);\n\n unchecked {\n _balances[from] -= 1;\n }\n }\n\n if (to != address(0)) {\n unchecked {\n _balances[to] += 1;\n }\n }\n\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n return from;\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner != address(0)) {\n revert ERC721InvalidSender(address(0));\n }\n }\n\n /**\n * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n _mint(to, tokenId);\n _checkOnERC721Received(address(0), to, tokenId, data);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n * This is an internal function that does not check if the sender is authorized to operate on the token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal {\n address previousOwner = _update(address(0), tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n * are aware of the ERC721 standard to prevent tokens from being forever locked.\n *\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is like {safeTransferFrom} in the sense that it invokes\n * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `tokenId` token must exist and be owned by `from`.\n * - `to` cannot be the zero address.\n * - `from` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId) internal {\n _safeTransfer(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n _transfer(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n * either the owner of the token, or approved to operate on all tokens held by this owner.\n *\n * Emits an {Approval} event.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address to, uint256 tokenId, address auth) internal {\n _approve(to, tokenId, auth, true);\n }\n\n /**\n * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n * emitted in the context of transfers.\n */\n function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\n // Avoid reading the owner unless necessary\n if (emitEvent || auth != address(0)) {\n address owner = _requireOwned(tokenId);\n\n // We do not use _isAuthorized because single-token approvals should not be able to call approve\n if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\n revert ERC721InvalidApprover(auth);\n }\n\n if (emitEvent) {\n emit Approval(owner, to, tokenId);\n }\n }\n\n _tokenApprovals[tokenId] = to;\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Requirements:\n * - operator can't be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n if (operator == address(0)) {\n revert ERC721InvalidOperator(operator);\n }\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n * Returns the owner.\n *\n * Overrides to ownership logic should be done to {_ownerOf}.\n */\n function _requireOwned(uint256 tokenId) internal view returns (address) {\n address owner = _ownerOf(tokenId);\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n return owner;\n }\n\n /**\n * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param data bytes optional data to send along with the call\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {\n if (to.code.length > 0) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n if (retval != IERC721Receiver.onERC721Received.selector) {\n revert ERC721InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert ERC721InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n * {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n * reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev The ETH balance of the account is not enough to perform the operation.\n */\n error AddressInsufficientBalance(address account);\n\n /**\n * @dev There's no code at `target` (it is not a contract).\n */\n error AddressEmptyCode(address target);\n\n /**\n * @dev A call to an address target failed. The target may have reverted.\n */\n error FailedInnerCall();\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n if (address(this).balance < amount) {\n revert AddressInsufficientBalance(address(this));\n }\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n if (!success) {\n revert FailedInnerCall();\n }\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason or custom error, it is bubbled\n * up by this function (like regular Solidity function calls). However, if\n * the call reverted with no returned reason, this function reverts with a\n * {FailedInnerCall} error.\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n if (address(this).balance < value) {\n revert AddressInsufficientBalance(address(this));\n }\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n * unsuccessful call.\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata\n ) internal view returns (bytes memory) {\n if (!success) {\n _revert(returndata);\n } else {\n // only check if target is a contract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n if (returndata.length == 0 && target.code.length == 0) {\n revert AddressEmptyCode(target);\n }\n return returndata;\n }\n }\n\n /**\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n * revert reason or with a default {FailedInnerCall} error.\n */\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\n if (!success) {\n _revert(returndata);\n } else {\n return returndata;\n }\n }\n\n /**\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\n */\n function _revert(bytes memory returndata) private pure {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert FailedInnerCall();\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n"},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeCast {\n /**\n * @dev Value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\n\n /**\n * @dev An int value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedIntToUint(int256 value);\n\n /**\n * @dev Value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\n\n /**\n * @dev An uint value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedUintToInt(uint256 value);\n\n /**\n * @dev Returns the downcasted uint248 from uint256, reverting on\n * overflow (when the input is greater than largest uint248).\n *\n * Counterpart to Solidity's `uint248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toUint248(uint256 value) internal pure returns (uint248) {\n if (value > type(uint248).max) {\n revert SafeCastOverflowedUintDowncast(248, value);\n }\n return uint248(value);\n }\n\n /**\n * @dev Returns the downcasted uint240 from uint256, reverting on\n * overflow (when the input is greater than largest uint240).\n *\n * Counterpart to Solidity's `uint240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toUint240(uint256 value) internal pure returns (uint240) {\n if (value > type(uint240).max) {\n revert SafeCastOverflowedUintDowncast(240, value);\n }\n return uint240(value);\n }\n\n /**\n * @dev Returns the downcasted uint232 from uint256, reverting on\n * overflow (when the input is greater than largest uint232).\n *\n * Counterpart to Solidity's `uint232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toUint232(uint256 value) internal pure returns (uint232) {\n if (value > type(uint232).max) {\n revert SafeCastOverflowedUintDowncast(232, value);\n }\n return uint232(value);\n }\n\n /**\n * @dev Returns the downcasted uint224 from uint256, reverting on\n * overflow (when the input is greater than largest uint224).\n *\n * Counterpart to Solidity's `uint224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toUint224(uint256 value) internal pure returns (uint224) {\n if (value > type(uint224).max) {\n revert SafeCastOverflowedUintDowncast(224, value);\n }\n return uint224(value);\n }\n\n /**\n * @dev Returns the downcasted uint216 from uint256, reverting on\n * overflow (when the input is greater than largest uint216).\n *\n * Counterpart to Solidity's `uint216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toUint216(uint256 value) internal pure returns (uint216) {\n if (value > type(uint216).max) {\n revert SafeCastOverflowedUintDowncast(216, value);\n }\n return uint216(value);\n }\n\n /**\n * @dev Returns the downcasted uint208 from uint256, reverting on\n * overflow (when the input is greater than largest uint208).\n *\n * Counterpart to Solidity's `uint208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toUint208(uint256 value) internal pure returns (uint208) {\n if (value > type(uint208).max) {\n revert SafeCastOverflowedUintDowncast(208, value);\n }\n return uint208(value);\n }\n\n /**\n * @dev Returns the downcasted uint200 from uint256, reverting on\n * overflow (when the input is greater than largest uint200).\n *\n * Counterpart to Solidity's `uint200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toUint200(uint256 value) internal pure returns (uint200) {\n if (value > type(uint200).max) {\n revert SafeCastOverflowedUintDowncast(200, value);\n }\n return uint200(value);\n }\n\n /**\n * @dev Returns the downcasted uint192 from uint256, reverting on\n * overflow (when the input is greater than largest uint192).\n *\n * Counterpart to Solidity's `uint192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toUint192(uint256 value) internal pure returns (uint192) {\n if (value > type(uint192).max) {\n revert SafeCastOverflowedUintDowncast(192, value);\n }\n return uint192(value);\n }\n\n /**\n * @dev Returns the downcasted uint184 from uint256, reverting on\n * overflow (when the input is greater than largest uint184).\n *\n * Counterpart to Solidity's `uint184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toUint184(uint256 value) internal pure returns (uint184) {\n if (value > type(uint184).max) {\n revert SafeCastOverflowedUintDowncast(184, value);\n }\n return uint184(value);\n }\n\n /**\n * @dev Returns the downcasted uint176 from uint256, reverting on\n * overflow (when the input is greater than largest uint176).\n *\n * Counterpart to Solidity's `uint176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toUint176(uint256 value) internal pure returns (uint176) {\n if (value > type(uint176).max) {\n revert SafeCastOverflowedUintDowncast(176, value);\n }\n return uint176(value);\n }\n\n /**\n * @dev Returns the downcasted uint168 from uint256, reverting on\n * overflow (when the input is greater than largest uint168).\n *\n * Counterpart to Solidity's `uint168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toUint168(uint256 value) internal pure returns (uint168) {\n if (value > type(uint168).max) {\n revert SafeCastOverflowedUintDowncast(168, value);\n }\n return uint168(value);\n }\n\n /**\n * @dev Returns the downcasted uint160 from uint256, reverting on\n * overflow (when the input is greater than largest uint160).\n *\n * Counterpart to Solidity's `uint160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toUint160(uint256 value) internal pure returns (uint160) {\n if (value > type(uint160).max) {\n revert SafeCastOverflowedUintDowncast(160, value);\n }\n return uint160(value);\n }\n\n /**\n * @dev Returns the downcasted uint152 from uint256, reverting on\n * overflow (when the input is greater than largest uint152).\n *\n * Counterpart to Solidity's `uint152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toUint152(uint256 value) internal pure returns (uint152) {\n if (value > type(uint152).max) {\n revert SafeCastOverflowedUintDowncast(152, value);\n }\n return uint152(value);\n }\n\n /**\n * @dev Returns the downcasted uint144 from uint256, reverting on\n * overflow (when the input is greater than largest uint144).\n *\n * Counterpart to Solidity's `uint144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toUint144(uint256 value) internal pure returns (uint144) {\n if (value > type(uint144).max) {\n revert SafeCastOverflowedUintDowncast(144, value);\n }\n return uint144(value);\n }\n\n /**\n * @dev Returns the downcasted uint136 from uint256, reverting on\n * overflow (when the input is greater than largest uint136).\n *\n * Counterpart to Solidity's `uint136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toUint136(uint256 value) internal pure returns (uint136) {\n if (value > type(uint136).max) {\n revert SafeCastOverflowedUintDowncast(136, value);\n }\n return uint136(value);\n }\n\n /**\n * @dev Returns the downcasted uint128 from uint256, reverting on\n * overflow (when the input is greater than largest uint128).\n *\n * Counterpart to Solidity's `uint128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toUint128(uint256 value) internal pure returns (uint128) {\n if (value > type(uint128).max) {\n revert SafeCastOverflowedUintDowncast(128, value);\n }\n return uint128(value);\n }\n\n /**\n * @dev Returns the downcasted uint120 from uint256, reverting on\n * overflow (when the input is greater than largest uint120).\n *\n * Counterpart to Solidity's `uint120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toUint120(uint256 value) internal pure returns (uint120) {\n if (value > type(uint120).max) {\n revert SafeCastOverflowedUintDowncast(120, value);\n }\n return uint120(value);\n }\n\n /**\n * @dev Returns the downcasted uint112 from uint256, reverting on\n * overflow (when the input is greater than largest uint112).\n *\n * Counterpart to Solidity's `uint112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toUint112(uint256 value) internal pure returns (uint112) {\n if (value > type(uint112).max) {\n revert SafeCastOverflowedUintDowncast(112, value);\n }\n return uint112(value);\n }\n\n /**\n * @dev Returns the downcasted uint104 from uint256, reverting on\n * overflow (when the input is greater than largest uint104).\n *\n * Counterpart to Solidity's `uint104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toUint104(uint256 value) internal pure returns (uint104) {\n if (value > type(uint104).max) {\n revert SafeCastOverflowedUintDowncast(104, value);\n }\n return uint104(value);\n }\n\n /**\n * @dev Returns the downcasted uint96 from uint256, reverting on\n * overflow (when the input is greater than largest uint96).\n *\n * Counterpart to Solidity's `uint96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toUint96(uint256 value) internal pure returns (uint96) {\n if (value > type(uint96).max) {\n revert SafeCastOverflowedUintDowncast(96, value);\n }\n return uint96(value);\n }\n\n /**\n * @dev Returns the downcasted uint88 from uint256, reverting on\n * overflow (when the input is greater than largest uint88).\n *\n * Counterpart to Solidity's `uint88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toUint88(uint256 value) internal pure returns (uint88) {\n if (value > type(uint88).max) {\n revert SafeCastOverflowedUintDowncast(88, value);\n }\n return uint88(value);\n }\n\n /**\n * @dev Returns the downcasted uint80 from uint256, reverting on\n * overflow (when the input is greater than largest uint80).\n *\n * Counterpart to Solidity's `uint80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toUint80(uint256 value) internal pure returns (uint80) {\n if (value > type(uint80).max) {\n revert SafeCastOverflowedUintDowncast(80, value);\n }\n return uint80(value);\n }\n\n /**\n * @dev Returns the downcasted uint72 from uint256, reverting on\n * overflow (when the input is greater than largest uint72).\n *\n * Counterpart to Solidity's `uint72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toUint72(uint256 value) internal pure returns (uint72) {\n if (value > type(uint72).max) {\n revert SafeCastOverflowedUintDowncast(72, value);\n }\n return uint72(value);\n }\n\n /**\n * @dev Returns the downcasted uint64 from uint256, reverting on\n * overflow (when the input is greater than largest uint64).\n *\n * Counterpart to Solidity's `uint64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toUint64(uint256 value) internal pure returns (uint64) {\n if (value > type(uint64).max) {\n revert SafeCastOverflowedUintDowncast(64, value);\n }\n return uint64(value);\n }\n\n /**\n * @dev Returns the downcasted uint56 from uint256, reverting on\n * overflow (when the input is greater than largest uint56).\n *\n * Counterpart to Solidity's `uint56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toUint56(uint256 value) internal pure returns (uint56) {\n if (value > type(uint56).max) {\n revert SafeCastOverflowedUintDowncast(56, value);\n }\n return uint56(value);\n }\n\n /**\n * @dev Returns the downcasted uint48 from uint256, reverting on\n * overflow (when the input is greater than largest uint48).\n *\n * Counterpart to Solidity's `uint48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toUint48(uint256 value) internal pure returns (uint48) {\n if (value > type(uint48).max) {\n revert SafeCastOverflowedUintDowncast(48, value);\n }\n return uint48(value);\n }\n\n /**\n * @dev Returns the downcasted uint40 from uint256, reverting on\n * overflow (when the input is greater than largest uint40).\n *\n * Counterpart to Solidity's `uint40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toUint40(uint256 value) internal pure returns (uint40) {\n if (value > type(uint40).max) {\n revert SafeCastOverflowedUintDowncast(40, value);\n }\n return uint40(value);\n }\n\n /**\n * @dev Returns the downcasted uint32 from uint256, reverting on\n * overflow (when the input is greater than largest uint32).\n *\n * Counterpart to Solidity's `uint32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toUint32(uint256 value) internal pure returns (uint32) {\n if (value > type(uint32).max) {\n revert SafeCastOverflowedUintDowncast(32, value);\n }\n return uint32(value);\n }\n\n /**\n * @dev Returns the downcasted uint24 from uint256, reverting on\n * overflow (when the input is greater than largest uint24).\n *\n * Counterpart to Solidity's `uint24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toUint24(uint256 value) internal pure returns (uint24) {\n if (value > type(uint24).max) {\n revert SafeCastOverflowedUintDowncast(24, value);\n }\n return uint24(value);\n }\n\n /**\n * @dev Returns the downcasted uint16 from uint256, reverting on\n * overflow (when the input is greater than largest uint16).\n *\n * Counterpart to Solidity's `uint16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toUint16(uint256 value) internal pure returns (uint16) {\n if (value > type(uint16).max) {\n revert SafeCastOverflowedUintDowncast(16, value);\n }\n return uint16(value);\n }\n\n /**\n * @dev Returns the downcasted uint8 from uint256, reverting on\n * overflow (when the input is greater than largest uint8).\n *\n * Counterpart to Solidity's `uint8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toUint8(uint256 value) internal pure returns (uint8) {\n if (value > type(uint8).max) {\n revert SafeCastOverflowedUintDowncast(8, value);\n }\n return uint8(value);\n }\n\n /**\n * @dev Converts a signed int256 into an unsigned uint256.\n *\n * Requirements:\n *\n * - input must be greater than or equal to 0.\n */\n function toUint256(int256 value) internal pure returns (uint256) {\n if (value < 0) {\n revert SafeCastOverflowedIntToUint(value);\n }\n return uint256(value);\n }\n\n /**\n * @dev Returns the downcasted int248 from int256, reverting on\n * overflow (when the input is less than smallest int248 or\n * greater than largest int248).\n *\n * Counterpart to Solidity's `int248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\n downcasted = int248(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(248, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int240 from int256, reverting on\n * overflow (when the input is less than smallest int240 or\n * greater than largest int240).\n *\n * Counterpart to Solidity's `int240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\n downcasted = int240(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(240, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int232 from int256, reverting on\n * overflow (when the input is less than smallest int232 or\n * greater than largest int232).\n *\n * Counterpart to Solidity's `int232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\n downcasted = int232(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(232, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int224 from int256, reverting on\n * overflow (when the input is less than smallest int224 or\n * greater than largest int224).\n *\n * Counterpart to Solidity's `int224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\n downcasted = int224(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(224, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int216 from int256, reverting on\n * overflow (when the input is less than smallest int216 or\n * greater than largest int216).\n *\n * Counterpart to Solidity's `int216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\n downcasted = int216(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(216, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int208 from int256, reverting on\n * overflow (when the input is less than smallest int208 or\n * greater than largest int208).\n *\n * Counterpart to Solidity's `int208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\n downcasted = int208(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(208, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int200 from int256, reverting on\n * overflow (when the input is less than smallest int200 or\n * greater than largest int200).\n *\n * Counterpart to Solidity's `int200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\n downcasted = int200(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(200, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int192 from int256, reverting on\n * overflow (when the input is less than smallest int192 or\n * greater than largest int192).\n *\n * Counterpart to Solidity's `int192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\n downcasted = int192(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(192, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int184 from int256, reverting on\n * overflow (when the input is less than smallest int184 or\n * greater than largest int184).\n *\n * Counterpart to Solidity's `int184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\n downcasted = int184(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(184, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int176 from int256, reverting on\n * overflow (when the input is less than smallest int176 or\n * greater than largest int176).\n *\n * Counterpart to Solidity's `int176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\n downcasted = int176(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(176, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int168 from int256, reverting on\n * overflow (when the input is less than smallest int168 or\n * greater than largest int168).\n *\n * Counterpart to Solidity's `int168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\n downcasted = int168(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(168, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int160 from int256, reverting on\n * overflow (when the input is less than smallest int160 or\n * greater than largest int160).\n *\n * Counterpart to Solidity's `int160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\n downcasted = int160(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(160, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int152 from int256, reverting on\n * overflow (when the input is less than smallest int152 or\n * greater than largest int152).\n *\n * Counterpart to Solidity's `int152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\n downcasted = int152(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(152, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int144 from int256, reverting on\n * overflow (when the input is less than smallest int144 or\n * greater than largest int144).\n *\n * Counterpart to Solidity's `int144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\n downcasted = int144(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(144, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int136 from int256, reverting on\n * overflow (when the input is less than smallest int136 or\n * greater than largest int136).\n *\n * Counterpart to Solidity's `int136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\n downcasted = int136(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(136, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int128 from int256, reverting on\n * overflow (when the input is less than smallest int128 or\n * greater than largest int128).\n *\n * Counterpart to Solidity's `int128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\n downcasted = int128(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(128, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int120 from int256, reverting on\n * overflow (when the input is less than smallest int120 or\n * greater than largest int120).\n *\n * Counterpart to Solidity's `int120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\n downcasted = int120(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(120, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int112 from int256, reverting on\n * overflow (when the input is less than smallest int112 or\n * greater than largest int112).\n *\n * Counterpart to Solidity's `int112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\n downcasted = int112(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(112, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int104 from int256, reverting on\n * overflow (when the input is less than smallest int104 or\n * greater than largest int104).\n *\n * Counterpart to Solidity's `int104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\n downcasted = int104(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(104, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int96 from int256, reverting on\n * overflow (when the input is less than smallest int96 or\n * greater than largest int96).\n *\n * Counterpart to Solidity's `int96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\n downcasted = int96(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(96, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int88 from int256, reverting on\n * overflow (when the input is less than smallest int88 or\n * greater than largest int88).\n *\n * Counterpart to Solidity's `int88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\n downcasted = int88(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(88, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int80 from int256, reverting on\n * overflow (when the input is less than smallest int80 or\n * greater than largest int80).\n *\n * Counterpart to Solidity's `int80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\n downcasted = int80(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(80, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int72 from int256, reverting on\n * overflow (when the input is less than smallest int72 or\n * greater than largest int72).\n *\n * Counterpart to Solidity's `int72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\n downcasted = int72(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(72, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int64 from int256, reverting on\n * overflow (when the input is less than smallest int64 or\n * greater than largest int64).\n *\n * Counterpart to Solidity's `int64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\n downcasted = int64(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(64, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int56 from int256, reverting on\n * overflow (when the input is less than smallest int56 or\n * greater than largest int56).\n *\n * Counterpart to Solidity's `int56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\n downcasted = int56(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(56, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int48 from int256, reverting on\n * overflow (when the input is less than smallest int48 or\n * greater than largest int48).\n *\n * Counterpart to Solidity's `int48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\n downcasted = int48(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(48, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int40 from int256, reverting on\n * overflow (when the input is less than smallest int40 or\n * greater than largest int40).\n *\n * Counterpart to Solidity's `int40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\n downcasted = int40(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(40, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int32 from int256, reverting on\n * overflow (when the input is less than smallest int32 or\n * greater than largest int32).\n *\n * Counterpart to Solidity's `int32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\n downcasted = int32(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(32, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int24 from int256, reverting on\n * overflow (when the input is less than smallest int24 or\n * greater than largest int24).\n *\n * Counterpart to Solidity's `int24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\n downcasted = int24(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(24, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int16 from int256, reverting on\n * overflow (when the input is less than smallest int16 or\n * greater than largest int16).\n *\n * Counterpart to Solidity's `int16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\n downcasted = int16(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(16, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int8 from int256, reverting on\n * overflow (when the input is less than smallest int8 or\n * greater than largest int8).\n *\n * Counterpart to Solidity's `int8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\n downcasted = int8(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(8, value);\n }\n }\n\n /**\n * @dev Converts an unsigned uint256 into a signed int256.\n *\n * Requirements:\n *\n * - input must be less than or equal to maxInt256.\n */\n function toInt256(uint256 value) internal pure returns (int256) {\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n if (value > uint256(type(int256).max)) {\n revert SafeCastOverflowedUintToInt(value);\n }\n return int256(value);\n }\n}\n"},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n"},"contracts/mocks/MyONFT721Mock.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.22;\n\nimport { MyONFT721 } from \"../MyONFT721.sol\";\n\n// @dev WARNING: This is for testing purposes only\ncontract MyONFT721Mock is MyONFT721 {\n constructor(\n string memory _name,\n string memory _symbol,\n address _lzEndpoint,\n address _delegate\n ) MyONFT721(_name, _symbol, _lzEndpoint, _delegate) {}\n\n function mint(address _to, uint256 _amount) public {\n _mint(_to, _amount);\n }\n}\n"},"contracts/MyONFT721.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.22;\n\nimport { ONFT721 } from \"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol\";\n\ncontract MyONFT721 is ONFT721 {\n constructor(\n string memory _name,\n string memory _symbol,\n address _lzEndpoint,\n address _delegate\n ) ONFT721(_name, _symbol, _lzEndpoint, _delegate) {}\n}\n"},"solidity-bytes-utils/contracts/BytesLib.sol":{"content":"// SPDX-License-Identifier: Unlicense\n/*\n * @title Solidity Bytes Arrays Utils\n * @author Gonçalo Sá \n *\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\n */\npragma solidity >=0.8.0 <0.9.0;\n\n\nlibrary BytesLib {\n function concat(\n bytes memory _preBytes,\n bytes memory _postBytes\n )\n internal\n pure\n returns (bytes memory)\n {\n bytes memory tempBytes;\n\n assembly {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // Store the length of the first bytes array at the beginning of\n // the memory for tempBytes.\n let length := mload(_preBytes)\n mstore(tempBytes, length)\n\n // Maintain a memory counter for the current write location in the\n // temp bytes array by adding the 32 bytes for the array length to\n // the starting location.\n let mc := add(tempBytes, 0x20)\n // Stop copying when the memory counter reaches the length of the\n // first bytes array.\n let end := add(mc, length)\n\n for {\n // Initialize a copy counter to the start of the _preBytes data,\n // 32 bytes into its memory.\n let cc := add(_preBytes, 0x20)\n } lt(mc, end) {\n // Increase both counters by 32 bytes each iteration.\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // Write the _preBytes data into the tempBytes memory 32 bytes\n // at a time.\n mstore(mc, mload(cc))\n }\n\n // Add the length of _postBytes to the current length of tempBytes\n // and store it as the new length in the first 32 bytes of the\n // tempBytes memory.\n length := mload(_postBytes)\n mstore(tempBytes, add(length, mload(tempBytes)))\n\n // Move the memory counter back from a multiple of 0x20 to the\n // actual end of the _preBytes data.\n mc := end\n // Stop copying when the memory counter reaches the new combined\n // length of the arrays.\n end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n // Update the free-memory pointer by padding our last write location\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\n // next 32 byte block, then round down to the nearest multiple of\n // 32. If the sum of the length of the two arrays is zero then add\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\n mstore(0x40, and(\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\n not(31) // Round down to the nearest 32 bytes.\n ))\n }\n\n return tempBytes;\n }\n\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\n assembly {\n // Read the first 32 bytes of _preBytes storage, which is the length\n // of the array. (We don't need to use the offset into the slot\n // because arrays use the entire slot.)\n let fslot := sload(_preBytes.slot)\n // Arrays of 31 bytes or less have an even value in their slot,\n // while longer arrays have an odd value. The actual length is\n // the slot divided by two for odd values, and the lowest order\n // byte divided by two for even values.\n // If the slot is even, bitwise and the slot with 255 and divide by\n // two to get the length. If the slot is odd, bitwise and the slot\n // with -1 and divide by two.\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n let newlength := add(slength, mlength)\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n switch add(lt(slength, 32), lt(newlength, 32))\n case 2 {\n // Since the new array still fits in the slot, we just need to\n // update the contents of the slot.\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\n sstore(\n _preBytes.slot,\n // all the modifications to the slot are inside this\n // next block\n add(\n // we can just add to the slot contents because the\n // bytes we want to change are the LSBs\n fslot,\n add(\n mul(\n div(\n // load the bytes from memory\n mload(add(_postBytes, 0x20)),\n // zero all bytes to the right\n exp(0x100, sub(32, mlength))\n ),\n // and now shift left the number of bytes to\n // leave space for the length in the slot\n exp(0x100, sub(32, newlength))\n ),\n // increase length by the double of the memory\n // bytes length\n mul(mlength, 2)\n )\n )\n )\n }\n case 1 {\n // The stored value fits in the slot, but the combined value\n // will exceed it.\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // The contents of the _postBytes array start 32 bytes into\n // the structure. Our first read should obtain the `submod`\n // bytes that can fit into the unused space in the last word\n // of the stored array. To get this, we read 32 bytes starting\n // from `submod`, so the data we read overlaps with the array\n // contents by `submod` bytes. Masking the lowest-order\n // `submod` bytes allows us to add that value directly to the\n // stored value.\n\n let submod := sub(32, slength)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(\n sc,\n add(\n and(\n fslot,\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\n ),\n and(mload(mc), mask)\n )\n )\n\n for {\n mc := add(mc, 0x20)\n sc := add(sc, 1)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n default {\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n // Start copying to the last used word of the stored array.\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // Copy over the first `submod` bytes of the new data as in\n // case 1 above.\n let slengthmod := mod(slength, 32)\n let mlengthmod := mod(mlength, 32)\n let submod := sub(32, slengthmod)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\n\n for {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n }\n }\n\n function slice(\n bytes memory _bytes,\n uint256 _start,\n uint256 _length\n )\n internal\n pure\n returns (bytes memory)\n {\n require(_length + 31 >= _length, \"slice_overflow\");\n require(_bytes.length >= _start + _length, \"slice_outOfBounds\");\n\n bytes memory tempBytes;\n\n assembly {\n switch iszero(_length)\n case 0 {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // The first word of the slice result is potentially a partial\n // word read from the original array. To read it, we calculate\n // the length of that partial word and start copying that many\n // bytes into the array. The first word we copy will start with\n // data we don't care about, but the last `lengthmod` bytes will\n // land at the beginning of the contents of the new array. When\n // we're done copying, we overwrite the full first word with\n // the actual length of the slice.\n let lengthmod := and(_length, 31)\n\n // The multiplication in the next line is necessary\n // because when slicing multiples of 32 bytes (lengthmod == 0)\n // the following copy loop was copying the origin's length\n // and then ending prematurely not copying everything it should.\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n let end := add(mc, _length)\n\n for {\n // The multiplication in the next line has the same exact purpose\n // as the one above.\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n mstore(tempBytes, _length)\n\n //update free-memory pointer\n //allocating the array padded to 32 bytes like the compiler does now\n mstore(0x40, and(add(mc, 31), not(31)))\n }\n //if we want a zero-length slice let's just return a zero-length array\n default {\n tempBytes := mload(0x40)\n //zero out the 32 bytes slice we are about to return\n //we need to do it because Solidity does not garbage collect\n mstore(tempBytes, 0)\n\n mstore(0x40, add(tempBytes, 0x20))\n }\n }\n\n return tempBytes;\n }\n\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\n require(_bytes.length >= _start + 20, \"toAddress_outOfBounds\");\n address tempAddress;\n\n assembly {\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n }\n\n return tempAddress;\n }\n\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\n require(_bytes.length >= _start + 1 , \"toUint8_outOfBounds\");\n uint8 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x1), _start))\n }\n\n return tempUint;\n }\n\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\n require(_bytes.length >= _start + 2, \"toUint16_outOfBounds\");\n uint16 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x2), _start))\n }\n\n return tempUint;\n }\n\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\n require(_bytes.length >= _start + 4, \"toUint32_outOfBounds\");\n uint32 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x4), _start))\n }\n\n return tempUint;\n }\n\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\n require(_bytes.length >= _start + 8, \"toUint64_outOfBounds\");\n uint64 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x8), _start))\n }\n\n return tempUint;\n }\n\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\n require(_bytes.length >= _start + 12, \"toUint96_outOfBounds\");\n uint96 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0xc), _start))\n }\n\n return tempUint;\n }\n\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\n require(_bytes.length >= _start + 16, \"toUint128_outOfBounds\");\n uint128 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x10), _start))\n }\n\n return tempUint;\n }\n\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\n require(_bytes.length >= _start + 32, \"toUint256_outOfBounds\");\n uint256 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempUint;\n }\n\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\n require(_bytes.length >= _start + 32, \"toBytes32_outOfBounds\");\n bytes32 tempBytes32;\n\n assembly {\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempBytes32;\n }\n\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n bool success = true;\n\n assembly {\n let length := mload(_preBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(length, mload(_postBytes))\n case 1 {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n let mc := add(_preBytes, 0x20)\n let end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n } eq(add(lt(mc, end), cb), 2) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // if any of these checks fails then arrays are not equal\n if iszero(eq(mload(mc), mload(cc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n\n function equal_nonAligned(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n bool success = true;\n\n assembly {\n let length := mload(_preBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(length, mload(_postBytes))\n case 1 {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n let endMinusWord := add(_preBytes, length)\n let mc := add(_preBytes, 0x20)\n let cc := add(_postBytes, 0x20)\n\n for {\n // the next line is the loop condition:\n // while(uint256(mc < endWord) + cb == 2)\n } eq(add(lt(mc, endMinusWord), cb), 2) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // if any of these checks fails then arrays are not equal\n if iszero(eq(mload(mc), mload(cc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n\n // Only if still successful\n // For <1 word tail bytes\n if gt(success, 0) {\n // Get the remainder of length/32\n // length % 32 = AND(length, 32 - 1)\n let numTailBytes := and(length, 0x1f)\n let mcRem := mload(mc)\n let ccRem := mload(cc)\n for {\n let i := 0\n // the next line is the loop condition:\n // while(uint256(i < numTailBytes) + cb == 2)\n } eq(add(lt(i, numTailBytes), cb), 2) {\n i := add(i, 1)\n } {\n if iszero(eq(byte(i, mcRem), byte(i, ccRem))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n\n function equalStorage(\n bytes storage _preBytes,\n bytes memory _postBytes\n )\n internal\n view\n returns (bool)\n {\n bool success = true;\n\n assembly {\n // we know _preBytes_offset is 0\n let fslot := sload(_preBytes.slot)\n // Decode the length of the stored array like in concatStorage().\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(slength, mlength)\n case 1 {\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n if iszero(iszero(slength)) {\n switch lt(slength, 32)\n case 1 {\n // blank the last byte which is the length\n fslot := mul(div(fslot, 0x100), 0x100)\n\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\n // unsuccess:\n success := 0\n }\n }\n default {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := keccak256(0x0, 0x20)\n\n let mc := add(_postBytes, 0x20)\n let end := add(mc, mlength)\n\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n for {} eq(add(lt(mc, end), cb), 2) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n if iszero(eq(sload(sc), mload(mc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc","storageLayout","evm.gasEstimates"],"":["ast"]}},"metadata":{"useLiteralContent":true}}},"output":{"sources":{"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol","exportedSymbols":{"BitMap256":[3354],"BytesLib":[10716],"CalldataBytesLib":[3350],"DVNOptions":[474]},"id":475,"license":"LZBL-1.2","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"38:24:0"},{"absolutePath":"solidity-bytes-utils/contracts/BytesLib.sol","file":"solidity-bytes-utils/contracts/BytesLib.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":475,"sourceUnit":10717,"src":"64:71:0","symbolAliases":[{"foreign":{"id":2,"name":"BytesLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10716,"src":"73:8:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":475,"sourceUnit":3416,"src":"137:100:0","symbolAliases":[{"foreign":{"id":4,"name":"BitMap256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"146:9:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol","id":7,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":475,"sourceUnit":3351,"src":"238:105:0","symbolAliases":[{"foreign":{"id":6,"name":"CalldataBytesLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"247:16:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"DVNOptions","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":474,"linearizedBaseContracts":[474],"name":"DVNOptions","nameLocation":"353:10:0","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10,"libraryName":{"id":8,"name":"CalldataBytesLib","nameLocations":["376:16:0"],"nodeType":"IdentifierPath","referencedDeclaration":3350,"src":"376:16:0"},"nodeType":"UsingForDirective","src":"370:33:0","typeName":{"id":9,"name":"bytes","nodeType":"ElementaryTypeName","src":"397:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":13,"libraryName":{"id":11,"name":"BytesLib","nameLocations":["414:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":10716,"src":"414:8:0"},"nodeType":"UsingForDirective","src":"408:25:0","typeName":{"id":12,"name":"bytes","nodeType":"ElementaryTypeName","src":"427:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":true,"id":16,"mutability":"constant","name":"WORKER_ID","nameLocation":"463:9:0","nodeType":"VariableDeclaration","scope":474,"src":"439:37:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14,"name":"uint8","nodeType":"ElementaryTypeName","src":"439:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":15,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"475:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":19,"mutability":"constant","name":"OPTION_TYPE_PRECRIME","nameLocation":"506:20:0","nodeType":"VariableDeclaration","scope":474,"src":"482:48:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":17,"name":"uint8","nodeType":"ElementaryTypeName","src":"482:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"529:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"errorSelector":"d3d3d9bc","id":21,"name":"DVN_InvalidDVNIdx","nameLocation":"543:17:0","nodeType":"ErrorDefinition","parameters":{"id":20,"nodeType":"ParameterList","parameters":[],"src":"560:2:0"},"src":"537:26:0"},{"errorSelector":"04eb6e0c","id":25,"name":"DVN_InvalidDVNOptions","nameLocation":"574:21:0","nodeType":"ErrorDefinition","parameters":{"id":24,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23,"mutability":"mutable","name":"cursor","nameLocation":"604:6:0","nodeType":"VariableDeclaration","scope":25,"src":"596:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22,"name":"uint256","nodeType":"ElementaryTypeName","src":"596:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"595:16:0"},"src":"568:44:0"},{"body":{"id":235,"nodeType":"Block","src":"1251:2455:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":37,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"1265:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":38,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1274:6:0","memberName":"length","nodeType":"MemberAccess","src":"1265:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1284:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1265:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45,"nodeType":"IfStatement","src":"1261:57:0","trueBody":{"expression":{"components":[{"id":41,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"1295:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":42,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"1307:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}}],"id":43,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1294:24:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"tuple(bytes memory[] memory,uint8[] memory)"}},"functionReturnParameters":36,"id":44,"nodeType":"Return","src":"1287:31:0"}},{"assignments":[47],"declarations":[{"constant":false,"id":47,"mutability":"mutable","name":"numDVNs","nameLocation":"1335:7:0","nodeType":"VariableDeclaration","scope":235,"src":"1329:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":46,"name":"uint8","nodeType":"ElementaryTypeName","src":"1329:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":51,"initialValue":{"arguments":[{"id":49,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"1356:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48,"name":"getNumDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":408,"src":"1345:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint8_$","typeString":"function (bytes memory) pure returns (uint8)"}},"id":50,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1345:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"1329:36:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52,"name":"numDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"1452:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":53,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1463:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1452:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":91,"nodeType":"IfStatement","src":"1448:255:0","trueBody":{"id":90,"nodeType":"Block","src":"1466:237:0","statements":[{"expression":{"id":61,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"1480:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":59,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1505:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":58,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1493:11:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":56,"name":"bytes","nodeType":"ElementaryTypeName","src":"1497:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":57,"nodeType":"ArrayTypeName","src":"1497:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":60,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"1480:27:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":62,"nodeType":"ExpressionStatement","src":"1480:27:0"},{"expression":{"id":67,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":63,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"1521:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":65,"indexExpression":{"hexValue":"30","id":64,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1532:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1521:13:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":66,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"1537:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1521:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":68,"nodeType":"ExpressionStatement","src":"1521:24:0"},{"expression":{"id":75,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":69,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"1560:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":73,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1585:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":72,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1573:11:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":70,"name":"uint8","nodeType":"ElementaryTypeName","src":"1577:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":71,"nodeType":"ArrayTypeName","src":"1577:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":74,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1573:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"src":"1560:27:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":76,"nodeType":"ExpressionStatement","src":"1560:27:0"},{"expression":{"id":84,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"1601:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":79,"indexExpression":{"hexValue":"30","id":78,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1612:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1601:13:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":82,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1634:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"expression":{"id":80,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"1617:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":81,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1626:7:0","memberName":"toUint8","nodeType":"MemberAccess","referencedDeclaration":10482,"src":"1617:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint8)"}},"id":83,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1617:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1601:35:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":85,"nodeType":"ExpressionStatement","src":"1601:35:0"},{"expression":{"components":[{"id":86,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"1669:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":87,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"1681:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}}],"id":88,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1668:24:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"tuple(bytes memory[] memory,uint8[] memory)"}},"functionReturnParameters":36,"id":89,"nodeType":"Return","src":"1661:31:0"}]}},{"expression":{"id":98,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":92,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"1775:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":96,"name":"numDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"1800:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":95,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1788:11:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":93,"name":"uint8","nodeType":"ElementaryTypeName","src":"1792:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":94,"nodeType":"ArrayTypeName","src":"1792:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":97,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1788:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"src":"1775:33:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":99,"nodeType":"ExpressionStatement","src":"1775:33:0"},{"expression":{"id":106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":100,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"1818:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":104,"name":"numDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"1843:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1831:11:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":101,"name":"bytes","nodeType":"ElementaryTypeName","src":"1835:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":102,"nodeType":"ArrayTypeName","src":"1835:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1831:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"1818:33:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":107,"nodeType":"ExpressionStatement","src":"1818:33:0"},{"id":234,"nodeType":"UncheckedBlock","src":"1861:1839:0","statements":[{"assignments":[109],"declarations":[{"constant":false,"id":109,"mutability":"mutable","name":"cursor","nameLocation":"1893:6:0","nodeType":"VariableDeclaration","scope":234,"src":"1885:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108,"name":"uint256","nodeType":"ElementaryTypeName","src":"1885:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":111,"initialValue":{"hexValue":"30","id":110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1902:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1885:18:0"},{"assignments":[113],"declarations":[{"constant":false,"id":113,"mutability":"mutable","name":"start","nameLocation":"1925:5:0","nodeType":"VariableDeclaration","scope":234,"src":"1917:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":112,"name":"uint256","nodeType":"ElementaryTypeName","src":"1917:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":115,"initialValue":{"hexValue":"30","id":114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1933:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1917:17:0"},{"assignments":[117],"declarations":[{"constant":false,"id":117,"mutability":"mutable","name":"lastDVNIdx","nameLocation":"1954:10:0","nodeType":"VariableDeclaration","scope":234,"src":"1948:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":116,"name":"uint8","nodeType":"ElementaryTypeName","src":"1948:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":119,"initialValue":{"hexValue":"323535","id":118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1967:3:0","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"nodeType":"VariableDeclarationStatement","src":"1948:22:0"},{"body":{"id":194,"nodeType":"Block","src":"2047:1145:0","statements":[{"expression":{"id":125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2065:8:0","subExpression":{"id":124,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"2067:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":126,"nodeType":"ExpressionStatement","src":"2065:8:0"},{"assignments":[128],"declarations":[{"constant":false,"id":128,"mutability":"mutable","name":"optionLength","nameLocation":"2185:12:0","nodeType":"VariableDeclaration","scope":194,"src":"2178:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":127,"name":"uint16","nodeType":"ElementaryTypeName","src":"2178:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":133,"initialValue":{"arguments":[{"id":131,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"2218:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":129,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"2200:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2209:8:0","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":10508,"src":"2200:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint16)"}},"id":132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2178:47:0"},{"expression":{"id":136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":134,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"2243:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2253:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2243:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":137,"nodeType":"ExpressionStatement","src":"2243:11:0"},{"assignments":[139],"declarations":[{"constant":false,"id":139,"mutability":"mutable","name":"dvnIdx","nameLocation":"2341:6:0","nodeType":"VariableDeclaration","scope":194,"src":"2335:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":138,"name":"uint8","nodeType":"ElementaryTypeName","src":"2335:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":144,"initialValue":{"arguments":[{"id":142,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"2367:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":140,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"2350:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2359:7:0","memberName":"toUint8","nodeType":"MemberAccess","referencedDeclaration":10482,"src":"2350:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint8)"}},"id":143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2350:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"2335:39:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":145,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"2636:10:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"323535","id":146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2650:3:0","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"2636:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":153,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"2725:6:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":154,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"2735:10:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2725:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":188,"nodeType":"IfStatement","src":"2721:416:0","trueBody":{"id":187,"nodeType":"Block","src":"2747:390:0","statements":[{"assignments":[157],"declarations":[{"constant":false,"id":157,"mutability":"mutable","name":"len","nameLocation":"2777:3:0","nodeType":"VariableDeclaration","scope":187,"src":"2769:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":156,"name":"uint256","nodeType":"ElementaryTypeName","src":"2769:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":163,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":158,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"2783:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":159,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"2792:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2783:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33","id":161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2800:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2783:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2769:32:0"},{"assignments":[165],"declarations":[{"constant":false,"id":165,"mutability":"mutable","name":"opt","nameLocation":"2876:3:0","nodeType":"VariableDeclaration","scope":187,"src":"2863:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":164,"name":"bytes","nodeType":"ElementaryTypeName","src":"2863:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":171,"initialValue":{"arguments":[{"id":168,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"2897:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":169,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2904:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":166,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"2882:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2891:5:0","memberName":"slice","nodeType":"MemberAccess","referencedDeclaration":10430,"src":"2882:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256,uint256) pure returns (bytes memory)"}},"id":170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2882:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2863:45:0"},{"expression":{"arguments":[{"id":173,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"2948:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":174,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"2960:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":175,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"2972:10:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":176,"name":"opt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":165,"src":"2984:3:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":172,"name":"_insertDVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"2930:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory[] memory,uint8[] memory,uint8,bytes memory) pure"}},"id":177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2930:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":178,"nodeType":"ExpressionStatement","src":"2930:58:0"},{"expression":{"id":181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":179,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"3065:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":180,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"3074:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3065:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":182,"nodeType":"ExpressionStatement","src":"3065:12:0"},{"expression":{"id":185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":183,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"3099:10:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":184,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3112:6:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3099:19:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":186,"nodeType":"ExpressionStatement","src":"3099:19:0"}]}},"id":189,"nodeType":"IfStatement","src":"2632:505:0","trueBody":{"id":152,"nodeType":"Block","src":"2655:60:0","statements":[{"expression":{"id":150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":148,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"2677:10:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":149,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"2690:6:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2677:19:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":151,"nodeType":"ExpressionStatement","src":"2677:19:0"}]}},{"expression":{"id":192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":190,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"3155:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":191,"name":"optionLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"3165:12:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3155:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":193,"nodeType":"ExpressionStatement","src":"3155:22:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":120,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"2021:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":121,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"2030:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2039:6:0","memberName":"length","nodeType":"MemberAccess","src":"2030:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2021:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":195,"nodeType":"WhileStatement","src":"2014:1178:0"},{"assignments":[197],"declarations":[{"constant":false,"id":197,"mutability":"mutable","name":"size","nameLocation":"3391:4:0","nodeType":"VariableDeclaration","scope":234,"src":"3383:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":196,"name":"uint256","nodeType":"ElementaryTypeName","src":"3383:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":201,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":198,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"3398:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":199,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"3407:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3398:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3383:29:0"},{"assignments":[203],"declarations":[{"constant":false,"id":203,"mutability":"mutable","name":"op","nameLocation":"3439:2:0","nodeType":"VariableDeclaration","scope":234,"src":"3426:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":202,"name":"bytes","nodeType":"ElementaryTypeName","src":"3426:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":209,"initialValue":{"arguments":[{"id":206,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"3459:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":207,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"3466:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":204,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"3444:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3453:5:0","memberName":"slice","nodeType":"MemberAccess","referencedDeclaration":10430,"src":"3444:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256,uint256) pure returns (bytes memory)"}},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3444:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3426:45:0"},{"expression":{"arguments":[{"id":211,"name":"dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"3503:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":212,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"3515:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":213,"name":"lastDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"3527:10:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":214,"name":"op","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":203,"src":"3539:2:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":210,"name":"_insertDVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"3485:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory[] memory,uint8[] memory,uint8,bytes memory) pure"}},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3485:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":216,"nodeType":"ExpressionStatement","src":"3485:57:0"},{"body":{"id":232,"nodeType":"Block","src":"3642:48:0","statements":[{"expression":{"id":230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"3660:15:0","subExpression":{"baseExpression":{"id":227,"name":"dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"3662:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":229,"indexExpression":{"id":228,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3673:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3662:13:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":231,"nodeType":"ExpressionStatement","src":"3660:15:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":221,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3624:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":222,"name":"numDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"3628:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3624:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":233,"initializationExpression":{"assignments":[218],"declarations":[{"constant":false,"id":218,"mutability":"mutable","name":"i","nameLocation":"3617:1:0","nodeType":"VariableDeclaration","scope":233,"src":"3611:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":217,"name":"uint8","nodeType":"ElementaryTypeName","src":"3611:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":220,"initialValue":{"hexValue":"30","id":219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3621:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3611:11:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3637:3:0","subExpression":{"id":224,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3639:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":226,"nodeType":"ExpressionStatement","src":"3637:3:0"},"nodeType":"ForStatement","src":"3606:84:0"}]}]},"documentation":{"id":26,"nodeType":"StructuredDocumentation","src":"618:484:0","text":"@dev group dvn options by its idx\n @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\n dvn_option = [option_size][dvn_idx][option_type][option]\n option_size = len(dvn_idx) + len(option_type) + len(option)\n dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\n @return dvnOptions the grouped options, still share the same format of _options\n @return dvnIndices the dvn indices"},"id":236,"implemented":true,"kind":"function","modifiers":[],"name":"groupDVNOptionsByIdx","nameLocation":"1116:20:0","nodeType":"FunctionDefinition","parameters":{"id":29,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28,"mutability":"mutable","name":"_options","nameLocation":"1159:8:0","nodeType":"VariableDeclaration","scope":236,"src":"1146:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":27,"name":"bytes","nodeType":"ElementaryTypeName","src":"1146:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1136:37:0"},"returnParameters":{"id":36,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32,"mutability":"mutable","name":"dvnOptions","nameLocation":"1212:10:0","nodeType":"VariableDeclaration","scope":236,"src":"1197:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":30,"name":"bytes","nodeType":"ElementaryTypeName","src":"1197:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":31,"nodeType":"ArrayTypeName","src":"1197:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":35,"mutability":"mutable","name":"dvnIndices","nameLocation":"1239:10:0","nodeType":"VariableDeclaration","scope":236,"src":"1224:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":33,"name":"uint8","nodeType":"ElementaryTypeName","src":"1224:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":34,"nodeType":"ArrayTypeName","src":"1224:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"1196:54:0"},"scope":474,"src":"1107:2599:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":317,"nodeType":"Block","src":"3888:733:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":249,"name":"_dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"4037:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"323535","id":250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4048:3:0","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4037:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":255,"nodeType":"IfStatement","src":"4033:46:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":252,"name":"DVN_InvalidDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"4060:17:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":254,"nodeType":"RevertStatement","src":"4053:26:0"}},{"assignments":[257],"declarations":[{"constant":false,"id":257,"mutability":"mutable","name":"dvnIdxAdj","nameLocation":"4095:9:0","nodeType":"VariableDeclaration","scope":317,"src":"4089:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":256,"name":"uint8","nodeType":"ElementaryTypeName","src":"4089:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":261,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":258,"name":"_dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"4107:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4117:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4107:11:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4089:29:0"},{"body":{"id":315,"nodeType":"Block","src":"4178:437:0","statements":[{"assignments":[274],"declarations":[{"constant":false,"id":274,"mutability":"mutable","name":"index","nameLocation":"4198:5:0","nodeType":"VariableDeclaration","scope":315,"src":"4192:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":273,"name":"uint8","nodeType":"ElementaryTypeName","src":"4192:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":278,"initialValue":{"baseExpression":{"id":275,"name":"_dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"4206:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":277,"indexExpression":{"id":276,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"4218:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4206:14:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4192:28:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":279,"name":"dvnIdxAdj","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":257,"src":"4238:9:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":280,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"4251:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4238:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":296,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"4386:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4395:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4386:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":313,"nodeType":"IfStatement","src":"4382:223:0","trueBody":{"id":312,"nodeType":"Block","src":"4398:207:0","statements":[{"expression":{"id":303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":299,"name":"_dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"4495:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":301,"indexExpression":{"id":300,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"4507:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4495:14:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":302,"name":"dvnIdxAdj","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":257,"src":"4512:9:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4495:26:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":304,"nodeType":"ExpressionStatement","src":"4495:26:0"},{"expression":{"id":309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":305,"name":"_dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":239,"src":"4539:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":307,"indexExpression":{"id":306,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"4551:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4539:14:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":308,"name":"_newOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"4556:11:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4539:28:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":310,"nodeType":"ExpressionStatement","src":"4539:28:0"},{"id":311,"nodeType":"Break","src":"4585:5:0"}]}},"id":314,"nodeType":"IfStatement","src":"4234:371:0","trueBody":{"id":295,"nodeType":"Block","src":"4258:118:0","statements":[{"expression":{"id":292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":282,"name":"_dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":239,"src":"4276:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":284,"indexExpression":{"id":283,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"4288:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4276:14:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":287,"name":"_dvnOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":239,"src":"4310:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":289,"indexExpression":{"id":288,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"4322:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4310:14:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":290,"name":"_newOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"4326:11:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":285,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4293:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4297:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"4293:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4293:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4276:62:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":293,"nodeType":"ExpressionStatement","src":"4276:62:0"},{"id":294,"nodeType":"Break","src":"4356:5:0"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":266,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"4149:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":267,"name":"_dvnIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"4153:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4165:6:0","memberName":"length","nodeType":"MemberAccess","src":"4153:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4149:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":316,"initializationExpression":{"assignments":[263],"declarations":[{"constant":false,"id":263,"mutability":"mutable","name":"j","nameLocation":"4142:1:0","nodeType":"VariableDeclaration","scope":316,"src":"4134:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":262,"name":"uint256","nodeType":"ElementaryTypeName","src":"4134:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":265,"initialValue":{"hexValue":"30","id":264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4146:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4134:13:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4173:3:0","subExpression":{"id":270,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"4175:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":272,"nodeType":"ExpressionStatement","src":"4173:3:0"},"nodeType":"ForStatement","src":"4129:486:0"}]},"id":318,"implemented":true,"kind":"function","modifiers":[],"name":"_insertDVNOptions","nameLocation":"3721:17:0","nodeType":"FunctionDefinition","parameters":{"id":247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":239,"mutability":"mutable","name":"_dvnOptions","nameLocation":"3763:11:0","nodeType":"VariableDeclaration","scope":318,"src":"3748:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":237,"name":"bytes","nodeType":"ElementaryTypeName","src":"3748:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":238,"nodeType":"ArrayTypeName","src":"3748:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":242,"mutability":"mutable","name":"_dvnIndices","nameLocation":"3799:11:0","nodeType":"VariableDeclaration","scope":318,"src":"3784:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":240,"name":"uint8","nodeType":"ElementaryTypeName","src":"3784:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":241,"nodeType":"ArrayTypeName","src":"3784:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":244,"mutability":"mutable","name":"_dvnIdx","nameLocation":"3826:7:0","nodeType":"VariableDeclaration","scope":318,"src":"3820:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":243,"name":"uint8","nodeType":"ElementaryTypeName","src":"3820:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":246,"mutability":"mutable","name":"_newOptions","nameLocation":"3856:11:0","nodeType":"VariableDeclaration","scope":318,"src":"3843:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":245,"name":"bytes","nodeType":"ElementaryTypeName","src":"3843:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3738:135:0"},"returnParameters":{"id":248,"nodeType":"ParameterList","parameters":[],"src":"3888:0:0"},"scope":474,"src":"3712:909:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":407,"nodeType":"Block","src":"4822:1357:0","statements":[{"assignments":[327],"declarations":[{"constant":false,"id":327,"mutability":"mutable","name":"cursor","nameLocation":"4840:6:0","nodeType":"VariableDeclaration","scope":407,"src":"4832:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4832:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":329,"initialValue":{"hexValue":"30","id":328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4849:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4832:18:0"},{"assignments":[332],"declarations":[{"constant":false,"id":332,"mutability":"mutable","name":"bitmap","nameLocation":"4870:6:0","nodeType":"VariableDeclaration","scope":407,"src":"4860:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"},"typeName":{"id":331,"nodeType":"UserDefinedTypeName","pathNode":{"id":330,"name":"BitMap256","nameLocations":["4860:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":3354,"src":"4860:9:0"},"referencedDeclaration":3354,"src":"4860:9:0","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}},"visibility":"internal"}],"id":333,"nodeType":"VariableDeclarationStatement","src":"4860:16:0"},{"id":397,"nodeType":"UncheckedBlock","src":"4928:1168:0","statements":[{"body":{"id":395,"nodeType":"Block","src":"4985:1101:0","statements":[{"expression":{"id":339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5003:8:0","subExpression":{"id":338,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"5005:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":340,"nodeType":"ExpressionStatement","src":"5003:8:0"},{"assignments":[342],"declarations":[{"constant":false,"id":342,"mutability":"mutable","name":"optionLength","nameLocation":"5055:12:0","nodeType":"VariableDeclaration","scope":395,"src":"5048:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":341,"name":"uint16","nodeType":"ElementaryTypeName","src":"5048:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":347,"initialValue":{"arguments":[{"id":345,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"5088:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":343,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"5070:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5079:8:0","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":10508,"src":"5070:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint16)"}},"id":346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5070:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5048:47:0"},{"expression":{"id":350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":348,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"5113:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5123:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5113:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":351,"nodeType":"ExpressionStatement","src":"5113:11:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":352,"name":"optionLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"5146:12:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"32","id":353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5161:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5146:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":359,"nodeType":"IfStatement","src":"5142:58:0","trueBody":{"errorCall":{"arguments":[{"id":356,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"5193:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":355,"name":"DVN_InvalidDVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25,"src":"5171:21:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5171:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":358,"nodeType":"RevertStatement","src":"5164:36:0"}},{"assignments":[361],"declarations":[{"constant":false,"id":361,"mutability":"mutable","name":"dvnIdx","nameLocation":"5283:6:0","nodeType":"VariableDeclaration","scope":395,"src":"5277:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":360,"name":"uint8","nodeType":"ElementaryTypeName","src":"5277:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":366,"initialValue":{"arguments":[{"id":364,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"5309:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":362,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"5292:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5301:7:0","memberName":"toUint8","nodeType":"MemberAccess","referencedDeclaration":10482,"src":"5292:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint8)"}},"id":365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5292:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"5277:39:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":367,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"5848:6:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"323535","id":368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5858:3:0","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"5848:13:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":373,"nodeType":"IfStatement","src":"5844:45:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":370,"name":"DVN_InvalidDVNIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"5870:17:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5870:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":372,"nodeType":"RevertStatement","src":"5863:26:0"}},{"condition":{"id":378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5911:19:0","subExpression":{"arguments":[{"id":376,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"5923:6:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":374,"name":"bitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"5912:6:0","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}},"id":375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5919:3:0","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":3385,"src":"5912:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_BitMap256_$3354_$_t_uint8_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_BitMap256_$3354_$","typeString":"function (BitMap256,uint8) pure returns (bool)"}},"id":377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5912:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":390,"nodeType":"IfStatement","src":"5907:124:0","trueBody":{"id":389,"nodeType":"Block","src":"5932:99:0","statements":[{"expression":{"id":380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5954:9:0","subExpression":{"id":379,"name":"numDVNs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"5956:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":381,"nodeType":"ExpressionStatement","src":"5954:9:0"},{"expression":{"id":387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":382,"name":"bitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"5985:6:0","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":385,"name":"dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"6005:6:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":383,"name":"bitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"5994:6:0","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6001:3:0","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":3414,"src":"5994:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_BitMap256_$3354_$_t_uint8_$returns$_t_userDefinedValueType$_BitMap256_$3354_$attached_to$_t_userDefinedValueType$_BitMap256_$3354_$","typeString":"function (BitMap256,uint8) pure returns (BitMap256)"}},"id":386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5994:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}},"src":"5985:27:0","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}},"id":388,"nodeType":"ExpressionStatement","src":"5985:27:0"}]}},{"expression":{"id":393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":391,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"6049:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":392,"name":"optionLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"6059:12:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6049:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":394,"nodeType":"ExpressionStatement","src":"6049:22:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":334,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"4959:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":335,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"4968:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4977:6:0","memberName":"length","nodeType":"MemberAccess","src":"4968:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4959:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":396,"nodeType":"WhileStatement","src":"4952:1134:0"}]},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":398,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"6109:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":399,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"6119:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6128:6:0","memberName":"length","nodeType":"MemberAccess","src":"6119:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6109:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":406,"nodeType":"IfStatement","src":"6105:67:0","trueBody":{"errorCall":{"arguments":[{"id":403,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"6165:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":402,"name":"DVN_InvalidDVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25,"src":"6143:21:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6143:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":405,"nodeType":"RevertStatement","src":"6136:36:0"}}]},"documentation":{"id":319,"nodeType":"StructuredDocumentation","src":"4627:109:0","text":"@dev get the number of unique dvns\n @param _options the format is the same as groupDVNOptionsByIdx"},"id":408,"implemented":true,"kind":"function","modifiers":[],"name":"getNumDVNs","nameLocation":"4750:10:0","nodeType":"FunctionDefinition","parameters":{"id":322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":321,"mutability":"mutable","name":"_options","nameLocation":"4774:8:0","nodeType":"VariableDeclaration","scope":408,"src":"4761:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":320,"name":"bytes","nodeType":"ElementaryTypeName","src":"4761:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4760:23:0"},"returnParameters":{"id":325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":324,"mutability":"mutable","name":"numDVNs","nameLocation":"4813:7:0","nodeType":"VariableDeclaration","scope":408,"src":"4807:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":323,"name":"uint8","nodeType":"ElementaryTypeName","src":"4807:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4806:15:0"},"scope":474,"src":"4741:1438:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":472,"nodeType":"Block","src":"6716:602:0","statements":[{"id":471,"nodeType":"UncheckedBlock","src":"6726:586:0","statements":[{"expression":{"id":426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":422,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"6780:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":423,"name":"_cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"6789:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6799:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6789:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6780:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":427,"nodeType":"ExpressionStatement","src":"6780:20:0"},{"assignments":[429],"declarations":[{"constant":false,"id":429,"mutability":"mutable","name":"size","nameLocation":"6854:4:0","nodeType":"VariableDeclaration","scope":471,"src":"6847:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":428,"name":"uint16","nodeType":"ElementaryTypeName","src":"6847:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":434,"initialValue":{"arguments":[{"id":432,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"6876:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":430,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":411,"src":"6861:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6870:5:0","memberName":"toU16","nodeType":"MemberAccess","referencedDeclaration":3184,"src":"6861:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint16)"}},"id":433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6861:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6847:36:0"},{"expression":{"id":437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":435,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"6897:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6907:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6897:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":438,"nodeType":"ExpressionStatement","src":"6897:11:0"},{"expression":{"id":446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":439,"name":"optionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":416,"src":"6955:10:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":442,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"6982:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6991:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6982:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":440,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":411,"src":"6968:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6977:4:0","memberName":"toU8","nodeType":"MemberAccess","referencedDeclaration":3156,"src":"6968:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint8)"}},"id":445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6968:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6955:38:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":447,"nodeType":"ExpressionStatement","src":"6955:38:0"},{"assignments":[449],"declarations":[{"constant":false,"id":449,"mutability":"mutable","name":"startCursor","nameLocation":"7116:11:0","nodeType":"VariableDeclaration","scope":471,"src":"7108:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":448,"name":"uint256","nodeType":"ElementaryTypeName","src":"7108:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":453,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":450,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"7130:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7139:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"7130:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7108:32:0"},{"assignments":[455],"declarations":[{"constant":false,"id":455,"mutability":"mutable","name":"endCursor","nameLocation":"7194:9:0","nodeType":"VariableDeclaration","scope":471,"src":"7186:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":454,"name":"uint256","nodeType":"ElementaryTypeName","src":"7186:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":459,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":456,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"7206:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"7215:4:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"7206:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7186:33:0"},{"expression":{"id":465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":460,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"7233:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":461,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":411,"src":"7242:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":463,"name":"endCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"7263:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"7242:31:0","startExpression":{"id":462,"name":"startCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":449,"src":"7251:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"src":"7233:40:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":466,"nodeType":"ExpressionStatement","src":"7233:40:0"},{"expression":{"id":469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":467,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"7287:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":468,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"7297:4:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"7287:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":470,"nodeType":"ExpressionStatement","src":"7287:14:0"}]}]},"documentation":{"id":409,"nodeType":"StructuredDocumentation","src":"6185:359:0","text":"@dev decode the next dvn option from _options starting from the specified cursor\n @param _options the format is the same as groupDVNOptionsByIdx\n @param _cursor the cursor to start decoding\n @return optionType the type of the option\n @return option the option\n @return cursor the cursor to start decoding the next option"},"id":473,"implemented":true,"kind":"function","modifiers":[],"name":"nextDVNOption","nameLocation":"6558:13:0","nodeType":"FunctionDefinition","parameters":{"id":414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":411,"mutability":"mutable","name":"_options","nameLocation":"6596:8:0","nodeType":"VariableDeclaration","scope":473,"src":"6581:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":410,"name":"bytes","nodeType":"ElementaryTypeName","src":"6581:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":413,"mutability":"mutable","name":"_cursor","nameLocation":"6622:7:0","nodeType":"VariableDeclaration","scope":473,"src":"6614:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":412,"name":"uint256","nodeType":"ElementaryTypeName","src":"6614:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6571:64:0"},"returnParameters":{"id":421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":416,"mutability":"mutable","name":"optionType","nameLocation":"6665:10:0","nodeType":"VariableDeclaration","scope":473,"src":"6659:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":415,"name":"uint8","nodeType":"ElementaryTypeName","src":"6659:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":418,"mutability":"mutable","name":"option","nameLocation":"6692:6:0","nodeType":"VariableDeclaration","scope":473,"src":"6677:21:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":417,"name":"bytes","nodeType":"ElementaryTypeName","src":"6677:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":420,"mutability":"mutable","name":"cursor","nameLocation":"6708:6:0","nodeType":"VariableDeclaration","scope":473,"src":"6700:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":419,"name":"uint256","nodeType":"ElementaryTypeName","src":"6700:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6658:57:0"},"scope":474,"src":"6549:769:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":475,"src":"345:6975:0","usedErrors":[21,25],"usedEvents":[]}],"src":"38:7283:0"},"id":0},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol","exportedSymbols":{"MessagingFee":[2169],"MessagingReceipt":[2164],"OApp":[520],"OAppCore":[650],"OAppReceiver":[802],"OAppSender":[988],"Origin":[2176]},"id":521,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":476,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:1"},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol","file":"./OAppSender.sol","id":480,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":521,"sourceUnit":989,"src":"199:78:1","symbolAliases":[{"foreign":{"id":477,"name":"OAppSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":988,"src":"208:10:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":478,"name":"MessagingFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"220:12:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":479,"name":"MessagingReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2164,"src":"234:16:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol","file":"./OAppReceiver.sol","id":483,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":521,"sourceUnit":803,"src":"389:58:1","symbolAliases":[{"foreign":{"id":481,"name":"OAppReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":802,"src":"398:12:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":482,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"412:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol","file":"./OAppCore.sol","id":485,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":521,"sourceUnit":651,"src":"448:42:1","symbolAliases":[{"foreign":{"id":484,"name":"OAppCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"457:8:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":487,"name":"OAppSender","nameLocations":["665:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":988,"src":"665:10:1"},"id":488,"nodeType":"InheritanceSpecifier","src":"665:10:1"},{"baseName":{"id":489,"name":"OAppReceiver","nameLocations":["677:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":802,"src":"677:12:1"},"id":490,"nodeType":"InheritanceSpecifier","src":"677:12:1"}],"canonicalName":"OApp","contractDependencies":[],"contractKind":"contract","documentation":{"id":486,"nodeType":"StructuredDocumentation","src":"492:146:1","text":" @title OApp\n @dev Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality."},"fullyImplemented":false,"id":520,"linearizedBaseContracts":[520,802,988,650,5102,7098,1051,1134,2374],"name":"OApp","nameLocation":"657:4:1","nodeType":"ContractDefinition","nodes":[{"body":{"id":502,"nodeType":"Block","src":"1046:2:1","statements":[]},"documentation":{"id":491,"nodeType":"StructuredDocumentation","src":"696:264:1","text":" @dev Constructor to initialize the OApp with the provided endpoint and owner.\n @param _endpoint The address of the LOCAL LayerZero endpoint.\n @param _delegate The delegate capable of making OApp configurations inside of the endpoint."},"id":503,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":498,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":493,"src":"1024:9:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":499,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":495,"src":"1035:9:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":500,"kind":"baseConstructorSpecifier","modifierName":{"id":497,"name":"OAppCore","nameLocations":["1015:8:1"],"nodeType":"IdentifierPath","referencedDeclaration":650,"src":"1015:8:1"},"nodeType":"ModifierInvocation","src":"1015:30:1"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":493,"mutability":"mutable","name":"_endpoint","nameLocation":"985:9:1","nodeType":"VariableDeclaration","scope":503,"src":"977:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":492,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":495,"mutability":"mutable","name":"_delegate","nameLocation":"1004:9:1","nodeType":"VariableDeclaration","scope":503,"src":"996:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":494,"name":"address","nodeType":"ElementaryTypeName","src":"996:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"976:38:1"},"returnParameters":{"id":501,"nodeType":"ParameterList","parameters":[],"src":"1046:0:1"},"scope":520,"src":"965:83:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[682,842],"body":{"id":518,"nodeType":"Block","src":"1464:58:1","statements":[{"expression":{"components":[{"id":514,"name":"SENDER_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"1482:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":515,"name":"RECEIVER_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"1498:16:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":516,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1481:34:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":513,"id":517,"nodeType":"Return","src":"1474:41:1"}]},"documentation":{"id":504,"nodeType":"StructuredDocumentation","src":"1054:228:1","text":" @notice Retrieves the OApp version information.\n @return senderVersion The version of the OAppSender.sol implementation.\n @return receiverVersion The version of the OAppReceiver.sol implementation."},"functionSelector":"17442b70","id":519,"implemented":true,"kind":"function","modifiers":[],"name":"oAppVersion","nameLocation":"1296:11:1","nodeType":"FunctionDefinition","overrides":{"id":508,"nodeType":"OverrideSpecifier","overrides":[{"id":506,"name":"OAppSender","nameLocations":["1371:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":988,"src":"1371:10:1"},{"id":507,"name":"OAppReceiver","nameLocations":["1383:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":802,"src":"1383:12:1"}],"src":"1362:34:1"},"parameters":{"id":505,"nodeType":"ParameterList","parameters":[],"src":"1307:2:1"},"returnParameters":{"id":513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":510,"mutability":"mutable","name":"senderVersion","nameLocation":"1421:13:1","nodeType":"VariableDeclaration","scope":519,"src":"1414:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":509,"name":"uint64","nodeType":"ElementaryTypeName","src":"1414:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":512,"mutability":"mutable","name":"receiverVersion","nameLocation":"1443:15:1","nodeType":"VariableDeclaration","scope":519,"src":"1436:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":511,"name":"uint64","nodeType":"ElementaryTypeName","src":"1436:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1413:46:1"},"scope":520,"src":"1287:235:1","stateMutability":"pure","virtual":true,"visibility":"public"}],"scope":521,"src":"639:885:1","usedErrors":[666,824,826,999,1003,1005,1007,4968,4973],"usedEvents":[1013,4979]}],"src":"33:1492:1"},"id":1},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol","exportedSymbols":{"ILayerZeroEndpointV2":[2338],"IOAppCore":[1051],"OAppCore":[650],"Ownable":[5102]},"id":651,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":522,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:2"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":524,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":651,"sourceUnit":5103,"src":"59:69:2","symbolAliases":[{"foreign":{"id":523,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"68:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol","file":"./interfaces/IOAppCore.sol","id":527,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":651,"sourceUnit":1052,"src":"129:77:2","symbolAliases":[{"foreign":{"id":525,"name":"IOAppCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1051,"src":"138:9:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":526,"name":"ILayerZeroEndpointV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2338,"src":"149:20:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":529,"name":"IOAppCore","nameLocations":["360:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":1051,"src":"360:9:2"},"id":530,"nodeType":"InheritanceSpecifier","src":"360:9:2"},{"baseName":{"id":531,"name":"Ownable","nameLocations":["371:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":5102,"src":"371:7:2"},"id":532,"nodeType":"InheritanceSpecifier","src":"371:7:2"}],"canonicalName":"OAppCore","contractDependencies":[],"contractKind":"contract","documentation":{"id":528,"nodeType":"StructuredDocumentation","src":"208:121:2","text":" @title OAppCore\n @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations."},"fullyImplemented":false,"id":650,"linearizedBaseContracts":[650,5102,7098,1051],"name":"OAppCore","nameLocation":"348:8:2","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[1028],"constant":false,"functionSelector":"5e280f11","id":535,"mutability":"immutable","name":"endpoint","nameLocation":"484:8:2","nodeType":"VariableDeclaration","scope":650,"src":"446:46:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"},"typeName":{"id":534,"nodeType":"UserDefinedTypeName","pathNode":{"id":533,"name":"ILayerZeroEndpointV2","nameLocations":["446:20:2"],"nodeType":"IdentifierPath","referencedDeclaration":2338,"src":"446:20:2"},"referencedDeclaration":2338,"src":"446:20:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}},"visibility":"public"},{"baseFunctions":[1036],"constant":false,"functionSelector":"bb0b6a53","id":539,"mutability":"mutable","name":"peers","nameLocation":"612:5:2","nodeType":"VariableDeclaration","scope":650,"src":"569:48:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_bytes32_$","typeString":"mapping(uint32 => bytes32)"},"typeName":{"id":538,"keyName":"eid","keyNameLocation":"584:3:2","keyType":{"id":536,"name":"uint32","nodeType":"ElementaryTypeName","src":"577:6:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Mapping","src":"569:35:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_bytes32_$","typeString":"mapping(uint32 => bytes32)"},"valueName":"peer","valueNameLocation":"599:4:2","valueType":{"id":537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"591:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"public"},{"body":{"id":569,"nodeType":"Block","src":"1037:164:2","statements":[{"expression":{"id":551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":547,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"1047:8:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":549,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":542,"src":"1079:9:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":548,"name":"ILayerZeroEndpointV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2338,"src":"1058:20:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroEndpointV2_$2338_$","typeString":"type(contract ILayerZeroEndpointV2)"}},"id":550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}},"src":"1047:42:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}},"id":552,"nodeType":"ExpressionStatement","src":"1047:42:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":553,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":544,"src":"1104:9:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1125:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1117:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":554,"name":"address","nodeType":"ElementaryTypeName","src":"1117:7:2","typeDescriptions":{}}},"id":557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1117:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1104:23:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":562,"nodeType":"IfStatement","src":"1100:53:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":559,"name":"InvalidDelegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1007,"src":"1136:15:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1136:17:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":561,"nodeType":"RevertStatement","src":"1129:24:2"}},{"expression":{"arguments":[{"id":566,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":544,"src":"1184:9:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":563,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"1163:8:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}},"id":565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1172:11:2","memberName":"setDelegate","nodeType":"MemberAccess","referencedDeclaration":2337,"src":"1163:20:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1163:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":568,"nodeType":"ExpressionStatement","src":"1163:31:2"}]},"documentation":{"id":540,"nodeType":"StructuredDocumentation","src":"624:358:2","text":" @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\n @param _endpoint The address of the LOCAL Layer Zero endpoint.\n @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\n @dev The delegate typically should be set as the owner of the contract."},"id":570,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":542,"mutability":"mutable","name":"_endpoint","nameLocation":"1007:9:2","nodeType":"VariableDeclaration","scope":570,"src":"999:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":541,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":544,"mutability":"mutable","name":"_delegate","nameLocation":"1026:9:2","nodeType":"VariableDeclaration","scope":570,"src":"1018:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":543,"name":"address","nodeType":"ElementaryTypeName","src":"1018:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"998:38:2"},"returnParameters":{"id":546,"nodeType":"ParameterList","parameters":[],"src":"1037:0:2"},"scope":650,"src":"987:214:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1044],"body":{"id":585,"nodeType":"Block","src":"1794:38:2","statements":[{"expression":{"arguments":[{"id":581,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"1813:4:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":582,"name":"_peer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":575,"src":"1819:5:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":580,"name":"_setPeer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"1804:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint32_$_t_bytes32_$returns$__$","typeString":"function (uint32,bytes32)"}},"id":583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1804:21:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":584,"nodeType":"ExpressionStatement","src":"1804:21:2"}]},"documentation":{"id":571,"nodeType":"StructuredDocumentation","src":"1207:512:2","text":" @notice Sets the peer address (OApp instance) for a corresponding endpoint.\n @param _eid The endpoint ID.\n @param _peer The address of the peer to be associated with the corresponding endpoint.\n @dev Only the owner/admin of the OApp can call this function.\n @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\n @dev Set this to bytes32(0) to remove the peer address.\n @dev Peer is a bytes32 to accommodate non-evm chains."},"functionSelector":"3400288b","id":586,"implemented":true,"kind":"function","modifiers":[{"id":578,"kind":"modifierInvocation","modifierName":{"id":577,"name":"onlyOwner","nameLocations":["1784:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":5013,"src":"1784:9:2"},"nodeType":"ModifierInvocation","src":"1784:9:2"}],"name":"setPeer","nameLocation":"1733:7:2","nodeType":"FunctionDefinition","parameters":{"id":576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":573,"mutability":"mutable","name":"_eid","nameLocation":"1748:4:2","nodeType":"VariableDeclaration","scope":586,"src":"1741:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":572,"name":"uint32","nodeType":"ElementaryTypeName","src":"1741:6:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":575,"mutability":"mutable","name":"_peer","nameLocation":"1762:5:2","nodeType":"VariableDeclaration","scope":586,"src":"1754:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1754:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1740:28:2"},"returnParameters":{"id":579,"nodeType":"ParameterList","parameters":[],"src":"1794:0:2"},"scope":650,"src":"1724:108:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":605,"nodeType":"Block","src":"2349:71:2","statements":[{"expression":{"id":598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":594,"name":"peers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"2359:5:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_bytes32_$","typeString":"mapping(uint32 => bytes32)"}},"id":596,"indexExpression":{"id":595,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":589,"src":"2365:4:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2359:11:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":597,"name":"_peer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":591,"src":"2373:5:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2359:19:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":599,"nodeType":"ExpressionStatement","src":"2359:19:2"},{"eventCall":{"arguments":[{"id":601,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":589,"src":"2401:4:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":602,"name":"_peer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":591,"src":"2407:5:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":600,"name":"PeerSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"2393:7:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint32_$_t_bytes32_$returns$__$","typeString":"function (uint32,bytes32)"}},"id":603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2393:20:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":604,"nodeType":"EmitStatement","src":"2388:25:2"}]},"documentation":{"id":587,"nodeType":"StructuredDocumentation","src":"1838:443:2","text":" @notice Sets the peer address (OApp instance) for a corresponding endpoint.\n @param _eid The endpoint ID.\n @param _peer The address of the peer to be associated with the corresponding endpoint.\n @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\n @dev Set this to bytes32(0) to remove the peer address.\n @dev Peer is a bytes32 to accommodate non-evm chains."},"id":606,"implemented":true,"kind":"function","modifiers":[],"name":"_setPeer","nameLocation":"2295:8:2","nodeType":"FunctionDefinition","parameters":{"id":592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":589,"mutability":"mutable","name":"_eid","nameLocation":"2311:4:2","nodeType":"VariableDeclaration","scope":606,"src":"2304:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":588,"name":"uint32","nodeType":"ElementaryTypeName","src":"2304:6:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":591,"mutability":"mutable","name":"_peer","nameLocation":"2325:5:2","nodeType":"VariableDeclaration","scope":606,"src":"2317:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2317:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2303:28:2"},"returnParameters":{"id":593,"nodeType":"ParameterList","parameters":[],"src":"2349:0:2"},"scope":650,"src":"2286:134:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":633,"nodeType":"Block","src":"2797:117:2","statements":[{"assignments":[615],"declarations":[{"constant":false,"id":615,"mutability":"mutable","name":"peer","nameLocation":"2815:4:2","nodeType":"VariableDeclaration","scope":633,"src":"2807:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":614,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2807:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":619,"initialValue":{"baseExpression":{"id":616,"name":"peers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"2822:5:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_bytes32_$","typeString":"mapping(uint32 => bytes32)"}},"id":618,"indexExpression":{"id":617,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"2828:4:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2822:11:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2807:26:2"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":620,"name":"peer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"2847:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2863:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2855:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2855:7:2","typeDescriptions":{}}},"id":624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2855:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2847:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":630,"nodeType":"IfStatement","src":"2843:43:2","trueBody":{"errorCall":{"arguments":[{"id":627,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"2881:4:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":626,"name":"NoPeer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"2874:6:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint32_$returns$__$","typeString":"function (uint32) pure"}},"id":628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2874:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":629,"nodeType":"RevertStatement","src":"2867:19:2"}},{"expression":{"id":631,"name":"peer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"2903:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":613,"id":632,"nodeType":"Return","src":"2896:11:2"}]},"documentation":{"id":607,"nodeType":"StructuredDocumentation","src":"2426:287:2","text":" @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\n ie. the peer is set to bytes32(0).\n @param _eid The endpoint ID.\n @return peer The address of the peer associated with the specified endpoint."},"id":634,"implemented":true,"kind":"function","modifiers":[],"name":"_getPeerOrRevert","nameLocation":"2727:16:2","nodeType":"FunctionDefinition","parameters":{"id":610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":609,"mutability":"mutable","name":"_eid","nameLocation":"2751:4:2","nodeType":"VariableDeclaration","scope":634,"src":"2744:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":608,"name":"uint32","nodeType":"ElementaryTypeName","src":"2744:6:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2743:13:2"},"returnParameters":{"id":613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":634,"src":"2788:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2788:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2787:9:2"},"scope":650,"src":"2718:196:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[1050],"body":{"id":648,"nodeType":"Block","src":"3309:48:2","statements":[{"expression":{"arguments":[{"id":645,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":637,"src":"3340:9:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":642,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"3319:8:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3328:11:2","memberName":"setDelegate","nodeType":"MemberAccess","referencedDeclaration":2337,"src":"3319:20:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3319:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":647,"nodeType":"ExpressionStatement","src":"3319:31:2"}]},"documentation":{"id":635,"nodeType":"StructuredDocumentation","src":"2920:327:2","text":" @notice Sets the delegate address for the OApp.\n @param _delegate The address of the delegate to be set.\n @dev Only the owner/admin of the OApp can call this function.\n @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract."},"functionSelector":"ca5eb5e1","id":649,"implemented":true,"kind":"function","modifiers":[{"id":640,"kind":"modifierInvocation","modifierName":{"id":639,"name":"onlyOwner","nameLocations":["3299:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":5013,"src":"3299:9:2"},"nodeType":"ModifierInvocation","src":"3299:9:2"}],"name":"setDelegate","nameLocation":"3261:11:2","nodeType":"FunctionDefinition","parameters":{"id":638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":637,"mutability":"mutable","name":"_delegate","nameLocation":"3281:9:2","nodeType":"VariableDeclaration","scope":649,"src":"3273:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":636,"name":"address","nodeType":"ElementaryTypeName","src":"3273:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3272:19:2"},"returnParameters":{"id":641,"nodeType":"ParameterList","parameters":[],"src":"3309:0:2"},"scope":650,"src":"3252:105:2","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":651,"src":"330:3029:2","usedErrors":[999,1003,1005,1007,4968,4973],"usedEvents":[1013,4979]}],"src":"33:3327:2"},"id":2},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol","exportedSymbols":{"IOAppReceiver":[1134],"OAppCore":[650],"OAppReceiver":[802],"Origin":[2176]},"id":803,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":652,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:3"},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol","file":"./interfaces/IOAppReceiver.sol","id":655,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":803,"sourceUnit":1135,"src":"59:71:3","symbolAliases":[{"foreign":{"id":653,"name":"IOAppReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1134,"src":"68:13:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":654,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"83:6:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol","file":"./OAppCore.sol","id":657,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":803,"sourceUnit":651,"src":"131:42:3","symbolAliases":[{"foreign":{"id":656,"name":"OAppCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"140:8:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":659,"name":"IOAppReceiver","nameLocations":["355:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":1134,"src":"355:13:3"},"id":660,"nodeType":"InheritanceSpecifier","src":"355:13:3"},{"baseName":{"id":661,"name":"OAppCore","nameLocations":["370:8:3"],"nodeType":"IdentifierPath","referencedDeclaration":650,"src":"370:8:3"},"id":662,"nodeType":"InheritanceSpecifier","src":"370:8:3"}],"canonicalName":"OAppReceiver","contractDependencies":[],"contractKind":"contract","documentation":{"id":658,"nodeType":"StructuredDocumentation","src":"175:145:3","text":" @title OAppReceiver\n @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers."},"fullyImplemented":false,"id":802,"linearizedBaseContracts":[802,650,5102,7098,1051,1134,2374],"name":"OAppReceiver","nameLocation":"339:12:3","nodeType":"ContractDefinition","nodes":[{"errorSelector":"91ac5e4f","id":666,"name":"OnlyEndpoint","nameLocation":"471:12:3","nodeType":"ErrorDefinition","parameters":{"id":665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":664,"mutability":"mutable","name":"addr","nameLocation":"492:4:3","nodeType":"VariableDeclaration","scope":666,"src":"484:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":663,"name":"address","nodeType":"ElementaryTypeName","src":"484:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"483:14:3"},"src":"465:33:3"},{"constant":true,"id":669,"mutability":"constant","name":"RECEIVER_VERSION","nameLocation":"659:16:3","nodeType":"VariableDeclaration","scope":802,"src":"634:45:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":667,"name":"uint64","nodeType":"ElementaryTypeName","src":"634:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"32","id":668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"678:1:3","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"baseFunctions":[1021],"body":{"id":681,"nodeType":"Block","src":"1291:45:3","statements":[{"expression":{"components":[{"hexValue":"30","id":677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1309:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":678,"name":"RECEIVER_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"1312:16:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":679,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1308:21:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_uint64_$","typeString":"tuple(int_const 0,uint64)"}},"functionReturnParameters":676,"id":680,"nodeType":"Return","src":"1301:28:3"}]},"documentation":{"id":670,"nodeType":"StructuredDocumentation","src":"686:502:3","text":" @notice Retrieves the OApp version information.\n @return senderVersion The version of the OAppSender.sol contract.\n @return receiverVersion The version of the OAppReceiver.sol contract.\n @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\n ie. this is a RECEIVE only OApp.\n @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions."},"functionSelector":"17442b70","id":682,"implemented":true,"kind":"function","modifiers":[],"name":"oAppVersion","nameLocation":"1202:11:3","nodeType":"FunctionDefinition","parameters":{"id":671,"nodeType":"ParameterList","parameters":[],"src":"1213:2:3"},"returnParameters":{"id":676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":673,"mutability":"mutable","name":"senderVersion","nameLocation":"1252:13:3","nodeType":"VariableDeclaration","scope":682,"src":"1245:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":672,"name":"uint64","nodeType":"ElementaryTypeName","src":"1245:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":675,"mutability":"mutable","name":"receiverVersion","nameLocation":"1274:15:3","nodeType":"VariableDeclaration","scope":682,"src":"1267:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":674,"name":"uint64","nodeType":"ElementaryTypeName","src":"1267:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1244:46:3"},"scope":802,"src":"1193:143:3","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1133],"body":{"id":702,"nodeType":"Block","src":"2181:48:3","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":695,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":690,"src":"2198:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":698,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2217:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_OAppReceiver_$802","typeString":"contract OAppReceiver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OAppReceiver_$802","typeString":"contract OAppReceiver"}],"id":697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2209:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":696,"name":"address","nodeType":"ElementaryTypeName","src":"2209:7:3","typeDescriptions":{}}},"id":699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2209:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2198:24:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":694,"id":701,"nodeType":"Return","src":"2191:31:3"}]},"documentation":{"id":683,"nodeType":"StructuredDocumentation","src":"1342:666:3","text":" @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\n @dev _origin The origin information containing the source endpoint and sender address.\n - srcEid: The source chain endpoint ID.\n - sender: The sender address on the src chain.\n - nonce: The nonce of the message.\n @dev _message The lzReceive payload.\n @param _sender The sender address.\n @return isSender Is a valid sender.\n @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\n @dev The default sender IS the OAppReceiver implementer."},"functionSelector":"82413eac","id":703,"implemented":true,"kind":"function","modifiers":[],"name":"isComposeMsgSender","nameLocation":"2022:18:3","nodeType":"FunctionDefinition","parameters":{"id":691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":703,"src":"2050:15:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":685,"nodeType":"UserDefinedTypeName","pathNode":{"id":684,"name":"Origin","nameLocations":["2050:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"2050:6:3"},"referencedDeclaration":2176,"src":"2050:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":703,"src":"2087:14:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":687,"name":"bytes","nodeType":"ElementaryTypeName","src":"2087:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":690,"mutability":"mutable","name":"_sender","nameLocation":"2132:7:3","nodeType":"VariableDeclaration","scope":703,"src":"2124:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":689,"name":"address","nodeType":"ElementaryTypeName","src":"2124:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2040:105:3"},"returnParameters":{"id":694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":693,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":703,"src":"2175:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":692,"name":"bool","nodeType":"ElementaryTypeName","src":"2175:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2174:6:3"},"scope":802,"src":"2013:216:3","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2350],"body":{"id":720,"nodeType":"Block","src":"2859:61:3","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":712,"name":"peers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"2876:5:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_bytes32_$","typeString":"mapping(uint32 => bytes32)"}},"id":715,"indexExpression":{"expression":{"id":713,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":707,"src":"2882:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2889:6:3","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":2171,"src":"2882:13:3","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2876:20:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":716,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":707,"src":"2900:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2907:6:3","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":2173,"src":"2900:13:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2876:37:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":711,"id":719,"nodeType":"Return","src":"2869:44:3"}]},"documentation":{"id":704,"nodeType":"StructuredDocumentation","src":"2235:531:3","text":" @notice Checks if the path initialization is allowed based on the provided origin.\n @param origin The origin information containing the source endpoint and sender address.\n @return Whether the path has been initialized.\n @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\n @dev This defaults to assuming if a peer has been set, its initialized.\n Can be overridden by the OApp if there is other logic to determine this."},"functionSelector":"ff7bd03d","id":721,"implemented":true,"kind":"function","modifiers":[],"name":"allowInitializePath","nameLocation":"2780:19:3","nodeType":"FunctionDefinition","parameters":{"id":708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":707,"mutability":"mutable","name":"origin","nameLocation":"2816:6:3","nodeType":"VariableDeclaration","scope":721,"src":"2800:22:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":706,"nodeType":"UserDefinedTypeName","pathNode":{"id":705,"name":"Origin","nameLocations":["2800:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"2800:6:3"},"referencedDeclaration":2176,"src":"2800:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"}],"src":"2799:24:3"},"returnParameters":{"id":711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":721,"src":"2853:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":709,"name":"bool","nodeType":"ElementaryTypeName","src":"2853:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2852:6:3"},"scope":802,"src":"2771:149:3","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2359],"body":{"id":733,"nodeType":"Block","src":"3610:25:3","statements":[{"expression":{"hexValue":"30","id":731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3627:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":730,"id":732,"nodeType":"Return","src":"3620:8:3"}]},"documentation":{"id":722,"nodeType":"StructuredDocumentation","src":"2926:576:3","text":" @notice Retrieves the next nonce for a given source endpoint and sender address.\n @dev _srcEid The source endpoint ID.\n @dev _sender The sender address.\n @return nonce The next nonce.\n @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\n @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\n @dev This is also enforced by the OApp.\n @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0."},"functionSelector":"7d25a05e","id":734,"implemented":true,"kind":"function","modifiers":[],"name":"nextNonce","nameLocation":"3516:9:3","nodeType":"FunctionDefinition","parameters":{"id":727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":734,"src":"3526:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":723,"name":"uint32","nodeType":"ElementaryTypeName","src":"3526:6:3","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":734,"src":"3546:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":725,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3546:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3525:41:3"},"returnParameters":{"id":730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":729,"mutability":"mutable","name":"nonce","nameLocation":"3603:5:3","nodeType":"VariableDeclaration","scope":734,"src":"3596:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":728,"name":"uint64","nodeType":"ElementaryTypeName","src":"3596:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3595:14:3"},"scope":802,"src":"3507:128:3","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2373],"body":{"id":785,"nodeType":"Block","src":"4567:509:3","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":751,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"4681:8:3","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}],"id":750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4673:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":749,"name":"address","nodeType":"ElementaryTypeName","src":"4673:7:3","typeDescriptions":{}}},"id":752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4673:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":753,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4694:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4698:6:3","memberName":"sender","nodeType":"MemberAccess","src":"4694:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4673:31:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":761,"nodeType":"IfStatement","src":"4669:68:3","trueBody":{"errorCall":{"arguments":[{"expression":{"id":757,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4726:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4730:6:3","memberName":"sender","nodeType":"MemberAccess","src":"4726:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":756,"name":"OnlyEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":666,"src":"4713:12:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4713:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":760,"nodeType":"RevertStatement","src":"4706:31:3"}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":763,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":738,"src":"4854:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4862:6:3","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":2171,"src":"4854:14:3","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":762,"name":"_getPeerOrRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"4837:16:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$_t_bytes32_$","typeString":"function (uint32) view returns (bytes32)"}},"id":765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4837:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":766,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":738,"src":"4873:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4881:6:3","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":2173,"src":"4873:14:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4837:50:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":776,"nodeType":"IfStatement","src":"4833:103:3","trueBody":{"errorCall":{"arguments":[{"expression":{"id":770,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":738,"src":"4905:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4913:6:3","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":2171,"src":"4905:14:3","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"id":772,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":738,"src":"4921:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4929:6:3","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":2173,"src":"4921:14:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":769,"name":"OnlyPeer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":999,"src":"4896:8:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint32_$_t_bytes32_$returns$__$","typeString":"function (uint32,bytes32) pure"}},"id":774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4896:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":775,"nodeType":"RevertStatement","src":"4889:47:3"}},{"expression":{"arguments":[{"id":778,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":738,"src":"5021:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},{"id":779,"name":"_guid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":740,"src":"5030:5:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":780,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":742,"src":"5037:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":781,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":744,"src":"5047:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":782,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":746,"src":"5058:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":777,"name":"_lzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":801,"src":"5010:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Origin_$2176_calldata_ptr_$_t_bytes32_$_t_bytes_calldata_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (struct Origin calldata,bytes32,bytes calldata,address,bytes calldata)"}},"id":783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5010:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":784,"nodeType":"ExpressionStatement","src":"5010:59:3"}]},"documentation":{"id":735,"nodeType":"StructuredDocumentation","src":"3641:722:3","text":" @dev Entry point for receiving messages or packets from the endpoint.\n @param _origin The origin information containing the source endpoint and sender address.\n - srcEid: The source chain endpoint ID.\n - sender: The sender address on the src chain.\n - nonce: The nonce of the message.\n @param _guid The unique identifier for the received LayerZero message.\n @param _message The payload of the received message.\n @param _executor The address of the executor for the received message.\n @param _extraData Additional arbitrary data provided by the corresponding executor.\n @dev Entry point for receiving msg/packet from the LayerZero endpoint."},"functionSelector":"13137d65","id":786,"implemented":true,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"4377:9:3","nodeType":"FunctionDefinition","parameters":{"id":747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":738,"mutability":"mutable","name":"_origin","nameLocation":"4412:7:3","nodeType":"VariableDeclaration","scope":786,"src":"4396:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":737,"nodeType":"UserDefinedTypeName","pathNode":{"id":736,"name":"Origin","nameLocations":["4396:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"4396:6:3"},"referencedDeclaration":2176,"src":"4396:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":740,"mutability":"mutable","name":"_guid","nameLocation":"4437:5:3","nodeType":"VariableDeclaration","scope":786,"src":"4429:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4429:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":742,"mutability":"mutable","name":"_message","nameLocation":"4467:8:3","nodeType":"VariableDeclaration","scope":786,"src":"4452:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":741,"name":"bytes","nodeType":"ElementaryTypeName","src":"4452:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":744,"mutability":"mutable","name":"_executor","nameLocation":"4493:9:3","nodeType":"VariableDeclaration","scope":786,"src":"4485:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":743,"name":"address","nodeType":"ElementaryTypeName","src":"4485:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":746,"mutability":"mutable","name":"_extraData","nameLocation":"4527:10:3","nodeType":"VariableDeclaration","scope":786,"src":"4512:25:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":745,"name":"bytes","nodeType":"ElementaryTypeName","src":"4512:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4386:157:3"},"returnParameters":{"id":748,"nodeType":"ParameterList","parameters":[],"src":"4567:0:3"},"scope":802,"src":"4368:708:3","stateMutability":"payable","virtual":true,"visibility":"public"},{"documentation":{"id":787,"nodeType":"StructuredDocumentation","src":"5082:126:3","text":" @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation."},"id":801,"implemented":false,"kind":"function","modifiers":[],"name":"_lzReceive","nameLocation":"5222:10:3","nodeType":"FunctionDefinition","parameters":{"id":799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":790,"mutability":"mutable","name":"_origin","nameLocation":"5258:7:3","nodeType":"VariableDeclaration","scope":801,"src":"5242:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":789,"nodeType":"UserDefinedTypeName","pathNode":{"id":788,"name":"Origin","nameLocations":["5242:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"5242:6:3"},"referencedDeclaration":2176,"src":"5242:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":792,"mutability":"mutable","name":"_guid","nameLocation":"5283:5:3","nodeType":"VariableDeclaration","scope":801,"src":"5275:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5275:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":794,"mutability":"mutable","name":"_message","nameLocation":"5313:8:3","nodeType":"VariableDeclaration","scope":801,"src":"5298:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":793,"name":"bytes","nodeType":"ElementaryTypeName","src":"5298:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":796,"mutability":"mutable","name":"_executor","nameLocation":"5339:9:3","nodeType":"VariableDeclaration","scope":801,"src":"5331:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":795,"name":"address","nodeType":"ElementaryTypeName","src":"5331:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":798,"mutability":"mutable","name":"_extraData","nameLocation":"5373:10:3","nodeType":"VariableDeclaration","scope":801,"src":"5358:25:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":797,"name":"bytes","nodeType":"ElementaryTypeName","src":"5358:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5232:157:3"},"returnParameters":{"id":800,"nodeType":"ParameterList","parameters":[],"src":"5406:0:3"},"scope":802,"src":"5213:194:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":803,"src":"321:5088:3","usedErrors":[666,999,1003,1005,1007,4968,4973],"usedEvents":[1013,4979]}],"src":"33:5377:3"},"id":3},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol","exportedSymbols":{"IERC20":[5317],"MessagingFee":[2169],"MessagingParams":[2156],"MessagingReceipt":[2164],"OAppCore":[650],"OAppSender":[988],"SafeERC20":[5643]},"id":989,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":804,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:4"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":807,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":989,"sourceUnit":5644,"src":"59:92:4","symbolAliases":[{"foreign":{"id":805,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5643,"src":"68:9:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":806,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5317,"src":"79:6:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","id":811,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":989,"sourceUnit":2339,"src":"152:146:4","symbolAliases":[{"foreign":{"id":808,"name":"MessagingParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2156,"src":"161:15:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":809,"name":"MessagingFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"178:12:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":810,"name":"MessagingReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2164,"src":"192:16:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol","file":"./OAppCore.sol","id":813,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":989,"sourceUnit":651,"src":"299:42:4","symbolAliases":[{"foreign":{"id":812,"name":"OAppCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"308:8:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":815,"name":"OAppCore","nameLocations":["518:8:4"],"nodeType":"IdentifierPath","referencedDeclaration":650,"src":"518:8:4"},"id":816,"nodeType":"InheritanceSpecifier","src":"518:8:4"}],"canonicalName":"OAppSender","contractDependencies":[],"contractKind":"contract","documentation":{"id":814,"nodeType":"StructuredDocumentation","src":"343:142:4","text":" @title OAppSender\n @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint."},"fullyImplemented":true,"id":988,"linearizedBaseContracts":[988,650,5102,7098,1051],"name":"OAppSender","nameLocation":"504:10:4","nodeType":"ContractDefinition","nodes":[{"global":false,"id":820,"libraryName":{"id":817,"name":"SafeERC20","nameLocations":["539:9:4"],"nodeType":"IdentifierPath","referencedDeclaration":5643,"src":"539:9:4"},"nodeType":"UsingForDirective","src":"533:27:4","typeName":{"id":819,"nodeType":"UserDefinedTypeName","pathNode":{"id":818,"name":"IERC20","nameLocations":["553:6:4"],"nodeType":"IdentifierPath","referencedDeclaration":5317,"src":"553:6:4"},"referencedDeclaration":5317,"src":"553:6:4","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}}},{"errorSelector":"9f704120","id":824,"name":"NotEnoughNative","nameLocation":"601:15:4","nodeType":"ErrorDefinition","parameters":{"id":823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":822,"mutability":"mutable","name":"msgValue","nameLocation":"625:8:4","nodeType":"VariableDeclaration","scope":824,"src":"617:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":821,"name":"uint256","nodeType":"ElementaryTypeName","src":"617:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"616:18:4"},"src":"595:40:4"},{"errorSelector":"5373352a","id":826,"name":"LzTokenUnavailable","nameLocation":"646:18:4","nodeType":"ErrorDefinition","parameters":{"id":825,"nodeType":"ParameterList","parameters":[],"src":"664:2:4"},"src":"640:27:4"},{"constant":true,"id":829,"mutability":"constant","name":"SENDER_VERSION","nameLocation":"826:14:4","nodeType":"VariableDeclaration","scope":988,"src":"801:43:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":827,"name":"uint64","nodeType":"ElementaryTypeName","src":"801:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"843:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"baseFunctions":[1021],"body":{"id":841,"nodeType":"Block","src":"1456:43:4","statements":[{"expression":{"components":[{"id":837,"name":"SENDER_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"1474:14:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"30","id":838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1490:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":839,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1473:19:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_rational_0_by_1_$","typeString":"tuple(uint64,int_const 0)"}},"functionReturnParameters":836,"id":840,"nodeType":"Return","src":"1466:26:4"}]},"documentation":{"id":830,"nodeType":"StructuredDocumentation","src":"851:502:4","text":" @notice Retrieves the OApp version information.\n @return senderVersion The version of the OAppSender.sol contract.\n @return receiverVersion The version of the OAppReceiver.sol contract.\n @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\n ie. this is a SEND only OApp.\n @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions"},"functionSelector":"17442b70","id":842,"implemented":true,"kind":"function","modifiers":[],"name":"oAppVersion","nameLocation":"1367:11:4","nodeType":"FunctionDefinition","parameters":{"id":831,"nodeType":"ParameterList","parameters":[],"src":"1378:2:4"},"returnParameters":{"id":836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":833,"mutability":"mutable","name":"senderVersion","nameLocation":"1417:13:4","nodeType":"VariableDeclaration","scope":842,"src":"1410:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":832,"name":"uint64","nodeType":"ElementaryTypeName","src":"1410:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":835,"mutability":"mutable","name":"receiverVersion","nameLocation":"1439:15:4","nodeType":"VariableDeclaration","scope":842,"src":"1432:22:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":834,"name":"uint64","nodeType":"ElementaryTypeName","src":"1432:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1409:46:4"},"scope":988,"src":"1358:141:4","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":874,"nodeType":"Block","src":"2230:199:4","statements":[{"expression":{"arguments":[{"arguments":[{"id":860,"name":"_dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"2307:7:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"id":862,"name":"_dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"2333:7:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":861,"name":"_getPeerOrRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"2316:16:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$_t_bytes32_$","typeString":"function (uint32) view returns (bytes32)"}},"id":863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2316:25:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":864,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"2343:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":865,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"2353:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":866,"name":"_payInLzToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":851,"src":"2363:13:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":859,"name":"MessagingParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2156,"src":"2291:15:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_MessagingParams_$2156_storage_ptr_$","typeString":"type(struct MessagingParams storage pointer)"}},"id":867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2291:86:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$2156_memory_ptr","typeString":"struct MessagingParams memory"}},{"arguments":[{"id":870,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2403:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_OAppSender_$988","typeString":"contract OAppSender"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OAppSender_$988","typeString":"contract OAppSender"}],"id":869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2395:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":868,"name":"address","nodeType":"ElementaryTypeName","src":"2395:7:4","typeDescriptions":{}}},"id":871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2395:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MessagingParams_$2156_memory_ptr","typeString":"struct MessagingParams memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":857,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"2259:8:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}},"id":858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2268:5:4","memberName":"quote","nodeType":"MemberAccess","referencedDeclaration":2250,"src":"2259:14:4","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_MessagingParams_$2156_memory_ptr_$_t_address_$returns$_t_struct$_MessagingFee_$2169_memory_ptr_$","typeString":"function (struct MessagingParams memory,address) view external returns (struct MessagingFee memory)"}},"id":872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2259:163:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee memory"}},"functionReturnParameters":856,"id":873,"nodeType":"Return","src":"2240:182:4"}]},"documentation":{"id":843,"nodeType":"StructuredDocumentation","src":"1505:528:4","text":" @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\n @param _dstEid The destination endpoint ID.\n @param _message The message payload.\n @param _options Additional options for the message.\n @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\n @return fee The calculated MessagingFee for the message.\n - nativeFee: The native fee for the message.\n - lzTokenFee: The LZ token fee for the message."},"id":875,"implemented":true,"kind":"function","modifiers":[],"name":"_quote","nameLocation":"2047:6:4","nodeType":"FunctionDefinition","parameters":{"id":852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":845,"mutability":"mutable","name":"_dstEid","nameLocation":"2070:7:4","nodeType":"VariableDeclaration","scope":875,"src":"2063:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":844,"name":"uint32","nodeType":"ElementaryTypeName","src":"2063:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":847,"mutability":"mutable","name":"_message","nameLocation":"2100:8:4","nodeType":"VariableDeclaration","scope":875,"src":"2087:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":846,"name":"bytes","nodeType":"ElementaryTypeName","src":"2087:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":849,"mutability":"mutable","name":"_options","nameLocation":"2131:8:4","nodeType":"VariableDeclaration","scope":875,"src":"2118:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":848,"name":"bytes","nodeType":"ElementaryTypeName","src":"2118:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":851,"mutability":"mutable","name":"_payInLzToken","nameLocation":"2154:13:4","nodeType":"VariableDeclaration","scope":875,"src":"2149:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":850,"name":"bool","nodeType":"ElementaryTypeName","src":"2149:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2053:120:4"},"returnParameters":{"id":856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":855,"mutability":"mutable","name":"fee","nameLocation":"2225:3:4","nodeType":"VariableDeclaration","scope":875,"src":"2205:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":854,"nodeType":"UserDefinedTypeName","pathNode":{"id":853,"name":"MessagingFee","nameLocations":["2205:12:4"],"nodeType":"IdentifierPath","referencedDeclaration":2169,"src":"2205:12:4"},"referencedDeclaration":2169,"src":"2205:12:4","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"}],"src":"2204:25:4"},"scope":988,"src":"2038:391:4","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":929,"nodeType":"Block","src":"3422:532:4","statements":[{"assignments":[894],"declarations":[{"constant":false,"id":894,"mutability":"mutable","name":"messageValue","nameLocation":"3562:12:4","nodeType":"VariableDeclaration","scope":929,"src":"3554:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":893,"name":"uint256","nodeType":"ElementaryTypeName","src":"3554:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":899,"initialValue":{"arguments":[{"expression":{"id":896,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":885,"src":"3588:4:4","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee memory"}},"id":897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3593:9:4","memberName":"nativeFee","nodeType":"MemberAccess","referencedDeclaration":2166,"src":"3588:14:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":895,"name":"_payNative","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":951,"src":"3577:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3577:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3554:49:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":900,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":885,"src":"3617:4:4","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee memory"}},"id":901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3622:10:4","memberName":"lzTokenFee","nodeType":"MemberAccess","referencedDeclaration":2168,"src":"3617:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3635:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3617:19:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":909,"nodeType":"IfStatement","src":"3613:53:4","trueBody":{"expression":{"arguments":[{"expression":{"id":905,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":885,"src":"3650:4:4","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee memory"}},"id":906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3655:10:4","memberName":"lzTokenFee","nodeType":"MemberAccess","referencedDeclaration":2168,"src":"3650:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":904,"name":"_payLzToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":987,"src":"3638:11:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3638:28:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":908,"nodeType":"ExpressionStatement","src":"3638:28:4"}},{"expression":{"arguments":[{"arguments":[{"id":915,"name":"_dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":878,"src":"3825:7:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"id":917,"name":"_dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":878,"src":"3851:7:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":916,"name":"_getPeerOrRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"3834:16:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$_t_bytes32_$","typeString":"function (uint32) view returns (bytes32)"}},"id":918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:25:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":919,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":880,"src":"3861:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":920,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":882,"src":"3871:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":921,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":885,"src":"3881:4:4","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee memory"}},"id":922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3886:10:4","memberName":"lzTokenFee","nodeType":"MemberAccess","referencedDeclaration":2168,"src":"3881:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3899:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3881:19:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":914,"name":"MessagingParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2156,"src":"3809:15:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_MessagingParams_$2156_storage_ptr_$","typeString":"type(struct MessagingParams storage pointer)"}},"id":925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3809:92:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$2156_memory_ptr","typeString":"struct MessagingParams memory"}},{"id":926,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":887,"src":"3919:14:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MessagingParams_$2156_memory_ptr","typeString":"struct MessagingParams memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MessagingParams_$2156_memory_ptr","typeString":"struct MessagingParams memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":910,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"3755:8:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}},"id":911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3764:4:4","memberName":"send","nodeType":"MemberAccess","referencedDeclaration":2261,"src":"3755:13:4","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_MessagingParams_$2156_memory_ptr_$_t_address_$returns$_t_struct$_MessagingReceipt_$2164_memory_ptr_$","typeString":"function (struct MessagingParams memory,address) payable external returns (struct MessagingReceipt memory)"}},"id":913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":912,"name":"messageValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"3777:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3755:36:4","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_MessagingParams_$2156_memory_ptr_$_t_address_$returns$_t_struct$_MessagingReceipt_$2164_memory_ptr_$value","typeString":"function (struct MessagingParams memory,address) payable external returns (struct MessagingReceipt memory)"}},"id":927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3755:192:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_memory_ptr","typeString":"struct MessagingReceipt memory"}},"functionReturnParameters":892,"id":928,"nodeType":"Return","src":"3677:270:4"}]},"documentation":{"id":876,"nodeType":"StructuredDocumentation","src":"2435:748:4","text":" @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\n @param _dstEid The destination endpoint ID.\n @param _message The message payload.\n @param _options Additional options for the message.\n @param _fee The calculated LayerZero fee for the message.\n - nativeFee: The native fee.\n - lzTokenFee: The lzToken fee.\n @param _refundAddress The address to receive any excess fee values sent to the endpoint.\n @return receipt The receipt for the sent message.\n - guid: The unique identifier for the sent message.\n - nonce: The nonce of the sent message.\n - fee: The LayerZero fee incurred for the message."},"id":930,"implemented":true,"kind":"function","modifiers":[],"name":"_lzSend","nameLocation":"3197:7:4","nodeType":"FunctionDefinition","parameters":{"id":888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":878,"mutability":"mutable","name":"_dstEid","nameLocation":"3221:7:4","nodeType":"VariableDeclaration","scope":930,"src":"3214:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":877,"name":"uint32","nodeType":"ElementaryTypeName","src":"3214:6:4","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":880,"mutability":"mutable","name":"_message","nameLocation":"3251:8:4","nodeType":"VariableDeclaration","scope":930,"src":"3238:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":879,"name":"bytes","nodeType":"ElementaryTypeName","src":"3238:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":882,"mutability":"mutable","name":"_options","nameLocation":"3282:8:4","nodeType":"VariableDeclaration","scope":930,"src":"3269:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":881,"name":"bytes","nodeType":"ElementaryTypeName","src":"3269:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":885,"mutability":"mutable","name":"_fee","nameLocation":"3320:4:4","nodeType":"VariableDeclaration","scope":930,"src":"3300:24:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":884,"nodeType":"UserDefinedTypeName","pathNode":{"id":883,"name":"MessagingFee","nameLocations":["3300:12:4"],"nodeType":"IdentifierPath","referencedDeclaration":2169,"src":"3300:12:4"},"referencedDeclaration":2169,"src":"3300:12:4","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"},{"constant":false,"id":887,"mutability":"mutable","name":"_refundAddress","nameLocation":"3342:14:4","nodeType":"VariableDeclaration","scope":930,"src":"3334:22:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":886,"name":"address","nodeType":"ElementaryTypeName","src":"3334:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3204:158:4"},"returnParameters":{"id":892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":891,"mutability":"mutable","name":"receipt","nameLocation":"3413:7:4","nodeType":"VariableDeclaration","scope":930,"src":"3389:31:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_memory_ptr","typeString":"struct MessagingReceipt"},"typeName":{"id":890,"nodeType":"UserDefinedTypeName","pathNode":{"id":889,"name":"MessagingReceipt","nameLocations":["3389:16:4"],"nodeType":"IdentifierPath","referencedDeclaration":2164,"src":"3389:16:4"},"referencedDeclaration":2164,"src":"3389:16:4","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_storage_ptr","typeString":"struct MessagingReceipt"}},"visibility":"internal"}],"src":"3388:33:4"},"scope":988,"src":"3188:766:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":950,"nodeType":"Block","src":"4735:106:4","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":938,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4749:3:4","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4753:5:4","memberName":"value","nodeType":"MemberAccess","src":"4749:9:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":940,"name":"_nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":933,"src":"4762:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4749:23:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":947,"nodeType":"IfStatement","src":"4745:62:4","trueBody":{"errorCall":{"arguments":[{"expression":{"id":943,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4797:3:4","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4801:5:4","memberName":"value","nodeType":"MemberAccess","src":"4797:9:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":942,"name":"NotEnoughNative","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"4781:15:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4781:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":946,"nodeType":"RevertStatement","src":"4774:33:4"}},{"expression":{"id":948,"name":"_nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":933,"src":"4824:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":937,"id":949,"nodeType":"Return","src":"4817:17:4"}]},"documentation":{"id":931,"nodeType":"StructuredDocumentation","src":"3960:685:4","text":" @dev Internal function to pay the native fee associated with the message.\n @param _nativeFee The native fee to be paid.\n @return nativeFee The amount of native currency paid.\n @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\n this will need to be overridden because msg.value would contain multiple lzFees.\n @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\n @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\n @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time."},"id":951,"implemented":true,"kind":"function","modifiers":[],"name":"_payNative","nameLocation":"4659:10:4","nodeType":"FunctionDefinition","parameters":{"id":934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":933,"mutability":"mutable","name":"_nativeFee","nameLocation":"4678:10:4","nodeType":"VariableDeclaration","scope":951,"src":"4670:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":932,"name":"uint256","nodeType":"ElementaryTypeName","src":"4670:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4669:20:4"},"returnParameters":{"id":937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":936,"mutability":"mutable","name":"nativeFee","nameLocation":"4724:9:4","nodeType":"VariableDeclaration","scope":951,"src":"4716:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":935,"name":"uint256","nodeType":"ElementaryTypeName","src":"4716:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4715:19:4"},"scope":988,"src":"4650:191:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":986,"nodeType":"Block","src":"5277:351:4","statements":[{"assignments":[958],"declarations":[{"constant":false,"id":958,"mutability":"mutable","name":"lzToken","nameLocation":"5379:7:4","nodeType":"VariableDeclaration","scope":986,"src":"5371:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":957,"name":"address","nodeType":"ElementaryTypeName","src":"5371:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":962,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":959,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"5389:8:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}},"id":960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5398:7:4","memberName":"lzToken","nodeType":"MemberAccess","referencedDeclaration":2327,"src":"5389:16:4","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:18:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5371:36:4"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":963,"name":"lzToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":958,"src":"5421:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5440:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5432:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":964,"name":"address","nodeType":"ElementaryTypeName","src":"5432:7:4","typeDescriptions":{}}},"id":967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5432:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5421:21:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":972,"nodeType":"IfStatement","src":"5417:54:4","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":969,"name":"LzTokenUnavailable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"5451:18:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:20:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":971,"nodeType":"RevertStatement","src":"5444:27:4"}},{"expression":{"arguments":[{"expression":{"id":977,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5578:3:4","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5582:6:4","memberName":"sender","nodeType":"MemberAccess","src":"5578:10:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":981,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"5598:8:4","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}],"id":980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5590:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":979,"name":"address","nodeType":"ElementaryTypeName","src":"5590:7:4","typeDescriptions":{}}},"id":982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5590:17:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":983,"name":"_lzTokenFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":954,"src":"5609:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":974,"name":"lzToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":958,"src":"5552:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":973,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5317,"src":"5545:6:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$5317_$","typeString":"type(contract IERC20)"}},"id":975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5545:15:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"id":976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5561:16:4","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":5430,"src":"5545:32:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5317_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$5317_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5545:76:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":985,"nodeType":"ExpressionStatement","src":"5545:76:4"}]},"documentation":{"id":952,"nodeType":"StructuredDocumentation","src":"4847:366:4","text":" @dev Internal function to pay the LZ token fee associated with the message.\n @param _lzTokenFee The LZ token fee to be paid.\n @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\n @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend()."},"id":987,"implemented":true,"kind":"function","modifiers":[],"name":"_payLzToken","nameLocation":"5227:11:4","nodeType":"FunctionDefinition","parameters":{"id":955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":954,"mutability":"mutable","name":"_lzTokenFee","nameLocation":"5247:11:4","nodeType":"VariableDeclaration","scope":987,"src":"5239:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":953,"name":"uint256","nodeType":"ElementaryTypeName","src":"5239:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5238:21:4"},"returnParameters":{"id":956,"nodeType":"ParameterList","parameters":[],"src":"5277:0:4"},"scope":988,"src":"5218:410:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":989,"src":"486:5144:4","usedErrors":[824,826,999,1003,1005,1007,4968,4973],"usedEvents":[1013,4979]}],"src":"33:5598:4"},"id":4},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol","exportedSymbols":{"ILayerZeroEndpointV2":[2338],"IOAppCore":[1051]},"id":1052,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":990,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:5"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","id":992,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1052,"sourceUnit":2339,"src":"59:119:5","symbolAliases":[{"foreign":{"id":991,"name":"ILayerZeroEndpointV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2338,"src":"68:20:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IOAppCore","contractDependencies":[],"contractKind":"interface","documentation":{"id":993,"nodeType":"StructuredDocumentation","src":"180:27:5","text":" @title IOAppCore"},"fullyImplemented":false,"id":1051,"linearizedBaseContracts":[1051],"name":"IOAppCore","nameLocation":"218:9:5","nodeType":"ContractDefinition","nodes":[{"errorSelector":"c26bebcc","id":999,"name":"OnlyPeer","nameLocation":"269:8:5","nodeType":"ErrorDefinition","parameters":{"id":998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":995,"mutability":"mutable","name":"eid","nameLocation":"285:3:5","nodeType":"VariableDeclaration","scope":999,"src":"278:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":994,"name":"uint32","nodeType":"ElementaryTypeName","src":"278:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":997,"mutability":"mutable","name":"sender","nameLocation":"298:6:5","nodeType":"VariableDeclaration","scope":999,"src":"290:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"290:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"277:28:5"},"src":"263:43:5"},{"errorSelector":"f6ff4fb7","id":1003,"name":"NoPeer","nameLocation":"317:6:5","nodeType":"ErrorDefinition","parameters":{"id":1002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1001,"mutability":"mutable","name":"eid","nameLocation":"331:3:5","nodeType":"VariableDeclaration","scope":1003,"src":"324:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1000,"name":"uint32","nodeType":"ElementaryTypeName","src":"324:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"323:12:5"},"src":"311:25:5"},{"errorSelector":"0fbdec0a","id":1005,"name":"InvalidEndpointCall","nameLocation":"347:19:5","nodeType":"ErrorDefinition","parameters":{"id":1004,"nodeType":"ParameterList","parameters":[],"src":"366:2:5"},"src":"341:28:5"},{"errorSelector":"b5863604","id":1007,"name":"InvalidDelegate","nameLocation":"380:15:5","nodeType":"ErrorDefinition","parameters":{"id":1006,"nodeType":"ParameterList","parameters":[],"src":"395:2:5"},"src":"374:24:5"},{"anonymous":false,"eventSelector":"238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b","id":1013,"name":"PeerSet","nameLocation":"486:7:5","nodeType":"EventDefinition","parameters":{"id":1012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1009,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"501:3:5","nodeType":"VariableDeclaration","scope":1013,"src":"494:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1008,"name":"uint32","nodeType":"ElementaryTypeName","src":"494:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1011,"indexed":false,"mutability":"mutable","name":"peer","nameLocation":"514:4:5","nodeType":"VariableDeclaration","scope":1013,"src":"506:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1010,"name":"bytes32","nodeType":"ElementaryTypeName","src":"506:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"493:26:5"},"src":"480:40:5"},{"documentation":{"id":1014,"nodeType":"StructuredDocumentation","src":"526:216:5","text":" @notice Retrieves the OApp version information.\n @return senderVersion The version of the OAppSender.sol contract.\n @return receiverVersion The version of the OAppReceiver.sol contract."},"functionSelector":"17442b70","id":1021,"implemented":false,"kind":"function","modifiers":[],"name":"oAppVersion","nameLocation":"756:11:5","nodeType":"FunctionDefinition","parameters":{"id":1015,"nodeType":"ParameterList","parameters":[],"src":"767:2:5"},"returnParameters":{"id":1020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1017,"mutability":"mutable","name":"senderVersion","nameLocation":"800:13:5","nodeType":"VariableDeclaration","scope":1021,"src":"793:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1016,"name":"uint64","nodeType":"ElementaryTypeName","src":"793:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1019,"mutability":"mutable","name":"receiverVersion","nameLocation":"822:15:5","nodeType":"VariableDeclaration","scope":1021,"src":"815:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1018,"name":"uint64","nodeType":"ElementaryTypeName","src":"815:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"792:46:5"},"scope":1051,"src":"747:92:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1022,"nodeType":"StructuredDocumentation","src":"845:150:5","text":" @notice Retrieves the LayerZero endpoint associated with the OApp.\n @return iEndpoint The LayerZero endpoint as an interface."},"functionSelector":"5e280f11","id":1028,"implemented":false,"kind":"function","modifiers":[],"name":"endpoint","nameLocation":"1009:8:5","nodeType":"FunctionDefinition","parameters":{"id":1023,"nodeType":"ParameterList","parameters":[],"src":"1017:2:5"},"returnParameters":{"id":1027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1026,"mutability":"mutable","name":"iEndpoint","nameLocation":"1064:9:5","nodeType":"VariableDeclaration","scope":1028,"src":"1043:30:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"},"typeName":{"id":1025,"nodeType":"UserDefinedTypeName","pathNode":{"id":1024,"name":"ILayerZeroEndpointV2","nameLocations":["1043:20:5"],"nodeType":"IdentifierPath","referencedDeclaration":2338,"src":"1043:20:5"},"referencedDeclaration":2338,"src":"1043:20:5","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}},"visibility":"internal"}],"src":"1042:32:5"},"scope":1051,"src":"1000:75:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1029,"nodeType":"StructuredDocumentation","src":"1081:227:5","text":" @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\n @param _eid The endpoint ID.\n @return peer The peer address (OApp instance) associated with the corresponding endpoint."},"functionSelector":"bb0b6a53","id":1036,"implemented":false,"kind":"function","modifiers":[],"name":"peers","nameLocation":"1322:5:5","nodeType":"FunctionDefinition","parameters":{"id":1032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1031,"mutability":"mutable","name":"_eid","nameLocation":"1335:4:5","nodeType":"VariableDeclaration","scope":1036,"src":"1328:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1030,"name":"uint32","nodeType":"ElementaryTypeName","src":"1328:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1327:13:5"},"returnParameters":{"id":1035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1034,"mutability":"mutable","name":"peer","nameLocation":"1372:4:5","nodeType":"VariableDeclaration","scope":1036,"src":"1364:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1364:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1363:14:5"},"scope":1051,"src":"1313:65:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1037,"nodeType":"StructuredDocumentation","src":"1384:224:5","text":" @notice Sets the peer address (OApp instance) for a corresponding endpoint.\n @param _eid The endpoint ID.\n @param _peer The address of the peer to be associated with the corresponding endpoint."},"functionSelector":"3400288b","id":1044,"implemented":false,"kind":"function","modifiers":[],"name":"setPeer","nameLocation":"1622:7:5","nodeType":"FunctionDefinition","parameters":{"id":1042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1039,"mutability":"mutable","name":"_eid","nameLocation":"1637:4:5","nodeType":"VariableDeclaration","scope":1044,"src":"1630:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1038,"name":"uint32","nodeType":"ElementaryTypeName","src":"1630:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1041,"mutability":"mutable","name":"_peer","nameLocation":"1651:5:5","nodeType":"VariableDeclaration","scope":1044,"src":"1643:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1040,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1643:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1629:28:5"},"returnParameters":{"id":1043,"nodeType":"ParameterList","parameters":[],"src":"1666:0:5"},"scope":1051,"src":"1613:54:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1045,"nodeType":"StructuredDocumentation","src":"1673:134:5","text":" @notice Sets the delegate address for the OApp Core.\n @param _delegate The address of the delegate to be set."},"functionSelector":"ca5eb5e1","id":1050,"implemented":false,"kind":"function","modifiers":[],"name":"setDelegate","nameLocation":"1821:11:5","nodeType":"FunctionDefinition","parameters":{"id":1048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1047,"mutability":"mutable","name":"_delegate","nameLocation":"1841:9:5","nodeType":"VariableDeclaration","scope":1050,"src":"1833:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1046,"name":"address","nodeType":"ElementaryTypeName","src":"1833:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1832:19:5"},"returnParameters":{"id":1049,"nodeType":"ParameterList","parameters":[],"src":"1860:0:5"},"scope":1051,"src":"1812:49:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1052,"src":"208:1655:5","usedErrors":[999,1003,1005,1007],"usedEvents":[1013]}],"src":"33:1831:5"},"id":5},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol","exportedSymbols":{"IOAppMsgInspector":[1071]},"id":1072,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1053,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:6"},{"abstract":false,"baseContracts":[],"canonicalName":"IOAppMsgInspector","contractDependencies":[],"contractKind":"interface","documentation":{"id":1054,"nodeType":"StructuredDocumentation","src":"59:139:6","text":" @title IOAppMsgInspector\n @dev Interface for the OApp Message Inspector, allowing examination of message and options contents."},"fullyImplemented":false,"id":1071,"linearizedBaseContracts":[1071],"name":"IOAppMsgInspector","nameLocation":"209:17:6","nodeType":"ContractDefinition","nodes":[{"errorSelector":"7b43b439","id":1060,"name":"InspectionFailed","nameLocation":"290:16:6","nodeType":"ErrorDefinition","parameters":{"id":1059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1056,"mutability":"mutable","name":"message","nameLocation":"313:7:6","nodeType":"VariableDeclaration","scope":1060,"src":"307:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1055,"name":"bytes","nodeType":"ElementaryTypeName","src":"307:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1058,"mutability":"mutable","name":"options","nameLocation":"328:7:6","nodeType":"VariableDeclaration","scope":1060,"src":"322:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1057,"name":"bytes","nodeType":"ElementaryTypeName","src":"322:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"306:30:6"},"src":"284:53:6"},{"documentation":{"id":1061,"nodeType":"StructuredDocumentation","src":"343:456:6","text":" @notice Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\n @param _message The message payload to be inspected.\n @param _options Additional options or parameters for inspection.\n @return valid A boolean indicating whether the inspection passed (true) or failed (false).\n @dev Optionally done as a revert, OR use the boolean provided to handle the failure."},"functionSelector":"043a78eb","id":1070,"implemented":false,"kind":"function","modifiers":[],"name":"inspect","nameLocation":"813:7:6","nodeType":"FunctionDefinition","parameters":{"id":1066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1063,"mutability":"mutable","name":"_message","nameLocation":"836:8:6","nodeType":"VariableDeclaration","scope":1070,"src":"821:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1062,"name":"bytes","nodeType":"ElementaryTypeName","src":"821:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1065,"mutability":"mutable","name":"_options","nameLocation":"861:8:6","nodeType":"VariableDeclaration","scope":1070,"src":"846:23:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1064,"name":"bytes","nodeType":"ElementaryTypeName","src":"846:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"820:50:6"},"returnParameters":{"id":1069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1068,"mutability":"mutable","name":"valid","nameLocation":"899:5:6","nodeType":"VariableDeclaration","scope":1070,"src":"894:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1067,"name":"bool","nodeType":"ElementaryTypeName","src":"894:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"893:12:6"},"scope":1071,"src":"804:102:6","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1072,"src":"199:709:6","usedErrors":[1060],"usedEvents":[]}],"src":"33:876:6"},"id":6},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol","exportedSymbols":{"EnforcedOptionParam":[1081],"IOAppOptionsType3":[1113]},"id":1114,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1073,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:7"},{"canonicalName":"EnforcedOptionParam","documentation":{"id":1074,"nodeType":"StructuredDocumentation","src":"59:63:7","text":" @dev Struct representing enforced option parameters."},"id":1081,"members":[{"constant":false,"id":1076,"mutability":"mutable","name":"eid","nameLocation":"163:3:7","nodeType":"VariableDeclaration","scope":1081,"src":"156:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1075,"name":"uint32","nodeType":"ElementaryTypeName","src":"156:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1078,"mutability":"mutable","name":"msgType","nameLocation":"194:7:7","nodeType":"VariableDeclaration","scope":1081,"src":"187:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1077,"name":"uint16","nodeType":"ElementaryTypeName","src":"187:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1080,"mutability":"mutable","name":"options","nameLocation":"229:7:7","nodeType":"VariableDeclaration","scope":1081,"src":"223:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1079,"name":"bytes","nodeType":"ElementaryTypeName","src":"223:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"EnforcedOptionParam","nameLocation":"130:19:7","nodeType":"StructDefinition","scope":1114,"src":"123:138:7","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"IOAppOptionsType3","contractDependencies":[],"contractKind":"interface","documentation":{"id":1082,"nodeType":"StructuredDocumentation","src":"263:143:7","text":" @title IOAppOptionsType3\n @dev Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options."},"fullyImplemented":false,"id":1113,"linearizedBaseContracts":[1113],"name":"IOAppOptionsType3","nameLocation":"417:17:7","nodeType":"ContractDefinition","nodes":[{"errorSelector":"9a6d49cd","id":1086,"name":"InvalidOptions","nameLocation":"495:14:7","nodeType":"ErrorDefinition","parameters":{"id":1085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1084,"mutability":"mutable","name":"options","nameLocation":"516:7:7","nodeType":"VariableDeclaration","scope":1086,"src":"510:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1083,"name":"bytes","nodeType":"ElementaryTypeName","src":"510:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"509:15:7"},"src":"489:36:7"},{"anonymous":false,"eventSelector":"be4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674","id":1092,"name":"EnforcedOptionSet","nameLocation":"588:17:7","nodeType":"EventDefinition","parameters":{"id":1091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1090,"indexed":false,"mutability":"mutable","name":"_enforcedOptions","nameLocation":"628:16:7","nodeType":"VariableDeclaration","scope":1092,"src":"606:38:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr","typeString":"struct EnforcedOptionParam[]"},"typeName":{"baseType":{"id":1088,"nodeType":"UserDefinedTypeName","pathNode":{"id":1087,"name":"EnforcedOptionParam","nameLocations":["606:19:7"],"nodeType":"IdentifierPath","referencedDeclaration":1081,"src":"606:19:7"},"referencedDeclaration":1081,"src":"606:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_EnforcedOptionParam_$1081_storage_ptr","typeString":"struct EnforcedOptionParam"}},"id":1089,"nodeType":"ArrayTypeName","src":"606:21:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_storage_$dyn_storage_ptr","typeString":"struct EnforcedOptionParam[]"}},"visibility":"internal"}],"src":"605:40:7"},"src":"582:64:7"},{"documentation":{"id":1093,"nodeType":"StructuredDocumentation","src":"652:204:7","text":" @notice Sets enforced options for specific endpoint and message type combinations.\n @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options."},"functionSelector":"b98bd070","id":1100,"implemented":false,"kind":"function","modifiers":[],"name":"setEnforcedOptions","nameLocation":"870:18:7","nodeType":"FunctionDefinition","parameters":{"id":1098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1097,"mutability":"mutable","name":"_enforcedOptions","nameLocation":"920:16:7","nodeType":"VariableDeclaration","scope":1100,"src":"889:47:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr","typeString":"struct EnforcedOptionParam[]"},"typeName":{"baseType":{"id":1095,"nodeType":"UserDefinedTypeName","pathNode":{"id":1094,"name":"EnforcedOptionParam","nameLocations":["889:19:7"],"nodeType":"IdentifierPath","referencedDeclaration":1081,"src":"889:19:7"},"referencedDeclaration":1081,"src":"889:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_EnforcedOptionParam_$1081_storage_ptr","typeString":"struct EnforcedOptionParam"}},"id":1096,"nodeType":"ArrayTypeName","src":"889:21:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_storage_$dyn_storage_ptr","typeString":"struct EnforcedOptionParam[]"}},"visibility":"internal"}],"src":"888:49:7"},"returnParameters":{"id":1099,"nodeType":"ParameterList","parameters":[],"src":"946:0:7"},"scope":1113,"src":"861:86:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1101,"nodeType":"StructuredDocumentation","src":"953:322:7","text":" @notice Combines options for a given endpoint and message type.\n @param _eid The endpoint ID.\n @param _msgType The OApp message type.\n @param _extraOptions Additional options passed by the caller.\n @return options The combination of caller specified options AND enforced options."},"functionSelector":"bc70b354","id":1112,"implemented":false,"kind":"function","modifiers":[],"name":"combineOptions","nameLocation":"1289:14:7","nodeType":"FunctionDefinition","parameters":{"id":1108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1103,"mutability":"mutable","name":"_eid","nameLocation":"1320:4:7","nodeType":"VariableDeclaration","scope":1112,"src":"1313:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1102,"name":"uint32","nodeType":"ElementaryTypeName","src":"1313:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1105,"mutability":"mutable","name":"_msgType","nameLocation":"1341:8:7","nodeType":"VariableDeclaration","scope":1112,"src":"1334:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1104,"name":"uint16","nodeType":"ElementaryTypeName","src":"1334:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1107,"mutability":"mutable","name":"_extraOptions","nameLocation":"1374:13:7","nodeType":"VariableDeclaration","scope":1112,"src":"1359:28:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1106,"name":"bytes","nodeType":"ElementaryTypeName","src":"1359:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1303:90:7"},"returnParameters":{"id":1111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1110,"mutability":"mutable","name":"options","nameLocation":"1430:7:7","nodeType":"VariableDeclaration","scope":1112,"src":"1417:20:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1109,"name":"bytes","nodeType":"ElementaryTypeName","src":"1417:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1416:22:7"},"scope":1113,"src":"1280:159:7","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1114,"src":"407:1034:7","usedErrors":[1086],"usedEvents":[1092]}],"src":"33:1409:7"},"id":7},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol","exportedSymbols":{"ILayerZeroReceiver":[2374],"IOAppReceiver":[1134],"Origin":[2176]},"id":1135,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1115,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:8"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol","id":1118,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1135,"sourceUnit":2375,"src":"58:123:8","symbolAliases":[{"foreign":{"id":1116,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2374,"src":"67:18:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1117,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"87:6:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1119,"name":"ILayerZeroReceiver","nameLocations":["210:18:8"],"nodeType":"IdentifierPath","referencedDeclaration":2374,"src":"210:18:8"},"id":1120,"nodeType":"InheritanceSpecifier","src":"210:18:8"}],"canonicalName":"IOAppReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1134,"linearizedBaseContracts":[1134,2374],"name":"IOAppReceiver","nameLocation":"193:13:8","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1121,"nodeType":"StructuredDocumentation","src":"235:670:8","text":" @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\n @param _origin The origin information containing the source endpoint and sender address.\n - srcEid: The source chain endpoint ID.\n - sender: The sender address on the src chain.\n - nonce: The nonce of the message.\n @param _message The lzReceive payload.\n @param _sender The sender address.\n @return isSender Is a valid sender.\n @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\n @dev The default sender IS the OAppReceiver implementer."},"functionSelector":"82413eac","id":1133,"implemented":false,"kind":"function","modifiers":[],"name":"isComposeMsgSender","nameLocation":"919:18:8","nodeType":"FunctionDefinition","parameters":{"id":1129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1124,"mutability":"mutable","name":"_origin","nameLocation":"963:7:8","nodeType":"VariableDeclaration","scope":1133,"src":"947:23:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":1123,"nodeType":"UserDefinedTypeName","pathNode":{"id":1122,"name":"Origin","nameLocations":["947:6:8"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"947:6:8"},"referencedDeclaration":2176,"src":"947:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":1126,"mutability":"mutable","name":"_message","nameLocation":"995:8:8","nodeType":"VariableDeclaration","scope":1133,"src":"980:23:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1125,"name":"bytes","nodeType":"ElementaryTypeName","src":"980:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1128,"mutability":"mutable","name":"_sender","nameLocation":"1021:7:8","nodeType":"VariableDeclaration","scope":1133,"src":"1013:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1127,"name":"address","nodeType":"ElementaryTypeName","src":"1013:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"937:97:8"},"returnParameters":{"id":1132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1131,"mutability":"mutable","name":"isSender","nameLocation":"1063:8:8","nodeType":"VariableDeclaration","scope":1133,"src":"1058:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1130,"name":"bool","nodeType":"ElementaryTypeName","src":"1058:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1057:15:8"},"scope":1134,"src":"910:163:8","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1135,"src":"183:892:8","usedErrors":[],"usedEvents":[]}],"src":"32:1044:8"},"id":8},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol","exportedSymbols":{"EnforcedOptionParam":[1081],"IOAppOptionsType3":[1113],"OAppOptionsType3":[1298],"Ownable":[5102]},"id":1299,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1136,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:9"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":1138,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1299,"sourceUnit":5103,"src":"59:69:9","symbolAliases":[{"foreign":{"id":1137,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"68:7:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol","file":"../interfaces/IOAppOptionsType3.sol","id":1141,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1299,"sourceUnit":1114,"src":"129:93:9","symbolAliases":[{"foreign":{"id":1139,"name":"IOAppOptionsType3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1113,"src":"138:17:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1140,"name":"EnforcedOptionParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1081,"src":"157:19:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1143,"name":"IOAppOptionsType3","nameLocations":["389:17:9"],"nodeType":"IdentifierPath","referencedDeclaration":1113,"src":"389:17:9"},"id":1144,"nodeType":"InheritanceSpecifier","src":"389:17:9"},{"baseName":{"id":1145,"name":"Ownable","nameLocations":["408:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":5102,"src":"408:7:9"},"id":1146,"nodeType":"InheritanceSpecifier","src":"408:7:9"}],"canonicalName":"OAppOptionsType3","contractDependencies":[],"contractKind":"contract","documentation":{"id":1142,"nodeType":"StructuredDocumentation","src":"224:126:9","text":" @title OAppOptionsType3\n @dev Abstract contract implementing the IOAppOptionsType3 interface with type 3 options."},"fullyImplemented":true,"id":1298,"linearizedBaseContracts":[1298,5102,7098,1113],"name":"OAppOptionsType3","nameLocation":"369:16:9","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1149,"mutability":"constant","name":"OPTION_TYPE_3","nameLocation":"447:13:9","nodeType":"VariableDeclaration","scope":1298,"src":"422:42:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1147,"name":"uint16","nodeType":"ElementaryTypeName","src":"422:6:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"33","id":1148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"463:1:9","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"internal"},{"constant":false,"functionSelector":"5535d461","id":1155,"mutability":"mutable","name":"enforcedOptions","nameLocation":"616:15:9","nodeType":"VariableDeclaration","scope":1298,"src":"538:93:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_mapping$_t_uint16_$_t_bytes_storage_$_$","typeString":"mapping(uint32 => mapping(uint16 => bytes))"},"typeName":{"id":1154,"keyName":"eid","keyNameLocation":"553:3:9","keyType":{"id":1150,"name":"uint32","nodeType":"ElementaryTypeName","src":"546:6:9","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Mapping","src":"538:70:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_mapping$_t_uint16_$_t_bytes_storage_$_$","typeString":"mapping(uint32 => mapping(uint16 => bytes))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1153,"keyName":"msgType","keyNameLocation":"575:7:9","keyType":{"id":1151,"name":"uint16","nodeType":"ElementaryTypeName","src":"568:6:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"560:47:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"valueName":"enforcedOption","valueNameLocation":"592:14:9","valueType":{"id":1152,"name":"bytes","nodeType":"ElementaryTypeName","src":"586:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}}},"visibility":"public"},{"baseFunctions":[1100],"body":{"id":1169,"nodeType":"Block","src":"1493:54:9","statements":[{"expression":{"arguments":[{"id":1166,"name":"_enforcedOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1160,"src":"1523:16:9","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr","typeString":"struct EnforcedOptionParam calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr","typeString":"struct EnforcedOptionParam calldata[] calldata"}],"id":1165,"name":"_setEnforcedOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1220,"src":"1503:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct EnforcedOptionParam memory[] memory)"}},"id":1167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1503:37:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1168,"nodeType":"ExpressionStatement","src":"1503:37:9"}]},"documentation":{"id":1156,"nodeType":"StructuredDocumentation","src":"638:748:9","text":" @dev Sets the enforced options for specific endpoint and message type combinations.\n @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\n @dev Only the owner/admin of the OApp can call this function.\n @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\n @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\n eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\n if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose()."},"functionSelector":"b98bd070","id":1170,"implemented":true,"kind":"function","modifiers":[{"id":1163,"kind":"modifierInvocation","modifierName":{"id":1162,"name":"onlyOwner","nameLocations":["1483:9:9"],"nodeType":"IdentifierPath","referencedDeclaration":5013,"src":"1483:9:9"},"nodeType":"ModifierInvocation","src":"1483:9:9"}],"name":"setEnforcedOptions","nameLocation":"1400:18:9","nodeType":"FunctionDefinition","parameters":{"id":1161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1160,"mutability":"mutable","name":"_enforcedOptions","nameLocation":"1450:16:9","nodeType":"VariableDeclaration","scope":1170,"src":"1419:47:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr","typeString":"struct EnforcedOptionParam[]"},"typeName":{"baseType":{"id":1158,"nodeType":"UserDefinedTypeName","pathNode":{"id":1157,"name":"EnforcedOptionParam","nameLocations":["1419:19:9"],"nodeType":"IdentifierPath","referencedDeclaration":1081,"src":"1419:19:9"},"referencedDeclaration":1081,"src":"1419:19:9","typeDescriptions":{"typeIdentifier":"t_struct$_EnforcedOptionParam_$1081_storage_ptr","typeString":"struct EnforcedOptionParam"}},"id":1159,"nodeType":"ArrayTypeName","src":"1419:21:9","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_storage_$dyn_storage_ptr","typeString":"struct EnforcedOptionParam[]"}},"visibility":"internal"}],"src":"1418:49:9"},"returnParameters":{"id":1164,"nodeType":"ParameterList","parameters":[],"src":"1493:0:9"},"scope":1298,"src":"1391:156:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1219,"nodeType":"Block","src":"2330:421:9","statements":[{"body":{"id":1213,"nodeType":"Block","src":"2394:300:9","statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":1190,"name":"_enforcedOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1175,"src":"2542:16:9","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr","typeString":"struct EnforcedOptionParam memory[] memory"}},"id":1192,"indexExpression":{"id":1191,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"2559:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2542:19:9","typeDescriptions":{"typeIdentifier":"t_struct$_EnforcedOptionParam_$1081_memory_ptr","typeString":"struct EnforcedOptionParam memory"}},"id":1193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2562:7:9","memberName":"options","nodeType":"MemberAccess","referencedDeclaration":1080,"src":"2542:27:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1189,"name":"_assertOptionsType3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"2522:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":1194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2522:48:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1195,"nodeType":"ExpressionStatement","src":"2522:48:9"},{"expression":{"id":1211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1196,"name":"enforcedOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1155,"src":"2584:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_mapping$_t_uint16_$_t_bytes_storage_$_$","typeString":"mapping(uint32 => mapping(uint16 => bytes storage ref))"}},"id":1205,"indexExpression":{"expression":{"baseExpression":{"id":1197,"name":"_enforcedOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1175,"src":"2600:16:9","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr","typeString":"struct EnforcedOptionParam memory[] memory"}},"id":1199,"indexExpression":{"id":1198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"2617:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2600:19:9","typeDescriptions":{"typeIdentifier":"t_struct$_EnforcedOptionParam_$1081_memory_ptr","typeString":"struct EnforcedOptionParam memory"}},"id":1200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2620:3:9","memberName":"eid","nodeType":"MemberAccess","referencedDeclaration":1076,"src":"2600:23:9","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2584:40:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":1206,"indexExpression":{"expression":{"baseExpression":{"id":1201,"name":"_enforcedOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1175,"src":"2625:16:9","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr","typeString":"struct EnforcedOptionParam memory[] memory"}},"id":1203,"indexExpression":{"id":1202,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"2642:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2625:19:9","typeDescriptions":{"typeIdentifier":"t_struct$_EnforcedOptionParam_$1081_memory_ptr","typeString":"struct EnforcedOptionParam memory"}},"id":1204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2645:7:9","memberName":"msgType","nodeType":"MemberAccess","referencedDeclaration":1078,"src":"2625:27:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2584:69:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":1207,"name":"_enforcedOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1175,"src":"2656:16:9","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr","typeString":"struct EnforcedOptionParam memory[] memory"}},"id":1209,"indexExpression":{"id":1208,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"2673:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2656:19:9","typeDescriptions":{"typeIdentifier":"t_struct$_EnforcedOptionParam_$1081_memory_ptr","typeString":"struct EnforcedOptionParam memory"}},"id":1210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2676:7:9","memberName":"options","nodeType":"MemberAccess","referencedDeclaration":1080,"src":"2656:27:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2584:99:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1212,"nodeType":"ExpressionStatement","src":"2584:99:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1182,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"2360:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1183,"name":"_enforcedOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1175,"src":"2364:16:9","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr","typeString":"struct EnforcedOptionParam memory[] memory"}},"id":1184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2381:6:9","memberName":"length","nodeType":"MemberAccess","src":"2364:23:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2360:27:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1214,"initializationExpression":{"assignments":[1179],"declarations":[{"constant":false,"id":1179,"mutability":"mutable","name":"i","nameLocation":"2353:1:9","nodeType":"VariableDeclaration","scope":1214,"src":"2345:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1178,"name":"uint256","nodeType":"ElementaryTypeName","src":"2345:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1181,"initialValue":{"hexValue":"30","id":1180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2357:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2345:13:9"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":1187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2389:3:9","subExpression":{"id":1186,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1179,"src":"2389:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1188,"nodeType":"ExpressionStatement","src":"2389:3:9"},"nodeType":"ForStatement","src":"2340:354:9"},{"eventCall":{"arguments":[{"id":1216,"name":"_enforcedOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1175,"src":"2727:16:9","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr","typeString":"struct EnforcedOptionParam memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr","typeString":"struct EnforcedOptionParam memory[] memory"}],"id":1215,"name":"EnforcedOptionSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1092,"src":"2709:17:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct EnforcedOptionParam memory[] memory)"}},"id":1217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2709:35:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1218,"nodeType":"EmitStatement","src":"2704:40:9"}]},"documentation":{"id":1171,"nodeType":"StructuredDocumentation","src":"1553:679:9","text":" @dev Sets the enforced options for specific endpoint and message type combinations.\n @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\n @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\n @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\n eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\n if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose()."},"id":1220,"implemented":true,"kind":"function","modifiers":[],"name":"_setEnforcedOptions","nameLocation":"2246:19:9","nodeType":"FunctionDefinition","parameters":{"id":1176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1175,"mutability":"mutable","name":"_enforcedOptions","nameLocation":"2295:16:9","nodeType":"VariableDeclaration","scope":1220,"src":"2266:45:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr","typeString":"struct EnforcedOptionParam[]"},"typeName":{"baseType":{"id":1173,"nodeType":"UserDefinedTypeName","pathNode":{"id":1172,"name":"EnforcedOptionParam","nameLocations":["2266:19:9"],"nodeType":"IdentifierPath","referencedDeclaration":1081,"src":"2266:19:9"},"referencedDeclaration":1081,"src":"2266:19:9","typeDescriptions":{"typeIdentifier":"t_struct$_EnforcedOptionParam_$1081_storage_ptr","typeString":"struct EnforcedOptionParam"}},"id":1174,"nodeType":"ArrayTypeName","src":"2266:21:9","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EnforcedOptionParam_$1081_storage_$dyn_storage_ptr","typeString":"struct EnforcedOptionParam[]"}},"visibility":"internal"}],"src":"2265:47:9"},"returnParameters":{"id":1177,"nodeType":"ParameterList","parameters":[],"src":"2330:0:9"},"scope":1298,"src":"2237:514:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1112],"body":{"id":1277,"nodeType":"Block","src":"3667:824:9","statements":[{"assignments":[1233],"declarations":[{"constant":false,"id":1233,"mutability":"mutable","name":"enforced","nameLocation":"3690:8:9","nodeType":"VariableDeclaration","scope":1277,"src":"3677:21:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1232,"name":"bytes","nodeType":"ElementaryTypeName","src":"3677:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1239,"initialValue":{"baseExpression":{"baseExpression":{"id":1234,"name":"enforcedOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1155,"src":"3701:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_mapping$_t_uint16_$_t_bytes_storage_$_$","typeString":"mapping(uint32 => mapping(uint16 => bytes storage ref))"}},"id":1236,"indexExpression":{"id":1235,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1223,"src":"3717:4:9","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3701:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":1238,"indexExpression":{"id":1237,"name":"_msgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"3723:8:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3701:31:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3677:55:9"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1240,"name":"enforced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"3861:8:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3870:6:9","memberName":"length","nodeType":"MemberAccess","src":"3861:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3880:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3861:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1246,"nodeType":"IfStatement","src":"3857:46:9","trueBody":{"expression":{"id":1244,"name":"_extraOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"3890:13:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1231,"id":1245,"nodeType":"Return","src":"3883:20:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1247,"name":"_extraOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"3964:13:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3978:6:9","memberName":"length","nodeType":"MemberAccess","src":"3964:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3988:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3964:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1253,"nodeType":"IfStatement","src":"3960:46:9","trueBody":{"expression":{"id":1251,"name":"enforced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"3998:8:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1231,"id":1252,"nodeType":"Return","src":"3991:15:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1254,"name":"_extraOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"4129:13:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4143:6:9","memberName":"length","nodeType":"MemberAccess","src":"4129:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"32","id":1256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4153:1:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4129:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1272,"nodeType":"IfStatement","src":"4125:267:9","trueBody":{"id":1271,"nodeType":"Block","src":"4156:236:9","statements":[{"expression":{"arguments":[{"id":1259,"name":"_extraOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"4190:13:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1258,"name":"_assertOptionsType3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"4170:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":1260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4170:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1261,"nodeType":"ExpressionStatement","src":"4170:34:9"},{"expression":{"arguments":[{"id":1265,"name":"enforced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"4353:8:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"baseExpression":{"id":1266,"name":"_extraOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"4363:13:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"4363:17:9","startExpression":{"hexValue":"32","id":1267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4377:1:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"expression":{"id":1263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4340:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1262,"name":"bytes","nodeType":"ElementaryTypeName","src":"4340:5:9","typeDescriptions":{}}},"id":1264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4346:6:9","memberName":"concat","nodeType":"MemberAccess","src":"4340:12:9","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4340:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1231,"id":1270,"nodeType":"Return","src":"4333:48:9"}]}},{"errorCall":{"arguments":[{"id":1274,"name":"_extraOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"4470:13:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1273,"name":"InvalidOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1086,"src":"4455:14:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":1275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4455:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1276,"nodeType":"RevertStatement","src":"4448:36:9"}]},"documentation":{"id":1221,"nodeType":"StructuredDocumentation","src":"2757:748:9","text":" @notice Combines options for a given endpoint and message type.\n @param _eid The endpoint ID.\n @param _msgType The OAPP message type.\n @param _extraOptions Additional options passed by the caller.\n @return options The combination of caller specified options AND enforced options.\n @dev If there is an enforced lzReceive option:\n - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether}\n - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.\n @dev This presence of duplicated options is handled off-chain in the verifier/executor."},"functionSelector":"bc70b354","id":1278,"implemented":true,"kind":"function","modifiers":[],"name":"combineOptions","nameLocation":"3519:14:9","nodeType":"FunctionDefinition","parameters":{"id":1228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1223,"mutability":"mutable","name":"_eid","nameLocation":"3550:4:9","nodeType":"VariableDeclaration","scope":1278,"src":"3543:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1222,"name":"uint32","nodeType":"ElementaryTypeName","src":"3543:6:9","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1225,"mutability":"mutable","name":"_msgType","nameLocation":"3571:8:9","nodeType":"VariableDeclaration","scope":1278,"src":"3564:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1224,"name":"uint16","nodeType":"ElementaryTypeName","src":"3564:6:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1227,"mutability":"mutable","name":"_extraOptions","nameLocation":"3604:13:9","nodeType":"VariableDeclaration","scope":1278,"src":"3589:28:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1226,"name":"bytes","nodeType":"ElementaryTypeName","src":"3589:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3533:90:9"},"returnParameters":{"id":1231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1278,"src":"3653:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1229,"name":"bytes","nodeType":"ElementaryTypeName","src":"3653:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3652:14:9"},"scope":1298,"src":"3510:981:9","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1296,"nodeType":"Block","src":"4705:190:9","statements":[{"assignments":[1285],"declarations":[{"constant":false,"id":1285,"mutability":"mutable","name":"optionsType","nameLocation":"4722:11:9","nodeType":"VariableDeclaration","scope":1296,"src":"4715:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1284,"name":"uint16","nodeType":"ElementaryTypeName","src":"4715:6:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":1286,"nodeType":"VariableDeclarationStatement","src":"4715:18:9"},{"AST":{"nativeSrc":"4752:62:9","nodeType":"YulBlock","src":"4752:62:9","statements":[{"nativeSrc":"4766:38:9","nodeType":"YulAssignment","src":"4766:38:9","value":{"arguments":[{"arguments":[{"name":"_options","nativeSrc":"4791:8:9","nodeType":"YulIdentifier","src":"4791:8:9"},{"kind":"number","nativeSrc":"4801:1:9","nodeType":"YulLiteral","src":"4801:1:9","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"4787:3:9","nodeType":"YulIdentifier","src":"4787:3:9"},"nativeSrc":"4787:16:9","nodeType":"YulFunctionCall","src":"4787:16:9"}],"functionName":{"name":"mload","nativeSrc":"4781:5:9","nodeType":"YulIdentifier","src":"4781:5:9"},"nativeSrc":"4781:23:9","nodeType":"YulFunctionCall","src":"4781:23:9"},"variableNames":[{"name":"optionsType","nativeSrc":"4766:11:9","nodeType":"YulIdentifier","src":"4766:11:9"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1281,"isOffset":false,"isSlot":false,"src":"4791:8:9","valueSize":1},{"declaration":1285,"isOffset":false,"isSlot":false,"src":"4766:11:9","valueSize":1}],"id":1287,"nodeType":"InlineAssembly","src":"4743:71:9"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":1290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1288,"name":"optionsType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1285,"src":"4827:11:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1289,"name":"OPTION_TYPE_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"4842:13:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4827:28:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1295,"nodeType":"IfStatement","src":"4823:65:9","trueBody":{"errorCall":{"arguments":[{"id":1292,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1281,"src":"4879:8:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1291,"name":"InvalidOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1086,"src":"4864:14:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":1293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4864:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1294,"nodeType":"RevertStatement","src":"4857:31:9"}}]},"documentation":{"id":1279,"nodeType":"StructuredDocumentation","src":"4497:129:9","text":" @dev Internal function to assert that options are of type 3.\n @param _options The options to be checked."},"id":1297,"implemented":true,"kind":"function","modifiers":[],"name":"_assertOptionsType3","nameLocation":"4640:19:9","nodeType":"FunctionDefinition","parameters":{"id":1282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1281,"mutability":"mutable","name":"_options","nameLocation":"4673:8:9","nodeType":"VariableDeclaration","scope":1297,"src":"4660:21:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1280,"name":"bytes","nodeType":"ElementaryTypeName","src":"4660:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4659:23:9"},"returnParameters":{"id":1283,"nodeType":"ParameterList","parameters":[],"src":"4705:0:9"},"scope":1298,"src":"4631:264:9","stateMutability":"pure","virtual":true,"visibility":"internal"}],"scope":1299,"src":"351:4546:9","usedErrors":[1086,4968,4973],"usedEvents":[1092,4979]}],"src":"33:4865:9"},"id":9},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol","exportedSymbols":{"BytesLib":[10716],"DVNOptions":[474],"ExecutorOptions":[3702],"OptionsBuilder":[1673],"SafeCast":[10198]},"id":1674,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1300,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:10"},{"absolutePath":"solidity-bytes-utils/contracts/BytesLib.sol","file":"solidity-bytes-utils/contracts/BytesLib.sol","id":1302,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1674,"sourceUnit":10717,"src":"59:71:10","symbolAliases":[{"foreign":{"id":1301,"name":"BytesLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10716,"src":"68:8:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","id":1304,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1674,"sourceUnit":10199,"src":"131:75:10","symbolAliases":[{"foreign":{"id":1303,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10198,"src":"140:8:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol","id":1306,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1674,"sourceUnit":3703,"src":"208:114:10","symbolAliases":[{"foreign":{"id":1305,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"217:15:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol","file":"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol","id":1308,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1674,"sourceUnit":475,"src":"323:99:10","symbolAliases":[{"foreign":{"id":1307,"name":"DVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"332:10:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"OptionsBuilder","contractDependencies":[],"contractKind":"library","documentation":{"id":1309,"nodeType":"StructuredDocumentation","src":"424:99:10","text":" @title OptionsBuilder\n @dev Library for building and encoding various message options."},"fullyImplemented":true,"id":1673,"linearizedBaseContracts":[1673],"name":"OptionsBuilder","nameLocation":"532:14:10","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1312,"libraryName":{"id":1310,"name":"SafeCast","nameLocations":["559:8:10"],"nodeType":"IdentifierPath","referencedDeclaration":10198,"src":"559:8:10"},"nodeType":"UsingForDirective","src":"553:27:10","typeName":{"id":1311,"name":"uint256","nodeType":"ElementaryTypeName","src":"572:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":false,"id":1315,"libraryName":{"id":1313,"name":"BytesLib","nameLocations":["591:8:10"],"nodeType":"IdentifierPath","referencedDeclaration":10716,"src":"591:8:10"},"nodeType":"UsingForDirective","src":"585:25:10","typeName":{"id":1314,"name":"bytes","nodeType":"ElementaryTypeName","src":"604:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":true,"id":1318,"mutability":"constant","name":"TYPE_1","nameLocation":"676:6:10","nodeType":"VariableDeclaration","scope":1673,"src":"651:35:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1316,"name":"uint16","nodeType":"ElementaryTypeName","src":"651:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":1317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"685:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":1321,"mutability":"constant","name":"TYPE_2","nameLocation":"742:6:10","nodeType":"VariableDeclaration","scope":1673,"src":"717:35:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1319,"name":"uint16","nodeType":"ElementaryTypeName","src":"717:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"32","id":1320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"751:1:10","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":1324,"mutability":"constant","name":"TYPE_3","nameLocation":"808:6:10","nodeType":"VariableDeclaration","scope":1673,"src":"783:35:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1322,"name":"uint16","nodeType":"ElementaryTypeName","src":"783:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"33","id":1323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"817:1:10","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"internal"},{"errorSelector":"3256c04c","id":1330,"name":"InvalidSize","nameLocation":"859:11:10","nodeType":"ErrorDefinition","parameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1326,"mutability":"mutable","name":"max","nameLocation":"879:3:10","nodeType":"VariableDeclaration","scope":1330,"src":"871:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1325,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1328,"mutability":"mutable","name":"actual","nameLocation":"892:6:10","nodeType":"VariableDeclaration","scope":1330,"src":"884:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1327,"name":"uint256","nodeType":"ElementaryTypeName","src":"884:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"870:29:10"},"src":"853:47:10"},{"errorSelector":"3a51740d","id":1334,"name":"InvalidOptionType","nameLocation":"911:17:10","nodeType":"ErrorDefinition","parameters":{"id":1333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1332,"mutability":"mutable","name":"optionType","nameLocation":"936:10:10","nodeType":"VariableDeclaration","scope":1334,"src":"929:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1331,"name":"uint16","nodeType":"ElementaryTypeName","src":"929:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"928:19:10"},"src":"905:43:10"},{"body":{"id":1353,"nodeType":"Block","src":"1054:110:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":1343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":1340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1086:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":1338,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1336,"src":"1068:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1077:8:10","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":10508,"src":"1068:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint16)"}},"id":1341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1068:20:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1342,"name":"TYPE_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"1092:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1068:30:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1351,"nodeType":"IfStatement","src":"1064:82:10","trueBody":{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1143:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":1345,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1336,"src":"1125:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1134:8:10","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":10508,"src":"1125:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint16)"}},"id":1348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1125:20:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":1344,"name":"InvalidOptionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"1107:17:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint16_$returns$__$","typeString":"function (uint16) pure"}},"id":1349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1107:39:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1350,"nodeType":"RevertStatement","src":"1100:46:10"}},{"id":1352,"nodeType":"PlaceholderStatement","src":"1156:1:10"}]},"id":1354,"name":"onlyType3","nameLocation":"1021:9:10","nodeType":"ModifierDefinition","parameters":{"id":1337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1336,"mutability":"mutable","name":"_options","nameLocation":"1044:8:10","nodeType":"VariableDeclaration","scope":1354,"src":"1031:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1335,"name":"bytes","nodeType":"ElementaryTypeName","src":"1031:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1030:23:10"},"src":"1012:152:10","virtual":false,"visibility":"internal"},{"body":{"id":1365,"nodeType":"Block","src":"1362:48:10","statements":[{"expression":{"arguments":[{"id":1362,"name":"TYPE_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"1396:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":1360,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1379:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1383:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"1379:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:24:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1359,"id":1364,"nodeType":"Return","src":"1372:31:10"}]},"documentation":{"id":1355,"nodeType":"StructuredDocumentation","src":"1170:128:10","text":" @dev Creates a new options container with type 3.\n @return options The newly created options container."},"id":1366,"implemented":true,"kind":"function","modifiers":[],"name":"newOptions","nameLocation":"1312:10:10","nodeType":"FunctionDefinition","parameters":{"id":1356,"nodeType":"ParameterList","parameters":[],"src":"1322:2:10"},"returnParameters":{"id":1359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1366,"src":"1348:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1357,"name":"bytes","nodeType":"ElementaryTypeName","src":"1348:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1347:14:10"},"scope":1673,"src":"1303:107:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1396,"nodeType":"Block","src":"2277:181:10","statements":[{"assignments":[1382],"declarations":[{"constant":false,"id":1382,"mutability":"mutable","name":"option","nameLocation":"2300:6:10","nodeType":"VariableDeclaration","scope":1396,"src":"2287:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1381,"name":"bytes","nodeType":"ElementaryTypeName","src":"2287:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1388,"initialValue":{"arguments":[{"id":1385,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1371,"src":"2347:4:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":1386,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1373,"src":"2353:6:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":1383,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"2309:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$3702_$","typeString":"type(library ExecutorOptions)"}},"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2325:21:10","memberName":"encodeLzReceiveOption","nodeType":"MemberAccess","referencedDeclaration":3657,"src":"2309:37:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint128_$_t_uint128_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint128,uint128) pure returns (bytes memory)"}},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2309:51:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2287:73:10"},{"expression":{"arguments":[{"id":1390,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"2395:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1391,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"2405:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$3702_$","typeString":"type(library ExecutorOptions)"}},"id":1392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2421:21:10","memberName":"OPTION_TYPE_LZRECEIVE","nodeType":"MemberAccess","referencedDeclaration":3428,"src":"2405:37:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1393,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1382,"src":"2444:6:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1389,"name":"addExecutorOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"2377:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint8,bytes memory) pure returns (bytes memory)"}},"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2377:74:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1380,"id":1395,"nodeType":"Return","src":"2370:81:10"}]},"documentation":{"id":1367,"nodeType":"StructuredDocumentation","src":"1416:680:10","text":" @dev Adds an executor LZ receive option to the existing options.\n @param _options The existing options container.\n @param _gas The gasLimit used on the lzReceive() function in the OApp.\n @param _value The msg.value passed to the lzReceive() function in the OApp.\n @return options The updated options container.\n @dev When multiples of this option are added, they are summed by the executor\n eg. if (_gas: 200k, and _value: 1 ether) AND (_gas: 100k, _value: 0.5 ether) are sent in an option to the LayerZeroEndpoint,\n that becomes (300k, 1.5 ether) when the message is executed on the remote lzReceive() function."},"id":1397,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1376,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"2244:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":1377,"kind":"modifierInvocation","modifierName":{"id":1375,"name":"onlyType3","nameLocations":["2234:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":1354,"src":"2234:9:10"},"nodeType":"ModifierInvocation","src":"2234:19:10"}],"name":"addExecutorLzReceiveOption","nameLocation":"2110:26:10","nodeType":"FunctionDefinition","parameters":{"id":1374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1369,"mutability":"mutable","name":"_options","nameLocation":"2159:8:10","nodeType":"VariableDeclaration","scope":1397,"src":"2146:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1368,"name":"bytes","nodeType":"ElementaryTypeName","src":"2146:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1371,"mutability":"mutable","name":"_gas","nameLocation":"2185:4:10","nodeType":"VariableDeclaration","scope":1397,"src":"2177:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1370,"name":"uint128","nodeType":"ElementaryTypeName","src":"2177:7:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1373,"mutability":"mutable","name":"_value","nameLocation":"2207:6:10","nodeType":"VariableDeclaration","scope":1397,"src":"2199:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1372,"name":"uint128","nodeType":"ElementaryTypeName","src":"2199:7:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2136:83:10"},"returnParameters":{"id":1380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1397,"src":"2263:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1378,"name":"bytes","nodeType":"ElementaryTypeName","src":"2263:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2262:14:10"},"scope":1673,"src":"2101:357:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1427,"nodeType":"Block","src":"3123:190:10","statements":[{"assignments":[1413],"declarations":[{"constant":false,"id":1413,"mutability":"mutable","name":"option","nameLocation":"3146:6:10","nodeType":"VariableDeclaration","scope":1427,"src":"3133:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1412,"name":"bytes","nodeType":"ElementaryTypeName","src":"3133:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1419,"initialValue":{"arguments":[{"id":1416,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"3194:7:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":1417,"name":"_receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1404,"src":"3203:9:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1414,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"3155:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$3702_$","typeString":"type(library ExecutorOptions)"}},"id":1415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3171:22:10","memberName":"encodeNativeDropOption","nodeType":"MemberAccess","referencedDeclaration":3673,"src":"3155:38:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint128_$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint128,bytes32) pure returns (bytes memory)"}},"id":1418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3155:58:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3133:80:10"},{"expression":{"arguments":[{"id":1421,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"3248:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1422,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"3258:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$3702_$","typeString":"type(library ExecutorOptions)"}},"id":1423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3274:23:10","memberName":"OPTION_TYPE_NATIVE_DROP","nodeType":"MemberAccess","referencedDeclaration":3431,"src":"3258:39:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1424,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1413,"src":"3299:6:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1420,"name":"addExecutorOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"3230:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint8,bytes memory) pure returns (bytes memory)"}},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3230:76:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1411,"id":1426,"nodeType":"Return","src":"3223:83:10"}]},"documentation":{"id":1398,"nodeType":"StructuredDocumentation","src":"2464:471:10","text":" @dev Adds an executor native drop option to the existing options.\n @param _options The existing options container.\n @param _amount The amount for the native value that is airdropped to the 'receiver'.\n @param _receiver The receiver address for the native drop option.\n @return options The updated options container.\n @dev When multiples of this option are added, they are summed by the executor on the remote chain."},"id":1428,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1407,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"3090:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":1408,"kind":"modifierInvocation","modifierName":{"id":1406,"name":"onlyType3","nameLocations":["3080:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":1354,"src":"3080:9:10"},"nodeType":"ModifierInvocation","src":"3080:19:10"}],"name":"addExecutorNativeDropOption","nameLocation":"2949:27:10","nodeType":"FunctionDefinition","parameters":{"id":1405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1400,"mutability":"mutable","name":"_options","nameLocation":"2999:8:10","nodeType":"VariableDeclaration","scope":1428,"src":"2986:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1399,"name":"bytes","nodeType":"ElementaryTypeName","src":"2986:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1402,"mutability":"mutable","name":"_amount","nameLocation":"3025:7:10","nodeType":"VariableDeclaration","scope":1428,"src":"3017:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1401,"name":"uint128","nodeType":"ElementaryTypeName","src":"3017:7:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1404,"mutability":"mutable","name":"_receiver","nameLocation":"3050:9:10","nodeType":"VariableDeclaration","scope":1428,"src":"3042:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1403,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3042:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2976:89:10"},"returnParameters":{"id":1411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1428,"src":"3109:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1409,"name":"bytes","nodeType":"ElementaryTypeName","src":"3109:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3108:14:10"},"scope":1673,"src":"2940:373:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1461,"nodeType":"Block","src":"4261:189:10","statements":[{"assignments":[1446],"declarations":[{"constant":false,"id":1446,"mutability":"mutable","name":"option","nameLocation":"4284:6:10","nodeType":"VariableDeclaration","scope":1461,"src":"4271:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1445,"name":"bytes","nodeType":"ElementaryTypeName","src":"4271:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1453,"initialValue":{"arguments":[{"id":1449,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1433,"src":"4331:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1450,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1435,"src":"4339:4:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":1451,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1437,"src":"4345:6:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":1447,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"4293:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$3702_$","typeString":"type(library ExecutorOptions)"}},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4309:21:10","memberName":"encodeLzComposeOption","nodeType":"MemberAccess","referencedDeclaration":3701,"src":"4293:37:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint16_$_t_uint128_$_t_uint128_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint16,uint128,uint128) pure returns (bytes memory)"}},"id":1452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4293:59:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4271:81:10"},{"expression":{"arguments":[{"id":1455,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1431,"src":"4387:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1456,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"4397:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$3702_$","typeString":"type(library ExecutorOptions)"}},"id":1457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4413:21:10","memberName":"OPTION_TYPE_LZCOMPOSE","nodeType":"MemberAccess","referencedDeclaration":3434,"src":"4397:37:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1458,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1446,"src":"4436:6:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1454,"name":"addExecutorOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"4369:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint8,bytes memory) pure returns (bytes memory)"}},"id":1459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4369:74:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1444,"id":1460,"nodeType":"Return","src":"4362:81:10"}]},"documentation":{"id":1429,"nodeType":"StructuredDocumentation","src":"3319:738:10","text":" @dev Adds an executor LZ compose option to the existing options.\n @param _options The existing options container.\n @param _index The index for the lzCompose() function call.\n @param _gas The gasLimit for the lzCompose() function call.\n @param _value The msg.value for the lzCompose() function call.\n @return options The updated options container.\n @dev When multiples of this option are added, they are summed PER index by the executor on the remote chain.\n @dev If the OApp sends N lzCompose calls on the remote, you must provide N incremented indexes starting with 0.\n ie. When your remote OApp composes (N = 3) messages, you must set this option for index 0,1,2"},"id":1462,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1440,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1431,"src":"4228:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":1441,"kind":"modifierInvocation","modifierName":{"id":1439,"name":"onlyType3","nameLocations":["4218:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":1354,"src":"4218:9:10"},"nodeType":"ModifierInvocation","src":"4218:19:10"}],"name":"addExecutorLzComposeOption","nameLocation":"4071:26:10","nodeType":"FunctionDefinition","parameters":{"id":1438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1431,"mutability":"mutable","name":"_options","nameLocation":"4120:8:10","nodeType":"VariableDeclaration","scope":1462,"src":"4107:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1430,"name":"bytes","nodeType":"ElementaryTypeName","src":"4107:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1433,"mutability":"mutable","name":"_index","nameLocation":"4145:6:10","nodeType":"VariableDeclaration","scope":1462,"src":"4138:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1432,"name":"uint16","nodeType":"ElementaryTypeName","src":"4138:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1435,"mutability":"mutable","name":"_gas","nameLocation":"4169:4:10","nodeType":"VariableDeclaration","scope":1462,"src":"4161:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1434,"name":"uint128","nodeType":"ElementaryTypeName","src":"4161:7:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1437,"mutability":"mutable","name":"_value","nameLocation":"4191:6:10","nodeType":"VariableDeclaration","scope":1462,"src":"4183:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1436,"name":"uint128","nodeType":"ElementaryTypeName","src":"4183:7:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"4097:106:10"},"returnParameters":{"id":1444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1443,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1462,"src":"4247:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1442,"name":"bytes","nodeType":"ElementaryTypeName","src":"4247:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4246:14:10"},"scope":1673,"src":"4062:388:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1483,"nodeType":"Block","src":"4797:109:10","statements":[{"expression":{"arguments":[{"id":1474,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"4832:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1475,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"4842:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$3702_$","typeString":"type(library ExecutorOptions)"}},"id":1476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4858:29:10","memberName":"OPTION_TYPE_ORDERED_EXECUTION","nodeType":"MemberAccess","referencedDeclaration":3437,"src":"4842:45:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"","id":1479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4895:2:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4889:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1477,"name":"bytes","nodeType":"ElementaryTypeName","src":"4889:5:10","typeDescriptions":{}}},"id":1480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4889:9:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1473,"name":"addExecutorOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"4814:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint8,bytes memory) pure returns (bytes memory)"}},"id":1481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4814:85:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1472,"id":1482,"nodeType":"Return","src":"4807:92:10"}]},"documentation":{"id":1463,"nodeType":"StructuredDocumentation","src":"4456:199:10","text":" @dev Adds an executor ordered execution option to the existing options.\n @param _options The existing options container.\n @return options The updated options container."},"id":1484,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1468,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"4764:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":1469,"kind":"modifierInvocation","modifierName":{"id":1467,"name":"onlyType3","nameLocations":["4754:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":1354,"src":"4754:9:10"},"nodeType":"ModifierInvocation","src":"4754:19:10"}],"name":"addExecutorOrderedExecutionOption","nameLocation":"4669:33:10","nodeType":"FunctionDefinition","parameters":{"id":1466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1465,"mutability":"mutable","name":"_options","nameLocation":"4725:8:10","nodeType":"VariableDeclaration","scope":1484,"src":"4712:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1464,"name":"bytes","nodeType":"ElementaryTypeName","src":"4712:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4702:37:10"},"returnParameters":{"id":1472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1484,"src":"4783:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1470,"name":"bytes","nodeType":"ElementaryTypeName","src":"4783:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4782:14:10"},"scope":1673,"src":"4660:246:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1508,"nodeType":"Block","src":"5311:99:10","statements":[{"expression":{"arguments":[{"id":1498,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1487,"src":"5341:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1499,"name":"_dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1489,"src":"5351:7:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":1500,"name":"DVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"5360:10:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DVNOptions_$474_$","typeString":"type(library DVNOptions)"}},"id":1501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5371:20:10","memberName":"OPTION_TYPE_PRECRIME","nodeType":"MemberAccess","referencedDeclaration":19,"src":"5360:31:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"","id":1504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5399:2:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5393:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1502,"name":"bytes","nodeType":"ElementaryTypeName","src":"5393:5:10","typeDescriptions":{}}},"id":1505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5393:9:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1497,"name":"addDVNOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"5328:12:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$_t_uint8_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint8,uint8,bytes memory) pure returns (bytes memory)"}},"id":1506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:75:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1496,"id":1507,"nodeType":"Return","src":"5321:82:10"}]},"documentation":{"id":1485,"nodeType":"StructuredDocumentation","src":"4912:247:10","text":" @dev Adds a DVN pre-crime option to the existing options.\n @param _options The existing options container.\n @param _dvnIdx The DVN index for the pre-crime option.\n @return options The updated options container."},"id":1509,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1492,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1487,"src":"5278:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":1493,"kind":"modifierInvocation","modifierName":{"id":1491,"name":"onlyType3","nameLocations":["5268:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":1354,"src":"5268:9:10"},"nodeType":"ModifierInvocation","src":"5268:19:10"}],"name":"addDVNPreCrimeOption","nameLocation":"5173:20:10","nodeType":"FunctionDefinition","parameters":{"id":1490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1487,"mutability":"mutable","name":"_options","nameLocation":"5216:8:10","nodeType":"VariableDeclaration","scope":1509,"src":"5203:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1486,"name":"bytes","nodeType":"ElementaryTypeName","src":"5203:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1489,"mutability":"mutable","name":"_dvnIdx","nameLocation":"5240:7:10","nodeType":"VariableDeclaration","scope":1509,"src":"5234:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1488,"name":"uint8","nodeType":"ElementaryTypeName","src":"5234:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5193:60:10"},"returnParameters":{"id":1496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1495,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1509,"src":"5297:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1494,"name":"bytes","nodeType":"ElementaryTypeName","src":"5297:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5296:14:10"},"scope":1673,"src":"5164:246:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1539,"nodeType":"Block","src":"5903:257:10","statements":[{"expression":{"arguments":[{"id":1526,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1512,"src":"5966:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1527,"name":"ExecutorOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"5992:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ExecutorOptions_$3702_$","typeString":"type(library ExecutorOptions)"}},"id":1528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6008:9:10","memberName":"WORKER_ID","nodeType":"MemberAccess","referencedDeclaration":3425,"src":"5992:25:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":1534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":1529,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"6035:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6043:6:10","memberName":"length","nodeType":"MemberAccess","src":"6035:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6050:8:10","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":9310,"src":"6035:23:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint16)"}},"id":1532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6035:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6063:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6035:29:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1535,"name":"_optionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1514,"src":"6103:11:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1536,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"6132:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1524,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5932:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5936:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"5932:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5932:221:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1523,"id":1538,"nodeType":"Return","src":"5913:240:10"}]},"documentation":{"id":1510,"nodeType":"StructuredDocumentation","src":"5416:304:10","text":" @dev Adds an executor option to the existing options.\n @param _options The existing options container.\n @param _optionType The type of the executor option.\n @param _option The encoded data for the executor option.\n @return options The updated options container."},"id":1540,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1519,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1512,"src":"5870:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":1520,"kind":"modifierInvocation","modifierName":{"id":1518,"name":"onlyType3","nameLocations":["5860:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":1354,"src":"5860:9:10"},"nodeType":"ModifierInvocation","src":"5860:19:10"}],"name":"addExecutorOption","nameLocation":"5734:17:10","nodeType":"FunctionDefinition","parameters":{"id":1517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1512,"mutability":"mutable","name":"_options","nameLocation":"5774:8:10","nodeType":"VariableDeclaration","scope":1540,"src":"5761:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1511,"name":"bytes","nodeType":"ElementaryTypeName","src":"5761:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1514,"mutability":"mutable","name":"_optionType","nameLocation":"5798:11:10","nodeType":"VariableDeclaration","scope":1540,"src":"5792:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1513,"name":"uint8","nodeType":"ElementaryTypeName","src":"5792:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1516,"mutability":"mutable","name":"_option","nameLocation":"5832:7:10","nodeType":"VariableDeclaration","scope":1540,"src":"5819:20:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1515,"name":"bytes","nodeType":"ElementaryTypeName","src":"5819:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5751:94:10"},"returnParameters":{"id":1523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1540,"src":"5889:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1521,"name":"bytes","nodeType":"ElementaryTypeName","src":"5889:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5888:14:10"},"scope":1673,"src":"5725:435:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1573,"nodeType":"Block","src":"6711:288:10","statements":[{"expression":{"arguments":[{"id":1559,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1543,"src":"6774:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1560,"name":"DVNOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"6800:10:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DVNOptions_$474_$","typeString":"type(library DVNOptions)"}},"id":1561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6811:9:10","memberName":"WORKER_ID","nodeType":"MemberAccess","referencedDeclaration":16,"src":"6800:20:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":1567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":1562,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1549,"src":"6838:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6846:6:10","memberName":"length","nodeType":"MemberAccess","src":"6838:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6853:8:10","memberName":"toUint16","nodeType":"MemberAccess","referencedDeclaration":9310,"src":"6838:23:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint16_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint16)"}},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6838:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":1566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6866:1:10","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6838:29:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1568,"name":"_dvnIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1545,"src":"6917:7:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1569,"name":"_optionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1547,"src":"6942:11:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1570,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1549,"src":"6971:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1557,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6740:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6744:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"6740:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6740:252:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1556,"id":1572,"nodeType":"Return","src":"6721:271:10"}]},"documentation":{"id":1541,"nodeType":"StructuredDocumentation","src":"6166:344:10","text":" @dev Adds a DVN option to the existing options.\n @param _options The existing options container.\n @param _dvnIdx The DVN index for the DVN option.\n @param _optionType The type of the DVN option.\n @param _option The encoded data for the DVN option.\n @return options The updated options container."},"id":1574,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1552,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1543,"src":"6678:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":1553,"kind":"modifierInvocation","modifierName":{"id":1551,"name":"onlyType3","nameLocations":["6668:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":1354,"src":"6668:9:10"},"nodeType":"ModifierInvocation","src":"6668:19:10"}],"name":"addDVNOption","nameLocation":"6524:12:10","nodeType":"FunctionDefinition","parameters":{"id":1550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1543,"mutability":"mutable","name":"_options","nameLocation":"6559:8:10","nodeType":"VariableDeclaration","scope":1574,"src":"6546:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1542,"name":"bytes","nodeType":"ElementaryTypeName","src":"6546:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1545,"mutability":"mutable","name":"_dvnIdx","nameLocation":"6583:7:10","nodeType":"VariableDeclaration","scope":1574,"src":"6577:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1544,"name":"uint8","nodeType":"ElementaryTypeName","src":"6577:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1547,"mutability":"mutable","name":"_optionType","nameLocation":"6606:11:10","nodeType":"VariableDeclaration","scope":1574,"src":"6600:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1546,"name":"uint8","nodeType":"ElementaryTypeName","src":"6600:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1549,"mutability":"mutable","name":"_option","nameLocation":"6640:7:10","nodeType":"VariableDeclaration","scope":1574,"src":"6627:20:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1548,"name":"bytes","nodeType":"ElementaryTypeName","src":"6627:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6536:117:10"},"returnParameters":{"id":1556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1555,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1574,"src":"6697:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1554,"name":"bytes","nodeType":"ElementaryTypeName","src":"6697:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6696:14:10"},"scope":1673,"src":"6515:484:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1605,"nodeType":"Block","src":"7288:164:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1582,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"7302:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":1585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7323:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":1584,"name":"uint128","nodeType":"ElementaryTypeName","src":"7323:7:10","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":1583,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7318:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7318:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":1587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7332:3:10","memberName":"max","nodeType":"MemberAccess","src":"7318:17:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"7302:33:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1598,"nodeType":"IfStatement","src":"7298:91:10","trueBody":{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":1592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7361:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":1591,"name":"uint128","nodeType":"ElementaryTypeName","src":"7361:7:10","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":1590,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7356:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7356:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":1594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7370:3:10","memberName":"max","nodeType":"MemberAccess","src":"7356:17:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":1595,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"7375:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1589,"name":"InvalidSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1330,"src":"7344:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7344:45:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1597,"nodeType":"RevertStatement","src":"7337:52:10"}},{"expression":{"arguments":[{"id":1601,"name":"TYPE_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"7423:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1602,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"7431:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1599,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7406:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7410:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"7406:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7406:39:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1581,"id":1604,"nodeType":"Return","src":"7399:46:10"}]},"documentation":{"id":1575,"nodeType":"StructuredDocumentation","src":"7005:184:10","text":" @dev Encodes legacy options of type 1.\n @param _executionGas The gasLimit value passed to lzReceive().\n @return legacyOptions The encoded legacy options."},"id":1606,"implemented":true,"kind":"function","modifiers":[],"name":"encodeLegacyOptionsType1","nameLocation":"7203:24:10","nodeType":"FunctionDefinition","parameters":{"id":1578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1577,"mutability":"mutable","name":"_executionGas","nameLocation":"7236:13:10","nodeType":"VariableDeclaration","scope":1606,"src":"7228:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1576,"name":"uint256","nodeType":"ElementaryTypeName","src":"7228:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7227:23:10"},"returnParameters":{"id":1581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1606,"src":"7274:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1579,"name":"bytes","nodeType":"ElementaryTypeName","src":"7274:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7273:14:10"},"scope":1673,"src":"7194:258:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1671,"nodeType":"Block","src":"8035:368:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1618,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1609,"src":"8049:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":1621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8070:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":1620,"name":"uint128","nodeType":"ElementaryTypeName","src":"8070:7:10","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":1619,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8065:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8065:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":1623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8079:3:10","memberName":"max","nodeType":"MemberAccess","src":"8065:17:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"8049:33:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1634,"nodeType":"IfStatement","src":"8045:91:10","trueBody":{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":1628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8108:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":1627,"name":"uint128","nodeType":"ElementaryTypeName","src":"8108:7:10","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":1626,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8103:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8103:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":1630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8117:3:10","memberName":"max","nodeType":"MemberAccess","src":"8103:17:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":1631,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1609,"src":"8122:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1625,"name":"InvalidSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1330,"src":"8091:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8091:45:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1633,"nodeType":"RevertStatement","src":"8084:52:10"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1635,"name":"_nativeForDst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1611,"src":"8150:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":1638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8171:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":1637,"name":"uint128","nodeType":"ElementaryTypeName","src":"8171:7:10","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":1636,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8166:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8166:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":1640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8180:3:10","memberName":"max","nodeType":"MemberAccess","src":"8166:17:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"8150:33:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1651,"nodeType":"IfStatement","src":"8146:91:10","trueBody":{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":1645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8209:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":1644,"name":"uint128","nodeType":"ElementaryTypeName","src":"8209:7:10","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":1643,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8204:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8204:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":1647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8218:3:10","memberName":"max","nodeType":"MemberAccess","src":"8204:17:10","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":1648,"name":"_nativeForDst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1611,"src":"8223:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1642,"name":"InvalidSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1330,"src":"8192:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8192:45:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1650,"nodeType":"RevertStatement","src":"8185:52:10"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1652,"name":"_receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1613,"src":"8251:9:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8261:6:10","memberName":"length","nodeType":"MemberAccess","src":"8251:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":1654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8270:2:10","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8251:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1662,"nodeType":"IfStatement","src":"8247:67:10","trueBody":{"errorCall":{"arguments":[{"hexValue":"3332","id":1657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8293:2:10","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"expression":{"id":1658,"name":"_receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1613,"src":"8297:9:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8307:6:10","memberName":"length","nodeType":"MemberAccess","src":"8297:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1656,"name":"InvalidSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1330,"src":"8281:11:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8281:33:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1661,"nodeType":"RevertStatement","src":"8274:40:10"}},{"expression":{"arguments":[{"id":1665,"name":"TYPE_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1321,"src":"8348:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1666,"name":"_executionGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1609,"src":"8356:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1667,"name":"_nativeForDst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1611,"src":"8371:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1668,"name":"_receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1613,"src":"8386:9:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1663,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8331:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8335:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"8331:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8331:65:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1617,"id":1670,"nodeType":"Return","src":"8324:72:10"}]},"documentation":{"id":1607,"nodeType":"StructuredDocumentation","src":"7458:332:10","text":" @dev Encodes legacy options of type 2.\n @param _executionGas The gasLimit value passed to lzReceive().\n @param _nativeForDst The amount of native air dropped to the receiver.\n @param _receiver The _nativeForDst receiver address.\n @return legacyOptions The encoded legacy options of type 2."},"id":1672,"implemented":true,"kind":"function","modifiers":[],"name":"encodeLegacyOptionsType2","nameLocation":"7804:24:10","nodeType":"FunctionDefinition","parameters":{"id":1614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1609,"mutability":"mutable","name":"_executionGas","nameLocation":"7846:13:10","nodeType":"VariableDeclaration","scope":1672,"src":"7838:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7838:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1611,"mutability":"mutable","name":"_nativeForDst","nameLocation":"7877:13:10","nodeType":"VariableDeclaration","scope":1672,"src":"7869:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1610,"name":"uint256","nodeType":"ElementaryTypeName","src":"7869:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1613,"mutability":"mutable","name":"_receiver","nameLocation":"7913:9:10","nodeType":"VariableDeclaration","scope":1672,"src":"7900:22:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1612,"name":"bytes","nodeType":"ElementaryTypeName","src":"7900:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7828:169:10"},"returnParameters":{"id":1617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1672,"src":"8021:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1615,"name":"bytes","nodeType":"ElementaryTypeName","src":"8021:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8020:14:10"},"scope":1673,"src":"7795:608:10","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1674,"src":"524:7881:10","usedErrors":[1330,1334],"usedEvents":[]}],"src":"33:8373:10"},"id":10},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol","exportedSymbols":{"IOAppPreCrimeSimulator":[1901],"IPreCrime":[1985],"InboundPacket":[2010],"OAppPreCrimeSimulator":[1847],"Origin":[2176],"Ownable":[5102]},"id":1848,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1675,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:11"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":1677,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1848,"sourceUnit":5103,"src":"59:69:11","symbolAliases":[{"foreign":{"id":1676,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"68:7:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol","file":"./interfaces/IPreCrime.sol","id":1679,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1848,"sourceUnit":1986,"src":"129:55:11","symbolAliases":[{"foreign":{"id":1678,"name":"IPreCrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1985,"src":"138:9:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol","file":"./interfaces/IOAppPreCrimeSimulator.sol","id":1683,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1848,"sourceUnit":1902,"src":"185:104:11","symbolAliases":[{"foreign":{"id":1680,"name":"IOAppPreCrimeSimulator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"194:22:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1681,"name":"InboundPacket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2010,"src":"218:13:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1682,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"233:6:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1685,"name":"IOAppPreCrimeSimulator","nameLocations":["470:22:11"],"nodeType":"IdentifierPath","referencedDeclaration":1901,"src":"470:22:11"},"id":1686,"nodeType":"InheritanceSpecifier","src":"470:22:11"},{"baseName":{"id":1687,"name":"Ownable","nameLocations":["494:7:11"],"nodeType":"IdentifierPath","referencedDeclaration":5102,"src":"494:7:11"},"id":1688,"nodeType":"InheritanceSpecifier","src":"494:7:11"}],"canonicalName":"OAppPreCrimeSimulator","contractDependencies":[],"contractKind":"contract","documentation":{"id":1684,"nodeType":"StructuredDocumentation","src":"291:135:11","text":" @title OAppPreCrimeSimulator\n @dev Abstract contract serving as the base for preCrime simulation functionality in an OApp."},"fullyImplemented":false,"id":1847,"linearizedBaseContracts":[1847,5102,7098,1901],"name":"OAppPreCrimeSimulator","nameLocation":"445:21:11","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[1870],"constant":false,"functionSelector":"b731ea0a","id":1690,"mutability":"mutable","name":"preCrime","nameLocation":"574:8:11","nodeType":"VariableDeclaration","scope":1847,"src":"559:23:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1689,"name":"address","nodeType":"ElementaryTypeName","src":"559:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"baseFunctions":[1876],"body":{"id":1701,"nodeType":"Block","src":"931:37:11","statements":[{"expression":{"arguments":[{"id":1698,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"956:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_OAppPreCrimeSimulator_$1847","typeString":"contract OAppPreCrimeSimulator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OAppPreCrimeSimulator_$1847","typeString":"contract OAppPreCrimeSimulator"}],"id":1697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"948:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1696,"name":"address","nodeType":"ElementaryTypeName","src":"948:7:11","typeDescriptions":{}}},"id":1699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1695,"id":1700,"nodeType":"Return","src":"941:20:11"}]},"documentation":{"id":1691,"nodeType":"StructuredDocumentation","src":"589:281:11","text":" @dev Retrieves the address of the OApp contract.\n @return The address of the OApp contract.\n @dev The simulator contract is the base contract for the OApp by default.\n @dev If the simulator is a separate contract, override this function."},"functionSelector":"52ae2879","id":1702,"implemented":true,"kind":"function","modifiers":[],"name":"oApp","nameLocation":"884:4:11","nodeType":"FunctionDefinition","parameters":{"id":1692,"nodeType":"ParameterList","parameters":[],"src":"888:2:11"},"returnParameters":{"id":1695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1702,"src":"922:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1693,"name":"address","nodeType":"ElementaryTypeName","src":"922:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"921:9:11"},"scope":1847,"src":"875:93:11","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[1882],"body":{"id":1718,"nodeType":"Block","src":"1165:74:11","statements":[{"expression":{"id":1712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1710,"name":"preCrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1690,"src":"1175:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1711,"name":"_preCrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1705,"src":"1186:9:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1175:20:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1713,"nodeType":"ExpressionStatement","src":"1175:20:11"},{"eventCall":{"arguments":[{"id":1715,"name":"_preCrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1705,"src":"1222:9:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1714,"name":"PreCrimeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1864,"src":"1210:11:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1210:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1717,"nodeType":"EmitStatement","src":"1205:27:11"}]},"documentation":{"id":1703,"nodeType":"StructuredDocumentation","src":"974:121:11","text":" @dev Sets the preCrime contract address.\n @param _preCrime The address of the preCrime contract."},"functionSelector":"d4243885","id":1719,"implemented":true,"kind":"function","modifiers":[{"id":1708,"kind":"modifierInvocation","modifierName":{"id":1707,"name":"onlyOwner","nameLocations":["1155:9:11"],"nodeType":"IdentifierPath","referencedDeclaration":5013,"src":"1155:9:11"},"nodeType":"ModifierInvocation","src":"1155:9:11"}],"name":"setPreCrime","nameLocation":"1109:11:11","nodeType":"FunctionDefinition","parameters":{"id":1706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1705,"mutability":"mutable","name":"_preCrime","nameLocation":"1129:9:11","nodeType":"VariableDeclaration","scope":1719,"src":"1121:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1704,"name":"address","nodeType":"ElementaryTypeName","src":"1121:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1120:19:11"},"returnParameters":{"id":1709,"nodeType":"ParameterList","parameters":[],"src":"1165:0:11"},"scope":1847,"src":"1100:139:11","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1890],"body":{"id":1785,"nodeType":"Block","src":"1784:1247:11","statements":[{"body":{"id":1774,"nodeType":"Block","src":"1840:991:11","statements":[{"assignments":[1740],"declarations":[{"constant":false,"id":1740,"mutability":"mutable","name":"packet","nameLocation":"1877:6:11","nodeType":"VariableDeclaration","scope":1774,"src":"1854:29:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_calldata_ptr","typeString":"struct InboundPacket"},"typeName":{"id":1739,"nodeType":"UserDefinedTypeName","pathNode":{"id":1738,"name":"InboundPacket","nameLocations":["1854:13:11"],"nodeType":"IdentifierPath","referencedDeclaration":2010,"src":"1854:13:11"},"referencedDeclaration":2010,"src":"1854:13:11","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_storage_ptr","typeString":"struct InboundPacket"}},"visibility":"internal"}],"id":1744,"initialValue":{"baseExpression":{"id":1741,"name":"_packets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1724,"src":"1886:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_calldata_ptr_$dyn_calldata_ptr","typeString":"struct InboundPacket calldata[] calldata"}},"id":1743,"indexExpression":{"id":1742,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1728,"src":"1895:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1886:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_calldata_ptr","typeString":"struct InboundPacket calldata"}},"nodeType":"VariableDeclarationStatement","src":"1854:43:11"},{"condition":{"id":1753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1979:51:11","subExpression":{"arguments":[{"expression":{"expression":{"id":1746,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1740,"src":"1987:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_calldata_ptr","typeString":"struct InboundPacket calldata"}},"id":1747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1994:6:11","memberName":"origin","nodeType":"MemberAccess","referencedDeclaration":1995,"src":"1987:13:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":1748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2001:6:11","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":2171,"src":"1987:20:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"expression":{"id":1749,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1740,"src":"2009:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_calldata_ptr","typeString":"struct InboundPacket calldata"}},"id":1750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2016:6:11","memberName":"origin","nodeType":"MemberAccess","referencedDeclaration":1995,"src":"2009:13:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":1751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2023:6:11","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":2173,"src":"2009:20:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1745,"name":"isPeer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1846,"src":"1980:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (uint32,bytes32) view returns (bool)"}},"id":1752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1980:50:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1755,"nodeType":"IfStatement","src":"1975:65:11","trueBody":{"id":1754,"nodeType":"Continue","src":"2032:8:11"}},{"expression":{"arguments":[{"expression":{"id":1762,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1740,"src":"2665:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_calldata_ptr","typeString":"struct InboundPacket calldata"}},"id":1763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2672:6:11","memberName":"origin","nodeType":"MemberAccess","referencedDeclaration":1995,"src":"2665:13:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},{"expression":{"id":1764,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1740,"src":"2696:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_calldata_ptr","typeString":"struct InboundPacket calldata"}},"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2703:4:11","memberName":"guid","nodeType":"MemberAccess","referencedDeclaration":2001,"src":"2696:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":1766,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1740,"src":"2725:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_calldata_ptr","typeString":"struct InboundPacket calldata"}},"id":1767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2732:7:11","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":2007,"src":"2725:14:11","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":1768,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1740,"src":"2757:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_calldata_ptr","typeString":"struct InboundPacket calldata"}},"id":1769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2764:8:11","memberName":"executor","nodeType":"MemberAccess","referencedDeclaration":2005,"src":"2757:15:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1770,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1740,"src":"2790:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_calldata_ptr","typeString":"struct InboundPacket calldata"}},"id":1771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2797:9:11","memberName":"extraData","nodeType":"MemberAccess","referencedDeclaration":2009,"src":"2790:16:11","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":1756,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2602:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_OAppPreCrimeSimulator_$1847","typeString":"contract OAppPreCrimeSimulator"}},"id":1758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2607:17:11","memberName":"lzReceiveSimulate","nodeType":"MemberAccess","referencedDeclaration":1821,"src":"2602:22:11","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_Origin_$2176_memory_ptr_$_t_bytes32_$_t_bytes_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct Origin memory,bytes32,bytes memory,address,bytes memory) payable external"}},"id":1761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":1759,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1740,"src":"2633:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_calldata_ptr","typeString":"struct InboundPacket calldata"}},"id":1760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2640:5:11","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2003,"src":"2633:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2602:45:11","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_Origin_$2176_memory_ptr_$_t_bytes32_$_t_bytes_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (struct Origin memory,bytes32,bytes memory,address,bytes memory) payable external"}},"id":1772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2602:218:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1773,"nodeType":"ExpressionStatement","src":"2602:218:11"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1731,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1728,"src":"1814:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1732,"name":"_packets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1724,"src":"1818:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_calldata_ptr_$dyn_calldata_ptr","typeString":"struct InboundPacket calldata[] calldata"}},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1827:6:11","memberName":"length","nodeType":"MemberAccess","src":"1818:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1814:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1775,"initializationExpression":{"assignments":[1728],"declarations":[{"constant":false,"id":1728,"mutability":"mutable","name":"i","nameLocation":"1807:1:11","nodeType":"VariableDeclaration","scope":1775,"src":"1799:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1727,"name":"uint256","nodeType":"ElementaryTypeName","src":"1799:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1730,"initialValue":{"hexValue":"30","id":1729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1811:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1799:13:11"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":1736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1835:3:11","subExpression":{"id":1735,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1728,"src":"1835:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1737,"nodeType":"ExpressionStatement","src":"1835:3:11"},"nodeType":"ForStatement","src":"1794:1037:11"},{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":1778,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2988:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2992:6:11","memberName":"sender","nodeType":"MemberAccess","src":"2988:10:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1777,"name":"IPreCrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1985,"src":"2978:9:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPreCrime_$1985_$","typeString":"type(contract IPreCrime)"}},"id":1780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2978:21:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPreCrime_$1985","typeString":"contract IPreCrime"}},"id":1781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3000:21:11","memberName":"buildSimulationResult","nodeType":"MemberAccess","referencedDeclaration":1965,"src":"2978:43:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes_memory_ptr_$","typeString":"function () view external returns (bytes memory)"}},"id":1782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2978:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1776,"name":"SimulationResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1857,"src":"2961:16:11","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":1783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2961:63:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1784,"nodeType":"RevertStatement","src":"2954:70:11"}]},"documentation":{"id":1720,"nodeType":"StructuredDocumentation","src":"1245:448:11","text":" @dev Interface for pre-crime simulations. Always reverts at the end with the simulation results.\n @param _packets An array of InboundPacket objects representing received packets to be delivered.\n @dev WARNING: MUST revert at the end with the simulation results.\n @dev Gives the preCrime implementation the ability to mock sending packets to the lzReceive function,\n WITHOUT actually executing them."},"functionSelector":"bd815db0","id":1786,"implemented":true,"kind":"function","modifiers":[],"name":"lzReceiveAndRevert","nameLocation":"1707:18:11","nodeType":"FunctionDefinition","parameters":{"id":1725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1724,"mutability":"mutable","name":"_packets","nameLocation":"1751:8:11","nodeType":"VariableDeclaration","scope":1786,"src":"1726:33:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_calldata_ptr_$dyn_calldata_ptr","typeString":"struct InboundPacket[]"},"typeName":{"baseType":{"id":1722,"nodeType":"UserDefinedTypeName","pathNode":{"id":1721,"name":"InboundPacket","nameLocations":["1726:13:11"],"nodeType":"IdentifierPath","referencedDeclaration":2010,"src":"1726:13:11"},"referencedDeclaration":2010,"src":"1726:13:11","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_storage_ptr","typeString":"struct InboundPacket"}},"id":1723,"nodeType":"ArrayTypeName","src":"1726:15:11","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_storage_$dyn_storage_ptr","typeString":"struct InboundPacket[]"}},"visibility":"internal"}],"src":"1725:35:11"},"returnParameters":{"id":1726,"nodeType":"ParameterList","parameters":[],"src":"1784:0:11"},"scope":1847,"src":"1698:1333:11","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":1820,"nodeType":"Block","src":"3888:200:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1801,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3958:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3962:6:11","memberName":"sender","nodeType":"MemberAccess","src":"3958:10:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":1805,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3980:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_OAppPreCrimeSimulator_$1847","typeString":"contract OAppPreCrimeSimulator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OAppPreCrimeSimulator_$1847","typeString":"contract OAppPreCrimeSimulator"}],"id":1804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3972:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1803,"name":"address","nodeType":"ElementaryTypeName","src":"3972:7:11","typeDescriptions":{}}},"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3972:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3958:27:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1811,"nodeType":"IfStatement","src":"3954:50:11","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1808,"name":"OnlySelf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1859,"src":"3994:8:11","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1810,"nodeType":"RevertStatement","src":"3987:17:11"}},{"expression":{"arguments":[{"id":1813,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1790,"src":"4033:7:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},{"id":1814,"name":"_guid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"4042:5:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1815,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"4049:8:11","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1816,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"4059:9:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1817,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1798,"src":"4070:10:11","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1812,"name":"_lzReceiveSimulate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"4014:18:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Origin_$2176_calldata_ptr_$_t_bytes32_$_t_bytes_calldata_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (struct Origin calldata,bytes32,bytes calldata,address,bytes calldata)"}},"id":1818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4014:67:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1819,"nodeType":"ExpressionStatement","src":"4014:67:11"}]},"documentation":{"id":1787,"nodeType":"StructuredDocumentation","src":"3037:637:11","text":" @dev Is effectively an internal function because msg.sender must be address(this).\n Allows resetting the call stack for 'internal' calls.\n @param _origin The origin information containing the source endpoint and sender address.\n - srcEid: The source chain endpoint ID.\n - sender: The sender address on the src chain.\n - nonce: The nonce of the message.\n @param _guid The unique identifier of the packet.\n @param _message The message payload of the packet.\n @param _executor The executor address for the packet.\n @param _extraData Additional data for the packet."},"functionSelector":"d045a0dc","id":1821,"implemented":true,"kind":"function","modifiers":[],"name":"lzReceiveSimulate","nameLocation":"3688:17:11","nodeType":"FunctionDefinition","parameters":{"id":1799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1790,"mutability":"mutable","name":"_origin","nameLocation":"3731:7:11","nodeType":"VariableDeclaration","scope":1821,"src":"3715:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":1789,"nodeType":"UserDefinedTypeName","pathNode":{"id":1788,"name":"Origin","nameLocations":["3715:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"3715:6:11"},"referencedDeclaration":2176,"src":"3715:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":1792,"mutability":"mutable","name":"_guid","nameLocation":"3756:5:11","nodeType":"VariableDeclaration","scope":1821,"src":"3748:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3748:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1794,"mutability":"mutable","name":"_message","nameLocation":"3786:8:11","nodeType":"VariableDeclaration","scope":1821,"src":"3771:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1793,"name":"bytes","nodeType":"ElementaryTypeName","src":"3771:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1796,"mutability":"mutable","name":"_executor","nameLocation":"3812:9:11","nodeType":"VariableDeclaration","scope":1821,"src":"3804:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1795,"name":"address","nodeType":"ElementaryTypeName","src":"3804:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1798,"mutability":"mutable","name":"_extraData","nameLocation":"3846:10:11","nodeType":"VariableDeclaration","scope":1821,"src":"3831:25:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1797,"name":"bytes","nodeType":"ElementaryTypeName","src":"3831:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3705:157:11"},"returnParameters":{"id":1800,"nodeType":"ParameterList","parameters":[],"src":"3888:0:11"},"scope":1847,"src":"3679:409:11","stateMutability":"payable","virtual":true,"visibility":"external"},{"documentation":{"id":1822,"nodeType":"StructuredDocumentation","src":"4094:712:11","text":" @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\n @param _origin The origin information.\n - srcEid: The source chain endpoint ID.\n - sender: The sender address from the src chain.\n - nonce: The nonce of the LayerZero message.\n @param _guid The GUID of the LayerZero message.\n @param _message The LayerZero message.\n @param _executor The address of the off-chain executor.\n @param _extraData Arbitrary data passed by the msg executor.\n @dev Enables the preCrime simulator to mock sending lzReceive() messages,\n routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver."},"id":1836,"implemented":false,"kind":"function","modifiers":[],"name":"_lzReceiveSimulate","nameLocation":"4820:18:11","nodeType":"FunctionDefinition","parameters":{"id":1834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1825,"mutability":"mutable","name":"_origin","nameLocation":"4864:7:11","nodeType":"VariableDeclaration","scope":1836,"src":"4848:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":1824,"nodeType":"UserDefinedTypeName","pathNode":{"id":1823,"name":"Origin","nameLocations":["4848:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"4848:6:11"},"referencedDeclaration":2176,"src":"4848:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":1827,"mutability":"mutable","name":"_guid","nameLocation":"4889:5:11","nodeType":"VariableDeclaration","scope":1836,"src":"4881:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4881:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1829,"mutability":"mutable","name":"_message","nameLocation":"4919:8:11","nodeType":"VariableDeclaration","scope":1836,"src":"4904:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1828,"name":"bytes","nodeType":"ElementaryTypeName","src":"4904:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1831,"mutability":"mutable","name":"_executor","nameLocation":"4945:9:11","nodeType":"VariableDeclaration","scope":1836,"src":"4937:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1830,"name":"address","nodeType":"ElementaryTypeName","src":"4937:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1833,"mutability":"mutable","name":"_extraData","nameLocation":"4979:10:11","nodeType":"VariableDeclaration","scope":1836,"src":"4964:25:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1832,"name":"bytes","nodeType":"ElementaryTypeName","src":"4964:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4838:157:11"},"returnParameters":{"id":1835,"nodeType":"ParameterList","parameters":[],"src":"5012:0:11"},"scope":1847,"src":"4811:202:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1900],"documentation":{"id":1837,"nodeType":"StructuredDocumentation","src":"5019:249:11","text":" @dev checks if the specified peer is considered 'trusted' by the OApp.\n @param _eid The endpoint Id to check.\n @param _peer The peer to check.\n @return Whether the peer passed is considered 'trusted' by the OApp."},"functionSelector":"5a0dfe4d","id":1846,"implemented":false,"kind":"function","modifiers":[],"name":"isPeer","nameLocation":"5282:6:11","nodeType":"FunctionDefinition","parameters":{"id":1842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1839,"mutability":"mutable","name":"_eid","nameLocation":"5296:4:11","nodeType":"VariableDeclaration","scope":1846,"src":"5289:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1838,"name":"uint32","nodeType":"ElementaryTypeName","src":"5289:6:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1841,"mutability":"mutable","name":"_peer","nameLocation":"5310:5:11","nodeType":"VariableDeclaration","scope":1846,"src":"5302:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1840,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5302:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5288:28:11"},"returnParameters":{"id":1845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1844,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1846,"src":"5346:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1843,"name":"bool","nodeType":"ElementaryTypeName","src":"5346:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5345:6:11"},"scope":1847,"src":"5273:79:11","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":1848,"src":"427:4927:11","usedErrors":[1857,1859,4968,4973],"usedEvents":[1864,4979]}],"src":"33:5322:11"},"id":11},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol","exportedSymbols":{"IOAppPreCrimeSimulator":[1901],"InboundPacket":[2010],"Origin":[2176]},"id":1902,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1849,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:12"},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol","file":"../libs/Packet.sol","id":1852,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1902,"sourceUnit":2136,"src":"186:59:12","symbolAliases":[{"foreign":{"id":1850,"name":"InboundPacket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2010,"src":"195:13:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1851,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"210:6:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IOAppPreCrimeSimulator","contractDependencies":[],"contractKind":"interface","documentation":{"id":1853,"nodeType":"StructuredDocumentation","src":"247:122:12","text":" @title IOAppPreCrimeSimulator Interface\n @dev Interface for the preCrime simulation functionality in an OApp."},"fullyImplemented":false,"id":1901,"linearizedBaseContracts":[1901],"name":"IOAppPreCrimeSimulator","nameLocation":"380:22:12","nodeType":"ContractDefinition","nodes":[{"errorSelector":"8351eea7","id":1857,"name":"SimulationResult","nameLocation":"477:16:12","nodeType":"ErrorDefinition","parameters":{"id":1856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1855,"mutability":"mutable","name":"result","nameLocation":"500:6:12","nodeType":"VariableDeclaration","scope":1857,"src":"494:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1854,"name":"bytes","nodeType":"ElementaryTypeName","src":"494:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"493:14:12"},"src":"471:37:12"},{"errorSelector":"14d4a4e8","id":1859,"name":"OnlySelf","nameLocation":"519:8:12","nodeType":"ErrorDefinition","parameters":{"id":1858,"nodeType":"ParameterList","parameters":[],"src":"527:2:12"},"src":"513:17:12"},{"anonymous":false,"documentation":{"id":1860,"nodeType":"StructuredDocumentation","src":"536:142:12","text":" @dev Emitted when the preCrime contract address is set.\n @param preCrimeAddress The address of the preCrime contract."},"eventSelector":"d48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760","id":1864,"name":"PreCrimeSet","nameLocation":"689:11:12","nodeType":"EventDefinition","parameters":{"id":1863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1862,"indexed":false,"mutability":"mutable","name":"preCrimeAddress","nameLocation":"709:15:12","nodeType":"VariableDeclaration","scope":1864,"src":"701:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1861,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"700:25:12"},"src":"683:43:12"},{"documentation":{"id":1865,"nodeType":"StructuredDocumentation","src":"732:139:12","text":" @dev Retrieves the address of the preCrime contract implementation.\n @return The address of the preCrime contract."},"functionSelector":"b731ea0a","id":1870,"implemented":false,"kind":"function","modifiers":[],"name":"preCrime","nameLocation":"885:8:12","nodeType":"FunctionDefinition","parameters":{"id":1866,"nodeType":"ParameterList","parameters":[],"src":"893:2:12"},"returnParameters":{"id":1869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1868,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1870,"src":"919:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1867,"name":"address","nodeType":"ElementaryTypeName","src":"919:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"918:9:12"},"scope":1901,"src":"876:52:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1871,"nodeType":"StructuredDocumentation","src":"934:116:12","text":" @dev Retrieves the address of the OApp contract.\n @return The address of the OApp contract."},"functionSelector":"52ae2879","id":1876,"implemented":false,"kind":"function","modifiers":[],"name":"oApp","nameLocation":"1064:4:12","nodeType":"FunctionDefinition","parameters":{"id":1872,"nodeType":"ParameterList","parameters":[],"src":"1068:2:12"},"returnParameters":{"id":1875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1876,"src":"1094:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1873,"name":"address","nodeType":"ElementaryTypeName","src":"1094:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1093:9:12"},"scope":1901,"src":"1055:48:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1877,"nodeType":"StructuredDocumentation","src":"1109:121:12","text":" @dev Sets the preCrime contract address.\n @param _preCrime The address of the preCrime contract."},"functionSelector":"d4243885","id":1882,"implemented":false,"kind":"function","modifiers":[],"name":"setPreCrime","nameLocation":"1244:11:12","nodeType":"FunctionDefinition","parameters":{"id":1880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1879,"mutability":"mutable","name":"_preCrime","nameLocation":"1264:9:12","nodeType":"VariableDeclaration","scope":1882,"src":"1256:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1878,"name":"address","nodeType":"ElementaryTypeName","src":"1256:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1255:19:12"},"returnParameters":{"id":1881,"nodeType":"ParameterList","parameters":[],"src":"1283:0:12"},"scope":1901,"src":"1235:49:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1883,"nodeType":"StructuredDocumentation","src":"1290:209:12","text":" @dev Mocks receiving a packet, then reverts with a series of data to infer the state/result.\n @param _packets An array of LayerZero InboundPacket objects representing received packets."},"functionSelector":"bd815db0","id":1890,"implemented":false,"kind":"function","modifiers":[],"name":"lzReceiveAndRevert","nameLocation":"1513:18:12","nodeType":"FunctionDefinition","parameters":{"id":1888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1887,"mutability":"mutable","name":"_packets","nameLocation":"1557:8:12","nodeType":"VariableDeclaration","scope":1890,"src":"1532:33:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_calldata_ptr_$dyn_calldata_ptr","typeString":"struct InboundPacket[]"},"typeName":{"baseType":{"id":1885,"nodeType":"UserDefinedTypeName","pathNode":{"id":1884,"name":"InboundPacket","nameLocations":["1532:13:12"],"nodeType":"IdentifierPath","referencedDeclaration":2010,"src":"1532:13:12"},"referencedDeclaration":2010,"src":"1532:13:12","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_storage_ptr","typeString":"struct InboundPacket"}},"id":1886,"nodeType":"ArrayTypeName","src":"1532:15:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_storage_$dyn_storage_ptr","typeString":"struct InboundPacket[]"}},"visibility":"internal"}],"src":"1531:35:12"},"returnParameters":{"id":1889,"nodeType":"ParameterList","parameters":[],"src":"1583:0:12"},"scope":1901,"src":"1504:80:12","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":1891,"nodeType":"StructuredDocumentation","src":"1590:249:12","text":" @dev checks if the specified peer is considered 'trusted' by the OApp.\n @param _eid The endpoint Id to check.\n @param _peer The peer to check.\n @return Whether the peer passed is considered 'trusted' by the OApp."},"functionSelector":"5a0dfe4d","id":1900,"implemented":false,"kind":"function","modifiers":[],"name":"isPeer","nameLocation":"1853:6:12","nodeType":"FunctionDefinition","parameters":{"id":1896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1893,"mutability":"mutable","name":"_eid","nameLocation":"1867:4:12","nodeType":"VariableDeclaration","scope":1900,"src":"1860:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1892,"name":"uint32","nodeType":"ElementaryTypeName","src":"1860:6:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1895,"mutability":"mutable","name":"_peer","nameLocation":"1881:5:12","nodeType":"VariableDeclaration","scope":1900,"src":"1873:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1873:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1859:28:12"},"returnParameters":{"id":1899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1900,"src":"1911:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1897,"name":"bool","nodeType":"ElementaryTypeName","src":"1911:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1910:6:12"},"scope":1901,"src":"1844:73:12","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1902,"src":"370:1549:12","usedErrors":[1857,1859],"usedEvents":[1864]}],"src":"33:1887:12"},"id":12},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol","exportedSymbols":{"IPreCrime":[1985],"PreCrimePeer":[1910]},"id":1986,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1903,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:13"},{"canonicalName":"PreCrimePeer","id":1910,"members":[{"constant":false,"id":1905,"mutability":"mutable","name":"eid","nameLocation":"91:3:13","nodeType":"VariableDeclaration","scope":1910,"src":"84:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1904,"name":"uint32","nodeType":"ElementaryTypeName","src":"84:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1907,"mutability":"mutable","name":"preCrime","nameLocation":"108:8:13","nodeType":"VariableDeclaration","scope":1910,"src":"100:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"100:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1909,"mutability":"mutable","name":"oApp","nameLocation":"130:4:13","nodeType":"VariableDeclaration","scope":1910,"src":"122:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"PreCrimePeer","nameLocation":"65:12:13","nodeType":"StructDefinition","scope":1986,"src":"58:79:13","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"IPreCrime","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1985,"linearizedBaseContracts":[1985],"name":"IPreCrime","nameLocation":"170:9:13","nodeType":"ContractDefinition","nodes":[{"errorSelector":"9cbfe066","id":1912,"name":"OnlyOffChain","nameLocation":"192:12:13","nodeType":"ErrorDefinition","parameters":{"id":1911,"nodeType":"ParameterList","parameters":[],"src":"204:2:13"},"src":"186:21:13"},{"errorSelector":"9db08605","id":1918,"name":"PacketOversize","nameLocation":"241:14:13","nodeType":"ErrorDefinition","parameters":{"id":1917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1914,"mutability":"mutable","name":"max","nameLocation":"264:3:13","nodeType":"VariableDeclaration","scope":1918,"src":"256:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1913,"name":"uint256","nodeType":"ElementaryTypeName","src":"256:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1916,"mutability":"mutable","name":"actual","nameLocation":"277:6:13","nodeType":"VariableDeclaration","scope":1918,"src":"269:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1915,"name":"uint256","nodeType":"ElementaryTypeName","src":"269:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"255:29:13"},"src":"235:50:13"},{"errorSelector":"50823c85","id":1920,"name":"PacketUnsorted","nameLocation":"296:14:13","nodeType":"ErrorDefinition","parameters":{"id":1919,"nodeType":"ParameterList","parameters":[],"src":"310:2:13"},"src":"290:23:13"},{"errorSelector":"614cbd8a","id":1924,"name":"SimulationFailed","nameLocation":"324:16:13","nodeType":"ErrorDefinition","parameters":{"id":1923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1922,"mutability":"mutable","name":"reason","nameLocation":"347:6:13","nodeType":"VariableDeclaration","scope":1924,"src":"341:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1921,"name":"bytes","nodeType":"ElementaryTypeName","src":"341:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"340:14:13"},"src":"318:37:13"},{"errorSelector":"01992f2a","id":1928,"name":"SimulationResultNotFound","nameLocation":"389:24:13","nodeType":"ErrorDefinition","parameters":{"id":1927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1926,"mutability":"mutable","name":"eid","nameLocation":"421:3:13","nodeType":"VariableDeclaration","scope":1928,"src":"414:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1925,"name":"uint32","nodeType":"ElementaryTypeName","src":"414:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"413:12:13"},"src":"383:43:13"},{"errorSelector":"572e17ee","id":1934,"name":"InvalidSimulationResult","nameLocation":"437:23:13","nodeType":"ErrorDefinition","parameters":{"id":1933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1930,"mutability":"mutable","name":"eid","nameLocation":"468:3:13","nodeType":"VariableDeclaration","scope":1934,"src":"461:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1929,"name":"uint32","nodeType":"ElementaryTypeName","src":"461:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1932,"mutability":"mutable","name":"reason","nameLocation":"479:6:13","nodeType":"VariableDeclaration","scope":1934,"src":"473:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1931,"name":"bytes","nodeType":"ElementaryTypeName","src":"473:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"460:26:13"},"src":"431:56:13"},{"errorSelector":"19159757","id":1938,"name":"CrimeFound","nameLocation":"498:10:13","nodeType":"ErrorDefinition","parameters":{"id":1937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1936,"mutability":"mutable","name":"crime","nameLocation":"515:5:13","nodeType":"VariableDeclaration","scope":1938,"src":"509:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1935,"name":"bytes","nodeType":"ElementaryTypeName","src":"509:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"508:13:13"},"src":"492:30:13"},{"functionSelector":"f0cd3836","id":1949,"implemented":false,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"537:9:13","nodeType":"FunctionDefinition","parameters":{"id":1945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1941,"mutability":"mutable","name":"_packets","nameLocation":"564:8:13","nodeType":"VariableDeclaration","scope":1949,"src":"547:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1939,"name":"bytes","nodeType":"ElementaryTypeName","src":"547:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1940,"nodeType":"ArrayTypeName","src":"547:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1944,"mutability":"mutable","name":"_packetMsgValues","nameLocation":"593:16:13","nodeType":"VariableDeclaration","scope":1949,"src":"574:35:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1942,"name":"uint256","nodeType":"ElementaryTypeName","src":"574:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1943,"nodeType":"ArrayTypeName","src":"574:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"546:64:13"},"returnParameters":{"id":1948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1949,"src":"629:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1946,"name":"bytes","nodeType":"ElementaryTypeName","src":"629:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"628:14:13"},"scope":1985,"src":"528:115:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"50dfa937","id":1960,"implemented":false,"kind":"function","modifiers":[],"name":"simulate","nameLocation":"658:8:13","nodeType":"FunctionDefinition","parameters":{"id":1956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1952,"mutability":"mutable","name":"_packets","nameLocation":"693:8:13","nodeType":"VariableDeclaration","scope":1960,"src":"676:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1950,"name":"bytes","nodeType":"ElementaryTypeName","src":"676:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1951,"nodeType":"ArrayTypeName","src":"676:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1955,"mutability":"mutable","name":"_packetMsgValues","nameLocation":"730:16:13","nodeType":"VariableDeclaration","scope":1960,"src":"711:35:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1953,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1954,"nodeType":"ArrayTypeName","src":"711:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"666:86:13"},"returnParameters":{"id":1959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1960,"src":"779:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1957,"name":"bytes","nodeType":"ElementaryTypeName","src":"779:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"778:14:13"},"scope":1985,"src":"649:144:13","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"8e9e7099","id":1965,"implemented":false,"kind":"function","modifiers":[],"name":"buildSimulationResult","nameLocation":"808:21:13","nodeType":"FunctionDefinition","parameters":{"id":1961,"nodeType":"ParameterList","parameters":[],"src":"829:2:13"},"returnParameters":{"id":1964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1965,"src":"855:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1962,"name":"bytes","nodeType":"ElementaryTypeName","src":"855:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"854:14:13"},"scope":1985,"src":"799:70:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"10f9cf3a","id":1977,"implemented":false,"kind":"function","modifiers":[],"name":"preCrime","nameLocation":"884:8:13","nodeType":"FunctionDefinition","parameters":{"id":1975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1968,"mutability":"mutable","name":"_packets","nameLocation":"919:8:13","nodeType":"VariableDeclaration","scope":1977,"src":"902:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1966,"name":"bytes","nodeType":"ElementaryTypeName","src":"902:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1967,"nodeType":"ArrayTypeName","src":"902:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1971,"mutability":"mutable","name":"_packetMsgValues","nameLocation":"956:16:13","nodeType":"VariableDeclaration","scope":1977,"src":"937:35:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1969,"name":"uint256","nodeType":"ElementaryTypeName","src":"937:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1970,"nodeType":"ArrayTypeName","src":"937:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1974,"mutability":"mutable","name":"_simulations","nameLocation":"999:12:13","nodeType":"VariableDeclaration","scope":1977,"src":"982:29:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1972,"name":"bytes","nodeType":"ElementaryTypeName","src":"982:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1973,"nodeType":"ArrayTypeName","src":"982:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"892:125:13"},"returnParameters":{"id":1976,"nodeType":"ParameterList","parameters":[],"src":"1026:0:13"},"scope":1985,"src":"875:152:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"54fd4d50","id":1984,"implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"1042:7:13","nodeType":"FunctionDefinition","parameters":{"id":1978,"nodeType":"ParameterList","parameters":[],"src":"1049:2:13"},"returnParameters":{"id":1983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1980,"mutability":"mutable","name":"major","nameLocation":"1082:5:13","nodeType":"VariableDeclaration","scope":1984,"src":"1075:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1979,"name":"uint64","nodeType":"ElementaryTypeName","src":"1075:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1982,"mutability":"mutable","name":"minor","nameLocation":"1095:5:13","nodeType":"VariableDeclaration","scope":1984,"src":"1089:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1981,"name":"uint8","nodeType":"ElementaryTypeName","src":"1089:5:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1074:27:13"},"scope":1985,"src":"1033:69:13","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1986,"src":"160:944:13","usedErrors":[1912,1918,1920,1924,1928,1934,1938],"usedEvents":[]}],"src":"33:1072:13"},"id":13},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol","exportedSymbols":{"InboundPacket":[2010],"Origin":[2176],"PacketDecoder":[2135],"PacketV1Codec":[4026]},"id":2136,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1987,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:14"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","id":1989,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2136,"sourceUnit":2339,"src":"59:105:14","symbolAliases":[{"foreign":{"id":1988,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"68:6:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol","file":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol","id":1991,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2136,"sourceUnit":4027,"src":"165:110:14","symbolAliases":[{"foreign":{"id":1990,"name":"PacketV1Codec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4026,"src":"174:13:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"canonicalName":"InboundPacket","documentation":{"id":1992,"nodeType":"StructuredDocumentation","src":"277:106:14","text":" @title InboundPacket\n @dev Structure representing an inbound packet received by the contract."},"id":2010,"members":[{"constant":false,"id":1995,"mutability":"mutable","name":"origin","nameLocation":"418:6:14","nodeType":"VariableDeclaration","scope":2010,"src":"411:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"},"typeName":{"id":1994,"nodeType":"UserDefinedTypeName","pathNode":{"id":1993,"name":"Origin","nameLocations":["411:6:14"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"411:6:14"},"referencedDeclaration":2176,"src":"411:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":1997,"mutability":"mutable","name":"dstEid","nameLocation":"474:6:14","nodeType":"VariableDeclaration","scope":2010,"src":"467:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1996,"name":"uint32","nodeType":"ElementaryTypeName","src":"467:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1999,"mutability":"mutable","name":"receiver","nameLocation":"535:8:14","nodeType":"VariableDeclaration","scope":2010,"src":"527:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1998,"name":"address","nodeType":"ElementaryTypeName","src":"527:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2001,"mutability":"mutable","name":"guid","nameLocation":"593:4:14","nodeType":"VariableDeclaration","scope":2010,"src":"585:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"585:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2003,"mutability":"mutable","name":"value","nameLocation":"647:5:14","nodeType":"VariableDeclaration","scope":2010,"src":"639:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2002,"name":"uint256","nodeType":"ElementaryTypeName","src":"639:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2005,"mutability":"mutable","name":"executor","nameLocation":"694:8:14","nodeType":"VariableDeclaration","scope":2010,"src":"686:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2004,"name":"address","nodeType":"ElementaryTypeName","src":"686:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2007,"mutability":"mutable","name":"message","nameLocation":"750:7:14","nodeType":"VariableDeclaration","scope":2010,"src":"744:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2006,"name":"bytes","nodeType":"ElementaryTypeName","src":"744:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2009,"mutability":"mutable","name":"extraData","nameLocation":"803:9:14","nodeType":"VariableDeclaration","scope":2010,"src":"797:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2008,"name":"bytes","nodeType":"ElementaryTypeName","src":"797:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"InboundPacket","nameLocation":"391:13:14","nodeType":"StructDefinition","scope":2136,"src":"384:476:14","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"PacketDecoder","contractDependencies":[],"contractKind":"library","documentation":{"id":2011,"nodeType":"StructuredDocumentation","src":"862:79:14","text":" @title PacketDecoder\n @dev Library for decoding LayerZero packets."},"fullyImplemented":true,"id":2135,"linearizedBaseContracts":[2135],"name":"PacketDecoder","nameLocation":"950:13:14","nodeType":"ContractDefinition","nodes":[{"global":false,"id":2014,"libraryName":{"id":2012,"name":"PacketV1Codec","nameLocations":["976:13:14"],"nodeType":"IdentifierPath","referencedDeclaration":4026,"src":"976:13:14"},"nodeType":"UsingForDirective","src":"970:30:14","typeName":{"id":2013,"name":"bytes","nodeType":"ElementaryTypeName","src":"994:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"body":{"id":2071,"nodeType":"Block","src":"1307:265:14","statements":[{"expression":{"id":2037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2023,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"1317:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_memory_ptr","typeString":"struct InboundPacket memory"}},"id":2025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1324:6:14","memberName":"origin","nodeType":"MemberAccess","referencedDeclaration":1995,"src":"1317:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_memory_ptr","typeString":"struct Origin memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2027,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"1340:7:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1348:6:14","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":3886,"src":"1340:14:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_uint32_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (uint32)"}},"id":2029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1340:16:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2030,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"1358:7:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1366:6:14","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":3902,"src":"1358:14:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bytes32_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (bytes32)"}},"id":2032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1358:16:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2033,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"1376:7:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1384:5:14","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3867,"src":"1376:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_uint64_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (uint64)"}},"id":2035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:15:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2026,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"1333:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Origin_$2176_storage_ptr_$","typeString":"type(struct Origin storage pointer)"}},"id":2036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1333:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_memory_ptr","typeString":"struct Origin memory"}},"src":"1317:75:14","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_memory_ptr","typeString":"struct Origin memory"}},"id":2038,"nodeType":"ExpressionStatement","src":"1317:75:14"},{"expression":{"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2039,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"1402:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_memory_ptr","typeString":"struct InboundPacket memory"}},"id":2041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1409:6:14","memberName":"dstEid","nodeType":"MemberAccess","referencedDeclaration":1997,"src":"1402:13:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2042,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"1418:7:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1426:6:14","memberName":"dstEid","nodeType":"MemberAccess","referencedDeclaration":3935,"src":"1418:14:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_uint32_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (uint32)"}},"id":2044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1418:16:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1402:32:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2046,"nodeType":"ExpressionStatement","src":"1402:32:14"},{"expression":{"id":2053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2047,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"1444:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_memory_ptr","typeString":"struct InboundPacket memory"}},"id":2049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1451:8:14","memberName":"receiver","nodeType":"MemberAccess","referencedDeclaration":1999,"src":"1444:15:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2050,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"1462:7:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1470:11:14","memberName":"receiverB20","nodeType":"MemberAccess","referencedDeclaration":3965,"src":"1462:19:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":2052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1462:21:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1444:39:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2054,"nodeType":"ExpressionStatement","src":"1444:39:14"},{"expression":{"id":2061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2055,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"1493:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_memory_ptr","typeString":"struct InboundPacket memory"}},"id":2057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1500:4:14","memberName":"guid","nodeType":"MemberAccess","referencedDeclaration":2001,"src":"1493:11:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2058,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"1507:7:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1515:4:14","memberName":"guid","nodeType":"MemberAccess","referencedDeclaration":3981,"src":"1507:12:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bytes32_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (bytes32)"}},"id":2060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1507:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1493:28:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2062,"nodeType":"ExpressionStatement","src":"1493:28:14"},{"expression":{"id":2069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2063,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"1531:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_memory_ptr","typeString":"struct InboundPacket memory"}},"id":2065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1538:7:14","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":2007,"src":"1531:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2066,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"1548:7:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1556:7:14","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":3996,"src":"1548:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bytes_calldata_ptr_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (bytes calldata)"}},"id":2068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1548:17:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"1531:34:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2070,"nodeType":"ExpressionStatement","src":"1531:34:14"}]},"documentation":{"id":2015,"nodeType":"StructuredDocumentation","src":"1006:204:14","text":" @dev Decode an inbound packet from the given packet data.\n @param _packet The packet data to decode.\n @return packet An InboundPacket struct representing the decoded packet."},"id":2072,"implemented":true,"kind":"function","modifiers":[],"name":"decode","nameLocation":"1224:6:14","nodeType":"FunctionDefinition","parameters":{"id":2018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2017,"mutability":"mutable","name":"_packet","nameLocation":"1246:7:14","nodeType":"VariableDeclaration","scope":2072,"src":"1231:22:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2016,"name":"bytes","nodeType":"ElementaryTypeName","src":"1231:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1230:24:14"},"returnParameters":{"id":2022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2021,"mutability":"mutable","name":"packet","nameLocation":"1299:6:14","nodeType":"VariableDeclaration","scope":2072,"src":"1278:27:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_memory_ptr","typeString":"struct InboundPacket"},"typeName":{"id":2020,"nodeType":"UserDefinedTypeName","pathNode":{"id":2019,"name":"InboundPacket","nameLocations":["1278:13:14"],"nodeType":"IdentifierPath","referencedDeclaration":2010,"src":"1278:13:14"},"referencedDeclaration":2010,"src":"1278:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_storage_ptr","typeString":"struct InboundPacket"}},"visibility":"internal"}],"src":"1277:29:14"},"scope":2135,"src":"1215:357:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2133,"nodeType":"Block","src":"2086:381:14","statements":[{"expression":{"id":2094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2086,"name":"packets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2096:7:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_memory_ptr_$dyn_memory_ptr","typeString":"struct InboundPacket memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":2091,"name":"_packets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2076,"src":"2126:8:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":2092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2135:6:14","memberName":"length","nodeType":"MemberAccess","src":"2126:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2106:19:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_InboundPacket_$2010_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct InboundPacket memory[] memory)"},"typeName":{"baseType":{"id":2088,"nodeType":"UserDefinedTypeName","pathNode":{"id":2087,"name":"InboundPacket","nameLocations":["2110:13:14"],"nodeType":"IdentifierPath","referencedDeclaration":2010,"src":"2110:13:14"},"referencedDeclaration":2010,"src":"2110:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_storage_ptr","typeString":"struct InboundPacket"}},"id":2089,"nodeType":"ArrayTypeName","src":"2110:15:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_storage_$dyn_storage_ptr","typeString":"struct InboundPacket[]"}}},"id":2093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2106:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_memory_ptr_$dyn_memory_ptr","typeString":"struct InboundPacket memory[] memory"}},"src":"2096:46:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_memory_ptr_$dyn_memory_ptr","typeString":"struct InboundPacket memory[] memory"}},"id":2095,"nodeType":"ExpressionStatement","src":"2096:46:14"},{"body":{"id":2131,"nodeType":"Block","src":"2198:263:14","statements":[{"assignments":[2108],"declarations":[{"constant":false,"id":2108,"mutability":"mutable","name":"packet","nameLocation":"2227:6:14","nodeType":"VariableDeclaration","scope":2131,"src":"2212:21:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2107,"name":"bytes","nodeType":"ElementaryTypeName","src":"2212:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2112,"initialValue":{"baseExpression":{"id":2109,"name":"_packets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2076,"src":"2236:8:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":2111,"indexExpression":{"id":2110,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2097,"src":"2245:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2236:11:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"2212:35:14"},{"expression":{"id":2120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2113,"name":"packets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2261:7:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_memory_ptr_$dyn_memory_ptr","typeString":"struct InboundPacket memory[] memory"}},"id":2115,"indexExpression":{"id":2114,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2097,"src":"2269:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2261:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_memory_ptr","typeString":"struct InboundPacket memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2118,"name":"packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2108,"src":"2295:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":2116,"name":"PacketDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2135,"src":"2274:13:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PacketDecoder_$2135_$","typeString":"type(library PacketDecoder)"}},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:14","memberName":"decode","nodeType":"MemberAccess","referencedDeclaration":2072,"src":"2274:20:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_struct$_InboundPacket_$2010_memory_ptr_$","typeString":"function (bytes calldata) pure returns (struct InboundPacket memory)"}},"id":2119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2274:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_memory_ptr","typeString":"struct InboundPacket memory"}},"src":"2261:41:14","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_memory_ptr","typeString":"struct InboundPacket memory"}},"id":2121,"nodeType":"ExpressionStatement","src":"2261:41:14"},{"expression":{"id":2129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":2122,"name":"packets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"2412:7:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_memory_ptr_$dyn_memory_ptr","typeString":"struct InboundPacket memory[] memory"}},"id":2124,"indexExpression":{"id":2123,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2097,"src":"2420:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2412:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_memory_ptr","typeString":"struct InboundPacket memory"}},"id":2125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2423:5:14","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2003,"src":"2412:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2126,"name":"_packetMsgValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"2431:16:14","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":2128,"indexExpression":{"id":2127,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2097,"src":"2448:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2431:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2412:38:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2130,"nodeType":"ExpressionStatement","src":"2412:38:14"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2100,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2097,"src":"2172:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":2101,"name":"_packets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2076,"src":"2176:8:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2185:6:14","memberName":"length","nodeType":"MemberAccess","src":"2176:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2172:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2132,"initializationExpression":{"assignments":[2097],"declarations":[{"constant":false,"id":2097,"mutability":"mutable","name":"i","nameLocation":"2165:1:14","nodeType":"VariableDeclaration","scope":2132,"src":"2157:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2096,"name":"uint256","nodeType":"ElementaryTypeName","src":"2157:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2099,"initialValue":{"hexValue":"30","id":2098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2169:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2157:13:14"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":2105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2193:3:14","subExpression":{"id":2104,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2097,"src":"2193:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2106,"nodeType":"ExpressionStatement","src":"2193:3:14"},"nodeType":"ForStatement","src":"2152:309:14"}]},"documentation":{"id":2073,"nodeType":"StructuredDocumentation","src":"1578:348:14","text":" @dev Decode multiple inbound packets from the given packet data and associated message values.\n @param _packets An array of packet data to decode.\n @param _packetMsgValues An array of associated message values for each packet.\n @return packets An array of InboundPacket structs representing the decoded packets."},"id":2134,"implemented":true,"kind":"function","modifiers":[],"name":"decode","nameLocation":"1940:6:14","nodeType":"FunctionDefinition","parameters":{"id":2080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2076,"mutability":"mutable","name":"_packets","nameLocation":"1973:8:14","nodeType":"VariableDeclaration","scope":2134,"src":"1956:25:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2074,"name":"bytes","nodeType":"ElementaryTypeName","src":"1956:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2075,"nodeType":"ArrayTypeName","src":"1956:7:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":2079,"mutability":"mutable","name":"_packetMsgValues","nameLocation":"2008:16:14","nodeType":"VariableDeclaration","scope":2134,"src":"1991:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2077,"name":"uint256","nodeType":"ElementaryTypeName","src":"1991:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2078,"nodeType":"ArrayTypeName","src":"1991:9:14","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1946:84:14"},"returnParameters":{"id":2085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2084,"mutability":"mutable","name":"packets","nameLocation":"2077:7:14","nodeType":"VariableDeclaration","scope":2134,"src":"2054:30:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_memory_ptr_$dyn_memory_ptr","typeString":"struct InboundPacket[]"},"typeName":{"baseType":{"id":2082,"nodeType":"UserDefinedTypeName","pathNode":{"id":2081,"name":"InboundPacket","nameLocations":["2054:13:14"],"nodeType":"IdentifierPath","referencedDeclaration":2010,"src":"2054:13:14"},"referencedDeclaration":2010,"src":"2054:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_InboundPacket_$2010_storage_ptr","typeString":"struct InboundPacket"}},"id":2083,"nodeType":"ArrayTypeName","src":"2054:15:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_InboundPacket_$2010_storage_$dyn_storage_ptr","typeString":"struct InboundPacket[]"}},"visibility":"internal"}],"src":"2053:32:14"},"scope":2135,"src":"1931:536:14","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2136,"src":"942:1527:14","usedErrors":[],"usedEvents":[]}],"src":"33:2437:14"},"id":14},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","exportedSymbols":{"ILayerZeroEndpointV2":[2338],"IMessageLibManager":[2674],"IMessagingChannel":[2810],"IMessagingComposer":[2896],"IMessagingContext":[2911],"MessagingFee":[2169],"MessagingParams":[2156],"MessagingReceipt":[2164],"Origin":[2176]},"id":2339,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2137,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:15"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol","file":"./IMessageLibManager.sol","id":2139,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2339,"sourceUnit":2675,"src":"59:62:15","symbolAliases":[{"foreign":{"id":2138,"name":"IMessageLibManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2674,"src":"68:18:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol","file":"./IMessagingComposer.sol","id":2141,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2339,"sourceUnit":2897,"src":"122:62:15","symbolAliases":[{"foreign":{"id":2140,"name":"IMessagingComposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"131:18:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol","file":"./IMessagingChannel.sol","id":2143,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2339,"sourceUnit":2811,"src":"185:60:15","symbolAliases":[{"foreign":{"id":2142,"name":"IMessagingChannel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2810,"src":"194:17:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol","file":"./IMessagingContext.sol","id":2145,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2339,"sourceUnit":2912,"src":"246:60:15","symbolAliases":[{"foreign":{"id":2144,"name":"IMessagingContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"255:17:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"canonicalName":"MessagingParams","id":2156,"members":[{"constant":false,"id":2147,"mutability":"mutable","name":"dstEid","nameLocation":"344:6:15","nodeType":"VariableDeclaration","scope":2156,"src":"337:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2146,"name":"uint32","nodeType":"ElementaryTypeName","src":"337:6:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2149,"mutability":"mutable","name":"receiver","nameLocation":"364:8:15","nodeType":"VariableDeclaration","scope":2156,"src":"356:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"356:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2151,"mutability":"mutable","name":"message","nameLocation":"384:7:15","nodeType":"VariableDeclaration","scope":2156,"src":"378:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2150,"name":"bytes","nodeType":"ElementaryTypeName","src":"378:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2153,"mutability":"mutable","name":"options","nameLocation":"403:7:15","nodeType":"VariableDeclaration","scope":2156,"src":"397:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2152,"name":"bytes","nodeType":"ElementaryTypeName","src":"397:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2155,"mutability":"mutable","name":"payInLzToken","nameLocation":"421:12:15","nodeType":"VariableDeclaration","scope":2156,"src":"416:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2154,"name":"bool","nodeType":"ElementaryTypeName","src":"416:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"MessagingParams","nameLocation":"315:15:15","nodeType":"StructDefinition","scope":2339,"src":"308:128:15","visibility":"public"},{"canonicalName":"MessagingReceipt","id":2164,"members":[{"constant":false,"id":2158,"mutability":"mutable","name":"guid","nameLocation":"476:4:15","nodeType":"VariableDeclaration","scope":2164,"src":"468:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2157,"name":"bytes32","nodeType":"ElementaryTypeName","src":"468:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2160,"mutability":"mutable","name":"nonce","nameLocation":"493:5:15","nodeType":"VariableDeclaration","scope":2164,"src":"486:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2159,"name":"uint64","nodeType":"ElementaryTypeName","src":"486:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2163,"mutability":"mutable","name":"fee","nameLocation":"517:3:15","nodeType":"VariableDeclaration","scope":2164,"src":"504:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_storage_ptr","typeString":"struct MessagingFee"},"typeName":{"id":2162,"nodeType":"UserDefinedTypeName","pathNode":{"id":2161,"name":"MessagingFee","nameLocations":["504:12:15"],"nodeType":"IdentifierPath","referencedDeclaration":2169,"src":"504:12:15"},"referencedDeclaration":2169,"src":"504:12:15","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"}],"name":"MessagingReceipt","nameLocation":"445:16:15","nodeType":"StructDefinition","scope":2339,"src":"438:85:15","visibility":"public"},{"canonicalName":"MessagingFee","id":2169,"members":[{"constant":false,"id":2166,"mutability":"mutable","name":"nativeFee","nameLocation":"559:9:15","nodeType":"VariableDeclaration","scope":2169,"src":"551:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2165,"name":"uint256","nodeType":"ElementaryTypeName","src":"551:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2168,"mutability":"mutable","name":"lzTokenFee","nameLocation":"582:10:15","nodeType":"VariableDeclaration","scope":2169,"src":"574:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2167,"name":"uint256","nodeType":"ElementaryTypeName","src":"574:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"MessagingFee","nameLocation":"532:12:15","nodeType":"StructDefinition","scope":2339,"src":"525:70:15","visibility":"public"},{"canonicalName":"Origin","id":2176,"members":[{"constant":false,"id":2171,"mutability":"mutable","name":"srcEid","nameLocation":"624:6:15","nodeType":"VariableDeclaration","scope":2176,"src":"617:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2170,"name":"uint32","nodeType":"ElementaryTypeName","src":"617:6:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2173,"mutability":"mutable","name":"sender","nameLocation":"644:6:15","nodeType":"VariableDeclaration","scope":2176,"src":"636:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"636:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2175,"mutability":"mutable","name":"nonce","nameLocation":"663:5:15","nodeType":"VariableDeclaration","scope":2176,"src":"656:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2174,"name":"uint64","nodeType":"ElementaryTypeName","src":"656:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Origin","nameLocation":"604:6:15","nodeType":"StructDefinition","scope":2339,"src":"597:74:15","visibility":"public"},{"abstract":false,"baseContracts":[{"baseName":{"id":2177,"name":"IMessageLibManager","nameLocations":["707:18:15"],"nodeType":"IdentifierPath","referencedDeclaration":2674,"src":"707:18:15"},"id":2178,"nodeType":"InheritanceSpecifier","src":"707:18:15"},{"baseName":{"id":2179,"name":"IMessagingComposer","nameLocations":["727:18:15"],"nodeType":"IdentifierPath","referencedDeclaration":2896,"src":"727:18:15"},"id":2180,"nodeType":"InheritanceSpecifier","src":"727:18:15"},{"baseName":{"id":2181,"name":"IMessagingChannel","nameLocations":["747:17:15"],"nodeType":"IdentifierPath","referencedDeclaration":2810,"src":"747:17:15"},"id":2182,"nodeType":"InheritanceSpecifier","src":"747:17:15"},{"baseName":{"id":2183,"name":"IMessagingContext","nameLocations":["766:17:15"],"nodeType":"IdentifierPath","referencedDeclaration":2911,"src":"766:17:15"},"id":2184,"nodeType":"InheritanceSpecifier","src":"766:17:15"}],"canonicalName":"ILayerZeroEndpointV2","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2338,"linearizedBaseContracts":[2338,2911,2810,2896,2674],"name":"ILayerZeroEndpointV2","nameLocation":"683:20:15","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f","id":2192,"name":"PacketSent","nameLocation":"796:10:15","nodeType":"EventDefinition","parameters":{"id":2191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2186,"indexed":false,"mutability":"mutable","name":"encodedPayload","nameLocation":"813:14:15","nodeType":"VariableDeclaration","scope":2192,"src":"807:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2185,"name":"bytes","nodeType":"ElementaryTypeName","src":"807:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2188,"indexed":false,"mutability":"mutable","name":"options","nameLocation":"835:7:15","nodeType":"VariableDeclaration","scope":2192,"src":"829:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2187,"name":"bytes","nodeType":"ElementaryTypeName","src":"829:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2190,"indexed":false,"mutability":"mutable","name":"sendLibrary","nameLocation":"852:11:15","nodeType":"VariableDeclaration","scope":2192,"src":"844:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2189,"name":"address","nodeType":"ElementaryTypeName","src":"844:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"806:58:15"},"src":"790:75:15"},{"anonymous":false,"eventSelector":"0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b4","id":2201,"name":"PacketVerified","nameLocation":"877:14:15","nodeType":"EventDefinition","parameters":{"id":2200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2195,"indexed":false,"mutability":"mutable","name":"origin","nameLocation":"899:6:15","nodeType":"VariableDeclaration","scope":2201,"src":"892:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_memory_ptr","typeString":"struct Origin"},"typeName":{"id":2194,"nodeType":"UserDefinedTypeName","pathNode":{"id":2193,"name":"Origin","nameLocations":["892:6:15"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"892:6:15"},"referencedDeclaration":2176,"src":"892:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2197,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"915:8:15","nodeType":"VariableDeclaration","scope":2201,"src":"907:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2196,"name":"address","nodeType":"ElementaryTypeName","src":"907:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2199,"indexed":false,"mutability":"mutable","name":"payloadHash","nameLocation":"933:11:15","nodeType":"VariableDeclaration","scope":2201,"src":"925:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"925:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"891:54:15"},"src":"871:75:15"},{"anonymous":false,"eventSelector":"3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca04","id":2208,"name":"PacketDelivered","nameLocation":"958:15:15","nodeType":"EventDefinition","parameters":{"id":2207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2204,"indexed":false,"mutability":"mutable","name":"origin","nameLocation":"981:6:15","nodeType":"VariableDeclaration","scope":2208,"src":"974:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_memory_ptr","typeString":"struct Origin"},"typeName":{"id":2203,"nodeType":"UserDefinedTypeName","pathNode":{"id":2202,"name":"Origin","nameLocations":["974:6:15"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"974:6:15"},"referencedDeclaration":2176,"src":"974:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2206,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"997:8:15","nodeType":"VariableDeclaration","scope":2208,"src":"989:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2205,"name":"address","nodeType":"ElementaryTypeName","src":"989:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"973:33:15"},"src":"952:55:15"},{"anonymous":false,"eventSelector":"7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c","id":2229,"name":"LzReceiveAlert","nameLocation":"1019:14:15","nodeType":"EventDefinition","parameters":{"id":2228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2210,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"1059:8:15","nodeType":"VariableDeclaration","scope":2229,"src":"1043:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2209,"name":"address","nodeType":"ElementaryTypeName","src":"1043:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2212,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"1093:8:15","nodeType":"VariableDeclaration","scope":2229,"src":"1077:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2211,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2215,"indexed":false,"mutability":"mutable","name":"origin","nameLocation":"1118:6:15","nodeType":"VariableDeclaration","scope":2229,"src":"1111:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_memory_ptr","typeString":"struct Origin"},"typeName":{"id":2214,"nodeType":"UserDefinedTypeName","pathNode":{"id":2213,"name":"Origin","nameLocations":["1111:6:15"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"1111:6:15"},"referencedDeclaration":2176,"src":"1111:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2217,"indexed":false,"mutability":"mutable","name":"guid","nameLocation":"1142:4:15","nodeType":"VariableDeclaration","scope":2229,"src":"1134:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1134:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2219,"indexed":false,"mutability":"mutable","name":"gas","nameLocation":"1164:3:15","nodeType":"VariableDeclaration","scope":2229,"src":"1156:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2218,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2221,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1185:5:15","nodeType":"VariableDeclaration","scope":2229,"src":"1177:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2220,"name":"uint256","nodeType":"ElementaryTypeName","src":"1177:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2223,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"1206:7:15","nodeType":"VariableDeclaration","scope":2229,"src":"1200:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2222,"name":"bytes","nodeType":"ElementaryTypeName","src":"1200:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2225,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"1229:9:15","nodeType":"VariableDeclaration","scope":2229,"src":"1223:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2224,"name":"bytes","nodeType":"ElementaryTypeName","src":"1223:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2227,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"1254:6:15","nodeType":"VariableDeclaration","scope":2229,"src":"1248:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2226,"name":"bytes","nodeType":"ElementaryTypeName","src":"1248:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1033:233:15"},"src":"1013:254:15"},{"anonymous":false,"eventSelector":"d476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396","id":2233,"name":"LzTokenSet","nameLocation":"1279:10:15","nodeType":"EventDefinition","parameters":{"id":2232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2231,"indexed":false,"mutability":"mutable","name":"token","nameLocation":"1298:5:15","nodeType":"VariableDeclaration","scope":2233,"src":"1290:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2230,"name":"address","nodeType":"ElementaryTypeName","src":"1290:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1289:15:15"},"src":"1273:32:15"},{"anonymous":false,"eventSelector":"6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d7983981","id":2239,"name":"DelegateSet","nameLocation":"1317:11:15","nodeType":"EventDefinition","parameters":{"id":2238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2235,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"1337:6:15","nodeType":"VariableDeclaration","scope":2239,"src":"1329:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2234,"name":"address","nodeType":"ElementaryTypeName","src":"1329:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2237,"indexed":false,"mutability":"mutable","name":"delegate","nameLocation":"1353:8:15","nodeType":"VariableDeclaration","scope":2239,"src":"1345:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2236,"name":"address","nodeType":"ElementaryTypeName","src":"1345:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1328:34:15"},"src":"1311:52:15"},{"functionSelector":"ddc28c58","id":2250,"implemented":false,"kind":"function","modifiers":[],"name":"quote","nameLocation":"1378:5:15","nodeType":"FunctionDefinition","parameters":{"id":2245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2242,"mutability":"mutable","name":"_params","nameLocation":"1409:7:15","nodeType":"VariableDeclaration","scope":2250,"src":"1384:32:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$2156_calldata_ptr","typeString":"struct MessagingParams"},"typeName":{"id":2241,"nodeType":"UserDefinedTypeName","pathNode":{"id":2240,"name":"MessagingParams","nameLocations":["1384:15:15"],"nodeType":"IdentifierPath","referencedDeclaration":2156,"src":"1384:15:15"},"referencedDeclaration":2156,"src":"1384:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$2156_storage_ptr","typeString":"struct MessagingParams"}},"visibility":"internal"},{"constant":false,"id":2244,"mutability":"mutable","name":"_sender","nameLocation":"1426:7:15","nodeType":"VariableDeclaration","scope":2250,"src":"1418:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2243,"name":"address","nodeType":"ElementaryTypeName","src":"1418:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1383:51:15"},"returnParameters":{"id":2249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2250,"src":"1458:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":2247,"nodeType":"UserDefinedTypeName","pathNode":{"id":2246,"name":"MessagingFee","nameLocations":["1458:12:15"],"nodeType":"IdentifierPath","referencedDeclaration":2169,"src":"1458:12:15"},"referencedDeclaration":2169,"src":"1458:12:15","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"}],"src":"1457:21:15"},"scope":2338,"src":"1369:110:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2637a450","id":2261,"implemented":false,"kind":"function","modifiers":[],"name":"send","nameLocation":"1494:4:15","nodeType":"FunctionDefinition","parameters":{"id":2256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2253,"mutability":"mutable","name":"_params","nameLocation":"1533:7:15","nodeType":"VariableDeclaration","scope":2261,"src":"1508:32:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$2156_calldata_ptr","typeString":"struct MessagingParams"},"typeName":{"id":2252,"nodeType":"UserDefinedTypeName","pathNode":{"id":2251,"name":"MessagingParams","nameLocations":["1508:15:15"],"nodeType":"IdentifierPath","referencedDeclaration":2156,"src":"1508:15:15"},"referencedDeclaration":2156,"src":"1508:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingParams_$2156_storage_ptr","typeString":"struct MessagingParams"}},"visibility":"internal"},{"constant":false,"id":2255,"mutability":"mutable","name":"_refundAddress","nameLocation":"1558:14:15","nodeType":"VariableDeclaration","scope":2261,"src":"1550:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2254,"name":"address","nodeType":"ElementaryTypeName","src":"1550:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1498:80:15"},"returnParameters":{"id":2260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2261,"src":"1605:23:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_memory_ptr","typeString":"struct MessagingReceipt"},"typeName":{"id":2258,"nodeType":"UserDefinedTypeName","pathNode":{"id":2257,"name":"MessagingReceipt","nameLocations":["1605:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":2164,"src":"1605:16:15"},"referencedDeclaration":2164,"src":"1605:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_storage_ptr","typeString":"struct MessagingReceipt"}},"visibility":"internal"}],"src":"1604:25:15"},"scope":2338,"src":"1485:145:15","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"a825d747","id":2271,"implemented":false,"kind":"function","modifiers":[],"name":"verify","nameLocation":"1645:6:15","nodeType":"FunctionDefinition","parameters":{"id":2269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2264,"mutability":"mutable","name":"_origin","nameLocation":"1668:7:15","nodeType":"VariableDeclaration","scope":2271,"src":"1652:23:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2263,"nodeType":"UserDefinedTypeName","pathNode":{"id":2262,"name":"Origin","nameLocations":["1652:6:15"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"1652:6:15"},"referencedDeclaration":2176,"src":"1652:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2266,"mutability":"mutable","name":"_receiver","nameLocation":"1685:9:15","nodeType":"VariableDeclaration","scope":2271,"src":"1677:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2265,"name":"address","nodeType":"ElementaryTypeName","src":"1677:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2268,"mutability":"mutable","name":"_payloadHash","nameLocation":"1704:12:15","nodeType":"VariableDeclaration","scope":2271,"src":"1696:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1696:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1651:66:15"},"returnParameters":{"id":2270,"nodeType":"ParameterList","parameters":[],"src":"1726:0:15"},"scope":2338,"src":"1636:91:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c9a54a99","id":2281,"implemented":false,"kind":"function","modifiers":[],"name":"verifiable","nameLocation":"1742:10:15","nodeType":"FunctionDefinition","parameters":{"id":2277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2274,"mutability":"mutable","name":"_origin","nameLocation":"1769:7:15","nodeType":"VariableDeclaration","scope":2281,"src":"1753:23:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2273,"nodeType":"UserDefinedTypeName","pathNode":{"id":2272,"name":"Origin","nameLocations":["1753:6:15"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"1753:6:15"},"referencedDeclaration":2176,"src":"1753:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2276,"mutability":"mutable","name":"_receiver","nameLocation":"1786:9:15","nodeType":"VariableDeclaration","scope":2281,"src":"1778:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2275,"name":"address","nodeType":"ElementaryTypeName","src":"1778:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1752:44:15"},"returnParameters":{"id":2280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2281,"src":"1820:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2278,"name":"bool","nodeType":"ElementaryTypeName","src":"1820:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1819:6:15"},"scope":2338,"src":"1733:93:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"861e1ca5","id":2291,"implemented":false,"kind":"function","modifiers":[],"name":"initializable","nameLocation":"1841:13:15","nodeType":"FunctionDefinition","parameters":{"id":2287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2284,"mutability":"mutable","name":"_origin","nameLocation":"1871:7:15","nodeType":"VariableDeclaration","scope":2291,"src":"1855:23:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2283,"nodeType":"UserDefinedTypeName","pathNode":{"id":2282,"name":"Origin","nameLocations":["1855:6:15"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"1855:6:15"},"referencedDeclaration":2176,"src":"1855:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2286,"mutability":"mutable","name":"_receiver","nameLocation":"1888:9:15","nodeType":"VariableDeclaration","scope":2291,"src":"1880:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2285,"name":"address","nodeType":"ElementaryTypeName","src":"1880:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1854:44:15"},"returnParameters":{"id":2290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2291,"src":"1922:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2288,"name":"bool","nodeType":"ElementaryTypeName","src":"1922:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1921:6:15"},"scope":2338,"src":"1832:96:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0c0c389e","id":2305,"implemented":false,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"1943:9:15","nodeType":"FunctionDefinition","parameters":{"id":2303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2294,"mutability":"mutable","name":"_origin","nameLocation":"1978:7:15","nodeType":"VariableDeclaration","scope":2305,"src":"1962:23:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2293,"nodeType":"UserDefinedTypeName","pathNode":{"id":2292,"name":"Origin","nameLocations":["1962:6:15"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"1962:6:15"},"referencedDeclaration":2176,"src":"1962:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2296,"mutability":"mutable","name":"_receiver","nameLocation":"2003:9:15","nodeType":"VariableDeclaration","scope":2305,"src":"1995:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2295,"name":"address","nodeType":"ElementaryTypeName","src":"1995:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2298,"mutability":"mutable","name":"_guid","nameLocation":"2030:5:15","nodeType":"VariableDeclaration","scope":2305,"src":"2022:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2022:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2300,"mutability":"mutable","name":"_message","nameLocation":"2060:8:15","nodeType":"VariableDeclaration","scope":2305,"src":"2045:23:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2299,"name":"bytes","nodeType":"ElementaryTypeName","src":"2045:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2302,"mutability":"mutable","name":"_extraData","nameLocation":"2093:10:15","nodeType":"VariableDeclaration","scope":2305,"src":"2078:25:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2301,"name":"bytes","nodeType":"ElementaryTypeName","src":"2078:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1952:157:15"},"returnParameters":{"id":2304,"nodeType":"ParameterList","parameters":[],"src":"2126:0:15"},"scope":2338,"src":"1934:193:15","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"2a56c1b0","id":2317,"implemented":false,"kind":"function","modifiers":[],"name":"clear","nameLocation":"2269:5:15","nodeType":"FunctionDefinition","parameters":{"id":2315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2307,"mutability":"mutable","name":"_oapp","nameLocation":"2283:5:15","nodeType":"VariableDeclaration","scope":2317,"src":"2275:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2306,"name":"address","nodeType":"ElementaryTypeName","src":"2275:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2310,"mutability":"mutable","name":"_origin","nameLocation":"2306:7:15","nodeType":"VariableDeclaration","scope":2317,"src":"2290:23:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2309,"nodeType":"UserDefinedTypeName","pathNode":{"id":2308,"name":"Origin","nameLocations":["2290:6:15"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"2290:6:15"},"referencedDeclaration":2176,"src":"2290:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2312,"mutability":"mutable","name":"_guid","nameLocation":"2323:5:15","nodeType":"VariableDeclaration","scope":2317,"src":"2315:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2315:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2314,"mutability":"mutable","name":"_message","nameLocation":"2345:8:15","nodeType":"VariableDeclaration","scope":2317,"src":"2330:23:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2313,"name":"bytes","nodeType":"ElementaryTypeName","src":"2330:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2274:80:15"},"returnParameters":{"id":2316,"nodeType":"ParameterList","parameters":[],"src":"2363:0:15"},"scope":2338,"src":"2260:104:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c28e0eed","id":2322,"implemented":false,"kind":"function","modifiers":[],"name":"setLzToken","nameLocation":"2379:10:15","nodeType":"FunctionDefinition","parameters":{"id":2320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2319,"mutability":"mutable","name":"_lzToken","nameLocation":"2398:8:15","nodeType":"VariableDeclaration","scope":2322,"src":"2390:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2318,"name":"address","nodeType":"ElementaryTypeName","src":"2390:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2389:18:15"},"returnParameters":{"id":2321,"nodeType":"ParameterList","parameters":[],"src":"2416:0:15"},"scope":2338,"src":"2370:47:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e4fe1d94","id":2327,"implemented":false,"kind":"function","modifiers":[],"name":"lzToken","nameLocation":"2432:7:15","nodeType":"FunctionDefinition","parameters":{"id":2323,"nodeType":"ParameterList","parameters":[],"src":"2439:2:15"},"returnParameters":{"id":2326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2327,"src":"2465:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2324,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:9:15"},"scope":2338,"src":"2423:51:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e1758bd8","id":2332,"implemented":false,"kind":"function","modifiers":[],"name":"nativeToken","nameLocation":"2489:11:15","nodeType":"FunctionDefinition","parameters":{"id":2328,"nodeType":"ParameterList","parameters":[],"src":"2500:2:15"},"returnParameters":{"id":2331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2330,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2332,"src":"2526:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2329,"name":"address","nodeType":"ElementaryTypeName","src":"2526:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2525:9:15"},"scope":2338,"src":"2480:55:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ca5eb5e1","id":2337,"implemented":false,"kind":"function","modifiers":[],"name":"setDelegate","nameLocation":"2550:11:15","nodeType":"FunctionDefinition","parameters":{"id":2335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2334,"mutability":"mutable","name":"_delegate","nameLocation":"2570:9:15","nodeType":"VariableDeclaration","scope":2337,"src":"2562:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2333,"name":"address","nodeType":"ElementaryTypeName","src":"2562:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2561:19:15"},"returnParameters":{"id":2336,"nodeType":"ParameterList","parameters":[],"src":"2589:0:15"},"scope":2338,"src":"2541:49:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":2339,"src":"673:1919:15","usedErrors":[],"usedEvents":[2192,2201,2208,2229,2233,2239,2447,2453,2459,2467,2475,2483,2493,2686,2698,2710,2824,2834,2856]}],"src":"33:2560:15"},"id":15},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol","exportedSymbols":{"ILayerZeroReceiver":[2374],"Origin":[2176]},"id":2375,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2340,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:16"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","file":"./ILayerZeroEndpointV2.sol","id":2342,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2375,"sourceUnit":2339,"src":"59:52:16","symbolAliases":[{"foreign":{"id":2341,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"68:6:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2374,"linearizedBaseContracts":[2374],"name":"ILayerZeroReceiver","nameLocation":"123:18:16","nodeType":"ContractDefinition","nodes":[{"functionSelector":"ff7bd03d","id":2350,"implemented":false,"kind":"function","modifiers":[],"name":"allowInitializePath","nameLocation":"157:19:16","nodeType":"FunctionDefinition","parameters":{"id":2346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2345,"mutability":"mutable","name":"_origin","nameLocation":"193:7:16","nodeType":"VariableDeclaration","scope":2350,"src":"177:23:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2344,"nodeType":"UserDefinedTypeName","pathNode":{"id":2343,"name":"Origin","nameLocations":["177:6:16"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"177:6:16"},"referencedDeclaration":2176,"src":"177:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"}],"src":"176:25:16"},"returnParameters":{"id":2349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2350,"src":"225:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2347,"name":"bool","nodeType":"ElementaryTypeName","src":"225:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"224:6:16"},"scope":2374,"src":"148:83:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7d25a05e","id":2359,"implemented":false,"kind":"function","modifiers":[],"name":"nextNonce","nameLocation":"246:9:16","nodeType":"FunctionDefinition","parameters":{"id":2355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2352,"mutability":"mutable","name":"_eid","nameLocation":"263:4:16","nodeType":"VariableDeclaration","scope":2359,"src":"256:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2351,"name":"uint32","nodeType":"ElementaryTypeName","src":"256:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2354,"mutability":"mutable","name":"_sender","nameLocation":"277:7:16","nodeType":"VariableDeclaration","scope":2359,"src":"269:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"269:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"255:30:16"},"returnParameters":{"id":2358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2359,"src":"309:6:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2356,"name":"uint64","nodeType":"ElementaryTypeName","src":"309:6:16","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"308:8:16"},"scope":2374,"src":"237:80:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"13137d65","id":2373,"implemented":false,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"332:9:16","nodeType":"FunctionDefinition","parameters":{"id":2371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2362,"mutability":"mutable","name":"_origin","nameLocation":"367:7:16","nodeType":"VariableDeclaration","scope":2373,"src":"351:23:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":2361,"nodeType":"UserDefinedTypeName","pathNode":{"id":2360,"name":"Origin","nameLocations":["351:6:16"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"351:6:16"},"referencedDeclaration":2176,"src":"351:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":2364,"mutability":"mutable","name":"_guid","nameLocation":"392:5:16","nodeType":"VariableDeclaration","scope":2373,"src":"384:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2366,"mutability":"mutable","name":"_message","nameLocation":"422:8:16","nodeType":"VariableDeclaration","scope":2373,"src":"407:23:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2365,"name":"bytes","nodeType":"ElementaryTypeName","src":"407:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2368,"mutability":"mutable","name":"_executor","nameLocation":"448:9:16","nodeType":"VariableDeclaration","scope":2373,"src":"440:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2367,"name":"address","nodeType":"ElementaryTypeName","src":"440:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2370,"mutability":"mutable","name":"_extraData","nameLocation":"482:10:16","nodeType":"VariableDeclaration","scope":2373,"src":"467:25:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2369,"name":"bytes","nodeType":"ElementaryTypeName","src":"467:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"341:157:16"},"returnParameters":{"id":2372,"nodeType":"ParameterList","parameters":[],"src":"515:0:16"},"scope":2374,"src":"323:193:16","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":2375,"src":"113:405:16","usedErrors":[],"usedEvents":[]}],"src":"33:486:16"},"id":16},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol","exportedSymbols":{"IERC165":[7389],"IMessageLib":[2429],"MessageLibType":[2384],"SetConfigParam":[2438]},"id":2430,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2376,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:17"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":2378,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2430,"sourceUnit":7390,"src":"59:82:17","symbolAliases":[{"foreign":{"id":2377,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7389,"src":"68:7:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol","file":"./IMessageLibManager.sol","id":2380,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2430,"sourceUnit":2675,"src":"143:58:17","symbolAliases":[{"foreign":{"id":2379,"name":"SetConfigParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"152:14:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"canonicalName":"MessageLibType","id":2384,"members":[{"id":2381,"name":"Send","nameLocation":"229:4:17","nodeType":"EnumValue","src":"229:4:17"},{"id":2382,"name":"Receive","nameLocation":"239:7:17","nodeType":"EnumValue","src":"239:7:17"},{"id":2383,"name":"SendAndReceive","nameLocation":"252:14:17","nodeType":"EnumValue","src":"252:14:17"}],"name":"MessageLibType","nameLocation":"208:14:17","nodeType":"EnumDefinition","src":"203:65:17"},{"abstract":false,"baseContracts":[{"baseName":{"id":2385,"name":"IERC165","nameLocations":["295:7:17"],"nodeType":"IdentifierPath","referencedDeclaration":7389,"src":"295:7:17"},"id":2386,"nodeType":"InheritanceSpecifier","src":"295:7:17"}],"canonicalName":"IMessageLib","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2429,"linearizedBaseContracts":[2429,7389],"name":"IMessageLib","nameLocation":"280:11:17","nodeType":"ContractDefinition","nodes":[{"functionSelector":"20efd722","id":2395,"implemented":false,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"318:9:17","nodeType":"FunctionDefinition","parameters":{"id":2393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2388,"mutability":"mutable","name":"_oapp","nameLocation":"336:5:17","nodeType":"VariableDeclaration","scope":2395,"src":"328:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2387,"name":"address","nodeType":"ElementaryTypeName","src":"328:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2392,"mutability":"mutable","name":"_config","nameLocation":"369:7:17","nodeType":"VariableDeclaration","scope":2395,"src":"343:33:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SetConfigParam_$2438_calldata_ptr_$dyn_calldata_ptr","typeString":"struct SetConfigParam[]"},"typeName":{"baseType":{"id":2390,"nodeType":"UserDefinedTypeName","pathNode":{"id":2389,"name":"SetConfigParam","nameLocations":["343:14:17"],"nodeType":"IdentifierPath","referencedDeclaration":2438,"src":"343:14:17"},"referencedDeclaration":2438,"src":"343:14:17","typeDescriptions":{"typeIdentifier":"t_struct$_SetConfigParam_$2438_storage_ptr","typeString":"struct SetConfigParam"}},"id":2391,"nodeType":"ArrayTypeName","src":"343:16:17","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SetConfigParam_$2438_storage_$dyn_storage_ptr","typeString":"struct SetConfigParam[]"}},"visibility":"internal"}],"src":"327:50:17"},"returnParameters":{"id":2394,"nodeType":"ParameterList","parameters":[],"src":"386:0:17"},"scope":2429,"src":"309:78:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"9c33abf7","id":2406,"implemented":false,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"402:9:17","nodeType":"FunctionDefinition","parameters":{"id":2402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2397,"mutability":"mutable","name":"_eid","nameLocation":"419:4:17","nodeType":"VariableDeclaration","scope":2406,"src":"412:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2396,"name":"uint32","nodeType":"ElementaryTypeName","src":"412:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2399,"mutability":"mutable","name":"_oapp","nameLocation":"433:5:17","nodeType":"VariableDeclaration","scope":2406,"src":"425:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2398,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2401,"mutability":"mutable","name":"_configType","nameLocation":"447:11:17","nodeType":"VariableDeclaration","scope":2406,"src":"440:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2400,"name":"uint32","nodeType":"ElementaryTypeName","src":"440:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"411:48:17"},"returnParameters":{"id":2405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2404,"mutability":"mutable","name":"config","nameLocation":"496:6:17","nodeType":"VariableDeclaration","scope":2406,"src":"483:19:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2403,"name":"bytes","nodeType":"ElementaryTypeName","src":"483:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"482:21:17"},"scope":2429,"src":"393:111:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6750cd4c","id":2413,"implemented":false,"kind":"function","modifiers":[],"name":"isSupportedEid","nameLocation":"519:14:17","nodeType":"FunctionDefinition","parameters":{"id":2409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2408,"mutability":"mutable","name":"_eid","nameLocation":"541:4:17","nodeType":"VariableDeclaration","scope":2413,"src":"534:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2407,"name":"uint32","nodeType":"ElementaryTypeName","src":"534:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"533:13:17"},"returnParameters":{"id":2412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2411,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2413,"src":"570:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2410,"name":"bool","nodeType":"ElementaryTypeName","src":"570:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"569:6:17"},"scope":2429,"src":"510:66:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"54fd4d50","id":2422,"implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"648:7:17","nodeType":"FunctionDefinition","parameters":{"id":2414,"nodeType":"ParameterList","parameters":[],"src":"655:2:17"},"returnParameters":{"id":2421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2416,"mutability":"mutable","name":"major","nameLocation":"688:5:17","nodeType":"VariableDeclaration","scope":2422,"src":"681:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2415,"name":"uint64","nodeType":"ElementaryTypeName","src":"681:6:17","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2418,"mutability":"mutable","name":"minor","nameLocation":"701:5:17","nodeType":"VariableDeclaration","scope":2422,"src":"695:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2417,"name":"uint8","nodeType":"ElementaryTypeName","src":"695:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2420,"mutability":"mutable","name":"endpointVersion","nameLocation":"714:15:17","nodeType":"VariableDeclaration","scope":2422,"src":"708:21:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2419,"name":"uint8","nodeType":"ElementaryTypeName","src":"708:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"680:50:17"},"scope":2429,"src":"639:92:17","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1881d94d","id":2428,"implemented":false,"kind":"function","modifiers":[],"name":"messageLibType","nameLocation":"746:14:17","nodeType":"FunctionDefinition","parameters":{"id":2423,"nodeType":"ParameterList","parameters":[],"src":"760:2:17"},"returnParameters":{"id":2427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2428,"src":"786:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_MessageLibType_$2384","typeString":"enum MessageLibType"},"typeName":{"id":2425,"nodeType":"UserDefinedTypeName","pathNode":{"id":2424,"name":"MessageLibType","nameLocations":["786:14:17"],"nodeType":"IdentifierPath","referencedDeclaration":2384,"src":"786:14:17"},"referencedDeclaration":2384,"src":"786:14:17","typeDescriptions":{"typeIdentifier":"t_enum$_MessageLibType_$2384","typeString":"enum MessageLibType"}},"visibility":"internal"}],"src":"785:16:17"},"scope":2429,"src":"737:65:17","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2430,"src":"270:534:17","usedErrors":[],"usedEvents":[]}],"src":"33:772:17"},"id":17},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol","exportedSymbols":{"IMessageLibManager":[2674],"SetConfigParam":[2438]},"id":2675,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2431,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:18"},{"canonicalName":"SetConfigParam","id":2438,"members":[{"constant":false,"id":2433,"mutability":"mutable","name":"eid","nameLocation":"94:3:18","nodeType":"VariableDeclaration","scope":2438,"src":"87:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2432,"name":"uint32","nodeType":"ElementaryTypeName","src":"87:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2435,"mutability":"mutable","name":"configType","nameLocation":"110:10:18","nodeType":"VariableDeclaration","scope":2438,"src":"103:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2434,"name":"uint32","nodeType":"ElementaryTypeName","src":"103:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2437,"mutability":"mutable","name":"config","nameLocation":"132:6:18","nodeType":"VariableDeclaration","scope":2438,"src":"126:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2436,"name":"bytes","nodeType":"ElementaryTypeName","src":"126:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"SetConfigParam","nameLocation":"66:14:18","nodeType":"StructDefinition","scope":2675,"src":"59:82:18","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"IMessageLibManager","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2674,"linearizedBaseContracts":[2674],"name":"IMessageLibManager","nameLocation":"153:18:18","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IMessageLibManager.Timeout","id":2443,"members":[{"constant":false,"id":2440,"mutability":"mutable","name":"lib","nameLocation":"211:3:18","nodeType":"VariableDeclaration","scope":2443,"src":"203:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2439,"name":"address","nodeType":"ElementaryTypeName","src":"203:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2442,"mutability":"mutable","name":"expiry","nameLocation":"232:6:18","nodeType":"VariableDeclaration","scope":2443,"src":"224:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2441,"name":"uint256","nodeType":"ElementaryTypeName","src":"224:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timeout","nameLocation":"185:7:18","nodeType":"StructDefinition","scope":2674,"src":"178:67:18","visibility":"public"},{"anonymous":false,"eventSelector":"6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5","id":2447,"name":"LibraryRegistered","nameLocation":"257:17:18","nodeType":"EventDefinition","parameters":{"id":2446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2445,"indexed":false,"mutability":"mutable","name":"newLib","nameLocation":"283:6:18","nodeType":"VariableDeclaration","scope":2447,"src":"275:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2444,"name":"address","nodeType":"ElementaryTypeName","src":"275:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"274:16:18"},"src":"251:40:18"},{"anonymous":false,"eventSelector":"16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f5","id":2453,"name":"DefaultSendLibrarySet","nameLocation":"302:21:18","nodeType":"EventDefinition","parameters":{"id":2452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2449,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"331:3:18","nodeType":"VariableDeclaration","scope":2453,"src":"324:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2448,"name":"uint32","nodeType":"ElementaryTypeName","src":"324:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2451,"indexed":false,"mutability":"mutable","name":"newLib","nameLocation":"344:6:18","nodeType":"VariableDeclaration","scope":2453,"src":"336:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2450,"name":"address","nodeType":"ElementaryTypeName","src":"336:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"323:28:18"},"src":"296:56:18"},{"anonymous":false,"eventSelector":"c16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec","id":2459,"name":"DefaultReceiveLibrarySet","nameLocation":"363:24:18","nodeType":"EventDefinition","parameters":{"id":2458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2455,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"395:3:18","nodeType":"VariableDeclaration","scope":2459,"src":"388:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2454,"name":"uint32","nodeType":"ElementaryTypeName","src":"388:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2457,"indexed":false,"mutability":"mutable","name":"newLib","nameLocation":"408:6:18","nodeType":"VariableDeclaration","scope":2459,"src":"400:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2456,"name":"address","nodeType":"ElementaryTypeName","src":"400:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"387:28:18"},"src":"357:59:18"},{"anonymous":false,"eventSelector":"55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8","id":2467,"name":"DefaultReceiveLibraryTimeoutSet","nameLocation":"427:31:18","nodeType":"EventDefinition","parameters":{"id":2466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2461,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"466:3:18","nodeType":"VariableDeclaration","scope":2467,"src":"459:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2460,"name":"uint32","nodeType":"ElementaryTypeName","src":"459:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2463,"indexed":false,"mutability":"mutable","name":"oldLib","nameLocation":"479:6:18","nodeType":"VariableDeclaration","scope":2467,"src":"471:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2462,"name":"address","nodeType":"ElementaryTypeName","src":"471:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2465,"indexed":false,"mutability":"mutable","name":"expiry","nameLocation":"495:6:18","nodeType":"VariableDeclaration","scope":2467,"src":"487:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2464,"name":"uint256","nodeType":"ElementaryTypeName","src":"487:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"458:44:18"},"src":"421:82:18"},{"anonymous":false,"eventSelector":"4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c","id":2475,"name":"SendLibrarySet","nameLocation":"514:14:18","nodeType":"EventDefinition","parameters":{"id":2474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2469,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"537:6:18","nodeType":"VariableDeclaration","scope":2475,"src":"529:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2468,"name":"address","nodeType":"ElementaryTypeName","src":"529:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2471,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"552:3:18","nodeType":"VariableDeclaration","scope":2475,"src":"545:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2470,"name":"uint32","nodeType":"ElementaryTypeName","src":"545:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2473,"indexed":false,"mutability":"mutable","name":"newLib","nameLocation":"565:6:18","nodeType":"VariableDeclaration","scope":2475,"src":"557:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2472,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"528:44:18"},"src":"508:65:18"},{"anonymous":false,"eventSelector":"cd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c2","id":2483,"name":"ReceiveLibrarySet","nameLocation":"584:17:18","nodeType":"EventDefinition","parameters":{"id":2482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2477,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"610:8:18","nodeType":"VariableDeclaration","scope":2483,"src":"602:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2476,"name":"address","nodeType":"ElementaryTypeName","src":"602:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2479,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"627:3:18","nodeType":"VariableDeclaration","scope":2483,"src":"620:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2478,"name":"uint32","nodeType":"ElementaryTypeName","src":"620:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2481,"indexed":false,"mutability":"mutable","name":"newLib","nameLocation":"640:6:18","nodeType":"VariableDeclaration","scope":2483,"src":"632:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2480,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"601:46:18"},"src":"578:70:18"},{"anonymous":false,"eventSelector":"4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb20928","id":2493,"name":"ReceiveLibraryTimeoutSet","nameLocation":"659:24:18","nodeType":"EventDefinition","parameters":{"id":2492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2485,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"692:8:18","nodeType":"VariableDeclaration","scope":2493,"src":"684:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2484,"name":"address","nodeType":"ElementaryTypeName","src":"684:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2487,"indexed":false,"mutability":"mutable","name":"eid","nameLocation":"709:3:18","nodeType":"VariableDeclaration","scope":2493,"src":"702:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2486,"name":"uint32","nodeType":"ElementaryTypeName","src":"702:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2489,"indexed":false,"mutability":"mutable","name":"oldLib","nameLocation":"722:6:18","nodeType":"VariableDeclaration","scope":2493,"src":"714:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2488,"name":"address","nodeType":"ElementaryTypeName","src":"714:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2491,"indexed":false,"mutability":"mutable","name":"timeout","nameLocation":"738:7:18","nodeType":"VariableDeclaration","scope":2493,"src":"730:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2490,"name":"uint256","nodeType":"ElementaryTypeName","src":"730:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"683:63:18"},"src":"653:94:18"},{"functionSelector":"e8964e81","id":2498,"implemented":false,"kind":"function","modifiers":[],"name":"registerLibrary","nameLocation":"762:15:18","nodeType":"FunctionDefinition","parameters":{"id":2496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2495,"mutability":"mutable","name":"_lib","nameLocation":"786:4:18","nodeType":"VariableDeclaration","scope":2498,"src":"778:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2494,"name":"address","nodeType":"ElementaryTypeName","src":"778:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"777:14:18"},"returnParameters":{"id":2497,"nodeType":"ParameterList","parameters":[],"src":"800:0:18"},"scope":2674,"src":"753:48:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"dc706a62","id":2505,"implemented":false,"kind":"function","modifiers":[],"name":"isRegisteredLibrary","nameLocation":"816:19:18","nodeType":"FunctionDefinition","parameters":{"id":2501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2500,"mutability":"mutable","name":"_lib","nameLocation":"844:4:18","nodeType":"VariableDeclaration","scope":2505,"src":"836:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2499,"name":"address","nodeType":"ElementaryTypeName","src":"836:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"835:14:18"},"returnParameters":{"id":2504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2505,"src":"873:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2502,"name":"bool","nodeType":"ElementaryTypeName","src":"873:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"872:6:18"},"scope":2674,"src":"807:72:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9132e5c3","id":2511,"implemented":false,"kind":"function","modifiers":[],"name":"getRegisteredLibraries","nameLocation":"894:22:18","nodeType":"FunctionDefinition","parameters":{"id":2506,"nodeType":"ParameterList","parameters":[],"src":"916:2:18"},"returnParameters":{"id":2510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2509,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2511,"src":"942:16:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2507,"name":"address","nodeType":"ElementaryTypeName","src":"942:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2508,"nodeType":"ArrayTypeName","src":"942:9:18","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"941:18:18"},"scope":2674,"src":"885:75:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"aafea312","id":2518,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultSendLibrary","nameLocation":"975:21:18","nodeType":"FunctionDefinition","parameters":{"id":2516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2513,"mutability":"mutable","name":"_eid","nameLocation":"1004:4:18","nodeType":"VariableDeclaration","scope":2518,"src":"997:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2512,"name":"uint32","nodeType":"ElementaryTypeName","src":"997:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2515,"mutability":"mutable","name":"_newLib","nameLocation":"1018:7:18","nodeType":"VariableDeclaration","scope":2518,"src":"1010:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2514,"name":"address","nodeType":"ElementaryTypeName","src":"1010:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"996:30:18"},"returnParameters":{"id":2517,"nodeType":"ParameterList","parameters":[],"src":"1035:0:18"},"scope":2674,"src":"966:70:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f64be4c7","id":2525,"implemented":false,"kind":"function","modifiers":[],"name":"defaultSendLibrary","nameLocation":"1051:18:18","nodeType":"FunctionDefinition","parameters":{"id":2521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2520,"mutability":"mutable","name":"_eid","nameLocation":"1077:4:18","nodeType":"VariableDeclaration","scope":2525,"src":"1070:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2519,"name":"uint32","nodeType":"ElementaryTypeName","src":"1070:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1069:13:18"},"returnParameters":{"id":2524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2525,"src":"1106:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2522,"name":"address","nodeType":"ElementaryTypeName","src":"1106:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1105:9:18"},"scope":2674,"src":"1042:73:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a718531b","id":2534,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultReceiveLibrary","nameLocation":"1130:24:18","nodeType":"FunctionDefinition","parameters":{"id":2532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2527,"mutability":"mutable","name":"_eid","nameLocation":"1162:4:18","nodeType":"VariableDeclaration","scope":2534,"src":"1155:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2526,"name":"uint32","nodeType":"ElementaryTypeName","src":"1155:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2529,"mutability":"mutable","name":"_newLib","nameLocation":"1176:7:18","nodeType":"VariableDeclaration","scope":2534,"src":"1168:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2528,"name":"address","nodeType":"ElementaryTypeName","src":"1168:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2531,"mutability":"mutable","name":"_gracePeriod","nameLocation":"1193:12:18","nodeType":"VariableDeclaration","scope":2534,"src":"1185:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1154:52:18"},"returnParameters":{"id":2533,"nodeType":"ParameterList","parameters":[],"src":"1215:0:18"},"scope":2674,"src":"1121:95:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6f50a803","id":2541,"implemented":false,"kind":"function","modifiers":[],"name":"defaultReceiveLibrary","nameLocation":"1231:21:18","nodeType":"FunctionDefinition","parameters":{"id":2537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2536,"mutability":"mutable","name":"_eid","nameLocation":"1260:4:18","nodeType":"VariableDeclaration","scope":2541,"src":"1253:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2535,"name":"uint32","nodeType":"ElementaryTypeName","src":"1253:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1252:13:18"},"returnParameters":{"id":2540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2541,"src":"1289:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2538,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1288:9:18"},"scope":2674,"src":"1222:76:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d4b4ec8f","id":2550,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultReceiveLibraryTimeout","nameLocation":"1313:31:18","nodeType":"FunctionDefinition","parameters":{"id":2548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2543,"mutability":"mutable","name":"_eid","nameLocation":"1352:4:18","nodeType":"VariableDeclaration","scope":2550,"src":"1345:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2542,"name":"uint32","nodeType":"ElementaryTypeName","src":"1345:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2545,"mutability":"mutable","name":"_lib","nameLocation":"1366:4:18","nodeType":"VariableDeclaration","scope":2550,"src":"1358:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2544,"name":"address","nodeType":"ElementaryTypeName","src":"1358:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2547,"mutability":"mutable","name":"_expiry","nameLocation":"1380:7:18","nodeType":"VariableDeclaration","scope":2550,"src":"1372:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2546,"name":"uint256","nodeType":"ElementaryTypeName","src":"1372:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1344:44:18"},"returnParameters":{"id":2549,"nodeType":"ParameterList","parameters":[],"src":"1397:0:18"},"scope":2674,"src":"1304:94:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6e83f5bb","id":2559,"implemented":false,"kind":"function","modifiers":[],"name":"defaultReceiveLibraryTimeout","nameLocation":"1413:28:18","nodeType":"FunctionDefinition","parameters":{"id":2553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2552,"mutability":"mutable","name":"_eid","nameLocation":"1449:4:18","nodeType":"VariableDeclaration","scope":2559,"src":"1442:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2551,"name":"uint32","nodeType":"ElementaryTypeName","src":"1442:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1441:13:18"},"returnParameters":{"id":2558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2555,"mutability":"mutable","name":"lib","nameLocation":"1486:3:18","nodeType":"VariableDeclaration","scope":2559,"src":"1478:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2554,"name":"address","nodeType":"ElementaryTypeName","src":"1478:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2557,"mutability":"mutable","name":"expiry","nameLocation":"1499:6:18","nodeType":"VariableDeclaration","scope":2559,"src":"1491:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2556,"name":"uint256","nodeType":"ElementaryTypeName","src":"1491:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1477:29:18"},"scope":2674,"src":"1404:103:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6750cd4c","id":2566,"implemented":false,"kind":"function","modifiers":[],"name":"isSupportedEid","nameLocation":"1522:14:18","nodeType":"FunctionDefinition","parameters":{"id":2562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2561,"mutability":"mutable","name":"_eid","nameLocation":"1544:4:18","nodeType":"VariableDeclaration","scope":2566,"src":"1537:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2560,"name":"uint32","nodeType":"ElementaryTypeName","src":"1537:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1536:13:18"},"returnParameters":{"id":2565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2566,"src":"1573:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2563,"name":"bool","nodeType":"ElementaryTypeName","src":"1573:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1572:6:18"},"scope":2674,"src":"1513:66:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9d7f9775","id":2577,"implemented":false,"kind":"function","modifiers":[],"name":"isValidReceiveLibrary","nameLocation":"1594:21:18","nodeType":"FunctionDefinition","parameters":{"id":2573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2568,"mutability":"mutable","name":"_receiver","nameLocation":"1624:9:18","nodeType":"VariableDeclaration","scope":2577,"src":"1616:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2567,"name":"address","nodeType":"ElementaryTypeName","src":"1616:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2570,"mutability":"mutable","name":"_eid","nameLocation":"1642:4:18","nodeType":"VariableDeclaration","scope":2577,"src":"1635:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2569,"name":"uint32","nodeType":"ElementaryTypeName","src":"1635:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2572,"mutability":"mutable","name":"_lib","nameLocation":"1656:4:18","nodeType":"VariableDeclaration","scope":2577,"src":"1648:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2571,"name":"address","nodeType":"ElementaryTypeName","src":"1648:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1615:46:18"},"returnParameters":{"id":2576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2575,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2577,"src":"1685:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2574,"name":"bool","nodeType":"ElementaryTypeName","src":"1685:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1684:6:18"},"scope":2674,"src":"1585:106:18","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2578,"nodeType":"StructuredDocumentation","src":"1697:59:18","text":"------------------- OApp interfaces -------------------"},"functionSelector":"9535ff30","id":2587,"implemented":false,"kind":"function","modifiers":[],"name":"setSendLibrary","nameLocation":"1770:14:18","nodeType":"FunctionDefinition","parameters":{"id":2585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2580,"mutability":"mutable","name":"_oapp","nameLocation":"1793:5:18","nodeType":"VariableDeclaration","scope":2587,"src":"1785:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2579,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2582,"mutability":"mutable","name":"_eid","nameLocation":"1807:4:18","nodeType":"VariableDeclaration","scope":2587,"src":"1800:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2581,"name":"uint32","nodeType":"ElementaryTypeName","src":"1800:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2584,"mutability":"mutable","name":"_newLib","nameLocation":"1821:7:18","nodeType":"VariableDeclaration","scope":2587,"src":"1813:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2583,"name":"address","nodeType":"ElementaryTypeName","src":"1813:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1784:45:18"},"returnParameters":{"id":2586,"nodeType":"ParameterList","parameters":[],"src":"1838:0:18"},"scope":2674,"src":"1761:78:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b96a277f","id":2596,"implemented":false,"kind":"function","modifiers":[],"name":"getSendLibrary","nameLocation":"1854:14:18","nodeType":"FunctionDefinition","parameters":{"id":2592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2589,"mutability":"mutable","name":"_sender","nameLocation":"1877:7:18","nodeType":"VariableDeclaration","scope":2596,"src":"1869:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2588,"name":"address","nodeType":"ElementaryTypeName","src":"1869:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2591,"mutability":"mutable","name":"_eid","nameLocation":"1893:4:18","nodeType":"VariableDeclaration","scope":2596,"src":"1886:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2590,"name":"uint32","nodeType":"ElementaryTypeName","src":"1886:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1868:30:18"},"returnParameters":{"id":2595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2594,"mutability":"mutable","name":"lib","nameLocation":"1930:3:18","nodeType":"VariableDeclaration","scope":2596,"src":"1922:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2593,"name":"address","nodeType":"ElementaryTypeName","src":"1922:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1921:13:18"},"scope":2674,"src":"1845:90:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"dc93c8a2","id":2605,"implemented":false,"kind":"function","modifiers":[],"name":"isDefaultSendLibrary","nameLocation":"1950:20:18","nodeType":"FunctionDefinition","parameters":{"id":2601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2598,"mutability":"mutable","name":"_sender","nameLocation":"1979:7:18","nodeType":"VariableDeclaration","scope":2605,"src":"1971:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2597,"name":"address","nodeType":"ElementaryTypeName","src":"1971:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2600,"mutability":"mutable","name":"_eid","nameLocation":"1995:4:18","nodeType":"VariableDeclaration","scope":2605,"src":"1988:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2599,"name":"uint32","nodeType":"ElementaryTypeName","src":"1988:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1970:30:18"},"returnParameters":{"id":2604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2605,"src":"2024:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2602,"name":"bool","nodeType":"ElementaryTypeName","src":"2024:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2023:6:18"},"scope":2674,"src":"1941:89:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6a14d715","id":2616,"implemented":false,"kind":"function","modifiers":[],"name":"setReceiveLibrary","nameLocation":"2045:17:18","nodeType":"FunctionDefinition","parameters":{"id":2614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2607,"mutability":"mutable","name":"_oapp","nameLocation":"2071:5:18","nodeType":"VariableDeclaration","scope":2616,"src":"2063:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2606,"name":"address","nodeType":"ElementaryTypeName","src":"2063:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2609,"mutability":"mutable","name":"_eid","nameLocation":"2085:4:18","nodeType":"VariableDeclaration","scope":2616,"src":"2078:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2608,"name":"uint32","nodeType":"ElementaryTypeName","src":"2078:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2611,"mutability":"mutable","name":"_newLib","nameLocation":"2099:7:18","nodeType":"VariableDeclaration","scope":2616,"src":"2091:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2610,"name":"address","nodeType":"ElementaryTypeName","src":"2091:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2613,"mutability":"mutable","name":"_gracePeriod","nameLocation":"2116:12:18","nodeType":"VariableDeclaration","scope":2616,"src":"2108:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2108:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2062:67:18"},"returnParameters":{"id":2615,"nodeType":"ParameterList","parameters":[],"src":"2138:0:18"},"scope":2674,"src":"2036:103:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"402f8468","id":2627,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveLibrary","nameLocation":"2154:17:18","nodeType":"FunctionDefinition","parameters":{"id":2621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2618,"mutability":"mutable","name":"_receiver","nameLocation":"2180:9:18","nodeType":"VariableDeclaration","scope":2627,"src":"2172:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2617,"name":"address","nodeType":"ElementaryTypeName","src":"2172:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2620,"mutability":"mutable","name":"_eid","nameLocation":"2198:4:18","nodeType":"VariableDeclaration","scope":2627,"src":"2191:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2619,"name":"uint32","nodeType":"ElementaryTypeName","src":"2191:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2171:32:18"},"returnParameters":{"id":2626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2623,"mutability":"mutable","name":"lib","nameLocation":"2235:3:18","nodeType":"VariableDeclaration","scope":2627,"src":"2227:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2622,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2625,"mutability":"mutable","name":"isDefault","nameLocation":"2245:9:18","nodeType":"VariableDeclaration","scope":2627,"src":"2240:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2624,"name":"bool","nodeType":"ElementaryTypeName","src":"2240:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2226:29:18"},"scope":2674,"src":"2145:111:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"183c834f","id":2638,"implemented":false,"kind":"function","modifiers":[],"name":"setReceiveLibraryTimeout","nameLocation":"2271:24:18","nodeType":"FunctionDefinition","parameters":{"id":2636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2629,"mutability":"mutable","name":"_oapp","nameLocation":"2304:5:18","nodeType":"VariableDeclaration","scope":2638,"src":"2296:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2628,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2631,"mutability":"mutable","name":"_eid","nameLocation":"2318:4:18","nodeType":"VariableDeclaration","scope":2638,"src":"2311:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2630,"name":"uint32","nodeType":"ElementaryTypeName","src":"2311:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2633,"mutability":"mutable","name":"_lib","nameLocation":"2332:4:18","nodeType":"VariableDeclaration","scope":2638,"src":"2324:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2632,"name":"address","nodeType":"ElementaryTypeName","src":"2324:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2635,"mutability":"mutable","name":"_expiry","nameLocation":"2346:7:18","nodeType":"VariableDeclaration","scope":2638,"src":"2338:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2634,"name":"uint256","nodeType":"ElementaryTypeName","src":"2338:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2295:59:18"},"returnParameters":{"id":2637,"nodeType":"ParameterList","parameters":[],"src":"2363:0:18"},"scope":2674,"src":"2262:102:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ef667aa1","id":2649,"implemented":false,"kind":"function","modifiers":[],"name":"receiveLibraryTimeout","nameLocation":"2379:21:18","nodeType":"FunctionDefinition","parameters":{"id":2643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2640,"mutability":"mutable","name":"_receiver","nameLocation":"2409:9:18","nodeType":"VariableDeclaration","scope":2649,"src":"2401:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2639,"name":"address","nodeType":"ElementaryTypeName","src":"2401:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2642,"mutability":"mutable","name":"_eid","nameLocation":"2427:4:18","nodeType":"VariableDeclaration","scope":2649,"src":"2420:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2641,"name":"uint32","nodeType":"ElementaryTypeName","src":"2420:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2400:32:18"},"returnParameters":{"id":2648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2645,"mutability":"mutable","name":"lib","nameLocation":"2464:3:18","nodeType":"VariableDeclaration","scope":2649,"src":"2456:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2644,"name":"address","nodeType":"ElementaryTypeName","src":"2456:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2647,"mutability":"mutable","name":"expiry","nameLocation":"2477:6:18","nodeType":"VariableDeclaration","scope":2649,"src":"2469:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2646,"name":"uint256","nodeType":"ElementaryTypeName","src":"2469:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2455:29:18"},"scope":2674,"src":"2370:115:18","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6dbd9f90","id":2660,"implemented":false,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"2500:9:18","nodeType":"FunctionDefinition","parameters":{"id":2658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2651,"mutability":"mutable","name":"_oapp","nameLocation":"2518:5:18","nodeType":"VariableDeclaration","scope":2660,"src":"2510:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2650,"name":"address","nodeType":"ElementaryTypeName","src":"2510:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2653,"mutability":"mutable","name":"_lib","nameLocation":"2533:4:18","nodeType":"VariableDeclaration","scope":2660,"src":"2525:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2652,"name":"address","nodeType":"ElementaryTypeName","src":"2525:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2657,"mutability":"mutable","name":"_params","nameLocation":"2565:7:18","nodeType":"VariableDeclaration","scope":2660,"src":"2539:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SetConfigParam_$2438_calldata_ptr_$dyn_calldata_ptr","typeString":"struct SetConfigParam[]"},"typeName":{"baseType":{"id":2655,"nodeType":"UserDefinedTypeName","pathNode":{"id":2654,"name":"SetConfigParam","nameLocations":["2539:14:18"],"nodeType":"IdentifierPath","referencedDeclaration":2438,"src":"2539:14:18"},"referencedDeclaration":2438,"src":"2539:14:18","typeDescriptions":{"typeIdentifier":"t_struct$_SetConfigParam_$2438_storage_ptr","typeString":"struct SetConfigParam"}},"id":2656,"nodeType":"ArrayTypeName","src":"2539:16:18","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SetConfigParam_$2438_storage_$dyn_storage_ptr","typeString":"struct SetConfigParam[]"}},"visibility":"internal"}],"src":"2509:64:18"},"returnParameters":{"id":2659,"nodeType":"ParameterList","parameters":[],"src":"2582:0:18"},"scope":2674,"src":"2491:92:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2b3197b9","id":2673,"implemented":false,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"2598:9:18","nodeType":"FunctionDefinition","parameters":{"id":2669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2662,"mutability":"mutable","name":"_oapp","nameLocation":"2625:5:18","nodeType":"VariableDeclaration","scope":2673,"src":"2617:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2661,"name":"address","nodeType":"ElementaryTypeName","src":"2617:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2664,"mutability":"mutable","name":"_lib","nameLocation":"2648:4:18","nodeType":"VariableDeclaration","scope":2673,"src":"2640:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2663,"name":"address","nodeType":"ElementaryTypeName","src":"2640:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2666,"mutability":"mutable","name":"_eid","nameLocation":"2669:4:18","nodeType":"VariableDeclaration","scope":2673,"src":"2662:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2665,"name":"uint32","nodeType":"ElementaryTypeName","src":"2662:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2668,"mutability":"mutable","name":"_configType","nameLocation":"2690:11:18","nodeType":"VariableDeclaration","scope":2673,"src":"2683:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2667,"name":"uint32","nodeType":"ElementaryTypeName","src":"2683:6:18","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2607:100:18"},"returnParameters":{"id":2672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2671,"mutability":"mutable","name":"config","nameLocation":"2744:6:18","nodeType":"VariableDeclaration","scope":2673,"src":"2731:19:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2670,"name":"bytes","nodeType":"ElementaryTypeName","src":"2731:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2730:21:18"},"scope":2674,"src":"2589:163:18","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2675,"src":"143:2611:18","usedErrors":[],"usedEvents":[2447,2453,2459,2467,2475,2483,2493]}],"src":"33:2722:18"},"id":18},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol","exportedSymbols":{"IMessagingChannel":[2810]},"id":2811,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2676,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:19"},{"abstract":false,"baseContracts":[],"canonicalName":"IMessagingChannel","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2810,"linearizedBaseContracts":[2810],"name":"IMessagingChannel","nameLocation":"69:17:19","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde48","id":2686,"name":"InboundNonceSkipped","nameLocation":"99:19:19","nodeType":"EventDefinition","parameters":{"id":2685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2678,"indexed":false,"mutability":"mutable","name":"srcEid","nameLocation":"126:6:19","nodeType":"VariableDeclaration","scope":2686,"src":"119:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2677,"name":"uint32","nodeType":"ElementaryTypeName","src":"119:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2680,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"142:6:19","nodeType":"VariableDeclaration","scope":2686,"src":"134:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2679,"name":"bytes32","nodeType":"ElementaryTypeName","src":"134:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2682,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"158:8:19","nodeType":"VariableDeclaration","scope":2686,"src":"150:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2681,"name":"address","nodeType":"ElementaryTypeName","src":"150:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2684,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"175:5:19","nodeType":"VariableDeclaration","scope":2686,"src":"168:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2683,"name":"uint64","nodeType":"ElementaryTypeName","src":"168:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"118:63:19"},"src":"93:89:19"},{"anonymous":false,"eventSelector":"af0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb55292","id":2698,"name":"PacketNilified","nameLocation":"193:14:19","nodeType":"EventDefinition","parameters":{"id":2697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2688,"indexed":false,"mutability":"mutable","name":"srcEid","nameLocation":"215:6:19","nodeType":"VariableDeclaration","scope":2698,"src":"208:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2687,"name":"uint32","nodeType":"ElementaryTypeName","src":"208:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2690,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"231:6:19","nodeType":"VariableDeclaration","scope":2698,"src":"223:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2692,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"247:8:19","nodeType":"VariableDeclaration","scope":2698,"src":"239:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2691,"name":"address","nodeType":"ElementaryTypeName","src":"239:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2694,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"264:5:19","nodeType":"VariableDeclaration","scope":2698,"src":"257:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2693,"name":"uint64","nodeType":"ElementaryTypeName","src":"257:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2696,"indexed":false,"mutability":"mutable","name":"payloadHash","nameLocation":"279:11:19","nodeType":"VariableDeclaration","scope":2698,"src":"271:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"207:84:19"},"src":"187:105:19"},{"anonymous":false,"eventSelector":"7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e","id":2710,"name":"PacketBurnt","nameLocation":"303:11:19","nodeType":"EventDefinition","parameters":{"id":2709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2700,"indexed":false,"mutability":"mutable","name":"srcEid","nameLocation":"322:6:19","nodeType":"VariableDeclaration","scope":2710,"src":"315:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2699,"name":"uint32","nodeType":"ElementaryTypeName","src":"315:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2702,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"338:6:19","nodeType":"VariableDeclaration","scope":2710,"src":"330:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"330:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2704,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"354:8:19","nodeType":"VariableDeclaration","scope":2710,"src":"346:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2703,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2706,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"371:5:19","nodeType":"VariableDeclaration","scope":2710,"src":"364:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2705,"name":"uint64","nodeType":"ElementaryTypeName","src":"364:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2708,"indexed":false,"mutability":"mutable","name":"payloadHash","nameLocation":"386:11:19","nodeType":"VariableDeclaration","scope":2710,"src":"378:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2707,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"314:84:19"},"src":"297:102:19"},{"functionSelector":"416ecebf","id":2715,"implemented":false,"kind":"function","modifiers":[],"name":"eid","nameLocation":"414:3:19","nodeType":"FunctionDefinition","parameters":{"id":2711,"nodeType":"ParameterList","parameters":[],"src":"417:2:19"},"returnParameters":{"id":2714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2713,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2715,"src":"443:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2712,"name":"uint32","nodeType":"ElementaryTypeName","src":"443:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"442:8:19"},"scope":2810,"src":"405:46:19","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d70b8902","id":2726,"implemented":false,"kind":"function","modifiers":[],"name":"skip","nameLocation":"614:4:19","nodeType":"FunctionDefinition","parameters":{"id":2724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2717,"mutability":"mutable","name":"_oapp","nameLocation":"627:5:19","nodeType":"VariableDeclaration","scope":2726,"src":"619:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2716,"name":"address","nodeType":"ElementaryTypeName","src":"619:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2719,"mutability":"mutable","name":"_srcEid","nameLocation":"641:7:19","nodeType":"VariableDeclaration","scope":2726,"src":"634:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2718,"name":"uint32","nodeType":"ElementaryTypeName","src":"634:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2721,"mutability":"mutable","name":"_sender","nameLocation":"658:7:19","nodeType":"VariableDeclaration","scope":2726,"src":"650:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"650:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2723,"mutability":"mutable","name":"_nonce","nameLocation":"674:6:19","nodeType":"VariableDeclaration","scope":2726,"src":"667:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2722,"name":"uint64","nodeType":"ElementaryTypeName","src":"667:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"618:63:19"},"returnParameters":{"id":2725,"nodeType":"ParameterList","parameters":[],"src":"690:0:19"},"scope":2810,"src":"605:86:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2e80fbf3","id":2739,"implemented":false,"kind":"function","modifiers":[],"name":"nilify","nameLocation":"706:6:19","nodeType":"FunctionDefinition","parameters":{"id":2737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2728,"mutability":"mutable","name":"_oapp","nameLocation":"721:5:19","nodeType":"VariableDeclaration","scope":2739,"src":"713:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2727,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2730,"mutability":"mutable","name":"_srcEid","nameLocation":"735:7:19","nodeType":"VariableDeclaration","scope":2739,"src":"728:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2729,"name":"uint32","nodeType":"ElementaryTypeName","src":"728:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2732,"mutability":"mutable","name":"_sender","nameLocation":"752:7:19","nodeType":"VariableDeclaration","scope":2739,"src":"744:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"744:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2734,"mutability":"mutable","name":"_nonce","nameLocation":"768:6:19","nodeType":"VariableDeclaration","scope":2739,"src":"761:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2733,"name":"uint64","nodeType":"ElementaryTypeName","src":"761:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2736,"mutability":"mutable","name":"_payloadHash","nameLocation":"784:12:19","nodeType":"VariableDeclaration","scope":2739,"src":"776:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2735,"name":"bytes32","nodeType":"ElementaryTypeName","src":"776:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"712:85:19"},"returnParameters":{"id":2738,"nodeType":"ParameterList","parameters":[],"src":"806:0:19"},"scope":2810,"src":"697:110:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"40f80683","id":2752,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"822:4:19","nodeType":"FunctionDefinition","parameters":{"id":2750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2741,"mutability":"mutable","name":"_oapp","nameLocation":"835:5:19","nodeType":"VariableDeclaration","scope":2752,"src":"827:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2740,"name":"address","nodeType":"ElementaryTypeName","src":"827:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2743,"mutability":"mutable","name":"_srcEid","nameLocation":"849:7:19","nodeType":"VariableDeclaration","scope":2752,"src":"842:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2742,"name":"uint32","nodeType":"ElementaryTypeName","src":"842:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2745,"mutability":"mutable","name":"_sender","nameLocation":"866:7:19","nodeType":"VariableDeclaration","scope":2752,"src":"858:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"858:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2747,"mutability":"mutable","name":"_nonce","nameLocation":"882:6:19","nodeType":"VariableDeclaration","scope":2752,"src":"875:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2746,"name":"uint64","nodeType":"ElementaryTypeName","src":"875:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2749,"mutability":"mutable","name":"_payloadHash","nameLocation":"898:12:19","nodeType":"VariableDeclaration","scope":2752,"src":"890:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"890:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"826:85:19"},"returnParameters":{"id":2751,"nodeType":"ParameterList","parameters":[],"src":"920:0:19"},"scope":2810,"src":"813:108:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"aafe5e07","id":2763,"implemented":false,"kind":"function","modifiers":[],"name":"nextGuid","nameLocation":"936:8:19","nodeType":"FunctionDefinition","parameters":{"id":2759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2754,"mutability":"mutable","name":"_sender","nameLocation":"953:7:19","nodeType":"VariableDeclaration","scope":2763,"src":"945:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2753,"name":"address","nodeType":"ElementaryTypeName","src":"945:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2756,"mutability":"mutable","name":"_dstEid","nameLocation":"969:7:19","nodeType":"VariableDeclaration","scope":2763,"src":"962:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2755,"name":"uint32","nodeType":"ElementaryTypeName","src":"962:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2758,"mutability":"mutable","name":"_receiver","nameLocation":"986:9:19","nodeType":"VariableDeclaration","scope":2763,"src":"978:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"978:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"944:52:19"},"returnParameters":{"id":2762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2763,"src":"1020:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1020:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1019:9:19"},"scope":2810,"src":"927:102:19","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a0dd43fc","id":2774,"implemented":false,"kind":"function","modifiers":[],"name":"inboundNonce","nameLocation":"1044:12:19","nodeType":"FunctionDefinition","parameters":{"id":2770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2765,"mutability":"mutable","name":"_receiver","nameLocation":"1065:9:19","nodeType":"VariableDeclaration","scope":2774,"src":"1057:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2764,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2767,"mutability":"mutable","name":"_srcEid","nameLocation":"1083:7:19","nodeType":"VariableDeclaration","scope":2774,"src":"1076:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2766,"name":"uint32","nodeType":"ElementaryTypeName","src":"1076:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2769,"mutability":"mutable","name":"_sender","nameLocation":"1100:7:19","nodeType":"VariableDeclaration","scope":2774,"src":"1092:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1092:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1056:52:19"},"returnParameters":{"id":2773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2772,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2774,"src":"1132:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2771,"name":"uint64","nodeType":"ElementaryTypeName","src":"1132:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1131:8:19"},"scope":2810,"src":"1035:105:19","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9c6d7340","id":2785,"implemented":false,"kind":"function","modifiers":[],"name":"outboundNonce","nameLocation":"1155:13:19","nodeType":"FunctionDefinition","parameters":{"id":2781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2776,"mutability":"mutable","name":"_sender","nameLocation":"1177:7:19","nodeType":"VariableDeclaration","scope":2785,"src":"1169:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2775,"name":"address","nodeType":"ElementaryTypeName","src":"1169:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2778,"mutability":"mutable","name":"_dstEid","nameLocation":"1193:7:19","nodeType":"VariableDeclaration","scope":2785,"src":"1186:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2777,"name":"uint32","nodeType":"ElementaryTypeName","src":"1186:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2780,"mutability":"mutable","name":"_receiver","nameLocation":"1210:9:19","nodeType":"VariableDeclaration","scope":2785,"src":"1202:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1202:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1168:52:19"},"returnParameters":{"id":2784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2785,"src":"1244:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2782,"name":"uint64","nodeType":"ElementaryTypeName","src":"1244:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1243:8:19"},"scope":2810,"src":"1146:106:19","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c9fc7bcd","id":2798,"implemented":false,"kind":"function","modifiers":[],"name":"inboundPayloadHash","nameLocation":"1267:18:19","nodeType":"FunctionDefinition","parameters":{"id":2794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2787,"mutability":"mutable","name":"_receiver","nameLocation":"1303:9:19","nodeType":"VariableDeclaration","scope":2798,"src":"1295:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2786,"name":"address","nodeType":"ElementaryTypeName","src":"1295:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2789,"mutability":"mutable","name":"_srcEid","nameLocation":"1329:7:19","nodeType":"VariableDeclaration","scope":2798,"src":"1322:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2788,"name":"uint32","nodeType":"ElementaryTypeName","src":"1322:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2791,"mutability":"mutable","name":"_sender","nameLocation":"1354:7:19","nodeType":"VariableDeclaration","scope":2798,"src":"1346:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1346:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2793,"mutability":"mutable","name":"_nonce","nameLocation":"1378:6:19","nodeType":"VariableDeclaration","scope":2798,"src":"1371:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2792,"name":"uint64","nodeType":"ElementaryTypeName","src":"1371:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1285:105:19"},"returnParameters":{"id":2797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2798,"src":"1414:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1414:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1413:9:19"},"scope":2810,"src":"1258:165:19","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5b17bb70","id":2809,"implemented":false,"kind":"function","modifiers":[],"name":"lazyInboundNonce","nameLocation":"1438:16:19","nodeType":"FunctionDefinition","parameters":{"id":2805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2800,"mutability":"mutable","name":"_receiver","nameLocation":"1463:9:19","nodeType":"VariableDeclaration","scope":2809,"src":"1455:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2799,"name":"address","nodeType":"ElementaryTypeName","src":"1455:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2802,"mutability":"mutable","name":"_srcEid","nameLocation":"1481:7:19","nodeType":"VariableDeclaration","scope":2809,"src":"1474:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2801,"name":"uint32","nodeType":"ElementaryTypeName","src":"1474:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2804,"mutability":"mutable","name":"_sender","nameLocation":"1498:7:19","nodeType":"VariableDeclaration","scope":2809,"src":"1490:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1490:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1454:52:19"},"returnParameters":{"id":2808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2809,"src":"1530:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2806,"name":"uint64","nodeType":"ElementaryTypeName","src":"1530:6:19","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1529:8:19"},"scope":2810,"src":"1429:109:19","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2811,"src":"59:1481:19","usedErrors":[],"usedEvents":[2686,2698,2710]}],"src":"33:1508:19"},"id":19},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol","exportedSymbols":{"IMessagingComposer":[2896]},"id":2897,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2812,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:20"},{"abstract":false,"baseContracts":[],"canonicalName":"IMessagingComposer","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2896,"linearizedBaseContracts":[2896],"name":"IMessagingComposer","nameLocation":"69:18:20","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc1","id":2824,"name":"ComposeSent","nameLocation":"100:11:20","nodeType":"EventDefinition","parameters":{"id":2823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2814,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"120:4:20","nodeType":"VariableDeclaration","scope":2824,"src":"112:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2813,"name":"address","nodeType":"ElementaryTypeName","src":"112:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2816,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"134:2:20","nodeType":"VariableDeclaration","scope":2824,"src":"126:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2815,"name":"address","nodeType":"ElementaryTypeName","src":"126:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2818,"indexed":false,"mutability":"mutable","name":"guid","nameLocation":"146:4:20","nodeType":"VariableDeclaration","scope":2824,"src":"138:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"138:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2820,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"159:5:20","nodeType":"VariableDeclaration","scope":2824,"src":"152:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2819,"name":"uint16","nodeType":"ElementaryTypeName","src":"152:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2822,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"172:7:20","nodeType":"VariableDeclaration","scope":2824,"src":"166:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2821,"name":"bytes","nodeType":"ElementaryTypeName","src":"166:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"111:69:20"},"src":"94:87:20"},{"anonymous":false,"eventSelector":"0036c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c8","id":2834,"name":"ComposeDelivered","nameLocation":"192:16:20","nodeType":"EventDefinition","parameters":{"id":2833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2826,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"217:4:20","nodeType":"VariableDeclaration","scope":2834,"src":"209:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2825,"name":"address","nodeType":"ElementaryTypeName","src":"209:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2828,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"231:2:20","nodeType":"VariableDeclaration","scope":2834,"src":"223:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2827,"name":"address","nodeType":"ElementaryTypeName","src":"223:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2830,"indexed":false,"mutability":"mutable","name":"guid","nameLocation":"243:4:20","nodeType":"VariableDeclaration","scope":2834,"src":"235:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2829,"name":"bytes32","nodeType":"ElementaryTypeName","src":"235:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2832,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"256:5:20","nodeType":"VariableDeclaration","scope":2834,"src":"249:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2831,"name":"uint16","nodeType":"ElementaryTypeName","src":"249:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"208:54:20"},"src":"186:77:20"},{"anonymous":false,"eventSelector":"8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b9","id":2856,"name":"LzComposeAlert","nameLocation":"274:14:20","nodeType":"EventDefinition","parameters":{"id":2855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2836,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"314:4:20","nodeType":"VariableDeclaration","scope":2856,"src":"298:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2835,"name":"address","nodeType":"ElementaryTypeName","src":"298:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2838,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"344:2:20","nodeType":"VariableDeclaration","scope":2856,"src":"328:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2837,"name":"address","nodeType":"ElementaryTypeName","src":"328:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2840,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"372:8:20","nodeType":"VariableDeclaration","scope":2856,"src":"356:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2839,"name":"address","nodeType":"ElementaryTypeName","src":"356:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2842,"indexed":false,"mutability":"mutable","name":"guid","nameLocation":"398:4:20","nodeType":"VariableDeclaration","scope":2856,"src":"390:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2841,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2844,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"419:5:20","nodeType":"VariableDeclaration","scope":2856,"src":"412:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2843,"name":"uint16","nodeType":"ElementaryTypeName","src":"412:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2846,"indexed":false,"mutability":"mutable","name":"gas","nameLocation":"442:3:20","nodeType":"VariableDeclaration","scope":2856,"src":"434:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2845,"name":"uint256","nodeType":"ElementaryTypeName","src":"434:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2848,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"463:5:20","nodeType":"VariableDeclaration","scope":2856,"src":"455:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2847,"name":"uint256","nodeType":"ElementaryTypeName","src":"455:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2850,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"484:7:20","nodeType":"VariableDeclaration","scope":2856,"src":"478:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2849,"name":"bytes","nodeType":"ElementaryTypeName","src":"478:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2852,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"507:9:20","nodeType":"VariableDeclaration","scope":2856,"src":"501:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2851,"name":"bytes","nodeType":"ElementaryTypeName","src":"501:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2854,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"532:6:20","nodeType":"VariableDeclaration","scope":2856,"src":"526:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2853,"name":"bytes","nodeType":"ElementaryTypeName","src":"526:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"288:256:20"},"src":"268:277:20"},{"functionSelector":"35d330b0","id":2869,"implemented":false,"kind":"function","modifiers":[],"name":"composeQueue","nameLocation":"560:12:20","nodeType":"FunctionDefinition","parameters":{"id":2865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2858,"mutability":"mutable","name":"_from","nameLocation":"590:5:20","nodeType":"VariableDeclaration","scope":2869,"src":"582:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2857,"name":"address","nodeType":"ElementaryTypeName","src":"582:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2860,"mutability":"mutable","name":"_to","nameLocation":"613:3:20","nodeType":"VariableDeclaration","scope":2869,"src":"605:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2859,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2862,"mutability":"mutable","name":"_guid","nameLocation":"634:5:20","nodeType":"VariableDeclaration","scope":2869,"src":"626:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"626:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2864,"mutability":"mutable","name":"_index","nameLocation":"656:6:20","nodeType":"VariableDeclaration","scope":2869,"src":"649:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2863,"name":"uint16","nodeType":"ElementaryTypeName","src":"649:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"572:96:20"},"returnParameters":{"id":2868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2867,"mutability":"mutable","name":"messageHash","nameLocation":"700:11:20","nodeType":"VariableDeclaration","scope":2869,"src":"692:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2866,"name":"bytes32","nodeType":"ElementaryTypeName","src":"692:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"691:21:20"},"scope":2896,"src":"551:162:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7cb59012","id":2880,"implemented":false,"kind":"function","modifiers":[],"name":"sendCompose","nameLocation":"728:11:20","nodeType":"FunctionDefinition","parameters":{"id":2878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2871,"mutability":"mutable","name":"_to","nameLocation":"748:3:20","nodeType":"VariableDeclaration","scope":2880,"src":"740:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2870,"name":"address","nodeType":"ElementaryTypeName","src":"740:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2873,"mutability":"mutable","name":"_guid","nameLocation":"761:5:20","nodeType":"VariableDeclaration","scope":2880,"src":"753:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"753:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2875,"mutability":"mutable","name":"_index","nameLocation":"775:6:20","nodeType":"VariableDeclaration","scope":2880,"src":"768:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2874,"name":"uint16","nodeType":"ElementaryTypeName","src":"768:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2877,"mutability":"mutable","name":"_message","nameLocation":"798:8:20","nodeType":"VariableDeclaration","scope":2880,"src":"783:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2876,"name":"bytes","nodeType":"ElementaryTypeName","src":"783:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"739:68:20"},"returnParameters":{"id":2879,"nodeType":"ParameterList","parameters":[],"src":"816:0:20"},"scope":2896,"src":"719:98:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"91d20fa1","id":2895,"implemented":false,"kind":"function","modifiers":[],"name":"lzCompose","nameLocation":"832:9:20","nodeType":"FunctionDefinition","parameters":{"id":2893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2882,"mutability":"mutable","name":"_from","nameLocation":"859:5:20","nodeType":"VariableDeclaration","scope":2895,"src":"851:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2881,"name":"address","nodeType":"ElementaryTypeName","src":"851:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2884,"mutability":"mutable","name":"_to","nameLocation":"882:3:20","nodeType":"VariableDeclaration","scope":2895,"src":"874:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2883,"name":"address","nodeType":"ElementaryTypeName","src":"874:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2886,"mutability":"mutable","name":"_guid","nameLocation":"903:5:20","nodeType":"VariableDeclaration","scope":2895,"src":"895:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2885,"name":"bytes32","nodeType":"ElementaryTypeName","src":"895:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2888,"mutability":"mutable","name":"_index","nameLocation":"925:6:20","nodeType":"VariableDeclaration","scope":2895,"src":"918:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2887,"name":"uint16","nodeType":"ElementaryTypeName","src":"918:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2890,"mutability":"mutable","name":"_message","nameLocation":"956:8:20","nodeType":"VariableDeclaration","scope":2895,"src":"941:23:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2889,"name":"bytes","nodeType":"ElementaryTypeName","src":"941:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2892,"mutability":"mutable","name":"_extraData","nameLocation":"989:10:20","nodeType":"VariableDeclaration","scope":2895,"src":"974:25:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2891,"name":"bytes","nodeType":"ElementaryTypeName","src":"974:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"841:164:20"},"returnParameters":{"id":2894,"nodeType":"ParameterList","parameters":[],"src":"1022:0:20"},"scope":2896,"src":"823:200:20","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":2897,"src":"59:966:20","usedErrors":[],"usedEvents":[2824,2834,2856]}],"src":"33:993:20"},"id":20},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol","exportedSymbols":{"IMessagingContext":[2911]},"id":2912,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2898,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:21"},{"abstract":false,"baseContracts":[],"canonicalName":"IMessagingContext","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2911,"linearizedBaseContracts":[2911],"name":"IMessagingContext","nameLocation":"69:17:21","nodeType":"ContractDefinition","nodes":[{"functionSelector":"79624ca9","id":2903,"implemented":false,"kind":"function","modifiers":[],"name":"isSendingMessage","nameLocation":"102:16:21","nodeType":"FunctionDefinition","parameters":{"id":2899,"nodeType":"ParameterList","parameters":[],"src":"118:2:21"},"returnParameters":{"id":2902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2903,"src":"144:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2900,"name":"bool","nodeType":"ElementaryTypeName","src":"144:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"143:6:21"},"scope":2911,"src":"93:57:21","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"14f651a9","id":2910,"implemented":false,"kind":"function","modifiers":[],"name":"getSendContext","nameLocation":"165:14:21","nodeType":"FunctionDefinition","parameters":{"id":2904,"nodeType":"ParameterList","parameters":[],"src":"179:2:21"},"returnParameters":{"id":2909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2906,"mutability":"mutable","name":"dstEid","nameLocation":"212:6:21","nodeType":"VariableDeclaration","scope":2910,"src":"205:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2905,"name":"uint32","nodeType":"ElementaryTypeName","src":"205:6:21","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2908,"mutability":"mutable","name":"sender","nameLocation":"228:6:21","nodeType":"VariableDeclaration","scope":2910,"src":"220:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2907,"name":"address","nodeType":"ElementaryTypeName","src":"220:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"204:31:21"},"scope":2911,"src":"156:80:21","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2912,"src":"59:179:21","usedErrors":[],"usedEvents":[]}],"src":"33:206:21"},"id":21},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol","exportedSymbols":{"IMessageLib":[2429],"ISendLib":[2984],"MessagingFee":[2169],"Packet":[2932]},"id":2985,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2913,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"33:24:22"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","file":"./ILayerZeroEndpointV2.sol","id":2915,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2985,"sourceUnit":2339,"src":"59:58:22","symbolAliases":[{"foreign":{"id":2914,"name":"MessagingFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"68:12:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol","file":"./IMessageLib.sol","id":2917,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2985,"sourceUnit":2430,"src":"118:48:22","symbolAliases":[{"foreign":{"id":2916,"name":"IMessageLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2429,"src":"127:11:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"canonicalName":"Packet","id":2932,"members":[{"constant":false,"id":2919,"mutability":"mutable","name":"nonce","nameLocation":"195:5:22","nodeType":"VariableDeclaration","scope":2932,"src":"188:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2918,"name":"uint64","nodeType":"ElementaryTypeName","src":"188:6:22","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2921,"mutability":"mutable","name":"srcEid","nameLocation":"213:6:22","nodeType":"VariableDeclaration","scope":2932,"src":"206:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2920,"name":"uint32","nodeType":"ElementaryTypeName","src":"206:6:22","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2923,"mutability":"mutable","name":"sender","nameLocation":"233:6:22","nodeType":"VariableDeclaration","scope":2932,"src":"225:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2922,"name":"address","nodeType":"ElementaryTypeName","src":"225:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2925,"mutability":"mutable","name":"dstEid","nameLocation":"252:6:22","nodeType":"VariableDeclaration","scope":2932,"src":"245:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2924,"name":"uint32","nodeType":"ElementaryTypeName","src":"245:6:22","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2927,"mutability":"mutable","name":"receiver","nameLocation":"272:8:22","nodeType":"VariableDeclaration","scope":2932,"src":"264:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"264:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2929,"mutability":"mutable","name":"guid","nameLocation":"294:4:22","nodeType":"VariableDeclaration","scope":2932,"src":"286:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"286:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2931,"mutability":"mutable","name":"message","nameLocation":"310:7:22","nodeType":"VariableDeclaration","scope":2932,"src":"304:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2930,"name":"bytes","nodeType":"ElementaryTypeName","src":"304:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Packet","nameLocation":"175:6:22","nodeType":"StructDefinition","scope":2985,"src":"168:152:22","visibility":"public"},{"abstract":false,"baseContracts":[{"baseName":{"id":2933,"name":"IMessageLib","nameLocations":["344:11:22"],"nodeType":"IdentifierPath","referencedDeclaration":2429,"src":"344:11:22"},"id":2934,"nodeType":"InheritanceSpecifier","src":"344:11:22"}],"canonicalName":"ISendLib","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2984,"linearizedBaseContracts":[2984,2429,7389],"name":"ISendLib","nameLocation":"332:8:22","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4389e58f","id":2949,"implemented":false,"kind":"function","modifiers":[],"name":"send","nameLocation":"371:4:22","nodeType":"FunctionDefinition","parameters":{"id":2942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2937,"mutability":"mutable","name":"_packet","nameLocation":"401:7:22","nodeType":"VariableDeclaration","scope":2949,"src":"385:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_calldata_ptr","typeString":"struct Packet"},"typeName":{"id":2936,"nodeType":"UserDefinedTypeName","pathNode":{"id":2935,"name":"Packet","nameLocations":["385:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":2932,"src":"385:6:22"},"referencedDeclaration":2932,"src":"385:6:22","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_storage_ptr","typeString":"struct Packet"}},"visibility":"internal"},{"constant":false,"id":2939,"mutability":"mutable","name":"_options","nameLocation":"433:8:22","nodeType":"VariableDeclaration","scope":2949,"src":"418:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2938,"name":"bytes","nodeType":"ElementaryTypeName","src":"418:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2941,"mutability":"mutable","name":"_payInLzToken","nameLocation":"456:13:22","nodeType":"VariableDeclaration","scope":2949,"src":"451:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2940,"name":"bool","nodeType":"ElementaryTypeName","src":"451:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"375:100:22"},"returnParameters":{"id":2948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2949,"src":"494:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":2944,"nodeType":"UserDefinedTypeName","pathNode":{"id":2943,"name":"MessagingFee","nameLocations":["494:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":2169,"src":"494:12:22"},"referencedDeclaration":2169,"src":"494:12:22","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"},{"constant":false,"id":2947,"mutability":"mutable","name":"encodedPacket","nameLocation":"528:13:22","nodeType":"VariableDeclaration","scope":2949,"src":"515:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2946,"name":"bytes","nodeType":"ElementaryTypeName","src":"515:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"493:49:22"},"scope":2984,"src":"362:181:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d80e9bd9","id":2962,"implemented":false,"kind":"function","modifiers":[],"name":"quote","nameLocation":"558:5:22","nodeType":"FunctionDefinition","parameters":{"id":2957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2952,"mutability":"mutable","name":"_packet","nameLocation":"589:7:22","nodeType":"VariableDeclaration","scope":2962,"src":"573:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_calldata_ptr","typeString":"struct Packet"},"typeName":{"id":2951,"nodeType":"UserDefinedTypeName","pathNode":{"id":2950,"name":"Packet","nameLocations":["573:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":2932,"src":"573:6:22"},"referencedDeclaration":2932,"src":"573:6:22","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_storage_ptr","typeString":"struct Packet"}},"visibility":"internal"},{"constant":false,"id":2954,"mutability":"mutable","name":"_options","nameLocation":"621:8:22","nodeType":"VariableDeclaration","scope":2962,"src":"606:23:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2953,"name":"bytes","nodeType":"ElementaryTypeName","src":"606:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2956,"mutability":"mutable","name":"_payInLzToken","nameLocation":"644:13:22","nodeType":"VariableDeclaration","scope":2962,"src":"639:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2955,"name":"bool","nodeType":"ElementaryTypeName","src":"639:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"563:100:22"},"returnParameters":{"id":2961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2960,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2962,"src":"687:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":2959,"nodeType":"UserDefinedTypeName","pathNode":{"id":2958,"name":"MessagingFee","nameLocations":["687:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":2169,"src":"687:12:22"},"referencedDeclaration":2169,"src":"687:12:22","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"}],"src":"686:21:22"},"scope":2984,"src":"549:159:22","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f0f44260","id":2967,"implemented":false,"kind":"function","modifiers":[],"name":"setTreasury","nameLocation":"723:11:22","nodeType":"FunctionDefinition","parameters":{"id":2965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2964,"mutability":"mutable","name":"_treasury","nameLocation":"743:9:22","nodeType":"VariableDeclaration","scope":2967,"src":"735:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2963,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"734:19:22"},"returnParameters":{"id":2966,"nodeType":"ParameterList","parameters":[],"src":"762:0:22"},"scope":2984,"src":"714:49:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fd9be522","id":2974,"implemented":false,"kind":"function","modifiers":[],"name":"withdrawFee","nameLocation":"778:11:22","nodeType":"FunctionDefinition","parameters":{"id":2972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2969,"mutability":"mutable","name":"_to","nameLocation":"798:3:22","nodeType":"VariableDeclaration","scope":2974,"src":"790:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2968,"name":"address","nodeType":"ElementaryTypeName","src":"790:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2971,"mutability":"mutable","name":"_amount","nameLocation":"811:7:22","nodeType":"VariableDeclaration","scope":2974,"src":"803:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2970,"name":"uint256","nodeType":"ElementaryTypeName","src":"803:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"789:30:22"},"returnParameters":{"id":2973,"nodeType":"ParameterList","parameters":[],"src":"828:0:22"},"scope":2984,"src":"769:60:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"200175f7","id":2983,"implemented":false,"kind":"function","modifiers":[],"name":"withdrawLzTokenFee","nameLocation":"844:18:22","nodeType":"FunctionDefinition","parameters":{"id":2981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2976,"mutability":"mutable","name":"_lzToken","nameLocation":"871:8:22","nodeType":"VariableDeclaration","scope":2983,"src":"863:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2975,"name":"address","nodeType":"ElementaryTypeName","src":"863:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2978,"mutability":"mutable","name":"_to","nameLocation":"889:3:22","nodeType":"VariableDeclaration","scope":2983,"src":"881:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2977,"name":"address","nodeType":"ElementaryTypeName","src":"881:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2980,"mutability":"mutable","name":"_amount","nameLocation":"902:7:22","nodeType":"VariableDeclaration","scope":2983,"src":"894:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2979,"name":"uint256","nodeType":"ElementaryTypeName","src":"894:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"862:48:22"},"returnParameters":{"id":2982,"nodeType":"ParameterList","parameters":[],"src":"919:0:22"},"scope":2984,"src":"835:85:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":2985,"src":"322:600:22","usedErrors":[],"usedEvents":[]}],"src":"33:890:22"},"id":22},"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol","exportedSymbols":{"AddressCast":[3137]},"id":3138,"license":"LZBL-1.2","nodeType":"SourceUnit","nodes":[{"id":2986,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"38:24:23"},{"abstract":false,"baseContracts":[],"canonicalName":"AddressCast","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":3137,"linearizedBaseContracts":[3137],"name":"AddressCast","nameLocation":"72:11:23","nodeType":"ContractDefinition","nodes":[{"errorSelector":"18456c9b","id":2988,"name":"AddressCast_InvalidSizeForAddress","nameLocation":"96:33:23","nodeType":"ErrorDefinition","parameters":{"id":2987,"nodeType":"ParameterList","parameters":[],"src":"129:2:23"},"src":"90:42:23"},{"errorSelector":"6281faa2","id":2990,"name":"AddressCast_InvalidAddress","nameLocation":"143:26:23","nodeType":"ErrorDefinition","parameters":{"id":2989,"nodeType":"ParameterList","parameters":[],"src":"169:2:23"},"src":"137:35:23"},{"body":{"id":3029,"nodeType":"Block","src":"266:255:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2997,"name":"_addressBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"280:13:23","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"294:6:23","memberName":"length","nodeType":"MemberAccess","src":"280:20:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":2999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"303:2:23","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"280:25:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3004,"nodeType":"IfStatement","src":"276:66:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3001,"name":"AddressCast_InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2990,"src":"314:26:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"314:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3003,"nodeType":"RevertStatement","src":"307:35:23"}},{"expression":{"id":3010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3005,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"352:6:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3008,"name":"_addressBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"369:13:23","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"361:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"361:7:23","typeDescriptions":{}}},"id":3009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"361:22:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"352:31:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3011,"nodeType":"ExpressionStatement","src":"352:31:23"},{"id":3028,"nodeType":"UncheckedBlock","src":"393:122:23","statements":[{"assignments":[3013],"declarations":[{"constant":false,"id":3013,"mutability":"mutable","name":"offset","nameLocation":"425:6:23","nodeType":"VariableDeclaration","scope":3028,"src":"417:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3012,"name":"uint256","nodeType":"ElementaryTypeName","src":"417:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3018,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":3014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"434:2:23","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":3015,"name":"_addressBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"439:13:23","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"453:6:23","memberName":"length","nodeType":"MemberAccess","src":"439:20:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"434:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"417:42:23"},{"expression":{"id":3026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3019,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"473:6:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3020,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2995,"src":"482:6:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3021,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3013,"src":"493:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"502:1:23","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"493:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3024,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"492:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"482:22:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"473:31:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3027,"nodeType":"ExpressionStatement","src":"473:31:23"}]}]},"id":3030,"implemented":true,"kind":"function","modifiers":[],"name":"toBytes32","nameLocation":"187:9:23","nodeType":"FunctionDefinition","parameters":{"id":2993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2992,"mutability":"mutable","name":"_addressBytes","nameLocation":"212:13:23","nodeType":"VariableDeclaration","scope":3030,"src":"197:28:23","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2991,"name":"bytes","nodeType":"ElementaryTypeName","src":"197:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"196:30:23"},"returnParameters":{"id":2996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2995,"mutability":"mutable","name":"result","nameLocation":"258:6:23","nodeType":"VariableDeclaration","scope":3030,"src":"250:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2994,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"249:16:23"},"scope":3137,"src":"178:343:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3050,"nodeType":"Block","src":"603:61:23","statements":[{"expression":{"id":3048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3037,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3035,"src":"613:6:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":3044,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"646:8:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"638:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3042,"name":"uint160","nodeType":"ElementaryTypeName","src":"638:7:23","typeDescriptions":{}}},"id":3045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"638:17:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"630:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3040,"name":"uint256","nodeType":"ElementaryTypeName","src":"630:7:23","typeDescriptions":{}}},"id":3046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"630:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"622:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3038,"name":"bytes32","nodeType":"ElementaryTypeName","src":"622:7:23","typeDescriptions":{}}},"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"622:35:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"613:44:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3049,"nodeType":"ExpressionStatement","src":"613:44:23"}]},"id":3051,"implemented":true,"kind":"function","modifiers":[],"name":"toBytes32","nameLocation":"536:9:23","nodeType":"FunctionDefinition","parameters":{"id":3033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3032,"mutability":"mutable","name":"_address","nameLocation":"554:8:23","nodeType":"VariableDeclaration","scope":3051,"src":"546:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3031,"name":"address","nodeType":"ElementaryTypeName","src":"546:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"545:18:23"},"returnParameters":{"id":3036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3035,"mutability":"mutable","name":"result","nameLocation":"595:6:23","nodeType":"VariableDeclaration","scope":3051,"src":"587:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"587:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"586:16:23"},"scope":3137,"src":"527:137:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3088,"nodeType":"Block","src":"771:307:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3060,"name":"_size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3055,"src":"785:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"794:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"785:10:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3063,"name":"_size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3055,"src":"799:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":3064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"807:2:23","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"799:10:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"785:24:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3070,"nodeType":"IfStatement","src":"781:72:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3067,"name":"AddressCast_InvalidSizeForAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"818:33:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"818:35:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3069,"nodeType":"RevertStatement","src":"811:42:23"}},{"expression":{"id":3076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3071,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3058,"src":"863:6:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3074,"name":"_size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3055,"src":"882:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"872:9:23","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3072,"name":"bytes","nodeType":"ElementaryTypeName","src":"876:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"872:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"863:25:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3077,"nodeType":"ExpressionStatement","src":"863:25:23"},{"id":3087,"nodeType":"UncheckedBlock","src":"898:174:23","statements":[{"assignments":[3079],"declarations":[{"constant":false,"id":3079,"mutability":"mutable","name":"offset","nameLocation":"930:6:23","nodeType":"VariableDeclaration","scope":3087,"src":"922:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3078,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3085,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":3080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"939:3:23","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3081,"name":"_size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3055,"src":"945:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"953:1:23","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"945:9:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"939:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"922:32:23"},{"AST":{"nativeSrc":"977:85:23","nodeType":"YulBlock","src":"977:85:23","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"1006:6:23","nodeType":"YulIdentifier","src":"1006:6:23"},{"kind":"number","nativeSrc":"1014:2:23","nodeType":"YulLiteral","src":"1014:2:23","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1002:3:23","nodeType":"YulIdentifier","src":"1002:3:23"},"nativeSrc":"1002:15:23","nodeType":"YulFunctionCall","src":"1002:15:23"},{"arguments":[{"name":"offset","nativeSrc":"1023:6:23","nodeType":"YulIdentifier","src":"1023:6:23"},{"name":"_addressBytes32","nativeSrc":"1031:15:23","nodeType":"YulIdentifier","src":"1031:15:23"}],"functionName":{"name":"shl","nativeSrc":"1019:3:23","nodeType":"YulIdentifier","src":"1019:3:23"},"nativeSrc":"1019:28:23","nodeType":"YulFunctionCall","src":"1019:28:23"}],"functionName":{"name":"mstore","nativeSrc":"995:6:23","nodeType":"YulIdentifier","src":"995:6:23"},"nativeSrc":"995:53:23","nodeType":"YulFunctionCall","src":"995:53:23"},"nativeSrc":"995:53:23","nodeType":"YulExpressionStatement","src":"995:53:23"}]},"evmVersion":"paris","externalReferences":[{"declaration":3053,"isOffset":false,"isSlot":false,"src":"1031:15:23","valueSize":1},{"declaration":3079,"isOffset":false,"isSlot":false,"src":"1023:6:23","valueSize":1},{"declaration":3058,"isOffset":false,"isSlot":false,"src":"1006:6:23","valueSize":1}],"id":3086,"nodeType":"InlineAssembly","src":"968:94:23"}]}]},"id":3089,"implemented":true,"kind":"function","modifiers":[],"name":"toBytes","nameLocation":"679:7:23","nodeType":"FunctionDefinition","parameters":{"id":3056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3053,"mutability":"mutable","name":"_addressBytes32","nameLocation":"695:15:23","nodeType":"VariableDeclaration","scope":3089,"src":"687:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"687:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3055,"mutability":"mutable","name":"_size","nameLocation":"720:5:23","nodeType":"VariableDeclaration","scope":3089,"src":"712:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3054,"name":"uint256","nodeType":"ElementaryTypeName","src":"712:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"686:40:23"},"returnParameters":{"id":3059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3058,"mutability":"mutable","name":"result","nameLocation":"763:6:23","nodeType":"VariableDeclaration","scope":3089,"src":"750:19:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3057,"name":"bytes","nodeType":"ElementaryTypeName","src":"750:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"749:21:23"},"scope":3137,"src":"670:408:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3109,"nodeType":"Block","src":"1167:68:23","statements":[{"expression":{"id":3107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3096,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3094,"src":"1177:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":3103,"name":"_addressBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"1210:15:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1202:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3101,"name":"uint256","nodeType":"ElementaryTypeName","src":"1202:7:23","typeDescriptions":{}}},"id":3104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:24:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1194:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3099,"name":"uint160","nodeType":"ElementaryTypeName","src":"1194:7:23","typeDescriptions":{}}},"id":3105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1194:33:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1186:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3097,"name":"address","nodeType":"ElementaryTypeName","src":"1186:7:23","typeDescriptions":{}}},"id":3106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1186:42:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1177:51:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3108,"nodeType":"ExpressionStatement","src":"1177:51:23"}]},"id":3110,"implemented":true,"kind":"function","modifiers":[],"name":"toAddress","nameLocation":"1093:9:23","nodeType":"FunctionDefinition","parameters":{"id":3092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3091,"mutability":"mutable","name":"_addressBytes32","nameLocation":"1111:15:23","nodeType":"VariableDeclaration","scope":3110,"src":"1103:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1103:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1102:25:23"},"returnParameters":{"id":3095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3094,"mutability":"mutable","name":"result","nameLocation":"1159:6:23","nodeType":"VariableDeclaration","scope":3110,"src":"1151:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3093,"name":"address","nodeType":"ElementaryTypeName","src":"1151:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1150:16:23"},"scope":3137,"src":"1084:151:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3135,"nodeType":"Block","src":"1329:134:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3117,"name":"_addressBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3112,"src":"1343:13:23","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1357:6:23","memberName":"length","nodeType":"MemberAccess","src":"1343:20:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":3119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1367:2:23","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1343:26:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3124,"nodeType":"IfStatement","src":"1339:67:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3121,"name":"AddressCast_InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2990,"src":"1378:26:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1378:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3123,"nodeType":"RevertStatement","src":"1371:35:23"}},{"expression":{"id":3133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3125,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"1416:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":3130,"name":"_addressBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3112,"src":"1441:13:23","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1433:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":3128,"name":"bytes20","nodeType":"ElementaryTypeName","src":"1433:7:23","typeDescriptions":{}}},"id":3131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1433:22:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":3127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1425:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3126,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:23","typeDescriptions":{}}},"id":3132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1425:31:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1416:40:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3134,"nodeType":"ExpressionStatement","src":"1416:40:23"}]},"id":3136,"implemented":true,"kind":"function","modifiers":[],"name":"toAddress","nameLocation":"1250:9:23","nodeType":"FunctionDefinition","parameters":{"id":3113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3112,"mutability":"mutable","name":"_addressBytes","nameLocation":"1275:13:23","nodeType":"VariableDeclaration","scope":3136,"src":"1260:28:23","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3111,"name":"bytes","nodeType":"ElementaryTypeName","src":"1260:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1259:30:23"},"returnParameters":{"id":3116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3115,"mutability":"mutable","name":"result","nameLocation":"1321:6:23","nodeType":"VariableDeclaration","scope":3136,"src":"1313:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3114,"name":"address","nodeType":"ElementaryTypeName","src":"1313:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1312:16:23"},"scope":3137,"src":"1241:222:23","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3138,"src":"64:1401:23","usedErrors":[2988,2990],"usedEvents":[]}],"src":"38:1428:23"},"id":23},"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol","exportedSymbols":{"CalldataBytesLib":[3350]},"id":3351,"license":"LZBL-1.2","nodeType":"SourceUnit","nodes":[{"id":3139,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"38:24:24"},{"abstract":false,"baseContracts":[],"canonicalName":"CalldataBytesLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":3350,"linearizedBaseContracts":[3350],"name":"CalldataBytesLib","nameLocation":"72:16:24","nodeType":"ContractDefinition","nodes":[{"body":{"id":3155,"nodeType":"Block","src":"178:45:24","statements":[{"expression":{"arguments":[{"baseExpression":{"id":3150,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3141,"src":"201:6:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3152,"indexExpression":{"id":3151,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"208:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"201:14:24","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":3149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"195:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3148,"name":"uint8","nodeType":"ElementaryTypeName","src":"195:5:24","typeDescriptions":{}}},"id":3153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"195:21:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":3147,"id":3154,"nodeType":"Return","src":"188:28:24"}]},"id":3156,"implemented":true,"kind":"function","modifiers":[],"name":"toU8","nameLocation":"104:4:24","nodeType":"FunctionDefinition","parameters":{"id":3144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3141,"mutability":"mutable","name":"_bytes","nameLocation":"124:6:24","nodeType":"VariableDeclaration","scope":3156,"src":"109:21:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3140,"name":"bytes","nodeType":"ElementaryTypeName","src":"109:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3143,"mutability":"mutable","name":"_start","nameLocation":"140:6:24","nodeType":"VariableDeclaration","scope":3156,"src":"132:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3142,"name":"uint256","nodeType":"ElementaryTypeName","src":"132:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"108:39:24"},"returnParameters":{"id":3147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3156,"src":"171:5:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3145,"name":"uint8","nodeType":"ElementaryTypeName","src":"171:5:24","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"170:7:24"},"scope":3350,"src":"95:128:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3183,"nodeType":"Block","src":"314:130:24","statements":[{"id":3182,"nodeType":"UncheckedBlock","src":"324:114:24","statements":[{"assignments":[3166],"declarations":[{"constant":false,"id":3166,"mutability":"mutable","name":"end","nameLocation":"356:3:24","nodeType":"VariableDeclaration","scope":3182,"src":"348:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3165,"name":"uint256","nodeType":"ElementaryTypeName","src":"348:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3170,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3167,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3160,"src":"362:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":3168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"371:1:24","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"362:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"348:24:24"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":3175,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3158,"src":"407:6:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3177,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3166,"src":"421:3:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"407:18:24","startExpression":{"id":3176,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3160,"src":"414:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"400:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes2_$","typeString":"type(bytes2)"},"typeName":{"id":3173,"name":"bytes2","nodeType":"ElementaryTypeName","src":"400:6:24","typeDescriptions":{}}},"id":3179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"400:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"id":3172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"393:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":3171,"name":"uint16","nodeType":"ElementaryTypeName","src":"393:6:24","typeDescriptions":{}}},"id":3180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"393:34:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":3164,"id":3181,"nodeType":"Return","src":"386:41:24"}]}]},"id":3184,"implemented":true,"kind":"function","modifiers":[],"name":"toU16","nameLocation":"238:5:24","nodeType":"FunctionDefinition","parameters":{"id":3161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3158,"mutability":"mutable","name":"_bytes","nameLocation":"259:6:24","nodeType":"VariableDeclaration","scope":3184,"src":"244:21:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3157,"name":"bytes","nodeType":"ElementaryTypeName","src":"244:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3160,"mutability":"mutable","name":"_start","nameLocation":"275:6:24","nodeType":"VariableDeclaration","scope":3184,"src":"267:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3159,"name":"uint256","nodeType":"ElementaryTypeName","src":"267:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"243:39:24"},"returnParameters":{"id":3164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3184,"src":"306:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3162,"name":"uint16","nodeType":"ElementaryTypeName","src":"306:6:24","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"305:8:24"},"scope":3350,"src":"229:215:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3211,"nodeType":"Block","src":"535:130:24","statements":[{"id":3210,"nodeType":"UncheckedBlock","src":"545:114:24","statements":[{"assignments":[3194],"declarations":[{"constant":false,"id":3194,"mutability":"mutable","name":"end","nameLocation":"577:3:24","nodeType":"VariableDeclaration","scope":3210,"src":"569:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3193,"name":"uint256","nodeType":"ElementaryTypeName","src":"569:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3198,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3195,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3188,"src":"583:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":3196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"592:1:24","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"583:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"569:24:24"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":3203,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"628:6:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3205,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3194,"src":"642:3:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"628:18:24","startExpression":{"id":3204,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3188,"src":"635:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"621:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":3201,"name":"bytes4","nodeType":"ElementaryTypeName","src":"621:6:24","typeDescriptions":{}}},"id":3207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"621:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":3200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"614:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":3199,"name":"uint32","nodeType":"ElementaryTypeName","src":"614:6:24","typeDescriptions":{}}},"id":3208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"614:34:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":3192,"id":3209,"nodeType":"Return","src":"607:41:24"}]}]},"id":3212,"implemented":true,"kind":"function","modifiers":[],"name":"toU32","nameLocation":"459:5:24","nodeType":"FunctionDefinition","parameters":{"id":3189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3186,"mutability":"mutable","name":"_bytes","nameLocation":"480:6:24","nodeType":"VariableDeclaration","scope":3212,"src":"465:21:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3185,"name":"bytes","nodeType":"ElementaryTypeName","src":"465:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3188,"mutability":"mutable","name":"_start","nameLocation":"496:6:24","nodeType":"VariableDeclaration","scope":3212,"src":"488:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3187,"name":"uint256","nodeType":"ElementaryTypeName","src":"488:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"464:39:24"},"returnParameters":{"id":3192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3191,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3212,"src":"527:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3190,"name":"uint32","nodeType":"ElementaryTypeName","src":"527:6:24","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"526:8:24"},"scope":3350,"src":"450:215:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3239,"nodeType":"Block","src":"756:130:24","statements":[{"id":3238,"nodeType":"UncheckedBlock","src":"766:114:24","statements":[{"assignments":[3222],"declarations":[{"constant":false,"id":3222,"mutability":"mutable","name":"end","nameLocation":"798:3:24","nodeType":"VariableDeclaration","scope":3238,"src":"790:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3221,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3226,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3223,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3216,"src":"804:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"38","id":3224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"813:1:24","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"804:10:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"790:24:24"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":3231,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3214,"src":"849:6:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3233,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3222,"src":"863:3:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"849:18:24","startExpression":{"id":3232,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3216,"src":"856:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"842:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes8_$","typeString":"type(bytes8)"},"typeName":{"id":3229,"name":"bytes8","nodeType":"ElementaryTypeName","src":"842:6:24","typeDescriptions":{}}},"id":3235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"842:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":3228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"835:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":3227,"name":"uint64","nodeType":"ElementaryTypeName","src":"835:6:24","typeDescriptions":{}}},"id":3236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"835:34:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":3220,"id":3237,"nodeType":"Return","src":"828:41:24"}]}]},"id":3240,"implemented":true,"kind":"function","modifiers":[],"name":"toU64","nameLocation":"680:5:24","nodeType":"FunctionDefinition","parameters":{"id":3217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3214,"mutability":"mutable","name":"_bytes","nameLocation":"701:6:24","nodeType":"VariableDeclaration","scope":3240,"src":"686:21:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3213,"name":"bytes","nodeType":"ElementaryTypeName","src":"686:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3216,"mutability":"mutable","name":"_start","nameLocation":"717:6:24","nodeType":"VariableDeclaration","scope":3240,"src":"709:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3215,"name":"uint256","nodeType":"ElementaryTypeName","src":"709:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"685:39:24"},"returnParameters":{"id":3220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3240,"src":"748:6:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3218,"name":"uint64","nodeType":"ElementaryTypeName","src":"748:6:24","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"747:8:24"},"scope":3350,"src":"671:215:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3267,"nodeType":"Block","src":"979:133:24","statements":[{"id":3266,"nodeType":"UncheckedBlock","src":"989:117:24","statements":[{"assignments":[3250],"declarations":[{"constant":false,"id":3250,"mutability":"mutable","name":"end","nameLocation":"1021:3:24","nodeType":"VariableDeclaration","scope":3266,"src":"1013:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3249,"name":"uint256","nodeType":"ElementaryTypeName","src":"1013:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3254,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3251,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3244,"src":"1027:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3136","id":3252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1036:2:24","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1027:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1013:25:24"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":3259,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3242,"src":"1075:6:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3261,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3250,"src":"1089:3:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1075:18:24","startExpression":{"id":3260,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3244,"src":"1082:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1067:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes16_$","typeString":"type(bytes16)"},"typeName":{"id":3257,"name":"bytes16","nodeType":"ElementaryTypeName","src":"1067:7:24","typeDescriptions":{}}},"id":3263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":3256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1059:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":3255,"name":"uint128","nodeType":"ElementaryTypeName","src":"1059:7:24","typeDescriptions":{}}},"id":3264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1059:36:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":3248,"id":3265,"nodeType":"Return","src":"1052:43:24"}]}]},"id":3268,"implemented":true,"kind":"function","modifiers":[],"name":"toU128","nameLocation":"901:6:24","nodeType":"FunctionDefinition","parameters":{"id":3245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3242,"mutability":"mutable","name":"_bytes","nameLocation":"923:6:24","nodeType":"VariableDeclaration","scope":3268,"src":"908:21:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3241,"name":"bytes","nodeType":"ElementaryTypeName","src":"908:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3244,"mutability":"mutable","name":"_start","nameLocation":"939:6:24","nodeType":"VariableDeclaration","scope":3268,"src":"931:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3243,"name":"uint256","nodeType":"ElementaryTypeName","src":"931:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"907:39:24"},"returnParameters":{"id":3248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3268,"src":"970:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3246,"name":"uint128","nodeType":"ElementaryTypeName","src":"970:7:24","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"969:9:24"},"scope":3350,"src":"892:220:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3295,"nodeType":"Block","src":"1205:133:24","statements":[{"id":3294,"nodeType":"UncheckedBlock","src":"1215:117:24","statements":[{"assignments":[3278],"declarations":[{"constant":false,"id":3278,"mutability":"mutable","name":"end","nameLocation":"1247:3:24","nodeType":"VariableDeclaration","scope":3294,"src":"1239:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3277,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3282,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3279,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3272,"src":"1253:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":3280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1262:2:24","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1253:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1239:25:24"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":3287,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3270,"src":"1301:6:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3289,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3278,"src":"1315:3:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1301:18:24","startExpression":{"id":3288,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3272,"src":"1308:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1293:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1293:7:24","typeDescriptions":{}}},"id":3291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1293:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1285:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3283,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:24","typeDescriptions":{}}},"id":3292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1285:36:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3276,"id":3293,"nodeType":"Return","src":"1278:43:24"}]}]},"id":3296,"implemented":true,"kind":"function","modifiers":[],"name":"toU256","nameLocation":"1127:6:24","nodeType":"FunctionDefinition","parameters":{"id":3273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3270,"mutability":"mutable","name":"_bytes","nameLocation":"1149:6:24","nodeType":"VariableDeclaration","scope":3296,"src":"1134:21:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3269,"name":"bytes","nodeType":"ElementaryTypeName","src":"1134:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3272,"mutability":"mutable","name":"_start","nameLocation":"1165:6:24","nodeType":"VariableDeclaration","scope":3296,"src":"1157:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3271,"name":"uint256","nodeType":"ElementaryTypeName","src":"1157:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1133:39:24"},"returnParameters":{"id":3276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3296,"src":"1196:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3274,"name":"uint256","nodeType":"ElementaryTypeName","src":"1196:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1195:9:24"},"scope":3350,"src":"1118:220:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3323,"nodeType":"Block","src":"1431:133:24","statements":[{"id":3322,"nodeType":"UncheckedBlock","src":"1441:117:24","statements":[{"assignments":[3306],"declarations":[{"constant":false,"id":3306,"mutability":"mutable","name":"end","nameLocation":"1473:3:24","nodeType":"VariableDeclaration","scope":3322,"src":"1465:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3305,"name":"uint256","nodeType":"ElementaryTypeName","src":"1465:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3310,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3307,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3300,"src":"1479:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3230","id":3308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1488:2:24","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1479:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1465:25:24"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":3315,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"1527:6:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3317,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3306,"src":"1541:3:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1527:18:24","startExpression":{"id":3316,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3300,"src":"1534:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1519:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":3313,"name":"bytes20","nodeType":"ElementaryTypeName","src":"1519:7:24","typeDescriptions":{}}},"id":3319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":3312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1511:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3311,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:24","typeDescriptions":{}}},"id":3320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1511:36:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3304,"id":3321,"nodeType":"Return","src":"1504:43:24"}]}]},"id":3324,"implemented":true,"kind":"function","modifiers":[],"name":"toAddr","nameLocation":"1353:6:24","nodeType":"FunctionDefinition","parameters":{"id":3301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3298,"mutability":"mutable","name":"_bytes","nameLocation":"1375:6:24","nodeType":"VariableDeclaration","scope":3324,"src":"1360:21:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3297,"name":"bytes","nodeType":"ElementaryTypeName","src":"1360:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3300,"mutability":"mutable","name":"_start","nameLocation":"1391:6:24","nodeType":"VariableDeclaration","scope":3324,"src":"1383:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3299,"name":"uint256","nodeType":"ElementaryTypeName","src":"1383:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1359:39:24"},"returnParameters":{"id":3304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3303,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3324,"src":"1422:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3302,"name":"address","nodeType":"ElementaryTypeName","src":"1422:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1421:9:24"},"scope":3350,"src":"1344:220:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3348,"nodeType":"Block","src":"1656:124:24","statements":[{"id":3347,"nodeType":"UncheckedBlock","src":"1666:108:24","statements":[{"assignments":[3334],"declarations":[{"constant":false,"id":3334,"mutability":"mutable","name":"end","nameLocation":"1698:3:24","nodeType":"VariableDeclaration","scope":3347,"src":"1690:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3333,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3338,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3335,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3328,"src":"1704:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":3336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1713:2:24","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1704:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1690:25:24"},{"expression":{"arguments":[{"baseExpression":{"id":3341,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3326,"src":"1744:6:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3343,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3334,"src":"1758:3:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1744:18:24","startExpression":{"id":3342,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3328,"src":"1751:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1736:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1736:7:24","typeDescriptions":{}}},"id":3345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1736:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3332,"id":3346,"nodeType":"Return","src":"1729:34:24"}]}]},"id":3349,"implemented":true,"kind":"function","modifiers":[],"name":"toB32","nameLocation":"1579:5:24","nodeType":"FunctionDefinition","parameters":{"id":3329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3326,"mutability":"mutable","name":"_bytes","nameLocation":"1600:6:24","nodeType":"VariableDeclaration","scope":3349,"src":"1585:21:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3325,"name":"bytes","nodeType":"ElementaryTypeName","src":"1585:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3328,"mutability":"mutable","name":"_start","nameLocation":"1616:6:24","nodeType":"VariableDeclaration","scope":3349,"src":"1608:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3327,"name":"uint256","nodeType":"ElementaryTypeName","src":"1608:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1584:39:24"},"returnParameters":{"id":3332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3349,"src":"1647:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3330,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1647:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1646:9:24"},"scope":3350,"src":"1570:210:24","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3351,"src":"64:1718:24","usedErrors":[],"usedEvents":[]}],"src":"38:1745:24"},"id":24},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol","exportedSymbols":{"BitMap256":[3354],"BitMaps":[3415]},"id":3416,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3352,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"153:24:25"},{"canonicalName":"BitMap256","id":3354,"name":"BitMap256","nameLocation":"184:9:25","nodeType":"UserDefinedValueTypeDefinition","src":"179:26:25","underlyingType":{"id":3353,"name":"uint256","nodeType":"ElementaryTypeName","src":"197:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":true,"id":3358,"libraryName":{"id":3355,"name":"BitMaps","nameLocations":["213:7:25"],"nodeType":"IdentifierPath","referencedDeclaration":3415,"src":"213:7:25"},"nodeType":"UsingForDirective","src":"207:35:25","typeName":{"id":3357,"nodeType":"UserDefinedTypeName","pathNode":{"id":3356,"name":"BitMap256","nameLocations":["225:9:25"],"nodeType":"IdentifierPath","referencedDeclaration":3354,"src":"225:9:25"},"referencedDeclaration":3354,"src":"225:9:25","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}}},{"abstract":false,"baseContracts":[],"canonicalName":"BitMaps","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":3415,"linearizedBaseContracts":[3415],"name":"BitMaps","nameLocation":"252:7:25","nodeType":"ContractDefinition","nodes":[{"body":{"id":3384,"nodeType":"Block","src":"410:95:25","statements":[{"assignments":[3370],"declarations":[{"constant":false,"id":3370,"mutability":"mutable","name":"mask","nameLocation":"428:4:25","nodeType":"VariableDeclaration","scope":3384,"src":"420:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3369,"name":"uint256","nodeType":"ElementaryTypeName","src":"420:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3374,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"435:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":3372,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"440:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"435:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"420:25:25"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3377,"name":"bitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3362,"src":"479:6:25","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}],"expression":{"id":3375,"name":"BitMap256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"462:9:25","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_BitMap256_$3354_$","typeString":"type(BitMap256)"}},"id":3376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"472:6:25","memberName":"unwrap","nodeType":"MemberAccess","src":"462:16:25","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_BitMap256_$3354_$returns$_t_uint256_$","typeString":"function (BitMap256) pure returns (uint256)"}},"id":3378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"462:24:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3379,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3370,"src":"489:4:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"462:31:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"497:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"462:36:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3368,"id":3383,"nodeType":"Return","src":"455:43:25"}]},"documentation":{"id":3359,"nodeType":"StructuredDocumentation","src":"266:66:25","text":" @dev Returns whether the bit at `index` is set."},"id":3385,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"346:3:25","nodeType":"FunctionDefinition","parameters":{"id":3365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3362,"mutability":"mutable","name":"bitmap","nameLocation":"360:6:25","nodeType":"VariableDeclaration","scope":3385,"src":"350:16:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"},"typeName":{"id":3361,"nodeType":"UserDefinedTypeName","pathNode":{"id":3360,"name":"BitMap256","nameLocations":["350:9:25"],"nodeType":"IdentifierPath","referencedDeclaration":3354,"src":"350:9:25"},"referencedDeclaration":3354,"src":"350:9:25","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}},"visibility":"internal"},{"constant":false,"id":3364,"mutability":"mutable","name":"index","nameLocation":"374:5:25","nodeType":"VariableDeclaration","scope":3385,"src":"368:11:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3363,"name":"uint8","nodeType":"ElementaryTypeName","src":"368:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"349:31:25"},"returnParameters":{"id":3368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3385,"src":"404:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3366,"name":"bool","nodeType":"ElementaryTypeName","src":"404:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"403:6:25"},"scope":3415,"src":"337:168:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3413,"nodeType":"Block","src":"642:106:25","statements":[{"assignments":[3398],"declarations":[{"constant":false,"id":3398,"mutability":"mutable","name":"mask","nameLocation":"660:4:25","nodeType":"VariableDeclaration","scope":3413,"src":"652:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3397,"name":"uint256","nodeType":"ElementaryTypeName","src":"652:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3402,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":3400,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3391,"src":"672:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"667:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"652:25:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3407,"name":"bitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3389,"src":"726:6:25","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}],"expression":{"id":3405,"name":"BitMap256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"709:9:25","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_BitMap256_$3354_$","typeString":"type(BitMap256)"}},"id":3406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"719:6:25","memberName":"unwrap","nodeType":"MemberAccess","src":"709:16:25","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_BitMap256_$3354_$returns$_t_uint256_$","typeString":"function (BitMap256) pure returns (uint256)"}},"id":3408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"709:24:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":3409,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3398,"src":"736:4:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"709:31:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3403,"name":"BitMap256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"694:9:25","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_BitMap256_$3354_$","typeString":"type(BitMap256)"}},"id":3404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"704:4:25","memberName":"wrap","nodeType":"MemberAccess","src":"694:14:25","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_BitMap256_$3354_$","typeString":"function (uint256) pure returns (BitMap256)"}},"id":3411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"694:47:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}},"functionReturnParameters":3396,"id":3412,"nodeType":"Return","src":"687:54:25"}]},"documentation":{"id":3386,"nodeType":"StructuredDocumentation","src":"511:48:25","text":" @dev Sets the bit at `index`."},"id":3414,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"573:3:25","nodeType":"FunctionDefinition","parameters":{"id":3392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3389,"mutability":"mutable","name":"bitmap","nameLocation":"587:6:25","nodeType":"VariableDeclaration","scope":3414,"src":"577:16:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"},"typeName":{"id":3388,"nodeType":"UserDefinedTypeName","pathNode":{"id":3387,"name":"BitMap256","nameLocations":["577:9:25"],"nodeType":"IdentifierPath","referencedDeclaration":3354,"src":"577:9:25"},"referencedDeclaration":3354,"src":"577:9:25","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}},"visibility":"internal"},{"constant":false,"id":3391,"mutability":"mutable","name":"index","nameLocation":"601:5:25","nodeType":"VariableDeclaration","scope":3414,"src":"595:11:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3390,"name":"uint8","nodeType":"ElementaryTypeName","src":"595:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"576:31:25"},"returnParameters":{"id":3396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3395,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3414,"src":"631:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"},"typeName":{"id":3394,"nodeType":"UserDefinedTypeName","pathNode":{"id":3393,"name":"BitMap256","nameLocations":["631:9:25"],"nodeType":"IdentifierPath","referencedDeclaration":3354,"src":"631:9:25"},"referencedDeclaration":3354,"src":"631:9:25","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BitMap256_$3354","typeString":"BitMap256"}},"visibility":"internal"}],"src":"630:11:25"},"scope":3415,"src":"564:184:25","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3416,"src":"244:506:25","usedErrors":[],"usedEvents":[]}],"src":"153:598:25"},"id":25},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol","exportedSymbols":{"CalldataBytesLib":[3350],"ExecutorOptions":[3702]},"id":3703,"license":"LZBL-1.2","nodeType":"SourceUnit","nodes":[{"id":3417,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"38:24:26"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol","file":"../../libs/CalldataBytesLib.sol","id":3419,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3703,"sourceUnit":3351,"src":"64:67:26","symbolAliases":[{"foreign":{"id":3418,"name":"CalldataBytesLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"73:16:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ExecutorOptions","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":3702,"linearizedBaseContracts":[3702],"name":"ExecutorOptions","nameLocation":"141:15:26","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3422,"libraryName":{"id":3420,"name":"CalldataBytesLib","nameLocations":["169:16:26"],"nodeType":"IdentifierPath","referencedDeclaration":3350,"src":"169:16:26"},"nodeType":"UsingForDirective","src":"163:33:26","typeName":{"id":3421,"name":"bytes","nodeType":"ElementaryTypeName","src":"190:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":true,"id":3425,"mutability":"constant","name":"WORKER_ID","nameLocation":"226:9:26","nodeType":"VariableDeclaration","scope":3702,"src":"202:37:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3423,"name":"uint8","nodeType":"ElementaryTypeName","src":"202:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":3424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"238:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":3428,"mutability":"constant","name":"OPTION_TYPE_LZRECEIVE","nameLocation":"270:21:26","nodeType":"VariableDeclaration","scope":3702,"src":"246:49:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3426,"name":"uint8","nodeType":"ElementaryTypeName","src":"246:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":3427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"294:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":3431,"mutability":"constant","name":"OPTION_TYPE_NATIVE_DROP","nameLocation":"325:23:26","nodeType":"VariableDeclaration","scope":3702,"src":"301:51:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3429,"name":"uint8","nodeType":"ElementaryTypeName","src":"301:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":3430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"351:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":3434,"mutability":"constant","name":"OPTION_TYPE_LZCOMPOSE","nameLocation":"382:21:26","nodeType":"VariableDeclaration","scope":3702,"src":"358:49:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3432,"name":"uint8","nodeType":"ElementaryTypeName","src":"358:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":3433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"406:1:26","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"internal"},{"constant":true,"id":3437,"mutability":"constant","name":"OPTION_TYPE_ORDERED_EXECUTION","nameLocation":"437:29:26","nodeType":"VariableDeclaration","scope":3702,"src":"413:57:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3435,"name":"uint8","nodeType":"ElementaryTypeName","src":"413:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":3436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"469:1:26","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"internal"},{"errorSelector":"4796aee1","id":3439,"name":"Executor_InvalidLzReceiveOption","nameLocation":"483:31:26","nodeType":"ErrorDefinition","parameters":{"id":3438,"nodeType":"ParameterList","parameters":[],"src":"514:2:26"},"src":"477:40:26"},{"errorSelector":"c3a1858e","id":3441,"name":"Executor_InvalidNativeDropOption","nameLocation":"528:32:26","nodeType":"ErrorDefinition","parameters":{"id":3440,"nodeType":"ParameterList","parameters":[],"src":"560:2:26"},"src":"522:41:26"},{"errorSelector":"8b4aa70b","id":3443,"name":"Executor_InvalidLzComposeOption","nameLocation":"574:31:26","nodeType":"ErrorDefinition","parameters":{"id":3442,"nodeType":"ParameterList","parameters":[],"src":"605:2:26"},"src":"568:40:26"},{"body":{"id":3505,"nodeType":"Block","src":"1423:570:26","statements":[{"id":3504,"nodeType":"UncheckedBlock","src":"1433:554:26","statements":[{"expression":{"id":3461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3457,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3455,"src":"1487:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3458,"name":"_cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3448,"src":"1496:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1506:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1496:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1487:20:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3462,"nodeType":"ExpressionStatement","src":"1487:20:26"},{"assignments":[3464],"declarations":[{"constant":false,"id":3464,"mutability":"mutable","name":"size","nameLocation":"1561:4:26","nodeType":"VariableDeclaration","scope":3504,"src":"1554:11:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3463,"name":"uint16","nodeType":"ElementaryTypeName","src":"1554:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":3469,"initialValue":{"arguments":[{"id":3467,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3455,"src":"1583:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3465,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3446,"src":"1568:8:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1577:5:26","memberName":"toU16","nodeType":"MemberAccess","referencedDeclaration":3184,"src":"1568:14:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint16)"}},"id":3468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:22:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1554:36:26"},{"expression":{"id":3472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3470,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3455,"src":"1604:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1614:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1604:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3473,"nodeType":"ExpressionStatement","src":"1604:11:26"},{"expression":{"id":3479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3474,"name":"optionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3451,"src":"1662:10:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3477,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3455,"src":"1689:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3475,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3446,"src":"1675:8:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1684:4:26","memberName":"toU8","nodeType":"MemberAccess","referencedDeclaration":3156,"src":"1675:13:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint8)"}},"id":3478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:21:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1662:34:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3480,"nodeType":"ExpressionStatement","src":"1662:34:26"},{"assignments":[3482],"declarations":[{"constant":false,"id":3482,"mutability":"mutable","name":"startCursor","nameLocation":"1803:11:26","nodeType":"VariableDeclaration","scope":3504,"src":"1795:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3481,"name":"uint256","nodeType":"ElementaryTypeName","src":"1795:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3486,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3483,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3455,"src":"1817:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1826:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1817:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1795:32:26"},{"assignments":[3488],"declarations":[{"constant":false,"id":3488,"mutability":"mutable","name":"endCursor","nameLocation":"1869:9:26","nodeType":"VariableDeclaration","scope":3504,"src":"1861:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3487,"name":"uint256","nodeType":"ElementaryTypeName","src":"1861:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3492,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3489,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3455,"src":"1881:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3490,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3464,"src":"1890:4:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1881:13:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1861:33:26"},{"expression":{"id":3498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3493,"name":"option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3453,"src":"1908:6:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":3494,"name":"_options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3446,"src":"1917:8:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3496,"name":"endCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3488,"src":"1938:9:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1917:31:26","startExpression":{"id":3495,"name":"startCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3482,"src":"1926:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"src":"1908:40:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3499,"nodeType":"ExpressionStatement","src":"1908:40:26"},{"expression":{"id":3502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3500,"name":"cursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3455,"src":"1962:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3501,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3464,"src":"1972:4:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1962:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3503,"nodeType":"ExpressionStatement","src":"1962:14:26"}]}]},"documentation":{"id":3444,"nodeType":"StructuredDocumentation","src":"614:632:26","text":"@dev decode the next executor option from the options starting from the specified cursor\n @param _options [executor_id][executor_option][executor_id][executor_option]...\n executor_option = [option_size][option_type][option]\n option_size = len(option_type) + len(option)\n executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\n @param _cursor the cursor to start decoding from\n @return optionType the type of the option\n @return option the option of the executor\n @return cursor the cursor to start decoding the next executor option"},"id":3506,"implemented":true,"kind":"function","modifiers":[],"name":"nextExecutorOption","nameLocation":"1260:18:26","nodeType":"FunctionDefinition","parameters":{"id":3449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3446,"mutability":"mutable","name":"_options","nameLocation":"1303:8:26","nodeType":"VariableDeclaration","scope":3506,"src":"1288:23:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3445,"name":"bytes","nodeType":"ElementaryTypeName","src":"1288:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3448,"mutability":"mutable","name":"_cursor","nameLocation":"1329:7:26","nodeType":"VariableDeclaration","scope":3506,"src":"1321:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3447,"name":"uint256","nodeType":"ElementaryTypeName","src":"1321:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1278:64:26"},"returnParameters":{"id":3456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3451,"mutability":"mutable","name":"optionType","nameLocation":"1372:10:26","nodeType":"VariableDeclaration","scope":3506,"src":"1366:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3450,"name":"uint8","nodeType":"ElementaryTypeName","src":"1366:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3453,"mutability":"mutable","name":"option","nameLocation":"1399:6:26","nodeType":"VariableDeclaration","scope":3506,"src":"1384:21:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3452,"name":"bytes","nodeType":"ElementaryTypeName","src":"1384:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3455,"mutability":"mutable","name":"cursor","nameLocation":"1415:6:26","nodeType":"VariableDeclaration","scope":3506,"src":"1407:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3454,"name":"uint256","nodeType":"ElementaryTypeName","src":"1407:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1365:57:26"},"scope":3702,"src":"1251:742:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3548,"nodeType":"Block","src":"2105:203:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3515,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3508,"src":"2119:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2127:6:26","memberName":"length","nodeType":"MemberAccess","src":"2119:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3136","id":3517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2137:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2119:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3519,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3508,"src":"2143:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2151:6:26","memberName":"length","nodeType":"MemberAccess","src":"2143:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3332","id":3521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2161:2:26","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2143:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2119:44:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3527,"nodeType":"IfStatement","src":"2115:90:26","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3524,"name":"Executor_InvalidLzReceiveOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"2172:31:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2172:33:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3526,"nodeType":"RevertStatement","src":"2165:40:26"}},{"expression":{"id":3533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3528,"name":"gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3511,"src":"2215:3:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":3531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2236:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3529,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3508,"src":"2221:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2229:6:26","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":3268,"src":"2221:14:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":3532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2221:17:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2215:23:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":3534,"nodeType":"ExpressionStatement","src":"2215:23:26"},{"expression":{"id":3546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3535,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3513,"src":"2248:5:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3536,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3508,"src":"2256:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2264:6:26","memberName":"length","nodeType":"MemberAccess","src":"2256:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":3538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2274:2:26","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2256:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2300:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2256:45:26","trueExpression":{"arguments":[{"hexValue":"3136","id":3542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2294:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"expression":{"id":3540,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3508,"src":"2279:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2287:6:26","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":3268,"src":"2279:14:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":3543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2279:18:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2248:53:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":3547,"nodeType":"ExpressionStatement","src":"2248:53:26"}]},"id":3549,"implemented":true,"kind":"function","modifiers":[],"name":"decodeLzReceiveOption","nameLocation":"2008:21:26","nodeType":"FunctionDefinition","parameters":{"id":3509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3508,"mutability":"mutable","name":"_option","nameLocation":"2045:7:26","nodeType":"VariableDeclaration","scope":3549,"src":"2030:22:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3507,"name":"bytes","nodeType":"ElementaryTypeName","src":"2030:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2029:24:26"},"returnParameters":{"id":3514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3511,"mutability":"mutable","name":"gas","nameLocation":"2085:3:26","nodeType":"VariableDeclaration","scope":3549,"src":"2077:11:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3510,"name":"uint128","nodeType":"ElementaryTypeName","src":"2077:7:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":3513,"mutability":"mutable","name":"value","nameLocation":"2098:5:26","nodeType":"VariableDeclaration","scope":3549,"src":"2090:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3512,"name":"uint128","nodeType":"ElementaryTypeName","src":"2090:7:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2076:28:26"},"scope":3702,"src":"1999:309:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3580,"nodeType":"Block","src":"2427:158:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3558,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3551,"src":"2441:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2449:6:26","memberName":"length","nodeType":"MemberAccess","src":"2441:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3438","id":3560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2459:2:26","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"src":"2441:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3565,"nodeType":"IfStatement","src":"2437:67:26","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3562,"name":"Executor_InvalidNativeDropOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3441,"src":"2470:32:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2470:34:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3564,"nodeType":"RevertStatement","src":"2463:41:26"}},{"expression":{"id":3571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3566,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3554,"src":"2514:6:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":3569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2538:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3567,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3551,"src":"2523:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2531:6:26","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":3268,"src":"2523:14:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":3570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2523:17:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2514:26:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":3572,"nodeType":"ExpressionStatement","src":"2514:26:26"},{"expression":{"id":3578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3573,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3556,"src":"2550:8:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3136","id":3576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2575:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"expression":{"id":3574,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3551,"src":"2561:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2569:5:26","memberName":"toB32","nodeType":"MemberAccess","referencedDeclaration":3349,"src":"2561:13:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (bytes32)"}},"id":3577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2561:17:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2550:28:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3579,"nodeType":"ExpressionStatement","src":"2550:28:26"}]},"id":3581,"implemented":true,"kind":"function","modifiers":[],"name":"decodeNativeDropOption","nameLocation":"2323:22:26","nodeType":"FunctionDefinition","parameters":{"id":3552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3551,"mutability":"mutable","name":"_option","nameLocation":"2361:7:26","nodeType":"VariableDeclaration","scope":3581,"src":"2346:22:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3550,"name":"bytes","nodeType":"ElementaryTypeName","src":"2346:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2345:24:26"},"returnParameters":{"id":3557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3554,"mutability":"mutable","name":"amount","nameLocation":"2401:6:26","nodeType":"VariableDeclaration","scope":3581,"src":"2393:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3553,"name":"uint128","nodeType":"ElementaryTypeName","src":"2393:7:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":3556,"mutability":"mutable","name":"receiver","nameLocation":"2417:8:26","nodeType":"VariableDeclaration","scope":3581,"src":"2409:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2409:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2392:34:26"},"scope":3702,"src":"2314:271:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3632,"nodeType":"Block","src":"2725:237:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3592,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"2739:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2747:6:26","memberName":"length","nodeType":"MemberAccess","src":"2739:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3138","id":3594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2757:2:26","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"2739:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3596,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"2763:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2771:6:26","memberName":"length","nodeType":"MemberAccess","src":"2763:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3334","id":3598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2781:2:26","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"2763:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2739:44:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3604,"nodeType":"IfStatement","src":"2735:90:26","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3601,"name":"Executor_InvalidLzComposeOption","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3443,"src":"2792:31:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2792:33:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3603,"nodeType":"RevertStatement","src":"2785:40:26"}},{"expression":{"id":3610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3605,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3586,"src":"2835:5:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":3608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2857:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3606,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"2843:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2851:5:26","memberName":"toU16","nodeType":"MemberAccess","referencedDeclaration":3184,"src":"2843:13:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint16_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint16)"}},"id":3609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2843:16:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2835:24:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":3611,"nodeType":"ExpressionStatement","src":"2835:24:26"},{"expression":{"id":3617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3612,"name":"gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3588,"src":"2869:3:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"32","id":3615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2890:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":3613,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"2875:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2883:6:26","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":3268,"src":"2875:14:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":3616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2875:17:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2869:23:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":3618,"nodeType":"ExpressionStatement","src":"2869:23:26"},{"expression":{"id":3630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3619,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3590,"src":"2902:5:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3620,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"2910:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2918:6:26","memberName":"length","nodeType":"MemberAccess","src":"2910:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":3622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2928:2:26","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"2910:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2954:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2910:45:26","trueExpression":{"arguments":[{"hexValue":"3138","id":3626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2948:2:26","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"expression":{"id":3624,"name":"_option","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"2933:7:26","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2941:6:26","memberName":"toU128","nodeType":"MemberAccess","referencedDeclaration":3268,"src":"2933:14:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint128_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint128)"}},"id":3627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2933:18:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2902:53:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":3631,"nodeType":"ExpressionStatement","src":"2902:53:26"}]},"id":3633,"implemented":true,"kind":"function","modifiers":[],"name":"decodeLzComposeOption","nameLocation":"2600:21:26","nodeType":"FunctionDefinition","parameters":{"id":3584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3583,"mutability":"mutable","name":"_option","nameLocation":"2646:7:26","nodeType":"VariableDeclaration","scope":3633,"src":"2631:22:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3582,"name":"bytes","nodeType":"ElementaryTypeName","src":"2631:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2621:38:26"},"returnParameters":{"id":3591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3586,"mutability":"mutable","name":"index","nameLocation":"2690:5:26","nodeType":"VariableDeclaration","scope":3633,"src":"2683:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3585,"name":"uint16","nodeType":"ElementaryTypeName","src":"2683:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3588,"mutability":"mutable","name":"gas","nameLocation":"2705:3:26","nodeType":"VariableDeclaration","scope":3633,"src":"2697:11:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3587,"name":"uint128","nodeType":"ElementaryTypeName","src":"2697:7:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":3590,"mutability":"mutable","name":"value","nameLocation":"2718:5:26","nodeType":"VariableDeclaration","scope":3633,"src":"2710:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3589,"name":"uint128","nodeType":"ElementaryTypeName","src":"2710:7:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2682:42:26"},"scope":3702,"src":"2591:371:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3656,"nodeType":"Block","src":"3066:93:26","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":3644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3642,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3637,"src":"3083:6:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3093:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3083:11:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":3651,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3635,"src":"3139:4:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":3652,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3637,"src":"3145:6:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":3649,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3122:3:26","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3126:12:26","memberName":"encodePacked","nodeType":"MemberAccess","src":"3122:16:26","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3122:30:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3083:69:26","trueExpression":{"arguments":[{"id":3647,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3635,"src":"3114:4:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":3645,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3097:3:26","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3101:12:26","memberName":"encodePacked","nodeType":"MemberAccess","src":"3097:16:26","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3097:22:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3641,"id":3655,"nodeType":"Return","src":"3076:76:26"}]},"id":3657,"implemented":true,"kind":"function","modifiers":[],"name":"encodeLzReceiveOption","nameLocation":"2977:21:26","nodeType":"FunctionDefinition","parameters":{"id":3638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3635,"mutability":"mutable","name":"_gas","nameLocation":"3007:4:26","nodeType":"VariableDeclaration","scope":3657,"src":"2999:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3634,"name":"uint128","nodeType":"ElementaryTypeName","src":"2999:7:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":3637,"mutability":"mutable","name":"_value","nameLocation":"3021:6:26","nodeType":"VariableDeclaration","scope":3657,"src":"3013:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3636,"name":"uint128","nodeType":"ElementaryTypeName","src":"3013:7:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2998:30:26"},"returnParameters":{"id":3641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3657,"src":"3052:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3639,"name":"bytes","nodeType":"ElementaryTypeName","src":"3052:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3051:14:26"},"scope":3702,"src":"2968:191:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3672,"nodeType":"Block","src":"3270:60:26","statements":[{"expression":{"arguments":[{"id":3668,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"3304:7:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":3669,"name":"_receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3661,"src":"3313:9:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3666,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3287:3:26","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3291:12:26","memberName":"encodePacked","nodeType":"MemberAccess","src":"3287:16:26","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3287:36:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3665,"id":3671,"nodeType":"Return","src":"3280:43:26"}]},"id":3673,"implemented":true,"kind":"function","modifiers":[],"name":"encodeNativeDropOption","nameLocation":"3174:22:26","nodeType":"FunctionDefinition","parameters":{"id":3662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3659,"mutability":"mutable","name":"_amount","nameLocation":"3205:7:26","nodeType":"VariableDeclaration","scope":3673,"src":"3197:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3658,"name":"uint128","nodeType":"ElementaryTypeName","src":"3197:7:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":3661,"mutability":"mutable","name":"_receiver","nameLocation":"3222:9:26","nodeType":"VariableDeclaration","scope":3673,"src":"3214:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3214:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3196:36:26"},"returnParameters":{"id":3665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3673,"src":"3256:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3663,"name":"bytes","nodeType":"ElementaryTypeName","src":"3256:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3255:14:26"},"scope":3702,"src":"3165:165:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3700,"nodeType":"Block","src":"3449:109:26","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":3686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3684,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"3466:6:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3476:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3466:11:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":3694,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3675,"src":"3530:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3695,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"3538:4:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":3696,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"3544:6:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":3692,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3513:3:26","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3517:12:26","memberName":"encodePacked","nodeType":"MemberAccess","src":"3513:16:26","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3513:38:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3466:85:26","trueExpression":{"arguments":[{"id":3689,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3675,"src":"3497:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3690,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"3505:4:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":3687,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3480:3:26","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3484:12:26","memberName":"encodePacked","nodeType":"MemberAccess","src":"3480:16:26","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3480:30:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3683,"id":3699,"nodeType":"Return","src":"3459:92:26"}]},"id":3701,"implemented":true,"kind":"function","modifiers":[],"name":"encodeLzComposeOption","nameLocation":"3345:21:26","nodeType":"FunctionDefinition","parameters":{"id":3680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3675,"mutability":"mutable","name":"_index","nameLocation":"3374:6:26","nodeType":"VariableDeclaration","scope":3701,"src":"3367:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3674,"name":"uint16","nodeType":"ElementaryTypeName","src":"3367:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3677,"mutability":"mutable","name":"_gas","nameLocation":"3390:4:26","nodeType":"VariableDeclaration","scope":3701,"src":"3382:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3676,"name":"uint128","nodeType":"ElementaryTypeName","src":"3382:7:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":3679,"mutability":"mutable","name":"_value","nameLocation":"3404:6:26","nodeType":"VariableDeclaration","scope":3701,"src":"3396:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3678,"name":"uint128","nodeType":"ElementaryTypeName","src":"3396:7:26","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3366:45:26"},"returnParameters":{"id":3683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3701,"src":"3435:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3681,"name":"bytes","nodeType":"ElementaryTypeName","src":"3435:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3434:14:26"},"scope":3702,"src":"3336:222:26","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3703,"src":"133:3427:26","usedErrors":[3439,3441,3443],"usedEvents":[]}],"src":"38:3523:26"},"id":26},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"ast":{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol","exportedSymbols":{"AddressCast":[3137],"Packet":[2932],"PacketV1Codec":[4026]},"id":4027,"license":"LZBL-1.2","nodeType":"SourceUnit","nodes":[{"id":3704,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"38:24:27"},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol","file":"../../interfaces/ISendLib.sol","id":3706,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4027,"sourceUnit":2985,"src":"64:55:27","symbolAliases":[{"foreign":{"id":3705,"name":"Packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"73:6:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol","file":"../../libs/AddressCast.sol","id":3708,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4027,"sourceUnit":3138,"src":"120:57:27","symbolAliases":[{"foreign":{"id":3707,"name":"AddressCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3137,"src":"129:11:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"PacketV1Codec","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":4026,"linearizedBaseContracts":[4026],"name":"PacketV1Codec","nameLocation":"187:13:27","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3711,"libraryName":{"id":3709,"name":"AddressCast","nameLocations":["213:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":3137,"src":"213:11:27"},"nodeType":"UsingForDirective","src":"207:30:27","typeName":{"id":3710,"name":"address","nodeType":"ElementaryTypeName","src":"229:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":3714,"libraryName":{"id":3712,"name":"AddressCast","nameLocations":["248:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":3137,"src":"248:11:27"},"nodeType":"UsingForDirective","src":"242:30:27","typeName":{"id":3713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"264:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"constant":true,"id":3717,"mutability":"constant","name":"PACKET_VERSION","nameLocation":"302:14:27","nodeType":"VariableDeclaration","scope":4026,"src":"278:42:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3715,"name":"uint8","nodeType":"ElementaryTypeName","src":"278:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":3716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"319:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":3720,"mutability":"constant","name":"PACKET_VERSION_OFFSET","nameLocation":"406:21:27","nodeType":"VariableDeclaration","scope":4026,"src":"381:50:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3718,"name":"uint256","nodeType":"ElementaryTypeName","src":"381:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":3719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"430:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":3723,"mutability":"constant","name":"NONCE_OFFSET","nameLocation":"478:12:27","nodeType":"VariableDeclaration","scope":4026,"src":"453:41:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3721,"name":"uint256","nodeType":"ElementaryTypeName","src":"453:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":3722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"493:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":3726,"mutability":"constant","name":"SRC_EID_OFFSET","nameLocation":"540:14:27","nodeType":"VariableDeclaration","scope":4026,"src":"515:43:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3724,"name":"uint256","nodeType":"ElementaryTypeName","src":"515:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"39","id":3725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"557:1:27","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"visibility":"private"},{"constant":true,"id":3729,"mutability":"constant","name":"SENDER_OFFSET","nameLocation":"589:13:27","nodeType":"VariableDeclaration","scope":4026,"src":"564:43:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3727,"name":"uint256","nodeType":"ElementaryTypeName","src":"564:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3133","id":3728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"605:2:27","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"13"},"visibility":"private"},{"constant":true,"id":3732,"mutability":"constant","name":"DST_EID_OFFSET","nameLocation":"638:14:27","nodeType":"VariableDeclaration","scope":4026,"src":"613:44:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3730,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3435","id":3731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"655:2:27","typeDescriptions":{"typeIdentifier":"t_rational_45_by_1","typeString":"int_const 45"},"value":"45"},"visibility":"private"},{"constant":true,"id":3735,"mutability":"constant","name":"RECEIVER_OFFSET","nameLocation":"688:15:27","nodeType":"VariableDeclaration","scope":4026,"src":"663:45:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3733,"name":"uint256","nodeType":"ElementaryTypeName","src":"663:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3439","id":3734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"706:2:27","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"visibility":"private"},{"constant":true,"id":3738,"mutability":"constant","name":"GUID_OFFSET","nameLocation":"771:11:27","nodeType":"VariableDeclaration","scope":4026,"src":"746:41:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3736,"name":"uint256","nodeType":"ElementaryTypeName","src":"746:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3831","id":3737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"785:2:27","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"81"},"visibility":"private"},{"constant":true,"id":3741,"mutability":"constant","name":"MESSAGE_OFFSET","nameLocation":"845:14:27","nodeType":"VariableDeclaration","scope":4026,"src":"820:45:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3739,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313133","id":3740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"862:3:27","typeDescriptions":{"typeIdentifier":"t_rational_113_by_1","typeString":"int_const 113"},"value":"113"},"visibility":"private"},{"body":{"id":3772,"nodeType":"Block","src":"962:295:27","statements":[{"expression":{"id":3770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3749,"name":"encodedPacket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3747,"src":"972:13:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3752,"name":"PACKET_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3717,"src":"1018:14:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":3753,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3744,"src":"1046:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1054:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":2919,"src":"1046:13:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":3755,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3744,"src":"1073:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1081:6:27","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":2921,"src":"1073:14:27","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":3757,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3744,"src":"1101:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1109:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":2923,"src":"1101:14:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1116:9:27","memberName":"toBytes32","nodeType":"MemberAccess","referencedDeclaration":3051,"src":"1101:24:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address) pure returns (bytes32)"}},"id":3760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1101:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3761,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3744,"src":"1141:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1149:6:27","memberName":"dstEid","nodeType":"MemberAccess","referencedDeclaration":2925,"src":"1141:14:27","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"id":3763,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3744,"src":"1169:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1177:8:27","memberName":"receiver","nodeType":"MemberAccess","referencedDeclaration":2927,"src":"1169:16:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3765,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3744,"src":"1199:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1207:4:27","memberName":"guid","nodeType":"MemberAccess","referencedDeclaration":2929,"src":"1199:12:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3767,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3744,"src":"1225:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1233:7:27","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":2931,"src":"1225:15:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3750,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"988:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"992:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"988:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:262:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"972:278:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3771,"nodeType":"ExpressionStatement","src":"972:278:27"}]},"id":3773,"implemented":true,"kind":"function","modifiers":[],"name":"encode","nameLocation":"881:6:27","nodeType":"FunctionDefinition","parameters":{"id":3745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3744,"mutability":"mutable","name":"_packet","nameLocation":"902:7:27","nodeType":"VariableDeclaration","scope":3773,"src":"888:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet"},"typeName":{"id":3743,"nodeType":"UserDefinedTypeName","pathNode":{"id":3742,"name":"Packet","nameLocations":["888:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":2932,"src":"888:6:27"},"referencedDeclaration":2932,"src":"888:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_storage_ptr","typeString":"struct Packet"}},"visibility":"internal"}],"src":"887:23:27"},"returnParameters":{"id":3748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3747,"mutability":"mutable","name":"encodedPacket","nameLocation":"947:13:27","nodeType":"VariableDeclaration","scope":3773,"src":"934:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3746,"name":"bytes","nodeType":"ElementaryTypeName","src":"934:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"933:28:27"},"scope":4026,"src":"872:385:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3798,"nodeType":"Block","src":"1351:271:27","statements":[{"expression":{"arguments":[{"id":3783,"name":"PACKET_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3717,"src":"1414:14:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":3784,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"1446:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1454:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":2919,"src":"1446:13:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":3786,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"1477:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3787,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1485:6:27","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":2921,"src":"1477:14:27","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":3788,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"1509:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1517:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":2923,"src":"1509:14:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1524:9:27","memberName":"toBytes32","nodeType":"MemberAccess","referencedDeclaration":3051,"src":"1509:24:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address) pure returns (bytes32)"}},"id":3791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1509:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3792,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"1553:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1561:6:27","memberName":"dstEid","nodeType":"MemberAccess","referencedDeclaration":2925,"src":"1553:14:27","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"id":3794,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"1585:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1593:8:27","memberName":"receiver","nodeType":"MemberAccess","referencedDeclaration":2927,"src":"1585:16:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3781,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1380:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1384:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"1380:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1380:235:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3780,"id":3797,"nodeType":"Return","src":"1361:254:27"}]},"id":3799,"implemented":true,"kind":"function","modifiers":[],"name":"encodePacketHeader","nameLocation":"1272:18:27","nodeType":"FunctionDefinition","parameters":{"id":3777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3776,"mutability":"mutable","name":"_packet","nameLocation":"1305:7:27","nodeType":"VariableDeclaration","scope":3799,"src":"1291:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet"},"typeName":{"id":3775,"nodeType":"UserDefinedTypeName","pathNode":{"id":3774,"name":"Packet","nameLocations":["1291:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":2932,"src":"1291:6:27"},"referencedDeclaration":2932,"src":"1291:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_storage_ptr","typeString":"struct Packet"}},"visibility":"internal"}],"src":"1290:23:27"},"returnParameters":{"id":3780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3799,"src":"1337:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3778,"name":"bytes","nodeType":"ElementaryTypeName","src":"1337:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1336:14:27"},"scope":4026,"src":"1263:359:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3815,"nodeType":"Block","src":"1711:71:27","statements":[{"expression":{"arguments":[{"expression":{"id":3809,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"1745:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1753:4:27","memberName":"guid","nodeType":"MemberAccess","referencedDeclaration":2929,"src":"1745:12:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3811,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"1759:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet memory"}},"id":3812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1767:7:27","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":2931,"src":"1759:15:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3807,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1728:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1732:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"1728:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1728:47:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3806,"id":3814,"nodeType":"Return","src":"1721:54:27"}]},"id":3816,"implemented":true,"kind":"function","modifiers":[],"name":"encodePayload","nameLocation":"1637:13:27","nodeType":"FunctionDefinition","parameters":{"id":3803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3802,"mutability":"mutable","name":"_packet","nameLocation":"1665:7:27","nodeType":"VariableDeclaration","scope":3816,"src":"1651:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_memory_ptr","typeString":"struct Packet"},"typeName":{"id":3801,"nodeType":"UserDefinedTypeName","pathNode":{"id":3800,"name":"Packet","nameLocations":["1651:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":2932,"src":"1651:6:27"},"referencedDeclaration":2932,"src":"1651:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Packet_$2932_storage_ptr","typeString":"struct Packet"}},"visibility":"internal"}],"src":"1650:23:27"},"returnParameters":{"id":3806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3816,"src":"1697:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3804,"name":"bytes","nodeType":"ElementaryTypeName","src":"1697:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1696:14:27"},"scope":4026,"src":"1628:154:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3828,"nodeType":"Block","src":"1867:46:27","statements":[{"expression":{"baseExpression":{"id":3823,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"1884:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3825,"name":"GUID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3738,"src":"1894:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1884:22:27","startExpression":{"hexValue":"30","id":3824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1892:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"functionReturnParameters":3822,"id":3827,"nodeType":"Return","src":"1877:29:27"}]},"id":3829,"implemented":true,"kind":"function","modifiers":[],"name":"header","nameLocation":"1797:6:27","nodeType":"FunctionDefinition","parameters":{"id":3819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3818,"mutability":"mutable","name":"_packet","nameLocation":"1819:7:27","nodeType":"VariableDeclaration","scope":3829,"src":"1804:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3817,"name":"bytes","nodeType":"ElementaryTypeName","src":"1804:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1803:24:27"},"returnParameters":{"id":3822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3829,"src":"1851:14:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3820,"name":"bytes","nodeType":"ElementaryTypeName","src":"1851:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1850:16:27"},"scope":4026,"src":"1788:125:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3847,"nodeType":"Block","src":"1990:82:27","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":3840,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3831,"src":"2020:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3842,"name":"NONCE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3723,"src":"2050:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2020:43:27","startExpression":{"id":3841,"name":"PACKET_VERSION_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"2028:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2013:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":3838,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2013:6:27","typeDescriptions":{}}},"id":3844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2013:51:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":3837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2007:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3836,"name":"uint8","nodeType":"ElementaryTypeName","src":"2007:5:27","typeDescriptions":{}}},"id":3845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2007:58:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":3835,"id":3846,"nodeType":"Return","src":"2000:65:27"}]},"id":3848,"implemented":true,"kind":"function","modifiers":[],"name":"version","nameLocation":"1928:7:27","nodeType":"FunctionDefinition","parameters":{"id":3832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3831,"mutability":"mutable","name":"_packet","nameLocation":"1951:7:27","nodeType":"VariableDeclaration","scope":3848,"src":"1936:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3830,"name":"bytes","nodeType":"ElementaryTypeName","src":"1936:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1935:24:27"},"returnParameters":{"id":3835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3834,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3848,"src":"1983:5:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3833,"name":"uint8","nodeType":"ElementaryTypeName","src":"1983:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1982:7:27"},"scope":4026,"src":"1919:153:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3866,"nodeType":"Block","src":"2148:76:27","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":3859,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"2179:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3861,"name":"SRC_EID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3726,"src":"2200:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2179:36:27","startExpression":{"id":3860,"name":"NONCE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3723,"src":"2187:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2172:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes8_$","typeString":"type(bytes8)"},"typeName":{"id":3857,"name":"bytes8","nodeType":"ElementaryTypeName","src":"2172:6:27","typeDescriptions":{}}},"id":3863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2172:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":3856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2165:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":3855,"name":"uint64","nodeType":"ElementaryTypeName","src":"2165:6:27","typeDescriptions":{}}},"id":3864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2165:52:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":3854,"id":3865,"nodeType":"Return","src":"2158:59:27"}]},"id":3867,"implemented":true,"kind":"function","modifiers":[],"name":"nonce","nameLocation":"2087:5:27","nodeType":"FunctionDefinition","parameters":{"id":3851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3850,"mutability":"mutable","name":"_packet","nameLocation":"2108:7:27","nodeType":"VariableDeclaration","scope":3867,"src":"2093:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3849,"name":"bytes","nodeType":"ElementaryTypeName","src":"2093:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2092:24:27"},"returnParameters":{"id":3854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3867,"src":"2140:6:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3852,"name":"uint64","nodeType":"ElementaryTypeName","src":"2140:6:27","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2139:8:27"},"scope":4026,"src":"2078:146:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3885,"nodeType":"Block","src":"2301:77:27","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":3878,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"2332:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3880,"name":"SENDER_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3729,"src":"2355:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2332:37:27","startExpression":{"id":3879,"name":"SRC_EID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3726,"src":"2340:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2325:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":3876,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2325:6:27","typeDescriptions":{}}},"id":3882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2325:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":3875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2318:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":3874,"name":"uint32","nodeType":"ElementaryTypeName","src":"2318:6:27","typeDescriptions":{}}},"id":3883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2318:53:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":3873,"id":3884,"nodeType":"Return","src":"2311:60:27"}]},"id":3886,"implemented":true,"kind":"function","modifiers":[],"name":"srcEid","nameLocation":"2239:6:27","nodeType":"FunctionDefinition","parameters":{"id":3870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3869,"mutability":"mutable","name":"_packet","nameLocation":"2261:7:27","nodeType":"VariableDeclaration","scope":3886,"src":"2246:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3868,"name":"bytes","nodeType":"ElementaryTypeName","src":"2246:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2245:24:27"},"returnParameters":{"id":3873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3872,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3886,"src":"2293:6:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3871,"name":"uint32","nodeType":"ElementaryTypeName","src":"2293:6:27","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2292:8:27"},"scope":4026,"src":"2230:148:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3901,"nodeType":"Block","src":"2456:70:27","statements":[{"expression":{"arguments":[{"baseExpression":{"id":3895,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3888,"src":"2481:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3897,"name":"DST_EID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"2503:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2481:37:27","startExpression":{"id":3896,"name":"SENDER_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3729,"src":"2489:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2473:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2473:7:27","typeDescriptions":{}}},"id":3899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2473:46:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3892,"id":3900,"nodeType":"Return","src":"2466:53:27"}]},"id":3902,"implemented":true,"kind":"function","modifiers":[],"name":"sender","nameLocation":"2393:6:27","nodeType":"FunctionDefinition","parameters":{"id":3889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3888,"mutability":"mutable","name":"_packet","nameLocation":"2415:7:27","nodeType":"VariableDeclaration","scope":3902,"src":"2400:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3887,"name":"bytes","nodeType":"ElementaryTypeName","src":"2400:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2399:24:27"},"returnParameters":{"id":3892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3891,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3902,"src":"2447:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3890,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2447:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2446:9:27"},"scope":4026,"src":"2384:142:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3915,"nodeType":"Block","src":"2614:51:27","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":3910,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"2638:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3909,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"2631:6:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata) pure returns (bytes32)"}},"id":3911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2631:15:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2647:9:27","memberName":"toAddress","nodeType":"MemberAccess","referencedDeclaration":3110,"src":"2631:25:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (address)"}},"id":3913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2631:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3908,"id":3914,"nodeType":"Return","src":"2624:34:27"}]},"id":3916,"implemented":true,"kind":"function","modifiers":[],"name":"senderAddressB20","nameLocation":"2541:16:27","nodeType":"FunctionDefinition","parameters":{"id":3905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3904,"mutability":"mutable","name":"_packet","nameLocation":"2573:7:27","nodeType":"VariableDeclaration","scope":3916,"src":"2558:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3903,"name":"bytes","nodeType":"ElementaryTypeName","src":"2558:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2557:24:27"},"returnParameters":{"id":3908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3916,"src":"2605:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3906,"name":"address","nodeType":"ElementaryTypeName","src":"2605:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2604:9:27"},"scope":4026,"src":"2532:133:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3934,"nodeType":"Block","src":"2742:79:27","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":3927,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3918,"src":"2773:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3929,"name":"RECEIVER_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"2796:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2773:39:27","startExpression":{"id":3928,"name":"DST_EID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"2781:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2766:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":3925,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2766:6:27","typeDescriptions":{}}},"id":3931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2766:47:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":3924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2759:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":3923,"name":"uint32","nodeType":"ElementaryTypeName","src":"2759:6:27","typeDescriptions":{}}},"id":3932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2759:55:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":3922,"id":3933,"nodeType":"Return","src":"2752:62:27"}]},"id":3935,"implemented":true,"kind":"function","modifiers":[],"name":"dstEid","nameLocation":"2680:6:27","nodeType":"FunctionDefinition","parameters":{"id":3919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3918,"mutability":"mutable","name":"_packet","nameLocation":"2702:7:27","nodeType":"VariableDeclaration","scope":3935,"src":"2687:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3917,"name":"bytes","nodeType":"ElementaryTypeName","src":"2687:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2686:24:27"},"returnParameters":{"id":3922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3921,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3935,"src":"2734:6:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3920,"name":"uint32","nodeType":"ElementaryTypeName","src":"2734:6:27","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2733:8:27"},"scope":4026,"src":"2671:150:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3950,"nodeType":"Block","src":"2901:69:27","statements":[{"expression":{"arguments":[{"baseExpression":{"id":3944,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"2926:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3946,"name":"GUID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3738,"src":"2950:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2926:36:27","startExpression":{"id":3945,"name":"RECEIVER_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"2934:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2918:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3942,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2918:7:27","typeDescriptions":{}}},"id":3948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2918:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3941,"id":3949,"nodeType":"Return","src":"2911:52:27"}]},"id":3951,"implemented":true,"kind":"function","modifiers":[],"name":"receiver","nameLocation":"2836:8:27","nodeType":"FunctionDefinition","parameters":{"id":3938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3937,"mutability":"mutable","name":"_packet","nameLocation":"2860:7:27","nodeType":"VariableDeclaration","scope":3951,"src":"2845:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3936,"name":"bytes","nodeType":"ElementaryTypeName","src":"2845:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2844:24:27"},"returnParameters":{"id":3941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3951,"src":"2892:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3939,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2892:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2891:9:27"},"scope":4026,"src":"2827:143:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3964,"nodeType":"Block","src":"3053:53:27","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":3959,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3953,"src":"3079:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3958,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"3070:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata) pure returns (bytes32)"}},"id":3960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3070:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3088:9:27","memberName":"toAddress","nodeType":"MemberAccess","referencedDeclaration":3110,"src":"3070:27:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (address)"}},"id":3962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3070:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3957,"id":3963,"nodeType":"Return","src":"3063:36:27"}]},"id":3965,"implemented":true,"kind":"function","modifiers":[],"name":"receiverB20","nameLocation":"2985:11:27","nodeType":"FunctionDefinition","parameters":{"id":3954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3953,"mutability":"mutable","name":"_packet","nameLocation":"3012:7:27","nodeType":"VariableDeclaration","scope":3965,"src":"2997:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3952,"name":"bytes","nodeType":"ElementaryTypeName","src":"2997:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2996:24:27"},"returnParameters":{"id":3957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3956,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3965,"src":"3044:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3955,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3043:9:27"},"scope":4026,"src":"2976:130:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3980,"nodeType":"Block","src":"3182:68:27","statements":[{"expression":{"arguments":[{"baseExpression":{"id":3974,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3967,"src":"3207:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":3976,"name":"MESSAGE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"3227:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"3207:35:27","startExpression":{"id":3975,"name":"GUID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3738,"src":"3215:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3199:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3972,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3199:7:27","typeDescriptions":{}}},"id":3978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3199:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3971,"id":3979,"nodeType":"Return","src":"3192:51:27"}]},"id":3981,"implemented":true,"kind":"function","modifiers":[],"name":"guid","nameLocation":"3121:4:27","nodeType":"FunctionDefinition","parameters":{"id":3968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3967,"mutability":"mutable","name":"_packet","nameLocation":"3141:7:27","nodeType":"VariableDeclaration","scope":3981,"src":"3126:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3966,"name":"bytes","nodeType":"ElementaryTypeName","src":"3126:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3125:24:27"},"returnParameters":{"id":3971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3981,"src":"3173:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3173:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3172:9:27"},"scope":4026,"src":"3112:138:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3995,"nodeType":"Block","src":"3336:55:27","statements":[{"expression":{"arguments":[{"baseExpression":{"id":3990,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3983,"src":"3359:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"3359:24:27","startExpression":{"id":3991,"name":"MESSAGE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"3367:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":3989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3353:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3988,"name":"bytes","nodeType":"ElementaryTypeName","src":"3353:5:27","typeDescriptions":{}}},"id":3993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3353:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":3987,"id":3994,"nodeType":"Return","src":"3346:38:27"}]},"id":3996,"implemented":true,"kind":"function","modifiers":[],"name":"message","nameLocation":"3265:7:27","nodeType":"FunctionDefinition","parameters":{"id":3984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3983,"mutability":"mutable","name":"_packet","nameLocation":"3288:7:27","nodeType":"VariableDeclaration","scope":3996,"src":"3273:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3982,"name":"bytes","nodeType":"ElementaryTypeName","src":"3273:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3272:24:27"},"returnParameters":{"id":3987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3986,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3996,"src":"3320:14:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3985,"name":"bytes","nodeType":"ElementaryTypeName","src":"3320:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3319:16:27"},"scope":4026,"src":"3256:135:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4010,"nodeType":"Block","src":"3477:52:27","statements":[{"expression":{"arguments":[{"baseExpression":{"id":4005,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3998,"src":"3500:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"3500:21:27","startExpression":{"id":4006,"name":"GUID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3738,"src":"3508:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3494:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4003,"name":"bytes","nodeType":"ElementaryTypeName","src":"3494:5:27","typeDescriptions":{}}},"id":4008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3494:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":4002,"id":4009,"nodeType":"Return","src":"3487:35:27"}]},"id":4011,"implemented":true,"kind":"function","modifiers":[],"name":"payload","nameLocation":"3406:7:27","nodeType":"FunctionDefinition","parameters":{"id":3999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3998,"mutability":"mutable","name":"_packet","nameLocation":"3429:7:27","nodeType":"VariableDeclaration","scope":4011,"src":"3414:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3997,"name":"bytes","nodeType":"ElementaryTypeName","src":"3414:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3413:24:27"},"returnParameters":{"id":4002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4001,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4011,"src":"3461:14:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4000,"name":"bytes","nodeType":"ElementaryTypeName","src":"3461:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3460:16:27"},"scope":4026,"src":"3397:132:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4024,"nodeType":"Block","src":"3612:51:27","statements":[{"expression":{"arguments":[{"arguments":[{"id":4020,"name":"_packet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4013,"src":"3647:7:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4019,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4011,"src":"3639:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (bytes calldata)"}},"id":4021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3639:16:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4018,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3629:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3629:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4017,"id":4023,"nodeType":"Return","src":"3622:34:27"}]},"id":4025,"implemented":true,"kind":"function","modifiers":[],"name":"payloadHash","nameLocation":"3544:11:27","nodeType":"FunctionDefinition","parameters":{"id":4014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4013,"mutability":"mutable","name":"_packet","nameLocation":"3571:7:27","nodeType":"VariableDeclaration","scope":4025,"src":"3556:22:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4012,"name":"bytes","nodeType":"ElementaryTypeName","src":"3556:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3555:24:27"},"returnParameters":{"id":4017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4025,"src":"3603:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4015,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3603:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3602:9:27"},"scope":4026,"src":"3535:128:27","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4027,"src":"179:3486:27","usedErrors":[],"usedEvents":[]}],"src":"38:3628:27"},"id":27},"@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol":{"ast":{"absolutePath":"@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol","exportedSymbols":{"ONFTComposeMsgCodec":[4182]},"id":4183,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4028,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"33:24:28"},{"abstract":false,"baseContracts":[],"canonicalName":"ONFTComposeMsgCodec","contractDependencies":[],"contractKind":"library","documentation":{"id":4029,"nodeType":"StructuredDocumentation","src":"59:109:28","text":"@title ONFT Composed Message Codec\n @notice Library for encoding and decoding ONFT composed messages."},"fullyImplemented":true,"id":4182,"linearizedBaseContracts":[4182],"name":"ONFTComposeMsgCodec","nameLocation":"176:19:28","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":4032,"mutability":"constant","name":"NONCE_OFFSET","nameLocation":"280:12:28","nodeType":"VariableDeclaration","scope":4182,"src":"257:39:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4030,"name":"uint8","nodeType":"ElementaryTypeName","src":"257:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"38","id":4031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"295:1:28","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"visibility":"private"},{"constant":true,"id":4035,"mutability":"constant","name":"SRC_EID_OFFSET","nameLocation":"325:14:28","nodeType":"VariableDeclaration","scope":4182,"src":"302:42:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4033,"name":"uint8","nodeType":"ElementaryTypeName","src":"302:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3132","id":4034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"342:2:28","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"private"},{"constant":true,"id":4038,"mutability":"constant","name":"COMPOSE_FROM_OFFSET","nameLocation":"373:19:28","nodeType":"VariableDeclaration","scope":4182,"src":"350:47:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4036,"name":"uint8","nodeType":"ElementaryTypeName","src":"350:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3434","id":4037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"395:2:28","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"visibility":"private"},{"body":{"id":4059,"nodeType":"Block","src":"854:73:28","statements":[{"expression":{"id":4057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4050,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4048,"src":"864:7:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4053,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4041,"src":"891:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":4054,"name":"_srcEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4043,"src":"899:7:28","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":4055,"name":"_composeMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4045,"src":"908:11:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4051,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"874:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"878:12:28","memberName":"encodePacked","nodeType":"MemberAccess","src":"874:16:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"874:46:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"864:56:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4058,"nodeType":"ExpressionStatement","src":"864:56:28"}]},"documentation":{"id":4039,"nodeType":"StructuredDocumentation","src":"404:266:28","text":"@dev Encodes a ONFT721 composed message.\n @param _nonce The nonce value.\n @param _srcEid The source LayerZero endpoint ID.\n @param _composeMsg The composed message.\n @return payload The encoded payload, including the composed message."},"id":4060,"implemented":true,"kind":"function","modifiers":[],"name":"encode","nameLocation":"684:6:28","nodeType":"FunctionDefinition","parameters":{"id":4046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4041,"mutability":"mutable","name":"_nonce","nameLocation":"707:6:28","nodeType":"VariableDeclaration","scope":4060,"src":"700:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4040,"name":"uint64","nodeType":"ElementaryTypeName","src":"700:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4043,"mutability":"mutable","name":"_srcEid","nameLocation":"730:7:28","nodeType":"VariableDeclaration","scope":4060,"src":"723:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4042,"name":"uint32","nodeType":"ElementaryTypeName","src":"723:6:28","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":4045,"mutability":"mutable","name":"_composeMsg","nameLocation":"760:11:28","nodeType":"VariableDeclaration","scope":4060,"src":"747:24:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4044,"name":"bytes","nodeType":"ElementaryTypeName","src":"747:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"690:118:28"},"returnParameters":{"id":4049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4048,"mutability":"mutable","name":"payload","nameLocation":"845:7:28","nodeType":"VariableDeclaration","scope":4060,"src":"832:20:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4047,"name":"bytes","nodeType":"ElementaryTypeName","src":"832:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"831:22:28"},"scope":4182,"src":"675:252:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4080,"nodeType":"Block","src":"1150:66:28","statements":[{"expression":{"id":4078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4068,"name":"parsedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"1160:11:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"baseExpression":{"id":4073,"name":"_msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"1188:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":4074,"name":"NONCE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4032,"src":"1194:12:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1188:19:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1181:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes8_$","typeString":"type(bytes8)"},"typeName":{"id":4071,"name":"bytes8","nodeType":"ElementaryTypeName","src":"1181:6:28","typeDescriptions":{}}},"id":4076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1181:27:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":4070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1174:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4069,"name":"uint64","nodeType":"ElementaryTypeName","src":"1174:6:28","typeDescriptions":{}}},"id":4077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1174:35:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1160:49:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":4079,"nodeType":"ExpressionStatement","src":"1160:49:28"}]},"documentation":{"id":4061,"nodeType":"StructuredDocumentation","src":"933:133:28","text":"@dev Retrieves the nonce from the composed message.\n @param _msg The message.\n @return parsedNonce The nonce value."},"id":4081,"implemented":true,"kind":"function","modifiers":[],"name":"nonce","nameLocation":"1080:5:28","nodeType":"FunctionDefinition","parameters":{"id":4064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4063,"mutability":"mutable","name":"_msg","nameLocation":"1101:4:28","nodeType":"VariableDeclaration","scope":4081,"src":"1086:19:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4062,"name":"bytes","nodeType":"ElementaryTypeName","src":"1086:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1085:21:28"},"returnParameters":{"id":4067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4066,"mutability":"mutable","name":"parsedNonce","nameLocation":"1137:11:28","nodeType":"VariableDeclaration","scope":4081,"src":"1130:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4065,"name":"uint64","nodeType":"ElementaryTypeName","src":"1130:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1129:20:28"},"scope":4182,"src":"1071:145:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4102,"nodeType":"Block","src":"1482:81:28","statements":[{"expression":{"id":4100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4089,"name":"parsedSrcEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4087,"src":"1492:12:28","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"baseExpression":{"id":4094,"name":"_msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4084,"src":"1521:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":4096,"name":"SRC_EID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4035,"src":"1539:14:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1521:33:28","startExpression":{"id":4095,"name":"NONCE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4032,"src":"1526:12:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1514:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":4092,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1514:6:28","typeDescriptions":{}}},"id":4098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1514:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":4091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1507:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":4090,"name":"uint32","nodeType":"ElementaryTypeName","src":"1507:6:28","typeDescriptions":{}}},"id":4099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1507:49:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1492:64:28","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":4101,"nodeType":"ExpressionStatement","src":"1492:64:28"}]},"documentation":{"id":4082,"nodeType":"StructuredDocumentation","src":"1222:174:28","text":"@dev Retrieves the source LayerZero endpoint ID from the composed message.\n @param _msg The message.\n @return parsedSrcEid The source LayerZero endpoint ID."},"id":4103,"implemented":true,"kind":"function","modifiers":[],"name":"srcEid","nameLocation":"1410:6:28","nodeType":"FunctionDefinition","parameters":{"id":4085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4084,"mutability":"mutable","name":"_msg","nameLocation":"1432:4:28","nodeType":"VariableDeclaration","scope":4103,"src":"1417:19:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4083,"name":"bytes","nodeType":"ElementaryTypeName","src":"1417:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1416:21:28"},"returnParameters":{"id":4088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4087,"mutability":"mutable","name":"parsedSrcEid","nameLocation":"1468:12:28","nodeType":"VariableDeclaration","scope":4103,"src":"1461:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4086,"name":"uint32","nodeType":"ElementaryTypeName","src":"1461:6:28","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1460:21:28"},"scope":4182,"src":"1401:162:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4121,"nodeType":"Block","src":"1834:86:28","statements":[{"expression":{"id":4119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4111,"name":"parsedComposeFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4109,"src":"1844:17:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":4114,"name":"_msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"1872:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":4116,"name":"COMPOSE_FROM_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4038,"src":"1892:19:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1872:40:28","startExpression":{"id":4115,"name":"SRC_EID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4035,"src":"1877:14:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1864:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1864:7:28","typeDescriptions":{}}},"id":4118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1864:49:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1844:69:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4120,"nodeType":"ExpressionStatement","src":"1844:69:28"}]},"documentation":{"id":4104,"nodeType":"StructuredDocumentation","src":"1569:168:28","text":"@dev Retrieves the composeFrom value from the composed message.\n @param _msg The message.\n @return parsedComposeFrom The composeFrom value as bytes32."},"id":4122,"implemented":true,"kind":"function","modifiers":[],"name":"composeFrom","nameLocation":"1751:11:28","nodeType":"FunctionDefinition","parameters":{"id":4107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4106,"mutability":"mutable","name":"_msg","nameLocation":"1778:4:28","nodeType":"VariableDeclaration","scope":4122,"src":"1763:19:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4105,"name":"bytes","nodeType":"ElementaryTypeName","src":"1763:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1762:21:28"},"returnParameters":{"id":4110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4109,"mutability":"mutable","name":"parsedComposeFrom","nameLocation":"1815:17:28","nodeType":"VariableDeclaration","scope":4122,"src":"1807:25:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1807:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1806:27:28"},"scope":4182,"src":"1742:178:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4136,"nodeType":"Block","src":"2154:62:28","statements":[{"expression":{"id":4134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4130,"name":"parsedComposeMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4128,"src":"2164:16:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":4131,"name":"_msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4125,"src":"2183:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2183:26:28","startExpression":{"id":4132,"name":"COMPOSE_FROM_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4038,"src":"2188:19:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"src":"2164:45:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4135,"nodeType":"ExpressionStatement","src":"2164:45:28"}]},"documentation":{"id":4123,"nodeType":"StructuredDocumentation","src":"1926:128:28","text":"@dev Retrieves the composed message.\n @param _msg The message.\n @return parsedComposeMsg The composed message."},"id":4137,"implemented":true,"kind":"function","modifiers":[],"name":"composeMsg","nameLocation":"2068:10:28","nodeType":"FunctionDefinition","parameters":{"id":4126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4125,"mutability":"mutable","name":"_msg","nameLocation":"2094:4:28","nodeType":"VariableDeclaration","scope":4137,"src":"2079:19:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4124,"name":"bytes","nodeType":"ElementaryTypeName","src":"2079:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2078:21:28"},"returnParameters":{"id":4129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4128,"mutability":"mutable","name":"parsedComposeMsg","nameLocation":"2136:16:28","nodeType":"VariableDeclaration","scope":4137,"src":"2123:29:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4127,"name":"bytes","nodeType":"ElementaryTypeName","src":"2123:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2122:31:28"},"scope":4182,"src":"2059:157:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4158,"nodeType":"Block","src":"2468:63:28","statements":[{"expression":{"id":4156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4145,"name":"bytes32Repr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4143,"src":"2478:11:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":4152,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4140,"src":"2516:5:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2508:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4150,"name":"uint160","nodeType":"ElementaryTypeName","src":"2508:7:28","typeDescriptions":{}}},"id":4153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2500:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4148,"name":"uint256","nodeType":"ElementaryTypeName","src":"2500:7:28","typeDescriptions":{}}},"id":4154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2500:23:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2492:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2492:7:28","typeDescriptions":{}}},"id":4155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2492:32:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2478:46:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4157,"nodeType":"ExpressionStatement","src":"2478:46:28"}]},"documentation":{"id":4138,"nodeType":"StructuredDocumentation","src":"2222:156:28","text":"@dev Converts an address to bytes32.\n @param _addr The address to convert.\n @return bytes32Repr The bytes32 representation of the address."},"id":4159,"implemented":true,"kind":"function","modifiers":[],"name":"addressToBytes32","nameLocation":"2392:16:28","nodeType":"FunctionDefinition","parameters":{"id":4141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4140,"mutability":"mutable","name":"_addr","nameLocation":"2417:5:28","nodeType":"VariableDeclaration","scope":4159,"src":"2409:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4139,"name":"address","nodeType":"ElementaryTypeName","src":"2409:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2408:15:28"},"returnParameters":{"id":4144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4143,"mutability":"mutable","name":"bytes32Repr","nameLocation":"2455:11:28","nodeType":"VariableDeclaration","scope":4159,"src":"2447:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2447:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2446:21:28"},"scope":4182,"src":"2383:148:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4180,"nodeType":"Block","src":"2779:60:28","statements":[{"expression":{"id":4178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4167,"name":"addressRepr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"2789:11:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":4174,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"2827:2:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2819:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4172,"name":"uint256","nodeType":"ElementaryTypeName","src":"2819:7:28","typeDescriptions":{}}},"id":4175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2819:11:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2811:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4170,"name":"uint160","nodeType":"ElementaryTypeName","src":"2811:7:28","typeDescriptions":{}}},"id":4176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2811:20:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2803:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4168,"name":"address","nodeType":"ElementaryTypeName","src":"2803:7:28","typeDescriptions":{}}},"id":4177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2803:29:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2789:43:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4179,"nodeType":"ExpressionStatement","src":"2789:43:28"}]},"documentation":{"id":4160,"nodeType":"StructuredDocumentation","src":"2537:155:28","text":"@dev Converts bytes32 to an address.\n @param _b The bytes32 value to convert.\n @return addressRepr The address representation of bytes32."},"id":4181,"implemented":true,"kind":"function","modifiers":[],"name":"bytes32ToAddress","nameLocation":"2706:16:28","nodeType":"FunctionDefinition","parameters":{"id":4163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4162,"mutability":"mutable","name":"_b","nameLocation":"2731:2:28","nodeType":"VariableDeclaration","scope":4181,"src":"2723:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2723:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2722:12:28"},"returnParameters":{"id":4166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4165,"mutability":"mutable","name":"addressRepr","nameLocation":"2766:11:28","nodeType":"VariableDeclaration","scope":4181,"src":"2758:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4164,"name":"address","nodeType":"ElementaryTypeName","src":"2758:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2757:21:28"},"scope":4182,"src":"2697:142:28","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4183,"src":"168:2673:28","usedErrors":[],"usedEvents":[]}],"src":"33:2809:28"},"id":28},"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol":{"ast":{"absolutePath":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol","exportedSymbols":{"ERC721":[6652],"IONFT721":[4787],"ONFT721":[4283],"ONFT721Core":[4691]},"id":4284,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4184,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"33:24:29"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"@openzeppelin/contracts/token/ERC721/ERC721.sol","id":4186,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4284,"sourceUnit":6653,"src":"59:73:29","symbolAliases":[{"foreign":{"id":4185,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6652,"src":"68:6:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol","file":"./ONFT721Core.sol","id":4189,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4284,"sourceUnit":4692,"src":"133:58:29","symbolAliases":[{"foreign":{"id":4187,"name":"IONFT721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"142:8:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4188,"name":"ONFT721Core","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4691,"src":"152:11:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4191,"name":"ONFT721Core","nameLocations":["347:11:29"],"nodeType":"IdentifierPath","referencedDeclaration":4691,"src":"347:11:29"},"id":4192,"nodeType":"InheritanceSpecifier","src":"347:11:29"},{"baseName":{"id":4193,"name":"ERC721","nameLocations":["360:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":6652,"src":"360:6:29"},"id":4194,"nodeType":"InheritanceSpecifier","src":"360:6:29"}],"canonicalName":"ONFT721","contractDependencies":[],"contractKind":"contract","documentation":{"id":4190,"nodeType":"StructuredDocumentation","src":"193:125:29","text":"@title ONFT721 Contract\n @dev ONFT721 is an ERC-721 token that extends the functionality of the ONFT721Core contract."},"fullyImplemented":true,"id":4283,"linearizedBaseContracts":[4283,6652,5192,6815,6769,7377,7389,4691,1298,1847,520,802,988,650,5102,7098,1113,1901,1051,1134,2374,4787],"name":"ONFT721","nameLocation":"336:7:29","nodeType":"ContractDefinition","nodes":[{"body":{"id":4214,"nodeType":"Block","src":"866:2:29","statements":[]},"documentation":{"id":4195,"nodeType":"StructuredDocumentation","src":"373:295:29","text":"@dev Constructor for the ONFT721 contract.\n @param _name The name of the ONFT.\n @param _symbol The symbol of the ONFT.\n @param _lzEndpoint The LayerZero endpoint address.\n @param _delegate The delegate capable of making OApp configurations inside of the endpoint."},"id":4215,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4206,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4197,"src":"814:5:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4207,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4199,"src":"821:7:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":4208,"kind":"baseConstructorSpecifier","modifierName":{"id":4205,"name":"ERC721","nameLocations":["807:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":6652,"src":"807:6:29"},"nodeType":"ModifierInvocation","src":"807:22:29"},{"arguments":[{"id":4210,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4201,"src":"842:11:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4211,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4203,"src":"855:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4212,"kind":"baseConstructorSpecifier","modifierName":{"id":4209,"name":"ONFT721Core","nameLocations":["830:11:29"],"nodeType":"IdentifierPath","referencedDeclaration":4691,"src":"830:11:29"},"nodeType":"ModifierInvocation","src":"830:35:29"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4197,"mutability":"mutable","name":"_name","nameLocation":"708:5:29","nodeType":"VariableDeclaration","scope":4215,"src":"694:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4196,"name":"string","nodeType":"ElementaryTypeName","src":"694:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4199,"mutability":"mutable","name":"_symbol","nameLocation":"737:7:29","nodeType":"VariableDeclaration","scope":4215,"src":"723:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4198,"name":"string","nodeType":"ElementaryTypeName","src":"723:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4201,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"762:11:29","nodeType":"VariableDeclaration","scope":4215,"src":"754:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4200,"name":"address","nodeType":"ElementaryTypeName","src":"754:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4203,"mutability":"mutable","name":"_delegate","nameLocation":"791:9:29","nodeType":"VariableDeclaration","scope":4215,"src":"783:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4202,"name":"address","nodeType":"ElementaryTypeName","src":"783:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"684:122:29"},"returnParameters":{"id":4213,"nodeType":"ParameterList","parameters":[],"src":"866:0:29"},"scope":4283,"src":"673:195:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4753],"body":{"id":4226,"nodeType":"Block","src":"1022:37:29","statements":[{"expression":{"arguments":[{"id":4223,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1047:4:29","typeDescriptions":{"typeIdentifier":"t_contract$_ONFT721_$4283","typeString":"contract ONFT721"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ONFT721_$4283","typeString":"contract ONFT721"}],"id":4222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1039:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4221,"name":"address","nodeType":"ElementaryTypeName","src":"1039:7:29","typeDescriptions":{}}},"id":4224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1039:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4220,"id":4225,"nodeType":"Return","src":"1032:20:29"}]},"documentation":{"id":4216,"nodeType":"StructuredDocumentation","src":"874:94:29","text":"@notice Retrieves the address of the underlying ERC721 implementation (ie. this contract)."},"functionSelector":"fc0c546a","id":4227,"implemented":true,"kind":"function","modifiers":[],"name":"token","nameLocation":"982:5:29","nodeType":"FunctionDefinition","parameters":{"id":4217,"nodeType":"ParameterList","parameters":[],"src":"987:2:29"},"returnParameters":{"id":4220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4227,"src":"1013:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4218,"name":"address","nodeType":"ElementaryTypeName","src":"1013:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1012:9:29"},"scope":4283,"src":"973:86:29","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4759],"body":{"id":4235,"nodeType":"Block","src":"1409:29:29","statements":[{"expression":{"hexValue":"66616c7365","id":4233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1426:5:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":4232,"id":4234,"nodeType":"Return","src":"1419:12:29"}]},"documentation":{"id":4228,"nodeType":"StructuredDocumentation","src":"1065:274:29","text":"@notice Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\n @dev In the case of ONFT where the contract IS the token, approval is NOT required.\n @return requiresApproval Needs approval of the underlying token implementation."},"functionSelector":"9f68b964","id":4236,"implemented":true,"kind":"function","modifiers":[],"name":"approvalRequired","nameLocation":"1353:16:29","nodeType":"FunctionDefinition","parameters":{"id":4229,"nodeType":"ParameterList","parameters":[],"src":"1369:2:29"},"returnParameters":{"id":4232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4236,"src":"1403:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4230,"name":"bool","nodeType":"ElementaryTypeName","src":"1403:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1402:6:29"},"scope":4283,"src":"1344:94:29","stateMutability":"pure","virtual":true,"visibility":"external"},{"baseFunctions":[4681],"body":{"id":4265,"nodeType":"Block","src":"1539:133:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4246,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4238,"src":"1553:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":4249,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"1577:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4247,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6652,"src":"1562:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$6652_$","typeString":"type(contract ERC721)"}},"id":4248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1569:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":5785,"src":"1562:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":4250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1562:24:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1553:33:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4260,"nodeType":"IfStatement","src":"1549:91:29","trueBody":{"errorCall":{"arguments":[{"id":4253,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4238,"src":"1608:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":4256,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"1630:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4254,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6652,"src":"1615:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$6652_$","typeString":"type(contract ERC721)"}},"id":4255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1622:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":5785,"src":"1615:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":4257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:24:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4252,"name":"OnlyNFTOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4719,"src":"1595:12:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":4258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1595:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4259,"nodeType":"RevertStatement","src":"1588:52:29"}},{"expression":{"arguments":[{"id":4262,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"1656:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4261,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"1650:5:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":4263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4264,"nodeType":"ExpressionStatement","src":"1650:15:29"}]},"id":4266,"implemented":true,"kind":"function","modifiers":[],"name":"_debit","nameLocation":"1453:6:29","nodeType":"FunctionDefinition","overrides":{"id":4244,"nodeType":"OverrideSpecifier","overrides":[],"src":"1530:8:29"},"parameters":{"id":4243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4238,"mutability":"mutable","name":"_from","nameLocation":"1468:5:29","nodeType":"VariableDeclaration","scope":4266,"src":"1460:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4237,"name":"address","nodeType":"ElementaryTypeName","src":"1460:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4240,"mutability":"mutable","name":"_tokenId","nameLocation":"1483:8:29","nodeType":"VariableDeclaration","scope":4266,"src":"1475:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1475:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4242,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4266,"src":"1493:6:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4241,"name":"uint32","nodeType":"ElementaryTypeName","src":"1493:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1459:53:29"},"returnParameters":{"id":4245,"nodeType":"ParameterList","parameters":[],"src":"1539:0:29"},"scope":4283,"src":"1444:228:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[4690],"body":{"id":4281,"nodeType":"Block","src":"1772:37:29","statements":[{"expression":{"arguments":[{"id":4277,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"1788:3:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4278,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4270,"src":"1793:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4276,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6259,"src":"1782:5:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1782:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4280,"nodeType":"ExpressionStatement","src":"1782:20:29"}]},"id":4282,"implemented":true,"kind":"function","modifiers":[],"name":"_credit","nameLocation":"1687:7:29","nodeType":"FunctionDefinition","overrides":{"id":4274,"nodeType":"OverrideSpecifier","overrides":[],"src":"1763:8:29"},"parameters":{"id":4273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4268,"mutability":"mutable","name":"_to","nameLocation":"1703:3:29","nodeType":"VariableDeclaration","scope":4282,"src":"1695:11:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4267,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4270,"mutability":"mutable","name":"_tokenId","nameLocation":"1716:8:29","nodeType":"VariableDeclaration","scope":4282,"src":"1708:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4269,"name":"uint256","nodeType":"ElementaryTypeName","src":"1708:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4282,"src":"1726:6:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4271,"name":"uint32","nodeType":"ElementaryTypeName","src":"1726:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1694:51:29"},"returnParameters":{"id":4275,"nodeType":"ParameterList","parameters":[],"src":"1772:0:29"},"scope":4283,"src":"1678:131:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":4284,"src":"318:1493:29","usedErrors":[666,824,826,999,1003,1005,1007,1086,1857,1859,4713,4719,4968,4973,5150,5155,5164,5169,5174,5181,5186,5191,5370,6823,6828,6831],"usedEvents":[1013,1092,1864,4342,4729,4739,4979,6668,6677,6686]}],"src":"33:1779:29"},"id":29},"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol":{"ast":{"absolutePath":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol","exportedSymbols":{"IOAppMsgInspector":[1071],"IONFT721":[4787],"MessagingFee":[2169],"MessagingReceipt":[2164],"OApp":[520],"OAppOptionsType3":[1298],"OAppPreCrimeSimulator":[1847],"ONFT721Core":[4691],"ONFT721MsgCodec":[4954],"ONFTComposeMsgCodec":[4182],"OptionsBuilder":[1673],"Origin":[2176],"Ownable":[5102],"SafeCast":[10198],"SendParam":[4710]},"id":4692,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4285,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"33:24:30"},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol","file":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol","id":4288,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4692,"sourceUnit":521,"src":"59:85:30","symbolAliases":[{"foreign":{"id":4286,"name":"OApp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"68:4:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4287,"name":"Origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"74:6:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol","file":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol","id":4290,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4692,"sourceUnit":1072,"src":"145:114:30","symbolAliases":[{"foreign":{"id":4289,"name":"IOAppMsgInspector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"154:17:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol","file":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol","id":4292,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4692,"sourceUnit":1299,"src":"260:106:30","symbolAliases":[{"foreign":{"id":4291,"name":"OAppOptionsType3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1298,"src":"269:16:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol","file":"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol","id":4294,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4692,"sourceUnit":1848,"src":"368:115:30","symbolAliases":[{"foreign":{"id":4293,"name":"OAppPreCrimeSimulator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1847,"src":"377:21:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol","file":"./interfaces/IONFT721.sol","id":4299,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4692,"sourceUnit":4788,"src":"485:96:30","symbolAliases":[{"foreign":{"id":4295,"name":"IONFT721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"494:8:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4296,"name":"MessagingFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"504:12:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4297,"name":"MessagingReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2164,"src":"518:16:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4298,"name":"SendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4710,"src":"536:9:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol","file":"./libs/ONFT721MsgCodec.sol","id":4301,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4692,"sourceUnit":4955,"src":"582:61:30","symbolAliases":[{"foreign":{"id":4300,"name":"ONFT721MsgCodec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4954,"src":"591:15:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol","file":"../libs/ONFTComposeMsgCodec.sol","id":4303,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4692,"sourceUnit":4183,"src":"644:70:30","symbolAliases":[{"foreign":{"id":4302,"name":"ONFTComposeMsgCodec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4182,"src":"653:19:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol","file":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol","id":4305,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4692,"sourceUnit":1674,"src":"715:102:30","symbolAliases":[{"foreign":{"id":4304,"name":"OptionsBuilder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1673,"src":"724:14:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","id":4307,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4692,"sourceUnit":10199,"src":"819:75:30","symbolAliases":[{"foreign":{"id":4306,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10198,"src":"828:8:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":4309,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4692,"sourceUnit":5103,"src":"896:69:30","symbolAliases":[{"foreign":{"id":4308,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"905:7:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4311,"name":"IONFT721","nameLocations":["1072:8:30"],"nodeType":"IdentifierPath","referencedDeclaration":4787,"src":"1072:8:30"},"id":4312,"nodeType":"InheritanceSpecifier","src":"1072:8:30"},{"baseName":{"id":4313,"name":"OApp","nameLocations":["1082:4:30"],"nodeType":"IdentifierPath","referencedDeclaration":520,"src":"1082:4:30"},"id":4314,"nodeType":"InheritanceSpecifier","src":"1082:4:30"},{"baseName":{"id":4315,"name":"OAppPreCrimeSimulator","nameLocations":["1088:21:30"],"nodeType":"IdentifierPath","referencedDeclaration":1847,"src":"1088:21:30"},"id":4316,"nodeType":"InheritanceSpecifier","src":"1088:21:30"},{"baseName":{"id":4317,"name":"OAppOptionsType3","nameLocations":["1111:16:30"],"nodeType":"IdentifierPath","referencedDeclaration":1298,"src":"1111:16:30"},"id":4318,"nodeType":"InheritanceSpecifier","src":"1111:16:30"}],"canonicalName":"ONFT721Core","contractDependencies":[],"contractKind":"contract","documentation":{"id":4310,"nodeType":"StructuredDocumentation","src":"967:72:30","text":"@title ONFT721Core\n @dev Abstract contract for an ONFT721 token."},"fullyImplemented":false,"id":4691,"linearizedBaseContracts":[4691,1298,1847,520,802,988,650,5102,7098,1113,1901,1051,1134,2374,4787],"name":"ONFT721Core","nameLocation":"1057:11:30","nodeType":"ContractDefinition","nodes":[{"global":false,"id":4321,"libraryName":{"id":4319,"name":"ONFT721MsgCodec","nameLocations":["1140:15:30"],"nodeType":"IdentifierPath","referencedDeclaration":4954,"src":"1140:15:30"},"nodeType":"UsingForDirective","src":"1134:32:30","typeName":{"id":4320,"name":"bytes","nodeType":"ElementaryTypeName","src":"1160:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":4324,"libraryName":{"id":4322,"name":"ONFT721MsgCodec","nameLocations":["1177:15:30"],"nodeType":"IdentifierPath","referencedDeclaration":4954,"src":"1177:15:30"},"nodeType":"UsingForDirective","src":"1171:34:30","typeName":{"id":4323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1197:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":4327,"libraryName":{"id":4325,"name":"ONFT721MsgCodec","nameLocations":["1216:15:30"],"nodeType":"IdentifierPath","referencedDeclaration":4954,"src":"1216:15:30"},"nodeType":"UsingForDirective","src":"1210:34:30","typeName":{"id":4326,"name":"uint256","nodeType":"ElementaryTypeName","src":"1236:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":false,"id":4330,"libraryName":{"id":4328,"name":"OptionsBuilder","nameLocations":["1255:14:30"],"nodeType":"IdentifierPath","referencedDeclaration":1673,"src":"1255:14:30"},"nodeType":"UsingForDirective","src":"1249:31:30","typeName":{"id":4329,"name":"bytes","nodeType":"ElementaryTypeName","src":"1274:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":true,"functionSelector":"1f5e1334","id":4333,"mutability":"constant","name":"SEND","nameLocation":"1562:4:30","nodeType":"VariableDeclaration","scope":4691,"src":"1539:31:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4331,"name":"uint16","nodeType":"ElementaryTypeName","src":"1539:6:30","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":4332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1569:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"constant":true,"functionSelector":"b21a33e4","id":4336,"mutability":"constant","name":"SEND_AND_COMPOSE","nameLocation":"1599:16:30","nodeType":"VariableDeclaration","scope":4691,"src":"1576:43:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4334,"name":"uint16","nodeType":"ElementaryTypeName","src":"1576:6:30","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"32","id":4335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1618:1:30","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"constant":false,"functionSelector":"111ecdad","id":4338,"mutability":"mutable","name":"msgInspector","nameLocation":"1720:12:30","nodeType":"VariableDeclaration","scope":4691,"src":"1705:27:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4337,"name":"address","nodeType":"ElementaryTypeName","src":"1705:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"eventSelector":"f0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197","id":4342,"name":"MsgInspectorSet","nameLocation":"1745:15:30","nodeType":"EventDefinition","parameters":{"id":4341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4340,"indexed":false,"mutability":"mutable","name":"inspector","nameLocation":"1769:9:30","nodeType":"VariableDeclaration","scope":4342,"src":"1761:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4339,"name":"address","nodeType":"ElementaryTypeName","src":"1761:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1760:19:30"},"src":"1739:41:30"},{"body":{"id":4357,"nodeType":"Block","src":"2052:2:30","statements":[]},"documentation":{"id":4343,"nodeType":"StructuredDocumentation","src":"1786:161:30","text":"@param _lzEndpoint The address of the LayerZero endpoint.\n @param _delegate The delegate capable of making OApp configurations inside of the endpoint."},"id":4358,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4350,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4347,"src":"2012:9:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4351,"kind":"baseConstructorSpecifier","modifierName":{"id":4349,"name":"Ownable","nameLocations":["2004:7:30"],"nodeType":"IdentifierPath","referencedDeclaration":5102,"src":"2004:7:30"},"nodeType":"ModifierInvocation","src":"2004:18:30"},{"arguments":[{"id":4353,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4345,"src":"2028:11:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4354,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4347,"src":"2041:9:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4355,"kind":"baseConstructorSpecifier","modifierName":{"id":4352,"name":"OApp","nameLocations":["2023:4:30"],"nodeType":"IdentifierPath","referencedDeclaration":520,"src":"2023:4:30"},"nodeType":"ModifierInvocation","src":"2023:28:30"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4345,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"1972:11:30","nodeType":"VariableDeclaration","scope":4358,"src":"1964:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4344,"name":"address","nodeType":"ElementaryTypeName","src":"1964:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4347,"mutability":"mutable","name":"_delegate","nameLocation":"1993:9:30","nodeType":"VariableDeclaration","scope":4358,"src":"1985:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4346,"name":"address","nodeType":"ElementaryTypeName","src":"1985:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1963:40:30"},"returnParameters":{"id":4356,"nodeType":"ParameterList","parameters":[],"src":"2052:0:30"},"scope":4691,"src":"1952:102:30","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4747],"body":{"id":4373,"nodeType":"Block","src":"2596:55:30","statements":[{"expression":{"components":[{"expression":{"arguments":[{"id":4367,"name":"IONFT721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"2619:8:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IONFT721_$4787_$","typeString":"type(contract IONFT721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IONFT721_$4787_$","typeString":"type(contract IONFT721)"}],"id":4366,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2614:4:30","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2614:14:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IONFT721_$4787","typeString":"type(contract IONFT721)"}},"id":4369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2629:11:30","memberName":"interfaceId","nodeType":"MemberAccess","src":"2614:26:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"hexValue":"31","id":4370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2642:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"id":4371,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2613:31:30","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes4_$_t_rational_1_by_1_$","typeString":"tuple(bytes4,int_const 1)"}},"functionReturnParameters":4365,"id":4372,"nodeType":"Return","src":"2606:38:30"}]},"documentation":{"id":4359,"nodeType":"StructuredDocumentation","src":"2060:441:30","text":"@notice Retrieves interfaceID and the version of the ONFT.\n @return interfaceId The interface ID (0x94642228).\n @return version The version.\n @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\n @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\n @dev ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)"},"functionSelector":"a72f5dd8","id":4374,"implemented":true,"kind":"function","modifiers":[],"name":"onftVersion","nameLocation":"2515:11:30","nodeType":"FunctionDefinition","parameters":{"id":4360,"nodeType":"ParameterList","parameters":[],"src":"2526:2:30"},"returnParameters":{"id":4365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4362,"mutability":"mutable","name":"interfaceId","nameLocation":"2567:11:30","nodeType":"VariableDeclaration","scope":4374,"src":"2560:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4361,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2560:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":4364,"mutability":"mutable","name":"version","nameLocation":"2587:7:30","nodeType":"VariableDeclaration","scope":4374,"src":"2580:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4363,"name":"uint64","nodeType":"ElementaryTypeName","src":"2580:6:30","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2559:36:30"},"scope":4691,"src":"2506:145:30","stateMutability":"pure","virtual":true,"visibility":"external"},{"baseFunctions":[4771],"body":{"id":4412,"nodeType":"Block","src":"2808:237:30","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4385,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4377,"src":"2822:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2833:2:30","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":4701,"src":"2822:13:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2839:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2839:7:30","typeDescriptions":{}}},"id":4390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2822:27:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4395,"nodeType":"IfStatement","src":"2818:57:30","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4392,"name":"InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4713,"src":"2858:15:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4394,"nodeType":"RevertStatement","src":"2851:24:30"}},{"assignments":[4397,4399],"declarations":[{"constant":false,"id":4397,"mutability":"mutable","name":"message","nameLocation":"2899:7:30","nodeType":"VariableDeclaration","scope":4412,"src":"2886:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4396,"name":"bytes","nodeType":"ElementaryTypeName","src":"2886:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4399,"mutability":"mutable","name":"options","nameLocation":"2921:7:30","nodeType":"VariableDeclaration","scope":4412,"src":"2908:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4398,"name":"bytes","nodeType":"ElementaryTypeName","src":"2908:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4403,"initialValue":{"arguments":[{"id":4401,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4377,"src":"2952:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}],"id":4400,"name":"_buildMsgAndOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4539,"src":"2932:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SendParam_$4710_calldata_ptr_$returns$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$","typeString":"function (struct SendParam calldata) view returns (bytes memory,bytes memory)"}},"id":4402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2932:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes memory,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2885:78:30"},{"expression":{"arguments":[{"expression":{"id":4405,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4377,"src":"2987:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2998:6:30","memberName":"dstEid","nodeType":"MemberAccess","referencedDeclaration":4699,"src":"2987:17:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":4407,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4397,"src":"3006:7:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4408,"name":"options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4399,"src":"3015:7:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4409,"name":"_payInLzToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"3024:13:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4404,"name":"_quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"2980:6:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_struct$_MessagingFee_$2169_memory_ptr_$","typeString":"function (uint32,bytes memory,bytes memory,bool) view returns (struct MessagingFee memory)"}},"id":4410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2980:58:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee memory"}},"functionReturnParameters":4384,"id":4411,"nodeType":"Return","src":"2973:65:30"}]},"functionSelector":"c6414e7b","id":4413,"implemented":true,"kind":"function","modifiers":[],"name":"quoteSend","nameLocation":"2666:9:30","nodeType":"FunctionDefinition","parameters":{"id":4380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4377,"mutability":"mutable","name":"_sendParam","nameLocation":"2704:10:30","nodeType":"VariableDeclaration","scope":4413,"src":"2685:29:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam"},"typeName":{"id":4376,"nodeType":"UserDefinedTypeName","pathNode":{"id":4375,"name":"SendParam","nameLocations":["2685:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":4710,"src":"2685:9:30"},"referencedDeclaration":4710,"src":"2685:9:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_storage_ptr","typeString":"struct SendParam"}},"visibility":"internal"},{"constant":false,"id":4379,"mutability":"mutable","name":"_payInLzToken","nameLocation":"2729:13:30","nodeType":"VariableDeclaration","scope":4413,"src":"2724:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4378,"name":"bool","nodeType":"ElementaryTypeName","src":"2724:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2675:73:30"},"returnParameters":{"id":4384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4383,"mutability":"mutable","name":"msgFee","nameLocation":"2800:6:30","nodeType":"VariableDeclaration","scope":4413,"src":"2780:26:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":4382,"nodeType":"UserDefinedTypeName","pathNode":{"id":4381,"name":"MessagingFee","nameLocations":["2780:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":2169,"src":"2780:12:30"},"referencedDeclaration":2169,"src":"2780:12:30","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"}],"src":"2779:28:30"},"scope":4691,"src":"2657:388:30","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[4786],"body":{"id":4477,"nodeType":"Block","src":"3248:504:30","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4427,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"3262:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3273:2:30","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":4701,"src":"3262:13:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3287:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3279:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3279:7:30","typeDescriptions":{}}},"id":4432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3279:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3262:27:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4437,"nodeType":"IfStatement","src":"3258:57:30","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4434,"name":"InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4713,"src":"3298:15:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3298:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4436,"nodeType":"RevertStatement","src":"3291:24:30"}},{"expression":{"arguments":[{"expression":{"id":4439,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3332:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3336:6:30","memberName":"sender","nodeType":"MemberAccess","src":"3332:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":4441,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"3344:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3355:7:30","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4703,"src":"3344:18:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":4443,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"3364:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3375:6:30","memberName":"dstEid","nodeType":"MemberAccess","referencedDeclaration":4699,"src":"3364:17:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":4438,"name":"_debit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4681,"src":"3325:6:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$__$","typeString":"function (address,uint256,uint32)"}},"id":4445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3325:57:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4446,"nodeType":"ExpressionStatement","src":"3325:57:30"},{"assignments":[4448,4450],"declarations":[{"constant":false,"id":4448,"mutability":"mutable","name":"message","nameLocation":"3407:7:30","nodeType":"VariableDeclaration","scope":4477,"src":"3394:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4447,"name":"bytes","nodeType":"ElementaryTypeName","src":"3394:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4450,"mutability":"mutable","name":"options","nameLocation":"3429:7:30","nodeType":"VariableDeclaration","scope":4477,"src":"3416:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4449,"name":"bytes","nodeType":"ElementaryTypeName","src":"3416:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4454,"initialValue":{"arguments":[{"id":4452,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"3460:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}],"id":4451,"name":"_buildMsgAndOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4539,"src":"3440:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SendParam_$4710_calldata_ptr_$returns$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$","typeString":"function (struct SendParam calldata) view returns (bytes memory,bytes memory)"}},"id":4453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3440:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes memory,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3393:78:30"},{"expression":{"id":4464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4455,"name":"msgReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4425,"src":"3575:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_memory_ptr","typeString":"struct MessagingReceipt memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4457,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"3596:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3607:6:30","memberName":"dstEid","nodeType":"MemberAccess","referencedDeclaration":4699,"src":"3596:17:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":4459,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4448,"src":"3615:7:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4460,"name":"options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"3624:7:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4461,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4419,"src":"3633:4:30","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_calldata_ptr","typeString":"struct MessagingFee calldata"}},{"id":4462,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4421,"src":"3639:14:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_struct$_MessagingFee_$2169_calldata_ptr","typeString":"struct MessagingFee calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4456,"name":"_lzSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":930,"src":"3588:7:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_MessagingFee_$2169_memory_ptr_$_t_address_$returns$_t_struct$_MessagingReceipt_$2164_memory_ptr_$","typeString":"function (uint32,bytes memory,bytes memory,struct MessagingFee memory,address) returns (struct MessagingReceipt memory)"}},"id":4463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3588:66:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_memory_ptr","typeString":"struct MessagingReceipt memory"}},"src":"3575:79:30","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_memory_ptr","typeString":"struct MessagingReceipt memory"}},"id":4465,"nodeType":"ExpressionStatement","src":"3575:79:30"},{"eventCall":{"arguments":[{"expression":{"id":4467,"name":"msgReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4425,"src":"3678:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_memory_ptr","typeString":"struct MessagingReceipt memory"}},"id":4468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3689:4:30","memberName":"guid","nodeType":"MemberAccess","referencedDeclaration":2158,"src":"3678:15:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":4469,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"3695:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3706:6:30","memberName":"dstEid","nodeType":"MemberAccess","referencedDeclaration":4699,"src":"3695:17:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"id":4471,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3714:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3718:6:30","memberName":"sender","nodeType":"MemberAccess","src":"3714:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":4473,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"3726:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3737:7:30","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4703,"src":"3726:18:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4466,"name":"ONFTSent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4729,"src":"3669:8:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint32,address,uint256)"}},"id":4475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3669:76:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4476,"nodeType":"EmitStatement","src":"3664:81:30"}]},"functionSelector":"21eb730b","id":4478,"implemented":true,"kind":"function","modifiers":[],"name":"send","nameLocation":"3060:4:30","nodeType":"FunctionDefinition","parameters":{"id":4422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4416,"mutability":"mutable","name":"_sendParam","nameLocation":"3093:10:30","nodeType":"VariableDeclaration","scope":4478,"src":"3074:29:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam"},"typeName":{"id":4415,"nodeType":"UserDefinedTypeName","pathNode":{"id":4414,"name":"SendParam","nameLocations":["3074:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":4710,"src":"3074:9:30"},"referencedDeclaration":4710,"src":"3074:9:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_storage_ptr","typeString":"struct SendParam"}},"visibility":"internal"},{"constant":false,"id":4419,"mutability":"mutable","name":"_fee","nameLocation":"3135:4:30","nodeType":"VariableDeclaration","scope":4478,"src":"3113:26:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_calldata_ptr","typeString":"struct MessagingFee"},"typeName":{"id":4418,"nodeType":"UserDefinedTypeName","pathNode":{"id":4417,"name":"MessagingFee","nameLocations":["3113:12:30"],"nodeType":"IdentifierPath","referencedDeclaration":2169,"src":"3113:12:30"},"referencedDeclaration":2169,"src":"3113:12:30","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"},{"constant":false,"id":4421,"mutability":"mutable","name":"_refundAddress","nameLocation":"3157:14:30","nodeType":"VariableDeclaration","scope":4478,"src":"3149:22:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4420,"name":"address","nodeType":"ElementaryTypeName","src":"3149:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3064:113:30"},"returnParameters":{"id":4426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4425,"mutability":"mutable","name":"msgReceipt","nameLocation":"3236:10:30","nodeType":"VariableDeclaration","scope":4478,"src":"3212:34:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_memory_ptr","typeString":"struct MessagingReceipt"},"typeName":{"id":4424,"nodeType":"UserDefinedTypeName","pathNode":{"id":4423,"name":"MessagingReceipt","nameLocations":["3212:16:30"],"nodeType":"IdentifierPath","referencedDeclaration":2164,"src":"3212:16:30"},"referencedDeclaration":2164,"src":"3212:16:30","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_storage_ptr","typeString":"struct MessagingReceipt"}},"visibility":"internal"}],"src":"3211:36:30"},"scope":4691,"src":"3051:701:30","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":4538,"nodeType":"Block","src":"4129:624:30","statements":[{"assignments":[4490],"declarations":[{"constant":false,"id":4490,"mutability":"mutable","name":"hasCompose","nameLocation":"4144:10:30","nodeType":"VariableDeclaration","scope":4538,"src":"4139:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4489,"name":"bool","nodeType":"ElementaryTypeName","src":"4139:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":4491,"nodeType":"VariableDeclarationStatement","src":"4139:15:30"},{"expression":{"id":4504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":4492,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4485,"src":"4165:7:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4493,"name":"hasCompose","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4490,"src":"4174:10:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":4494,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4164:21:30","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_bool_$","typeString":"tuple(bytes memory,bool)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4497,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4482,"src":"4211:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4222:2:30","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":4701,"src":"4211:13:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":4499,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4482,"src":"4226:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4237:7:30","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4703,"src":"4226:18:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":4501,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4482,"src":"4246:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4257:10:30","memberName":"composeMsg","nodeType":"MemberAccess","referencedDeclaration":4707,"src":"4246:21:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":4495,"name":"ONFT721MsgCodec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4954,"src":"4188:15:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ONFT721MsgCodec_$4954_$","typeString":"type(library ONFT721MsgCodec)"}},"id":4496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4204:6:30","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":4838,"src":"4188:22:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$_t_bool_$","typeString":"function (bytes32,uint256,bytes memory) view returns (bytes memory,bool)"}},"id":4503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4188:80:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_bool_$","typeString":"tuple(bytes memory,bool)"}},"src":"4164:104:30","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4505,"nodeType":"ExpressionStatement","src":"4164:104:30"},{"assignments":[4507],"declarations":[{"constant":false,"id":4507,"mutability":"mutable","name":"msgType","nameLocation":"4285:7:30","nodeType":"VariableDeclaration","scope":4538,"src":"4278:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4506,"name":"uint16","nodeType":"ElementaryTypeName","src":"4278:6:30","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":4512,"initialValue":{"condition":{"id":4508,"name":"hasCompose","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4490,"src":"4295:10:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4510,"name":"SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4333,"src":"4327:4:30","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":4511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4295:36:30","trueExpression":{"id":4509,"name":"SEND_AND_COMPOSE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4336,"src":"4308:16:30","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4278:53:30"},{"expression":{"id":4521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4513,"name":"options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4487,"src":"4342:7:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4515,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4482,"src":"4367:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4378:6:30","memberName":"dstEid","nodeType":"MemberAccess","referencedDeclaration":4699,"src":"4367:17:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":4517,"name":"msgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4507,"src":"4386:7:30","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"id":4518,"name":"_sendParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4482,"src":"4395:10:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam calldata"}},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4406:12:30","memberName":"extraOptions","nodeType":"MemberAccess","referencedDeclaration":4705,"src":"4395:23:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4514,"name":"combineOptions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1278,"src":"4352:14:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$_t_uint16_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint32,uint16,bytes calldata) view returns (bytes memory)"}},"id":4520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4352:67:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4342:77:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4522,"nodeType":"ExpressionStatement","src":"4342:77:30"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4523,"name":"msgInspector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4338,"src":"4661:12:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4685:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4677:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4524,"name":"address","nodeType":"ElementaryTypeName","src":"4677:7:30","typeDescriptions":{}}},"id":4527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4677:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4661:26:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4537,"nodeType":"IfStatement","src":"4657:89:30","trueBody":{"expression":{"arguments":[{"id":4533,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4485,"src":"4729:7:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4534,"name":"options","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4487,"src":"4738:7:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4530,"name":"msgInspector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4338,"src":"4707:12:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4529,"name":"IOAppMsgInspector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"4689:17:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOAppMsgInspector_$1071_$","typeString":"type(contract IOAppMsgInspector)"}},"id":4531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4689:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOAppMsgInspector_$1071","typeString":"contract IOAppMsgInspector"}},"id":4532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4721:7:30","memberName":"inspect","nodeType":"MemberAccess","referencedDeclaration":1070,"src":"4689:39:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory,bytes memory) view external returns (bool)"}},"id":4535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4689:57:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4536,"nodeType":"ExpressionStatement","src":"4689:57:30"}}]},"documentation":{"id":4479,"nodeType":"StructuredDocumentation","src":"3758:217:30","text":"@dev Internal function to build the message and options.\n @param _sendParam The parameters for the send() operation.\n @return message The encoded message.\n @return options The encoded options."},"id":4539,"implemented":true,"kind":"function","modifiers":[],"name":"_buildMsgAndOptions","nameLocation":"3989:19:30","nodeType":"FunctionDefinition","parameters":{"id":4483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4482,"mutability":"mutable","name":"_sendParam","nameLocation":"4037:10:30","nodeType":"VariableDeclaration","scope":4539,"src":"4018:29:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam"},"typeName":{"id":4481,"nodeType":"UserDefinedTypeName","pathNode":{"id":4480,"name":"SendParam","nameLocations":["4018:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":4710,"src":"4018:9:30"},"referencedDeclaration":4710,"src":"4018:9:30","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_storage_ptr","typeString":"struct SendParam"}},"visibility":"internal"}],"src":"4008:45:30"},"returnParameters":{"id":4488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4485,"mutability":"mutable","name":"message","nameLocation":"4098:7:30","nodeType":"VariableDeclaration","scope":4539,"src":"4085:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4484,"name":"bytes","nodeType":"ElementaryTypeName","src":"4085:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4487,"mutability":"mutable","name":"options","nameLocation":"4120:7:30","nodeType":"VariableDeclaration","scope":4539,"src":"4107:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4486,"name":"bytes","nodeType":"ElementaryTypeName","src":"4107:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4084:44:30"},"scope":4691,"src":"3980:773:30","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[801],"body":{"id":4611,"nodeType":"Block","src":"5567:514:30","statements":[{"assignments":[4556],"declarations":[{"constant":false,"id":4556,"mutability":"mutable","name":"toAddress","nameLocation":"5585:9:30","nodeType":"VariableDeclaration","scope":4611,"src":"5577:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4555,"name":"address","nodeType":"ElementaryTypeName","src":"5577:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4562,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4557,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4547,"src":"5597:8:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5606:6:30","memberName":"sendTo","nodeType":"MemberAccess","referencedDeclaration":4856,"src":"5597:15:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bytes32_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (bytes32)"}},"id":4559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5597:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5615:16:30","memberName":"bytes32ToAddress","nodeType":"MemberAccess","referencedDeclaration":4953,"src":"5597:34:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (address)"}},"id":4561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5597:36:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5577:56:30"},{"assignments":[4564],"declarations":[{"constant":false,"id":4564,"mutability":"mutable","name":"tokenId","nameLocation":"5651:7:30","nodeType":"VariableDeclaration","scope":4611,"src":"5643:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4563,"name":"uint256","nodeType":"ElementaryTypeName","src":"5643:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4568,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4565,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4547,"src":"5661:8:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5670:7:30","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4878,"src":"5661:16:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_uint256_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (uint256)"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5661:18:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5643:36:30"},{"expression":{"arguments":[{"id":4570,"name":"toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4556,"src":"5698:9:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4571,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4564,"src":"5709:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":4572,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4543,"src":"5718:7:30","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":4573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5726:6:30","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":2171,"src":"5718:14:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":4569,"name":"_credit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4690,"src":"5690:7:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$__$","typeString":"function (address,uint256,uint32)"}},"id":4574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5690:43:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4575,"nodeType":"ExpressionStatement","src":"5690:43:30"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4576,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4547,"src":"5748:8:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5757:10:30","memberName":"isComposed","nodeType":"MemberAccess","referencedDeclaration":4894,"src":"5748:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (bool)"}},"id":4578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5748:21:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4602,"nodeType":"IfStatement","src":"5744:260:30","trueBody":{"id":4601,"nodeType":"Block","src":"5771:233:30","statements":[{"assignments":[4580],"declarations":[{"constant":false,"id":4580,"mutability":"mutable","name":"composeMsg","nameLocation":"5798:10:30","nodeType":"VariableDeclaration","scope":4601,"src":"5785:23:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4579,"name":"bytes","nodeType":"ElementaryTypeName","src":"5785:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4591,"initialValue":{"arguments":[{"expression":{"id":4583,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4543,"src":"5838:7:30","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":4584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5846:5:30","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":2175,"src":"5838:13:30","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":4585,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4543,"src":"5853:7:30","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":4586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5861:6:30","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":2171,"src":"5853:14:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4587,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4547,"src":"5869:8:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5878:10:30","memberName":"composeMsg","nodeType":"MemberAccess","referencedDeclaration":4909,"src":"5869:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (bytes memory)"}},"id":4589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5869:21:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4581,"name":"ONFTComposeMsgCodec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4182,"src":"5811:19:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ONFTComposeMsgCodec_$4182_$","typeString":"type(library ONFTComposeMsgCodec)"}},"id":4582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5831:6:30","memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":4060,"src":"5811:26:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$_t_uint32_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64,uint32,bytes memory) pure returns (bytes memory)"}},"id":4590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5811:80:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5785:106:30"},{"expression":{"arguments":[{"id":4595,"name":"toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4556,"src":"5926:9:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4596,"name":"_guid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4545,"src":"5937:5:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":4597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5944:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":4598,"name":"composeMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4580,"src":"5982:10:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4592,"name":"endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"5905:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpointV2_$2338","typeString":"contract ILayerZeroEndpointV2"}},"id":4594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5914:11:30","memberName":"sendCompose","nodeType":"MemberAccess","referencedDeclaration":2880,"src":"5905:20:30","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,uint16,bytes memory) external"}},"id":4599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:88:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4600,"nodeType":"ExpressionStatement","src":"5905:88:30"}]}},{"eventCall":{"arguments":[{"id":4604,"name":"_guid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4545,"src":"6032:5:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":4605,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4543,"src":"6039:7:30","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},"id":4606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6047:6:30","memberName":"srcEid","nodeType":"MemberAccess","referencedDeclaration":2171,"src":"6039:14:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":4607,"name":"toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4556,"src":"6055:9:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4608,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4564,"src":"6066:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4603,"name":"ONFTReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4739,"src":"6019:12:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint32,address,uint256)"}},"id":4609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6019:55:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4610,"nodeType":"EmitStatement","src":"6014:60:30"}]},"documentation":{"id":4540,"nodeType":"StructuredDocumentation","src":"4759:500:30","text":"@dev Internal function to handle the receive on the LayerZero endpoint.\n @param _origin The origin information.\n - srcEid: The source chain endpoint ID.\n - sender: The sender address from the src chain.\n - nonce: The nonce of the LayerZero message.\n @param _guid The unique identifier for the received LayerZero message.\n @param _message The encoded message.\n @dev _executor The address of the executor.\n @dev _extraData Additional data."},"id":4612,"implemented":true,"kind":"function","modifiers":[],"name":"_lzReceive","nameLocation":"5273:10:30","nodeType":"FunctionDefinition","overrides":{"id":4553,"nodeType":"OverrideSpecifier","overrides":[],"src":"5558:8:30"},"parameters":{"id":4552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4543,"mutability":"mutable","name":"_origin","nameLocation":"5309:7:30","nodeType":"VariableDeclaration","scope":4612,"src":"5293:23:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":4542,"nodeType":"UserDefinedTypeName","pathNode":{"id":4541,"name":"Origin","nameLocations":["5293:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"5293:6:30"},"referencedDeclaration":2176,"src":"5293:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":4545,"mutability":"mutable","name":"_guid","nameLocation":"5334:5:30","nodeType":"VariableDeclaration","scope":4612,"src":"5326:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5326:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4547,"mutability":"mutable","name":"_message","nameLocation":"5364:8:30","nodeType":"VariableDeclaration","scope":4612,"src":"5349:23:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4546,"name":"bytes","nodeType":"ElementaryTypeName","src":"5349:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4612,"src":"5382:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4548,"name":"address","nodeType":"ElementaryTypeName","src":"5382:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4612,"src":"5459:14:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4550,"name":"bytes","nodeType":"ElementaryTypeName","src":"5459:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5283:257:30"},"returnParameters":{"id":4554,"nodeType":"ParameterList","parameters":[],"src":"5567:0:30"},"scope":4691,"src":"5264:817:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1836],"body":{"id":4636,"nodeType":"Block","src":"7026:76:30","statements":[{"expression":{"arguments":[{"id":4629,"name":"_origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4616,"src":"7047:7:30","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"}},{"id":4630,"name":"_guid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4618,"src":"7056:5:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4631,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4620,"src":"7063:8:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":4632,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4622,"src":"7073:9:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4633,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4624,"src":"7084:10:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4628,"name":"_lzReceive","nodeType":"Identifier","overloadedDeclarations":[4612],"referencedDeclaration":4612,"src":"7036:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Origin_$2176_calldata_ptr_$_t_bytes32_$_t_bytes_calldata_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (struct Origin calldata,bytes32,bytes calldata,address,bytes calldata)"}},"id":4634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7036:59:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4635,"nodeType":"ExpressionStatement","src":"7036:59:30"}]},"documentation":{"id":4613,"nodeType":"StructuredDocumentation","src":"6087:723:30","text":"@dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\n @param _origin The origin information.\n - srcEid: The source chain endpoint ID.\n - sender: The sender address from the src chain.\n - nonce: The nonce of the LayerZero message.\n @param _guid The unique identifier for the received LayerZero message.\n @param _message The LayerZero message.\n @param _executor The address of the off-chain executor.\n @param _extraData Arbitrary data passed by the msg executor.\n @dev Enables the preCrime simulator to mock sending lzReceive() messages,\n routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver."},"id":4637,"implemented":true,"kind":"function","modifiers":[],"name":"_lzReceiveSimulate","nameLocation":"6824:18:30","nodeType":"FunctionDefinition","overrides":{"id":4626,"nodeType":"OverrideSpecifier","overrides":[],"src":"7017:8:30"},"parameters":{"id":4625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4616,"mutability":"mutable","name":"_origin","nameLocation":"6868:7:30","nodeType":"VariableDeclaration","scope":4637,"src":"6852:23:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_calldata_ptr","typeString":"struct Origin"},"typeName":{"id":4615,"nodeType":"UserDefinedTypeName","pathNode":{"id":4614,"name":"Origin","nameLocations":["6852:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":2176,"src":"6852:6:30"},"referencedDeclaration":2176,"src":"6852:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_Origin_$2176_storage_ptr","typeString":"struct Origin"}},"visibility":"internal"},{"constant":false,"id":4618,"mutability":"mutable","name":"_guid","nameLocation":"6893:5:30","nodeType":"VariableDeclaration","scope":4637,"src":"6885:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6885:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4620,"mutability":"mutable","name":"_message","nameLocation":"6923:8:30","nodeType":"VariableDeclaration","scope":4637,"src":"6908:23:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4619,"name":"bytes","nodeType":"ElementaryTypeName","src":"6908:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4622,"mutability":"mutable","name":"_executor","nameLocation":"6949:9:30","nodeType":"VariableDeclaration","scope":4637,"src":"6941:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4621,"name":"address","nodeType":"ElementaryTypeName","src":"6941:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4624,"mutability":"mutable","name":"_extraData","nameLocation":"6983:10:30","nodeType":"VariableDeclaration","scope":4637,"src":"6968:25:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4623,"name":"bytes","nodeType":"ElementaryTypeName","src":"6968:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6842:157:30"},"returnParameters":{"id":4627,"nodeType":"ParameterList","parameters":[],"src":"7026:0:30"},"scope":4691,"src":"6815:287:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1846],"body":{"id":4654,"nodeType":"Block","src":"7540:44:30","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4648,"name":"peers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"7557:5:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_bytes32_$","typeString":"mapping(uint32 => bytes32)"}},"id":4650,"indexExpression":{"id":4649,"name":"_eid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4640,"src":"7563:4:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7557:11:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4651,"name":"_peer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4642,"src":"7572:5:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7557:20:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4647,"id":4653,"nodeType":"Return","src":"7550:27:30"}]},"documentation":{"id":4638,"nodeType":"StructuredDocumentation","src":"7108:339:30","text":"@dev Check if the peer is considered 'trusted' by the OApp.\n @param _eid The endpoint ID to check.\n @param _peer The peer to check.\n @return Whether the peer passed is considered 'trusted' by the OApp.\n @dev Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source."},"functionSelector":"5a0dfe4d","id":4655,"implemented":true,"kind":"function","modifiers":[],"name":"isPeer","nameLocation":"7461:6:30","nodeType":"FunctionDefinition","overrides":{"id":4644,"nodeType":"OverrideSpecifier","overrides":[],"src":"7516:8:30"},"parameters":{"id":4643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4640,"mutability":"mutable","name":"_eid","nameLocation":"7475:4:30","nodeType":"VariableDeclaration","scope":4655,"src":"7468:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4639,"name":"uint32","nodeType":"ElementaryTypeName","src":"7468:6:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":4642,"mutability":"mutable","name":"_peer","nameLocation":"7489:5:30","nodeType":"VariableDeclaration","scope":4655,"src":"7481:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7481:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7467:28:30"},"returnParameters":{"id":4647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4655,"src":"7534:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4645,"name":"bool","nodeType":"ElementaryTypeName","src":"7534:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7533:6:30"},"scope":4691,"src":"7452:132:30","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":4671,"nodeType":"Block","src":"7989:90:30","statements":[{"expression":{"id":4665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4663,"name":"msgInspector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4338,"src":"7999:12:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4664,"name":"_msgInspector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"8014:13:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7999:28:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4666,"nodeType":"ExpressionStatement","src":"7999:28:30"},{"eventCall":{"arguments":[{"id":4668,"name":"_msgInspector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"8058:13:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4667,"name":"MsgInspectorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4342,"src":"8042:15:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8042:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4670,"nodeType":"EmitStatement","src":"8037:35:30"}]},"documentation":{"id":4656,"nodeType":"StructuredDocumentation","src":"7590:321:30","text":"@notice Sets the message inspector address for the OFT.\n @param _msgInspector The address of the message inspector.\n @dev This is an optional contract that can be used to inspect both 'message' and 'options'.\n @dev Set it to address(0) to disable it, or set it to a contract address to enable it."},"functionSelector":"6fc1b31e","id":4672,"implemented":true,"kind":"function","modifiers":[{"id":4661,"kind":"modifierInvocation","modifierName":{"id":4660,"name":"onlyOwner","nameLocations":["7979:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":5013,"src":"7979:9:30"},"nodeType":"ModifierInvocation","src":"7979:9:30"}],"name":"setMsgInspector","nameLocation":"7925:15:30","nodeType":"FunctionDefinition","parameters":{"id":4659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4658,"mutability":"mutable","name":"_msgInspector","nameLocation":"7949:13:30","nodeType":"VariableDeclaration","scope":4672,"src":"7941:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4657,"name":"address","nodeType":"ElementaryTypeName","src":"7941:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7940:23:30"},"returnParameters":{"id":4662,"nodeType":"ParameterList","parameters":[],"src":"7989:0:30"},"scope":4691,"src":"7916:163:30","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":4681,"implemented":false,"kind":"function","modifiers":[],"name":"_debit","nameLocation":"8094:6:30","nodeType":"FunctionDefinition","parameters":{"id":4679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4681,"src":"8101:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4673,"name":"address","nodeType":"ElementaryTypeName","src":"8101:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4681,"src":"8120:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4675,"name":"uint256","nodeType":"ElementaryTypeName","src":"8120:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4678,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4681,"src":"8142:6:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4677,"name":"uint32","nodeType":"ElementaryTypeName","src":"8142:6:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8100:61:30"},"returnParameters":{"id":4680,"nodeType":"ParameterList","parameters":[],"src":"8178:0:30"},"scope":4691,"src":"8085:94:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4690,"implemented":false,"kind":"function","modifiers":[],"name":"_credit","nameLocation":"8194:7:30","nodeType":"FunctionDefinition","parameters":{"id":4688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4690,"src":"8202:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4682,"name":"address","nodeType":"ElementaryTypeName","src":"8202:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4685,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4690,"src":"8219:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4684,"name":"uint256","nodeType":"ElementaryTypeName","src":"8219:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4690,"src":"8241:6:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4686,"name":"uint32","nodeType":"ElementaryTypeName","src":"8241:6:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8201:59:30"},"returnParameters":{"id":4689,"nodeType":"ParameterList","parameters":[],"src":"8277:0:30"},"scope":4691,"src":"8185:93:30","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":4692,"src":"1039:7241:30","usedErrors":[666,824,826,999,1003,1005,1007,1086,1857,1859,4713,4719,4968,4973,5370,6823,6828,6831],"usedEvents":[1013,1092,1864,4342,4729,4739,4979]}],"src":"33:8248:30"},"id":30},"@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol":{"ast":{"absolutePath":"@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol","exportedSymbols":{"IONFT721":[4787],"MessagingFee":[2169],"MessagingReceipt":[2164],"SendParam":[4710]},"id":4788,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4693,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"33:24:31"},{"absolutePath":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol","file":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol","id":4696,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4788,"sourceUnit":989,"src":"59:109:31","symbolAliases":[{"foreign":{"id":4694,"name":"MessagingFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"68:12:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4695,"name":"MessagingReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2164,"src":"82:16:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"canonicalName":"SendParam","documentation":{"id":4697,"nodeType":"StructuredDocumentation","src":"170:77:31","text":"@dev Struct representing token parameters for the ONFT send() operation."},"id":4710,"members":[{"constant":false,"id":4699,"mutability":"mutable","name":"dstEid","nameLocation":"277:6:31","nodeType":"VariableDeclaration","scope":4710,"src":"270:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4698,"name":"uint32","nodeType":"ElementaryTypeName","src":"270:6:31","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":4701,"mutability":"mutable","name":"to","nameLocation":"337:2:31","nodeType":"VariableDeclaration","scope":4710,"src":"329:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4703,"mutability":"mutable","name":"tokenId","nameLocation":"375:7:31","nodeType":"VariableDeclaration","scope":4710,"src":"367:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4702,"name":"uint256","nodeType":"ElementaryTypeName","src":"367:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4705,"mutability":"mutable","name":"extraOptions","nameLocation":"394:12:31","nodeType":"VariableDeclaration","scope":4710,"src":"388:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":4704,"name":"bytes","nodeType":"ElementaryTypeName","src":"388:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4707,"mutability":"mutable","name":"composeMsg","nameLocation":"500:10:31","nodeType":"VariableDeclaration","scope":4710,"src":"494:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":4706,"name":"bytes","nodeType":"ElementaryTypeName","src":"494:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4709,"mutability":"mutable","name":"onftCmd","nameLocation":"572:7:31","nodeType":"VariableDeclaration","scope":4710,"src":"566:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":4708,"name":"bytes","nodeType":"ElementaryTypeName","src":"566:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"SendParam","nameLocation":"254:9:31","nodeType":"StructDefinition","scope":4788,"src":"247:411:31","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"IONFT721","contractDependencies":[],"contractKind":"interface","documentation":{"id":4711,"nodeType":"StructuredDocumentation","src":"660:131:31","text":"@title IONFT\n @dev Interface for the ONFT721 token.\n @dev Does not inherit ERC721 to accommodate usage by OFT721Adapter."},"fullyImplemented":false,"id":4787,"linearizedBaseContracts":[4787],"name":"IONFT721","nameLocation":"801:8:31","nodeType":"ContractDefinition","nodes":[{"errorSelector":"1e4ec46b","id":4713,"name":"InvalidReceiver","nameLocation":"851:15:31","nodeType":"ErrorDefinition","parameters":{"id":4712,"nodeType":"ParameterList","parameters":[],"src":"866:2:31"},"src":"845:24:31"},{"errorSelector":"8684e2b6","id":4719,"name":"OnlyNFTOwner","nameLocation":"880:12:31","nodeType":"ErrorDefinition","parameters":{"id":4718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4715,"mutability":"mutable","name":"caller","nameLocation":"901:6:31","nodeType":"VariableDeclaration","scope":4719,"src":"893:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4714,"name":"address","nodeType":"ElementaryTypeName","src":"893:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4717,"mutability":"mutable","name":"owner","nameLocation":"917:5:31","nodeType":"VariableDeclaration","scope":4719,"src":"909:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4716,"name":"address","nodeType":"ElementaryTypeName","src":"909:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"892:31:31"},"src":"874:50:31"},{"anonymous":false,"eventSelector":"986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f","id":4729,"name":"ONFTSent","nameLocation":"950:8:31","nodeType":"EventDefinition","parameters":{"id":4728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4721,"indexed":true,"mutability":"mutable","name":"guid","nameLocation":"984:4:31","nodeType":"VariableDeclaration","scope":4729,"src":"968:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"968:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4723,"indexed":false,"mutability":"mutable","name":"dstEid","nameLocation":"1034:6:31","nodeType":"VariableDeclaration","scope":4729,"src":"1027:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4722,"name":"uint32","nodeType":"ElementaryTypeName","src":"1027:6:31","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":4725,"indexed":true,"mutability":"mutable","name":"fromAddress","nameLocation":"1094:11:31","nodeType":"VariableDeclaration","scope":4729,"src":"1078:27:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4724,"name":"address","nodeType":"ElementaryTypeName","src":"1078:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4727,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1166:7:31","nodeType":"VariableDeclaration","scope":4729,"src":"1158:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4726,"name":"uint256","nodeType":"ElementaryTypeName","src":"1158:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"958:238:31"},"src":"944:253:31"},{"anonymous":false,"eventSelector":"7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef5","id":4739,"name":"ONFTReceived","nameLocation":"1209:12:31","nodeType":"EventDefinition","parameters":{"id":4738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4731,"indexed":true,"mutability":"mutable","name":"guid","nameLocation":"1247:4:31","nodeType":"VariableDeclaration","scope":4739,"src":"1231:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4730,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1231:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4733,"indexed":false,"mutability":"mutable","name":"srcEid","nameLocation":"1297:6:31","nodeType":"VariableDeclaration","scope":4739,"src":"1290:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4732,"name":"uint32","nodeType":"ElementaryTypeName","src":"1290:6:31","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":4735,"indexed":true,"mutability":"mutable","name":"toAddress","nameLocation":"1352:9:31","nodeType":"VariableDeclaration","scope":4739,"src":"1336:25:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4734,"name":"address","nodeType":"ElementaryTypeName","src":"1336:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4737,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1425:7:31","nodeType":"VariableDeclaration","scope":4739,"src":"1417:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4736,"name":"uint256","nodeType":"ElementaryTypeName","src":"1417:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1221:238:31"},"src":"1203:257:31"},{"documentation":{"id":4740,"nodeType":"StructuredDocumentation","src":"1466:493:31","text":"@notice Retrieves interfaceID and the version of the ONFT.\n @return interfaceId The interface ID.\n @return version The version.\n @dev interfaceId: This specific interface ID is '0x94642228'.\n @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\n @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\n ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)"},"functionSelector":"a72f5dd8","id":4747,"implemented":false,"kind":"function","modifiers":[],"name":"onftVersion","nameLocation":"1973:11:31","nodeType":"FunctionDefinition","parameters":{"id":4741,"nodeType":"ParameterList","parameters":[],"src":"1984:2:31"},"returnParameters":{"id":4746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4743,"mutability":"mutable","name":"interfaceId","nameLocation":"2017:11:31","nodeType":"VariableDeclaration","scope":4747,"src":"2010:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4742,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2010:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":4745,"mutability":"mutable","name":"version","nameLocation":"2037:7:31","nodeType":"VariableDeclaration","scope":4747,"src":"2030:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4744,"name":"uint64","nodeType":"ElementaryTypeName","src":"2030:6:31","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2009:36:31"},"scope":4787,"src":"1964:82:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4748,"nodeType":"StructuredDocumentation","src":"2052:142:31","text":"@notice Retrieves the address of the token associated with the ONFT.\n @return token The address of the ERC721 token implementation."},"functionSelector":"fc0c546a","id":4753,"implemented":false,"kind":"function","modifiers":[],"name":"token","nameLocation":"2208:5:31","nodeType":"FunctionDefinition","parameters":{"id":4749,"nodeType":"ParameterList","parameters":[],"src":"2213:2:31"},"returnParameters":{"id":4752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4753,"src":"2239:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4750,"name":"address","nodeType":"ElementaryTypeName","src":"2239:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2238:9:31"},"scope":4787,"src":"2199:49:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4754,"nodeType":"StructuredDocumentation","src":"2254:336:31","text":"@notice Indicates whether the OFT contract requires approval of the 'token()' to send.\n @return requiresApproval Needs approval of the underlying token implementation.\n @dev Allows things like wallet implementers to determine integration requirements,\n without understanding the underlying token implementation."},"functionSelector":"9f68b964","id":4759,"implemented":false,"kind":"function","modifiers":[],"name":"approvalRequired","nameLocation":"2604:16:31","nodeType":"FunctionDefinition","parameters":{"id":4755,"nodeType":"ParameterList","parameters":[],"src":"2620:2:31"},"returnParameters":{"id":4758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4759,"src":"2646:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4756,"name":"bool","nodeType":"ElementaryTypeName","src":"2646:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2645:6:31"},"scope":4787,"src":"2595:57:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4760,"nodeType":"StructuredDocumentation","src":"2658:421:31","text":"@notice Provides a quote for the send() operation.\n @param _sendParam The parameters for the send() operation.\n @param _payInLzToken Flag indicating whether the caller is paying in the LZ token.\n @return fee The calculated LayerZero messaging fee from the send() operation.\n @dev MessagingFee: LayerZero msg fee\n - nativeFee: The native fee.\n - lzTokenFee: The lzToken fee."},"functionSelector":"c6414e7b","id":4771,"implemented":false,"kind":"function","modifiers":[],"name":"quoteSend","nameLocation":"3093:9:31","nodeType":"FunctionDefinition","parameters":{"id":4766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4763,"mutability":"mutable","name":"_sendParam","nameLocation":"3122:10:31","nodeType":"VariableDeclaration","scope":4771,"src":"3103:29:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam"},"typeName":{"id":4762,"nodeType":"UserDefinedTypeName","pathNode":{"id":4761,"name":"SendParam","nameLocations":["3103:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":4710,"src":"3103:9:31"},"referencedDeclaration":4710,"src":"3103:9:31","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_storage_ptr","typeString":"struct SendParam"}},"visibility":"internal"},{"constant":false,"id":4765,"mutability":"mutable","name":"_payInLzToken","nameLocation":"3139:13:31","nodeType":"VariableDeclaration","scope":4771,"src":"3134:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4764,"name":"bool","nodeType":"ElementaryTypeName","src":"3134:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3102:51:31"},"returnParameters":{"id":4770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4771,"src":"3177:19:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_memory_ptr","typeString":"struct MessagingFee"},"typeName":{"id":4768,"nodeType":"UserDefinedTypeName","pathNode":{"id":4767,"name":"MessagingFee","nameLocations":["3177:12:31"],"nodeType":"IdentifierPath","referencedDeclaration":2169,"src":"3177:12:31"},"referencedDeclaration":2169,"src":"3177:12:31","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"}],"src":"3176:21:31"},"scope":4787,"src":"3084:114:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4772,"nodeType":"StructuredDocumentation","src":"3204:660:31","text":"@notice Executes the send() operation.\n @param _sendParam The parameters for the send operation.\n @param _fee The fee information supplied by the caller.\n - nativeFee: The native fee.\n - lzTokenFee: The lzToken fee.\n @param _refundAddress The address to receive any excess funds from fees etc. on the src.\n @return receipt The LayerZero messaging receipt from the send() operation.\n @dev MessagingReceipt: LayerZero msg receipt\n - guid: The unique identifier for the sent message.\n - nonce: The nonce of the sent message.\n - fee: The LayerZero fee incurred for the message."},"functionSelector":"21eb730b","id":4786,"implemented":false,"kind":"function","modifiers":[],"name":"send","nameLocation":"3878:4:31","nodeType":"FunctionDefinition","parameters":{"id":4781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4775,"mutability":"mutable","name":"_sendParam","nameLocation":"3911:10:31","nodeType":"VariableDeclaration","scope":4786,"src":"3892:29:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_calldata_ptr","typeString":"struct SendParam"},"typeName":{"id":4774,"nodeType":"UserDefinedTypeName","pathNode":{"id":4773,"name":"SendParam","nameLocations":["3892:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":4710,"src":"3892:9:31"},"referencedDeclaration":4710,"src":"3892:9:31","typeDescriptions":{"typeIdentifier":"t_struct$_SendParam_$4710_storage_ptr","typeString":"struct SendParam"}},"visibility":"internal"},{"constant":false,"id":4778,"mutability":"mutable","name":"_fee","nameLocation":"3953:4:31","nodeType":"VariableDeclaration","scope":4786,"src":"3931:26:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_calldata_ptr","typeString":"struct MessagingFee"},"typeName":{"id":4777,"nodeType":"UserDefinedTypeName","pathNode":{"id":4776,"name":"MessagingFee","nameLocations":["3931:12:31"],"nodeType":"IdentifierPath","referencedDeclaration":2169,"src":"3931:12:31"},"referencedDeclaration":2169,"src":"3931:12:31","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingFee_$2169_storage_ptr","typeString":"struct MessagingFee"}},"visibility":"internal"},{"constant":false,"id":4780,"mutability":"mutable","name":"_refundAddress","nameLocation":"3975:14:31","nodeType":"VariableDeclaration","scope":4786,"src":"3967:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4779,"name":"address","nodeType":"ElementaryTypeName","src":"3967:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3882:113:31"},"returnParameters":{"id":4785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4786,"src":"4022:23:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_memory_ptr","typeString":"struct MessagingReceipt"},"typeName":{"id":4783,"nodeType":"UserDefinedTypeName","pathNode":{"id":4782,"name":"MessagingReceipt","nameLocations":["4022:16:31"],"nodeType":"IdentifierPath","referencedDeclaration":2164,"src":"4022:16:31"},"referencedDeclaration":2164,"src":"4022:16:31","typeDescriptions":{"typeIdentifier":"t_struct$_MessagingReceipt_$2164_storage_ptr","typeString":"struct MessagingReceipt"}},"visibility":"internal"}],"src":"4021:25:31"},"scope":4787,"src":"3869:178:31","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":4788,"src":"791:3258:31","usedErrors":[4713,4719],"usedEvents":[4729,4739]}],"src":"33:4017:31"},"id":31},"@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol":{"ast":{"absolutePath":"@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol","exportedSymbols":{"ONFT721MsgCodec":[4954]},"id":4955,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4789,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"33:24:32"},{"abstract":false,"baseContracts":[],"canonicalName":"ONFT721MsgCodec","contractDependencies":[],"contractKind":"library","documentation":{"id":4790,"nodeType":"StructuredDocumentation","src":"59:101:32","text":"@title ONFT721MsgCodec\n @notice Library for encoding and decoding ONFT721 LayerZero messages."},"fullyImplemented":true,"id":4954,"linearizedBaseContracts":[4954],"name":"ONFT721MsgCodec","nameLocation":"168:15:32","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":4793,"mutability":"constant","name":"SEND_TO_OFFSET","nameLocation":"213:14:32","nodeType":"VariableDeclaration","scope":4954,"src":"190:42:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4791,"name":"uint8","nodeType":"ElementaryTypeName","src":"190:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3332","id":4792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"230:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"visibility":"private"},{"constant":true,"id":4796,"mutability":"constant","name":"TOKEN_ID_OFFSET","nameLocation":"261:15:32","nodeType":"VariableDeclaration","scope":4954,"src":"238:43:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4794,"name":"uint8","nodeType":"ElementaryTypeName","src":"238:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3634","id":4795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"279:2:32","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"visibility":"private"},{"body":{"id":4837,"nodeType":"Block","src":"826:225:32","statements":[{"expression":{"id":4815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4810,"name":"hasCompose","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"836:10:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4811,"name":"_composeMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4803,"src":"849:11:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"861:6:32","memberName":"length","nodeType":"MemberAccess","src":"849:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"870:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"849:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"836:35:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4816,"nodeType":"ExpressionStatement","src":"836:35:32"},{"expression":{"id":4835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4817,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4806,"src":"881:7:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"id":4818,"name":"hasCompose","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"891:10:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":4831,"name":"_sendTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4799,"src":"1026:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4832,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4801,"src":"1035:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4829,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1009:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1013:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"1009:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1009:35:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"891:153:32","trueExpression":{"arguments":[{"id":4821,"name":"_sendTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4799,"src":"933:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4822,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4801,"src":"942:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":4824,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"969:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"973:6:32","memberName":"sender","nodeType":"MemberAccess","src":"969:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4823,"name":"addressToBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"952:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":4826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"952:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4827,"name":"_composeMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4803,"src":"982:11:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4819,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"916:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"920:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"916:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:78:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"881:163:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4836,"nodeType":"ExpressionStatement","src":"881:163:32"}]},"documentation":{"id":4797,"nodeType":"StructuredDocumentation","src":"288:364:32","text":"@dev Encodes an ONFT721 LayerZero message payload.\n @param _sendTo The recipient address.\n @param _tokenId The ID of the token to transfer.\n @param _composeMsg The composed payload.\n @return payload The encoded message payload.\n @return hasCompose A boolean indicating whether the message payload contains a composed payload."},"id":4838,"implemented":true,"kind":"function","modifiers":[],"name":"encode","nameLocation":"666:6:32","nodeType":"FunctionDefinition","parameters":{"id":4804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4799,"mutability":"mutable","name":"_sendTo","nameLocation":"690:7:32","nodeType":"VariableDeclaration","scope":4838,"src":"682:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"682:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4801,"mutability":"mutable","name":"_tokenId","nameLocation":"715:8:32","nodeType":"VariableDeclaration","scope":4838,"src":"707:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4800,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4803,"mutability":"mutable","name":"_composeMsg","nameLocation":"746:11:32","nodeType":"VariableDeclaration","scope":4838,"src":"733:24:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4802,"name":"bytes","nodeType":"ElementaryTypeName","src":"733:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"672:91:32"},"returnParameters":{"id":4809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4806,"mutability":"mutable","name":"payload","nameLocation":"800:7:32","nodeType":"VariableDeclaration","scope":4838,"src":"787:20:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4805,"name":"bytes","nodeType":"ElementaryTypeName","src":"787:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4808,"mutability":"mutable","name":"hasCompose","nameLocation":"814:10:32","nodeType":"VariableDeclaration","scope":4838,"src":"809:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4807,"name":"bool","nodeType":"ElementaryTypeName","src":"809:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"786:39:32"},"scope":4954,"src":"657:394:32","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4855,"nodeType":"Block","src":"1303:62:32","statements":[{"expression":{"id":4853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4846,"name":"parsedSendTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4844,"src":"1313:12:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":4849,"name":"_msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4841,"src":"1336:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":4850,"name":"SEND_TO_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4793,"src":"1342:14:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1336:21:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1328:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1328:7:32","typeDescriptions":{}}},"id":4852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1328:30:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1313:45:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4854,"nodeType":"ExpressionStatement","src":"1313:45:32"}]},"documentation":{"id":4839,"nodeType":"StructuredDocumentation","src":"1057:159:32","text":"@dev Decodes sendTo from the ONFT LayerZero message.\n @param _msg The message.\n @return parsedSendTo The recipient address in bytes32 format."},"id":4856,"implemented":true,"kind":"function","modifiers":[],"name":"sendTo","nameLocation":"1230:6:32","nodeType":"FunctionDefinition","parameters":{"id":4842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4841,"mutability":"mutable","name":"_msg","nameLocation":"1252:4:32","nodeType":"VariableDeclaration","scope":4856,"src":"1237:19:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4840,"name":"bytes","nodeType":"ElementaryTypeName","src":"1237:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1236:21:32"},"returnParameters":{"id":4845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4844,"mutability":"mutable","name":"parsedSendTo","nameLocation":"1289:12:32","nodeType":"VariableDeclaration","scope":4856,"src":"1281:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1281:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1280:22:32"},"scope":4954,"src":"1221:144:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4877,"nodeType":"Block","src":"1614:92:32","statements":[{"expression":{"id":4875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4864,"name":"parsedTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"1624:13:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":4867,"name":"_msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4859,"src":"1651:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"id":4869,"name":"TOKEN_ID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"1671:15:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1651:36:32","startExpression":{"id":4868,"name":"SEND_TO_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4793,"src":"1656:14:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},{"components":[{"id":4872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1690:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4871,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:32","typeDescriptions":{}}}],"id":4873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1689:9:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":4865,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1640:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1644:6:32","memberName":"decode","nodeType":"MemberAccess","src":"1640:10:32","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1640:59:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1624:75:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4876,"nodeType":"ExpressionStatement","src":"1624:75:32"}]},"documentation":{"id":4857,"nodeType":"StructuredDocumentation","src":"1371:154:32","text":"@dev Decodes tokenId from the ONFT LayerZero message.\n @param _msg The message.\n @return parsedTokenId The ID of the tokens to transfer."},"id":4878,"implemented":true,"kind":"function","modifiers":[],"name":"tokenId","nameLocation":"1539:7:32","nodeType":"FunctionDefinition","parameters":{"id":4860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4859,"mutability":"mutable","name":"_msg","nameLocation":"1562:4:32","nodeType":"VariableDeclaration","scope":4878,"src":"1547:19:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4858,"name":"bytes","nodeType":"ElementaryTypeName","src":"1547:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1546:21:32"},"returnParameters":{"id":4863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4862,"mutability":"mutable","name":"parsedTokenId","nameLocation":"1599:13:32","nodeType":"VariableDeclaration","scope":4878,"src":"1591:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4861,"name":"uint256","nodeType":"ElementaryTypeName","src":"1591:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1590:23:32"},"scope":4954,"src":"1530:176:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4893,"nodeType":"Block","src":"1988:65:32","statements":[{"expression":{"id":4891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4886,"name":"parsedIsComposed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4884,"src":"1998:16:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4887,"name":"_msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"2017:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2022:6:32","memberName":"length","nodeType":"MemberAccess","src":"2017:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4889,"name":"TOKEN_ID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"2031:15:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2017:29:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1998:48:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4892,"nodeType":"ExpressionStatement","src":"1998:48:32"}]},"documentation":{"id":4879,"nodeType":"StructuredDocumentation","src":"1712:184:32","text":"@dev Decodes whether there is a composed payload.\n @param _msg The message.\n @return parsedIsComposed A boolean indicating whether the message has a composed payload."},"id":4894,"implemented":true,"kind":"function","modifiers":[],"name":"isComposed","nameLocation":"1910:10:32","nodeType":"FunctionDefinition","parameters":{"id":4882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4881,"mutability":"mutable","name":"_msg","nameLocation":"1936:4:32","nodeType":"VariableDeclaration","scope":4894,"src":"1921:19:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4880,"name":"bytes","nodeType":"ElementaryTypeName","src":"1921:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1920:21:32"},"returnParameters":{"id":4885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4884,"mutability":"mutable","name":"parsedIsComposed","nameLocation":"1970:16:32","nodeType":"VariableDeclaration","scope":4894,"src":"1965:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4883,"name":"bool","nodeType":"ElementaryTypeName","src":"1965:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1964:23:32"},"scope":4954,"src":"1901:152:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4908,"nodeType":"Block","src":"2285:58:32","statements":[{"expression":{"id":4906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4902,"name":"parsedComposeMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4900,"src":"2295:16:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":4903,"name":"_msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4897,"src":"2314:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2314:22:32","startExpression":{"id":4904,"name":"TOKEN_ID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"2319:15:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"src":"2295:41:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4907,"nodeType":"ExpressionStatement","src":"2295:41:32"}]},"documentation":{"id":4895,"nodeType":"StructuredDocumentation","src":"2059:126:32","text":"@dev Decodes the composed message.\n @param _msg The message.\n @return parsedComposeMsg The composed message."},"id":4909,"implemented":true,"kind":"function","modifiers":[],"name":"composeMsg","nameLocation":"2199:10:32","nodeType":"FunctionDefinition","parameters":{"id":4898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4897,"mutability":"mutable","name":"_msg","nameLocation":"2225:4:32","nodeType":"VariableDeclaration","scope":4909,"src":"2210:19:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4896,"name":"bytes","nodeType":"ElementaryTypeName","src":"2210:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2209:21:32"},"returnParameters":{"id":4901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4900,"mutability":"mutable","name":"parsedComposeMsg","nameLocation":"2267:16:32","nodeType":"VariableDeclaration","scope":4909,"src":"2254:29:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4899,"name":"bytes","nodeType":"ElementaryTypeName","src":"2254:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2253:31:32"},"scope":4954,"src":"2190:153:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4930,"nodeType":"Block","src":"2595:63:32","statements":[{"expression":{"id":4928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4917,"name":"bytes32Repr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4915,"src":"2605:11:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":4924,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4912,"src":"2643:5:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2635:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4922,"name":"uint160","nodeType":"ElementaryTypeName","src":"2635:7:32","typeDescriptions":{}}},"id":4925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2635:14:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2627:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4920,"name":"uint256","nodeType":"ElementaryTypeName","src":"2627:7:32","typeDescriptions":{}}},"id":4926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2627:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2619:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4918,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2619:7:32","typeDescriptions":{}}},"id":4927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2619:32:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2605:46:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4929,"nodeType":"ExpressionStatement","src":"2605:46:32"}]},"documentation":{"id":4910,"nodeType":"StructuredDocumentation","src":"2349:156:32","text":"@dev Converts an address to bytes32.\n @param _addr The address to convert.\n @return bytes32Repr The bytes32 representation of the address."},"id":4931,"implemented":true,"kind":"function","modifiers":[],"name":"addressToBytes32","nameLocation":"2519:16:32","nodeType":"FunctionDefinition","parameters":{"id":4913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4912,"mutability":"mutable","name":"_addr","nameLocation":"2544:5:32","nodeType":"VariableDeclaration","scope":4931,"src":"2536:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4911,"name":"address","nodeType":"ElementaryTypeName","src":"2536:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2535:15:32"},"returnParameters":{"id":4916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4915,"mutability":"mutable","name":"bytes32Repr","nameLocation":"2582:11:32","nodeType":"VariableDeclaration","scope":4931,"src":"2574:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4914,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2574:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2573:21:32"},"scope":4954,"src":"2510:148:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4952,"nodeType":"Block","src":"2906:60:32","statements":[{"expression":{"id":4950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4939,"name":"addressRepr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4937,"src":"2916:11:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":4946,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4934,"src":"2954:2:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2946:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4944,"name":"uint256","nodeType":"ElementaryTypeName","src":"2946:7:32","typeDescriptions":{}}},"id":4947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2946:11:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2938:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4942,"name":"uint160","nodeType":"ElementaryTypeName","src":"2938:7:32","typeDescriptions":{}}},"id":4948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2938:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2930:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4940,"name":"address","nodeType":"ElementaryTypeName","src":"2930:7:32","typeDescriptions":{}}},"id":4949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2930:29:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2916:43:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4951,"nodeType":"ExpressionStatement","src":"2916:43:32"}]},"documentation":{"id":4932,"nodeType":"StructuredDocumentation","src":"2664:155:32","text":"@dev Converts bytes32 to an address.\n @param _b The bytes32 value to convert.\n @return addressRepr The address representation of bytes32."},"id":4953,"implemented":true,"kind":"function","modifiers":[],"name":"bytes32ToAddress","nameLocation":"2833:16:32","nodeType":"FunctionDefinition","parameters":{"id":4935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4934,"mutability":"mutable","name":"_b","nameLocation":"2858:2:32","nodeType":"VariableDeclaration","scope":4953,"src":"2850:10:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2850:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2849:12:32"},"returnParameters":{"id":4938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4937,"mutability":"mutable","name":"addressRepr","nameLocation":"2893:11:32","nodeType":"VariableDeclaration","scope":4953,"src":"2885:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4936,"name":"address","nodeType":"ElementaryTypeName","src":"2885:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2884:21:32"},"scope":4954,"src":"2824:142:32","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4955,"src":"160:2808:32","usedErrors":[],"usedEvents":[]}],"src":"33:2936:32"},"id":32},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[7098],"Ownable":[5102]},"id":5103,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4956,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"102:24:33"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":4958,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5103,"sourceUnit":7099,"src":"128:45:33","symbolAliases":[{"foreign":{"id":4957,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7098,"src":"136:7:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4960,"name":"Context","nameLocations":["692:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":7098,"src":"692:7:33"},"id":4961,"nodeType":"InheritanceSpecifier","src":"692:7:33"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4959,"nodeType":"StructuredDocumentation","src":"175:487:33","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":5102,"linearizedBaseContracts":[5102,7098],"name":"Ownable","nameLocation":"681:7:33","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":4963,"mutability":"mutable","name":"_owner","nameLocation":"722:6:33","nodeType":"VariableDeclaration","scope":5102,"src":"706:22:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4962,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":4964,"nodeType":"StructuredDocumentation","src":"735:85:33","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","id":4968,"name":"OwnableUnauthorizedAccount","nameLocation":"831:26:33","nodeType":"ErrorDefinition","parameters":{"id":4967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4966,"mutability":"mutable","name":"account","nameLocation":"866:7:33","nodeType":"VariableDeclaration","scope":4968,"src":"858:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4965,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"857:17:33"},"src":"825:50:33"},{"documentation":{"id":4969,"nodeType":"StructuredDocumentation","src":"881:82:33","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","id":4973,"name":"OwnableInvalidOwner","nameLocation":"974:19:33","nodeType":"ErrorDefinition","parameters":{"id":4972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4971,"mutability":"mutable","name":"owner","nameLocation":"1002:5:33","nodeType":"VariableDeclaration","scope":4973,"src":"994:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4970,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"993:15:33"},"src":"968:41:33"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":4979,"name":"OwnershipTransferred","nameLocation":"1021:20:33","nodeType":"EventDefinition","parameters":{"id":4978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4975,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1058:13:33","nodeType":"VariableDeclaration","scope":4979,"src":"1042:29:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4974,"name":"address","nodeType":"ElementaryTypeName","src":"1042:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4977,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1089:8:33","nodeType":"VariableDeclaration","scope":4979,"src":"1073:24:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4976,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1041:57:33"},"src":"1015:84:33"},{"body":{"id":5004,"nodeType":"Block","src":"1259:153:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4985,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4982,"src":"1273:12:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1289:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4986,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:33","typeDescriptions":{}}},"id":4989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1289:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1273:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4999,"nodeType":"IfStatement","src":"1269:95:33","trueBody":{"id":4998,"nodeType":"Block","src":"1301:63:33","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":4994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1342:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4992,"name":"address","nodeType":"ElementaryTypeName","src":"1342:7:33","typeDescriptions":{}}},"id":4995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1342:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4991,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4973,"src":"1322:19:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":4996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:31:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4997,"nodeType":"RevertStatement","src":"1315:38:33"}]}},{"expression":{"arguments":[{"id":5001,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4982,"src":"1392:12:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5000,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5101,"src":"1373:18:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5003,"nodeType":"ExpressionStatement","src":"1373:32:33"}]},"documentation":{"id":4980,"nodeType":"StructuredDocumentation","src":"1105:115:33","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"id":5005,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4982,"mutability":"mutable","name":"initialOwner","nameLocation":"1245:12:33","nodeType":"VariableDeclaration","scope":5005,"src":"1237:20:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4981,"name":"address","nodeType":"ElementaryTypeName","src":"1237:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1236:22:33"},"returnParameters":{"id":4984,"nodeType":"ParameterList","parameters":[],"src":"1259:0:33"},"scope":5102,"src":"1225:187:33","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5012,"nodeType":"Block","src":"1521:41:33","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5008,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5039,"src":"1531:11:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":5009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5010,"nodeType":"ExpressionStatement","src":"1531:13:33"},{"id":5011,"nodeType":"PlaceholderStatement","src":"1554:1:33"}]},"documentation":{"id":5006,"nodeType":"StructuredDocumentation","src":"1418:77:33","text":" @dev Throws if called by any account other than the owner."},"id":5013,"name":"onlyOwner","nameLocation":"1509:9:33","nodeType":"ModifierDefinition","parameters":{"id":5007,"nodeType":"ParameterList","parameters":[],"src":"1518:2:33"},"src":"1500:62:33","virtual":false,"visibility":"internal"},{"body":{"id":5021,"nodeType":"Block","src":"1693:30:33","statements":[{"expression":{"id":5019,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"1710:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5018,"id":5020,"nodeType":"Return","src":"1703:13:33"}]},"documentation":{"id":5014,"nodeType":"StructuredDocumentation","src":"1568:65:33","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":5022,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1647:5:33","nodeType":"FunctionDefinition","parameters":{"id":5015,"nodeType":"ParameterList","parameters":[],"src":"1652:2:33"},"returnParameters":{"id":5018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5022,"src":"1684:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5016,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1683:9:33"},"scope":5102,"src":"1638:85:33","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":5038,"nodeType":"Block","src":"1841:117:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5026,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"1855:5:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1855:7:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5028,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"1866:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1855:23:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5037,"nodeType":"IfStatement","src":"1851:101:33","trueBody":{"id":5036,"nodeType":"Block","src":"1880:72:33","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5032,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"1928:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5031,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4968,"src":"1901:26:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:40:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5035,"nodeType":"RevertStatement","src":"1894:47:33"}]}}]},"documentation":{"id":5023,"nodeType":"StructuredDocumentation","src":"1729:62:33","text":" @dev Throws if the sender is not the owner."},"id":5039,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1805:11:33","nodeType":"FunctionDefinition","parameters":{"id":5024,"nodeType":"ParameterList","parameters":[],"src":"1816:2:33"},"returnParameters":{"id":5025,"nodeType":"ParameterList","parameters":[],"src":"1841:0:33"},"scope":5102,"src":"1796:162:33","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5052,"nodeType":"Block","src":"2347:47:33","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2376:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5046,"name":"address","nodeType":"ElementaryTypeName","src":"2376:7:33","typeDescriptions":{}}},"id":5049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5045,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5101,"src":"2357:18:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2357:30:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5051,"nodeType":"ExpressionStatement","src":"2357:30:33"}]},"documentation":{"id":5040,"nodeType":"StructuredDocumentation","src":"1964:324:33","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","id":5053,"implemented":true,"kind":"function","modifiers":[{"id":5043,"kind":"modifierInvocation","modifierName":{"id":5042,"name":"onlyOwner","nameLocations":["2337:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":5013,"src":"2337:9:33"},"nodeType":"ModifierInvocation","src":"2337:9:33"}],"name":"renounceOwnership","nameLocation":"2302:17:33","nodeType":"FunctionDefinition","parameters":{"id":5041,"nodeType":"ParameterList","parameters":[],"src":"2319:2:33"},"returnParameters":{"id":5044,"nodeType":"ParameterList","parameters":[],"src":"2347:0:33"},"scope":5102,"src":"2293:101:33","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5080,"nodeType":"Block","src":"2613:145:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5061,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5056,"src":"2627:8:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2647:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2639:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5062,"name":"address","nodeType":"ElementaryTypeName","src":"2639:7:33","typeDescriptions":{}}},"id":5065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:22:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5075,"nodeType":"IfStatement","src":"2623:91:33","trueBody":{"id":5074,"nodeType":"Block","src":"2651:63:33","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":5070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2692:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5068,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:33","typeDescriptions":{}}},"id":5071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2692:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5067,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4973,"src":"2672:19:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:31:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5073,"nodeType":"RevertStatement","src":"2665:38:33"}]}},{"expression":{"arguments":[{"id":5077,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5056,"src":"2742:8:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5076,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5101,"src":"2723:18:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:28:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5079,"nodeType":"ExpressionStatement","src":"2723:28:33"}]},"documentation":{"id":5054,"nodeType":"StructuredDocumentation","src":"2400:138:33","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":5081,"implemented":true,"kind":"function","modifiers":[{"id":5059,"kind":"modifierInvocation","modifierName":{"id":5058,"name":"onlyOwner","nameLocations":["2603:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":5013,"src":"2603:9:33"},"nodeType":"ModifierInvocation","src":"2603:9:33"}],"name":"transferOwnership","nameLocation":"2552:17:33","nodeType":"FunctionDefinition","parameters":{"id":5057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5056,"mutability":"mutable","name":"newOwner","nameLocation":"2578:8:33","nodeType":"VariableDeclaration","scope":5081,"src":"2570:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5055,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2569:18:33"},"returnParameters":{"id":5060,"nodeType":"ParameterList","parameters":[],"src":"2613:0:33"},"scope":5102,"src":"2543:215:33","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5100,"nodeType":"Block","src":"2975:124:33","statements":[{"assignments":[5088],"declarations":[{"constant":false,"id":5088,"mutability":"mutable","name":"oldOwner","nameLocation":"2993:8:33","nodeType":"VariableDeclaration","scope":5100,"src":"2985:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5087,"name":"address","nodeType":"ElementaryTypeName","src":"2985:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5090,"initialValue":{"id":5089,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"3004:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2985:25:33"},{"expression":{"id":5093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5091,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"3020:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5092,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"3029:8:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3020:17:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5094,"nodeType":"ExpressionStatement","src":"3020:17:33"},{"eventCall":{"arguments":[{"id":5096,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"3073:8:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5097,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"3083:8:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5095,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4979,"src":"3052:20:33","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:40:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5099,"nodeType":"EmitStatement","src":"3047:45:33"}]},"documentation":{"id":5082,"nodeType":"StructuredDocumentation","src":"2764:143:33","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":5101,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2921:18:33","nodeType":"FunctionDefinition","parameters":{"id":5085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5084,"mutability":"mutable","name":"newOwner","nameLocation":"2948:8:33","nodeType":"VariableDeclaration","scope":5101,"src":"2940:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5083,"name":"address","nodeType":"ElementaryTypeName","src":"2940:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2939:18:33"},"returnParameters":{"id":5086,"nodeType":"ParameterList","parameters":[],"src":"2975:0:33"},"scope":5102,"src":"2912:187:33","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":5103,"src":"663:2438:33","usedErrors":[4968,4973],"usedEvents":[4979]}],"src":"102:3000:33"},"id":33},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","exportedSymbols":{"IERC1155Errors":[5239],"IERC20Errors":[5144],"IERC721Errors":[5192]},"id":5240,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5104,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:34"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":5105,"nodeType":"StructuredDocumentation","src":"138:139:34","text":" @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens."},"fullyImplemented":true,"id":5144,"linearizedBaseContracts":[5144],"name":"IERC20Errors","nameLocation":"288:12:34","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5106,"nodeType":"StructuredDocumentation","src":"307:309:34","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"e450d38c","id":5114,"name":"ERC20InsufficientBalance","nameLocation":"627:24:34","nodeType":"ErrorDefinition","parameters":{"id":5113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5108,"mutability":"mutable","name":"sender","nameLocation":"660:6:34","nodeType":"VariableDeclaration","scope":5114,"src":"652:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5107,"name":"address","nodeType":"ElementaryTypeName","src":"652:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5110,"mutability":"mutable","name":"balance","nameLocation":"676:7:34","nodeType":"VariableDeclaration","scope":5114,"src":"668:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5109,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5112,"mutability":"mutable","name":"needed","nameLocation":"693:6:34","nodeType":"VariableDeclaration","scope":5114,"src":"685:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5111,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"651:49:34"},"src":"621:80:34"},{"documentation":{"id":5115,"nodeType":"StructuredDocumentation","src":"707:152:34","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","id":5119,"name":"ERC20InvalidSender","nameLocation":"870:18:34","nodeType":"ErrorDefinition","parameters":{"id":5118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5117,"mutability":"mutable","name":"sender","nameLocation":"897:6:34","nodeType":"VariableDeclaration","scope":5119,"src":"889:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5116,"name":"address","nodeType":"ElementaryTypeName","src":"889:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"888:16:34"},"src":"864:41:34"},{"documentation":{"id":5120,"nodeType":"StructuredDocumentation","src":"911:159:34","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"ec442f05","id":5124,"name":"ERC20InvalidReceiver","nameLocation":"1081:20:34","nodeType":"ErrorDefinition","parameters":{"id":5123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5122,"mutability":"mutable","name":"receiver","nameLocation":"1110:8:34","nodeType":"VariableDeclaration","scope":5124,"src":"1102:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5121,"name":"address","nodeType":"ElementaryTypeName","src":"1102:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1101:18:34"},"src":"1075:45:34"},{"documentation":{"id":5125,"nodeType":"StructuredDocumentation","src":"1126:345:34","text":" @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"fb8f41b2","id":5133,"name":"ERC20InsufficientAllowance","nameLocation":"1482:26:34","nodeType":"ErrorDefinition","parameters":{"id":5132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5127,"mutability":"mutable","name":"spender","nameLocation":"1517:7:34","nodeType":"VariableDeclaration","scope":5133,"src":"1509:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5126,"name":"address","nodeType":"ElementaryTypeName","src":"1509:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5129,"mutability":"mutable","name":"allowance","nameLocation":"1534:9:34","nodeType":"VariableDeclaration","scope":5133,"src":"1526:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5128,"name":"uint256","nodeType":"ElementaryTypeName","src":"1526:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5131,"mutability":"mutable","name":"needed","nameLocation":"1553:6:34","nodeType":"VariableDeclaration","scope":5133,"src":"1545:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5130,"name":"uint256","nodeType":"ElementaryTypeName","src":"1545:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1508:52:34"},"src":"1476:85:34"},{"documentation":{"id":5134,"nodeType":"StructuredDocumentation","src":"1567:174:34","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"e602df05","id":5138,"name":"ERC20InvalidApprover","nameLocation":"1752:20:34","nodeType":"ErrorDefinition","parameters":{"id":5137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5136,"mutability":"mutable","name":"approver","nameLocation":"1781:8:34","nodeType":"VariableDeclaration","scope":5138,"src":"1773:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5135,"name":"address","nodeType":"ElementaryTypeName","src":"1773:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1772:18:34"},"src":"1746:45:34"},{"documentation":{"id":5139,"nodeType":"StructuredDocumentation","src":"1797:195:34","text":" @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"94280d62","id":5143,"name":"ERC20InvalidSpender","nameLocation":"2003:19:34","nodeType":"ErrorDefinition","parameters":{"id":5142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5141,"mutability":"mutable","name":"spender","nameLocation":"2031:7:34","nodeType":"VariableDeclaration","scope":5143,"src":"2023:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5140,"name":"address","nodeType":"ElementaryTypeName","src":"2023:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2022:17:34"},"src":"1997:43:34"}],"scope":5240,"src":"278:1764:34","usedErrors":[5114,5119,5124,5133,5138,5143],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":5145,"nodeType":"StructuredDocumentation","src":"2044:141:34","text":" @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens."},"fullyImplemented":true,"id":5192,"linearizedBaseContracts":[5192],"name":"IERC721Errors","nameLocation":"2196:13:34","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5146,"nodeType":"StructuredDocumentation","src":"2216:219:34","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","id":5150,"name":"ERC721InvalidOwner","nameLocation":"2446:18:34","nodeType":"ErrorDefinition","parameters":{"id":5149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5148,"mutability":"mutable","name":"owner","nameLocation":"2473:5:34","nodeType":"VariableDeclaration","scope":5150,"src":"2465:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5147,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:15:34"},"src":"2440:40:34"},{"documentation":{"id":5151,"nodeType":"StructuredDocumentation","src":"2486:132:34","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","id":5155,"name":"ERC721NonexistentToken","nameLocation":"2629:22:34","nodeType":"ErrorDefinition","parameters":{"id":5154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5153,"mutability":"mutable","name":"tokenId","nameLocation":"2660:7:34","nodeType":"VariableDeclaration","scope":5155,"src":"2652:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5152,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2651:17:34"},"src":"2623:46:34"},{"documentation":{"id":5156,"nodeType":"StructuredDocumentation","src":"2675:289:34","text":" @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."},"errorSelector":"64283d7b","id":5164,"name":"ERC721IncorrectOwner","nameLocation":"2975:20:34","nodeType":"ErrorDefinition","parameters":{"id":5163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5158,"mutability":"mutable","name":"sender","nameLocation":"3004:6:34","nodeType":"VariableDeclaration","scope":5164,"src":"2996:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5157,"name":"address","nodeType":"ElementaryTypeName","src":"2996:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5160,"mutability":"mutable","name":"tokenId","nameLocation":"3020:7:34","nodeType":"VariableDeclaration","scope":5164,"src":"3012:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5159,"name":"uint256","nodeType":"ElementaryTypeName","src":"3012:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5162,"mutability":"mutable","name":"owner","nameLocation":"3037:5:34","nodeType":"VariableDeclaration","scope":5164,"src":"3029:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5161,"name":"address","nodeType":"ElementaryTypeName","src":"3029:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2995:48:34"},"src":"2969:75:34"},{"documentation":{"id":5165,"nodeType":"StructuredDocumentation","src":"3050:152:34","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","id":5169,"name":"ERC721InvalidSender","nameLocation":"3213:19:34","nodeType":"ErrorDefinition","parameters":{"id":5168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5167,"mutability":"mutable","name":"sender","nameLocation":"3241:6:34","nodeType":"VariableDeclaration","scope":5169,"src":"3233:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5166,"name":"address","nodeType":"ElementaryTypeName","src":"3233:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3232:16:34"},"src":"3207:42:34"},{"documentation":{"id":5170,"nodeType":"StructuredDocumentation","src":"3255:159:34","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"64a0ae92","id":5174,"name":"ERC721InvalidReceiver","nameLocation":"3425:21:34","nodeType":"ErrorDefinition","parameters":{"id":5173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5172,"mutability":"mutable","name":"receiver","nameLocation":"3455:8:34","nodeType":"VariableDeclaration","scope":5174,"src":"3447:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5171,"name":"address","nodeType":"ElementaryTypeName","src":"3447:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3446:18:34"},"src":"3419:46:34"},{"documentation":{"id":5175,"nodeType":"StructuredDocumentation","src":"3471:247:34","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."},"errorSelector":"177e802f","id":5181,"name":"ERC721InsufficientApproval","nameLocation":"3729:26:34","nodeType":"ErrorDefinition","parameters":{"id":5180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5177,"mutability":"mutable","name":"operator","nameLocation":"3764:8:34","nodeType":"VariableDeclaration","scope":5181,"src":"3756:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5176,"name":"address","nodeType":"ElementaryTypeName","src":"3756:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5179,"mutability":"mutable","name":"tokenId","nameLocation":"3782:7:34","nodeType":"VariableDeclaration","scope":5181,"src":"3774:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5178,"name":"uint256","nodeType":"ElementaryTypeName","src":"3774:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3755:35:34"},"src":"3723:68:34"},{"documentation":{"id":5182,"nodeType":"StructuredDocumentation","src":"3797:174:34","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"a9fbf51f","id":5186,"name":"ERC721InvalidApprover","nameLocation":"3982:21:34","nodeType":"ErrorDefinition","parameters":{"id":5185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5184,"mutability":"mutable","name":"approver","nameLocation":"4012:8:34","nodeType":"VariableDeclaration","scope":5186,"src":"4004:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5183,"name":"address","nodeType":"ElementaryTypeName","src":"4004:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4003:18:34"},"src":"3976:46:34"},{"documentation":{"id":5187,"nodeType":"StructuredDocumentation","src":"4028:197:34","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"5b08ba18","id":5191,"name":"ERC721InvalidOperator","nameLocation":"4236:21:34","nodeType":"ErrorDefinition","parameters":{"id":5190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5189,"mutability":"mutable","name":"operator","nameLocation":"4266:8:34","nodeType":"VariableDeclaration","scope":5191,"src":"4258:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5188,"name":"address","nodeType":"ElementaryTypeName","src":"4258:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4257:18:34"},"src":"4230:46:34"}],"scope":5240,"src":"2186:2092:34","usedErrors":[5150,5155,5164,5169,5174,5181,5186,5191],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":5193,"nodeType":"StructuredDocumentation","src":"4280:143:34","text":" @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens."},"fullyImplemented":true,"id":5239,"linearizedBaseContracts":[5239],"name":"IERC1155Errors","nameLocation":"4434:14:34","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5194,"nodeType":"StructuredDocumentation","src":"4455:361:34","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."},"errorSelector":"03dee4c5","id":5204,"name":"ERC1155InsufficientBalance","nameLocation":"4827:26:34","nodeType":"ErrorDefinition","parameters":{"id":5203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5196,"mutability":"mutable","name":"sender","nameLocation":"4862:6:34","nodeType":"VariableDeclaration","scope":5204,"src":"4854:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5195,"name":"address","nodeType":"ElementaryTypeName","src":"4854:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5198,"mutability":"mutable","name":"balance","nameLocation":"4878:7:34","nodeType":"VariableDeclaration","scope":5204,"src":"4870:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5197,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5200,"mutability":"mutable","name":"needed","nameLocation":"4895:6:34","nodeType":"VariableDeclaration","scope":5204,"src":"4887:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5199,"name":"uint256","nodeType":"ElementaryTypeName","src":"4887:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5202,"mutability":"mutable","name":"tokenId","nameLocation":"4911:7:34","nodeType":"VariableDeclaration","scope":5204,"src":"4903:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5201,"name":"uint256","nodeType":"ElementaryTypeName","src":"4903:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4853:66:34"},"src":"4821:99:34"},{"documentation":{"id":5205,"nodeType":"StructuredDocumentation","src":"4926:152:34","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","id":5209,"name":"ERC1155InvalidSender","nameLocation":"5089:20:34","nodeType":"ErrorDefinition","parameters":{"id":5208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5207,"mutability":"mutable","name":"sender","nameLocation":"5118:6:34","nodeType":"VariableDeclaration","scope":5209,"src":"5110:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5206,"name":"address","nodeType":"ElementaryTypeName","src":"5110:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5109:16:34"},"src":"5083:43:34"},{"documentation":{"id":5210,"nodeType":"StructuredDocumentation","src":"5132:159:34","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"57f447ce","id":5214,"name":"ERC1155InvalidReceiver","nameLocation":"5302:22:34","nodeType":"ErrorDefinition","parameters":{"id":5213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5212,"mutability":"mutable","name":"receiver","nameLocation":"5333:8:34","nodeType":"VariableDeclaration","scope":5214,"src":"5325:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5211,"name":"address","nodeType":"ElementaryTypeName","src":"5325:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5324:18:34"},"src":"5296:47:34"},{"documentation":{"id":5215,"nodeType":"StructuredDocumentation","src":"5349:256:34","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."},"errorSelector":"e237d922","id":5221,"name":"ERC1155MissingApprovalForAll","nameLocation":"5616:28:34","nodeType":"ErrorDefinition","parameters":{"id":5220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5217,"mutability":"mutable","name":"operator","nameLocation":"5653:8:34","nodeType":"VariableDeclaration","scope":5221,"src":"5645:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5216,"name":"address","nodeType":"ElementaryTypeName","src":"5645:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5219,"mutability":"mutable","name":"owner","nameLocation":"5671:5:34","nodeType":"VariableDeclaration","scope":5221,"src":"5663:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5218,"name":"address","nodeType":"ElementaryTypeName","src":"5663:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5644:33:34"},"src":"5610:68:34"},{"documentation":{"id":5222,"nodeType":"StructuredDocumentation","src":"5684:174:34","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"3e31884e","id":5226,"name":"ERC1155InvalidApprover","nameLocation":"5869:22:34","nodeType":"ErrorDefinition","parameters":{"id":5225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5224,"mutability":"mutable","name":"approver","nameLocation":"5900:8:34","nodeType":"VariableDeclaration","scope":5226,"src":"5892:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5223,"name":"address","nodeType":"ElementaryTypeName","src":"5892:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5891:18:34"},"src":"5863:47:34"},{"documentation":{"id":5227,"nodeType":"StructuredDocumentation","src":"5916:197:34","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"ced3e100","id":5231,"name":"ERC1155InvalidOperator","nameLocation":"6124:22:34","nodeType":"ErrorDefinition","parameters":{"id":5230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5229,"mutability":"mutable","name":"operator","nameLocation":"6155:8:34","nodeType":"VariableDeclaration","scope":5231,"src":"6147:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5228,"name":"address","nodeType":"ElementaryTypeName","src":"6147:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6146:18:34"},"src":"6118:47:34"},{"documentation":{"id":5232,"nodeType":"StructuredDocumentation","src":"6171:280:34","text":" @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"},"errorSelector":"5b059991","id":5238,"name":"ERC1155InvalidArrayLength","nameLocation":"6462:25:34","nodeType":"ErrorDefinition","parameters":{"id":5237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5234,"mutability":"mutable","name":"idsLength","nameLocation":"6496:9:34","nodeType":"VariableDeclaration","scope":5238,"src":"6488:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5233,"name":"uint256","nodeType":"ElementaryTypeName","src":"6488:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5236,"mutability":"mutable","name":"valuesLength","nameLocation":"6515:12:34","nodeType":"VariableDeclaration","scope":5238,"src":"6507:20:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5235,"name":"uint256","nodeType":"ElementaryTypeName","src":"6507:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6487:41:34"},"src":"6456:73:34"}],"scope":5240,"src":"4424:2107:34","usedErrors":[5204,5209,5214,5221,5226,5231,5238],"usedEvents":[]}],"src":"112:6420:34"},"id":34},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[5317]},"id":5318,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5241,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"106:24:35"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":5242,"nodeType":"StructuredDocumentation","src":"132:70:35","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":5317,"linearizedBaseContracts":[5317],"name":"IERC20","nameLocation":"213:6:35","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":5243,"nodeType":"StructuredDocumentation","src":"226:158:35","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":5251,"name":"Transfer","nameLocation":"395:8:35","nodeType":"EventDefinition","parameters":{"id":5250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5245,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"420:4:35","nodeType":"VariableDeclaration","scope":5251,"src":"404:20:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5244,"name":"address","nodeType":"ElementaryTypeName","src":"404:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5247,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"442:2:35","nodeType":"VariableDeclaration","scope":5251,"src":"426:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5246,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5249,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"454:5:35","nodeType":"VariableDeclaration","scope":5251,"src":"446:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5248,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"403:57:35"},"src":"389:72:35"},{"anonymous":false,"documentation":{"id":5252,"nodeType":"StructuredDocumentation","src":"467:148:35","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":5260,"name":"Approval","nameLocation":"626:8:35","nodeType":"EventDefinition","parameters":{"id":5259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5254,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"651:5:35","nodeType":"VariableDeclaration","scope":5260,"src":"635:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5253,"name":"address","nodeType":"ElementaryTypeName","src":"635:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5256,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"674:7:35","nodeType":"VariableDeclaration","scope":5260,"src":"658:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5255,"name":"address","nodeType":"ElementaryTypeName","src":"658:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5258,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"691:5:35","nodeType":"VariableDeclaration","scope":5260,"src":"683:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5257,"name":"uint256","nodeType":"ElementaryTypeName","src":"683:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"634:63:35"},"src":"620:78:35"},{"documentation":{"id":5261,"nodeType":"StructuredDocumentation","src":"704:65:35","text":" @dev Returns the value of tokens in existence."},"functionSelector":"18160ddd","id":5266,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:35","nodeType":"FunctionDefinition","parameters":{"id":5262,"nodeType":"ParameterList","parameters":[],"src":"794:2:35"},"returnParameters":{"id":5265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5264,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5266,"src":"820:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5263,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:35"},"scope":5317,"src":"774:55:35","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5267,"nodeType":"StructuredDocumentation","src":"835:71:35","text":" @dev Returns the value of tokens owned by `account`."},"functionSelector":"70a08231","id":5274,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"920:9:35","nodeType":"FunctionDefinition","parameters":{"id":5270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5269,"mutability":"mutable","name":"account","nameLocation":"938:7:35","nodeType":"VariableDeclaration","scope":5274,"src":"930:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5268,"name":"address","nodeType":"ElementaryTypeName","src":"930:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"929:17:35"},"returnParameters":{"id":5273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5274,"src":"970:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5271,"name":"uint256","nodeType":"ElementaryTypeName","src":"970:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"969:9:35"},"scope":5317,"src":"911:68:35","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5275,"nodeType":"StructuredDocumentation","src":"985:213:35","text":" @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":5284,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1212:8:35","nodeType":"FunctionDefinition","parameters":{"id":5280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5277,"mutability":"mutable","name":"to","nameLocation":"1229:2:35","nodeType":"VariableDeclaration","scope":5284,"src":"1221:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5276,"name":"address","nodeType":"ElementaryTypeName","src":"1221:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5279,"mutability":"mutable","name":"value","nameLocation":"1241:5:35","nodeType":"VariableDeclaration","scope":5284,"src":"1233:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5278,"name":"uint256","nodeType":"ElementaryTypeName","src":"1233:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:27:35"},"returnParameters":{"id":5283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5284,"src":"1266:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5281,"name":"bool","nodeType":"ElementaryTypeName","src":"1266:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1265:6:35"},"scope":5317,"src":"1203:69:35","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5285,"nodeType":"StructuredDocumentation","src":"1278:264:35","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":5294,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1556:9:35","nodeType":"FunctionDefinition","parameters":{"id":5290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5287,"mutability":"mutable","name":"owner","nameLocation":"1574:5:35","nodeType":"VariableDeclaration","scope":5294,"src":"1566:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5286,"name":"address","nodeType":"ElementaryTypeName","src":"1566:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5289,"mutability":"mutable","name":"spender","nameLocation":"1589:7:35","nodeType":"VariableDeclaration","scope":5294,"src":"1581:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5288,"name":"address","nodeType":"ElementaryTypeName","src":"1581:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1565:32:35"},"returnParameters":{"id":5293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5294,"src":"1621:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5291,"name":"uint256","nodeType":"ElementaryTypeName","src":"1621:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1620:9:35"},"scope":5317,"src":"1547:83:35","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5295,"nodeType":"StructuredDocumentation","src":"1636:667:35","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":5304,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2317:7:35","nodeType":"FunctionDefinition","parameters":{"id":5300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5297,"mutability":"mutable","name":"spender","nameLocation":"2333:7:35","nodeType":"VariableDeclaration","scope":5304,"src":"2325:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5296,"name":"address","nodeType":"ElementaryTypeName","src":"2325:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5299,"mutability":"mutable","name":"value","nameLocation":"2350:5:35","nodeType":"VariableDeclaration","scope":5304,"src":"2342:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5298,"name":"uint256","nodeType":"ElementaryTypeName","src":"2342:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2324:32:35"},"returnParameters":{"id":5303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5302,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5304,"src":"2375:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5301,"name":"bool","nodeType":"ElementaryTypeName","src":"2375:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2374:6:35"},"scope":5317,"src":"2308:73:35","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5305,"nodeType":"StructuredDocumentation","src":"2387:297:35","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":5316,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2698:12:35","nodeType":"FunctionDefinition","parameters":{"id":5312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5307,"mutability":"mutable","name":"from","nameLocation":"2719:4:35","nodeType":"VariableDeclaration","scope":5316,"src":"2711:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5306,"name":"address","nodeType":"ElementaryTypeName","src":"2711:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5309,"mutability":"mutable","name":"to","nameLocation":"2733:2:35","nodeType":"VariableDeclaration","scope":5316,"src":"2725:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5308,"name":"address","nodeType":"ElementaryTypeName","src":"2725:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5311,"mutability":"mutable","name":"value","nameLocation":"2745:5:35","nodeType":"VariableDeclaration","scope":5316,"src":"2737:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5310,"name":"uint256","nodeType":"ElementaryTypeName","src":"2737:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2710:41:35"},"returnParameters":{"id":5315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5316,"src":"2770:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5313,"name":"bool","nodeType":"ElementaryTypeName","src":"2770:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2769:6:35"},"scope":5317,"src":"2689:87:35","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5318,"src":"203:2575:35","usedErrors":[],"usedEvents":[5251,5260]}],"src":"106:2673:35"},"id":35},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[5353]},"id":5354,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5319,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"123:24:36"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":5320,"nodeType":"StructuredDocumentation","src":"149:1963:36","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all.\n ==== Security Considerations\n There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n considered as an intention to spend the allowance in any specific way. The second is that because permits have\n built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n generally recommended is:\n ```solidity\n function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n doThing(..., value);\n }\n function doThing(..., uint256 value) public {\n token.safeTransferFrom(msg.sender, address(this), value);\n ...\n }\n ```\n Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n {SafeERC20-safeTransferFrom}).\n Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n contracts should have entry points that don't rely on permit."},"fullyImplemented":false,"id":5353,"linearizedBaseContracts":[5353],"name":"IERC20Permit","nameLocation":"2123:12:36","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5321,"nodeType":"StructuredDocumentation","src":"2142:850:36","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section].\n CAUTION: See Security Considerations above."},"functionSelector":"d505accf","id":5338,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"3006:6:36","nodeType":"FunctionDefinition","parameters":{"id":5336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5323,"mutability":"mutable","name":"owner","nameLocation":"3030:5:36","nodeType":"VariableDeclaration","scope":5338,"src":"3022:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5322,"name":"address","nodeType":"ElementaryTypeName","src":"3022:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5325,"mutability":"mutable","name":"spender","nameLocation":"3053:7:36","nodeType":"VariableDeclaration","scope":5338,"src":"3045:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5324,"name":"address","nodeType":"ElementaryTypeName","src":"3045:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5327,"mutability":"mutable","name":"value","nameLocation":"3078:5:36","nodeType":"VariableDeclaration","scope":5338,"src":"3070:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5326,"name":"uint256","nodeType":"ElementaryTypeName","src":"3070:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5329,"mutability":"mutable","name":"deadline","nameLocation":"3101:8:36","nodeType":"VariableDeclaration","scope":5338,"src":"3093:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5328,"name":"uint256","nodeType":"ElementaryTypeName","src":"3093:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5331,"mutability":"mutable","name":"v","nameLocation":"3125:1:36","nodeType":"VariableDeclaration","scope":5338,"src":"3119:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5330,"name":"uint8","nodeType":"ElementaryTypeName","src":"3119:5:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5333,"mutability":"mutable","name":"r","nameLocation":"3144:1:36","nodeType":"VariableDeclaration","scope":5338,"src":"3136:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3136:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5335,"mutability":"mutable","name":"s","nameLocation":"3163:1:36","nodeType":"VariableDeclaration","scope":5338,"src":"3155:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3155:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3012:158:36"},"returnParameters":{"id":5337,"nodeType":"ParameterList","parameters":[],"src":"3179:0:36"},"scope":5353,"src":"2997:183:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5339,"nodeType":"StructuredDocumentation","src":"3186:294:36","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":5346,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"3494:6:36","nodeType":"FunctionDefinition","parameters":{"id":5342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5341,"mutability":"mutable","name":"owner","nameLocation":"3509:5:36","nodeType":"VariableDeclaration","scope":5346,"src":"3501:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5340,"name":"address","nodeType":"ElementaryTypeName","src":"3501:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3500:15:36"},"returnParameters":{"id":5345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5346,"src":"3539:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5343,"name":"uint256","nodeType":"ElementaryTypeName","src":"3539:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3538:9:36"},"scope":5353,"src":"3485:63:36","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5347,"nodeType":"StructuredDocumentation","src":"3554:128:36","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":5352,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"3749:16:36","nodeType":"FunctionDefinition","parameters":{"id":5348,"nodeType":"ParameterList","parameters":[],"src":"3765:2:36"},"returnParameters":{"id":5351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5350,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5352,"src":"3791:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3791:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3790:9:36"},"scope":5353,"src":"3740:60:36","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5354,"src":"2113:1689:36","usedErrors":[],"usedEvents":[]}],"src":"123:3680:36"},"id":36},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[7068],"IERC20":[5317],"IERC20Permit":[5353],"SafeERC20":[5643]},"id":5644,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5355,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:37"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":5357,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5644,"sourceUnit":5318,"src":"141:37:37","symbolAliases":[{"foreign":{"id":5356,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5317,"src":"149:6:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","file":"../extensions/IERC20Permit.sol","id":5359,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5644,"sourceUnit":5354,"src":"179:60:37","symbolAliases":[{"foreign":{"id":5358,"name":"IERC20Permit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5353,"src":"187:12:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":5361,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5644,"sourceUnit":7069,"src":"240:51:37","symbolAliases":[{"foreign":{"id":5360,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7068,"src":"248:7:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":5362,"nodeType":"StructuredDocumentation","src":"293:457:37","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":5643,"linearizedBaseContracts":[5643],"name":"SafeERC20","nameLocation":"759:9:37","nodeType":"ContractDefinition","nodes":[{"global":false,"id":5365,"libraryName":{"id":5363,"name":"Address","nameLocations":["781:7:37"],"nodeType":"IdentifierPath","referencedDeclaration":7068,"src":"781:7:37"},"nodeType":"UsingForDirective","src":"775:26:37","typeName":{"id":5364,"name":"address","nodeType":"ElementaryTypeName","src":"793:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"documentation":{"id":5366,"nodeType":"StructuredDocumentation","src":"807:64:37","text":" @dev An operation with an ERC20 token failed."},"errorSelector":"5274afe7","id":5370,"name":"SafeERC20FailedOperation","nameLocation":"882:24:37","nodeType":"ErrorDefinition","parameters":{"id":5369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5368,"mutability":"mutable","name":"token","nameLocation":"915:5:37","nodeType":"VariableDeclaration","scope":5370,"src":"907:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5367,"name":"address","nodeType":"ElementaryTypeName","src":"907:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"906:15:37"},"src":"876:46:37"},{"documentation":{"id":5371,"nodeType":"StructuredDocumentation","src":"928:71:37","text":" @dev Indicates a failed `decreaseAllowance` request."},"errorSelector":"e570110f","id":5379,"name":"SafeERC20FailedDecreaseAllowance","nameLocation":"1010:32:37","nodeType":"ErrorDefinition","parameters":{"id":5378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5373,"mutability":"mutable","name":"spender","nameLocation":"1051:7:37","nodeType":"VariableDeclaration","scope":5379,"src":"1043:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5372,"name":"address","nodeType":"ElementaryTypeName","src":"1043:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5375,"mutability":"mutable","name":"currentAllowance","nameLocation":"1068:16:37","nodeType":"VariableDeclaration","scope":5379,"src":"1060:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5374,"name":"uint256","nodeType":"ElementaryTypeName","src":"1060:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5377,"mutability":"mutable","name":"requestedDecrease","nameLocation":"1094:17:37","nodeType":"VariableDeclaration","scope":5379,"src":"1086:25:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5376,"name":"uint256","nodeType":"ElementaryTypeName","src":"1086:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1042:70:37"},"src":"1004:109:37"},{"body":{"id":5402,"nodeType":"Block","src":"1375:88:37","statements":[{"expression":{"arguments":[{"id":5391,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"1405:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":5394,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"1427:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"id":5395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1433:8:37","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":5284,"src":"1427:14:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":5396,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5385,"src":"1444:2:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5397,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5387,"src":"1448:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5398,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1443:11:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}],"expression":{"id":5392,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1412:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1416:10:37","memberName":"encodeCall","nodeType":"MemberAccess","src":"1412:14:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1412:43:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5390,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"1385:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5317_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:71:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5401,"nodeType":"ExpressionStatement","src":"1385:71:37"}]},"documentation":{"id":5380,"nodeType":"StructuredDocumentation","src":"1119:179:37","text":" @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":5403,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"1312:12:37","nodeType":"FunctionDefinition","parameters":{"id":5388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5383,"mutability":"mutable","name":"token","nameLocation":"1332:5:37","nodeType":"VariableDeclaration","scope":5403,"src":"1325:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},"typeName":{"id":5382,"nodeType":"UserDefinedTypeName","pathNode":{"id":5381,"name":"IERC20","nameLocations":["1325:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":5317,"src":"1325:6:37"},"referencedDeclaration":5317,"src":"1325:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5385,"mutability":"mutable","name":"to","nameLocation":"1347:2:37","nodeType":"VariableDeclaration","scope":5403,"src":"1339:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5384,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5387,"mutability":"mutable","name":"value","nameLocation":"1359:5:37","nodeType":"VariableDeclaration","scope":5403,"src":"1351:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5386,"name":"uint256","nodeType":"ElementaryTypeName","src":"1351:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1324:41:37"},"returnParameters":{"id":5389,"nodeType":"ParameterList","parameters":[],"src":"1375:0:37"},"scope":5643,"src":"1303:160:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5429,"nodeType":"Block","src":"1792:98:37","statements":[{"expression":{"arguments":[{"id":5417,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"1822:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":5420,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"1844:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"id":5421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1850:12:37","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":5316,"src":"1844:18:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},{"components":[{"id":5422,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5409,"src":"1865:4:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5423,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5411,"src":"1871:2:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5424,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5413,"src":"1875:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5425,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1864:17:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_uint256_$","typeString":"tuple(address,address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_uint256_$","typeString":"tuple(address,address,uint256)"}],"expression":{"id":5418,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1829:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1833:10:37","memberName":"encodeCall","nodeType":"MemberAccess","src":"1829:14:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1829:53:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5416,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"1802:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5317_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:81:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5428,"nodeType":"ExpressionStatement","src":"1802:81:37"}]},"documentation":{"id":5404,"nodeType":"StructuredDocumentation","src":"1469:228:37","text":" @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."},"id":5430,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1711:16:37","nodeType":"FunctionDefinition","parameters":{"id":5414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5407,"mutability":"mutable","name":"token","nameLocation":"1735:5:37","nodeType":"VariableDeclaration","scope":5430,"src":"1728:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},"typeName":{"id":5406,"nodeType":"UserDefinedTypeName","pathNode":{"id":5405,"name":"IERC20","nameLocations":["1728:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":5317,"src":"1728:6:37"},"referencedDeclaration":5317,"src":"1728:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5409,"mutability":"mutable","name":"from","nameLocation":"1750:4:37","nodeType":"VariableDeclaration","scope":5430,"src":"1742:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5408,"name":"address","nodeType":"ElementaryTypeName","src":"1742:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5411,"mutability":"mutable","name":"to","nameLocation":"1764:2:37","nodeType":"VariableDeclaration","scope":5430,"src":"1756:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5410,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5413,"mutability":"mutable","name":"value","nameLocation":"1776:5:37","nodeType":"VariableDeclaration","scope":5430,"src":"1768:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5412,"name":"uint256","nodeType":"ElementaryTypeName","src":"1768:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1727:55:37"},"returnParameters":{"id":5415,"nodeType":"ParameterList","parameters":[],"src":"1792:0:37"},"scope":5643,"src":"1702:188:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5460,"nodeType":"Block","src":"2167:139:37","statements":[{"assignments":[5442],"declarations":[{"constant":false,"id":5442,"mutability":"mutable","name":"oldAllowance","nameLocation":"2185:12:37","nodeType":"VariableDeclaration","scope":5460,"src":"2177:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5441,"name":"uint256","nodeType":"ElementaryTypeName","src":"2177:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5451,"initialValue":{"arguments":[{"arguments":[{"id":5447,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2224:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$5643","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$5643","typeString":"library SafeERC20"}],"id":5446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2216:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5445,"name":"address","nodeType":"ElementaryTypeName","src":"2216:7:37","typeDescriptions":{}}},"id":5448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2216:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5449,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5436,"src":"2231:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5443,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5434,"src":"2200:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"id":5444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2206:9:37","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5294,"src":"2200:15:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":5450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2177:62:37"},{"expression":{"arguments":[{"id":5453,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5434,"src":"2262:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},{"id":5454,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5436,"src":"2269:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5455,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5442,"src":"2278:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5456,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5438,"src":"2293:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2278:20:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5452,"name":"forceApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5551,"src":"2249:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5317_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":5458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2249:50:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5459,"nodeType":"ExpressionStatement","src":"2249:50:37"}]},"documentation":{"id":5431,"nodeType":"StructuredDocumentation","src":"1896:180:37","text":" @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":5461,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2090:21:37","nodeType":"FunctionDefinition","parameters":{"id":5439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5434,"mutability":"mutable","name":"token","nameLocation":"2119:5:37","nodeType":"VariableDeclaration","scope":5461,"src":"2112:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},"typeName":{"id":5433,"nodeType":"UserDefinedTypeName","pathNode":{"id":5432,"name":"IERC20","nameLocations":["2112:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":5317,"src":"2112:6:37"},"referencedDeclaration":5317,"src":"2112:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5436,"mutability":"mutable","name":"spender","nameLocation":"2134:7:37","nodeType":"VariableDeclaration","scope":5461,"src":"2126:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5435,"name":"address","nodeType":"ElementaryTypeName","src":"2126:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5438,"mutability":"mutable","name":"value","nameLocation":"2151:5:37","nodeType":"VariableDeclaration","scope":5461,"src":"2143:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5437,"name":"uint256","nodeType":"ElementaryTypeName","src":"2143:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2111:46:37"},"returnParameters":{"id":5440,"nodeType":"ParameterList","parameters":[],"src":"2167:0:37"},"scope":5643,"src":"2081:225:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5503,"nodeType":"Block","src":"2607:370:37","statements":[{"id":5502,"nodeType":"UncheckedBlock","src":"2617:354:37","statements":[{"assignments":[5473],"declarations":[{"constant":false,"id":5473,"mutability":"mutable","name":"currentAllowance","nameLocation":"2649:16:37","nodeType":"VariableDeclaration","scope":5502,"src":"2641:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5472,"name":"uint256","nodeType":"ElementaryTypeName","src":"2641:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5482,"initialValue":{"arguments":[{"arguments":[{"id":5478,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2692:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$5643","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$5643","typeString":"library SafeERC20"}],"id":5477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2684:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5476,"name":"address","nodeType":"ElementaryTypeName","src":"2684:7:37","typeDescriptions":{}}},"id":5479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2684:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5480,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"2699:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5474,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5465,"src":"2668:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"id":5475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2674:9:37","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":5294,"src":"2668:15:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":5481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2668:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2641:66:37"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5483,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"2725:16:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5484,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5469,"src":"2744:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2725:36:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5493,"nodeType":"IfStatement","src":"2721:160:37","trueBody":{"id":5492,"nodeType":"Block","src":"2763:118:37","statements":[{"errorCall":{"arguments":[{"id":5487,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"2821:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5488,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"2830:16:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5489,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5469,"src":"2848:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5486,"name":"SafeERC20FailedDecreaseAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5379,"src":"2788:32:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":5490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2788:78:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5491,"nodeType":"RevertStatement","src":"2781:85:37"}]}},{"expression":{"arguments":[{"id":5495,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5465,"src":"2907:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},{"id":5496,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"2914:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5497,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"2923:16:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5498,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5469,"src":"2942:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2923:36:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5494,"name":"forceApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5551,"src":"2894:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5317_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":5500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2894:66:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5501,"nodeType":"ExpressionStatement","src":"2894:66:37"}]}]},"documentation":{"id":5462,"nodeType":"StructuredDocumentation","src":"2312:192:37","text":" @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\n value, non-reverting calls are assumed to be successful."},"id":5504,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"2518:21:37","nodeType":"FunctionDefinition","parameters":{"id":5470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5465,"mutability":"mutable","name":"token","nameLocation":"2547:5:37","nodeType":"VariableDeclaration","scope":5504,"src":"2540:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},"typeName":{"id":5464,"nodeType":"UserDefinedTypeName","pathNode":{"id":5463,"name":"IERC20","nameLocations":["2540:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":5317,"src":"2540:6:37"},"referencedDeclaration":5317,"src":"2540:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5467,"mutability":"mutable","name":"spender","nameLocation":"2562:7:37","nodeType":"VariableDeclaration","scope":5504,"src":"2554:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5466,"name":"address","nodeType":"ElementaryTypeName","src":"2554:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5469,"mutability":"mutable","name":"requestedDecrease","nameLocation":"2579:17:37","nodeType":"VariableDeclaration","scope":5504,"src":"2571:25:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5468,"name":"uint256","nodeType":"ElementaryTypeName","src":"2571:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2539:58:37"},"returnParameters":{"id":5471,"nodeType":"ParameterList","parameters":[],"src":"2607:0:37"},"scope":5643,"src":"2509:468:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5550,"nodeType":"Block","src":"3373:303:37","statements":[{"assignments":[5516],"declarations":[{"constant":false,"id":5516,"mutability":"mutable","name":"approvalCall","nameLocation":"3396:12:37","nodeType":"VariableDeclaration","scope":5550,"src":"3383:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5515,"name":"bytes","nodeType":"ElementaryTypeName","src":"3383:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5525,"initialValue":{"arguments":[{"expression":{"id":5519,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5508,"src":"3426:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"id":5520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3432:7:37","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5304,"src":"3426:13:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":5521,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"3442:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5522,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"3451:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5523,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3441:16:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}],"expression":{"id":5517,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3411:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3415:10:37","memberName":"encodeCall","nodeType":"MemberAccess","src":"3411:14:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3411:47:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3383:75:37"},{"condition":{"id":5530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3473:45:37","subExpression":{"arguments":[{"id":5527,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5508,"src":"3498:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},{"id":5528,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5516,"src":"3505:12:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5526,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5642,"src":"3474:23:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5317_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":5529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3474:44:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5549,"nodeType":"IfStatement","src":"3469:201:37","trueBody":{"id":5548,"nodeType":"Block","src":"3520:150:37","statements":[{"expression":{"arguments":[{"id":5532,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5508,"src":"3554:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":5535,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5508,"src":"3576:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"id":5536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3582:7:37","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":5304,"src":"3576:13:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":5537,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"3592:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":5538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3601:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":5539,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3591:12:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_rational_0_by_1_$","typeString":"tuple(address,int_const 0)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_rational_0_by_1_$","typeString":"tuple(address,int_const 0)"}],"expression":{"id":5533,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3561:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3565:10:37","memberName":"encodeCall","nodeType":"MemberAccess","src":"3561:14:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3561:43:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5531,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"3534:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5317_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3534:71:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5542,"nodeType":"ExpressionStatement","src":"3534:71:37"},{"expression":{"arguments":[{"id":5544,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5508,"src":"3639:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},{"id":5545,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5516,"src":"3646:12:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5543,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"3619:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$5317_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3619:40:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5547,"nodeType":"ExpressionStatement","src":"3619:40:37"}]}}]},"documentation":{"id":5505,"nodeType":"StructuredDocumentation","src":"2983:308:37","text":" @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n to be set to zero before setting it to a non-zero value, such as USDT."},"id":5551,"implemented":true,"kind":"function","modifiers":[],"name":"forceApprove","nameLocation":"3305:12:37","nodeType":"FunctionDefinition","parameters":{"id":5513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5508,"mutability":"mutable","name":"token","nameLocation":"3325:5:37","nodeType":"VariableDeclaration","scope":5551,"src":"3318:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},"typeName":{"id":5507,"nodeType":"UserDefinedTypeName","pathNode":{"id":5506,"name":"IERC20","nameLocations":["3318:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":5317,"src":"3318:6:37"},"referencedDeclaration":5317,"src":"3318:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5510,"mutability":"mutable","name":"spender","nameLocation":"3340:7:37","nodeType":"VariableDeclaration","scope":5551,"src":"3332:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5509,"name":"address","nodeType":"ElementaryTypeName","src":"3332:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5512,"mutability":"mutable","name":"value","nameLocation":"3357:5:37","nodeType":"VariableDeclaration","scope":5551,"src":"3349:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5511,"name":"uint256","nodeType":"ElementaryTypeName","src":"3349:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3317:46:37"},"returnParameters":{"id":5514,"nodeType":"ParameterList","parameters":[],"src":"3373:0:37"},"scope":5643,"src":"3296:380:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5592,"nodeType":"Block","src":"4129:559:37","statements":[{"assignments":[5561],"declarations":[{"constant":false,"id":5561,"mutability":"mutable","name":"returndata","nameLocation":"4491:10:37","nodeType":"VariableDeclaration","scope":5592,"src":"4478:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5560,"name":"bytes","nodeType":"ElementaryTypeName","src":"4478:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5569,"initialValue":{"arguments":[{"id":5567,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5557,"src":"4532:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":5564,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5555,"src":"4512:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}],"id":5563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4504:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5562,"name":"address","nodeType":"ElementaryTypeName","src":"4504:7:37","typeDescriptions":{}}},"id":5565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4504:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4519:12:37","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":6889,"src":"4504:27:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":5568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4504:33:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4478:59:37"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5570,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5561,"src":"4551:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4562:6:37","memberName":"length","nodeType":"MemberAccess","src":"4551:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":5572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4572:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4551:22:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":5581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4577:31:37","subExpression":{"arguments":[{"id":5576,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5561,"src":"4589:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4602:4:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":5577,"name":"bool","nodeType":"ElementaryTypeName","src":"4602:4:37","typeDescriptions":{}}}],"id":5579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4601:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":5574,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4578:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4582:6:37","memberName":"decode","nodeType":"MemberAccess","src":"4578:10:37","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4578:30:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4551:57:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5591,"nodeType":"IfStatement","src":"4547:135:37","trueBody":{"id":5590,"nodeType":"Block","src":"4610:72:37","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":5586,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5555,"src":"4664:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}],"id":5585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4656:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5584,"name":"address","nodeType":"ElementaryTypeName","src":"4656:7:37","typeDescriptions":{}}},"id":5587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4656:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5583,"name":"SafeERC20FailedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5370,"src":"4631:24:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4631:40:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5589,"nodeType":"RevertStatement","src":"4624:47:37"}]}}]},"documentation":{"id":5552,"nodeType":"StructuredDocumentation","src":"3682:372:37","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":5593,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"4068:19:37","nodeType":"FunctionDefinition","parameters":{"id":5558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5555,"mutability":"mutable","name":"token","nameLocation":"4095:5:37","nodeType":"VariableDeclaration","scope":5593,"src":"4088:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},"typeName":{"id":5554,"nodeType":"UserDefinedTypeName","pathNode":{"id":5553,"name":"IERC20","nameLocations":["4088:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":5317,"src":"4088:6:37"},"referencedDeclaration":5317,"src":"4088:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5557,"mutability":"mutable","name":"data","nameLocation":"4115:4:37","nodeType":"VariableDeclaration","scope":5593,"src":"4102:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5556,"name":"bytes","nodeType":"ElementaryTypeName","src":"4102:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4087:33:37"},"returnParameters":{"id":5559,"nodeType":"ParameterList","parameters":[],"src":"4129:0:37"},"scope":5643,"src":"4059:629:37","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":5641,"nodeType":"Block","src":"5278:489:37","statements":[{"assignments":[5605,5607],"declarations":[{"constant":false,"id":5605,"mutability":"mutable","name":"success","nameLocation":"5579:7:37","nodeType":"VariableDeclaration","scope":5641,"src":"5574:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5604,"name":"bool","nodeType":"ElementaryTypeName","src":"5574:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5607,"mutability":"mutable","name":"returndata","nameLocation":"5601:10:37","nodeType":"VariableDeclaration","scope":5641,"src":"5588:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5606,"name":"bytes","nodeType":"ElementaryTypeName","src":"5588:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5615,"initialValue":{"arguments":[{"id":5613,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5599,"src":"5635:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":5610,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5597,"src":"5623:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}],"id":5609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5615:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5608,"name":"address","nodeType":"ElementaryTypeName","src":"5615:7:37","typeDescriptions":{}}},"id":5611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5615:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5630:4:37","memberName":"call","nodeType":"MemberAccess","src":"5615:19:37","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":5614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5615:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5573:67:37"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5616,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5605,"src":"5657:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5617,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5607,"src":"5669:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5680:6:37","memberName":"length","nodeType":"MemberAccess","src":"5669:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5690:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5669:22:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":5623,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5607,"src":"5706:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5719:4:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":5624,"name":"bool","nodeType":"ElementaryTypeName","src":"5719:4:37","typeDescriptions":{}}}],"id":5626,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5718:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":5621,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5695:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5699:6:37","memberName":"decode","nodeType":"MemberAccess","src":"5695:10:37","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5695:30:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5669:56:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5629,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5668:58:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5657:69:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":5633,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5597,"src":"5738:5:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}],"id":5632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5730:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5631,"name":"address","nodeType":"ElementaryTypeName","src":"5730:7:37","typeDescriptions":{}}},"id":5634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5730:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5745:4:37","memberName":"code","nodeType":"MemberAccess","src":"5730:19:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5750:6:37","memberName":"length","nodeType":"MemberAccess","src":"5730:26:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5759:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5730:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5657:103:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5603,"id":5640,"nodeType":"Return","src":"5650:110:37"}]},"documentation":{"id":5594,"nodeType":"StructuredDocumentation","src":"4694:490:37","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead."},"id":5642,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturnBool","nameLocation":"5198:23:37","nodeType":"FunctionDefinition","parameters":{"id":5600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5597,"mutability":"mutable","name":"token","nameLocation":"5229:5:37","nodeType":"VariableDeclaration","scope":5642,"src":"5222:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"},"typeName":{"id":5596,"nodeType":"UserDefinedTypeName","pathNode":{"id":5595,"name":"IERC20","nameLocations":["5222:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":5317,"src":"5222:6:37"},"referencedDeclaration":5317,"src":"5222:6:37","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$5317","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5599,"mutability":"mutable","name":"data","nameLocation":"5249:4:37","nodeType":"VariableDeclaration","scope":5642,"src":"5236:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5598,"name":"bytes","nodeType":"ElementaryTypeName","src":"5236:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5221:33:37"},"returnParameters":{"id":5603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5642,"src":"5272:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5601,"name":"bool","nodeType":"ElementaryTypeName","src":"5272:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5271:6:37"},"scope":5643,"src":"5189:578:37","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":5644,"src":"751:5018:37","usedErrors":[5370,5379],"usedEvents":[]}],"src":"115:5655:37"},"id":37},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Context":[7098],"ERC165":[7377],"ERC721":[6652],"IERC165":[7389],"IERC721":[6769],"IERC721Errors":[5192],"IERC721Metadata":[6815],"IERC721Receiver":[6787],"Strings":[7353]},"id":6653,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5645,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:38"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":5647,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6653,"sourceUnit":6770,"src":"133:38:38","symbolAliases":[{"foreign":{"id":5646,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6769,"src":"141:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"./IERC721Receiver.sol","id":5649,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6653,"sourceUnit":6788,"src":"172:54:38","symbolAliases":[{"foreign":{"id":5648,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6787,"src":"180:15:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":5651,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6653,"sourceUnit":6816,"src":"227:65:38","symbolAliases":[{"foreign":{"id":5650,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6815,"src":"235:15:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":5653,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6653,"sourceUnit":7099,"src":"293:48:38","symbolAliases":[{"foreign":{"id":5652,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7098,"src":"301:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":5655,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6653,"sourceUnit":7354,"src":"342:48:38","symbolAliases":[{"foreign":{"id":5654,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7353,"src":"350:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":5658,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6653,"sourceUnit":7378,"src":"391:69:38","symbolAliases":[{"foreign":{"id":5656,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7389,"src":"399:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5657,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7377,"src":"408:6:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","id":5660,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6653,"sourceUnit":5240,"src":"461:66:38","symbolAliases":[{"foreign":{"id":5659,"name":"IERC721Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5192,"src":"469:13:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5662,"name":"Context","nameLocations":["804:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":7098,"src":"804:7:38"},"id":5663,"nodeType":"InheritanceSpecifier","src":"804:7:38"},{"baseName":{"id":5664,"name":"ERC165","nameLocations":["813:6:38"],"nodeType":"IdentifierPath","referencedDeclaration":7377,"src":"813:6:38"},"id":5665,"nodeType":"InheritanceSpecifier","src":"813:6:38"},{"baseName":{"id":5666,"name":"IERC721","nameLocations":["821:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":6769,"src":"821:7:38"},"id":5667,"nodeType":"InheritanceSpecifier","src":"821:7:38"},{"baseName":{"id":5668,"name":"IERC721Metadata","nameLocations":["830:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":6815,"src":"830:15:38"},"id":5669,"nodeType":"InheritanceSpecifier","src":"830:15:38"},{"baseName":{"id":5670,"name":"IERC721Errors","nameLocations":["847:13:38"],"nodeType":"IdentifierPath","referencedDeclaration":5192,"src":"847:13:38"},"id":5671,"nodeType":"InheritanceSpecifier","src":"847:13:38"}],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":5661,"nodeType":"StructuredDocumentation","src":"529:246:38","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":6652,"linearizedBaseContracts":[6652,5192,6815,6769,7377,7389,7098],"name":"ERC721","nameLocation":"794:6:38","nodeType":"ContractDefinition","nodes":[{"global":false,"id":5674,"libraryName":{"id":5672,"name":"Strings","nameLocations":["873:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":7353,"src":"873:7:38"},"nodeType":"UsingForDirective","src":"867:26:38","typeName":{"id":5673,"name":"uint256","nodeType":"ElementaryTypeName","src":"885:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":5676,"mutability":"mutable","name":"_name","nameLocation":"932:5:38","nodeType":"VariableDeclaration","scope":6652,"src":"917:20:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5675,"name":"string","nodeType":"ElementaryTypeName","src":"917:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":5678,"mutability":"mutable","name":"_symbol","nameLocation":"979:7:38","nodeType":"VariableDeclaration","scope":6652,"src":"964:22:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5677,"name":"string","nodeType":"ElementaryTypeName","src":"964:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":5682,"mutability":"mutable","name":"_owners","nameLocation":"1037:7:38","nodeType":"VariableDeclaration","scope":6652,"src":"993:51:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":5681,"keyName":"tokenId","keyNameLocation":"1009:7:38","keyType":{"id":5679,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"993:35:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5680,"name":"address","nodeType":"ElementaryTypeName","src":"1020:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":5686,"mutability":"mutable","name":"_balances","nameLocation":"1093:9:38","nodeType":"VariableDeclaration","scope":6652,"src":"1051:51:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":5685,"keyName":"owner","keyNameLocation":"1067:5:38","keyType":{"id":5683,"name":"address","nodeType":"ElementaryTypeName","src":"1059:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1051:33:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5684,"name":"uint256","nodeType":"ElementaryTypeName","src":"1076:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":5690,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1153:15:38","nodeType":"VariableDeclaration","scope":6652,"src":"1109:59:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":5689,"keyName":"tokenId","keyNameLocation":"1125:7:38","keyType":{"id":5687,"name":"uint256","nodeType":"ElementaryTypeName","src":"1117:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1109:35:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5688,"name":"address","nodeType":"ElementaryTypeName","src":"1136:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":5696,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1243:18:38","nodeType":"VariableDeclaration","scope":6652,"src":"1175:86:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":5695,"keyName":"owner","keyNameLocation":"1191:5:38","keyType":{"id":5691,"name":"address","nodeType":"ElementaryTypeName","src":"1183:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1175:59:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5694,"keyName":"operator","keyNameLocation":"1216:8:38","keyType":{"id":5692,"name":"address","nodeType":"ElementaryTypeName","src":"1208:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1200:33:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5693,"name":"bool","nodeType":"ElementaryTypeName","src":"1228:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":5712,"nodeType":"Block","src":"1437:57:38","statements":[{"expression":{"id":5706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5704,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"1447:5:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5705,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5699,"src":"1455:5:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1447:13:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5707,"nodeType":"ExpressionStatement","src":"1447:13:38"},{"expression":{"id":5710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5708,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5678,"src":"1470:7:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5709,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5701,"src":"1480:7:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1470:17:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5711,"nodeType":"ExpressionStatement","src":"1470:17:38"}]},"documentation":{"id":5697,"nodeType":"StructuredDocumentation","src":"1268:108:38","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":5713,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5699,"mutability":"mutable","name":"name_","nameLocation":"1407:5:38","nodeType":"VariableDeclaration","scope":5713,"src":"1393:19:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5698,"name":"string","nodeType":"ElementaryTypeName","src":"1393:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5701,"mutability":"mutable","name":"symbol_","nameLocation":"1428:7:38","nodeType":"VariableDeclaration","scope":5713,"src":"1414:21:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5700,"name":"string","nodeType":"ElementaryTypeName","src":"1414:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1392:44:38"},"returnParameters":{"id":5703,"nodeType":"ParameterList","parameters":[],"src":"1437:0:38"},"scope":6652,"src":"1381:113:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[7376,7388],"body":{"id":5743,"nodeType":"Block","src":"1669:192:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5724,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5716,"src":"1698:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":5726,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6769,"src":"1718:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$6769_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$6769_$","typeString":"type(contract IERC721)"}],"id":5725,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1713:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1713:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$6769","typeString":"type(contract IERC721)"}},"id":5728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1727:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"1713:25:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1698:40:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5730,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5716,"src":"1754:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":5732,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6815,"src":"1774:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$6815_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$6815_$","typeString":"type(contract IERC721Metadata)"}],"id":5731,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1769:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1769:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$6815","typeString":"type(contract IERC721Metadata)"}},"id":5734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1791:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"1769:33:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1754:48:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1698:104:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":5739,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5716,"src":"1842:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":5737,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1818:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$6652_$","typeString":"type(contract super ERC721)"}},"id":5738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1824:17:38","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7376,"src":"1818:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":5740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1818:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1698:156:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5723,"id":5742,"nodeType":"Return","src":"1679:175:38"}]},"documentation":{"id":5714,"nodeType":"StructuredDocumentation","src":"1500:56:38","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":5744,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1570:17:38","nodeType":"FunctionDefinition","overrides":{"id":5720,"nodeType":"OverrideSpecifier","overrides":[{"id":5718,"name":"ERC165","nameLocations":["1637:6:38"],"nodeType":"IdentifierPath","referencedDeclaration":7377,"src":"1637:6:38"},{"id":5719,"name":"IERC165","nameLocations":["1645:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":7389,"src":"1645:7:38"}],"src":"1628:25:38"},"parameters":{"id":5717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5716,"mutability":"mutable","name":"interfaceId","nameLocation":"1595:11:38","nodeType":"VariableDeclaration","scope":5744,"src":"1588:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5715,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1588:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1587:20:38"},"returnParameters":{"id":5723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5744,"src":"1663:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5721,"name":"bool","nodeType":"ElementaryTypeName","src":"1663:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1662:6:38"},"scope":6652,"src":"1561:300:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6694],"body":{"id":5771,"nodeType":"Block","src":"1992:136:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5752,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5747,"src":"2006:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2023:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2015:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5753,"name":"address","nodeType":"ElementaryTypeName","src":"2015:7:38","typeDescriptions":{}}},"id":5756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2015:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2006:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5766,"nodeType":"IfStatement","src":"2002:87:38","trueBody":{"id":5765,"nodeType":"Block","src":"2027:62:38","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":5761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2075:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2067:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5759,"name":"address","nodeType":"ElementaryTypeName","src":"2067:7:38","typeDescriptions":{}}},"id":5762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2067:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5758,"name":"ERC721InvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5150,"src":"2048:18:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2048:30:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5764,"nodeType":"RevertStatement","src":"2041:37:38"}]}},{"expression":{"baseExpression":{"id":5767,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"2105:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5769,"indexExpression":{"id":5768,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5747,"src":"2115:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2105:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5751,"id":5770,"nodeType":"Return","src":"2098:23:38"}]},"documentation":{"id":5745,"nodeType":"StructuredDocumentation","src":"1867:48:38","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":5772,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1929:9:38","nodeType":"FunctionDefinition","parameters":{"id":5748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5747,"mutability":"mutable","name":"owner","nameLocation":"1947:5:38","nodeType":"VariableDeclaration","scope":5772,"src":"1939:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5746,"name":"address","nodeType":"ElementaryTypeName","src":"1939:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1938:15:38"},"returnParameters":{"id":5751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5772,"src":"1983:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5749,"name":"uint256","nodeType":"ElementaryTypeName","src":"1983:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1982:9:38"},"scope":6652,"src":"1920:208:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6702],"body":{"id":5784,"nodeType":"Block","src":"2257:46:38","statements":[{"expression":{"arguments":[{"id":5781,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5775,"src":"2288:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5780,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"2274:13:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":5782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2274:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5779,"id":5783,"nodeType":"Return","src":"2267:29:38"}]},"documentation":{"id":5773,"nodeType":"StructuredDocumentation","src":"2134:46:38","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":5785,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2194:7:38","nodeType":"FunctionDefinition","parameters":{"id":5776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5775,"mutability":"mutable","name":"tokenId","nameLocation":"2210:7:38","nodeType":"VariableDeclaration","scope":5785,"src":"2202:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5774,"name":"uint256","nodeType":"ElementaryTypeName","src":"2202:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2201:17:38"},"returnParameters":{"id":5779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5785,"src":"2248:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5777,"name":"address","nodeType":"ElementaryTypeName","src":"2248:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2247:9:38"},"scope":6652,"src":"2185:118:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6800],"body":{"id":5793,"nodeType":"Block","src":"2425:29:38","statements":[{"expression":{"id":5791,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"2442:5:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5790,"id":5792,"nodeType":"Return","src":"2435:12:38"}]},"documentation":{"id":5786,"nodeType":"StructuredDocumentation","src":"2309:51:38","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":5794,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2374:4:38","nodeType":"FunctionDefinition","parameters":{"id":5787,"nodeType":"ParameterList","parameters":[],"src":"2378:2:38"},"returnParameters":{"id":5790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5794,"src":"2410:13:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5788,"name":"string","nodeType":"ElementaryTypeName","src":"2410:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2409:15:38"},"scope":6652,"src":"2365:89:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6806],"body":{"id":5802,"nodeType":"Block","src":"2580:31:38","statements":[{"expression":{"id":5800,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5678,"src":"2597:7:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5799,"id":5801,"nodeType":"Return","src":"2590:14:38"}]},"documentation":{"id":5795,"nodeType":"StructuredDocumentation","src":"2460:53:38","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":5803,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2527:6:38","nodeType":"FunctionDefinition","parameters":{"id":5796,"nodeType":"ParameterList","parameters":[],"src":"2533:2:38"},"returnParameters":{"id":5799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5803,"src":"2565:13:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5797,"name":"string","nodeType":"ElementaryTypeName","src":"2565:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2564:15:38"},"scope":6652,"src":"2518:93:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6814],"body":{"id":5838,"nodeType":"Block","src":"2756:176:38","statements":[{"expression":{"arguments":[{"id":5812,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5806,"src":"2780:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5811,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"2766:13:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":5813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2766:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5814,"nodeType":"ExpressionStatement","src":"2766:22:38"},{"assignments":[5816],"declarations":[{"constant":false,"id":5816,"mutability":"mutable","name":"baseURI","nameLocation":"2813:7:38","nodeType":"VariableDeclaration","scope":5838,"src":"2799:21:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5815,"name":"string","nodeType":"ElementaryTypeName","src":"2799:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":5819,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5817,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5848,"src":"2823:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":5818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2823:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2799:34:38"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":5822,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5816,"src":"2856:7:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2850:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5820,"name":"bytes","nodeType":"ElementaryTypeName","src":"2850:5:38","typeDescriptions":{}}},"id":5823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:14:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2865:6:38","memberName":"length","nodeType":"MemberAccess","src":"2850:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2874:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2850:25:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":5835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2923:2:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":5836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2850:75:38","trueExpression":{"arguments":[{"id":5830,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5816,"src":"2892:7:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5831,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5806,"src":"2901:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2909:8:38","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":7166,"src":"2901:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":5833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2901:18:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2878:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":5827,"name":"string","nodeType":"ElementaryTypeName","src":"2878:6:38","typeDescriptions":{}}},"id":5829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2885:6:38","memberName":"concat","nodeType":"MemberAccess","src":"2878:13:38","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":5834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2878:42:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5810,"id":5837,"nodeType":"Return","src":"2843:82:38"}]},"documentation":{"id":5804,"nodeType":"StructuredDocumentation","src":"2617:55:38","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":5839,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2686:8:38","nodeType":"FunctionDefinition","parameters":{"id":5807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5806,"mutability":"mutable","name":"tokenId","nameLocation":"2703:7:38","nodeType":"VariableDeclaration","scope":5839,"src":"2695:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5805,"name":"uint256","nodeType":"ElementaryTypeName","src":"2695:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2694:17:38"},"returnParameters":{"id":5810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5839,"src":"2741:13:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5808,"name":"string","nodeType":"ElementaryTypeName","src":"2741:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2740:15:38"},"scope":6652,"src":"2677:255:38","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":5847,"nodeType":"Block","src":"3240:26:38","statements":[{"expression":{"hexValue":"","id":5845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3257:2:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":5844,"id":5846,"nodeType":"Return","src":"3250:9:38"}]},"documentation":{"id":5840,"nodeType":"StructuredDocumentation","src":"2938:231:38","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":5848,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3183:8:38","nodeType":"FunctionDefinition","parameters":{"id":5841,"nodeType":"ParameterList","parameters":[],"src":"3191:2:38"},"returnParameters":{"id":5844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5843,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5848,"src":"3225:13:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5842,"name":"string","nodeType":"ElementaryTypeName","src":"3225:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3224:15:38"},"scope":6652,"src":"3174:92:38","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[6742],"body":{"id":5863,"nodeType":"Block","src":"3384:52:38","statements":[{"expression":{"arguments":[{"id":5857,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5851,"src":"3403:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5858,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5853,"src":"3407:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5859,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"3416:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3416:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5856,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[6455,6521],"referencedDeclaration":6455,"src":"3394:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3394:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5862,"nodeType":"ExpressionStatement","src":"3394:35:38"}]},"documentation":{"id":5849,"nodeType":"StructuredDocumentation","src":"3272:46:38","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":5864,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3332:7:38","nodeType":"FunctionDefinition","parameters":{"id":5854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5851,"mutability":"mutable","name":"to","nameLocation":"3348:2:38","nodeType":"VariableDeclaration","scope":5864,"src":"3340:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5850,"name":"address","nodeType":"ElementaryTypeName","src":"3340:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5853,"mutability":"mutable","name":"tokenId","nameLocation":"3360:7:38","nodeType":"VariableDeclaration","scope":5864,"src":"3352:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5852,"name":"uint256","nodeType":"ElementaryTypeName","src":"3352:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3339:29:38"},"returnParameters":{"id":5855,"nodeType":"ParameterList","parameters":[],"src":"3384:0:38"},"scope":6652,"src":"3323:113:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6758],"body":{"id":5880,"nodeType":"Block","src":"3573:78:38","statements":[{"expression":{"arguments":[{"id":5873,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"3597:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5872,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"3583:13:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":5874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5875,"nodeType":"ExpressionStatement","src":"3583:22:38"},{"expression":{"arguments":[{"id":5877,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"3636:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5876,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6030,"src":"3623:12:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":5878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5871,"id":5879,"nodeType":"Return","src":"3616:28:38"}]},"documentation":{"id":5865,"nodeType":"StructuredDocumentation","src":"3442:50:38","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":5881,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"3506:11:38","nodeType":"FunctionDefinition","parameters":{"id":5868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5867,"mutability":"mutable","name":"tokenId","nameLocation":"3526:7:38","nodeType":"VariableDeclaration","scope":5881,"src":"3518:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5866,"name":"uint256","nodeType":"ElementaryTypeName","src":"3518:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3517:17:38"},"returnParameters":{"id":5871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5881,"src":"3564:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5869,"name":"address","nodeType":"ElementaryTypeName","src":"3564:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3563:9:38"},"scope":6652,"src":"3497:154:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6750],"body":{"id":5896,"nodeType":"Block","src":"3793:69:38","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5890,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"3822:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3822:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5892,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5884,"src":"3836:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5893,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5886,"src":"3846:8:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5889,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6558,"src":"3803:18:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":5894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3803:52:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5895,"nodeType":"ExpressionStatement","src":"3803:52:38"}]},"documentation":{"id":5882,"nodeType":"StructuredDocumentation","src":"3657:56:38","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":5897,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3727:17:38","nodeType":"FunctionDefinition","parameters":{"id":5887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5884,"mutability":"mutable","name":"operator","nameLocation":"3753:8:38","nodeType":"VariableDeclaration","scope":5897,"src":"3745:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5883,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5886,"mutability":"mutable","name":"approved","nameLocation":"3768:8:38","nodeType":"VariableDeclaration","scope":5897,"src":"3763:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5885,"name":"bool","nodeType":"ElementaryTypeName","src":"3763:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3744:33:38"},"returnParameters":{"id":5888,"nodeType":"ParameterList","parameters":[],"src":"3793:0:38"},"scope":6652,"src":"3718:144:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6768],"body":{"id":5913,"nodeType":"Block","src":"4022:59:38","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5907,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5696,"src":"4039:18:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":5909,"indexExpression":{"id":5908,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5900,"src":"4058:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4039:25:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":5911,"indexExpression":{"id":5910,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5902,"src":"4065:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4039:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5906,"id":5912,"nodeType":"Return","src":"4032:42:38"}]},"documentation":{"id":5898,"nodeType":"StructuredDocumentation","src":"3868:55:38","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":5914,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"3937:16:38","nodeType":"FunctionDefinition","parameters":{"id":5903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5900,"mutability":"mutable","name":"owner","nameLocation":"3962:5:38","nodeType":"VariableDeclaration","scope":5914,"src":"3954:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5899,"name":"address","nodeType":"ElementaryTypeName","src":"3954:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5902,"mutability":"mutable","name":"operator","nameLocation":"3977:8:38","nodeType":"VariableDeclaration","scope":5914,"src":"3969:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5901,"name":"address","nodeType":"ElementaryTypeName","src":"3969:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3953:33:38"},"returnParameters":{"id":5906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5914,"src":"4016:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5904,"name":"bool","nodeType":"ElementaryTypeName","src":"4016:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4015:6:38"},"scope":6652,"src":"3928:153:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6734],"body":{"id":5959,"nodeType":"Block","src":"4223:498:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5924,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5919,"src":"4237:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4251:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4243:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5925,"name":"address","nodeType":"ElementaryTypeName","src":"4243:7:38","typeDescriptions":{}}},"id":5928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4243:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4237:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5938,"nodeType":"IfStatement","src":"4233:87:38","trueBody":{"id":5937,"nodeType":"Block","src":"4255:65:38","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":5933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4306:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4298:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5931,"name":"address","nodeType":"ElementaryTypeName","src":"4298:7:38","typeDescriptions":{}}},"id":5934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4298:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5930,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5174,"src":"4276:21:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4276:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5936,"nodeType":"RevertStatement","src":"4269:40:38"}]}},{"assignments":[5940],"declarations":[{"constant":false,"id":5940,"mutability":"mutable","name":"previousOwner","nameLocation":"4546:13:38","nodeType":"VariableDeclaration","scope":5959,"src":"4538:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5939,"name":"address","nodeType":"ElementaryTypeName","src":"4538:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5947,"initialValue":{"arguments":[{"id":5942,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5919,"src":"4570:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5943,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5921,"src":"4574:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5944,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"4583:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4583:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5941,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6209,"src":"4562:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":5946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4562:34:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4538:58:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5948,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"4610:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5949,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"4627:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4610:21:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5958,"nodeType":"IfStatement","src":"4606:109:38","trueBody":{"id":5957,"nodeType":"Block","src":"4633:82:38","statements":[{"errorCall":{"arguments":[{"id":5952,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"4675:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5953,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5921,"src":"4681:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5954,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"4690:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5951,"name":"ERC721IncorrectOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5164,"src":"4654:20:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address) pure"}},"id":5955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4654:50:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5956,"nodeType":"RevertStatement","src":"4647:57:38"}]}}]},"documentation":{"id":5915,"nodeType":"StructuredDocumentation","src":"4087:51:38","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":5960,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4152:12:38","nodeType":"FunctionDefinition","parameters":{"id":5922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5917,"mutability":"mutable","name":"from","nameLocation":"4173:4:38","nodeType":"VariableDeclaration","scope":5960,"src":"4165:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5916,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5919,"mutability":"mutable","name":"to","nameLocation":"4187:2:38","nodeType":"VariableDeclaration","scope":5960,"src":"4179:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5918,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5921,"mutability":"mutable","name":"tokenId","nameLocation":"4199:7:38","nodeType":"VariableDeclaration","scope":5960,"src":"4191:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5920,"name":"uint256","nodeType":"ElementaryTypeName","src":"4191:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4164:43:38"},"returnParameters":{"id":5923,"nodeType":"ParameterList","parameters":[],"src":"4223:0:38"},"scope":6652,"src":"4143:578:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6724],"body":{"id":5977,"nodeType":"Block","src":"4863:56:38","statements":[{"expression":{"arguments":[{"id":5971,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5963,"src":"4890:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5972,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5965,"src":"4896:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5973,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5967,"src":"4900:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":5974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4909:2:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":5970,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[5978,6004],"referencedDeclaration":6004,"src":"4873:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":5975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:39:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5976,"nodeType":"ExpressionStatement","src":"4873:39:38"}]},"documentation":{"id":5961,"nodeType":"StructuredDocumentation","src":"4727:55:38","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":5978,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4796:16:38","nodeType":"FunctionDefinition","parameters":{"id":5968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5963,"mutability":"mutable","name":"from","nameLocation":"4821:4:38","nodeType":"VariableDeclaration","scope":5978,"src":"4813:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5962,"name":"address","nodeType":"ElementaryTypeName","src":"4813:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5965,"mutability":"mutable","name":"to","nameLocation":"4835:2:38","nodeType":"VariableDeclaration","scope":5978,"src":"4827:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5964,"name":"address","nodeType":"ElementaryTypeName","src":"4827:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5967,"mutability":"mutable","name":"tokenId","nameLocation":"4847:7:38","nodeType":"VariableDeclaration","scope":5978,"src":"4839:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5966,"name":"uint256","nodeType":"ElementaryTypeName","src":"4839:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4812:43:38"},"returnParameters":{"id":5969,"nodeType":"ParameterList","parameters":[],"src":"4863:0:38"},"scope":6652,"src":"4787:132:38","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[6714],"body":{"id":6003,"nodeType":"Block","src":"5088:105:38","statements":[{"expression":{"arguments":[{"id":5991,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5981,"src":"5111:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5992,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5983,"src":"5117:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5993,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"5121:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5990,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5960,"src":"5098:12:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5098:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5995,"nodeType":"ExpressionStatement","src":"5098:31:38"},{"expression":{"arguments":[{"id":5997,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5981,"src":"5162:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5998,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5983,"src":"5168:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5999,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"5172:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6000,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5987,"src":"5181:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5996,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"5139:22:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":6001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5139:47:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6002,"nodeType":"ExpressionStatement","src":"5139:47:38"}]},"documentation":{"id":5979,"nodeType":"StructuredDocumentation","src":"4925:55:38","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":6004,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4994:16:38","nodeType":"FunctionDefinition","parameters":{"id":5988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5981,"mutability":"mutable","name":"from","nameLocation":"5019:4:38","nodeType":"VariableDeclaration","scope":6004,"src":"5011:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5980,"name":"address","nodeType":"ElementaryTypeName","src":"5011:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5983,"mutability":"mutable","name":"to","nameLocation":"5033:2:38","nodeType":"VariableDeclaration","scope":6004,"src":"5025:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5982,"name":"address","nodeType":"ElementaryTypeName","src":"5025:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5985,"mutability":"mutable","name":"tokenId","nameLocation":"5045:7:38","nodeType":"VariableDeclaration","scope":6004,"src":"5037:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5984,"name":"uint256","nodeType":"ElementaryTypeName","src":"5037:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5987,"mutability":"mutable","name":"data","nameLocation":"5067:4:38","nodeType":"VariableDeclaration","scope":6004,"src":"5054:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5986,"name":"bytes","nodeType":"ElementaryTypeName","src":"5054:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5010:62:38"},"returnParameters":{"id":5989,"nodeType":"ParameterList","parameters":[],"src":"5088:0:38"},"scope":6652,"src":"4985:208:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":6016,"nodeType":"Block","src":"5782:40:38","statements":[{"expression":{"baseExpression":{"id":6012,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5682,"src":"5799:7:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6014,"indexExpression":{"id":6013,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"5807:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5799:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6011,"id":6015,"nodeType":"Return","src":"5792:23:38"}]},"documentation":{"id":6005,"nodeType":"StructuredDocumentation","src":"5199:503:38","text":" @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`."},"id":6017,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"5716:8:38","nodeType":"FunctionDefinition","parameters":{"id":6008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6007,"mutability":"mutable","name":"tokenId","nameLocation":"5733:7:38","nodeType":"VariableDeclaration","scope":6017,"src":"5725:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6006,"name":"uint256","nodeType":"ElementaryTypeName","src":"5725:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5724:17:38"},"returnParameters":{"id":6011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6010,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6017,"src":"5773:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6009,"name":"address","nodeType":"ElementaryTypeName","src":"5773:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5772:9:38"},"scope":6652,"src":"5707:115:38","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6029,"nodeType":"Block","src":"6017:48:38","statements":[{"expression":{"baseExpression":{"id":6025,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5690,"src":"6034:15:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6027,"indexExpression":{"id":6026,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6020,"src":"6050:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6034:24:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6024,"id":6028,"nodeType":"Return","src":"6027:31:38"}]},"documentation":{"id":6018,"nodeType":"StructuredDocumentation","src":"5828:105:38","text":" @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted."},"id":6030,"implemented":true,"kind":"function","modifiers":[],"name":"_getApproved","nameLocation":"5947:12:38","nodeType":"FunctionDefinition","parameters":{"id":6021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6020,"mutability":"mutable","name":"tokenId","nameLocation":"5968:7:38","nodeType":"VariableDeclaration","scope":6030,"src":"5960:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6019,"name":"uint256","nodeType":"ElementaryTypeName","src":"5960:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5959:17:38"},"returnParameters":{"id":6024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6030,"src":"6008:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6022,"name":"address","nodeType":"ElementaryTypeName","src":"6008:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6007:9:38"},"scope":6652,"src":"5938:127:38","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6065,"nodeType":"Block","src":"6485:163:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6042,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"6514:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6533:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6525:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6043,"name":"address","nodeType":"ElementaryTypeName","src":"6525:7:38","typeDescriptions":{}}},"id":6046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6525:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6514:21:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6048,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"6552:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6049,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"6561:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6552:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6052,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"6589:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6053,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"6596:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6051,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5914,"src":"6572:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":6054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6572:32:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6552:52:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6057,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6037,"src":"6621:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6056,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6030,"src":"6608:12:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6059,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"6633:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6608:32:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6552:88:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6062,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6551:90:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6514:127:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6041,"id":6064,"nodeType":"Return","src":"6495:146:38"}]},"documentation":{"id":6031,"nodeType":"StructuredDocumentation","src":"6071:300:38","text":" @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n particular (ignoring whether it is owned by `owner`).\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."},"id":6066,"implemented":true,"kind":"function","modifiers":[],"name":"_isAuthorized","nameLocation":"6385:13:38","nodeType":"FunctionDefinition","parameters":{"id":6038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6033,"mutability":"mutable","name":"owner","nameLocation":"6407:5:38","nodeType":"VariableDeclaration","scope":6066,"src":"6399:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6032,"name":"address","nodeType":"ElementaryTypeName","src":"6399:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6035,"mutability":"mutable","name":"spender","nameLocation":"6422:7:38","nodeType":"VariableDeclaration","scope":6066,"src":"6414:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6034,"name":"address","nodeType":"ElementaryTypeName","src":"6414:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6037,"mutability":"mutable","name":"tokenId","nameLocation":"6439:7:38","nodeType":"VariableDeclaration","scope":6066,"src":"6431:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6036,"name":"uint256","nodeType":"ElementaryTypeName","src":"6431:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6398:49:38"},"returnParameters":{"id":6041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6066,"src":"6479:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6039,"name":"bool","nodeType":"ElementaryTypeName","src":"6479:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6478:6:38"},"scope":6652,"src":"6376:272:38","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6102,"nodeType":"Block","src":"7179:271:38","statements":[{"condition":{"id":6081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7193:39:38","subExpression":{"arguments":[{"id":6077,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6069,"src":"7208:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6078,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6071,"src":"7215:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6079,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"7224:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6076,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"7194:13:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) view returns (bool)"}},"id":6080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7194:38:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6101,"nodeType":"IfStatement","src":"7189:255:38","trueBody":{"id":6100,"nodeType":"Block","src":"7234:210:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6082,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6069,"src":"7252:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7269:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7261:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6083,"name":"address","nodeType":"ElementaryTypeName","src":"7261:7:38","typeDescriptions":{}}},"id":6086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7261:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7252:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6098,"nodeType":"Block","src":"7350:84:38","statements":[{"errorCall":{"arguments":[{"id":6094,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6071,"src":"7402:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6095,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"7411:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6093,"name":"ERC721InsufficientApproval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"7375:26:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":6096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7375:44:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6097,"nodeType":"RevertStatement","src":"7368:51:38"}]},"id":6099,"nodeType":"IfStatement","src":"7248:186:38","trueBody":{"id":6092,"nodeType":"Block","src":"7273:71:38","statements":[{"errorCall":{"arguments":[{"id":6089,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"7321:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6088,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5155,"src":"7298:22:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":6090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7298:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6091,"nodeType":"RevertStatement","src":"7291:38:38"}]}}]}}]},"documentation":{"id":6067,"nodeType":"StructuredDocumentation","src":"6654:423:38","text":" @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n the `spender` for the specific `tokenId`.\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."},"id":6103,"implemented":true,"kind":"function","modifiers":[],"name":"_checkAuthorized","nameLocation":"7091:16:38","nodeType":"FunctionDefinition","parameters":{"id":6074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6069,"mutability":"mutable","name":"owner","nameLocation":"7116:5:38","nodeType":"VariableDeclaration","scope":6103,"src":"7108:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6068,"name":"address","nodeType":"ElementaryTypeName","src":"7108:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6071,"mutability":"mutable","name":"spender","nameLocation":"7131:7:38","nodeType":"VariableDeclaration","scope":6103,"src":"7123:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6070,"name":"address","nodeType":"ElementaryTypeName","src":"7123:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6073,"mutability":"mutable","name":"tokenId","nameLocation":"7148:7:38","nodeType":"VariableDeclaration","scope":6103,"src":"7140:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6072,"name":"uint256","nodeType":"ElementaryTypeName","src":"7140:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7107:49:38"},"returnParameters":{"id":6075,"nodeType":"ParameterList","parameters":[],"src":"7179:0:38"},"scope":6652,"src":"7082:368:38","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6118,"nodeType":"Block","src":"8167:78:38","statements":[{"id":6117,"nodeType":"UncheckedBlock","src":"8177:62:38","statements":[{"expression":{"id":6115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6111,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"8201:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6113,"indexExpression":{"id":6112,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6106,"src":"8211:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8201:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":6114,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6108,"src":"8223:5:38","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"8201:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6116,"nodeType":"ExpressionStatement","src":"8201:27:38"}]}]},"documentation":{"id":6104,"nodeType":"StructuredDocumentation","src":"7456:631:38","text":" @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n remain consistent with one another."},"id":6119,"implemented":true,"kind":"function","modifiers":[],"name":"_increaseBalance","nameLocation":"8101:16:38","nodeType":"FunctionDefinition","parameters":{"id":6109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6106,"mutability":"mutable","name":"account","nameLocation":"8126:7:38","nodeType":"VariableDeclaration","scope":6119,"src":"8118:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6105,"name":"address","nodeType":"ElementaryTypeName","src":"8118:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6108,"mutability":"mutable","name":"value","nameLocation":"8143:5:38","nodeType":"VariableDeclaration","scope":6119,"src":"8135:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":6107,"name":"uint128","nodeType":"ElementaryTypeName","src":"8135:7:38","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"8117:32:38"},"returnParameters":{"id":6110,"nodeType":"ParameterList","parameters":[],"src":"8167:0:38"},"scope":6652,"src":"8092:153:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6208,"nodeType":"Block","src":"8933:700:38","statements":[{"assignments":[6132],"declarations":[{"constant":false,"id":6132,"mutability":"mutable","name":"from","nameLocation":"8951:4:38","nodeType":"VariableDeclaration","scope":6208,"src":"8943:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6131,"name":"address","nodeType":"ElementaryTypeName","src":"8943:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6136,"initialValue":{"arguments":[{"id":6134,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6124,"src":"8967:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6133,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"8958:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8958:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8943:32:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6137,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6126,"src":"9035:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9051:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9043:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6138,"name":"address","nodeType":"ElementaryTypeName","src":"9043:7:38","typeDescriptions":{}}},"id":6141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9035:18:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6150,"nodeType":"IfStatement","src":"9031:86:38","trueBody":{"id":6149,"nodeType":"Block","src":"9055:62:38","statements":[{"expression":{"arguments":[{"id":6144,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"9086:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6145,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6126,"src":"9092:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6146,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6124,"src":"9098:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6143,"name":"_checkAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"9069:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) view"}},"id":6147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9069:37:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6148,"nodeType":"ExpressionStatement","src":"9069:37:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6151,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"9161:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9177:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9169:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6152,"name":"address","nodeType":"ElementaryTypeName","src":"9169:7:38","typeDescriptions":{}}},"id":6155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9169:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9161:18:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6178,"nodeType":"IfStatement","src":"9157:256:38","trueBody":{"id":6177,"nodeType":"Block","src":"9181:232:38","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9294:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9286:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6158,"name":"address","nodeType":"ElementaryTypeName","src":"9286:7:38","typeDescriptions":{}}},"id":6161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9286:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6162,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6124,"src":"9298:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":6165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9315:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9307:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6163,"name":"address","nodeType":"ElementaryTypeName","src":"9307:7:38","typeDescriptions":{}}},"id":6166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":6167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9319:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6157,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[6455,6521],"referencedDeclaration":6521,"src":"9277:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,uint256,address,bool)"}},"id":6168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9277:48:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6169,"nodeType":"ExpressionStatement","src":"9277:48:38"},{"id":6176,"nodeType":"UncheckedBlock","src":"9340:63:38","statements":[{"expression":{"id":6174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6170,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"9368:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6172,"indexExpression":{"id":6171,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"9378:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9368:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":6173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9387:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9368:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6175,"nodeType":"ExpressionStatement","src":"9368:20:38"}]}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6179,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6122,"src":"9427:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9441:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9433:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6180,"name":"address","nodeType":"ElementaryTypeName","src":"9433:7:38","typeDescriptions":{}}},"id":6183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9433:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9427:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6193,"nodeType":"IfStatement","src":"9423:107:38","trueBody":{"id":6192,"nodeType":"Block","src":"9445:85:38","statements":[{"id":6191,"nodeType":"UncheckedBlock","src":"9459:61:38","statements":[{"expression":{"id":6189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6185,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"9487:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6187,"indexExpression":{"id":6186,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6122,"src":"9497:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9487:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9504:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9487:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6190,"nodeType":"ExpressionStatement","src":"9487:18:38"}]}]}},{"expression":{"id":6198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6194,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5682,"src":"9540:7:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6196,"indexExpression":{"id":6195,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6124,"src":"9548:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9540:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6197,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6122,"src":"9559:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9540:21:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6199,"nodeType":"ExpressionStatement","src":"9540:21:38"},{"eventCall":{"arguments":[{"id":6201,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"9586:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6202,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6122,"src":"9592:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6203,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6124,"src":"9596:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6200,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6668,"src":"9577:8:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9577:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6205,"nodeType":"EmitStatement","src":"9572:32:38"},{"expression":{"id":6206,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"9622:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6130,"id":6207,"nodeType":"Return","src":"9615:11:38"}]},"documentation":{"id":6120,"nodeType":"StructuredDocumentation","src":"8251:582:38","text":" @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n The `auth` argument is optional. If the value passed is non 0, then this function will check that\n `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n Emits a {Transfer} event.\n NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}."},"id":6209,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"8847:7:38","nodeType":"FunctionDefinition","parameters":{"id":6127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6122,"mutability":"mutable","name":"to","nameLocation":"8863:2:38","nodeType":"VariableDeclaration","scope":6209,"src":"8855:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6121,"name":"address","nodeType":"ElementaryTypeName","src":"8855:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6124,"mutability":"mutable","name":"tokenId","nameLocation":"8875:7:38","nodeType":"VariableDeclaration","scope":6209,"src":"8867:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6123,"name":"uint256","nodeType":"ElementaryTypeName","src":"8867:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6126,"mutability":"mutable","name":"auth","nameLocation":"8892:4:38","nodeType":"VariableDeclaration","scope":6209,"src":"8884:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6125,"name":"address","nodeType":"ElementaryTypeName","src":"8884:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8854:43:38"},"returnParameters":{"id":6130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6209,"src":"8924:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6128,"name":"address","nodeType":"ElementaryTypeName","src":"8924:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8923:9:38"},"scope":6652,"src":"8838:795:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6258,"nodeType":"Block","src":"10008:274:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6217,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6212,"src":"10022:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10036:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10028:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6218,"name":"address","nodeType":"ElementaryTypeName","src":"10028:7:38","typeDescriptions":{}}},"id":6221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10028:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10022:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6231,"nodeType":"IfStatement","src":"10018:87:38","trueBody":{"id":6230,"nodeType":"Block","src":"10040:65:38","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":6226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10091:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10083:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6224,"name":"address","nodeType":"ElementaryTypeName","src":"10083:7:38","typeDescriptions":{}}},"id":6227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10083:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6223,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5174,"src":"10061:21:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10061:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6229,"nodeType":"RevertStatement","src":"10054:40:38"}]}},{"assignments":[6233],"declarations":[{"constant":false,"id":6233,"mutability":"mutable","name":"previousOwner","nameLocation":"10122:13:38","nodeType":"VariableDeclaration","scope":6258,"src":"10114:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6232,"name":"address","nodeType":"ElementaryTypeName","src":"10114:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6242,"initialValue":{"arguments":[{"id":6235,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6212,"src":"10146:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6236,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6214,"src":"10150:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":6239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10167:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10159:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6237,"name":"address","nodeType":"ElementaryTypeName","src":"10159:7:38","typeDescriptions":{}}},"id":6240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10159:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6234,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6209,"src":"10138:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":6241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10138:32:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10114:56:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6243,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6233,"src":"10184:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10209:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10201:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6244,"name":"address","nodeType":"ElementaryTypeName","src":"10201:7:38","typeDescriptions":{}}},"id":6247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10201:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10184:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6257,"nodeType":"IfStatement","src":"10180:96:38","trueBody":{"id":6256,"nodeType":"Block","src":"10213:63:38","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":6252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10262:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10254:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6250,"name":"address","nodeType":"ElementaryTypeName","src":"10254:7:38","typeDescriptions":{}}},"id":6253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10254:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6249,"name":"ERC721InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5169,"src":"10234:19:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10234:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6255,"nodeType":"RevertStatement","src":"10227:38:38"}]}}]},"documentation":{"id":6210,"nodeType":"StructuredDocumentation","src":"9639:311:38","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":6259,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9964:5:38","nodeType":"FunctionDefinition","parameters":{"id":6215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6212,"mutability":"mutable","name":"to","nameLocation":"9978:2:38","nodeType":"VariableDeclaration","scope":6259,"src":"9970:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6211,"name":"address","nodeType":"ElementaryTypeName","src":"9970:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6214,"mutability":"mutable","name":"tokenId","nameLocation":"9990:7:38","nodeType":"VariableDeclaration","scope":6259,"src":"9982:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6213,"name":"uint256","nodeType":"ElementaryTypeName","src":"9982:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9969:29:38"},"returnParameters":{"id":6216,"nodeType":"ParameterList","parameters":[],"src":"10008:0:38"},"scope":6652,"src":"9955:327:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6273,"nodeType":"Block","src":"10690:43:38","statements":[{"expression":{"arguments":[{"id":6268,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6262,"src":"10710:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6269,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6264,"src":"10714:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":6270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10723:2:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":6267,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[6274,6300],"referencedDeclaration":6300,"src":"10700:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":6271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10700:26:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6272,"nodeType":"ExpressionStatement","src":"10700:26:38"}]},"documentation":{"id":6260,"nodeType":"StructuredDocumentation","src":"10288:340:38","text":" @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":6274,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"10642:9:38","nodeType":"FunctionDefinition","parameters":{"id":6265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6262,"mutability":"mutable","name":"to","nameLocation":"10660:2:38","nodeType":"VariableDeclaration","scope":6274,"src":"10652:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6261,"name":"address","nodeType":"ElementaryTypeName","src":"10652:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6264,"mutability":"mutable","name":"tokenId","nameLocation":"10672:7:38","nodeType":"VariableDeclaration","scope":6274,"src":"10664:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6263,"name":"uint256","nodeType":"ElementaryTypeName","src":"10664:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10651:29:38"},"returnParameters":{"id":6266,"nodeType":"ParameterList","parameters":[],"src":"10690:0:38"},"scope":6652,"src":"10633:100:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6299,"nodeType":"Block","src":"11038:98:38","statements":[{"expression":{"arguments":[{"id":6285,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6277,"src":"11054:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6286,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6279,"src":"11058:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6284,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6259,"src":"11048:5:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11048:18:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6288,"nodeType":"ExpressionStatement","src":"11048:18:38"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11107:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11099:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6290,"name":"address","nodeType":"ElementaryTypeName","src":"11099:7:38","typeDescriptions":{}}},"id":6293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11099:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6294,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6277,"src":"11111:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6295,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6279,"src":"11115:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6296,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6281,"src":"11124:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6289,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"11076:22:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11076:53:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6298,"nodeType":"ExpressionStatement","src":"11076:53:38"}]},"documentation":{"id":6275,"nodeType":"StructuredDocumentation","src":"10739:210:38","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":6300,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"10963:9:38","nodeType":"FunctionDefinition","parameters":{"id":6282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6277,"mutability":"mutable","name":"to","nameLocation":"10981:2:38","nodeType":"VariableDeclaration","scope":6300,"src":"10973:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6276,"name":"address","nodeType":"ElementaryTypeName","src":"10973:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6279,"mutability":"mutable","name":"tokenId","nameLocation":"10993:7:38","nodeType":"VariableDeclaration","scope":6300,"src":"10985:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6278,"name":"uint256","nodeType":"ElementaryTypeName","src":"10985:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6281,"mutability":"mutable","name":"data","nameLocation":"11015:4:38","nodeType":"VariableDeclaration","scope":6300,"src":"11002:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6280,"name":"bytes","nodeType":"ElementaryTypeName","src":"11002:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10972:48:38"},"returnParameters":{"id":6283,"nodeType":"ParameterList","parameters":[],"src":"11038:0:38"},"scope":6652,"src":"10954:182:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6332,"nodeType":"Block","src":"11503:186:38","statements":[{"assignments":[6307],"declarations":[{"constant":false,"id":6307,"mutability":"mutable","name":"previousOwner","nameLocation":"11521:13:38","nodeType":"VariableDeclaration","scope":6332,"src":"11513:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6306,"name":"address","nodeType":"ElementaryTypeName","src":"11513:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6319,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":6311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11553:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11545:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6309,"name":"address","nodeType":"ElementaryTypeName","src":"11545:7:38","typeDescriptions":{}}},"id":6312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11545:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6313,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6303,"src":"11557:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":6316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11574:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11566:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6314,"name":"address","nodeType":"ElementaryTypeName","src":"11566:7:38","typeDescriptions":{}}},"id":6317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11566:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6308,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6209,"src":"11537:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":6318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11537:40:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11513:64:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6320,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6307,"src":"11591:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11616:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11608:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6321,"name":"address","nodeType":"ElementaryTypeName","src":"11608:7:38","typeDescriptions":{}}},"id":6324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11608:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11591:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6331,"nodeType":"IfStatement","src":"11587:96:38","trueBody":{"id":6330,"nodeType":"Block","src":"11620:63:38","statements":[{"errorCall":{"arguments":[{"id":6327,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6303,"src":"11664:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6326,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5155,"src":"11641:22:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":6328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11641:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6329,"nodeType":"RevertStatement","src":"11634:38:38"}]}}]},"documentation":{"id":6301,"nodeType":"StructuredDocumentation","src":"11142:315:38","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":6333,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"11471:5:38","nodeType":"FunctionDefinition","parameters":{"id":6304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6303,"mutability":"mutable","name":"tokenId","nameLocation":"11485:7:38","nodeType":"VariableDeclaration","scope":6333,"src":"11477:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6302,"name":"uint256","nodeType":"ElementaryTypeName","src":"11477:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11476:17:38"},"returnParameters":{"id":6305,"nodeType":"ParameterList","parameters":[],"src":"11503:0:38"},"scope":6652,"src":"11462:227:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6392,"nodeType":"Block","src":"12084:389:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6343,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6338,"src":"12098:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12112:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12104:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6344,"name":"address","nodeType":"ElementaryTypeName","src":"12104:7:38","typeDescriptions":{}}},"id":6347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12104:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12098:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6357,"nodeType":"IfStatement","src":"12094:87:38","trueBody":{"id":6356,"nodeType":"Block","src":"12116:65:38","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":6352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12167:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12159:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6350,"name":"address","nodeType":"ElementaryTypeName","src":"12159:7:38","typeDescriptions":{}}},"id":6353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12159:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6349,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5174,"src":"12137:21:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12137:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6355,"nodeType":"RevertStatement","src":"12130:40:38"}]}},{"assignments":[6359],"declarations":[{"constant":false,"id":6359,"mutability":"mutable","name":"previousOwner","nameLocation":"12198:13:38","nodeType":"VariableDeclaration","scope":6392,"src":"12190:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6358,"name":"address","nodeType":"ElementaryTypeName","src":"12190:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6368,"initialValue":{"arguments":[{"id":6361,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6338,"src":"12222:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6362,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6340,"src":"12226:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":6365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12243:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12235:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6363,"name":"address","nodeType":"ElementaryTypeName","src":"12235:7:38","typeDescriptions":{}}},"id":6366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12235:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6360,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6209,"src":"12214:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":6367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12214:32:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12190:56:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6369,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6359,"src":"12260:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12285:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12277:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6370,"name":"address","nodeType":"ElementaryTypeName","src":"12277:7:38","typeDescriptions":{}}},"id":6373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12277:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12260:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6380,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6359,"src":"12362:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6381,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6336,"src":"12379:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12362:21:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6390,"nodeType":"IfStatement","src":"12358:109:38","trueBody":{"id":6389,"nodeType":"Block","src":"12385:82:38","statements":[{"errorCall":{"arguments":[{"id":6384,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6336,"src":"12427:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6385,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6340,"src":"12433:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6386,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6359,"src":"12442:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6383,"name":"ERC721IncorrectOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5164,"src":"12406:20:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address) pure"}},"id":6387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12406:50:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6388,"nodeType":"RevertStatement","src":"12399:57:38"}]}},"id":6391,"nodeType":"IfStatement","src":"12256:211:38","trueBody":{"id":6379,"nodeType":"Block","src":"12289:63:38","statements":[{"errorCall":{"arguments":[{"id":6376,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6340,"src":"12333:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6375,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5155,"src":"12310:22:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":6377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12310:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6378,"nodeType":"RevertStatement","src":"12303:38:38"}]}}]},"documentation":{"id":6334,"nodeType":"StructuredDocumentation","src":"11695:313:38","text":" @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":6393,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"12022:9:38","nodeType":"FunctionDefinition","parameters":{"id":6341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6336,"mutability":"mutable","name":"from","nameLocation":"12040:4:38","nodeType":"VariableDeclaration","scope":6393,"src":"12032:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6335,"name":"address","nodeType":"ElementaryTypeName","src":"12032:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6338,"mutability":"mutable","name":"to","nameLocation":"12054:2:38","nodeType":"VariableDeclaration","scope":6393,"src":"12046:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6337,"name":"address","nodeType":"ElementaryTypeName","src":"12046:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6340,"mutability":"mutable","name":"tokenId","nameLocation":"12066:7:38","nodeType":"VariableDeclaration","scope":6393,"src":"12058:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6339,"name":"uint256","nodeType":"ElementaryTypeName","src":"12058:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12031:43:38"},"returnParameters":{"id":6342,"nodeType":"ParameterList","parameters":[],"src":"12084:0:38"},"scope":6652,"src":"12013:460:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6410,"nodeType":"Block","src":"13481:53:38","statements":[{"expression":{"arguments":[{"id":6404,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"13505:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6405,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6398,"src":"13511:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6406,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6400,"src":"13515:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":6407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13524:2:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":6403,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[6411,6437],"referencedDeclaration":6437,"src":"13491:13:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":6408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13491:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6409,"nodeType":"ExpressionStatement","src":"13491:36:38"}]},"documentation":{"id":6394,"nodeType":"StructuredDocumentation","src":"12479:922:38","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n are aware of the ERC721 standard to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is like {safeTransferFrom} in the sense that it invokes\n {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `tokenId` token must exist and be owned by `from`.\n - `to` cannot be the zero address.\n - `from` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":6411,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"13415:13:38","nodeType":"FunctionDefinition","parameters":{"id":6401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6396,"mutability":"mutable","name":"from","nameLocation":"13437:4:38","nodeType":"VariableDeclaration","scope":6411,"src":"13429:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6395,"name":"address","nodeType":"ElementaryTypeName","src":"13429:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6398,"mutability":"mutable","name":"to","nameLocation":"13451:2:38","nodeType":"VariableDeclaration","scope":6411,"src":"13443:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6397,"name":"address","nodeType":"ElementaryTypeName","src":"13443:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6400,"mutability":"mutable","name":"tokenId","nameLocation":"13463:7:38","nodeType":"VariableDeclaration","scope":6411,"src":"13455:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6399,"name":"uint256","nodeType":"ElementaryTypeName","src":"13455:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13428:43:38"},"returnParameters":{"id":6402,"nodeType":"ParameterList","parameters":[],"src":"13481:0:38"},"scope":6652,"src":"13406:128:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6436,"nodeType":"Block","src":"13873:102:38","statements":[{"expression":{"arguments":[{"id":6424,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6414,"src":"13893:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6425,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6416,"src":"13899:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6426,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6418,"src":"13903:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6423,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6393,"src":"13883:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13883:28:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6428,"nodeType":"ExpressionStatement","src":"13883:28:38"},{"expression":{"arguments":[{"id":6430,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6414,"src":"13944:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6431,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6416,"src":"13950:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6432,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6418,"src":"13954:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6433,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6420,"src":"13963:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6429,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"13921:22:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":6434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13921:47:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6435,"nodeType":"ExpressionStatement","src":"13921:47:38"}]},"documentation":{"id":6412,"nodeType":"StructuredDocumentation","src":"13540:226:38","text":" @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":6437,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"13780:13:38","nodeType":"FunctionDefinition","parameters":{"id":6421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6414,"mutability":"mutable","name":"from","nameLocation":"13802:4:38","nodeType":"VariableDeclaration","scope":6437,"src":"13794:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6413,"name":"address","nodeType":"ElementaryTypeName","src":"13794:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6416,"mutability":"mutable","name":"to","nameLocation":"13816:2:38","nodeType":"VariableDeclaration","scope":6437,"src":"13808:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6415,"name":"address","nodeType":"ElementaryTypeName","src":"13808:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6418,"mutability":"mutable","name":"tokenId","nameLocation":"13828:7:38","nodeType":"VariableDeclaration","scope":6437,"src":"13820:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6417,"name":"uint256","nodeType":"ElementaryTypeName","src":"13820:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6420,"mutability":"mutable","name":"data","nameLocation":"13850:4:38","nodeType":"VariableDeclaration","scope":6437,"src":"13837:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6419,"name":"bytes","nodeType":"ElementaryTypeName","src":"13837:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13793:62:38"},"returnParameters":{"id":6422,"nodeType":"ParameterList","parameters":[],"src":"13873:0:38"},"scope":6652,"src":"13771:204:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6454,"nodeType":"Block","src":"14488:50:38","statements":[{"expression":{"arguments":[{"id":6448,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6440,"src":"14507:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6449,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6442,"src":"14511:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6450,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6444,"src":"14520:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":6451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14526:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6447,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[6455,6521],"referencedDeclaration":6521,"src":"14498:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,uint256,address,bool)"}},"id":6452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14498:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6453,"nodeType":"ExpressionStatement","src":"14498:33:38"}]},"documentation":{"id":6438,"nodeType":"StructuredDocumentation","src":"13981:432:38","text":" @dev Approve `to` to operate on `tokenId`\n The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n either the owner of the token, or approved to operate on all tokens held by this owner.\n Emits an {Approval} event.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."},"id":6455,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"14427:8:38","nodeType":"FunctionDefinition","parameters":{"id":6445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6440,"mutability":"mutable","name":"to","nameLocation":"14444:2:38","nodeType":"VariableDeclaration","scope":6455,"src":"14436:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6439,"name":"address","nodeType":"ElementaryTypeName","src":"14436:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6442,"mutability":"mutable","name":"tokenId","nameLocation":"14456:7:38","nodeType":"VariableDeclaration","scope":6455,"src":"14448:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6441,"name":"uint256","nodeType":"ElementaryTypeName","src":"14448:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6444,"mutability":"mutable","name":"auth","nameLocation":"14473:4:38","nodeType":"VariableDeclaration","scope":6455,"src":"14465:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6443,"name":"address","nodeType":"ElementaryTypeName","src":"14465:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14435:43:38"},"returnParameters":{"id":6446,"nodeType":"ParameterList","parameters":[],"src":"14488:0:38"},"scope":6652,"src":"14418:120:38","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6520,"nodeType":"Block","src":"14814:568:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6467,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6464,"src":"14880:9:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6468,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"14893:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14909:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14901:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6469,"name":"address","nodeType":"ElementaryTypeName","src":"14901:7:38","typeDescriptions":{}}},"id":6472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14901:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14893:18:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14880:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6513,"nodeType":"IfStatement","src":"14876:460:38","trueBody":{"id":6512,"nodeType":"Block","src":"14913:423:38","statements":[{"assignments":[6476],"declarations":[{"constant":false,"id":6476,"mutability":"mutable","name":"owner","nameLocation":"14935:5:38","nodeType":"VariableDeclaration","scope":6512,"src":"14927:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6475,"name":"address","nodeType":"ElementaryTypeName","src":"14927:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6480,"initialValue":{"arguments":[{"id":6478,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6460,"src":"14957:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6477,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"14943:13:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14943:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14927:38:38"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6481,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"15093:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15109:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15101:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6482,"name":"address","nodeType":"ElementaryTypeName","src":"15101:7:38","typeDescriptions":{}}},"id":6485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15101:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15093:18:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6487,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6476,"src":"15115:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6488,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"15124:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15115:13:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15093:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":6495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15132:30:38","subExpression":{"arguments":[{"id":6492,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6476,"src":"15150:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6493,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"15157:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6491,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5914,"src":"15133:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":6494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15133:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15093:69:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6502,"nodeType":"IfStatement","src":"15089:142:38","trueBody":{"id":6501,"nodeType":"Block","src":"15164:67:38","statements":[{"errorCall":{"arguments":[{"id":6498,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"15211:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6497,"name":"ERC721InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5186,"src":"15189:21:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15189:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6500,"nodeType":"RevertStatement","src":"15182:34:38"}]}},{"condition":{"id":6503,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6464,"src":"15249:9:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6511,"nodeType":"IfStatement","src":"15245:81:38","trueBody":{"id":6510,"nodeType":"Block","src":"15260:66:38","statements":[{"eventCall":{"arguments":[{"id":6505,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6476,"src":"15292:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6506,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6458,"src":"15299:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6507,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6460,"src":"15303:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6504,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"15283:8:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15283:28:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6509,"nodeType":"EmitStatement","src":"15278:33:38"}]}}]}},{"expression":{"id":6518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6514,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5690,"src":"15346:15:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6516,"indexExpression":{"id":6515,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6460,"src":"15362:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15346:24:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6517,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6458,"src":"15373:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15346:29:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6519,"nodeType":"ExpressionStatement","src":"15346:29:38"}]},"documentation":{"id":6456,"nodeType":"StructuredDocumentation","src":"14544:171:38","text":" @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n emitted in the context of transfers."},"id":6521,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"14729:8:38","nodeType":"FunctionDefinition","parameters":{"id":6465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6458,"mutability":"mutable","name":"to","nameLocation":"14746:2:38","nodeType":"VariableDeclaration","scope":6521,"src":"14738:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6457,"name":"address","nodeType":"ElementaryTypeName","src":"14738:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6460,"mutability":"mutable","name":"tokenId","nameLocation":"14758:7:38","nodeType":"VariableDeclaration","scope":6521,"src":"14750:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6459,"name":"uint256","nodeType":"ElementaryTypeName","src":"14750:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6462,"mutability":"mutable","name":"auth","nameLocation":"14775:4:38","nodeType":"VariableDeclaration","scope":6521,"src":"14767:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6461,"name":"address","nodeType":"ElementaryTypeName","src":"14767:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6464,"mutability":"mutable","name":"emitEvent","nameLocation":"14786:9:38","nodeType":"VariableDeclaration","scope":6521,"src":"14781:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6463,"name":"bool","nodeType":"ElementaryTypeName","src":"14781:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14737:59:38"},"returnParameters":{"id":6466,"nodeType":"ParameterList","parameters":[],"src":"14814:0:38"},"scope":6652,"src":"14720:662:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6557,"nodeType":"Block","src":"15684:219:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6531,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"15698:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15718:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15710:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6532,"name":"address","nodeType":"ElementaryTypeName","src":"15710:7:38","typeDescriptions":{}}},"id":6535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15710:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15698:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6542,"nodeType":"IfStatement","src":"15694:91:38","trueBody":{"id":6541,"nodeType":"Block","src":"15722:63:38","statements":[{"errorCall":{"arguments":[{"id":6538,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"15765:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6537,"name":"ERC721InvalidOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5191,"src":"15743:21:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15743:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6540,"nodeType":"RevertStatement","src":"15736:38:38"}]}},{"expression":{"id":6549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":6543,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5696,"src":"15794:18:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":6546,"indexExpression":{"id":6544,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6524,"src":"15813:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15794:25:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6547,"indexExpression":{"id":6545,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"15820:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15794:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6548,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6528,"src":"15832:8:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15794:46:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6550,"nodeType":"ExpressionStatement","src":"15794:46:38"},{"eventCall":{"arguments":[{"id":6552,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6524,"src":"15870:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6553,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"15877:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6554,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6528,"src":"15887:8:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6551,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6686,"src":"15855:14:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":6555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15855:41:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6556,"nodeType":"EmitStatement","src":"15850:46:38"}]},"documentation":{"id":6522,"nodeType":"StructuredDocumentation","src":"15388:198:38","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Requirements:\n - operator can't be the address zero.\n Emits an {ApprovalForAll} event."},"id":6558,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"15600:18:38","nodeType":"FunctionDefinition","parameters":{"id":6529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6524,"mutability":"mutable","name":"owner","nameLocation":"15627:5:38","nodeType":"VariableDeclaration","scope":6558,"src":"15619:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6523,"name":"address","nodeType":"ElementaryTypeName","src":"15619:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6526,"mutability":"mutable","name":"operator","nameLocation":"15642:8:38","nodeType":"VariableDeclaration","scope":6558,"src":"15634:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6525,"name":"address","nodeType":"ElementaryTypeName","src":"15634:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6528,"mutability":"mutable","name":"approved","nameLocation":"15657:8:38","nodeType":"VariableDeclaration","scope":6558,"src":"15652:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6527,"name":"bool","nodeType":"ElementaryTypeName","src":"15652:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15618:48:38"},"returnParameters":{"id":6530,"nodeType":"ParameterList","parameters":[],"src":"15684:0:38"},"scope":6652,"src":"15591:312:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6586,"nodeType":"Block","src":"16210:169:38","statements":[{"assignments":[6567],"declarations":[{"constant":false,"id":6567,"mutability":"mutable","name":"owner","nameLocation":"16228:5:38","nodeType":"VariableDeclaration","scope":6586,"src":"16220:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6566,"name":"address","nodeType":"ElementaryTypeName","src":"16220:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6571,"initialValue":{"arguments":[{"id":6569,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6561,"src":"16245:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6568,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"16236:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16236:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16220:33:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6572,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6567,"src":"16267:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16284:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16276:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6573,"name":"address","nodeType":"ElementaryTypeName","src":"16276:7:38","typeDescriptions":{}}},"id":6576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16276:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16267:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6583,"nodeType":"IfStatement","src":"16263:88:38","trueBody":{"id":6582,"nodeType":"Block","src":"16288:63:38","statements":[{"errorCall":{"arguments":[{"id":6579,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6561,"src":"16332:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6578,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5155,"src":"16309:22:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":6580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16309:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6581,"nodeType":"RevertStatement","src":"16302:38:38"}]}},{"expression":{"id":6584,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6567,"src":"16367:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6565,"id":6585,"nodeType":"Return","src":"16360:12:38"}]},"documentation":{"id":6559,"nodeType":"StructuredDocumentation","src":"15909:224:38","text":" @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n Returns the owner.\n Overrides to ownership logic should be done to {_ownerOf}."},"id":6587,"implemented":true,"kind":"function","modifiers":[],"name":"_requireOwned","nameLocation":"16147:13:38","nodeType":"FunctionDefinition","parameters":{"id":6562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6561,"mutability":"mutable","name":"tokenId","nameLocation":"16169:7:38","nodeType":"VariableDeclaration","scope":6587,"src":"16161:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6560,"name":"uint256","nodeType":"ElementaryTypeName","src":"16161:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16160:17:38"},"returnParameters":{"id":6565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6587,"src":"16201:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6563,"name":"address","nodeType":"ElementaryTypeName","src":"16201:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16200:9:38"},"scope":6652,"src":"16138:241:38","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6650,"nodeType":"Block","src":"17020:680:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":6599,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6592,"src":"17034:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17037:4:38","memberName":"code","nodeType":"MemberAccess","src":"17034:7:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17042:6:38","memberName":"length","nodeType":"MemberAccess","src":"17034:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17051:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17034:18:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6649,"nodeType":"IfStatement","src":"17030:664:38","trueBody":{"id":6648,"nodeType":"Block","src":"17054:640:38","statements":[{"clauses":[{"block":{"id":6628,"nodeType":"Block","src":"17168:162:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6617,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6615,"src":"17190:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":6618,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6787,"src":"17200:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$6787_$","typeString":"type(contract IERC721Receiver)"}},"id":6619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17216:16:38","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":6786,"src":"17200:32:38","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":6620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17233:8:38","memberName":"selector","nodeType":"MemberAccess","src":"17200:41:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"17190:51:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6627,"nodeType":"IfStatement","src":"17186:130:38","trueBody":{"id":6626,"nodeType":"Block","src":"17243:73:38","statements":[{"errorCall":{"arguments":[{"id":6623,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6592,"src":"17294:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6622,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5174,"src":"17272:21:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17272:25:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6625,"nodeType":"RevertStatement","src":"17265:32:38"}]}}]},"errorName":"","id":6629,"nodeType":"TryCatchClause","parameters":{"id":6616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6615,"mutability":"mutable","name":"retval","nameLocation":"17160:6:38","nodeType":"VariableDeclaration","scope":6629,"src":"17153:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6614,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17153:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"17152:15:38"},"src":"17144:186:38"},{"block":{"id":6645,"nodeType":"Block","src":"17359:325:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6633,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6631,"src":"17381:6:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17388:6:38","memberName":"length","nodeType":"MemberAccess","src":"17381:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17398:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17381:18:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6643,"nodeType":"Block","src":"17480:190:38","statements":[{"AST":{"nativeSrc":"17566:86:38","nodeType":"YulBlock","src":"17566:86:38","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17603:2:38","nodeType":"YulLiteral","src":"17603:2:38","type":"","value":"32"},{"name":"reason","nativeSrc":"17607:6:38","nodeType":"YulIdentifier","src":"17607:6:38"}],"functionName":{"name":"add","nativeSrc":"17599:3:38","nodeType":"YulIdentifier","src":"17599:3:38"},"nativeSrc":"17599:15:38","nodeType":"YulFunctionCall","src":"17599:15:38"},{"arguments":[{"name":"reason","nativeSrc":"17622:6:38","nodeType":"YulIdentifier","src":"17622:6:38"}],"functionName":{"name":"mload","nativeSrc":"17616:5:38","nodeType":"YulIdentifier","src":"17616:5:38"},"nativeSrc":"17616:13:38","nodeType":"YulFunctionCall","src":"17616:13:38"}],"functionName":{"name":"revert","nativeSrc":"17592:6:38","nodeType":"YulIdentifier","src":"17592:6:38"},"nativeSrc":"17592:38:38","nodeType":"YulFunctionCall","src":"17592:38:38"},"nativeSrc":"17592:38:38","nodeType":"YulExpressionStatement","src":"17592:38:38"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":6631,"isOffset":false,"isSlot":false,"src":"17607:6:38","valueSize":1},{"declaration":6631,"isOffset":false,"isSlot":false,"src":"17622:6:38","valueSize":1}],"id":6642,"nodeType":"InlineAssembly","src":"17557:95:38"}]},"id":6644,"nodeType":"IfStatement","src":"17377:293:38","trueBody":{"id":6641,"nodeType":"Block","src":"17401:73:38","statements":[{"errorCall":{"arguments":[{"id":6638,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6592,"src":"17452:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6637,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5174,"src":"17430:21:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17430:25:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6640,"nodeType":"RevertStatement","src":"17423:32:38"}]}}]},"errorName":"","id":6646,"nodeType":"TryCatchClause","parameters":{"id":6632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6631,"mutability":"mutable","name":"reason","nameLocation":"17351:6:38","nodeType":"VariableDeclaration","scope":6646,"src":"17338:19:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6630,"name":"bytes","nodeType":"ElementaryTypeName","src":"17338:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17337:21:38"},"src":"17331:353:38"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6608,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"17109:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17109:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6610,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6590,"src":"17123:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6611,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"17129:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6612,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6596,"src":"17138:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":6605,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6592,"src":"17088:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6604,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6787,"src":"17072:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$6787_$","typeString":"type(contract IERC721Receiver)"}},"id":6606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17072:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$6787","typeString":"contract IERC721Receiver"}},"id":6607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17092:16:38","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":6786,"src":"17072:36:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":6613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17072:71:38","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":6647,"nodeType":"TryStatement","src":"17068:616:38"}]}}]},"documentation":{"id":6588,"nodeType":"StructuredDocumentation","src":"16385:528:38","text":" @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call"},"id":6651,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"16927:22:38","nodeType":"FunctionDefinition","parameters":{"id":6597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6590,"mutability":"mutable","name":"from","nameLocation":"16958:4:38","nodeType":"VariableDeclaration","scope":6651,"src":"16950:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6589,"name":"address","nodeType":"ElementaryTypeName","src":"16950:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6592,"mutability":"mutable","name":"to","nameLocation":"16972:2:38","nodeType":"VariableDeclaration","scope":6651,"src":"16964:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6591,"name":"address","nodeType":"ElementaryTypeName","src":"16964:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6594,"mutability":"mutable","name":"tokenId","nameLocation":"16984:7:38","nodeType":"VariableDeclaration","scope":6651,"src":"16976:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6593,"name":"uint256","nodeType":"ElementaryTypeName","src":"16976:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6596,"mutability":"mutable","name":"data","nameLocation":"17006:4:38","nodeType":"VariableDeclaration","scope":6651,"src":"16993:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6595,"name":"bytes","nodeType":"ElementaryTypeName","src":"16993:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16949:62:38"},"returnParameters":{"id":6598,"nodeType":"ParameterList","parameters":[],"src":"17020:0:38"},"scope":6652,"src":"16918:782:38","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":6653,"src":"776:16926:38","usedErrors":[5150,5155,5164,5169,5174,5181,5186,5191],"usedEvents":[6668,6677,6686]}],"src":"107:17596:38"},"id":38},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[7389],"IERC721":[6769]},"id":6770,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6654,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"108:24:39"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":6656,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6770,"sourceUnit":7390,"src":"134:62:39","symbolAliases":[{"foreign":{"id":6655,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7389,"src":"142:7:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6658,"name":"IERC165","nameLocations":["287:7:39"],"nodeType":"IdentifierPath","referencedDeclaration":7389,"src":"287:7:39"},"id":6659,"nodeType":"InheritanceSpecifier","src":"287:7:39"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":6657,"nodeType":"StructuredDocumentation","src":"198:67:39","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":6769,"linearizedBaseContracts":[6769,7389],"name":"IERC721","nameLocation":"276:7:39","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":6660,"nodeType":"StructuredDocumentation","src":"301:88:39","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":6668,"name":"Transfer","nameLocation":"400:8:39","nodeType":"EventDefinition","parameters":{"id":6667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6662,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"425:4:39","nodeType":"VariableDeclaration","scope":6668,"src":"409:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6661,"name":"address","nodeType":"ElementaryTypeName","src":"409:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6664,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"447:2:39","nodeType":"VariableDeclaration","scope":6668,"src":"431:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6663,"name":"address","nodeType":"ElementaryTypeName","src":"431:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6666,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"467:7:39","nodeType":"VariableDeclaration","scope":6668,"src":"451:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6665,"name":"uint256","nodeType":"ElementaryTypeName","src":"451:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"408:67:39"},"src":"394:82:39"},{"anonymous":false,"documentation":{"id":6669,"nodeType":"StructuredDocumentation","src":"482:94:39","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":6677,"name":"Approval","nameLocation":"587:8:39","nodeType":"EventDefinition","parameters":{"id":6676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6671,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"612:5:39","nodeType":"VariableDeclaration","scope":6677,"src":"596:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6670,"name":"address","nodeType":"ElementaryTypeName","src":"596:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6673,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"635:8:39","nodeType":"VariableDeclaration","scope":6677,"src":"619:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6672,"name":"address","nodeType":"ElementaryTypeName","src":"619:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6675,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"661:7:39","nodeType":"VariableDeclaration","scope":6677,"src":"645:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6674,"name":"uint256","nodeType":"ElementaryTypeName","src":"645:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"595:74:39"},"src":"581:89:39"},{"anonymous":false,"documentation":{"id":6678,"nodeType":"StructuredDocumentation","src":"676:117:39","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":6686,"name":"ApprovalForAll","nameLocation":"804:14:39","nodeType":"EventDefinition","parameters":{"id":6685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6680,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"835:5:39","nodeType":"VariableDeclaration","scope":6686,"src":"819:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6679,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6682,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"858:8:39","nodeType":"VariableDeclaration","scope":6686,"src":"842:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6681,"name":"address","nodeType":"ElementaryTypeName","src":"842:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6684,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"873:8:39","nodeType":"VariableDeclaration","scope":6686,"src":"868:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6683,"name":"bool","nodeType":"ElementaryTypeName","src":"868:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"818:64:39"},"src":"798:85:39"},{"documentation":{"id":6687,"nodeType":"StructuredDocumentation","src":"889:76:39","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":6694,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"979:9:39","nodeType":"FunctionDefinition","parameters":{"id":6690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6689,"mutability":"mutable","name":"owner","nameLocation":"997:5:39","nodeType":"VariableDeclaration","scope":6694,"src":"989:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6688,"name":"address","nodeType":"ElementaryTypeName","src":"989:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"988:15:39"},"returnParameters":{"id":6693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6692,"mutability":"mutable","name":"balance","nameLocation":"1035:7:39","nodeType":"VariableDeclaration","scope":6694,"src":"1027:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6691,"name":"uint256","nodeType":"ElementaryTypeName","src":"1027:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1026:17:39"},"scope":6769,"src":"970:74:39","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6695,"nodeType":"StructuredDocumentation","src":"1050:131:39","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":6702,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1195:7:39","nodeType":"FunctionDefinition","parameters":{"id":6698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6697,"mutability":"mutable","name":"tokenId","nameLocation":"1211:7:39","nodeType":"VariableDeclaration","scope":6702,"src":"1203:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6696,"name":"uint256","nodeType":"ElementaryTypeName","src":"1203:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1202:17:39"},"returnParameters":{"id":6701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6700,"mutability":"mutable","name":"owner","nameLocation":"1251:5:39","nodeType":"VariableDeclaration","scope":6702,"src":"1243:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6699,"name":"address","nodeType":"ElementaryTypeName","src":"1243:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1242:15:39"},"scope":6769,"src":"1186:72:39","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6703,"nodeType":"StructuredDocumentation","src":"1264:565:39","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":6714,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1843:16:39","nodeType":"FunctionDefinition","parameters":{"id":6712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6705,"mutability":"mutable","name":"from","nameLocation":"1868:4:39","nodeType":"VariableDeclaration","scope":6714,"src":"1860:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6704,"name":"address","nodeType":"ElementaryTypeName","src":"1860:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6707,"mutability":"mutable","name":"to","nameLocation":"1882:2:39","nodeType":"VariableDeclaration","scope":6714,"src":"1874:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6706,"name":"address","nodeType":"ElementaryTypeName","src":"1874:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6709,"mutability":"mutable","name":"tokenId","nameLocation":"1894:7:39","nodeType":"VariableDeclaration","scope":6714,"src":"1886:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6708,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6711,"mutability":"mutable","name":"data","nameLocation":"1918:4:39","nodeType":"VariableDeclaration","scope":6714,"src":"1903:19:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6710,"name":"bytes","nodeType":"ElementaryTypeName","src":"1903:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1859:64:39"},"returnParameters":{"id":6713,"nodeType":"ParameterList","parameters":[],"src":"1932:0:39"},"scope":6769,"src":"1834:99:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6715,"nodeType":"StructuredDocumentation","src":"1939:705:39","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":6724,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2658:16:39","nodeType":"FunctionDefinition","parameters":{"id":6722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6717,"mutability":"mutable","name":"from","nameLocation":"2683:4:39","nodeType":"VariableDeclaration","scope":6724,"src":"2675:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6716,"name":"address","nodeType":"ElementaryTypeName","src":"2675:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6719,"mutability":"mutable","name":"to","nameLocation":"2697:2:39","nodeType":"VariableDeclaration","scope":6724,"src":"2689:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6718,"name":"address","nodeType":"ElementaryTypeName","src":"2689:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6721,"mutability":"mutable","name":"tokenId","nameLocation":"2709:7:39","nodeType":"VariableDeclaration","scope":6724,"src":"2701:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6720,"name":"uint256","nodeType":"ElementaryTypeName","src":"2701:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2674:43:39"},"returnParameters":{"id":6723,"nodeType":"ParameterList","parameters":[],"src":"2726:0:39"},"scope":6769,"src":"2649:78:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6725,"nodeType":"StructuredDocumentation","src":"2733:732:39","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":6734,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3479:12:39","nodeType":"FunctionDefinition","parameters":{"id":6732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6727,"mutability":"mutable","name":"from","nameLocation":"3500:4:39","nodeType":"VariableDeclaration","scope":6734,"src":"3492:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6726,"name":"address","nodeType":"ElementaryTypeName","src":"3492:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6729,"mutability":"mutable","name":"to","nameLocation":"3514:2:39","nodeType":"VariableDeclaration","scope":6734,"src":"3506:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6728,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6731,"mutability":"mutable","name":"tokenId","nameLocation":"3526:7:39","nodeType":"VariableDeclaration","scope":6734,"src":"3518:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6730,"name":"uint256","nodeType":"ElementaryTypeName","src":"3518:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3491:43:39"},"returnParameters":{"id":6733,"nodeType":"ParameterList","parameters":[],"src":"3543:0:39"},"scope":6769,"src":"3470:74:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6735,"nodeType":"StructuredDocumentation","src":"3550:452:39","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":6742,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4016:7:39","nodeType":"FunctionDefinition","parameters":{"id":6740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6737,"mutability":"mutable","name":"to","nameLocation":"4032:2:39","nodeType":"VariableDeclaration","scope":6742,"src":"4024:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6736,"name":"address","nodeType":"ElementaryTypeName","src":"4024:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6739,"mutability":"mutable","name":"tokenId","nameLocation":"4044:7:39","nodeType":"VariableDeclaration","scope":6742,"src":"4036:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6738,"name":"uint256","nodeType":"ElementaryTypeName","src":"4036:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4023:29:39"},"returnParameters":{"id":6741,"nodeType":"ParameterList","parameters":[],"src":"4061:0:39"},"scope":6769,"src":"4007:55:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6743,"nodeType":"StructuredDocumentation","src":"4068:315:39","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the address zero.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":6750,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4397:17:39","nodeType":"FunctionDefinition","parameters":{"id":6748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6745,"mutability":"mutable","name":"operator","nameLocation":"4423:8:39","nodeType":"VariableDeclaration","scope":6750,"src":"4415:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6744,"name":"address","nodeType":"ElementaryTypeName","src":"4415:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6747,"mutability":"mutable","name":"approved","nameLocation":"4438:8:39","nodeType":"VariableDeclaration","scope":6750,"src":"4433:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6746,"name":"bool","nodeType":"ElementaryTypeName","src":"4433:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4414:33:39"},"returnParameters":{"id":6749,"nodeType":"ParameterList","parameters":[],"src":"4456:0:39"},"scope":6769,"src":"4388:69:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6751,"nodeType":"StructuredDocumentation","src":"4463:139:39","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":6758,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4616:11:39","nodeType":"FunctionDefinition","parameters":{"id":6754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6753,"mutability":"mutable","name":"tokenId","nameLocation":"4636:7:39","nodeType":"VariableDeclaration","scope":6758,"src":"4628:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6752,"name":"uint256","nodeType":"ElementaryTypeName","src":"4628:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4627:17:39"},"returnParameters":{"id":6757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6756,"mutability":"mutable","name":"operator","nameLocation":"4676:8:39","nodeType":"VariableDeclaration","scope":6758,"src":"4668:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6755,"name":"address","nodeType":"ElementaryTypeName","src":"4668:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4667:18:39"},"scope":6769,"src":"4607:79:39","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6759,"nodeType":"StructuredDocumentation","src":"4692:138:39","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":6768,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4844:16:39","nodeType":"FunctionDefinition","parameters":{"id":6764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6761,"mutability":"mutable","name":"owner","nameLocation":"4869:5:39","nodeType":"VariableDeclaration","scope":6768,"src":"4861:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6760,"name":"address","nodeType":"ElementaryTypeName","src":"4861:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6763,"mutability":"mutable","name":"operator","nameLocation":"4884:8:39","nodeType":"VariableDeclaration","scope":6768,"src":"4876:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6762,"name":"address","nodeType":"ElementaryTypeName","src":"4876:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4860:33:39"},"returnParameters":{"id":6767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6768,"src":"4917:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6765,"name":"bool","nodeType":"ElementaryTypeName","src":"4917:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4916:6:39"},"scope":6769,"src":"4835:88:39","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6770,"src":"266:4659:39","usedErrors":[],"usedEvents":[6668,6677,6686]}],"src":"108:4818:39"},"id":39},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[6787]},"id":6788,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6771,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"116:24:40"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":6772,"nodeType":"StructuredDocumentation","src":"142:152:40","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":6787,"linearizedBaseContracts":[6787],"name":"IERC721Receiver","nameLocation":"305:15:40","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6773,"nodeType":"StructuredDocumentation","src":"327:500:40","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":6786,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"841:16:40","nodeType":"FunctionDefinition","parameters":{"id":6782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6775,"mutability":"mutable","name":"operator","nameLocation":"875:8:40","nodeType":"VariableDeclaration","scope":6786,"src":"867:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6774,"name":"address","nodeType":"ElementaryTypeName","src":"867:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6777,"mutability":"mutable","name":"from","nameLocation":"901:4:40","nodeType":"VariableDeclaration","scope":6786,"src":"893:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6776,"name":"address","nodeType":"ElementaryTypeName","src":"893:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6779,"mutability":"mutable","name":"tokenId","nameLocation":"923:7:40","nodeType":"VariableDeclaration","scope":6786,"src":"915:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6778,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6781,"mutability":"mutable","name":"data","nameLocation":"955:4:40","nodeType":"VariableDeclaration","scope":6786,"src":"940:19:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6780,"name":"bytes","nodeType":"ElementaryTypeName","src":"940:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"857:108:40"},"returnParameters":{"id":6785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6786,"src":"984:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6783,"name":"bytes4","nodeType":"ElementaryTypeName","src":"984:6:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"983:8:40"},"scope":6787,"src":"832:160:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6788,"src":"295:699:40","usedErrors":[],"usedEvents":[]}],"src":"116:879:40"},"id":40},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC721":[6769],"IERC721Metadata":[6815]},"id":6816,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6789,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"127:24:41"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":6791,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6816,"sourceUnit":6770,"src":"153:39:41","symbolAliases":[{"foreign":{"id":6790,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6769,"src":"161:7:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6793,"name":"IERC721","nameLocations":["357:7:41"],"nodeType":"IdentifierPath","referencedDeclaration":6769,"src":"357:7:41"},"id":6794,"nodeType":"InheritanceSpecifier","src":"357:7:41"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":6792,"nodeType":"StructuredDocumentation","src":"194:133:41","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":6815,"linearizedBaseContracts":[6815,6769,7389],"name":"IERC721Metadata","nameLocation":"338:15:41","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6795,"nodeType":"StructuredDocumentation","src":"371:58:41","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":6800,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"443:4:41","nodeType":"FunctionDefinition","parameters":{"id":6796,"nodeType":"ParameterList","parameters":[],"src":"447:2:41"},"returnParameters":{"id":6799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6800,"src":"473:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6797,"name":"string","nodeType":"ElementaryTypeName","src":"473:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"472:15:41"},"scope":6815,"src":"434:54:41","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6801,"nodeType":"StructuredDocumentation","src":"494:60:41","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":6806,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"568:6:41","nodeType":"FunctionDefinition","parameters":{"id":6802,"nodeType":"ParameterList","parameters":[],"src":"574:2:41"},"returnParameters":{"id":6805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6806,"src":"600:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6803,"name":"string","nodeType":"ElementaryTypeName","src":"600:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"599:15:41"},"scope":6815,"src":"559:56:41","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6807,"nodeType":"StructuredDocumentation","src":"621:90:41","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":6814,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"725:8:41","nodeType":"FunctionDefinition","parameters":{"id":6810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6809,"mutability":"mutable","name":"tokenId","nameLocation":"742:7:41","nodeType":"VariableDeclaration","scope":6814,"src":"734:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6808,"name":"uint256","nodeType":"ElementaryTypeName","src":"734:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"733:17:41"},"returnParameters":{"id":6813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6814,"src":"774:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6811,"name":"string","nodeType":"ElementaryTypeName","src":"774:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"773:15:41"},"scope":6815,"src":"716:73:41","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6816,"src":"328:463:41","usedErrors":[],"usedEvents":[6668,6677,6686]}],"src":"127:665:41"},"id":41},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[7068]},"id":7069,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6817,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:42"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":6818,"nodeType":"StructuredDocumentation","src":"127:67:42","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":7068,"linearizedBaseContracts":[7068],"name":"Address","nameLocation":"203:7:42","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6819,"nodeType":"StructuredDocumentation","src":"217:94:42","text":" @dev The ETH balance of the account is not enough to perform the operation."},"errorSelector":"cd786059","id":6823,"name":"AddressInsufficientBalance","nameLocation":"322:26:42","nodeType":"ErrorDefinition","parameters":{"id":6822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6821,"mutability":"mutable","name":"account","nameLocation":"357:7:42","nodeType":"VariableDeclaration","scope":6823,"src":"349:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6820,"name":"address","nodeType":"ElementaryTypeName","src":"349:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"348:17:42"},"src":"316:50:42"},{"documentation":{"id":6824,"nodeType":"StructuredDocumentation","src":"372:75:42","text":" @dev There's no code at `target` (it is not a contract)."},"errorSelector":"9996b315","id":6828,"name":"AddressEmptyCode","nameLocation":"458:16:42","nodeType":"ErrorDefinition","parameters":{"id":6827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6826,"mutability":"mutable","name":"target","nameLocation":"483:6:42","nodeType":"VariableDeclaration","scope":6828,"src":"475:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6825,"name":"address","nodeType":"ElementaryTypeName","src":"475:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"474:16:42"},"src":"452:39:42"},{"documentation":{"id":6829,"nodeType":"StructuredDocumentation","src":"497:89:42","text":" @dev A call to an address target failed. The target may have reverted."},"errorSelector":"1425ea42","id":6831,"name":"FailedInnerCall","nameLocation":"597:15:42","nodeType":"ErrorDefinition","parameters":{"id":6830,"nodeType":"ParameterList","parameters":[],"src":"612:2:42"},"src":"591:24:42"},{"body":{"id":6871,"nodeType":"Block","src":"1602:260:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6841,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1624:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$7068","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$7068","typeString":"library Address"}],"id":6840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1616:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6839,"name":"address","nodeType":"ElementaryTypeName","src":"1616:7:42","typeDescriptions":{}}},"id":6842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1630:7:42","memberName":"balance","nodeType":"MemberAccess","src":"1616:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6844,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6836,"src":"1640:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1616:30:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6854,"nodeType":"IfStatement","src":"1612:109:42","trueBody":{"id":6853,"nodeType":"Block","src":"1648:73:42","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":6849,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1704:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$7068","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$7068","typeString":"library Address"}],"id":6848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1696:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6847,"name":"address","nodeType":"ElementaryTypeName","src":"1696:7:42","typeDescriptions":{}}},"id":6850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6846,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6823,"src":"1669:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1669:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6852,"nodeType":"RevertStatement","src":"1662:48:42"}]}},{"assignments":[6856,null],"declarations":[{"constant":false,"id":6856,"mutability":"mutable","name":"success","nameLocation":"1737:7:42","nodeType":"VariableDeclaration","scope":6871,"src":"1732:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6855,"name":"bool","nodeType":"ElementaryTypeName","src":"1732:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6863,"initialValue":{"arguments":[{"hexValue":"","id":6861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1780:2:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":6857,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6834,"src":"1750:9:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":6858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1760:4:42","memberName":"call","nodeType":"MemberAccess","src":"1750:14:42","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6859,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6836,"src":"1772:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1750:29:42","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1731:52:42"},{"condition":{"id":6865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1797:8:42","subExpression":{"id":6864,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6856,"src":"1798:7:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6870,"nodeType":"IfStatement","src":"1793:63:42","trueBody":{"id":6869,"nodeType":"Block","src":"1807:49:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6866,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"1828:15:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1828:17:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6868,"nodeType":"RevertStatement","src":"1821:24:42"}]}}]},"documentation":{"id":6832,"nodeType":"StructuredDocumentation","src":"621:905:42","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":6872,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"1540:9:42","nodeType":"FunctionDefinition","parameters":{"id":6837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6834,"mutability":"mutable","name":"recipient","nameLocation":"1566:9:42","nodeType":"VariableDeclaration","scope":6872,"src":"1550:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":6833,"name":"address","nodeType":"ElementaryTypeName","src":"1550:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":6836,"mutability":"mutable","name":"amount","nameLocation":"1585:6:42","nodeType":"VariableDeclaration","scope":6872,"src":"1577:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1577:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1549:43:42"},"returnParameters":{"id":6838,"nodeType":"ParameterList","parameters":[],"src":"1602:0:42"},"scope":7068,"src":"1531:331:42","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6888,"nodeType":"Block","src":"2794:62:42","statements":[{"expression":{"arguments":[{"id":6883,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6875,"src":"2833:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6884,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6877,"src":"2841:4:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":6885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6882,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6935,"src":"2811:21:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":6886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2811:38:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6881,"id":6887,"nodeType":"Return","src":"2804:45:42"}]},"documentation":{"id":6873,"nodeType":"StructuredDocumentation","src":"1868:832:42","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason or custom error, it is bubbled\n up by this function (like regular Solidity function calls). However, if\n the call reverted with no returned reason, this function reverts with a\n {FailedInnerCall} error.\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert."},"id":6889,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"2714:12:42","nodeType":"FunctionDefinition","parameters":{"id":6878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6875,"mutability":"mutable","name":"target","nameLocation":"2735:6:42","nodeType":"VariableDeclaration","scope":6889,"src":"2727:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6874,"name":"address","nodeType":"ElementaryTypeName","src":"2727:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6877,"mutability":"mutable","name":"data","nameLocation":"2756:4:42","nodeType":"VariableDeclaration","scope":6889,"src":"2743:17:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6876,"name":"bytes","nodeType":"ElementaryTypeName","src":"2743:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2726:35:42"},"returnParameters":{"id":6881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6889,"src":"2780:12:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6879,"name":"bytes","nodeType":"ElementaryTypeName","src":"2780:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2779:14:42"},"scope":7068,"src":"2705:151:42","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6934,"nodeType":"Block","src":"3293:279:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6903,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3315:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$7068","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$7068","typeString":"library Address"}],"id":6902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3307:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6901,"name":"address","nodeType":"ElementaryTypeName","src":"3307:7:42","typeDescriptions":{}}},"id":6904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3307:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3321:7:42","memberName":"balance","nodeType":"MemberAccess","src":"3307:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6906,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6896,"src":"3331:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3307:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6916,"nodeType":"IfStatement","src":"3303:108:42","trueBody":{"id":6915,"nodeType":"Block","src":"3338:73:42","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":6911,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3394:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$7068","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$7068","typeString":"library Address"}],"id":6910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3386:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6909,"name":"address","nodeType":"ElementaryTypeName","src":"3386:7:42","typeDescriptions":{}}},"id":6912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3386:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6908,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6823,"src":"3359:26:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3359:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6914,"nodeType":"RevertStatement","src":"3352:48:42"}]}},{"assignments":[6918,6920],"declarations":[{"constant":false,"id":6918,"mutability":"mutable","name":"success","nameLocation":"3426:7:42","nodeType":"VariableDeclaration","scope":6934,"src":"3421:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6917,"name":"bool","nodeType":"ElementaryTypeName","src":"3421:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6920,"mutability":"mutable","name":"returndata","nameLocation":"3448:10:42","nodeType":"VariableDeclaration","scope":6934,"src":"3435:23:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6919,"name":"bytes","nodeType":"ElementaryTypeName","src":"3435:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6927,"initialValue":{"arguments":[{"id":6925,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6894,"src":"3488:4:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6921,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6892,"src":"3462:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3469:4:42","memberName":"call","nodeType":"MemberAccess","src":"3462:11:42","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6923,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6896,"src":"3481:5:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3462:25:42","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3462:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3420:73:42"},{"expression":{"arguments":[{"id":6929,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6892,"src":"3537:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6930,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6918,"src":"3545:7:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6931,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6920,"src":"3554:10:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6928,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7027,"src":"3510:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":6932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3510:55:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6900,"id":6933,"nodeType":"Return","src":"3503:62:42"}]},"documentation":{"id":6890,"nodeType":"StructuredDocumentation","src":"2862:313:42","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`."},"id":6935,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"3189:21:42","nodeType":"FunctionDefinition","parameters":{"id":6897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6892,"mutability":"mutable","name":"target","nameLocation":"3219:6:42","nodeType":"VariableDeclaration","scope":6935,"src":"3211:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6891,"name":"address","nodeType":"ElementaryTypeName","src":"3211:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6894,"mutability":"mutable","name":"data","nameLocation":"3240:4:42","nodeType":"VariableDeclaration","scope":6935,"src":"3227:17:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6893,"name":"bytes","nodeType":"ElementaryTypeName","src":"3227:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6896,"mutability":"mutable","name":"value","nameLocation":"3254:5:42","nodeType":"VariableDeclaration","scope":6935,"src":"3246:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6895,"name":"uint256","nodeType":"ElementaryTypeName","src":"3246:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3210:50:42"},"returnParameters":{"id":6900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6899,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6935,"src":"3279:12:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6898,"name":"bytes","nodeType":"ElementaryTypeName","src":"3279:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3278:14:42"},"scope":7068,"src":"3180:392:42","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6960,"nodeType":"Block","src":"3811:154:42","statements":[{"assignments":[6946,6948],"declarations":[{"constant":false,"id":6946,"mutability":"mutable","name":"success","nameLocation":"3827:7:42","nodeType":"VariableDeclaration","scope":6960,"src":"3822:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6945,"name":"bool","nodeType":"ElementaryTypeName","src":"3822:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6948,"mutability":"mutable","name":"returndata","nameLocation":"3849:10:42","nodeType":"VariableDeclaration","scope":6960,"src":"3836:23:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6947,"name":"bytes","nodeType":"ElementaryTypeName","src":"3836:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6953,"initialValue":{"arguments":[{"id":6951,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6940,"src":"3881:4:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6949,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6938,"src":"3863:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3870:10:42","memberName":"staticcall","nodeType":"MemberAccess","src":"3863:17:42","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3863:23:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3821:65:42"},{"expression":{"arguments":[{"id":6955,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6938,"src":"3930:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6956,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6946,"src":"3938:7:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6957,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6948,"src":"3947:10:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6954,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7027,"src":"3903:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":6958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3903:55:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6944,"id":6959,"nodeType":"Return","src":"3896:62:42"}]},"documentation":{"id":6936,"nodeType":"StructuredDocumentation","src":"3578:128:42","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call."},"id":6961,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"3720:18:42","nodeType":"FunctionDefinition","parameters":{"id":6941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6938,"mutability":"mutable","name":"target","nameLocation":"3747:6:42","nodeType":"VariableDeclaration","scope":6961,"src":"3739:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6937,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6940,"mutability":"mutable","name":"data","nameLocation":"3768:4:42","nodeType":"VariableDeclaration","scope":6961,"src":"3755:17:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6939,"name":"bytes","nodeType":"ElementaryTypeName","src":"3755:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3738:35:42"},"returnParameters":{"id":6944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6943,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6961,"src":"3797:12:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6942,"name":"bytes","nodeType":"ElementaryTypeName","src":"3797:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3796:14:42"},"scope":7068,"src":"3711:254:42","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6986,"nodeType":"Block","src":"4203:156:42","statements":[{"assignments":[6972,6974],"declarations":[{"constant":false,"id":6972,"mutability":"mutable","name":"success","nameLocation":"4219:7:42","nodeType":"VariableDeclaration","scope":6986,"src":"4214:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6971,"name":"bool","nodeType":"ElementaryTypeName","src":"4214:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6974,"mutability":"mutable","name":"returndata","nameLocation":"4241:10:42","nodeType":"VariableDeclaration","scope":6986,"src":"4228:23:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6973,"name":"bytes","nodeType":"ElementaryTypeName","src":"4228:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6979,"initialValue":{"arguments":[{"id":6977,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6966,"src":"4275:4:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6975,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"4255:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4262:12:42","memberName":"delegatecall","nodeType":"MemberAccess","src":"4255:19:42","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":6978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4255:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4213:67:42"},{"expression":{"arguments":[{"id":6981,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"4324:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6982,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6972,"src":"4332:7:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6983,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6974,"src":"4341:10:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6980,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7027,"src":"4297:26:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":6984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:55:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6970,"id":6985,"nodeType":"Return","src":"4290:62:42"}]},"documentation":{"id":6962,"nodeType":"StructuredDocumentation","src":"3971:130:42","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call."},"id":6987,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"4115:20:42","nodeType":"FunctionDefinition","parameters":{"id":6967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6964,"mutability":"mutable","name":"target","nameLocation":"4144:6:42","nodeType":"VariableDeclaration","scope":6987,"src":"4136:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6963,"name":"address","nodeType":"ElementaryTypeName","src":"4136:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6966,"mutability":"mutable","name":"data","nameLocation":"4165:4:42","nodeType":"VariableDeclaration","scope":6987,"src":"4152:17:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6965,"name":"bytes","nodeType":"ElementaryTypeName","src":"4152:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4135:35:42"},"returnParameters":{"id":6970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6987,"src":"4189:12:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6968,"name":"bytes","nodeType":"ElementaryTypeName","src":"4189:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4188:14:42"},"scope":7068,"src":"4106:253:42","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7026,"nodeType":"Block","src":"4783:424:42","statements":[{"condition":{"id":7000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4797:8:42","subExpression":{"id":6999,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6992,"src":"4798:7:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7024,"nodeType":"Block","src":"4857:344:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7006,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6994,"src":"5045:10:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5056:6:42","memberName":"length","nodeType":"MemberAccess","src":"5045:17:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5066:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5045:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":7010,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6990,"src":"5071:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5078:4:42","memberName":"code","nodeType":"MemberAccess","src":"5071:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5083:6:42","memberName":"length","nodeType":"MemberAccess","src":"5071:18:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5093:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5071:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5045:49:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7021,"nodeType":"IfStatement","src":"5041:119:42","trueBody":{"id":7020,"nodeType":"Block","src":"5096:64:42","statements":[{"errorCall":{"arguments":[{"id":7017,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6990,"src":"5138:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7016,"name":"AddressEmptyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6828,"src":"5121:16:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":7018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5121:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7019,"nodeType":"RevertStatement","src":"5114:31:42"}]}},{"expression":{"id":7022,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6994,"src":"5180:10:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6998,"id":7023,"nodeType":"Return","src":"5173:17:42"}]},"id":7025,"nodeType":"IfStatement","src":"4793:408:42","trueBody":{"id":7005,"nodeType":"Block","src":"4807:44:42","statements":[{"expression":{"arguments":[{"id":7002,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6994,"src":"4829:10:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7001,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7067,"src":"4821:7:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4821:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7004,"nodeType":"ExpressionStatement","src":"4821:19:42"}]}}]},"documentation":{"id":6988,"nodeType":"StructuredDocumentation","src":"4365:255:42","text":" @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n unsuccessful call."},"id":7027,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"4634:26:42","nodeType":"FunctionDefinition","parameters":{"id":6995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6990,"mutability":"mutable","name":"target","nameLocation":"4678:6:42","nodeType":"VariableDeclaration","scope":7027,"src":"4670:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6989,"name":"address","nodeType":"ElementaryTypeName","src":"4670:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6992,"mutability":"mutable","name":"success","nameLocation":"4699:7:42","nodeType":"VariableDeclaration","scope":7027,"src":"4694:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6991,"name":"bool","nodeType":"ElementaryTypeName","src":"4694:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6994,"mutability":"mutable","name":"returndata","nameLocation":"4729:10:42","nodeType":"VariableDeclaration","scope":7027,"src":"4716:23:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6993,"name":"bytes","nodeType":"ElementaryTypeName","src":"4716:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4660:85:42"},"returnParameters":{"id":6998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7027,"src":"4769:12:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6996,"name":"bytes","nodeType":"ElementaryTypeName","src":"4769:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4768:14:42"},"scope":7068,"src":"4625:582:42","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7048,"nodeType":"Block","src":"5509:122:42","statements":[{"condition":{"id":7038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5523:8:42","subExpression":{"id":7037,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7030,"src":"5524:7:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7046,"nodeType":"Block","src":"5583:42:42","statements":[{"expression":{"id":7044,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7032,"src":"5604:10:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7036,"id":7045,"nodeType":"Return","src":"5597:17:42"}]},"id":7047,"nodeType":"IfStatement","src":"5519:106:42","trueBody":{"id":7043,"nodeType":"Block","src":"5533:44:42","statements":[{"expression":{"arguments":[{"id":7040,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7032,"src":"5555:10:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7039,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7067,"src":"5547:7:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5547:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7042,"nodeType":"ExpressionStatement","src":"5547:19:42"}]}}]},"documentation":{"id":7028,"nodeType":"StructuredDocumentation","src":"5213:189:42","text":" @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n revert reason or with a default {FailedInnerCall} error."},"id":7049,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"5416:16:42","nodeType":"FunctionDefinition","parameters":{"id":7033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7030,"mutability":"mutable","name":"success","nameLocation":"5438:7:42","nodeType":"VariableDeclaration","scope":7049,"src":"5433:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7029,"name":"bool","nodeType":"ElementaryTypeName","src":"5433:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7032,"mutability":"mutable","name":"returndata","nameLocation":"5460:10:42","nodeType":"VariableDeclaration","scope":7049,"src":"5447:23:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7031,"name":"bytes","nodeType":"ElementaryTypeName","src":"5447:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5432:39:42"},"returnParameters":{"id":7036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7049,"src":"5495:12:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7034,"name":"bytes","nodeType":"ElementaryTypeName","src":"5495:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5494:14:42"},"scope":7068,"src":"5407:224:42","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7066,"nodeType":"Block","src":"5798:461:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7055,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7052,"src":"5874:10:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5885:6:42","memberName":"length","nodeType":"MemberAccess","src":"5874:17:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5894:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5874:21:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7064,"nodeType":"Block","src":"6204:49:42","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7061,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"6225:15:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6225:17:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7063,"nodeType":"RevertStatement","src":"6218:24:42"}]},"id":7065,"nodeType":"IfStatement","src":"5870:383:42","trueBody":{"id":7060,"nodeType":"Block","src":"5897:301:42","statements":[{"AST":{"nativeSrc":"6055:133:42","nodeType":"YulBlock","src":"6055:133:42","statements":[{"nativeSrc":"6073:40:42","nodeType":"YulVariableDeclaration","src":"6073:40:42","value":{"arguments":[{"name":"returndata","nativeSrc":"6102:10:42","nodeType":"YulIdentifier","src":"6102:10:42"}],"functionName":{"name":"mload","nativeSrc":"6096:5:42","nodeType":"YulIdentifier","src":"6096:5:42"},"nativeSrc":"6096:17:42","nodeType":"YulFunctionCall","src":"6096:17:42"},"variables":[{"name":"returndata_size","nativeSrc":"6077:15:42","nodeType":"YulTypedName","src":"6077:15:42","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6141:2:42","nodeType":"YulLiteral","src":"6141:2:42","type":"","value":"32"},{"name":"returndata","nativeSrc":"6145:10:42","nodeType":"YulIdentifier","src":"6145:10:42"}],"functionName":{"name":"add","nativeSrc":"6137:3:42","nodeType":"YulIdentifier","src":"6137:3:42"},"nativeSrc":"6137:19:42","nodeType":"YulFunctionCall","src":"6137:19:42"},{"name":"returndata_size","nativeSrc":"6158:15:42","nodeType":"YulIdentifier","src":"6158:15:42"}],"functionName":{"name":"revert","nativeSrc":"6130:6:42","nodeType":"YulIdentifier","src":"6130:6:42"},"nativeSrc":"6130:44:42","nodeType":"YulFunctionCall","src":"6130:44:42"},"nativeSrc":"6130:44:42","nodeType":"YulExpressionStatement","src":"6130:44:42"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":7052,"isOffset":false,"isSlot":false,"src":"6102:10:42","valueSize":1},{"declaration":7052,"isOffset":false,"isSlot":false,"src":"6145:10:42","valueSize":1}],"id":7059,"nodeType":"InlineAssembly","src":"6046:142:42"}]}}]},"documentation":{"id":7050,"nodeType":"StructuredDocumentation","src":"5637:101:42","text":" @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}."},"id":7067,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"5752:7:42","nodeType":"FunctionDefinition","parameters":{"id":7053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7052,"mutability":"mutable","name":"returndata","nameLocation":"5773:10:42","nodeType":"VariableDeclaration","scope":7067,"src":"5760:23:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7051,"name":"bytes","nodeType":"ElementaryTypeName","src":"5760:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5759:25:42"},"returnParameters":{"id":7054,"nodeType":"ParameterList","parameters":[],"src":"5798:0:42"},"scope":7068,"src":"5743:516:42","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":7069,"src":"195:6066:42","usedErrors":[6823,6828,6831],"usedEvents":[]}],"src":"101:6161:42"},"id":42},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[7098]},"id":7099,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7070,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:43"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":7071,"nodeType":"StructuredDocumentation","src":"127:496:43","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":7098,"linearizedBaseContracts":[7098],"name":"Context","nameLocation":"642:7:43","nodeType":"ContractDefinition","nodes":[{"body":{"id":7079,"nodeType":"Block","src":"718:34:43","statements":[{"expression":{"expression":{"id":7076,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:43","memberName":"sender","nodeType":"MemberAccess","src":"735:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7075,"id":7078,"nodeType":"Return","src":"728:17:43"}]},"id":7080,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:43","nodeType":"FunctionDefinition","parameters":{"id":7072,"nodeType":"ParameterList","parameters":[],"src":"675:2:43"},"returnParameters":{"id":7075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7080,"src":"709:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7073,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:43"},"scope":7098,"src":"656:96:43","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7088,"nodeType":"Block","src":"825:32:43","statements":[{"expression":{"expression":{"id":7085,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:43","memberName":"data","nodeType":"MemberAccess","src":"842:8:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":7084,"id":7087,"nodeType":"Return","src":"835:15:43"}]},"id":7089,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:43","nodeType":"FunctionDefinition","parameters":{"id":7081,"nodeType":"ParameterList","parameters":[],"src":"775:2:43"},"returnParameters":{"id":7084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7083,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7089,"src":"809:14:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7082,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:43"},"scope":7098,"src":"758:99:43","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7096,"nodeType":"Block","src":"935:25:43","statements":[{"expression":{"hexValue":"30","id":7094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":7093,"id":7095,"nodeType":"Return","src":"945:8:43"}]},"id":7097,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:43","nodeType":"FunctionDefinition","parameters":{"id":7090,"nodeType":"ParameterList","parameters":[],"src":"892:2:43"},"returnParameters":{"id":7093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7097,"src":"926:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7091,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:43"},"scope":7098,"src":"863:97:43","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":7099,"src":"624:338:43","usedErrors":[],"usedEvents":[]}],"src":"101:862:43"},"id":43},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[8443],"SignedMath":[10303],"Strings":[7353]},"id":7354,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7100,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:44"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":7102,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7354,"sourceUnit":8444,"src":"127:37:44","symbolAliases":[{"foreign":{"id":7101,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8443,"src":"135:4:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":7104,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7354,"sourceUnit":10304,"src":"165:49:44","symbolAliases":[{"foreign":{"id":7103,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10303,"src":"173:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":7105,"nodeType":"StructuredDocumentation","src":"216:34:44","text":" @dev String operations."},"fullyImplemented":true,"id":7353,"linearizedBaseContracts":[7353],"name":"Strings","nameLocation":"259:7:44","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":7108,"mutability":"constant","name":"HEX_DIGITS","nameLocation":"298:10:44","nodeType":"VariableDeclaration","scope":7353,"src":"273:56:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":7106,"name":"bytes16","nodeType":"ElementaryTypeName","src":"273:7:44","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":7107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"311:18:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":7111,"mutability":"constant","name":"ADDRESS_LENGTH","nameLocation":"358:14:44","nodeType":"VariableDeclaration","scope":7353,"src":"335:42:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7109,"name":"uint8","nodeType":"ElementaryTypeName","src":"335:5:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":7110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"375:2:44","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"documentation":{"id":7112,"nodeType":"StructuredDocumentation","src":"384:81:44","text":" @dev The `value` string doesn't fit in the specified `length`."},"errorSelector":"e22e27eb","id":7118,"name":"StringsInsufficientHexLength","nameLocation":"476:28:44","nodeType":"ErrorDefinition","parameters":{"id":7117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7114,"mutability":"mutable","name":"value","nameLocation":"513:5:44","nodeType":"VariableDeclaration","scope":7118,"src":"505:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7113,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7116,"mutability":"mutable","name":"length","nameLocation":"528:6:44","nodeType":"VariableDeclaration","scope":7118,"src":"520:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7115,"name":"uint256","nodeType":"ElementaryTypeName","src":"520:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"504:31:44"},"src":"470:66:44"},{"body":{"id":7165,"nodeType":"Block","src":"708:627:44","statements":[{"id":7164,"nodeType":"UncheckedBlock","src":"718:611:44","statements":[{"assignments":[7127],"declarations":[{"constant":false,"id":7127,"mutability":"mutable","name":"length","nameLocation":"750:6:44","nodeType":"VariableDeclaration","scope":7164,"src":"742:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7126,"name":"uint256","nodeType":"ElementaryTypeName","src":"742:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7134,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7130,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7121,"src":"770:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7128,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8443,"src":"759:4:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8443_$","typeString":"type(library Math)"}},"id":7129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"764:5:44","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":8263,"src":"759:10:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"759:17:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"759:21:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"742:38:44"},{"assignments":[7136],"declarations":[{"constant":false,"id":7136,"mutability":"mutable","name":"buffer","nameLocation":"808:6:44","nodeType":"VariableDeclaration","scope":7164,"src":"794:20:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7135,"name":"string","nodeType":"ElementaryTypeName","src":"794:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":7141,"initialValue":{"arguments":[{"id":7139,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7127,"src":"828:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"817:10:44","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":7137,"name":"string","nodeType":"ElementaryTypeName","src":"821:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":7140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"794:41:44"},{"assignments":[7143],"declarations":[{"constant":false,"id":7143,"mutability":"mutable","name":"ptr","nameLocation":"857:3:44","nodeType":"VariableDeclaration","scope":7164,"src":"849:11:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7142,"name":"uint256","nodeType":"ElementaryTypeName","src":"849:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7144,"nodeType":"VariableDeclarationStatement","src":"849:11:44"},{"AST":{"nativeSrc":"930:67:44","nodeType":"YulBlock","src":"930:67:44","statements":[{"nativeSrc":"948:35:44","nodeType":"YulAssignment","src":"948:35:44","value":{"arguments":[{"name":"buffer","nativeSrc":"959:6:44","nodeType":"YulIdentifier","src":"959:6:44"},{"arguments":[{"kind":"number","nativeSrc":"971:2:44","nodeType":"YulLiteral","src":"971:2:44","type":"","value":"32"},{"name":"length","nativeSrc":"975:6:44","nodeType":"YulIdentifier","src":"975:6:44"}],"functionName":{"name":"add","nativeSrc":"967:3:44","nodeType":"YulIdentifier","src":"967:3:44"},"nativeSrc":"967:15:44","nodeType":"YulFunctionCall","src":"967:15:44"}],"functionName":{"name":"add","nativeSrc":"955:3:44","nodeType":"YulIdentifier","src":"955:3:44"},"nativeSrc":"955:28:44","nodeType":"YulFunctionCall","src":"955:28:44"},"variableNames":[{"name":"ptr","nativeSrc":"948:3:44","nodeType":"YulIdentifier","src":"948:3:44"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":7136,"isOffset":false,"isSlot":false,"src":"959:6:44","valueSize":1},{"declaration":7127,"isOffset":false,"isSlot":false,"src":"975:6:44","valueSize":1},{"declaration":7143,"isOffset":false,"isSlot":false,"src":"948:3:44","valueSize":1}],"id":7145,"nodeType":"InlineAssembly","src":"921:76:44"},{"body":{"id":7160,"nodeType":"Block","src":"1023:269:44","statements":[{"expression":{"id":7148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"1041:5:44","subExpression":{"id":7147,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7143,"src":"1041:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7149,"nodeType":"ExpressionStatement","src":"1041:5:44"},{"AST":{"nativeSrc":"1124:86:44","nodeType":"YulBlock","src":"1124:86:44","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"1154:3:44","nodeType":"YulIdentifier","src":"1154:3:44"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:44","nodeType":"YulIdentifier","src":"1168:5:44"},{"kind":"number","nativeSrc":"1175:2:44","nodeType":"YulLiteral","src":"1175:2:44","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"1164:3:44","nodeType":"YulIdentifier","src":"1164:3:44"},"nativeSrc":"1164:14:44","nodeType":"YulFunctionCall","src":"1164:14:44"},{"name":"HEX_DIGITS","nativeSrc":"1180:10:44","nodeType":"YulIdentifier","src":"1180:10:44"}],"functionName":{"name":"byte","nativeSrc":"1159:4:44","nodeType":"YulIdentifier","src":"1159:4:44"},"nativeSrc":"1159:32:44","nodeType":"YulFunctionCall","src":"1159:32:44"}],"functionName":{"name":"mstore8","nativeSrc":"1146:7:44","nodeType":"YulIdentifier","src":"1146:7:44"},"nativeSrc":"1146:46:44","nodeType":"YulFunctionCall","src":"1146:46:44"},"nativeSrc":"1146:46:44","nodeType":"YulExpressionStatement","src":"1146:46:44"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":7108,"isOffset":false,"isSlot":false,"src":"1180:10:44","valueSize":1},{"declaration":7143,"isOffset":false,"isSlot":false,"src":"1154:3:44","valueSize":1},{"declaration":7121,"isOffset":false,"isSlot":false,"src":"1168:5:44","valueSize":1}],"id":7150,"nodeType":"InlineAssembly","src":"1115:95:44"},{"expression":{"id":7153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7151,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7121,"src":"1227:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":7152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1236:2:44","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1227:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7154,"nodeType":"ExpressionStatement","src":"1227:11:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7155,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7121,"src":"1260:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1269:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1260:10:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7159,"nodeType":"IfStatement","src":"1256:21:44","trueBody":{"id":7158,"nodeType":"Break","src":"1272:5:44"}}]},"condition":{"hexValue":"74727565","id":7146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1017:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":7161,"nodeType":"WhileStatement","src":"1010:282:44"},{"expression":{"id":7162,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"1312:6:44","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7125,"id":7163,"nodeType":"Return","src":"1305:13:44"}]}]},"documentation":{"id":7119,"nodeType":"StructuredDocumentation","src":"542:90:44","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":7166,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"646:8:44","nodeType":"FunctionDefinition","parameters":{"id":7122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7121,"mutability":"mutable","name":"value","nameLocation":"663:5:44","nodeType":"VariableDeclaration","scope":7166,"src":"655:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7120,"name":"uint256","nodeType":"ElementaryTypeName","src":"655:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"654:15:44"},"returnParameters":{"id":7125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7166,"src":"693:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7123,"name":"string","nodeType":"ElementaryTypeName","src":"693:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"692:15:44"},"scope":7353,"src":"637:698:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7191,"nodeType":"Block","src":"1511:92:44","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7169,"src":"1542:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":7178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1550:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1542:9:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":7181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1560:2:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":7182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1542:20:44","trueExpression":{"hexValue":"2d","id":7180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1554:3:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":7186,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7169,"src":"1588:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":7184,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10303,"src":"1573:10:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$10303_$","typeString":"type(library SignedMath)"}},"id":7185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1584:3:44","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":10302,"src":"1573:14:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1573:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7183,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7166,"src":"1564:8:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":7188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1564:31:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1528:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7174,"name":"string","nodeType":"ElementaryTypeName","src":"1528:6:44","typeDescriptions":{}}},"id":7176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1535:6:44","memberName":"concat","nodeType":"MemberAccess","src":"1528:13:44","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":7189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1528:68:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7173,"id":7190,"nodeType":"Return","src":"1521:75:44"}]},"documentation":{"id":7167,"nodeType":"StructuredDocumentation","src":"1341:89:44","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":7192,"implemented":true,"kind":"function","modifiers":[],"name":"toStringSigned","nameLocation":"1444:14:44","nodeType":"FunctionDefinition","parameters":{"id":7170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7169,"mutability":"mutable","name":"value","nameLocation":"1466:5:44","nodeType":"VariableDeclaration","scope":7192,"src":"1459:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7168,"name":"int256","nodeType":"ElementaryTypeName","src":"1459:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1458:14:44"},"returnParameters":{"id":7173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7192,"src":"1496:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7171,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1495:15:44"},"scope":7353,"src":"1435:168:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7211,"nodeType":"Block","src":"1782:100:44","statements":[{"id":7210,"nodeType":"UncheckedBlock","src":"1792:84:44","statements":[{"expression":{"arguments":[{"id":7201,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"1835:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7204,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"1854:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7202,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8443,"src":"1842:4:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8443_$","typeString":"type(library Math)"}},"id":7203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1847:6:44","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":8385,"src":"1842:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1842:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1863:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1842:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7200,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[7212,7295,7315],"referencedDeclaration":7295,"src":"1823:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":7208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1823:42:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7199,"id":7209,"nodeType":"Return","src":"1816:49:44"}]}]},"documentation":{"id":7193,"nodeType":"StructuredDocumentation","src":"1609:94:44","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":7212,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1717:11:44","nodeType":"FunctionDefinition","parameters":{"id":7196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7195,"mutability":"mutable","name":"value","nameLocation":"1737:5:44","nodeType":"VariableDeclaration","scope":7212,"src":"1729:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7194,"name":"uint256","nodeType":"ElementaryTypeName","src":"1729:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1728:15:44"},"returnParameters":{"id":7199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7212,"src":"1767:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7197,"name":"string","nodeType":"ElementaryTypeName","src":"1767:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1766:15:44"},"scope":7353,"src":"1708:174:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7294,"nodeType":"Block","src":"2095:435:44","statements":[{"assignments":[7223],"declarations":[{"constant":false,"id":7223,"mutability":"mutable","name":"localValue","nameLocation":"2113:10:44","nodeType":"VariableDeclaration","scope":7294,"src":"2105:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7222,"name":"uint256","nodeType":"ElementaryTypeName","src":"2105:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7225,"initialValue":{"id":7224,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7215,"src":"2126:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2105:26:44"},{"assignments":[7227],"declarations":[{"constant":false,"id":7227,"mutability":"mutable","name":"buffer","nameLocation":"2154:6:44","nodeType":"VariableDeclaration","scope":7294,"src":"2141:19:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7226,"name":"bytes","nodeType":"ElementaryTypeName","src":"2141:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7236,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2173:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7231,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7217,"src":"2177:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2173:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":7233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2186:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2173:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2163:9:44","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":7228,"name":"bytes","nodeType":"ElementaryTypeName","src":"2167:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":7235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2141:47:44"},{"expression":{"id":7241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7237,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7227,"src":"2198:6:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7239,"indexExpression":{"hexValue":"30","id":7238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2205:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2198:9:44","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":7240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2210:3:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"2198:15:44","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7242,"nodeType":"ExpressionStatement","src":"2198:15:44"},{"expression":{"id":7247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7243,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7227,"src":"2223:6:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7245,"indexExpression":{"hexValue":"31","id":7244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2230:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2223:9:44","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":7246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2235:3:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2223:15:44","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7248,"nodeType":"ExpressionStatement","src":"2223:15:44"},{"body":{"id":7277,"nodeType":"Block","src":"2293:95:44","statements":[{"expression":{"id":7271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7263,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7227,"src":"2307:6:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7265,"indexExpression":{"id":7264,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7250,"src":"2314:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2307:9:44","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7266,"name":"HEX_DIGITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7108,"src":"2319:10:44","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":7270,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7267,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"2330:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":7268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2343:3:44","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2330:16:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2319:28:44","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2307:40:44","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7272,"nodeType":"ExpressionStatement","src":"2307:40:44"},{"expression":{"id":7275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7273,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"2361:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":7274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2376:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2361:16:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7276,"nodeType":"ExpressionStatement","src":"2361:16:44"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7257,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7250,"src":"2281:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":7258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2285:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2281:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7278,"initializationExpression":{"assignments":[7250],"declarations":[{"constant":false,"id":7250,"mutability":"mutable","name":"i","nameLocation":"2261:1:44","nodeType":"VariableDeclaration","scope":7278,"src":"2253:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7249,"name":"uint256","nodeType":"ElementaryTypeName","src":"2253:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7256,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2265:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7252,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7217,"src":"2269:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2265:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2278:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2265:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2253:26:44"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":7261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2288:3:44","subExpression":{"id":7260,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7250,"src":"2290:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7262,"nodeType":"ExpressionStatement","src":"2288:3:44"},"nodeType":"ForStatement","src":"2248:140:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7279,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"2401:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2415:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2401:15:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7288,"nodeType":"IfStatement","src":"2397:96:44","trueBody":{"id":7287,"nodeType":"Block","src":"2418:75:44","statements":[{"errorCall":{"arguments":[{"id":7283,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7215,"src":"2468:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7284,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7217,"src":"2475:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7282,"name":"StringsInsufficientHexLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7118,"src":"2439:28:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":7285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2439:43:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7286,"nodeType":"RevertStatement","src":"2432:50:44"}]}},{"expression":{"arguments":[{"id":7291,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7227,"src":"2516:6:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7289,"name":"string","nodeType":"ElementaryTypeName","src":"2509:6:44","typeDescriptions":{}}},"id":7292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:14:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7221,"id":7293,"nodeType":"Return","src":"2502:21:44"}]},"documentation":{"id":7213,"nodeType":"StructuredDocumentation","src":"1888:112:44","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":7295,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2014:11:44","nodeType":"FunctionDefinition","parameters":{"id":7218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7215,"mutability":"mutable","name":"value","nameLocation":"2034:5:44","nodeType":"VariableDeclaration","scope":7295,"src":"2026:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7214,"name":"uint256","nodeType":"ElementaryTypeName","src":"2026:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7217,"mutability":"mutable","name":"length","nameLocation":"2049:6:44","nodeType":"VariableDeclaration","scope":7295,"src":"2041:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7216,"name":"uint256","nodeType":"ElementaryTypeName","src":"2041:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2025:31:44"},"returnParameters":{"id":7221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7295,"src":"2080:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7219,"name":"string","nodeType":"ElementaryTypeName","src":"2080:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2079:15:44"},"scope":7353,"src":"2005:525:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7314,"nodeType":"Block","src":"2762:75:44","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":7308,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7298,"src":"2807:4:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2799:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7306,"name":"uint160","nodeType":"ElementaryTypeName","src":"2799:7:44","typeDescriptions":{}}},"id":7309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2799:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":7305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7304,"name":"uint256","nodeType":"ElementaryTypeName","src":"2791:7:44","typeDescriptions":{}}},"id":7310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:22:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7311,"name":"ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"2815:14:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":7303,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[7212,7295,7315],"referencedDeclaration":7295,"src":"2779:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":7312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:51:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7302,"id":7313,"nodeType":"Return","src":"2772:58:44"}]},"documentation":{"id":7296,"nodeType":"StructuredDocumentation","src":"2536:148:44","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation."},"id":7315,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2698:11:44","nodeType":"FunctionDefinition","parameters":{"id":7299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7298,"mutability":"mutable","name":"addr","nameLocation":"2718:4:44","nodeType":"VariableDeclaration","scope":7315,"src":"2710:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7297,"name":"address","nodeType":"ElementaryTypeName","src":"2710:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2709:14:44"},"returnParameters":{"id":7302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7315,"src":"2747:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7300,"name":"string","nodeType":"ElementaryTypeName","src":"2747:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2746:15:44"},"scope":7353,"src":"2689:148:44","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7351,"nodeType":"Block","src":"2992:104:44","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7327,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"3015:1:44","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3009:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7325,"name":"bytes","nodeType":"ElementaryTypeName","src":"3009:5:44","typeDescriptions":{}}},"id":7328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3009:8:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3018:6:44","memberName":"length","nodeType":"MemberAccess","src":"3009:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":7332,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"3034:1:44","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3028:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7330,"name":"bytes","nodeType":"ElementaryTypeName","src":"3028:5:44","typeDescriptions":{}}},"id":7333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3028:8:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3037:6:44","memberName":"length","nodeType":"MemberAccess","src":"3028:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3009:34:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":7339,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"3063:1:44","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3057:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7337,"name":"bytes","nodeType":"ElementaryTypeName","src":"3057:5:44","typeDescriptions":{}}},"id":7340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3057:8:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7336,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3047:9:44","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3047:19:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":7345,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"3086:1:44","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3080:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7343,"name":"bytes","nodeType":"ElementaryTypeName","src":"3080:5:44","typeDescriptions":{}}},"id":7346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3080:8:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7342,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3070:9:44","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3070:19:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3047:42:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3009:80:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7324,"id":7350,"nodeType":"Return","src":"3002:87:44"}]},"documentation":{"id":7316,"nodeType":"StructuredDocumentation","src":"2843:66:44","text":" @dev Returns true if the two strings are equal."},"id":7352,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2923:5:44","nodeType":"FunctionDefinition","parameters":{"id":7321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7318,"mutability":"mutable","name":"a","nameLocation":"2943:1:44","nodeType":"VariableDeclaration","scope":7352,"src":"2929:15:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7317,"name":"string","nodeType":"ElementaryTypeName","src":"2929:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7320,"mutability":"mutable","name":"b","nameLocation":"2960:1:44","nodeType":"VariableDeclaration","scope":7352,"src":"2946:15:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7319,"name":"string","nodeType":"ElementaryTypeName","src":"2946:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2928:34:44"},"returnParameters":{"id":7324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7323,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7352,"src":"2986:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7322,"name":"bool","nodeType":"ElementaryTypeName","src":"2986:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2985:6:44"},"scope":7353,"src":"2914:182:44","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":7354,"src":"251:2847:44","usedErrors":[7118],"usedEvents":[]}],"src":"101:2998:44"},"id":44},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[7377],"IERC165":[7389]},"id":7378,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7355,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:45"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":7357,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7378,"sourceUnit":7390,"src":"140:38:45","symbolAliases":[{"foreign":{"id":7356,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7389,"src":"148:7:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7359,"name":"IERC165","nameLocations":["687:7:45"],"nodeType":"IdentifierPath","referencedDeclaration":7389,"src":"687:7:45"},"id":7360,"nodeType":"InheritanceSpecifier","src":"687:7:45"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":7358,"nodeType":"StructuredDocumentation","src":"180:478:45","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"},"fullyImplemented":true,"id":7377,"linearizedBaseContracts":[7377,7389],"name":"ERC165","nameLocation":"677:6:45","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[7388],"body":{"id":7375,"nodeType":"Block","src":"844:64:45","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":7373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7368,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"861:11:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":7370,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7389,"src":"881:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$7389_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$7389_$","typeString":"type(contract IERC165)"}],"id":7369,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"876:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"876:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$7389","typeString":"type(contract IERC165)"}},"id":7372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"890:11:45","memberName":"interfaceId","nodeType":"MemberAccess","src":"876:25:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"861:40:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7367,"id":7374,"nodeType":"Return","src":"854:47:45"}]},"documentation":{"id":7361,"nodeType":"StructuredDocumentation","src":"701:56:45","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":7376,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"771:17:45","nodeType":"FunctionDefinition","parameters":{"id":7364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7363,"mutability":"mutable","name":"interfaceId","nameLocation":"796:11:45","nodeType":"VariableDeclaration","scope":7376,"src":"789:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7362,"name":"bytes4","nodeType":"ElementaryTypeName","src":"789:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"788:20:45"},"returnParameters":{"id":7367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7376,"src":"838:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7365,"name":"bool","nodeType":"ElementaryTypeName","src":"838:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"837:6:45"},"scope":7377,"src":"762:146:45","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":7378,"src":"659:251:45","usedErrors":[],"usedEvents":[]}],"src":"114:797:45"},"id":45},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[7389]},"id":7390,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7379,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:46"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":7380,"nodeType":"StructuredDocumentation","src":"141:279:46","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":7389,"linearizedBaseContracts":[7389],"name":"IERC165","nameLocation":"431:7:46","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7381,"nodeType":"StructuredDocumentation","src":"445:340:46","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":7388,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"799:17:46","nodeType":"FunctionDefinition","parameters":{"id":7384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7383,"mutability":"mutable","name":"interfaceId","nameLocation":"824:11:46","nodeType":"VariableDeclaration","scope":7388,"src":"817:18:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7382,"name":"bytes4","nodeType":"ElementaryTypeName","src":"817:6:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"816:20:46"},"returnParameters":{"id":7387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7388,"src":"860:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7385,"name":"bool","nodeType":"ElementaryTypeName","src":"860:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"859:6:46"},"scope":7389,"src":"790:76:46","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7390,"src":"421:447:46","usedErrors":[],"usedEvents":[]}],"src":"115:754:46"},"id":46},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[8443]},"id":8444,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7391,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"103:24:47"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":7392,"nodeType":"StructuredDocumentation","src":"129:73:47","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":8443,"linearizedBaseContracts":[8443],"name":"Math","nameLocation":"211:4:47","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7393,"nodeType":"StructuredDocumentation","src":"222:50:47","text":" @dev Muldiv operation overflow."},"errorSelector":"227bc153","id":7395,"name":"MathOverflowedMulDiv","nameLocation":"283:20:47","nodeType":"ErrorDefinition","parameters":{"id":7394,"nodeType":"ParameterList","parameters":[],"src":"303:2:47"},"src":"277:29:47"},{"canonicalName":"Math.Rounding","id":7400,"members":[{"id":7396,"name":"Floor","nameLocation":"336:5:47","nodeType":"EnumValue","src":"336:5:47"},{"id":7397,"name":"Ceil","nameLocation":"379:4:47","nodeType":"EnumValue","src":"379:4:47"},{"id":7398,"name":"Trunc","nameLocation":"421:5:47","nodeType":"EnumValue","src":"421:5:47"},{"id":7399,"name":"Expand","nameLocation":"451:6:47","nodeType":"EnumValue","src":"451:6:47"}],"name":"Rounding","nameLocation":"317:8:47","nodeType":"EnumDefinition","src":"312:169:47"},{"body":{"id":7431,"nodeType":"Block","src":"661:140:47","statements":[{"id":7430,"nodeType":"UncheckedBlock","src":"671:124:47","statements":[{"assignments":[7413],"declarations":[{"constant":false,"id":7413,"mutability":"mutable","name":"c","nameLocation":"703:1:47","nodeType":"VariableDeclaration","scope":7430,"src":"695:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7412,"name":"uint256","nodeType":"ElementaryTypeName","src":"695:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7417,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7414,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7403,"src":"707:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7415,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7405,"src":"711:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"707:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"695:17:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7418,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"730:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7419,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7403,"src":"734:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"730:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7425,"nodeType":"IfStatement","src":"726:28:47","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":7421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"745:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":7422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"752:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7423,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"744:10:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":7411,"id":7424,"nodeType":"Return","src":"737:17:47"}},{"expression":{"components":[{"hexValue":"74727565","id":7426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"776:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":7427,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"782:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7428,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"775:9:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":7411,"id":7429,"nodeType":"Return","src":"768:16:47"}]}]},"documentation":{"id":7401,"nodeType":"StructuredDocumentation","src":"487:93:47","text":" @dev Returns the addition of two unsigned integers, with an overflow flag."},"id":7432,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"594:6:47","nodeType":"FunctionDefinition","parameters":{"id":7406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7403,"mutability":"mutable","name":"a","nameLocation":"609:1:47","nodeType":"VariableDeclaration","scope":7432,"src":"601:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7402,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7405,"mutability":"mutable","name":"b","nameLocation":"620:1:47","nodeType":"VariableDeclaration","scope":7432,"src":"612:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7404,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:47"},"returnParameters":{"id":7411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7432,"src":"646:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7407,"name":"bool","nodeType":"ElementaryTypeName","src":"646:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7432,"src":"652:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7409,"name":"uint256","nodeType":"ElementaryTypeName","src":"652:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:15:47"},"scope":8443,"src":"585:216:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7459,"nodeType":"Block","src":"984:113:47","statements":[{"id":7458,"nodeType":"UncheckedBlock","src":"994:97:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7444,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7437,"src":"1022:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7445,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7435,"src":"1026:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1022:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7451,"nodeType":"IfStatement","src":"1018:28:47","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":7447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1037:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":7448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7449,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1036:10:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":7443,"id":7450,"nodeType":"Return","src":"1029:17:47"}},{"expression":{"components":[{"hexValue":"74727565","id":7452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1068:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7453,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7435,"src":"1074:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7454,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7437,"src":"1078:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1074:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7456,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1067:13:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":7443,"id":7457,"nodeType":"Return","src":"1060:20:47"}]}]},"documentation":{"id":7433,"nodeType":"StructuredDocumentation","src":"807:96:47","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag."},"id":7460,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"917:6:47","nodeType":"FunctionDefinition","parameters":{"id":7438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7435,"mutability":"mutable","name":"a","nameLocation":"932:1:47","nodeType":"VariableDeclaration","scope":7460,"src":"924:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7434,"name":"uint256","nodeType":"ElementaryTypeName","src":"924:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7437,"mutability":"mutable","name":"b","nameLocation":"943:1:47","nodeType":"VariableDeclaration","scope":7460,"src":"935:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7436,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"923:22:47"},"returnParameters":{"id":7443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7460,"src":"969:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7439,"name":"bool","nodeType":"ElementaryTypeName","src":"969:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7442,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7460,"src":"975:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7441,"name":"uint256","nodeType":"ElementaryTypeName","src":"975:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"968:15:47"},"scope":8443,"src":"908:189:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7501,"nodeType":"Block","src":"1283:417:47","statements":[{"id":7500,"nodeType":"UncheckedBlock","src":"1293:401:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7472,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"1551:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1556:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1551:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7479,"nodeType":"IfStatement","src":"1547:28:47","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":7475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1567:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":7476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1573:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1566:9:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":7471,"id":7478,"nodeType":"Return","src":"1559:16:47"}},{"assignments":[7481],"declarations":[{"constant":false,"id":7481,"mutability":"mutable","name":"c","nameLocation":"1597:1:47","nodeType":"VariableDeclaration","scope":7500,"src":"1589:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7480,"name":"uint256","nodeType":"ElementaryTypeName","src":"1589:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7485,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7482,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"1601:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7483,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7465,"src":"1605:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1601:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1589:17:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7486,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7481,"src":"1624:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7487,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"1628:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1624:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7489,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7465,"src":"1633:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1624:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7495,"nodeType":"IfStatement","src":"1620:33:47","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":7491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1644:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":7492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1651:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1643:10:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":7471,"id":7494,"nodeType":"Return","src":"1636:17:47"}},{"expression":{"components":[{"hexValue":"74727565","id":7496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1675:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":7497,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7481,"src":"1681:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7498,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1674:9:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":7471,"id":7499,"nodeType":"Return","src":"1667:16:47"}]}]},"documentation":{"id":7461,"nodeType":"StructuredDocumentation","src":"1103:99:47","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag."},"id":7502,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1216:6:47","nodeType":"FunctionDefinition","parameters":{"id":7466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7463,"mutability":"mutable","name":"a","nameLocation":"1231:1:47","nodeType":"VariableDeclaration","scope":7502,"src":"1223:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7462,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7465,"mutability":"mutable","name":"b","nameLocation":"1242:1:47","nodeType":"VariableDeclaration","scope":7502,"src":"1234:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7464,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:22:47"},"returnParameters":{"id":7471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7502,"src":"1268:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7467,"name":"bool","nodeType":"ElementaryTypeName","src":"1268:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7470,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7502,"src":"1274:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7469,"name":"uint256","nodeType":"ElementaryTypeName","src":"1274:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1267:15:47"},"scope":8443,"src":"1207:493:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7529,"nodeType":"Block","src":"1887:114:47","statements":[{"id":7528,"nodeType":"UncheckedBlock","src":"1897:98:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7514,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7507,"src":"1925:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1930:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1925:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7521,"nodeType":"IfStatement","src":"1921:29:47","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":7517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1941:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":7518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1948:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7519,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1940:10:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":7513,"id":7520,"nodeType":"Return","src":"1933:17:47"}},{"expression":{"components":[{"hexValue":"74727565","id":7522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1972:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7523,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7505,"src":"1978:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7524,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7507,"src":"1982:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1978:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7526,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1971:13:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":7513,"id":7527,"nodeType":"Return","src":"1964:20:47"}]}]},"documentation":{"id":7503,"nodeType":"StructuredDocumentation","src":"1706:100:47","text":" @dev Returns the division of two unsigned integers, with a division by zero flag."},"id":7530,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1820:6:47","nodeType":"FunctionDefinition","parameters":{"id":7508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7505,"mutability":"mutable","name":"a","nameLocation":"1835:1:47","nodeType":"VariableDeclaration","scope":7530,"src":"1827:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7504,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7507,"mutability":"mutable","name":"b","nameLocation":"1846:1:47","nodeType":"VariableDeclaration","scope":7530,"src":"1838:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7506,"name":"uint256","nodeType":"ElementaryTypeName","src":"1838:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1826:22:47"},"returnParameters":{"id":7513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7510,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7530,"src":"1872:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7509,"name":"bool","nodeType":"ElementaryTypeName","src":"1872:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7530,"src":"1878:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7511,"name":"uint256","nodeType":"ElementaryTypeName","src":"1878:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1871:15:47"},"scope":8443,"src":"1811:190:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7557,"nodeType":"Block","src":"2198:114:47","statements":[{"id":7556,"nodeType":"UncheckedBlock","src":"2208:98:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7542,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7535,"src":"2236:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2241:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2236:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7549,"nodeType":"IfStatement","src":"2232:29:47","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":7545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2252:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":7546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2259:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7547,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2251:10:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":7541,"id":7548,"nodeType":"Return","src":"2244:17:47"}},{"expression":{"components":[{"hexValue":"74727565","id":7550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2283:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7551,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7533,"src":"2289:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":7552,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7535,"src":"2293:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2289:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7554,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2282:13:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":7541,"id":7555,"nodeType":"Return","src":"2275:20:47"}]}]},"documentation":{"id":7531,"nodeType":"StructuredDocumentation","src":"2007:110:47","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag."},"id":7558,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2131:6:47","nodeType":"FunctionDefinition","parameters":{"id":7536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7533,"mutability":"mutable","name":"a","nameLocation":"2146:1:47","nodeType":"VariableDeclaration","scope":7558,"src":"2138:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7532,"name":"uint256","nodeType":"ElementaryTypeName","src":"2138:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7535,"mutability":"mutable","name":"b","nameLocation":"2157:1:47","nodeType":"VariableDeclaration","scope":7558,"src":"2149:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7534,"name":"uint256","nodeType":"ElementaryTypeName","src":"2149:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2137:22:47"},"returnParameters":{"id":7541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7558,"src":"2183:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7537,"name":"bool","nodeType":"ElementaryTypeName","src":"2183:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7558,"src":"2189:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7539,"name":"uint256","nodeType":"ElementaryTypeName","src":"2189:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2182:15:47"},"scope":8443,"src":"2122:190:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7575,"nodeType":"Block","src":"2449:37:47","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7568,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"2466:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7569,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7563,"src":"2470:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2466:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":7572,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7563,"src":"2478:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2466:13:47","trueExpression":{"id":7571,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"2474:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7567,"id":7574,"nodeType":"Return","src":"2459:20:47"}]},"documentation":{"id":7559,"nodeType":"StructuredDocumentation","src":"2318:59:47","text":" @dev Returns the largest of two numbers."},"id":7576,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"2391:3:47","nodeType":"FunctionDefinition","parameters":{"id":7564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7561,"mutability":"mutable","name":"a","nameLocation":"2403:1:47","nodeType":"VariableDeclaration","scope":7576,"src":"2395:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7560,"name":"uint256","nodeType":"ElementaryTypeName","src":"2395:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7563,"mutability":"mutable","name":"b","nameLocation":"2414:1:47","nodeType":"VariableDeclaration","scope":7576,"src":"2406:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7562,"name":"uint256","nodeType":"ElementaryTypeName","src":"2406:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2394:22:47"},"returnParameters":{"id":7567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7566,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7576,"src":"2440:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2440:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2439:9:47"},"scope":8443,"src":"2382:104:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7593,"nodeType":"Block","src":"2624:37:47","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7586,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7579,"src":"2641:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7587,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7581,"src":"2645:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2641:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":7590,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7581,"src":"2653:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2641:13:47","trueExpression":{"id":7589,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7579,"src":"2649:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7585,"id":7592,"nodeType":"Return","src":"2634:20:47"}]},"documentation":{"id":7577,"nodeType":"StructuredDocumentation","src":"2492:60:47","text":" @dev Returns the smallest of two numbers."},"id":7594,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"2566:3:47","nodeType":"FunctionDefinition","parameters":{"id":7582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7579,"mutability":"mutable","name":"a","nameLocation":"2578:1:47","nodeType":"VariableDeclaration","scope":7594,"src":"2570:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7578,"name":"uint256","nodeType":"ElementaryTypeName","src":"2570:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7581,"mutability":"mutable","name":"b","nameLocation":"2589:1:47","nodeType":"VariableDeclaration","scope":7594,"src":"2581:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7580,"name":"uint256","nodeType":"ElementaryTypeName","src":"2581:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2569:22:47"},"returnParameters":{"id":7585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7594,"src":"2615:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7583,"name":"uint256","nodeType":"ElementaryTypeName","src":"2615:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2614:9:47"},"scope":8443,"src":"2557:104:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7616,"nodeType":"Block","src":"2845:82:47","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7604,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7597,"src":"2900:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":7605,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7599,"src":"2904:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2900:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7607,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2899:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7608,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7597,"src":"2910:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":7609,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7599,"src":"2914:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2910:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7611,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2909:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":7612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2919:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2909:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2899:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7603,"id":7615,"nodeType":"Return","src":"2892:28:47"}]},"documentation":{"id":7595,"nodeType":"StructuredDocumentation","src":"2667:102:47","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":7617,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"2783:7:47","nodeType":"FunctionDefinition","parameters":{"id":7600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7597,"mutability":"mutable","name":"a","nameLocation":"2799:1:47","nodeType":"VariableDeclaration","scope":7617,"src":"2791:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7596,"name":"uint256","nodeType":"ElementaryTypeName","src":"2791:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7599,"mutability":"mutable","name":"b","nameLocation":"2810:1:47","nodeType":"VariableDeclaration","scope":7617,"src":"2802:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7598,"name":"uint256","nodeType":"ElementaryTypeName","src":"2802:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2790:22:47"},"returnParameters":{"id":7603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7617,"src":"2836:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7601,"name":"uint256","nodeType":"ElementaryTypeName","src":"2836:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2835:9:47"},"scope":8443,"src":"2774:153:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7650,"nodeType":"Block","src":"3219:260:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7627,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7622,"src":"3233:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3238:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3233:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7635,"nodeType":"IfStatement","src":"3229:127:47","trueBody":{"id":7634,"nodeType":"Block","src":"3241:115:47","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7630,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7620,"src":"3340:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7631,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7622,"src":"3344:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3340:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7626,"id":7633,"nodeType":"Return","src":"3333:12:47"}]}},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7636,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7620,"src":"3444:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3449:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3444:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7640,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7620,"src":"3458:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3462:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3458:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3457:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7644,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7622,"src":"3467:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3457:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3471:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3457:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3444:28:47","trueExpression":{"hexValue":"30","id":7639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3453:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7626,"id":7649,"nodeType":"Return","src":"3437:35:47"}]},"documentation":{"id":7618,"nodeType":"StructuredDocumentation","src":"2933:210:47","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero."},"id":7651,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3157:7:47","nodeType":"FunctionDefinition","parameters":{"id":7623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7620,"mutability":"mutable","name":"a","nameLocation":"3173:1:47","nodeType":"VariableDeclaration","scope":7651,"src":"3165:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7619,"name":"uint256","nodeType":"ElementaryTypeName","src":"3165:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7622,"mutability":"mutable","name":"b","nameLocation":"3184:1:47","nodeType":"VariableDeclaration","scope":7651,"src":"3176:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7621,"name":"uint256","nodeType":"ElementaryTypeName","src":"3176:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3164:22:47"},"returnParameters":{"id":7626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7625,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7651,"src":"3210:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7624,"name":"uint256","nodeType":"ElementaryTypeName","src":"3210:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3209:9:47"},"scope":8443,"src":"3148:331:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7776,"nodeType":"Block","src":"3901:4018:47","statements":[{"id":7775,"nodeType":"UncheckedBlock","src":"3911:4002:47","statements":[{"assignments":[7664],"declarations":[{"constant":false,"id":7664,"mutability":"mutable","name":"prod0","nameLocation":"4240:5:47","nodeType":"VariableDeclaration","scope":7775,"src":"4232:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7663,"name":"uint256","nodeType":"ElementaryTypeName","src":"4232:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7668,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7665,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7654,"src":"4248:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7666,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7656,"src":"4252:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4248:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4232:21:47"},{"assignments":[7670],"declarations":[{"constant":false,"id":7670,"mutability":"mutable","name":"prod1","nameLocation":"4320:5:47","nodeType":"VariableDeclaration","scope":7775,"src":"4312:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7669,"name":"uint256","nodeType":"ElementaryTypeName","src":"4312:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7671,"nodeType":"VariableDeclarationStatement","src":"4312:13:47"},{"AST":{"nativeSrc":"4392:122:47","nodeType":"YulBlock","src":"4392:122:47","statements":[{"nativeSrc":"4410:30:47","nodeType":"YulVariableDeclaration","src":"4410:30:47","value":{"arguments":[{"name":"x","nativeSrc":"4427:1:47","nodeType":"YulIdentifier","src":"4427:1:47"},{"name":"y","nativeSrc":"4430:1:47","nodeType":"YulIdentifier","src":"4430:1:47"},{"arguments":[{"kind":"number","nativeSrc":"4437:1:47","nodeType":"YulLiteral","src":"4437:1:47","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"4433:3:47","nodeType":"YulIdentifier","src":"4433:3:47"},"nativeSrc":"4433:6:47","nodeType":"YulFunctionCall","src":"4433:6:47"}],"functionName":{"name":"mulmod","nativeSrc":"4420:6:47","nodeType":"YulIdentifier","src":"4420:6:47"},"nativeSrc":"4420:20:47","nodeType":"YulFunctionCall","src":"4420:20:47"},"variables":[{"name":"mm","nativeSrc":"4414:2:47","nodeType":"YulTypedName","src":"4414:2:47","type":""}]},{"nativeSrc":"4457:43:47","nodeType":"YulAssignment","src":"4457:43:47","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"4474:2:47","nodeType":"YulIdentifier","src":"4474:2:47"},{"name":"prod0","nativeSrc":"4478:5:47","nodeType":"YulIdentifier","src":"4478:5:47"}],"functionName":{"name":"sub","nativeSrc":"4470:3:47","nodeType":"YulIdentifier","src":"4470:3:47"},"nativeSrc":"4470:14:47","nodeType":"YulFunctionCall","src":"4470:14:47"},{"arguments":[{"name":"mm","nativeSrc":"4489:2:47","nodeType":"YulIdentifier","src":"4489:2:47"},{"name":"prod0","nativeSrc":"4493:5:47","nodeType":"YulIdentifier","src":"4493:5:47"}],"functionName":{"name":"lt","nativeSrc":"4486:2:47","nodeType":"YulIdentifier","src":"4486:2:47"},"nativeSrc":"4486:13:47","nodeType":"YulFunctionCall","src":"4486:13:47"}],"functionName":{"name":"sub","nativeSrc":"4466:3:47","nodeType":"YulIdentifier","src":"4466:3:47"},"nativeSrc":"4466:34:47","nodeType":"YulFunctionCall","src":"4466:34:47"},"variableNames":[{"name":"prod1","nativeSrc":"4457:5:47","nodeType":"YulIdentifier","src":"4457:5:47"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7664,"isOffset":false,"isSlot":false,"src":"4478:5:47","valueSize":1},{"declaration":7664,"isOffset":false,"isSlot":false,"src":"4493:5:47","valueSize":1},{"declaration":7670,"isOffset":false,"isSlot":false,"src":"4457:5:47","valueSize":1},{"declaration":7654,"isOffset":false,"isSlot":false,"src":"4427:1:47","valueSize":1},{"declaration":7656,"isOffset":false,"isSlot":false,"src":"4430:1:47","valueSize":1}],"id":7672,"nodeType":"InlineAssembly","src":"4383:131:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7673,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7670,"src":"4595:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4604:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4595:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7681,"nodeType":"IfStatement","src":"4591:368:47","trueBody":{"id":7680,"nodeType":"Block","src":"4607:352:47","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7676,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7664,"src":"4925:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7677,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"4933:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4925:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7662,"id":7679,"nodeType":"Return","src":"4918:26:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7682,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"5065:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":7683,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7670,"src":"5080:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7689,"nodeType":"IfStatement","src":"5061:88:47","trueBody":{"id":7688,"nodeType":"Block","src":"5087:62:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7685,"name":"MathOverflowedMulDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7395,"src":"5112:20:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5112:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7687,"nodeType":"RevertStatement","src":"5105:29:47"}]}},{"assignments":[7691],"declarations":[{"constant":false,"id":7691,"mutability":"mutable","name":"remainder","nameLocation":"5412:9:47","nodeType":"VariableDeclaration","scope":7775,"src":"5404:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7690,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7692,"nodeType":"VariableDeclarationStatement","src":"5404:17:47"},{"AST":{"nativeSrc":"5444:291:47","nodeType":"YulBlock","src":"5444:291:47","statements":[{"nativeSrc":"5513:38:47","nodeType":"YulAssignment","src":"5513:38:47","value":{"arguments":[{"name":"x","nativeSrc":"5533:1:47","nodeType":"YulIdentifier","src":"5533:1:47"},{"name":"y","nativeSrc":"5536:1:47","nodeType":"YulIdentifier","src":"5536:1:47"},{"name":"denominator","nativeSrc":"5539:11:47","nodeType":"YulIdentifier","src":"5539:11:47"}],"functionName":{"name":"mulmod","nativeSrc":"5526:6:47","nodeType":"YulIdentifier","src":"5526:6:47"},"nativeSrc":"5526:25:47","nodeType":"YulFunctionCall","src":"5526:25:47"},"variableNames":[{"name":"remainder","nativeSrc":"5513:9:47","nodeType":"YulIdentifier","src":"5513:9:47"}]},{"nativeSrc":"5633:41:47","nodeType":"YulAssignment","src":"5633:41:47","value":{"arguments":[{"name":"prod1","nativeSrc":"5646:5:47","nodeType":"YulIdentifier","src":"5646:5:47"},{"arguments":[{"name":"remainder","nativeSrc":"5656:9:47","nodeType":"YulIdentifier","src":"5656:9:47"},{"name":"prod0","nativeSrc":"5667:5:47","nodeType":"YulIdentifier","src":"5667:5:47"}],"functionName":{"name":"gt","nativeSrc":"5653:2:47","nodeType":"YulIdentifier","src":"5653:2:47"},"nativeSrc":"5653:20:47","nodeType":"YulFunctionCall","src":"5653:20:47"}],"functionName":{"name":"sub","nativeSrc":"5642:3:47","nodeType":"YulIdentifier","src":"5642:3:47"},"nativeSrc":"5642:32:47","nodeType":"YulFunctionCall","src":"5642:32:47"},"variableNames":[{"name":"prod1","nativeSrc":"5633:5:47","nodeType":"YulIdentifier","src":"5633:5:47"}]},{"nativeSrc":"5691:30:47","nodeType":"YulAssignment","src":"5691:30:47","value":{"arguments":[{"name":"prod0","nativeSrc":"5704:5:47","nodeType":"YulIdentifier","src":"5704:5:47"},{"name":"remainder","nativeSrc":"5711:9:47","nodeType":"YulIdentifier","src":"5711:9:47"}],"functionName":{"name":"sub","nativeSrc":"5700:3:47","nodeType":"YulIdentifier","src":"5700:3:47"},"nativeSrc":"5700:21:47","nodeType":"YulFunctionCall","src":"5700:21:47"},"variableNames":[{"name":"prod0","nativeSrc":"5691:5:47","nodeType":"YulIdentifier","src":"5691:5:47"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7658,"isOffset":false,"isSlot":false,"src":"5539:11:47","valueSize":1},{"declaration":7664,"isOffset":false,"isSlot":false,"src":"5667:5:47","valueSize":1},{"declaration":7664,"isOffset":false,"isSlot":false,"src":"5691:5:47","valueSize":1},{"declaration":7664,"isOffset":false,"isSlot":false,"src":"5704:5:47","valueSize":1},{"declaration":7670,"isOffset":false,"isSlot":false,"src":"5633:5:47","valueSize":1},{"declaration":7670,"isOffset":false,"isSlot":false,"src":"5646:5:47","valueSize":1},{"declaration":7691,"isOffset":false,"isSlot":false,"src":"5513:9:47","valueSize":1},{"declaration":7691,"isOffset":false,"isSlot":false,"src":"5656:9:47","valueSize":1},{"declaration":7691,"isOffset":false,"isSlot":false,"src":"5711:9:47","valueSize":1},{"declaration":7654,"isOffset":false,"isSlot":false,"src":"5533:1:47","valueSize":1},{"declaration":7656,"isOffset":false,"isSlot":false,"src":"5536:1:47","valueSize":1}],"id":7693,"nodeType":"InlineAssembly","src":"5435:300:47"},{"assignments":[7695],"declarations":[{"constant":false,"id":7695,"mutability":"mutable","name":"twos","nameLocation":"5947:4:47","nodeType":"VariableDeclaration","scope":7775,"src":"5939:12:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7694,"name":"uint256","nodeType":"ElementaryTypeName","src":"5939:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7702,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7696,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"5954:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":7697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5969:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7698,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"5973:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5969:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7700,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5968:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5954:31:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5939:46:47"},{"AST":{"nativeSrc":"6008:362:47","nodeType":"YulBlock","src":"6008:362:47","statements":[{"nativeSrc":"6073:37:47","nodeType":"YulAssignment","src":"6073:37:47","value":{"arguments":[{"name":"denominator","nativeSrc":"6092:11:47","nodeType":"YulIdentifier","src":"6092:11:47"},{"name":"twos","nativeSrc":"6105:4:47","nodeType":"YulIdentifier","src":"6105:4:47"}],"functionName":{"name":"div","nativeSrc":"6088:3:47","nodeType":"YulIdentifier","src":"6088:3:47"},"nativeSrc":"6088:22:47","nodeType":"YulFunctionCall","src":"6088:22:47"},"variableNames":[{"name":"denominator","nativeSrc":"6073:11:47","nodeType":"YulIdentifier","src":"6073:11:47"}]},{"nativeSrc":"6177:25:47","nodeType":"YulAssignment","src":"6177:25:47","value":{"arguments":[{"name":"prod0","nativeSrc":"6190:5:47","nodeType":"YulIdentifier","src":"6190:5:47"},{"name":"twos","nativeSrc":"6197:4:47","nodeType":"YulIdentifier","src":"6197:4:47"}],"functionName":{"name":"div","nativeSrc":"6186:3:47","nodeType":"YulIdentifier","src":"6186:3:47"},"nativeSrc":"6186:16:47","nodeType":"YulFunctionCall","src":"6186:16:47"},"variableNames":[{"name":"prod0","nativeSrc":"6177:5:47","nodeType":"YulIdentifier","src":"6177:5:47"}]},{"nativeSrc":"6317:39:47","nodeType":"YulAssignment","src":"6317:39:47","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6337:1:47","nodeType":"YulLiteral","src":"6337:1:47","type":"","value":"0"},{"name":"twos","nativeSrc":"6340:4:47","nodeType":"YulIdentifier","src":"6340:4:47"}],"functionName":{"name":"sub","nativeSrc":"6333:3:47","nodeType":"YulIdentifier","src":"6333:3:47"},"nativeSrc":"6333:12:47","nodeType":"YulFunctionCall","src":"6333:12:47"},{"name":"twos","nativeSrc":"6347:4:47","nodeType":"YulIdentifier","src":"6347:4:47"}],"functionName":{"name":"div","nativeSrc":"6329:3:47","nodeType":"YulIdentifier","src":"6329:3:47"},"nativeSrc":"6329:23:47","nodeType":"YulFunctionCall","src":"6329:23:47"},{"kind":"number","nativeSrc":"6354:1:47","nodeType":"YulLiteral","src":"6354:1:47","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6325:3:47","nodeType":"YulIdentifier","src":"6325:3:47"},"nativeSrc":"6325:31:47","nodeType":"YulFunctionCall","src":"6325:31:47"},"variableNames":[{"name":"twos","nativeSrc":"6317:4:47","nodeType":"YulIdentifier","src":"6317:4:47"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7658,"isOffset":false,"isSlot":false,"src":"6073:11:47","valueSize":1},{"declaration":7658,"isOffset":false,"isSlot":false,"src":"6092:11:47","valueSize":1},{"declaration":7664,"isOffset":false,"isSlot":false,"src":"6177:5:47","valueSize":1},{"declaration":7664,"isOffset":false,"isSlot":false,"src":"6190:5:47","valueSize":1},{"declaration":7695,"isOffset":false,"isSlot":false,"src":"6105:4:47","valueSize":1},{"declaration":7695,"isOffset":false,"isSlot":false,"src":"6197:4:47","valueSize":1},{"declaration":7695,"isOffset":false,"isSlot":false,"src":"6317:4:47","valueSize":1},{"declaration":7695,"isOffset":false,"isSlot":false,"src":"6340:4:47","valueSize":1},{"declaration":7695,"isOffset":false,"isSlot":false,"src":"6347:4:47","valueSize":1}],"id":7703,"nodeType":"InlineAssembly","src":"5999:371:47"},{"expression":{"id":7708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7704,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7664,"src":"6436:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7705,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7670,"src":"6445:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7706,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"6453:4:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6445:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6436:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7709,"nodeType":"ExpressionStatement","src":"6436:21:47"},{"assignments":[7711],"declarations":[{"constant":false,"id":7711,"mutability":"mutable","name":"inverse","nameLocation":"6783:7:47","nodeType":"VariableDeclaration","scope":7775,"src":"6775:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7710,"name":"uint256","nodeType":"ElementaryTypeName","src":"6775:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7718,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":7712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6794:1:47","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7713,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"6798:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6794:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7715,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6793:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":7716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6813:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6793:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6775:39:47"},{"expression":{"id":7725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7719,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7031:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7042:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7721,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"7046:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7722,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7060:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7046:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7042:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7031:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7726,"nodeType":"ExpressionStatement","src":"7031:36:47"},{"expression":{"id":7733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7727,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7100:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7111:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7729,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"7115:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7730,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7129:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7115:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7111:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7100:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7734,"nodeType":"ExpressionStatement","src":"7100:36:47"},{"expression":{"id":7741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7735,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7170:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7181:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7737,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"7185:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7738,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7199:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7185:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7181:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7170:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7742,"nodeType":"ExpressionStatement","src":"7170:36:47"},{"expression":{"id":7749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7743,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7240:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7251:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7745,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"7255:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7746,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7269:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7255:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7251:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7240:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7750,"nodeType":"ExpressionStatement","src":"7240:36:47"},{"expression":{"id":7757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7751,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7310:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7321:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7753,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"7325:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7754,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7339:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7325:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7321:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7310:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7758,"nodeType":"ExpressionStatement","src":"7310:36:47"},{"expression":{"id":7765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7759,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7381:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7392:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7761,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"7396:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7762,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7410:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7396:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7392:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7381:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7766,"nodeType":"ExpressionStatement","src":"7381:36:47"},{"expression":{"id":7771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7767,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7661,"src":"7851:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7768,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7664,"src":"7860:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7769,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"7868:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7860:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7851:24:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7772,"nodeType":"ExpressionStatement","src":"7851:24:47"},{"expression":{"id":7773,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7661,"src":"7896:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7662,"id":7774,"nodeType":"Return","src":"7889:13:47"}]}]},"documentation":{"id":7652,"nodeType":"StructuredDocumentation","src":"3485:313:47","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license."},"id":7777,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"3812:6:47","nodeType":"FunctionDefinition","parameters":{"id":7659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7654,"mutability":"mutable","name":"x","nameLocation":"3827:1:47","nodeType":"VariableDeclaration","scope":7777,"src":"3819:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3819:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7656,"mutability":"mutable","name":"y","nameLocation":"3838:1:47","nodeType":"VariableDeclaration","scope":7777,"src":"3830:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7655,"name":"uint256","nodeType":"ElementaryTypeName","src":"3830:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7658,"mutability":"mutable","name":"denominator","nameLocation":"3849:11:47","nodeType":"VariableDeclaration","scope":7777,"src":"3841:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7657,"name":"uint256","nodeType":"ElementaryTypeName","src":"3841:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3818:43:47"},"returnParameters":{"id":7662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7661,"mutability":"mutable","name":"result","nameLocation":"3893:6:47","nodeType":"VariableDeclaration","scope":7777,"src":"3885:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7660,"name":"uint256","nodeType":"ElementaryTypeName","src":"3885:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3884:16:47"},"scope":8443,"src":"3803:4116:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7819,"nodeType":"Block","src":"8161:192:47","statements":[{"assignments":[7793],"declarations":[{"constant":false,"id":7793,"mutability":"mutable","name":"result","nameLocation":"8179:6:47","nodeType":"VariableDeclaration","scope":7819,"src":"8171:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7792,"name":"uint256","nodeType":"ElementaryTypeName","src":"8171:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7799,"initialValue":{"arguments":[{"id":7795,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7780,"src":"8195:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7796,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7782,"src":"8198:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7797,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"8201:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7794,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[7777,7820],"referencedDeclaration":7777,"src":"8188:6:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":7798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8188:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8171:42:47"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7801,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7787,"src":"8244:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}],"id":7800,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"8227:16:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$7400_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":7802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8227:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7804,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7780,"src":"8264:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7805,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7782,"src":"8267:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7806,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"8270:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7803,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"8257:6:47","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":7807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8257:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8285:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8257:29:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8227:59:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7816,"nodeType":"IfStatement","src":"8223:101:47","trueBody":{"id":7815,"nodeType":"Block","src":"8288:36:47","statements":[{"expression":{"id":7813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7811,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"8302:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":7812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8312:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8302:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7814,"nodeType":"ExpressionStatement","src":"8302:11:47"}]}},{"expression":{"id":7817,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"8340:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7791,"id":7818,"nodeType":"Return","src":"8333:13:47"}]},"documentation":{"id":7778,"nodeType":"StructuredDocumentation","src":"7925:121:47","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":7820,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"8060:6:47","nodeType":"FunctionDefinition","parameters":{"id":7788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7780,"mutability":"mutable","name":"x","nameLocation":"8075:1:47","nodeType":"VariableDeclaration","scope":7820,"src":"8067:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7779,"name":"uint256","nodeType":"ElementaryTypeName","src":"8067:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7782,"mutability":"mutable","name":"y","nameLocation":"8086:1:47","nodeType":"VariableDeclaration","scope":7820,"src":"8078:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7781,"name":"uint256","nodeType":"ElementaryTypeName","src":"8078:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7784,"mutability":"mutable","name":"denominator","nameLocation":"8097:11:47","nodeType":"VariableDeclaration","scope":7820,"src":"8089:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7783,"name":"uint256","nodeType":"ElementaryTypeName","src":"8089:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7787,"mutability":"mutable","name":"rounding","nameLocation":"8119:8:47","nodeType":"VariableDeclaration","scope":7820,"src":"8110:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"},"typeName":{"id":7786,"nodeType":"UserDefinedTypeName","pathNode":{"id":7785,"name":"Rounding","nameLocations":["8110:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"8110:8:47"},"referencedDeclaration":7400,"src":"8110:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8066:62:47"},"returnParameters":{"id":7791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7820,"src":"8152:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7789,"name":"uint256","nodeType":"ElementaryTypeName","src":"8152:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8151:9:47"},"scope":8443,"src":"8051:302:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7931,"nodeType":"Block","src":"8644:1585:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7828,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7823,"src":"8658:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8663:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8658:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7834,"nodeType":"IfStatement","src":"8654:45:47","trueBody":{"id":7833,"nodeType":"Block","src":"8666:33:47","statements":[{"expression":{"hexValue":"30","id":7831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8687:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":7827,"id":7832,"nodeType":"Return","src":"8680:8:47"}]}},{"assignments":[7836],"declarations":[{"constant":false,"id":7836,"mutability":"mutable","name":"result","nameLocation":"9386:6:47","nodeType":"VariableDeclaration","scope":7931,"src":"9378:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7835,"name":"uint256","nodeType":"ElementaryTypeName","src":"9378:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7845,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9395:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7839,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7823,"src":"9406:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7838,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[8099,8134],"referencedDeclaration":8099,"src":"9401:4:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9401:7:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9412:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9401:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7843,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9400:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9395:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9378:36:47"},{"id":7930,"nodeType":"UncheckedBlock","src":"9815:408:47","statements":[{"expression":{"id":7855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7846,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"9839:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7847,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"9849:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7848,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7823,"src":"9858:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7849,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"9862:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9858:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9849:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7852,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9848:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9873:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9848:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9839:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7856,"nodeType":"ExpressionStatement","src":"9839:35:47"},{"expression":{"id":7866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7857,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"9888:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7858,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"9898:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7859,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7823,"src":"9907:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7860,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"9911:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9907:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9898:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7863,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9897:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9922:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9897:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9888:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7867,"nodeType":"ExpressionStatement","src":"9888:35:47"},{"expression":{"id":7877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7868,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"9937:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7869,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"9947:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7870,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7823,"src":"9956:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7871,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"9960:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9956:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9947:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7874,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9946:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9971:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9946:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9937:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7878,"nodeType":"ExpressionStatement","src":"9937:35:47"},{"expression":{"id":7888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7879,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"9986:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7880,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"9996:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7881,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7823,"src":"10005:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7882,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10009:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9996:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7885,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9995:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9995:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9986:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7889,"nodeType":"ExpressionStatement","src":"9986:35:47"},{"expression":{"id":7899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7890,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10035:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7891,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10045:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7892,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7823,"src":"10054:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7893,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10058:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10054:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10045:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7896,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10044:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10069:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10044:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10035:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7900,"nodeType":"ExpressionStatement","src":"10035:35:47"},{"expression":{"id":7910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7901,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10084:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7902,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10094:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7903,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7823,"src":"10103:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7904,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10107:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10103:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10094:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7907,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10093:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10118:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10093:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10084:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7911,"nodeType":"ExpressionStatement","src":"10084:35:47"},{"expression":{"id":7921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7912,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10133:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7913,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10143:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7914,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7823,"src":"10152:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7915,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10156:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10152:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7918,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10142:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10167:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10142:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10133:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7922,"nodeType":"ExpressionStatement","src":"10133:35:47"},{"expression":{"arguments":[{"id":7924,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10193:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7925,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7823,"src":"10201:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7926,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"10205:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10201:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7923,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7594,"src":"10189:3:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10189:23:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7827,"id":7929,"nodeType":"Return","src":"10182:30:47"}]}]},"documentation":{"id":7821,"nodeType":"StructuredDocumentation","src":"8359:223:47","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":7932,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8596:4:47","nodeType":"FunctionDefinition","parameters":{"id":7824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7823,"mutability":"mutable","name":"a","nameLocation":"8609:1:47","nodeType":"VariableDeclaration","scope":7932,"src":"8601:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7822,"name":"uint256","nodeType":"ElementaryTypeName","src":"8601:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8600:11:47"},"returnParameters":{"id":7827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7932,"src":"8635:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7825,"name":"uint256","nodeType":"ElementaryTypeName","src":"8635:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8634:9:47"},"scope":8443,"src":"8587:1642:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7966,"nodeType":"Block","src":"10405:164:47","statements":[{"id":7965,"nodeType":"UncheckedBlock","src":"10415:148:47","statements":[{"assignments":[7944],"declarations":[{"constant":false,"id":7944,"mutability":"mutable","name":"result","nameLocation":"10447:6:47","nodeType":"VariableDeclaration","scope":7965,"src":"10439:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7943,"name":"uint256","nodeType":"ElementaryTypeName","src":"10439:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7948,"initialValue":{"arguments":[{"id":7946,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7935,"src":"10461:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7945,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[7932,7967],"referencedDeclaration":7932,"src":"10456:4:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10456:7:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10439:24:47"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7949,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"10484:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7951,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7938,"src":"10511:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}],"id":7950,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"10494:16:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$7400_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":7952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10494:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7953,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"10524:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7954,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"10533:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10524:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7956,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7935,"src":"10542:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10524:19:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10494:49:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":7960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10550:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":7961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10494:57:47","trueExpression":{"hexValue":"31","id":7959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10546:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":7962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10493:59:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10484:68:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7942,"id":7964,"nodeType":"Return","src":"10477:75:47"}]}]},"documentation":{"id":7933,"nodeType":"StructuredDocumentation","src":"10235:89:47","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":7967,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"10338:4:47","nodeType":"FunctionDefinition","parameters":{"id":7939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7935,"mutability":"mutable","name":"a","nameLocation":"10351:1:47","nodeType":"VariableDeclaration","scope":7967,"src":"10343:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7934,"name":"uint256","nodeType":"ElementaryTypeName","src":"10343:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7938,"mutability":"mutable","name":"rounding","nameLocation":"10363:8:47","nodeType":"VariableDeclaration","scope":7967,"src":"10354:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"},"typeName":{"id":7937,"nodeType":"UserDefinedTypeName","pathNode":{"id":7936,"name":"Rounding","nameLocations":["10354:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"10354:8:47"},"referencedDeclaration":7400,"src":"10354:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10342:30:47"},"returnParameters":{"id":7942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7941,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7967,"src":"10396:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7940,"name":"uint256","nodeType":"ElementaryTypeName","src":"10396:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10395:9:47"},"scope":8443,"src":"10329:240:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8098,"nodeType":"Block","src":"10760:922:47","statements":[{"assignments":[7976],"declarations":[{"constant":false,"id":7976,"mutability":"mutable","name":"result","nameLocation":"10778:6:47","nodeType":"VariableDeclaration","scope":8098,"src":"10770:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7975,"name":"uint256","nodeType":"ElementaryTypeName","src":"10770:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7978,"initialValue":{"hexValue":"30","id":7977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10787:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10770:18:47"},{"id":8095,"nodeType":"UncheckedBlock","src":"10798:855:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7979,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"10826:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":7980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10835:3:47","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10826:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10841:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10826:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7993,"nodeType":"IfStatement","src":"10822:99:47","trueBody":{"id":7992,"nodeType":"Block","src":"10844:77:47","statements":[{"expression":{"id":7986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7984,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"10862:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":7985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10872:3:47","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10862:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7987,"nodeType":"ExpressionStatement","src":"10862:13:47"},{"expression":{"id":7990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7988,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"10893:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":7989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10903:3:47","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10893:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7991,"nodeType":"ExpressionStatement","src":"10893:13:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7994,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"10938:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":7995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10947:2:47","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10938:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10952:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10938:15:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8008,"nodeType":"IfStatement","src":"10934:96:47","trueBody":{"id":8007,"nodeType":"Block","src":"10955:75:47","statements":[{"expression":{"id":8001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7999,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"10973:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":8000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10983:2:47","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10973:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8002,"nodeType":"ExpressionStatement","src":"10973:12:47"},{"expression":{"id":8005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8003,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"11003:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":8004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11013:2:47","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11003:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8006,"nodeType":"ExpressionStatement","src":"11003:12:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8009,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"11047:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":8010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11056:2:47","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11047:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11061:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11047:15:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8023,"nodeType":"IfStatement","src":"11043:96:47","trueBody":{"id":8022,"nodeType":"Block","src":"11064:75:47","statements":[{"expression":{"id":8016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8014,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"11082:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":8015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11092:2:47","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11082:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8017,"nodeType":"ExpressionStatement","src":"11082:12:47"},{"expression":{"id":8020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8018,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"11112:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":8019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11122:2:47","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11112:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8021,"nodeType":"ExpressionStatement","src":"11112:12:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8024,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"11156:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":8025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11165:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11156:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11170:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11156:15:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8038,"nodeType":"IfStatement","src":"11152:96:47","trueBody":{"id":8037,"nodeType":"Block","src":"11173:75:47","statements":[{"expression":{"id":8031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8029,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"11191:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":8030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11201:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11191:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8032,"nodeType":"ExpressionStatement","src":"11191:12:47"},{"expression":{"id":8035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8033,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"11221:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":8034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11231:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11221:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8036,"nodeType":"ExpressionStatement","src":"11221:12:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8039,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"11265:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":8040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11274:1:47","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11265:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11278:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11265:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8053,"nodeType":"IfStatement","src":"11261:93:47","trueBody":{"id":8052,"nodeType":"Block","src":"11281:73:47","statements":[{"expression":{"id":8046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8044,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"11299:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":8045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11309:1:47","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11299:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8047,"nodeType":"ExpressionStatement","src":"11299:11:47"},{"expression":{"id":8050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8048,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"11328:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":8049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11338:1:47","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11328:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8051,"nodeType":"ExpressionStatement","src":"11328:11:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8054,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"11371:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":8055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11380:1:47","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11371:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11384:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11371:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8068,"nodeType":"IfStatement","src":"11367:93:47","trueBody":{"id":8067,"nodeType":"Block","src":"11387:73:47","statements":[{"expression":{"id":8061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8059,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"11405:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":8060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11415:1:47","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11405:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8062,"nodeType":"ExpressionStatement","src":"11405:11:47"},{"expression":{"id":8065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8063,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"11434:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":8064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11444:1:47","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11434:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8066,"nodeType":"ExpressionStatement","src":"11434:11:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8069,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"11477:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":8070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11486:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11477:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11490:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11477:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8083,"nodeType":"IfStatement","src":"11473:93:47","trueBody":{"id":8082,"nodeType":"Block","src":"11493:73:47","statements":[{"expression":{"id":8076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"11511:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":8075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11521:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11511:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8077,"nodeType":"ExpressionStatement","src":"11511:11:47"},{"expression":{"id":8080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8078,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"11540:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":8079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11550:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11540:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8081,"nodeType":"ExpressionStatement","src":"11540:11:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8084,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"11583:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11592:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11583:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11596:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11583:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8094,"nodeType":"IfStatement","src":"11579:64:47","trueBody":{"id":8093,"nodeType":"Block","src":"11599:44:47","statements":[{"expression":{"id":8091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8089,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"11617:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11627:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11617:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8092,"nodeType":"ExpressionStatement","src":"11617:11:47"}]}}]},{"expression":{"id":8096,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"11669:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7974,"id":8097,"nodeType":"Return","src":"11662:13:47"}]},"documentation":{"id":7968,"nodeType":"StructuredDocumentation","src":"10575:119:47","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":8099,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"10708:4:47","nodeType":"FunctionDefinition","parameters":{"id":7971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7970,"mutability":"mutable","name":"value","nameLocation":"10721:5:47","nodeType":"VariableDeclaration","scope":8099,"src":"10713:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7969,"name":"uint256","nodeType":"ElementaryTypeName","src":"10713:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10712:15:47"},"returnParameters":{"id":7974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8099,"src":"10751:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7972,"name":"uint256","nodeType":"ElementaryTypeName","src":"10751:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10750:9:47"},"scope":8443,"src":"10699:983:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8133,"nodeType":"Block","src":"11915:168:47","statements":[{"id":8132,"nodeType":"UncheckedBlock","src":"11925:152:47","statements":[{"assignments":[8111],"declarations":[{"constant":false,"id":8111,"mutability":"mutable","name":"result","nameLocation":"11957:6:47","nodeType":"VariableDeclaration","scope":8132,"src":"11949:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8110,"name":"uint256","nodeType":"ElementaryTypeName","src":"11949:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8115,"initialValue":{"arguments":[{"id":8113,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"11971:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8112,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[8099,8134],"referencedDeclaration":8099,"src":"11966:4:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11966:11:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11949:28:47"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8116,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8111,"src":"11998:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8118,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8105,"src":"12025:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}],"id":8117,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"12008:16:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$7400_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":8119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12008:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":8120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12038:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":8121,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8111,"src":"12043:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12038:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8123,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"12052:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12038:19:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12008:49:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":8127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12064:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":8128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12008:57:47","trueExpression":{"hexValue":"31","id":8126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12060:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8129,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12007:59:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11998:68:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8109,"id":8131,"nodeType":"Return","src":"11991:75:47"}]}]},"documentation":{"id":8100,"nodeType":"StructuredDocumentation","src":"11688:142:47","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":8134,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"11844:4:47","nodeType":"FunctionDefinition","parameters":{"id":8106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8102,"mutability":"mutable","name":"value","nameLocation":"11857:5:47","nodeType":"VariableDeclaration","scope":8134,"src":"11849:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8101,"name":"uint256","nodeType":"ElementaryTypeName","src":"11849:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8105,"mutability":"mutable","name":"rounding","nameLocation":"11873:8:47","nodeType":"VariableDeclaration","scope":8134,"src":"11864:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"},"typeName":{"id":8104,"nodeType":"UserDefinedTypeName","pathNode":{"id":8103,"name":"Rounding","nameLocations":["11864:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"11864:8:47"},"referencedDeclaration":7400,"src":"11864:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11848:34:47"},"returnParameters":{"id":8109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8134,"src":"11906:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8107,"name":"uint256","nodeType":"ElementaryTypeName","src":"11906:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11905:9:47"},"scope":8443,"src":"11835:248:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8262,"nodeType":"Block","src":"12276:854:47","statements":[{"assignments":[8143],"declarations":[{"constant":false,"id":8143,"mutability":"mutable","name":"result","nameLocation":"12294:6:47","nodeType":"VariableDeclaration","scope":8262,"src":"12286:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8142,"name":"uint256","nodeType":"ElementaryTypeName","src":"12286:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8145,"initialValue":{"hexValue":"30","id":8144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12303:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12286:18:47"},{"id":8259,"nodeType":"UncheckedBlock","src":"12314:787:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8146,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12342:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":8149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12351:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":8148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12357:2:47","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12351:8:47","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12342:17:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8162,"nodeType":"IfStatement","src":"12338:103:47","trueBody":{"id":8161,"nodeType":"Block","src":"12361:80:47","statements":[{"expression":{"id":8155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8151,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12379:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":8154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12388:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":8153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12394:2:47","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12388:8:47","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12379:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8156,"nodeType":"ExpressionStatement","src":"12379:17:47"},{"expression":{"id":8159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8157,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8143,"src":"12414:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":8158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12424:2:47","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12414:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8160,"nodeType":"ExpressionStatement","src":"12414:12:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8163,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12458:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":8166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12467:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":8165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12473:2:47","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12467:8:47","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12458:17:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8179,"nodeType":"IfStatement","src":"12454:103:47","trueBody":{"id":8178,"nodeType":"Block","src":"12477:80:47","statements":[{"expression":{"id":8172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8168,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12495:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":8171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12504:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":8170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12510:2:47","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12504:8:47","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12495:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8173,"nodeType":"ExpressionStatement","src":"12495:17:47"},{"expression":{"id":8176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8174,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8143,"src":"12530:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":8175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12540:2:47","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12530:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8177,"nodeType":"ExpressionStatement","src":"12530:12:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8180,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12574:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":8183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12583:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":8182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12589:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12583:8:47","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12574:17:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8196,"nodeType":"IfStatement","src":"12570:103:47","trueBody":{"id":8195,"nodeType":"Block","src":"12593:80:47","statements":[{"expression":{"id":8189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8185,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12611:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":8188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12620:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":8187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12626:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12620:8:47","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12611:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8190,"nodeType":"ExpressionStatement","src":"12611:17:47"},{"expression":{"id":8193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8191,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8143,"src":"12646:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":8192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12656:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12646:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8194,"nodeType":"ExpressionStatement","src":"12646:12:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8197,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12690:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":8200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12699:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":8199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12705:1:47","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12699:7:47","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12690:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8213,"nodeType":"IfStatement","src":"12686:100:47","trueBody":{"id":8212,"nodeType":"Block","src":"12708:78:47","statements":[{"expression":{"id":8206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8202,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12726:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":8205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12735:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":8204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12741:1:47","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12735:7:47","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12726:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8207,"nodeType":"ExpressionStatement","src":"12726:16:47"},{"expression":{"id":8210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8208,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8143,"src":"12760:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":8209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12770:1:47","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12760:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8211,"nodeType":"ExpressionStatement","src":"12760:11:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8214,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12803:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":8217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12812:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":8216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12818:1:47","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12812:7:47","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"12803:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8230,"nodeType":"IfStatement","src":"12799:100:47","trueBody":{"id":8229,"nodeType":"Block","src":"12821:78:47","statements":[{"expression":{"id":8223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8219,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12839:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":8222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12848:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":8221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12854:1:47","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12848:7:47","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"12839:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8224,"nodeType":"ExpressionStatement","src":"12839:16:47"},{"expression":{"id":8227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8225,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8143,"src":"12873:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":8226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12883:1:47","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12873:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8228,"nodeType":"ExpressionStatement","src":"12873:11:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8231,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12916:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":8234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12925:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":8233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12931:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12925:7:47","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"12916:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8247,"nodeType":"IfStatement","src":"12912:100:47","trueBody":{"id":8246,"nodeType":"Block","src":"12934:78:47","statements":[{"expression":{"id":8240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8236,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"12952:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":8239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12961:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":8238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12967:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12961:7:47","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"12952:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8241,"nodeType":"ExpressionStatement","src":"12952:16:47"},{"expression":{"id":8244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8242,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8143,"src":"12986:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":8243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12996:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12986:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8245,"nodeType":"ExpressionStatement","src":"12986:11:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8248,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8137,"src":"13029:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":8251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13038:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":8250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13044:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13038:7:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"13029:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8258,"nodeType":"IfStatement","src":"13025:66:47","trueBody":{"id":8257,"nodeType":"Block","src":"13047:44:47","statements":[{"expression":{"id":8255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8253,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8143,"src":"13065:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13075:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13065:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8256,"nodeType":"ExpressionStatement","src":"13065:11:47"}]}}]},{"expression":{"id":8260,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8143,"src":"13117:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8141,"id":8261,"nodeType":"Return","src":"13110:13:47"}]},"documentation":{"id":8135,"nodeType":"StructuredDocumentation","src":"12089:120:47","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":8263,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"12223:5:47","nodeType":"FunctionDefinition","parameters":{"id":8138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8137,"mutability":"mutable","name":"value","nameLocation":"12237:5:47","nodeType":"VariableDeclaration","scope":8263,"src":"12229:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8136,"name":"uint256","nodeType":"ElementaryTypeName","src":"12229:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12228:15:47"},"returnParameters":{"id":8141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8263,"src":"12267:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8139,"name":"uint256","nodeType":"ElementaryTypeName","src":"12267:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12266:9:47"},"scope":8443,"src":"12214:916:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8297,"nodeType":"Block","src":"13365:170:47","statements":[{"id":8296,"nodeType":"UncheckedBlock","src":"13375:154:47","statements":[{"assignments":[8275],"declarations":[{"constant":false,"id":8275,"mutability":"mutable","name":"result","nameLocation":"13407:6:47","nodeType":"VariableDeclaration","scope":8296,"src":"13399:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8274,"name":"uint256","nodeType":"ElementaryTypeName","src":"13399:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8279,"initialValue":{"arguments":[{"id":8277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8266,"src":"13422:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8276,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[8263,8298],"referencedDeclaration":8263,"src":"13416:5:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13416:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13399:29:47"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8280,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8275,"src":"13449:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8282,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8269,"src":"13476:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}],"id":8281,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"13459:16:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$7400_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":8283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13459:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13489:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":8285,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8275,"src":"13495:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13489:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8287,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8266,"src":"13504:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13489:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13459:50:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":8291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13516:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":8292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13459:58:47","trueExpression":{"hexValue":"31","id":8290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13512:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8293,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13458:60:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13449:69:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8273,"id":8295,"nodeType":"Return","src":"13442:76:47"}]}]},"documentation":{"id":8264,"nodeType":"StructuredDocumentation","src":"13136:143:47","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":8298,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"13293:5:47","nodeType":"FunctionDefinition","parameters":{"id":8270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8266,"mutability":"mutable","name":"value","nameLocation":"13307:5:47","nodeType":"VariableDeclaration","scope":8298,"src":"13299:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8265,"name":"uint256","nodeType":"ElementaryTypeName","src":"13299:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8269,"mutability":"mutable","name":"rounding","nameLocation":"13323:8:47","nodeType":"VariableDeclaration","scope":8298,"src":"13314:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"},"typeName":{"id":8268,"nodeType":"UserDefinedTypeName","pathNode":{"id":8267,"name":"Rounding","nameLocations":["13314:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"13314:8:47"},"referencedDeclaration":7400,"src":"13314:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"13298:34:47"},"returnParameters":{"id":8273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8298,"src":"13356:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8271,"name":"uint256","nodeType":"ElementaryTypeName","src":"13356:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13355:9:47"},"scope":8443,"src":"13284:251:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8384,"nodeType":"Block","src":"13855:600:47","statements":[{"assignments":[8307],"declarations":[{"constant":false,"id":8307,"mutability":"mutable","name":"result","nameLocation":"13873:6:47","nodeType":"VariableDeclaration","scope":8384,"src":"13865:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8306,"name":"uint256","nodeType":"ElementaryTypeName","src":"13865:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8309,"initialValue":{"hexValue":"30","id":8308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13882:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13865:18:47"},{"id":8381,"nodeType":"UncheckedBlock","src":"13893:533:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8310,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"13921:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":8311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13930:3:47","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"13921:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13936:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13921:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8324,"nodeType":"IfStatement","src":"13917:98:47","trueBody":{"id":8323,"nodeType":"Block","src":"13939:76:47","statements":[{"expression":{"id":8317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8315,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"13957:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":8316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13967:3:47","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"13957:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8318,"nodeType":"ExpressionStatement","src":"13957:13:47"},{"expression":{"id":8321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8319,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8307,"src":"13988:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":8320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13998:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"13988:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8322,"nodeType":"ExpressionStatement","src":"13988:12:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8325,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"14032:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":8326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14041:2:47","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14032:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14046:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14032:15:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8339,"nodeType":"IfStatement","src":"14028:95:47","trueBody":{"id":8338,"nodeType":"Block","src":"14049:74:47","statements":[{"expression":{"id":8332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8330,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"14067:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":8331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14077:2:47","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14067:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8333,"nodeType":"ExpressionStatement","src":"14067:12:47"},{"expression":{"id":8336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8334,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8307,"src":"14097:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":8335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:47","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14097:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8337,"nodeType":"ExpressionStatement","src":"14097:11:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8340,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"14140:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":8341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14149:2:47","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14140:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14154:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14140:15:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8354,"nodeType":"IfStatement","src":"14136:95:47","trueBody":{"id":8353,"nodeType":"Block","src":"14157:74:47","statements":[{"expression":{"id":8347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8345,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"14175:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":8346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14185:2:47","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14175:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8348,"nodeType":"ExpressionStatement","src":"14175:12:47"},{"expression":{"id":8351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8349,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8307,"src":"14205:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":8350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14215:1:47","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14205:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8352,"nodeType":"ExpressionStatement","src":"14205:11:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8355,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"14248:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":8356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14257:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14248:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14262:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14248:15:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8369,"nodeType":"IfStatement","src":"14244:95:47","trueBody":{"id":8368,"nodeType":"Block","src":"14265:74:47","statements":[{"expression":{"id":8362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8360,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"14283:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":8361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14293:2:47","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14283:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8363,"nodeType":"ExpressionStatement","src":"14283:12:47"},{"expression":{"id":8366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8364,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8307,"src":"14313:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":8365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14323:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"14313:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8367,"nodeType":"ExpressionStatement","src":"14313:11:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8370,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"14356:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":8371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14365:1:47","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14356:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14369:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14356:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8380,"nodeType":"IfStatement","src":"14352:64:47","trueBody":{"id":8379,"nodeType":"Block","src":"14372:44:47","statements":[{"expression":{"id":8377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8375,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8307,"src":"14390:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14400:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14390:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8378,"nodeType":"ExpressionStatement","src":"14390:11:47"}]}}]},{"expression":{"id":8382,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8307,"src":"14442:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8305,"id":8383,"nodeType":"Return","src":"14435:13:47"}]},"documentation":{"id":8299,"nodeType":"StructuredDocumentation","src":"13541:246:47","text":" @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":8385,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"13801:6:47","nodeType":"FunctionDefinition","parameters":{"id":8302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8301,"mutability":"mutable","name":"value","nameLocation":"13816:5:47","nodeType":"VariableDeclaration","scope":8385,"src":"13808:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8300,"name":"uint256","nodeType":"ElementaryTypeName","src":"13808:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13807:15:47"},"returnParameters":{"id":8305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8304,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8385,"src":"13846:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8303,"name":"uint256","nodeType":"ElementaryTypeName","src":"13846:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13845:9:47"},"scope":8443,"src":"13792:663:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8422,"nodeType":"Block","src":"14692:177:47","statements":[{"id":8421,"nodeType":"UncheckedBlock","src":"14702:161:47","statements":[{"assignments":[8397],"declarations":[{"constant":false,"id":8397,"mutability":"mutable","name":"result","nameLocation":"14734:6:47","nodeType":"VariableDeclaration","scope":8421,"src":"14726:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8396,"name":"uint256","nodeType":"ElementaryTypeName","src":"14726:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8401,"initialValue":{"arguments":[{"id":8399,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8388,"src":"14750:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8398,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[8385,8423],"referencedDeclaration":8385,"src":"14743:6:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14743:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14726:30:47"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8402,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8397,"src":"14777:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8404,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8391,"src":"14804:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}],"id":8403,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"14787:16:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$7400_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":8405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14787:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":8406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14817:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8407,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8397,"src":"14823:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":8408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14833:1:47","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"14823:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8410,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14822:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:18:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8412,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8388,"src":"14838:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:26:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14787:56:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":8416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14850:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":8417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14787:64:47","trueExpression":{"hexValue":"31","id":8415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14846:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8418,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14786:66:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14777:75:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8395,"id":8420,"nodeType":"Return","src":"14770:82:47"}]}]},"documentation":{"id":8386,"nodeType":"StructuredDocumentation","src":"14461:144:47","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":8423,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"14619:6:47","nodeType":"FunctionDefinition","parameters":{"id":8392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8388,"mutability":"mutable","name":"value","nameLocation":"14634:5:47","nodeType":"VariableDeclaration","scope":8423,"src":"14626:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8387,"name":"uint256","nodeType":"ElementaryTypeName","src":"14626:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8391,"mutability":"mutable","name":"rounding","nameLocation":"14650:8:47","nodeType":"VariableDeclaration","scope":8423,"src":"14641:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"},"typeName":{"id":8390,"nodeType":"UserDefinedTypeName","pathNode":{"id":8389,"name":"Rounding","nameLocations":["14641:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"14641:8:47"},"referencedDeclaration":7400,"src":"14641:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"14625:34:47"},"returnParameters":{"id":8395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8423,"src":"14683:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8393,"name":"uint256","nodeType":"ElementaryTypeName","src":"14683:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14682:9:47"},"scope":8443,"src":"14610:259:47","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8441,"nodeType":"Block","src":"15067:48:47","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":8439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":8437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8434,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8427,"src":"15090:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}],"id":8433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15084:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8432,"name":"uint8","nodeType":"ElementaryTypeName","src":"15084:5:47","typeDescriptions":{}}},"id":8435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15084:15:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":8436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15102:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15084:19:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":8438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15107:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15084:24:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8431,"id":8440,"nodeType":"Return","src":"15077:31:47"}]},"documentation":{"id":8424,"nodeType":"StructuredDocumentation","src":"14875:113:47","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":8442,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"15002:16:47","nodeType":"FunctionDefinition","parameters":{"id":8428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8427,"mutability":"mutable","name":"rounding","nameLocation":"15028:8:47","nodeType":"VariableDeclaration","scope":8442,"src":"15019:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"},"typeName":{"id":8426,"nodeType":"UserDefinedTypeName","pathNode":{"id":8425,"name":"Rounding","nameLocations":["15019:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"15019:8:47"},"referencedDeclaration":7400,"src":"15019:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7400","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"15018:19:47"},"returnParameters":{"id":8431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8442,"src":"15061:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8429,"name":"bool","nodeType":"ElementaryTypeName","src":"15061:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15060:6:47"},"scope":8443,"src":"14993:122:47","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8444,"src":"203:14914:47","usedErrors":[7395],"usedEvents":[]}],"src":"103:15015:47"},"id":47},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[10198]},"id":10199,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8445,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"192:24:48"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeCast","contractDependencies":[],"contractKind":"library","documentation":{"id":8446,"nodeType":"StructuredDocumentation","src":"218:545:48","text":" @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."},"fullyImplemented":true,"id":10198,"linearizedBaseContracts":[10198],"name":"SafeCast","nameLocation":"772:8:48","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8447,"nodeType":"StructuredDocumentation","src":"787:68:48","text":" @dev Value doesn't fit in an uint of `bits` size."},"errorSelector":"6dfcc650","id":8453,"name":"SafeCastOverflowedUintDowncast","nameLocation":"866:30:48","nodeType":"ErrorDefinition","parameters":{"id":8452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8449,"mutability":"mutable","name":"bits","nameLocation":"903:4:48","nodeType":"VariableDeclaration","scope":8453,"src":"897:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8448,"name":"uint8","nodeType":"ElementaryTypeName","src":"897:5:48","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8451,"mutability":"mutable","name":"value","nameLocation":"917:5:48","nodeType":"VariableDeclaration","scope":8453,"src":"909:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8450,"name":"uint256","nodeType":"ElementaryTypeName","src":"909:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"896:27:48"},"src":"860:64:48"},{"documentation":{"id":8454,"nodeType":"StructuredDocumentation","src":"930:75:48","text":" @dev An int value doesn't fit in an uint of `bits` size."},"errorSelector":"a8ce4432","id":8458,"name":"SafeCastOverflowedIntToUint","nameLocation":"1016:27:48","nodeType":"ErrorDefinition","parameters":{"id":8457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8456,"mutability":"mutable","name":"value","nameLocation":"1051:5:48","nodeType":"VariableDeclaration","scope":8458,"src":"1044:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8455,"name":"int256","nodeType":"ElementaryTypeName","src":"1044:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1043:14:48"},"src":"1010:48:48"},{"documentation":{"id":8459,"nodeType":"StructuredDocumentation","src":"1064:67:48","text":" @dev Value doesn't fit in an int of `bits` size."},"errorSelector":"327269a7","id":8465,"name":"SafeCastOverflowedIntDowncast","nameLocation":"1142:29:48","nodeType":"ErrorDefinition","parameters":{"id":8464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8461,"mutability":"mutable","name":"bits","nameLocation":"1178:4:48","nodeType":"VariableDeclaration","scope":8465,"src":"1172:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8460,"name":"uint8","nodeType":"ElementaryTypeName","src":"1172:5:48","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8463,"mutability":"mutable","name":"value","nameLocation":"1191:5:48","nodeType":"VariableDeclaration","scope":8465,"src":"1184:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8462,"name":"int256","nodeType":"ElementaryTypeName","src":"1184:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1171:26:48"},"src":"1136:62:48"},{"documentation":{"id":8466,"nodeType":"StructuredDocumentation","src":"1204:75:48","text":" @dev An uint value doesn't fit in an int of `bits` size."},"errorSelector":"24775e06","id":8470,"name":"SafeCastOverflowedUintToInt","nameLocation":"1290:27:48","nodeType":"ErrorDefinition","parameters":{"id":8469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8468,"mutability":"mutable","name":"value","nameLocation":"1326:5:48","nodeType":"VariableDeclaration","scope":8470,"src":"1318:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8467,"name":"uint256","nodeType":"ElementaryTypeName","src":"1318:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1317:15:48"},"src":"1284:49:48"},{"body":{"id":8497,"nodeType":"Block","src":"1690:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8478,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8473,"src":"1704:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1717:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":8480,"name":"uint248","nodeType":"ElementaryTypeName","src":"1717:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":8479,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1712:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1712:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":8483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1726:3:48","memberName":"max","nodeType":"MemberAccess","src":"1712:17:48","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1704:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8491,"nodeType":"IfStatement","src":"1700:105:48","trueBody":{"id":8490,"nodeType":"Block","src":"1731:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":8486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1783:3:48","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":8487,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8473,"src":"1788:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8485,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"1752:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1752:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8489,"nodeType":"RevertStatement","src":"1745:49:48"}]}},{"expression":{"arguments":[{"id":8494,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8473,"src":"1829:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1821:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":8492,"name":"uint248","nodeType":"ElementaryTypeName","src":"1821:7:48","typeDescriptions":{}}},"id":8495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1821:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":8477,"id":8496,"nodeType":"Return","src":"1814:21:48"}]},"documentation":{"id":8471,"nodeType":"StructuredDocumentation","src":"1339:280:48","text":" @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":8498,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1633:9:48","nodeType":"FunctionDefinition","parameters":{"id":8474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8473,"mutability":"mutable","name":"value","nameLocation":"1651:5:48","nodeType":"VariableDeclaration","scope":8498,"src":"1643:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8472,"name":"uint256","nodeType":"ElementaryTypeName","src":"1643:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1642:15:48"},"returnParameters":{"id":8477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8498,"src":"1681:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":8475,"name":"uint248","nodeType":"ElementaryTypeName","src":"1681:7:48","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1680:9:48"},"scope":10198,"src":"1624:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8525,"nodeType":"Block","src":"2199:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8506,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8501,"src":"2213:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2226:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":8508,"name":"uint240","nodeType":"ElementaryTypeName","src":"2226:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":8507,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2221:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2221:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":8511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2235:3:48","memberName":"max","nodeType":"MemberAccess","src":"2221:17:48","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"2213:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8519,"nodeType":"IfStatement","src":"2209:105:48","trueBody":{"id":8518,"nodeType":"Block","src":"2240:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":8514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2292:3:48","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":8515,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8501,"src":"2297:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8513,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"2261:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2261:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8517,"nodeType":"RevertStatement","src":"2254:49:48"}]}},{"expression":{"arguments":[{"id":8522,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8501,"src":"2338:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2330:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":8520,"name":"uint240","nodeType":"ElementaryTypeName","src":"2330:7:48","typeDescriptions":{}}},"id":8523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2330:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":8505,"id":8524,"nodeType":"Return","src":"2323:21:48"}]},"documentation":{"id":8499,"nodeType":"StructuredDocumentation","src":"1848:280:48","text":" @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":8526,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"2142:9:48","nodeType":"FunctionDefinition","parameters":{"id":8502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8501,"mutability":"mutable","name":"value","nameLocation":"2160:5:48","nodeType":"VariableDeclaration","scope":8526,"src":"2152:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8500,"name":"uint256","nodeType":"ElementaryTypeName","src":"2152:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2151:15:48"},"returnParameters":{"id":8505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8504,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8526,"src":"2190:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":8503,"name":"uint240","nodeType":"ElementaryTypeName","src":"2190:7:48","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"2189:9:48"},"scope":10198,"src":"2133:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8553,"nodeType":"Block","src":"2708:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8534,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8529,"src":"2722:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2735:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":8536,"name":"uint232","nodeType":"ElementaryTypeName","src":"2735:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":8535,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2730:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2730:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":8539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2744:3:48","memberName":"max","nodeType":"MemberAccess","src":"2730:17:48","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2722:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8547,"nodeType":"IfStatement","src":"2718:105:48","trueBody":{"id":8546,"nodeType":"Block","src":"2749:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":8542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2801:3:48","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":8543,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8529,"src":"2806:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8541,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"2770:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2770:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8545,"nodeType":"RevertStatement","src":"2763:49:48"}]}},{"expression":{"arguments":[{"id":8550,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8529,"src":"2847:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2839:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":8548,"name":"uint232","nodeType":"ElementaryTypeName","src":"2839:7:48","typeDescriptions":{}}},"id":8551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":8533,"id":8552,"nodeType":"Return","src":"2832:21:48"}]},"documentation":{"id":8527,"nodeType":"StructuredDocumentation","src":"2357:280:48","text":" @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":8554,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2651:9:48","nodeType":"FunctionDefinition","parameters":{"id":8530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8529,"mutability":"mutable","name":"value","nameLocation":"2669:5:48","nodeType":"VariableDeclaration","scope":8554,"src":"2661:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8528,"name":"uint256","nodeType":"ElementaryTypeName","src":"2661:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2660:15:48"},"returnParameters":{"id":8533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8554,"src":"2699:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":8531,"name":"uint232","nodeType":"ElementaryTypeName","src":"2699:7:48","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2698:9:48"},"scope":10198,"src":"2642:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8581,"nodeType":"Block","src":"3217:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8562,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"3231:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3244:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":8564,"name":"uint224","nodeType":"ElementaryTypeName","src":"3244:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":8563,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3239:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3239:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":8567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3253:3:48","memberName":"max","nodeType":"MemberAccess","src":"3239:17:48","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3231:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8575,"nodeType":"IfStatement","src":"3227:105:48","trueBody":{"id":8574,"nodeType":"Block","src":"3258:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":8570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3310:3:48","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":8571,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"3315:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8569,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"3279:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3279:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8573,"nodeType":"RevertStatement","src":"3272:49:48"}]}},{"expression":{"arguments":[{"id":8578,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"3356:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3348:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":8576,"name":"uint224","nodeType":"ElementaryTypeName","src":"3348:7:48","typeDescriptions":{}}},"id":8579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3348:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":8561,"id":8580,"nodeType":"Return","src":"3341:21:48"}]},"documentation":{"id":8555,"nodeType":"StructuredDocumentation","src":"2866:280:48","text":" @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":8582,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"3160:9:48","nodeType":"FunctionDefinition","parameters":{"id":8558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8557,"mutability":"mutable","name":"value","nameLocation":"3178:5:48","nodeType":"VariableDeclaration","scope":8582,"src":"3170:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8556,"name":"uint256","nodeType":"ElementaryTypeName","src":"3170:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3169:15:48"},"returnParameters":{"id":8561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8582,"src":"3208:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8559,"name":"uint224","nodeType":"ElementaryTypeName","src":"3208:7:48","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"3207:9:48"},"scope":10198,"src":"3151:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8609,"nodeType":"Block","src":"3726:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8590,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"3740:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3753:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":8592,"name":"uint216","nodeType":"ElementaryTypeName","src":"3753:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":8591,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3748:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3748:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":8595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3762:3:48","memberName":"max","nodeType":"MemberAccess","src":"3748:17:48","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3740:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8603,"nodeType":"IfStatement","src":"3736:105:48","trueBody":{"id":8602,"nodeType":"Block","src":"3767:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":8598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3819:3:48","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":8599,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"3824:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8597,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"3788:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3788:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8601,"nodeType":"RevertStatement","src":"3781:49:48"}]}},{"expression":{"arguments":[{"id":8606,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"3865:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3857:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":8604,"name":"uint216","nodeType":"ElementaryTypeName","src":"3857:7:48","typeDescriptions":{}}},"id":8607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3857:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":8589,"id":8608,"nodeType":"Return","src":"3850:21:48"}]},"documentation":{"id":8583,"nodeType":"StructuredDocumentation","src":"3375:280:48","text":" @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":8610,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3669:9:48","nodeType":"FunctionDefinition","parameters":{"id":8586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8585,"mutability":"mutable","name":"value","nameLocation":"3687:5:48","nodeType":"VariableDeclaration","scope":8610,"src":"3679:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8584,"name":"uint256","nodeType":"ElementaryTypeName","src":"3679:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3678:15:48"},"returnParameters":{"id":8589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8588,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8610,"src":"3717:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":8587,"name":"uint216","nodeType":"ElementaryTypeName","src":"3717:7:48","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3716:9:48"},"scope":10198,"src":"3660:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8637,"nodeType":"Block","src":"4235:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8618,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8613,"src":"4249:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4262:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":8620,"name":"uint208","nodeType":"ElementaryTypeName","src":"4262:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":8619,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4257:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4257:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":8623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4271:3:48","memberName":"max","nodeType":"MemberAccess","src":"4257:17:48","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"4249:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8631,"nodeType":"IfStatement","src":"4245:105:48","trueBody":{"id":8630,"nodeType":"Block","src":"4276:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":8626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4328:3:48","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":8627,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8613,"src":"4333:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8625,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"4297:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8629,"nodeType":"RevertStatement","src":"4290:49:48"}]}},{"expression":{"arguments":[{"id":8634,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8613,"src":"4374:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4366:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":8632,"name":"uint208","nodeType":"ElementaryTypeName","src":"4366:7:48","typeDescriptions":{}}},"id":8635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4366:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":8617,"id":8636,"nodeType":"Return","src":"4359:21:48"}]},"documentation":{"id":8611,"nodeType":"StructuredDocumentation","src":"3884:280:48","text":" @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":8638,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"4178:9:48","nodeType":"FunctionDefinition","parameters":{"id":8614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8613,"mutability":"mutable","name":"value","nameLocation":"4196:5:48","nodeType":"VariableDeclaration","scope":8638,"src":"4188:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8612,"name":"uint256","nodeType":"ElementaryTypeName","src":"4188:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4187:15:48"},"returnParameters":{"id":8617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8638,"src":"4226:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":8615,"name":"uint208","nodeType":"ElementaryTypeName","src":"4226:7:48","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"4225:9:48"},"scope":10198,"src":"4169:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8665,"nodeType":"Block","src":"4744:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8646,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8641,"src":"4758:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4771:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":8648,"name":"uint200","nodeType":"ElementaryTypeName","src":"4771:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":8647,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4766:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4766:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":8651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4780:3:48","memberName":"max","nodeType":"MemberAccess","src":"4766:17:48","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4758:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8659,"nodeType":"IfStatement","src":"4754:105:48","trueBody":{"id":8658,"nodeType":"Block","src":"4785:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":8654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4837:3:48","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":8655,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8641,"src":"4842:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8653,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"4806:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4806:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8657,"nodeType":"RevertStatement","src":"4799:49:48"}]}},{"expression":{"arguments":[{"id":8662,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8641,"src":"4883:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4875:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":8660,"name":"uint200","nodeType":"ElementaryTypeName","src":"4875:7:48","typeDescriptions":{}}},"id":8663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4875:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":8645,"id":8664,"nodeType":"Return","src":"4868:21:48"}]},"documentation":{"id":8639,"nodeType":"StructuredDocumentation","src":"4393:280:48","text":" @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":8666,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4687:9:48","nodeType":"FunctionDefinition","parameters":{"id":8642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8641,"mutability":"mutable","name":"value","nameLocation":"4705:5:48","nodeType":"VariableDeclaration","scope":8666,"src":"4697:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8640,"name":"uint256","nodeType":"ElementaryTypeName","src":"4697:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4696:15:48"},"returnParameters":{"id":8645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8666,"src":"4735:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":8643,"name":"uint200","nodeType":"ElementaryTypeName","src":"4735:7:48","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4734:9:48"},"scope":10198,"src":"4678:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8693,"nodeType":"Block","src":"5253:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8674,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8669,"src":"5267:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5280:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":8676,"name":"uint192","nodeType":"ElementaryTypeName","src":"5280:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":8675,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5275:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5275:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":8679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5289:3:48","memberName":"max","nodeType":"MemberAccess","src":"5275:17:48","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"5267:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8687,"nodeType":"IfStatement","src":"5263:105:48","trueBody":{"id":8686,"nodeType":"Block","src":"5294:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":8682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5346:3:48","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":8683,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8669,"src":"5351:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8681,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"5315:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5315:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8685,"nodeType":"RevertStatement","src":"5308:49:48"}]}},{"expression":{"arguments":[{"id":8690,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8669,"src":"5392:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5384:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":8688,"name":"uint192","nodeType":"ElementaryTypeName","src":"5384:7:48","typeDescriptions":{}}},"id":8691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5384:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":8673,"id":8692,"nodeType":"Return","src":"5377:21:48"}]},"documentation":{"id":8667,"nodeType":"StructuredDocumentation","src":"4902:280:48","text":" @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":8694,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"5196:9:48","nodeType":"FunctionDefinition","parameters":{"id":8670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8669,"mutability":"mutable","name":"value","nameLocation":"5214:5:48","nodeType":"VariableDeclaration","scope":8694,"src":"5206:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8668,"name":"uint256","nodeType":"ElementaryTypeName","src":"5206:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5205:15:48"},"returnParameters":{"id":8673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8694,"src":"5244:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":8671,"name":"uint192","nodeType":"ElementaryTypeName","src":"5244:7:48","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"5243:9:48"},"scope":10198,"src":"5187:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8721,"nodeType":"Block","src":"5762:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8702,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8697,"src":"5776:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5789:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":8704,"name":"uint184","nodeType":"ElementaryTypeName","src":"5789:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":8703,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5784:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5784:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":8707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5798:3:48","memberName":"max","nodeType":"MemberAccess","src":"5784:17:48","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5776:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8715,"nodeType":"IfStatement","src":"5772:105:48","trueBody":{"id":8714,"nodeType":"Block","src":"5803:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":8710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5855:3:48","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":8711,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8697,"src":"5860:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8709,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"5824:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5824:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8713,"nodeType":"RevertStatement","src":"5817:49:48"}]}},{"expression":{"arguments":[{"id":8718,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8697,"src":"5901:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5893:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":8716,"name":"uint184","nodeType":"ElementaryTypeName","src":"5893:7:48","typeDescriptions":{}}},"id":8719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5893:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":8701,"id":8720,"nodeType":"Return","src":"5886:21:48"}]},"documentation":{"id":8695,"nodeType":"StructuredDocumentation","src":"5411:280:48","text":" @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":8722,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5705:9:48","nodeType":"FunctionDefinition","parameters":{"id":8698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8697,"mutability":"mutable","name":"value","nameLocation":"5723:5:48","nodeType":"VariableDeclaration","scope":8722,"src":"5715:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8696,"name":"uint256","nodeType":"ElementaryTypeName","src":"5715:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5714:15:48"},"returnParameters":{"id":8701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8722,"src":"5753:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":8699,"name":"uint184","nodeType":"ElementaryTypeName","src":"5753:7:48","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5752:9:48"},"scope":10198,"src":"5696:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8749,"nodeType":"Block","src":"6271:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8730,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8725,"src":"6285:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6298:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":8732,"name":"uint176","nodeType":"ElementaryTypeName","src":"6298:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":8731,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6293:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6293:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":8735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6307:3:48","memberName":"max","nodeType":"MemberAccess","src":"6293:17:48","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"6285:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8743,"nodeType":"IfStatement","src":"6281:105:48","trueBody":{"id":8742,"nodeType":"Block","src":"6312:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":8738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6364:3:48","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":8739,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8725,"src":"6369:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8737,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"6333:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6333:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8741,"nodeType":"RevertStatement","src":"6326:49:48"}]}},{"expression":{"arguments":[{"id":8746,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8725,"src":"6410:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6402:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":8744,"name":"uint176","nodeType":"ElementaryTypeName","src":"6402:7:48","typeDescriptions":{}}},"id":8747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6402:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":8729,"id":8748,"nodeType":"Return","src":"6395:21:48"}]},"documentation":{"id":8723,"nodeType":"StructuredDocumentation","src":"5920:280:48","text":" @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":8750,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"6214:9:48","nodeType":"FunctionDefinition","parameters":{"id":8726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8725,"mutability":"mutable","name":"value","nameLocation":"6232:5:48","nodeType":"VariableDeclaration","scope":8750,"src":"6224:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8724,"name":"uint256","nodeType":"ElementaryTypeName","src":"6224:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6223:15:48"},"returnParameters":{"id":8729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8728,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8750,"src":"6262:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":8727,"name":"uint176","nodeType":"ElementaryTypeName","src":"6262:7:48","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"6261:9:48"},"scope":10198,"src":"6205:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8777,"nodeType":"Block","src":"6780:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8758,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8753,"src":"6794:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6807:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":8760,"name":"uint168","nodeType":"ElementaryTypeName","src":"6807:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":8759,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6802:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6802:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":8763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6816:3:48","memberName":"max","nodeType":"MemberAccess","src":"6802:17:48","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6794:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8771,"nodeType":"IfStatement","src":"6790:105:48","trueBody":{"id":8770,"nodeType":"Block","src":"6821:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":8766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6873:3:48","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":8767,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8753,"src":"6878:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8765,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"6842:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6842:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8769,"nodeType":"RevertStatement","src":"6835:49:48"}]}},{"expression":{"arguments":[{"id":8774,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8753,"src":"6919:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6911:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":8772,"name":"uint168","nodeType":"ElementaryTypeName","src":"6911:7:48","typeDescriptions":{}}},"id":8775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":8757,"id":8776,"nodeType":"Return","src":"6904:21:48"}]},"documentation":{"id":8751,"nodeType":"StructuredDocumentation","src":"6429:280:48","text":" @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":8778,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6723:9:48","nodeType":"FunctionDefinition","parameters":{"id":8754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8753,"mutability":"mutable","name":"value","nameLocation":"6741:5:48","nodeType":"VariableDeclaration","scope":8778,"src":"6733:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8752,"name":"uint256","nodeType":"ElementaryTypeName","src":"6733:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6732:15:48"},"returnParameters":{"id":8757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8756,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8778,"src":"6771:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":8755,"name":"uint168","nodeType":"ElementaryTypeName","src":"6771:7:48","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6770:9:48"},"scope":10198,"src":"6714:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8805,"nodeType":"Block","src":"7289:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8786,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"7303:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7316:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8788,"name":"uint160","nodeType":"ElementaryTypeName","src":"7316:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":8787,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7311:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7311:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":8791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7325:3:48","memberName":"max","nodeType":"MemberAccess","src":"7311:17:48","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7303:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8799,"nodeType":"IfStatement","src":"7299:105:48","trueBody":{"id":8798,"nodeType":"Block","src":"7330:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":8794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7382:3:48","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":8795,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"7387:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8793,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"7351:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7351:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8797,"nodeType":"RevertStatement","src":"7344:49:48"}]}},{"expression":{"arguments":[{"id":8802,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"7428:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7420:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8800,"name":"uint160","nodeType":"ElementaryTypeName","src":"7420:7:48","typeDescriptions":{}}},"id":8803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7420:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":8785,"id":8804,"nodeType":"Return","src":"7413:21:48"}]},"documentation":{"id":8779,"nodeType":"StructuredDocumentation","src":"6938:280:48","text":" @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":8806,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"7232:9:48","nodeType":"FunctionDefinition","parameters":{"id":8782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8781,"mutability":"mutable","name":"value","nameLocation":"7250:5:48","nodeType":"VariableDeclaration","scope":8806,"src":"7242:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8780,"name":"uint256","nodeType":"ElementaryTypeName","src":"7242:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7241:15:48"},"returnParameters":{"id":8785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8806,"src":"7280:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":8783,"name":"uint160","nodeType":"ElementaryTypeName","src":"7280:7:48","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"7279:9:48"},"scope":10198,"src":"7223:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8833,"nodeType":"Block","src":"7798:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8814,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8809,"src":"7812:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7825:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":8816,"name":"uint152","nodeType":"ElementaryTypeName","src":"7825:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":8815,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7820:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7820:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":8819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7834:3:48","memberName":"max","nodeType":"MemberAccess","src":"7820:17:48","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7812:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8827,"nodeType":"IfStatement","src":"7808:105:48","trueBody":{"id":8826,"nodeType":"Block","src":"7839:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":8822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7891:3:48","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":8823,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8809,"src":"7896:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8821,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"7860:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7860:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8825,"nodeType":"RevertStatement","src":"7853:49:48"}]}},{"expression":{"arguments":[{"id":8830,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8809,"src":"7937:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7929:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":8828,"name":"uint152","nodeType":"ElementaryTypeName","src":"7929:7:48","typeDescriptions":{}}},"id":8831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7929:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":8813,"id":8832,"nodeType":"Return","src":"7922:21:48"}]},"documentation":{"id":8807,"nodeType":"StructuredDocumentation","src":"7447:280:48","text":" @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":8834,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7741:9:48","nodeType":"FunctionDefinition","parameters":{"id":8810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8809,"mutability":"mutable","name":"value","nameLocation":"7759:5:48","nodeType":"VariableDeclaration","scope":8834,"src":"7751:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8808,"name":"uint256","nodeType":"ElementaryTypeName","src":"7751:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7750:15:48"},"returnParameters":{"id":8813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8834,"src":"7789:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":8811,"name":"uint152","nodeType":"ElementaryTypeName","src":"7789:7:48","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7788:9:48"},"scope":10198,"src":"7732:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8861,"nodeType":"Block","src":"8307:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8842,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8837,"src":"8321:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8334:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":8844,"name":"uint144","nodeType":"ElementaryTypeName","src":"8334:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":8843,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8329:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8329:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":8847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8343:3:48","memberName":"max","nodeType":"MemberAccess","src":"8329:17:48","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8321:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8855,"nodeType":"IfStatement","src":"8317:105:48","trueBody":{"id":8854,"nodeType":"Block","src":"8348:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":8850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8400:3:48","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":8851,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8837,"src":"8405:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8849,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"8369:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8369:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8853,"nodeType":"RevertStatement","src":"8362:49:48"}]}},{"expression":{"arguments":[{"id":8858,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8837,"src":"8446:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8438:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":8856,"name":"uint144","nodeType":"ElementaryTypeName","src":"8438:7:48","typeDescriptions":{}}},"id":8859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8438:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":8841,"id":8860,"nodeType":"Return","src":"8431:21:48"}]},"documentation":{"id":8835,"nodeType":"StructuredDocumentation","src":"7956:280:48","text":" @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":8862,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"8250:9:48","nodeType":"FunctionDefinition","parameters":{"id":8838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8837,"mutability":"mutable","name":"value","nameLocation":"8268:5:48","nodeType":"VariableDeclaration","scope":8862,"src":"8260:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8836,"name":"uint256","nodeType":"ElementaryTypeName","src":"8260:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8259:15:48"},"returnParameters":{"id":8841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8862,"src":"8298:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":8839,"name":"uint144","nodeType":"ElementaryTypeName","src":"8298:7:48","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8297:9:48"},"scope":10198,"src":"8241:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8889,"nodeType":"Block","src":"8816:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8870,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8865,"src":"8830:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8843:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":8872,"name":"uint136","nodeType":"ElementaryTypeName","src":"8843:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":8871,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8838:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8838:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":8875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8852:3:48","memberName":"max","nodeType":"MemberAccess","src":"8838:17:48","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8830:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8883,"nodeType":"IfStatement","src":"8826:105:48","trueBody":{"id":8882,"nodeType":"Block","src":"8857:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":8878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8909:3:48","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":8879,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8865,"src":"8914:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8877,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"8878:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8878:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8881,"nodeType":"RevertStatement","src":"8871:49:48"}]}},{"expression":{"arguments":[{"id":8886,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8865,"src":"8955:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8947:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":8884,"name":"uint136","nodeType":"ElementaryTypeName","src":"8947:7:48","typeDescriptions":{}}},"id":8887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8947:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":8869,"id":8888,"nodeType":"Return","src":"8940:21:48"}]},"documentation":{"id":8863,"nodeType":"StructuredDocumentation","src":"8465:280:48","text":" @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":8890,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8759:9:48","nodeType":"FunctionDefinition","parameters":{"id":8866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8865,"mutability":"mutable","name":"value","nameLocation":"8777:5:48","nodeType":"VariableDeclaration","scope":8890,"src":"8769:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8864,"name":"uint256","nodeType":"ElementaryTypeName","src":"8769:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8768:15:48"},"returnParameters":{"id":8869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8868,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8890,"src":"8807:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":8867,"name":"uint136","nodeType":"ElementaryTypeName","src":"8807:7:48","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8806:9:48"},"scope":10198,"src":"8750:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8917,"nodeType":"Block","src":"9325:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8898,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8893,"src":"9339:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9352:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":8900,"name":"uint128","nodeType":"ElementaryTypeName","src":"9352:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":8899,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9347:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9347:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":8903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9361:3:48","memberName":"max","nodeType":"MemberAccess","src":"9347:17:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9339:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8911,"nodeType":"IfStatement","src":"9335:105:48","trueBody":{"id":8910,"nodeType":"Block","src":"9366:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":8906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9418:3:48","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":8907,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8893,"src":"9423:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8905,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"9387:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9387:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8909,"nodeType":"RevertStatement","src":"9380:49:48"}]}},{"expression":{"arguments":[{"id":8914,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8893,"src":"9464:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9456:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":8912,"name":"uint128","nodeType":"ElementaryTypeName","src":"9456:7:48","typeDescriptions":{}}},"id":8915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9456:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":8897,"id":8916,"nodeType":"Return","src":"9449:21:48"}]},"documentation":{"id":8891,"nodeType":"StructuredDocumentation","src":"8974:280:48","text":" @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":8918,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9268:9:48","nodeType":"FunctionDefinition","parameters":{"id":8894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8893,"mutability":"mutable","name":"value","nameLocation":"9286:5:48","nodeType":"VariableDeclaration","scope":8918,"src":"9278:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8892,"name":"uint256","nodeType":"ElementaryTypeName","src":"9278:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9277:15:48"},"returnParameters":{"id":8897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8896,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8918,"src":"9316:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":8895,"name":"uint128","nodeType":"ElementaryTypeName","src":"9316:7:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9315:9:48"},"scope":10198,"src":"9259:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8945,"nodeType":"Block","src":"9834:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8926,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8921,"src":"9848:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9861:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":8928,"name":"uint120","nodeType":"ElementaryTypeName","src":"9861:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":8927,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9856:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9856:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":8931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9870:3:48","memberName":"max","nodeType":"MemberAccess","src":"9856:17:48","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9848:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8939,"nodeType":"IfStatement","src":"9844:105:48","trueBody":{"id":8938,"nodeType":"Block","src":"9875:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":8934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9927:3:48","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":8935,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8921,"src":"9932:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8933,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"9896:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9896:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8937,"nodeType":"RevertStatement","src":"9889:49:48"}]}},{"expression":{"arguments":[{"id":8942,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8921,"src":"9973:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9965:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":8940,"name":"uint120","nodeType":"ElementaryTypeName","src":"9965:7:48","typeDescriptions":{}}},"id":8943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9965:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":8925,"id":8944,"nodeType":"Return","src":"9958:21:48"}]},"documentation":{"id":8919,"nodeType":"StructuredDocumentation","src":"9483:280:48","text":" @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":8946,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9777:9:48","nodeType":"FunctionDefinition","parameters":{"id":8922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8921,"mutability":"mutable","name":"value","nameLocation":"9795:5:48","nodeType":"VariableDeclaration","scope":8946,"src":"9787:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8920,"name":"uint256","nodeType":"ElementaryTypeName","src":"9787:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9786:15:48"},"returnParameters":{"id":8925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8946,"src":"9825:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":8923,"name":"uint120","nodeType":"ElementaryTypeName","src":"9825:7:48","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9824:9:48"},"scope":10198,"src":"9768:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8973,"nodeType":"Block","src":"10343:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8954,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8949,"src":"10357:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10370:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":8956,"name":"uint112","nodeType":"ElementaryTypeName","src":"10370:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":8955,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10365:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10365:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":8959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10379:3:48","memberName":"max","nodeType":"MemberAccess","src":"10365:17:48","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10357:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8967,"nodeType":"IfStatement","src":"10353:105:48","trueBody":{"id":8966,"nodeType":"Block","src":"10384:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":8962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10436:3:48","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":8963,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8949,"src":"10441:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8961,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"10405:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10405:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8965,"nodeType":"RevertStatement","src":"10398:49:48"}]}},{"expression":{"arguments":[{"id":8970,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8949,"src":"10482:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10474:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":8968,"name":"uint112","nodeType":"ElementaryTypeName","src":"10474:7:48","typeDescriptions":{}}},"id":8971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10474:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":8953,"id":8972,"nodeType":"Return","src":"10467:21:48"}]},"documentation":{"id":8947,"nodeType":"StructuredDocumentation","src":"9992:280:48","text":" @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":8974,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10286:9:48","nodeType":"FunctionDefinition","parameters":{"id":8950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8949,"mutability":"mutable","name":"value","nameLocation":"10304:5:48","nodeType":"VariableDeclaration","scope":8974,"src":"10296:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8948,"name":"uint256","nodeType":"ElementaryTypeName","src":"10296:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10295:15:48"},"returnParameters":{"id":8953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8952,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8974,"src":"10334:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":8951,"name":"uint112","nodeType":"ElementaryTypeName","src":"10334:7:48","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10333:9:48"},"scope":10198,"src":"10277:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9001,"nodeType":"Block","src":"10852:152:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8982,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8977,"src":"10866:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10879:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":8984,"name":"uint104","nodeType":"ElementaryTypeName","src":"10879:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":8983,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10874:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10874:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":8987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10888:3:48","memberName":"max","nodeType":"MemberAccess","src":"10874:17:48","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10866:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8995,"nodeType":"IfStatement","src":"10862:105:48","trueBody":{"id":8994,"nodeType":"Block","src":"10893:74:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":8990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10945:3:48","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":8991,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8977,"src":"10950:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8989,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"10914:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":8992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10914:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8993,"nodeType":"RevertStatement","src":"10907:49:48"}]}},{"expression":{"arguments":[{"id":8998,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8977,"src":"10991:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10983:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":8996,"name":"uint104","nodeType":"ElementaryTypeName","src":"10983:7:48","typeDescriptions":{}}},"id":8999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10983:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":8981,"id":9000,"nodeType":"Return","src":"10976:21:48"}]},"documentation":{"id":8975,"nodeType":"StructuredDocumentation","src":"10501:280:48","text":" @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":9002,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10795:9:48","nodeType":"FunctionDefinition","parameters":{"id":8978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8977,"mutability":"mutable","name":"value","nameLocation":"10813:5:48","nodeType":"VariableDeclaration","scope":9002,"src":"10805:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8976,"name":"uint256","nodeType":"ElementaryTypeName","src":"10805:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10804:15:48"},"returnParameters":{"id":8981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9002,"src":"10843:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":8979,"name":"uint104","nodeType":"ElementaryTypeName","src":"10843:7:48","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10842:9:48"},"scope":10198,"src":"10786:218:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9029,"nodeType":"Block","src":"11355:149:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9010,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"11369:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11382:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":9012,"name":"uint96","nodeType":"ElementaryTypeName","src":"11382:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":9011,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11377:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11377:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":9015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11390:3:48","memberName":"max","nodeType":"MemberAccess","src":"11377:16:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11369:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9023,"nodeType":"IfStatement","src":"11365:103:48","trueBody":{"id":9022,"nodeType":"Block","src":"11395:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":9018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11447:2:48","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":9019,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"11451:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9017,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"11416:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11416:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9021,"nodeType":"RevertStatement","src":"11409:48:48"}]}},{"expression":{"arguments":[{"id":9026,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"11491:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11484:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":9024,"name":"uint96","nodeType":"ElementaryTypeName","src":"11484:6:48","typeDescriptions":{}}},"id":9027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11484:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":9009,"id":9028,"nodeType":"Return","src":"11477:20:48"}]},"documentation":{"id":9003,"nodeType":"StructuredDocumentation","src":"11010:276:48","text":" @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":9030,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11300:8:48","nodeType":"FunctionDefinition","parameters":{"id":9006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9005,"mutability":"mutable","name":"value","nameLocation":"11317:5:48","nodeType":"VariableDeclaration","scope":9030,"src":"11309:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9004,"name":"uint256","nodeType":"ElementaryTypeName","src":"11309:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11308:15:48"},"returnParameters":{"id":9009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9030,"src":"11347:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9007,"name":"uint96","nodeType":"ElementaryTypeName","src":"11347:6:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11346:8:48"},"scope":10198,"src":"11291:213:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9057,"nodeType":"Block","src":"11855:149:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9038,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9033,"src":"11869:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11882:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":9040,"name":"uint88","nodeType":"ElementaryTypeName","src":"11882:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":9039,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11877:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11877:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":9043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11890:3:48","memberName":"max","nodeType":"MemberAccess","src":"11877:16:48","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11869:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9051,"nodeType":"IfStatement","src":"11865:103:48","trueBody":{"id":9050,"nodeType":"Block","src":"11895:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":9046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11947:2:48","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":9047,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9033,"src":"11951:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9045,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"11916:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11916:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9049,"nodeType":"RevertStatement","src":"11909:48:48"}]}},{"expression":{"arguments":[{"id":9054,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9033,"src":"11991:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11984:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":9052,"name":"uint88","nodeType":"ElementaryTypeName","src":"11984:6:48","typeDescriptions":{}}},"id":9055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11984:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":9037,"id":9056,"nodeType":"Return","src":"11977:20:48"}]},"documentation":{"id":9031,"nodeType":"StructuredDocumentation","src":"11510:276:48","text":" @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":9058,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11800:8:48","nodeType":"FunctionDefinition","parameters":{"id":9034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9033,"mutability":"mutable","name":"value","nameLocation":"11817:5:48","nodeType":"VariableDeclaration","scope":9058,"src":"11809:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9032,"name":"uint256","nodeType":"ElementaryTypeName","src":"11809:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11808:15:48"},"returnParameters":{"id":9037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9036,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9058,"src":"11847:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":9035,"name":"uint88","nodeType":"ElementaryTypeName","src":"11847:6:48","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11846:8:48"},"scope":10198,"src":"11791:213:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9085,"nodeType":"Block","src":"12355:149:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9066,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9061,"src":"12369:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12382:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":9068,"name":"uint80","nodeType":"ElementaryTypeName","src":"12382:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":9067,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12377:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12377:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":9071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12390:3:48","memberName":"max","nodeType":"MemberAccess","src":"12377:16:48","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12369:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9079,"nodeType":"IfStatement","src":"12365:103:48","trueBody":{"id":9078,"nodeType":"Block","src":"12395:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":9074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12447:2:48","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":9075,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9061,"src":"12451:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9073,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"12416:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12416:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9077,"nodeType":"RevertStatement","src":"12409:48:48"}]}},{"expression":{"arguments":[{"id":9082,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9061,"src":"12491:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12484:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":9080,"name":"uint80","nodeType":"ElementaryTypeName","src":"12484:6:48","typeDescriptions":{}}},"id":9083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12484:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":9065,"id":9084,"nodeType":"Return","src":"12477:20:48"}]},"documentation":{"id":9059,"nodeType":"StructuredDocumentation","src":"12010:276:48","text":" @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":9086,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12300:8:48","nodeType":"FunctionDefinition","parameters":{"id":9062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9061,"mutability":"mutable","name":"value","nameLocation":"12317:5:48","nodeType":"VariableDeclaration","scope":9086,"src":"12309:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9060,"name":"uint256","nodeType":"ElementaryTypeName","src":"12309:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12308:15:48"},"returnParameters":{"id":9065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9064,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9086,"src":"12347:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":9063,"name":"uint80","nodeType":"ElementaryTypeName","src":"12347:6:48","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12346:8:48"},"scope":10198,"src":"12291:213:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9113,"nodeType":"Block","src":"12855:149:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9094,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9089,"src":"12869:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12882:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":9096,"name":"uint72","nodeType":"ElementaryTypeName","src":"12882:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":9095,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12877:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12877:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":9099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12890:3:48","memberName":"max","nodeType":"MemberAccess","src":"12877:16:48","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12869:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9107,"nodeType":"IfStatement","src":"12865:103:48","trueBody":{"id":9106,"nodeType":"Block","src":"12895:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":9102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12947:2:48","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":9103,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9089,"src":"12951:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9101,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"12916:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12916:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9105,"nodeType":"RevertStatement","src":"12909:48:48"}]}},{"expression":{"arguments":[{"id":9110,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9089,"src":"12991:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12984:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":9108,"name":"uint72","nodeType":"ElementaryTypeName","src":"12984:6:48","typeDescriptions":{}}},"id":9111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12984:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":9093,"id":9112,"nodeType":"Return","src":"12977:20:48"}]},"documentation":{"id":9087,"nodeType":"StructuredDocumentation","src":"12510:276:48","text":" @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":9114,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12800:8:48","nodeType":"FunctionDefinition","parameters":{"id":9090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9089,"mutability":"mutable","name":"value","nameLocation":"12817:5:48","nodeType":"VariableDeclaration","scope":9114,"src":"12809:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9088,"name":"uint256","nodeType":"ElementaryTypeName","src":"12809:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12808:15:48"},"returnParameters":{"id":9093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9114,"src":"12847:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":9091,"name":"uint72","nodeType":"ElementaryTypeName","src":"12847:6:48","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12846:8:48"},"scope":10198,"src":"12791:213:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9141,"nodeType":"Block","src":"13355:149:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9122,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"13369:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13382:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":9124,"name":"uint64","nodeType":"ElementaryTypeName","src":"13382:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":9123,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13377:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13377:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":9127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13390:3:48","memberName":"max","nodeType":"MemberAccess","src":"13377:16:48","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13369:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9135,"nodeType":"IfStatement","src":"13365:103:48","trueBody":{"id":9134,"nodeType":"Block","src":"13395:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":9130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13447:2:48","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":9131,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"13451:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9129,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"13416:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13416:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9133,"nodeType":"RevertStatement","src":"13409:48:48"}]}},{"expression":{"arguments":[{"id":9138,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"13491:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13484:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":9136,"name":"uint64","nodeType":"ElementaryTypeName","src":"13484:6:48","typeDescriptions":{}}},"id":9139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13484:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":9121,"id":9140,"nodeType":"Return","src":"13477:20:48"}]},"documentation":{"id":9115,"nodeType":"StructuredDocumentation","src":"13010:276:48","text":" @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":9142,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13300:8:48","nodeType":"FunctionDefinition","parameters":{"id":9118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9117,"mutability":"mutable","name":"value","nameLocation":"13317:5:48","nodeType":"VariableDeclaration","scope":9142,"src":"13309:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9116,"name":"uint256","nodeType":"ElementaryTypeName","src":"13309:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13308:15:48"},"returnParameters":{"id":9121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9142,"src":"13347:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9119,"name":"uint64","nodeType":"ElementaryTypeName","src":"13347:6:48","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13346:8:48"},"scope":10198,"src":"13291:213:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9169,"nodeType":"Block","src":"13855:149:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9150,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9145,"src":"13869:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13882:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":9152,"name":"uint56","nodeType":"ElementaryTypeName","src":"13882:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":9151,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13877:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13877:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":9155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13890:3:48","memberName":"max","nodeType":"MemberAccess","src":"13877:16:48","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13869:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9163,"nodeType":"IfStatement","src":"13865:103:48","trueBody":{"id":9162,"nodeType":"Block","src":"13895:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":9158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13947:2:48","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":9159,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9145,"src":"13951:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9157,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"13916:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13916:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9161,"nodeType":"RevertStatement","src":"13909:48:48"}]}},{"expression":{"arguments":[{"id":9166,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9145,"src":"13991:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13984:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":9164,"name":"uint56","nodeType":"ElementaryTypeName","src":"13984:6:48","typeDescriptions":{}}},"id":9167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13984:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":9149,"id":9168,"nodeType":"Return","src":"13977:20:48"}]},"documentation":{"id":9143,"nodeType":"StructuredDocumentation","src":"13510:276:48","text":" @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":9170,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13800:8:48","nodeType":"FunctionDefinition","parameters":{"id":9146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9145,"mutability":"mutable","name":"value","nameLocation":"13817:5:48","nodeType":"VariableDeclaration","scope":9170,"src":"13809:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9144,"name":"uint256","nodeType":"ElementaryTypeName","src":"13809:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13808:15:48"},"returnParameters":{"id":9149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9148,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9170,"src":"13847:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":9147,"name":"uint56","nodeType":"ElementaryTypeName","src":"13847:6:48","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13846:8:48"},"scope":10198,"src":"13791:213:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9197,"nodeType":"Block","src":"14355:149:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9178,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9173,"src":"14369:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14382:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":9180,"name":"uint48","nodeType":"ElementaryTypeName","src":"14382:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":9179,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14377:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14377:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":9183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14390:3:48","memberName":"max","nodeType":"MemberAccess","src":"14377:16:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14369:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9191,"nodeType":"IfStatement","src":"14365:103:48","trueBody":{"id":9190,"nodeType":"Block","src":"14395:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":9186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14447:2:48","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":9187,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9173,"src":"14451:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9185,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"14416:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14416:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9189,"nodeType":"RevertStatement","src":"14409:48:48"}]}},{"expression":{"arguments":[{"id":9194,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9173,"src":"14491:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14484:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":9192,"name":"uint48","nodeType":"ElementaryTypeName","src":"14484:6:48","typeDescriptions":{}}},"id":9195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14484:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":9177,"id":9196,"nodeType":"Return","src":"14477:20:48"}]},"documentation":{"id":9171,"nodeType":"StructuredDocumentation","src":"14010:276:48","text":" @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":9198,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14300:8:48","nodeType":"FunctionDefinition","parameters":{"id":9174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9173,"mutability":"mutable","name":"value","nameLocation":"14317:5:48","nodeType":"VariableDeclaration","scope":9198,"src":"14309:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9172,"name":"uint256","nodeType":"ElementaryTypeName","src":"14309:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14308:15:48"},"returnParameters":{"id":9177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9198,"src":"14347:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":9175,"name":"uint48","nodeType":"ElementaryTypeName","src":"14347:6:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14346:8:48"},"scope":10198,"src":"14291:213:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9225,"nodeType":"Block","src":"14855:149:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9206,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9201,"src":"14869:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14882:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":9208,"name":"uint40","nodeType":"ElementaryTypeName","src":"14882:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":9207,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14877:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14877:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":9211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14890:3:48","memberName":"max","nodeType":"MemberAccess","src":"14877:16:48","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14869:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9219,"nodeType":"IfStatement","src":"14865:103:48","trueBody":{"id":9218,"nodeType":"Block","src":"14895:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":9214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14947:2:48","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":9215,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9201,"src":"14951:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9213,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"14916:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14916:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9217,"nodeType":"RevertStatement","src":"14909:48:48"}]}},{"expression":{"arguments":[{"id":9222,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9201,"src":"14991:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14984:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":9220,"name":"uint40","nodeType":"ElementaryTypeName","src":"14984:6:48","typeDescriptions":{}}},"id":9223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14984:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":9205,"id":9224,"nodeType":"Return","src":"14977:20:48"}]},"documentation":{"id":9199,"nodeType":"StructuredDocumentation","src":"14510:276:48","text":" @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":9226,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14800:8:48","nodeType":"FunctionDefinition","parameters":{"id":9202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9201,"mutability":"mutable","name":"value","nameLocation":"14817:5:48","nodeType":"VariableDeclaration","scope":9226,"src":"14809:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9200,"name":"uint256","nodeType":"ElementaryTypeName","src":"14809:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14808:15:48"},"returnParameters":{"id":9205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9226,"src":"14847:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9203,"name":"uint40","nodeType":"ElementaryTypeName","src":"14847:6:48","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14846:8:48"},"scope":10198,"src":"14791:213:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9253,"nodeType":"Block","src":"15355:149:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9234,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9229,"src":"15369:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15382:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":9236,"name":"uint32","nodeType":"ElementaryTypeName","src":"15382:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":9235,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15377:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15377:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":9239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15390:3:48","memberName":"max","nodeType":"MemberAccess","src":"15377:16:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15369:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9247,"nodeType":"IfStatement","src":"15365:103:48","trueBody":{"id":9246,"nodeType":"Block","src":"15395:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":9242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15447:2:48","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":9243,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9229,"src":"15451:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9241,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"15416:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15416:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9245,"nodeType":"RevertStatement","src":"15409:48:48"}]}},{"expression":{"arguments":[{"id":9250,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9229,"src":"15491:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15484:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":9248,"name":"uint32","nodeType":"ElementaryTypeName","src":"15484:6:48","typeDescriptions":{}}},"id":9251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15484:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":9233,"id":9252,"nodeType":"Return","src":"15477:20:48"}]},"documentation":{"id":9227,"nodeType":"StructuredDocumentation","src":"15010:276:48","text":" @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":9254,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15300:8:48","nodeType":"FunctionDefinition","parameters":{"id":9230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9229,"mutability":"mutable","name":"value","nameLocation":"15317:5:48","nodeType":"VariableDeclaration","scope":9254,"src":"15309:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9228,"name":"uint256","nodeType":"ElementaryTypeName","src":"15309:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15308:15:48"},"returnParameters":{"id":9233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9232,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9254,"src":"15347:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":9231,"name":"uint32","nodeType":"ElementaryTypeName","src":"15347:6:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15346:8:48"},"scope":10198,"src":"15291:213:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9281,"nodeType":"Block","src":"15855:149:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9262,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9257,"src":"15869:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15882:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":9264,"name":"uint24","nodeType":"ElementaryTypeName","src":"15882:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":9263,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15877:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15877:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":9267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15890:3:48","memberName":"max","nodeType":"MemberAccess","src":"15877:16:48","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15869:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9275,"nodeType":"IfStatement","src":"15865:103:48","trueBody":{"id":9274,"nodeType":"Block","src":"15895:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":9270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15947:2:48","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":9271,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9257,"src":"15951:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9269,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"15916:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15916:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9273,"nodeType":"RevertStatement","src":"15909:48:48"}]}},{"expression":{"arguments":[{"id":9278,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9257,"src":"15991:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15984:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":9276,"name":"uint24","nodeType":"ElementaryTypeName","src":"15984:6:48","typeDescriptions":{}}},"id":9279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15984:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":9261,"id":9280,"nodeType":"Return","src":"15977:20:48"}]},"documentation":{"id":9255,"nodeType":"StructuredDocumentation","src":"15510:276:48","text":" @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":9282,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15800:8:48","nodeType":"FunctionDefinition","parameters":{"id":9258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9257,"mutability":"mutable","name":"value","nameLocation":"15817:5:48","nodeType":"VariableDeclaration","scope":9282,"src":"15809:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9256,"name":"uint256","nodeType":"ElementaryTypeName","src":"15809:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15808:15:48"},"returnParameters":{"id":9261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9260,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9282,"src":"15847:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":9259,"name":"uint24","nodeType":"ElementaryTypeName","src":"15847:6:48","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15846:8:48"},"scope":10198,"src":"15791:213:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9309,"nodeType":"Block","src":"16355:149:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9290,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9285,"src":"16369:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16382:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":9292,"name":"uint16","nodeType":"ElementaryTypeName","src":"16382:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":9291,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16377:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16377:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":9295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16390:3:48","memberName":"max","nodeType":"MemberAccess","src":"16377:16:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16369:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9303,"nodeType":"IfStatement","src":"16365:103:48","trueBody":{"id":9302,"nodeType":"Block","src":"16395:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":9298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16447:2:48","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":9299,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9285,"src":"16451:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9297,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"16416:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16416:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9301,"nodeType":"RevertStatement","src":"16409:48:48"}]}},{"expression":{"arguments":[{"id":9306,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9285,"src":"16491:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16484:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":9304,"name":"uint16","nodeType":"ElementaryTypeName","src":"16484:6:48","typeDescriptions":{}}},"id":9307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16484:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":9289,"id":9308,"nodeType":"Return","src":"16477:20:48"}]},"documentation":{"id":9283,"nodeType":"StructuredDocumentation","src":"16010:276:48","text":" @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":9310,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16300:8:48","nodeType":"FunctionDefinition","parameters":{"id":9286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9285,"mutability":"mutable","name":"value","nameLocation":"16317:5:48","nodeType":"VariableDeclaration","scope":9310,"src":"16309:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9284,"name":"uint256","nodeType":"ElementaryTypeName","src":"16309:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16308:15:48"},"returnParameters":{"id":9289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9288,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9310,"src":"16347:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9287,"name":"uint16","nodeType":"ElementaryTypeName","src":"16347:6:48","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16346:8:48"},"scope":10198,"src":"16291:213:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9337,"nodeType":"Block","src":"16849:146:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9318,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9313,"src":"16863:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":9321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16876:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":9320,"name":"uint8","nodeType":"ElementaryTypeName","src":"16876:5:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":9319,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16871:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16871:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":9323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16883:3:48","memberName":"max","nodeType":"MemberAccess","src":"16871:15:48","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16863:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9331,"nodeType":"IfStatement","src":"16859:101:48","trueBody":{"id":9330,"nodeType":"Block","src":"16888:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":9326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16940:1:48","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":9327,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9313,"src":"16943:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9325,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"16909:30:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256) pure"}},"id":9328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16909:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9329,"nodeType":"RevertStatement","src":"16902:47:48"}]}},{"expression":{"arguments":[{"id":9334,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9313,"src":"16982:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16976:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":9332,"name":"uint8","nodeType":"ElementaryTypeName","src":"16976:5:48","typeDescriptions":{}}},"id":9335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16976:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":9317,"id":9336,"nodeType":"Return","src":"16969:19:48"}]},"documentation":{"id":9311,"nodeType":"StructuredDocumentation","src":"16510:272:48","text":" @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":9338,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16796:7:48","nodeType":"FunctionDefinition","parameters":{"id":9314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9313,"mutability":"mutable","name":"value","nameLocation":"16812:5:48","nodeType":"VariableDeclaration","scope":9338,"src":"16804:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9312,"name":"uint256","nodeType":"ElementaryTypeName","src":"16804:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16803:15:48"},"returnParameters":{"id":9317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9338,"src":"16842:5:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9315,"name":"uint8","nodeType":"ElementaryTypeName","src":"16842:5:48","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16841:7:48"},"scope":10198,"src":"16787:208:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9360,"nodeType":"Block","src":"17231:128:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9346,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9341,"src":"17245:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":9347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17253:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17245:9:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9354,"nodeType":"IfStatement","src":"17241:81:48","trueBody":{"id":9353,"nodeType":"Block","src":"17256:66:48","statements":[{"errorCall":{"arguments":[{"id":9350,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9341,"src":"17305:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9349,"name":"SafeCastOverflowedIntToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8458,"src":"17277:27:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_int256_$returns$__$","typeString":"function (int256) pure"}},"id":9351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17277:34:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9352,"nodeType":"RevertStatement","src":"17270:41:48"}]}},{"expression":{"arguments":[{"id":9357,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9341,"src":"17346:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17338:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9355,"name":"uint256","nodeType":"ElementaryTypeName","src":"17338:7:48","typeDescriptions":{}}},"id":9358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17338:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9345,"id":9359,"nodeType":"Return","src":"17331:21:48"}]},"documentation":{"id":9339,"nodeType":"StructuredDocumentation","src":"17001:160:48","text":" @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0."},"id":9361,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17175:9:48","nodeType":"FunctionDefinition","parameters":{"id":9342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9341,"mutability":"mutable","name":"value","nameLocation":"17192:5:48","nodeType":"VariableDeclaration","scope":9361,"src":"17185:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9340,"name":"int256","nodeType":"ElementaryTypeName","src":"17185:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17184:14:48"},"returnParameters":{"id":9345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9361,"src":"17222:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9343,"name":"uint256","nodeType":"ElementaryTypeName","src":"17222:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17221:9:48"},"scope":10198,"src":"17166:193:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9386,"nodeType":"Block","src":"17756:150:48","statements":[{"expression":{"id":9374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9369,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9367,"src":"17766:10:48","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9372,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9364,"src":"17786:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17779:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":9370,"name":"int248","nodeType":"ElementaryTypeName","src":"17779:6:48","typeDescriptions":{}}},"id":9373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17779:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17766:26:48","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"id":9375,"nodeType":"ExpressionStatement","src":"17766:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9376,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9367,"src":"17806:10:48","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9364,"src":"17820:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17806:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9385,"nodeType":"IfStatement","src":"17802:98:48","trueBody":{"id":9384,"nodeType":"Block","src":"17827:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":9380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17878:3:48","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":9381,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9364,"src":"17883:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9379,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"17848:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17848:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9383,"nodeType":"RevertStatement","src":"17841:48:48"}]}}]},"documentation":{"id":9362,"nodeType":"StructuredDocumentation","src":"17365:312:48","text":" @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":9387,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17691:8:48","nodeType":"FunctionDefinition","parameters":{"id":9365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9364,"mutability":"mutable","name":"value","nameLocation":"17707:5:48","nodeType":"VariableDeclaration","scope":9387,"src":"17700:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9363,"name":"int256","nodeType":"ElementaryTypeName","src":"17700:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17699:14:48"},"returnParameters":{"id":9368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9367,"mutability":"mutable","name":"downcasted","nameLocation":"17744:10:48","nodeType":"VariableDeclaration","scope":9387,"src":"17737:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":9366,"name":"int248","nodeType":"ElementaryTypeName","src":"17737:6:48","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17736:19:48"},"scope":10198,"src":"17682:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9412,"nodeType":"Block","src":"18303:150:48","statements":[{"expression":{"id":9400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9395,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9393,"src":"18313:10:48","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9398,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"18333:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18326:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":9396,"name":"int240","nodeType":"ElementaryTypeName","src":"18326:6:48","typeDescriptions":{}}},"id":9399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18326:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18313:26:48","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"id":9401,"nodeType":"ExpressionStatement","src":"18313:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9402,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9393,"src":"18353:10:48","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9403,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"18367:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18353:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9411,"nodeType":"IfStatement","src":"18349:98:48","trueBody":{"id":9410,"nodeType":"Block","src":"18374:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":9406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18425:3:48","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":9407,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"18430:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9405,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"18395:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18395:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9409,"nodeType":"RevertStatement","src":"18388:48:48"}]}}]},"documentation":{"id":9388,"nodeType":"StructuredDocumentation","src":"17912:312:48","text":" @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":9413,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18238:8:48","nodeType":"FunctionDefinition","parameters":{"id":9391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9390,"mutability":"mutable","name":"value","nameLocation":"18254:5:48","nodeType":"VariableDeclaration","scope":9413,"src":"18247:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9389,"name":"int256","nodeType":"ElementaryTypeName","src":"18247:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18246:14:48"},"returnParameters":{"id":9394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9393,"mutability":"mutable","name":"downcasted","nameLocation":"18291:10:48","nodeType":"VariableDeclaration","scope":9413,"src":"18284:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":9392,"name":"int240","nodeType":"ElementaryTypeName","src":"18284:6:48","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18283:19:48"},"scope":10198,"src":"18229:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9438,"nodeType":"Block","src":"18850:150:48","statements":[{"expression":{"id":9426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9421,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9419,"src":"18860:10:48","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9424,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9416,"src":"18880:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18873:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":9422,"name":"int232","nodeType":"ElementaryTypeName","src":"18873:6:48","typeDescriptions":{}}},"id":9425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18873:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18860:26:48","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"id":9427,"nodeType":"ExpressionStatement","src":"18860:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9428,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9419,"src":"18900:10:48","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9429,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9416,"src":"18914:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18900:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9437,"nodeType":"IfStatement","src":"18896:98:48","trueBody":{"id":9436,"nodeType":"Block","src":"18921:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":9432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18972:3:48","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":9433,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9416,"src":"18977:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9431,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"18942:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18942:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9435,"nodeType":"RevertStatement","src":"18935:48:48"}]}}]},"documentation":{"id":9414,"nodeType":"StructuredDocumentation","src":"18459:312:48","text":" @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":9439,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18785:8:48","nodeType":"FunctionDefinition","parameters":{"id":9417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9416,"mutability":"mutable","name":"value","nameLocation":"18801:5:48","nodeType":"VariableDeclaration","scope":9439,"src":"18794:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9415,"name":"int256","nodeType":"ElementaryTypeName","src":"18794:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18793:14:48"},"returnParameters":{"id":9420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9419,"mutability":"mutable","name":"downcasted","nameLocation":"18838:10:48","nodeType":"VariableDeclaration","scope":9439,"src":"18831:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":9418,"name":"int232","nodeType":"ElementaryTypeName","src":"18831:6:48","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18830:19:48"},"scope":10198,"src":"18776:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9464,"nodeType":"Block","src":"19397:150:48","statements":[{"expression":{"id":9452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9447,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9445,"src":"19407:10:48","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9450,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9442,"src":"19427:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19420:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":9448,"name":"int224","nodeType":"ElementaryTypeName","src":"19420:6:48","typeDescriptions":{}}},"id":9451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19420:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19407:26:48","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"id":9453,"nodeType":"ExpressionStatement","src":"19407:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9454,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9445,"src":"19447:10:48","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9455,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9442,"src":"19461:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19447:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9463,"nodeType":"IfStatement","src":"19443:98:48","trueBody":{"id":9462,"nodeType":"Block","src":"19468:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":9458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19519:3:48","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":9459,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9442,"src":"19524:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9457,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"19489:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19489:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9461,"nodeType":"RevertStatement","src":"19482:48:48"}]}}]},"documentation":{"id":9440,"nodeType":"StructuredDocumentation","src":"19006:312:48","text":" @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":9465,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19332:8:48","nodeType":"FunctionDefinition","parameters":{"id":9443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9442,"mutability":"mutable","name":"value","nameLocation":"19348:5:48","nodeType":"VariableDeclaration","scope":9465,"src":"19341:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9441,"name":"int256","nodeType":"ElementaryTypeName","src":"19341:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19340:14:48"},"returnParameters":{"id":9446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9445,"mutability":"mutable","name":"downcasted","nameLocation":"19385:10:48","nodeType":"VariableDeclaration","scope":9465,"src":"19378:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":9444,"name":"int224","nodeType":"ElementaryTypeName","src":"19378:6:48","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19377:19:48"},"scope":10198,"src":"19323:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9490,"nodeType":"Block","src":"19944:150:48","statements":[{"expression":{"id":9478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9473,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9471,"src":"19954:10:48","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9476,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9468,"src":"19974:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19967:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":9474,"name":"int216","nodeType":"ElementaryTypeName","src":"19967:6:48","typeDescriptions":{}}},"id":9477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19967:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"19954:26:48","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"id":9479,"nodeType":"ExpressionStatement","src":"19954:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9480,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9471,"src":"19994:10:48","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9481,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9468,"src":"20008:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19994:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9489,"nodeType":"IfStatement","src":"19990:98:48","trueBody":{"id":9488,"nodeType":"Block","src":"20015:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":9484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20066:3:48","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":9485,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9468,"src":"20071:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9483,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"20036:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20036:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9487,"nodeType":"RevertStatement","src":"20029:48:48"}]}}]},"documentation":{"id":9466,"nodeType":"StructuredDocumentation","src":"19553:312:48","text":" @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":9491,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19879:8:48","nodeType":"FunctionDefinition","parameters":{"id":9469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9468,"mutability":"mutable","name":"value","nameLocation":"19895:5:48","nodeType":"VariableDeclaration","scope":9491,"src":"19888:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9467,"name":"int256","nodeType":"ElementaryTypeName","src":"19888:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19887:14:48"},"returnParameters":{"id":9472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9471,"mutability":"mutable","name":"downcasted","nameLocation":"19932:10:48","nodeType":"VariableDeclaration","scope":9491,"src":"19925:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":9470,"name":"int216","nodeType":"ElementaryTypeName","src":"19925:6:48","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"19924:19:48"},"scope":10198,"src":"19870:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9516,"nodeType":"Block","src":"20491:150:48","statements":[{"expression":{"id":9504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9499,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9497,"src":"20501:10:48","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9502,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"20521:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20514:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":9500,"name":"int208","nodeType":"ElementaryTypeName","src":"20514:6:48","typeDescriptions":{}}},"id":9503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20514:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20501:26:48","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"id":9505,"nodeType":"ExpressionStatement","src":"20501:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9506,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9497,"src":"20541:10:48","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9507,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"20555:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20541:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9515,"nodeType":"IfStatement","src":"20537:98:48","trueBody":{"id":9514,"nodeType":"Block","src":"20562:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":9510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20613:3:48","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":9511,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"20618:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9509,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"20583:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20583:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9513,"nodeType":"RevertStatement","src":"20576:48:48"}]}}]},"documentation":{"id":9492,"nodeType":"StructuredDocumentation","src":"20100:312:48","text":" @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":9517,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20426:8:48","nodeType":"FunctionDefinition","parameters":{"id":9495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9494,"mutability":"mutable","name":"value","nameLocation":"20442:5:48","nodeType":"VariableDeclaration","scope":9517,"src":"20435:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9493,"name":"int256","nodeType":"ElementaryTypeName","src":"20435:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20434:14:48"},"returnParameters":{"id":9498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9497,"mutability":"mutable","name":"downcasted","nameLocation":"20479:10:48","nodeType":"VariableDeclaration","scope":9517,"src":"20472:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":9496,"name":"int208","nodeType":"ElementaryTypeName","src":"20472:6:48","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20471:19:48"},"scope":10198,"src":"20417:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9542,"nodeType":"Block","src":"21038:150:48","statements":[{"expression":{"id":9530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9525,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9523,"src":"21048:10:48","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9528,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9520,"src":"21068:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21061:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":9526,"name":"int200","nodeType":"ElementaryTypeName","src":"21061:6:48","typeDescriptions":{}}},"id":9529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21061:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21048:26:48","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"id":9531,"nodeType":"ExpressionStatement","src":"21048:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9532,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9523,"src":"21088:10:48","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9533,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9520,"src":"21102:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21088:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9541,"nodeType":"IfStatement","src":"21084:98:48","trueBody":{"id":9540,"nodeType":"Block","src":"21109:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":9536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21160:3:48","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":9537,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9520,"src":"21165:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9535,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"21130:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21130:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9539,"nodeType":"RevertStatement","src":"21123:48:48"}]}}]},"documentation":{"id":9518,"nodeType":"StructuredDocumentation","src":"20647:312:48","text":" @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":9543,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"20973:8:48","nodeType":"FunctionDefinition","parameters":{"id":9521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9520,"mutability":"mutable","name":"value","nameLocation":"20989:5:48","nodeType":"VariableDeclaration","scope":9543,"src":"20982:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9519,"name":"int256","nodeType":"ElementaryTypeName","src":"20982:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20981:14:48"},"returnParameters":{"id":9524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9523,"mutability":"mutable","name":"downcasted","nameLocation":"21026:10:48","nodeType":"VariableDeclaration","scope":9543,"src":"21019:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":9522,"name":"int200","nodeType":"ElementaryTypeName","src":"21019:6:48","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21018:19:48"},"scope":10198,"src":"20964:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9568,"nodeType":"Block","src":"21585:150:48","statements":[{"expression":{"id":9556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9551,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9549,"src":"21595:10:48","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9554,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9546,"src":"21615:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21608:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":9552,"name":"int192","nodeType":"ElementaryTypeName","src":"21608:6:48","typeDescriptions":{}}},"id":9555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21608:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21595:26:48","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"id":9557,"nodeType":"ExpressionStatement","src":"21595:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9558,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9549,"src":"21635:10:48","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9559,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9546,"src":"21649:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21635:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9567,"nodeType":"IfStatement","src":"21631:98:48","trueBody":{"id":9566,"nodeType":"Block","src":"21656:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":9562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21707:3:48","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":9563,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9546,"src":"21712:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9561,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"21677:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21677:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9565,"nodeType":"RevertStatement","src":"21670:48:48"}]}}]},"documentation":{"id":9544,"nodeType":"StructuredDocumentation","src":"21194:312:48","text":" @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":9569,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21520:8:48","nodeType":"FunctionDefinition","parameters":{"id":9547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9546,"mutability":"mutable","name":"value","nameLocation":"21536:5:48","nodeType":"VariableDeclaration","scope":9569,"src":"21529:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9545,"name":"int256","nodeType":"ElementaryTypeName","src":"21529:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21528:14:48"},"returnParameters":{"id":9550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9549,"mutability":"mutable","name":"downcasted","nameLocation":"21573:10:48","nodeType":"VariableDeclaration","scope":9569,"src":"21566:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":9548,"name":"int192","nodeType":"ElementaryTypeName","src":"21566:6:48","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21565:19:48"},"scope":10198,"src":"21511:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9594,"nodeType":"Block","src":"22132:150:48","statements":[{"expression":{"id":9582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9577,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9575,"src":"22142:10:48","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9580,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9572,"src":"22162:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22155:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":9578,"name":"int184","nodeType":"ElementaryTypeName","src":"22155:6:48","typeDescriptions":{}}},"id":9581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22155:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22142:26:48","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"id":9583,"nodeType":"ExpressionStatement","src":"22142:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9584,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9575,"src":"22182:10:48","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9585,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9572,"src":"22196:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22182:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9593,"nodeType":"IfStatement","src":"22178:98:48","trueBody":{"id":9592,"nodeType":"Block","src":"22203:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":9588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22254:3:48","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":9589,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9572,"src":"22259:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9587,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"22224:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22224:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9591,"nodeType":"RevertStatement","src":"22217:48:48"}]}}]},"documentation":{"id":9570,"nodeType":"StructuredDocumentation","src":"21741:312:48","text":" @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":9595,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22067:8:48","nodeType":"FunctionDefinition","parameters":{"id":9573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9572,"mutability":"mutable","name":"value","nameLocation":"22083:5:48","nodeType":"VariableDeclaration","scope":9595,"src":"22076:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9571,"name":"int256","nodeType":"ElementaryTypeName","src":"22076:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22075:14:48"},"returnParameters":{"id":9576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9575,"mutability":"mutable","name":"downcasted","nameLocation":"22120:10:48","nodeType":"VariableDeclaration","scope":9595,"src":"22113:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":9574,"name":"int184","nodeType":"ElementaryTypeName","src":"22113:6:48","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22112:19:48"},"scope":10198,"src":"22058:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9620,"nodeType":"Block","src":"22679:150:48","statements":[{"expression":{"id":9608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9603,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9601,"src":"22689:10:48","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9606,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9598,"src":"22709:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22702:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":9604,"name":"int176","nodeType":"ElementaryTypeName","src":"22702:6:48","typeDescriptions":{}}},"id":9607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22702:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22689:26:48","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"id":9609,"nodeType":"ExpressionStatement","src":"22689:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9610,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9601,"src":"22729:10:48","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9611,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9598,"src":"22743:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22729:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9619,"nodeType":"IfStatement","src":"22725:98:48","trueBody":{"id":9618,"nodeType":"Block","src":"22750:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":9614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22801:3:48","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":9615,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9598,"src":"22806:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9613,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"22771:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22771:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9617,"nodeType":"RevertStatement","src":"22764:48:48"}]}}]},"documentation":{"id":9596,"nodeType":"StructuredDocumentation","src":"22288:312:48","text":" @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":9621,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22614:8:48","nodeType":"FunctionDefinition","parameters":{"id":9599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9598,"mutability":"mutable","name":"value","nameLocation":"22630:5:48","nodeType":"VariableDeclaration","scope":9621,"src":"22623:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9597,"name":"int256","nodeType":"ElementaryTypeName","src":"22623:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22622:14:48"},"returnParameters":{"id":9602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9601,"mutability":"mutable","name":"downcasted","nameLocation":"22667:10:48","nodeType":"VariableDeclaration","scope":9621,"src":"22660:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":9600,"name":"int176","nodeType":"ElementaryTypeName","src":"22660:6:48","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22659:19:48"},"scope":10198,"src":"22605:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9646,"nodeType":"Block","src":"23226:150:48","statements":[{"expression":{"id":9634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9629,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9627,"src":"23236:10:48","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9632,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9624,"src":"23256:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23249:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":9630,"name":"int168","nodeType":"ElementaryTypeName","src":"23249:6:48","typeDescriptions":{}}},"id":9633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23249:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23236:26:48","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"id":9635,"nodeType":"ExpressionStatement","src":"23236:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9636,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9627,"src":"23276:10:48","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9637,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9624,"src":"23290:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23276:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9645,"nodeType":"IfStatement","src":"23272:98:48","trueBody":{"id":9644,"nodeType":"Block","src":"23297:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":9640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23348:3:48","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":9641,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9624,"src":"23353:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9639,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"23318:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23318:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9643,"nodeType":"RevertStatement","src":"23311:48:48"}]}}]},"documentation":{"id":9622,"nodeType":"StructuredDocumentation","src":"22835:312:48","text":" @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":9647,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23161:8:48","nodeType":"FunctionDefinition","parameters":{"id":9625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9624,"mutability":"mutable","name":"value","nameLocation":"23177:5:48","nodeType":"VariableDeclaration","scope":9647,"src":"23170:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9623,"name":"int256","nodeType":"ElementaryTypeName","src":"23170:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23169:14:48"},"returnParameters":{"id":9628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9627,"mutability":"mutable","name":"downcasted","nameLocation":"23214:10:48","nodeType":"VariableDeclaration","scope":9647,"src":"23207:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":9626,"name":"int168","nodeType":"ElementaryTypeName","src":"23207:6:48","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23206:19:48"},"scope":10198,"src":"23152:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9672,"nodeType":"Block","src":"23773:150:48","statements":[{"expression":{"id":9660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9655,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9653,"src":"23783:10:48","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9658,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9650,"src":"23803:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23796:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":9656,"name":"int160","nodeType":"ElementaryTypeName","src":"23796:6:48","typeDescriptions":{}}},"id":9659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23796:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"23783:26:48","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"id":9661,"nodeType":"ExpressionStatement","src":"23783:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9662,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9653,"src":"23823:10:48","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9663,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9650,"src":"23837:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23823:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9671,"nodeType":"IfStatement","src":"23819:98:48","trueBody":{"id":9670,"nodeType":"Block","src":"23844:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":9666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23895:3:48","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":9667,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9650,"src":"23900:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9665,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"23865:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23865:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9669,"nodeType":"RevertStatement","src":"23858:48:48"}]}}]},"documentation":{"id":9648,"nodeType":"StructuredDocumentation","src":"23382:312:48","text":" @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":9673,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23708:8:48","nodeType":"FunctionDefinition","parameters":{"id":9651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9650,"mutability":"mutable","name":"value","nameLocation":"23724:5:48","nodeType":"VariableDeclaration","scope":9673,"src":"23717:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9649,"name":"int256","nodeType":"ElementaryTypeName","src":"23717:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23716:14:48"},"returnParameters":{"id":9654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9653,"mutability":"mutable","name":"downcasted","nameLocation":"23761:10:48","nodeType":"VariableDeclaration","scope":9673,"src":"23754:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":9652,"name":"int160","nodeType":"ElementaryTypeName","src":"23754:6:48","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"23753:19:48"},"scope":10198,"src":"23699:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9698,"nodeType":"Block","src":"24320:150:48","statements":[{"expression":{"id":9686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9681,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9679,"src":"24330:10:48","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9684,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9676,"src":"24350:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24343:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":9682,"name":"int152","nodeType":"ElementaryTypeName","src":"24343:6:48","typeDescriptions":{}}},"id":9685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24343:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24330:26:48","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"id":9687,"nodeType":"ExpressionStatement","src":"24330:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9688,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9679,"src":"24370:10:48","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9689,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9676,"src":"24384:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24370:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9697,"nodeType":"IfStatement","src":"24366:98:48","trueBody":{"id":9696,"nodeType":"Block","src":"24391:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":9692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24442:3:48","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":9693,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9676,"src":"24447:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9691,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"24412:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24412:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9695,"nodeType":"RevertStatement","src":"24405:48:48"}]}}]},"documentation":{"id":9674,"nodeType":"StructuredDocumentation","src":"23929:312:48","text":" @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":9699,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24255:8:48","nodeType":"FunctionDefinition","parameters":{"id":9677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9676,"mutability":"mutable","name":"value","nameLocation":"24271:5:48","nodeType":"VariableDeclaration","scope":9699,"src":"24264:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9675,"name":"int256","nodeType":"ElementaryTypeName","src":"24264:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24263:14:48"},"returnParameters":{"id":9680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9679,"mutability":"mutable","name":"downcasted","nameLocation":"24308:10:48","nodeType":"VariableDeclaration","scope":9699,"src":"24301:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":9678,"name":"int152","nodeType":"ElementaryTypeName","src":"24301:6:48","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24300:19:48"},"scope":10198,"src":"24246:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9724,"nodeType":"Block","src":"24867:150:48","statements":[{"expression":{"id":9712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9707,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9705,"src":"24877:10:48","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9710,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9702,"src":"24897:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24890:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":9708,"name":"int144","nodeType":"ElementaryTypeName","src":"24890:6:48","typeDescriptions":{}}},"id":9711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24890:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"24877:26:48","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"id":9713,"nodeType":"ExpressionStatement","src":"24877:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9714,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9705,"src":"24917:10:48","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9715,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9702,"src":"24931:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24917:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9723,"nodeType":"IfStatement","src":"24913:98:48","trueBody":{"id":9722,"nodeType":"Block","src":"24938:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":9718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24989:3:48","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":9719,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9702,"src":"24994:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9717,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"24959:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24959:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9721,"nodeType":"RevertStatement","src":"24952:48:48"}]}}]},"documentation":{"id":9700,"nodeType":"StructuredDocumentation","src":"24476:312:48","text":" @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":9725,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"24802:8:48","nodeType":"FunctionDefinition","parameters":{"id":9703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9702,"mutability":"mutable","name":"value","nameLocation":"24818:5:48","nodeType":"VariableDeclaration","scope":9725,"src":"24811:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9701,"name":"int256","nodeType":"ElementaryTypeName","src":"24811:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24810:14:48"},"returnParameters":{"id":9706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9705,"mutability":"mutable","name":"downcasted","nameLocation":"24855:10:48","nodeType":"VariableDeclaration","scope":9725,"src":"24848:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":9704,"name":"int144","nodeType":"ElementaryTypeName","src":"24848:6:48","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"24847:19:48"},"scope":10198,"src":"24793:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9750,"nodeType":"Block","src":"25414:150:48","statements":[{"expression":{"id":9738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9733,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9731,"src":"25424:10:48","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9736,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9728,"src":"25444:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25437:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":9734,"name":"int136","nodeType":"ElementaryTypeName","src":"25437:6:48","typeDescriptions":{}}},"id":9737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25437:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25424:26:48","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"id":9739,"nodeType":"ExpressionStatement","src":"25424:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9740,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9731,"src":"25464:10:48","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9741,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9728,"src":"25478:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25464:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9749,"nodeType":"IfStatement","src":"25460:98:48","trueBody":{"id":9748,"nodeType":"Block","src":"25485:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":9744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25536:3:48","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":9745,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9728,"src":"25541:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9743,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"25506:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25506:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9747,"nodeType":"RevertStatement","src":"25499:48:48"}]}}]},"documentation":{"id":9726,"nodeType":"StructuredDocumentation","src":"25023:312:48","text":" @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":9751,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25349:8:48","nodeType":"FunctionDefinition","parameters":{"id":9729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9728,"mutability":"mutable","name":"value","nameLocation":"25365:5:48","nodeType":"VariableDeclaration","scope":9751,"src":"25358:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9727,"name":"int256","nodeType":"ElementaryTypeName","src":"25358:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25357:14:48"},"returnParameters":{"id":9732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9731,"mutability":"mutable","name":"downcasted","nameLocation":"25402:10:48","nodeType":"VariableDeclaration","scope":9751,"src":"25395:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":9730,"name":"int136","nodeType":"ElementaryTypeName","src":"25395:6:48","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25394:19:48"},"scope":10198,"src":"25340:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9776,"nodeType":"Block","src":"25961:150:48","statements":[{"expression":{"id":9764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9759,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"25971:10:48","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9762,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9754,"src":"25991:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25984:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":9760,"name":"int128","nodeType":"ElementaryTypeName","src":"25984:6:48","typeDescriptions":{}}},"id":9763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25984:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"25971:26:48","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":9765,"nodeType":"ExpressionStatement","src":"25971:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9766,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"26011:10:48","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9767,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9754,"src":"26025:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26011:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9775,"nodeType":"IfStatement","src":"26007:98:48","trueBody":{"id":9774,"nodeType":"Block","src":"26032:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":9770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26083:3:48","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":9771,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9754,"src":"26088:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9769,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"26053:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26053:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9773,"nodeType":"RevertStatement","src":"26046:48:48"}]}}]},"documentation":{"id":9752,"nodeType":"StructuredDocumentation","src":"25570:312:48","text":" @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":9777,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"25896:8:48","nodeType":"FunctionDefinition","parameters":{"id":9755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9754,"mutability":"mutable","name":"value","nameLocation":"25912:5:48","nodeType":"VariableDeclaration","scope":9777,"src":"25905:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9753,"name":"int256","nodeType":"ElementaryTypeName","src":"25905:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25904:14:48"},"returnParameters":{"id":9758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9757,"mutability":"mutable","name":"downcasted","nameLocation":"25949:10:48","nodeType":"VariableDeclaration","scope":9777,"src":"25942:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":9756,"name":"int128","nodeType":"ElementaryTypeName","src":"25942:6:48","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"25941:19:48"},"scope":10198,"src":"25887:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9802,"nodeType":"Block","src":"26508:150:48","statements":[{"expression":{"id":9790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9785,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9783,"src":"26518:10:48","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9788,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9780,"src":"26538:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26531:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":9786,"name":"int120","nodeType":"ElementaryTypeName","src":"26531:6:48","typeDescriptions":{}}},"id":9789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26531:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26518:26:48","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"id":9791,"nodeType":"ExpressionStatement","src":"26518:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9792,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9783,"src":"26558:10:48","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9793,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9780,"src":"26572:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26558:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9801,"nodeType":"IfStatement","src":"26554:98:48","trueBody":{"id":9800,"nodeType":"Block","src":"26579:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":9796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26630:3:48","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":9797,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9780,"src":"26635:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9795,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"26600:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26600:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9799,"nodeType":"RevertStatement","src":"26593:48:48"}]}}]},"documentation":{"id":9778,"nodeType":"StructuredDocumentation","src":"26117:312:48","text":" @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":9803,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26443:8:48","nodeType":"FunctionDefinition","parameters":{"id":9781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9780,"mutability":"mutable","name":"value","nameLocation":"26459:5:48","nodeType":"VariableDeclaration","scope":9803,"src":"26452:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9779,"name":"int256","nodeType":"ElementaryTypeName","src":"26452:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26451:14:48"},"returnParameters":{"id":9784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9783,"mutability":"mutable","name":"downcasted","nameLocation":"26496:10:48","nodeType":"VariableDeclaration","scope":9803,"src":"26489:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":9782,"name":"int120","nodeType":"ElementaryTypeName","src":"26489:6:48","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26488:19:48"},"scope":10198,"src":"26434:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9828,"nodeType":"Block","src":"27055:150:48","statements":[{"expression":{"id":9816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9811,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9809,"src":"27065:10:48","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9814,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9806,"src":"27085:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27078:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":9812,"name":"int112","nodeType":"ElementaryTypeName","src":"27078:6:48","typeDescriptions":{}}},"id":9815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27078:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27065:26:48","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"id":9817,"nodeType":"ExpressionStatement","src":"27065:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9818,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9809,"src":"27105:10:48","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9819,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9806,"src":"27119:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27105:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9827,"nodeType":"IfStatement","src":"27101:98:48","trueBody":{"id":9826,"nodeType":"Block","src":"27126:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":9822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27177:3:48","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":9823,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9806,"src":"27182:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9821,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"27147:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27147:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9825,"nodeType":"RevertStatement","src":"27140:48:48"}]}}]},"documentation":{"id":9804,"nodeType":"StructuredDocumentation","src":"26664:312:48","text":" @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":9829,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"26990:8:48","nodeType":"FunctionDefinition","parameters":{"id":9807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9806,"mutability":"mutable","name":"value","nameLocation":"27006:5:48","nodeType":"VariableDeclaration","scope":9829,"src":"26999:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9805,"name":"int256","nodeType":"ElementaryTypeName","src":"26999:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26998:14:48"},"returnParameters":{"id":9810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9809,"mutability":"mutable","name":"downcasted","nameLocation":"27043:10:48","nodeType":"VariableDeclaration","scope":9829,"src":"27036:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":9808,"name":"int112","nodeType":"ElementaryTypeName","src":"27036:6:48","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27035:19:48"},"scope":10198,"src":"26981:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9854,"nodeType":"Block","src":"27602:150:48","statements":[{"expression":{"id":9842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9837,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9835,"src":"27612:10:48","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9840,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"27632:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27625:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":9838,"name":"int104","nodeType":"ElementaryTypeName","src":"27625:6:48","typeDescriptions":{}}},"id":9841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27625:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"27612:26:48","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"id":9843,"nodeType":"ExpressionStatement","src":"27612:26:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9844,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9835,"src":"27652:10:48","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9845,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"27666:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27652:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9853,"nodeType":"IfStatement","src":"27648:98:48","trueBody":{"id":9852,"nodeType":"Block","src":"27673:73:48","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":9848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27724:3:48","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":9849,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"27729:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9847,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"27694:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27694:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9851,"nodeType":"RevertStatement","src":"27687:48:48"}]}}]},"documentation":{"id":9830,"nodeType":"StructuredDocumentation","src":"27211:312:48","text":" @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":9855,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"27537:8:48","nodeType":"FunctionDefinition","parameters":{"id":9833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9832,"mutability":"mutable","name":"value","nameLocation":"27553:5:48","nodeType":"VariableDeclaration","scope":9855,"src":"27546:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9831,"name":"int256","nodeType":"ElementaryTypeName","src":"27546:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27545:14:48"},"returnParameters":{"id":9836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9835,"mutability":"mutable","name":"downcasted","nameLocation":"27590:10:48","nodeType":"VariableDeclaration","scope":9855,"src":"27583:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":9834,"name":"int104","nodeType":"ElementaryTypeName","src":"27583:6:48","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"27582:19:48"},"scope":10198,"src":"27528:224:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9880,"nodeType":"Block","src":"28142:148:48","statements":[{"expression":{"id":9868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9863,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"28152:10:48","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9866,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9858,"src":"28171:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28165:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":9864,"name":"int96","nodeType":"ElementaryTypeName","src":"28165:5:48","typeDescriptions":{}}},"id":9867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28165:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28152:25:48","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"id":9869,"nodeType":"ExpressionStatement","src":"28152:25:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9870,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"28191:10:48","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9871,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9858,"src":"28205:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28191:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9879,"nodeType":"IfStatement","src":"28187:97:48","trueBody":{"id":9878,"nodeType":"Block","src":"28212:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":9874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28263:2:48","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":9875,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9858,"src":"28267:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9873,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"28233:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28233:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9877,"nodeType":"RevertStatement","src":"28226:47:48"}]}}]},"documentation":{"id":9856,"nodeType":"StructuredDocumentation","src":"27758:307:48","text":" @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":9881,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28079:7:48","nodeType":"FunctionDefinition","parameters":{"id":9859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9858,"mutability":"mutable","name":"value","nameLocation":"28094:5:48","nodeType":"VariableDeclaration","scope":9881,"src":"28087:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9857,"name":"int256","nodeType":"ElementaryTypeName","src":"28087:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28086:14:48"},"returnParameters":{"id":9862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9861,"mutability":"mutable","name":"downcasted","nameLocation":"28130:10:48","nodeType":"VariableDeclaration","scope":9881,"src":"28124:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":9860,"name":"int96","nodeType":"ElementaryTypeName","src":"28124:5:48","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28123:18:48"},"scope":10198,"src":"28070:220:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9906,"nodeType":"Block","src":"28680:148:48","statements":[{"expression":{"id":9894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9889,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"28690:10:48","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9892,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9884,"src":"28709:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28703:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":9890,"name":"int88","nodeType":"ElementaryTypeName","src":"28703:5:48","typeDescriptions":{}}},"id":9893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28703:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"28690:25:48","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"id":9895,"nodeType":"ExpressionStatement","src":"28690:25:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9896,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"28729:10:48","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9897,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9884,"src":"28743:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28729:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9905,"nodeType":"IfStatement","src":"28725:97:48","trueBody":{"id":9904,"nodeType":"Block","src":"28750:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":9900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28801:2:48","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":9901,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9884,"src":"28805:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9899,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"28771:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28771:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9903,"nodeType":"RevertStatement","src":"28764:47:48"}]}}]},"documentation":{"id":9882,"nodeType":"StructuredDocumentation","src":"28296:307:48","text":" @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":9907,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"28617:7:48","nodeType":"FunctionDefinition","parameters":{"id":9885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9884,"mutability":"mutable","name":"value","nameLocation":"28632:5:48","nodeType":"VariableDeclaration","scope":9907,"src":"28625:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9883,"name":"int256","nodeType":"ElementaryTypeName","src":"28625:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28624:14:48"},"returnParameters":{"id":9888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9887,"mutability":"mutable","name":"downcasted","nameLocation":"28668:10:48","nodeType":"VariableDeclaration","scope":9907,"src":"28662:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":9886,"name":"int88","nodeType":"ElementaryTypeName","src":"28662:5:48","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"28661:18:48"},"scope":10198,"src":"28608:220:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9932,"nodeType":"Block","src":"29218:148:48","statements":[{"expression":{"id":9920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9915,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9913,"src":"29228:10:48","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9918,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9910,"src":"29247:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29241:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":9916,"name":"int80","nodeType":"ElementaryTypeName","src":"29241:5:48","typeDescriptions":{}}},"id":9919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29241:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29228:25:48","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"id":9921,"nodeType":"ExpressionStatement","src":"29228:25:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9922,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9913,"src":"29267:10:48","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9923,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9910,"src":"29281:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29267:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9931,"nodeType":"IfStatement","src":"29263:97:48","trueBody":{"id":9930,"nodeType":"Block","src":"29288:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":9926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29339:2:48","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":9927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9910,"src":"29343:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9925,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"29309:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29309:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9929,"nodeType":"RevertStatement","src":"29302:47:48"}]}}]},"documentation":{"id":9908,"nodeType":"StructuredDocumentation","src":"28834:307:48","text":" @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":9933,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29155:7:48","nodeType":"FunctionDefinition","parameters":{"id":9911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9910,"mutability":"mutable","name":"value","nameLocation":"29170:5:48","nodeType":"VariableDeclaration","scope":9933,"src":"29163:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9909,"name":"int256","nodeType":"ElementaryTypeName","src":"29163:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29162:14:48"},"returnParameters":{"id":9914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9913,"mutability":"mutable","name":"downcasted","nameLocation":"29206:10:48","nodeType":"VariableDeclaration","scope":9933,"src":"29200:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":9912,"name":"int80","nodeType":"ElementaryTypeName","src":"29200:5:48","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29199:18:48"},"scope":10198,"src":"29146:220:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9958,"nodeType":"Block","src":"29756:148:48","statements":[{"expression":{"id":9946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9941,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9939,"src":"29766:10:48","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9944,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9936,"src":"29785:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29779:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":9942,"name":"int72","nodeType":"ElementaryTypeName","src":"29779:5:48","typeDescriptions":{}}},"id":9945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29779:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"29766:25:48","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"id":9947,"nodeType":"ExpressionStatement","src":"29766:25:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9948,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9939,"src":"29805:10:48","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9949,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9936,"src":"29819:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29805:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9957,"nodeType":"IfStatement","src":"29801:97:48","trueBody":{"id":9956,"nodeType":"Block","src":"29826:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":9952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29877:2:48","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":9953,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9936,"src":"29881:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9951,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"29847:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29847:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9955,"nodeType":"RevertStatement","src":"29840:47:48"}]}}]},"documentation":{"id":9934,"nodeType":"StructuredDocumentation","src":"29372:307:48","text":" @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":9959,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"29693:7:48","nodeType":"FunctionDefinition","parameters":{"id":9937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9936,"mutability":"mutable","name":"value","nameLocation":"29708:5:48","nodeType":"VariableDeclaration","scope":9959,"src":"29701:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9935,"name":"int256","nodeType":"ElementaryTypeName","src":"29701:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29700:14:48"},"returnParameters":{"id":9940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9939,"mutability":"mutable","name":"downcasted","nameLocation":"29744:10:48","nodeType":"VariableDeclaration","scope":9959,"src":"29738:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":9938,"name":"int72","nodeType":"ElementaryTypeName","src":"29738:5:48","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"29737:18:48"},"scope":10198,"src":"29684:220:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9984,"nodeType":"Block","src":"30294:148:48","statements":[{"expression":{"id":9972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9967,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9965,"src":"30304:10:48","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9970,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9962,"src":"30323:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30317:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":9968,"name":"int64","nodeType":"ElementaryTypeName","src":"30317:5:48","typeDescriptions":{}}},"id":9971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30317:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30304:25:48","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"id":9973,"nodeType":"ExpressionStatement","src":"30304:25:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9974,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9965,"src":"30343:10:48","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9975,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9962,"src":"30357:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30343:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9983,"nodeType":"IfStatement","src":"30339:97:48","trueBody":{"id":9982,"nodeType":"Block","src":"30364:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":9978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30415:2:48","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":9979,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9962,"src":"30419:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9977,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"30385:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":9980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30385:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9981,"nodeType":"RevertStatement","src":"30378:47:48"}]}}]},"documentation":{"id":9960,"nodeType":"StructuredDocumentation","src":"29910:307:48","text":" @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":9985,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30231:7:48","nodeType":"FunctionDefinition","parameters":{"id":9963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9962,"mutability":"mutable","name":"value","nameLocation":"30246:5:48","nodeType":"VariableDeclaration","scope":9985,"src":"30239:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9961,"name":"int256","nodeType":"ElementaryTypeName","src":"30239:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30238:14:48"},"returnParameters":{"id":9966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9965,"mutability":"mutable","name":"downcasted","nameLocation":"30282:10:48","nodeType":"VariableDeclaration","scope":9985,"src":"30276:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":9964,"name":"int64","nodeType":"ElementaryTypeName","src":"30276:5:48","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30275:18:48"},"scope":10198,"src":"30222:220:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10010,"nodeType":"Block","src":"30832:148:48","statements":[{"expression":{"id":9998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9993,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9991,"src":"30842:10:48","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9996,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9988,"src":"30861:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30855:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":9994,"name":"int56","nodeType":"ElementaryTypeName","src":"30855:5:48","typeDescriptions":{}}},"id":9997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30855:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"30842:25:48","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":9999,"nodeType":"ExpressionStatement","src":"30842:25:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10000,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9991,"src":"30881:10:48","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10001,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9988,"src":"30895:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30881:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10009,"nodeType":"IfStatement","src":"30877:97:48","trueBody":{"id":10008,"nodeType":"Block","src":"30902:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":10004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30953:2:48","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":10005,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9988,"src":"30957:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10003,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"30923:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":10006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30923:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10007,"nodeType":"RevertStatement","src":"30916:47:48"}]}}]},"documentation":{"id":9986,"nodeType":"StructuredDocumentation","src":"30448:307:48","text":" @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":10011,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"30769:7:48","nodeType":"FunctionDefinition","parameters":{"id":9989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9988,"mutability":"mutable","name":"value","nameLocation":"30784:5:48","nodeType":"VariableDeclaration","scope":10011,"src":"30777:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9987,"name":"int256","nodeType":"ElementaryTypeName","src":"30777:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30776:14:48"},"returnParameters":{"id":9992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9991,"mutability":"mutable","name":"downcasted","nameLocation":"30820:10:48","nodeType":"VariableDeclaration","scope":10011,"src":"30814:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":9990,"name":"int56","nodeType":"ElementaryTypeName","src":"30814:5:48","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"30813:18:48"},"scope":10198,"src":"30760:220:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10036,"nodeType":"Block","src":"31370:148:48","statements":[{"expression":{"id":10024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10019,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10017,"src":"31380:10:48","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10022,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"31399:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31393:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":10020,"name":"int48","nodeType":"ElementaryTypeName","src":"31393:5:48","typeDescriptions":{}}},"id":10023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31393:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"31380:25:48","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"id":10025,"nodeType":"ExpressionStatement","src":"31380:25:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10026,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10017,"src":"31419:10:48","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10027,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"31433:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31419:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10035,"nodeType":"IfStatement","src":"31415:97:48","trueBody":{"id":10034,"nodeType":"Block","src":"31440:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":10030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31491:2:48","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":10031,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"31495:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10029,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"31461:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":10032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31461:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10033,"nodeType":"RevertStatement","src":"31454:47:48"}]}}]},"documentation":{"id":10012,"nodeType":"StructuredDocumentation","src":"30986:307:48","text":" @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":10037,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31307:7:48","nodeType":"FunctionDefinition","parameters":{"id":10015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10014,"mutability":"mutable","name":"value","nameLocation":"31322:5:48","nodeType":"VariableDeclaration","scope":10037,"src":"31315:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10013,"name":"int256","nodeType":"ElementaryTypeName","src":"31315:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31314:14:48"},"returnParameters":{"id":10018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10017,"mutability":"mutable","name":"downcasted","nameLocation":"31358:10:48","nodeType":"VariableDeclaration","scope":10037,"src":"31352:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":10016,"name":"int48","nodeType":"ElementaryTypeName","src":"31352:5:48","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"31351:18:48"},"scope":10198,"src":"31298:220:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10062,"nodeType":"Block","src":"31908:148:48","statements":[{"expression":{"id":10050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10045,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10043,"src":"31918:10:48","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10048,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"31937:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31931:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":10046,"name":"int40","nodeType":"ElementaryTypeName","src":"31931:5:48","typeDescriptions":{}}},"id":10049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31931:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"31918:25:48","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"id":10051,"nodeType":"ExpressionStatement","src":"31918:25:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10052,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10043,"src":"31957:10:48","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10053,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"31971:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31957:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10061,"nodeType":"IfStatement","src":"31953:97:48","trueBody":{"id":10060,"nodeType":"Block","src":"31978:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":10056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32029:2:48","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":10057,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"32033:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10055,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"31999:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":10058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31999:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10059,"nodeType":"RevertStatement","src":"31992:47:48"}]}}]},"documentation":{"id":10038,"nodeType":"StructuredDocumentation","src":"31524:307:48","text":" @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":10063,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"31845:7:48","nodeType":"FunctionDefinition","parameters":{"id":10041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10040,"mutability":"mutable","name":"value","nameLocation":"31860:5:48","nodeType":"VariableDeclaration","scope":10063,"src":"31853:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10039,"name":"int256","nodeType":"ElementaryTypeName","src":"31853:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31852:14:48"},"returnParameters":{"id":10044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10043,"mutability":"mutable","name":"downcasted","nameLocation":"31896:10:48","nodeType":"VariableDeclaration","scope":10063,"src":"31890:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":10042,"name":"int40","nodeType":"ElementaryTypeName","src":"31890:5:48","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"31889:18:48"},"scope":10198,"src":"31836:220:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10088,"nodeType":"Block","src":"32446:148:48","statements":[{"expression":{"id":10076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10071,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10069,"src":"32456:10:48","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10066,"src":"32475:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32469:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":10072,"name":"int32","nodeType":"ElementaryTypeName","src":"32469:5:48","typeDescriptions":{}}},"id":10075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32469:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"32456:25:48","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":10077,"nodeType":"ExpressionStatement","src":"32456:25:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10078,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10069,"src":"32495:10:48","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10079,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10066,"src":"32509:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32495:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10087,"nodeType":"IfStatement","src":"32491:97:48","trueBody":{"id":10086,"nodeType":"Block","src":"32516:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":10082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32567:2:48","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":10083,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10066,"src":"32571:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10081,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"32537:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":10084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32537:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10085,"nodeType":"RevertStatement","src":"32530:47:48"}]}}]},"documentation":{"id":10064,"nodeType":"StructuredDocumentation","src":"32062:307:48","text":" @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":10089,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"32383:7:48","nodeType":"FunctionDefinition","parameters":{"id":10067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10066,"mutability":"mutable","name":"value","nameLocation":"32398:5:48","nodeType":"VariableDeclaration","scope":10089,"src":"32391:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10065,"name":"int256","nodeType":"ElementaryTypeName","src":"32391:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32390:14:48"},"returnParameters":{"id":10070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10069,"mutability":"mutable","name":"downcasted","nameLocation":"32434:10:48","nodeType":"VariableDeclaration","scope":10089,"src":"32428:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":10068,"name":"int32","nodeType":"ElementaryTypeName","src":"32428:5:48","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"32427:18:48"},"scope":10198,"src":"32374:220:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10114,"nodeType":"Block","src":"32984:148:48","statements":[{"expression":{"id":10102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10097,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10095,"src":"32994:10:48","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10100,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10092,"src":"33013:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33007:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":10098,"name":"int24","nodeType":"ElementaryTypeName","src":"33007:5:48","typeDescriptions":{}}},"id":10101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33007:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"32994:25:48","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":10103,"nodeType":"ExpressionStatement","src":"32994:25:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10104,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10095,"src":"33033:10:48","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10105,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10092,"src":"33047:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33033:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10113,"nodeType":"IfStatement","src":"33029:97:48","trueBody":{"id":10112,"nodeType":"Block","src":"33054:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":10108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33105:2:48","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":10109,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10092,"src":"33109:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10107,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"33075:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":10110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33075:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10111,"nodeType":"RevertStatement","src":"33068:47:48"}]}}]},"documentation":{"id":10090,"nodeType":"StructuredDocumentation","src":"32600:307:48","text":" @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":10115,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"32921:7:48","nodeType":"FunctionDefinition","parameters":{"id":10093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10092,"mutability":"mutable","name":"value","nameLocation":"32936:5:48","nodeType":"VariableDeclaration","scope":10115,"src":"32929:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10091,"name":"int256","nodeType":"ElementaryTypeName","src":"32929:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32928:14:48"},"returnParameters":{"id":10096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10095,"mutability":"mutable","name":"downcasted","nameLocation":"32972:10:48","nodeType":"VariableDeclaration","scope":10115,"src":"32966:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":10094,"name":"int24","nodeType":"ElementaryTypeName","src":"32966:5:48","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"32965:18:48"},"scope":10198,"src":"32912:220:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10140,"nodeType":"Block","src":"33522:148:48","statements":[{"expression":{"id":10128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10123,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"33532:10:48","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10126,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10118,"src":"33551:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33545:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":10124,"name":"int16","nodeType":"ElementaryTypeName","src":"33545:5:48","typeDescriptions":{}}},"id":10127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33545:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"33532:25:48","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"id":10129,"nodeType":"ExpressionStatement","src":"33532:25:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10130,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"33571:10:48","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10131,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10118,"src":"33585:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33571:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10139,"nodeType":"IfStatement","src":"33567:97:48","trueBody":{"id":10138,"nodeType":"Block","src":"33592:72:48","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":10134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33643:2:48","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":10135,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10118,"src":"33647:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10133,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"33613:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":10136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33613:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10137,"nodeType":"RevertStatement","src":"33606:47:48"}]}}]},"documentation":{"id":10116,"nodeType":"StructuredDocumentation","src":"33138:307:48","text":" @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":10141,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"33459:7:48","nodeType":"FunctionDefinition","parameters":{"id":10119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10118,"mutability":"mutable","name":"value","nameLocation":"33474:5:48","nodeType":"VariableDeclaration","scope":10141,"src":"33467:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10117,"name":"int256","nodeType":"ElementaryTypeName","src":"33467:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33466:14:48"},"returnParameters":{"id":10122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10121,"mutability":"mutable","name":"downcasted","nameLocation":"33510:10:48","nodeType":"VariableDeclaration","scope":10141,"src":"33504:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":10120,"name":"int16","nodeType":"ElementaryTypeName","src":"33504:5:48","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"33503:18:48"},"scope":10198,"src":"33450:220:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10166,"nodeType":"Block","src":"34053:146:48","statements":[{"expression":{"id":10154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10149,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10147,"src":"34063:10:48","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10152,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10144,"src":"34081:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34076:4:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":10150,"name":"int8","nodeType":"ElementaryTypeName","src":"34076:4:48","typeDescriptions":{}}},"id":10153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34076:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34063:24:48","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":10155,"nodeType":"ExpressionStatement","src":"34063:24:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10156,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10147,"src":"34101:10:48","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10157,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10144,"src":"34115:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"34101:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10165,"nodeType":"IfStatement","src":"34097:96:48","trueBody":{"id":10164,"nodeType":"Block","src":"34122:71:48","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":10160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34173:1:48","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":10161,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10144,"src":"34176:5:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10159,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"34143:29:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$__$","typeString":"function (uint8,int256) pure"}},"id":10162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34143:39:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10163,"nodeType":"RevertStatement","src":"34136:46:48"}]}}]},"documentation":{"id":10142,"nodeType":"StructuredDocumentation","src":"33676:302:48","text":" @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":10167,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"33992:6:48","nodeType":"FunctionDefinition","parameters":{"id":10145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10144,"mutability":"mutable","name":"value","nameLocation":"34006:5:48","nodeType":"VariableDeclaration","scope":10167,"src":"33999:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10143,"name":"int256","nodeType":"ElementaryTypeName","src":"33999:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33998:14:48"},"returnParameters":{"id":10148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10147,"mutability":"mutable","name":"downcasted","nameLocation":"34041:10:48","nodeType":"VariableDeclaration","scope":10167,"src":"34036:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":10146,"name":"int8","nodeType":"ElementaryTypeName","src":"34036:4:48","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34035:17:48"},"scope":10198,"src":"33983:216:48","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10196,"nodeType":"Block","src":"34439:250:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10175,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"34552:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":10180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34573:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10179,"name":"int256","nodeType":"ElementaryTypeName","src":"34573:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":10178,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34568:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34568:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":10182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34581:3:48","memberName":"max","nodeType":"MemberAccess","src":"34568:16:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34560:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10176,"name":"uint256","nodeType":"ElementaryTypeName","src":"34560:7:48","typeDescriptions":{}}},"id":10183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34560:25:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34552:33:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10190,"nodeType":"IfStatement","src":"34548:105:48","trueBody":{"id":10189,"nodeType":"Block","src":"34587:66:48","statements":[{"errorCall":{"arguments":[{"id":10186,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"34636:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10185,"name":"SafeCastOverflowedUintToInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"34608:27:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":10187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34608:34:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10188,"nodeType":"RevertStatement","src":"34601:41:48"}]}},{"expression":{"arguments":[{"id":10193,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"34676:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34669:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10191,"name":"int256","nodeType":"ElementaryTypeName","src":"34669:6:48","typeDescriptions":{}}},"id":10194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34669:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10174,"id":10195,"nodeType":"Return","src":"34662:20:48"}]},"documentation":{"id":10168,"nodeType":"StructuredDocumentation","src":"34205:165:48","text":" @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256."},"id":10197,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"34384:8:48","nodeType":"FunctionDefinition","parameters":{"id":10171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10170,"mutability":"mutable","name":"value","nameLocation":"34401:5:48","nodeType":"VariableDeclaration","scope":10197,"src":"34393:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10169,"name":"uint256","nodeType":"ElementaryTypeName","src":"34393:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34392:15:48"},"returnParameters":{"id":10174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10197,"src":"34431:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10172,"name":"int256","nodeType":"ElementaryTypeName","src":"34431:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34430:8:48"},"scope":10198,"src":"34375:314:48","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10199,"src":"764:33927:48","usedErrors":[8453,8458,8465,8470],"usedEvents":[]}],"src":"192:34500:48"},"id":48},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[10303]},"id":10304,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10200,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:49"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":10201,"nodeType":"StructuredDocumentation","src":"135:80:49","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":10303,"linearizedBaseContracts":[10303],"name":"SignedMath","nameLocation":"224:10:49","nodeType":"ContractDefinition","nodes":[{"body":{"id":10218,"nodeType":"Block","src":"376:37:49","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10211,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10204,"src":"393:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":10212,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10206,"src":"397:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"393:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":10215,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10206,"src":"405:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"393:13:49","trueExpression":{"id":10214,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10204,"src":"401:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10210,"id":10217,"nodeType":"Return","src":"386:20:49"}]},"documentation":{"id":10202,"nodeType":"StructuredDocumentation","src":"241:66:49","text":" @dev Returns the largest of two signed numbers."},"id":10219,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"321:3:49","nodeType":"FunctionDefinition","parameters":{"id":10207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10204,"mutability":"mutable","name":"a","nameLocation":"332:1:49","nodeType":"VariableDeclaration","scope":10219,"src":"325:8:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10203,"name":"int256","nodeType":"ElementaryTypeName","src":"325:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":10206,"mutability":"mutable","name":"b","nameLocation":"342:1:49","nodeType":"VariableDeclaration","scope":10219,"src":"335:8:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10205,"name":"int256","nodeType":"ElementaryTypeName","src":"335:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"324:20:49"},"returnParameters":{"id":10210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10209,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10219,"src":"368:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10208,"name":"int256","nodeType":"ElementaryTypeName","src":"368:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"367:8:49"},"scope":10303,"src":"312:101:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10236,"nodeType":"Block","src":"555:37:49","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10229,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10222,"src":"572:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10230,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10224,"src":"576:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"572:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":10233,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10224,"src":"584:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"572:13:49","trueExpression":{"id":10232,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10222,"src":"580:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10228,"id":10235,"nodeType":"Return","src":"565:20:49"}]},"documentation":{"id":10220,"nodeType":"StructuredDocumentation","src":"419:67:49","text":" @dev Returns the smallest of two signed numbers."},"id":10237,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"500:3:49","nodeType":"FunctionDefinition","parameters":{"id":10225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10222,"mutability":"mutable","name":"a","nameLocation":"511:1:49","nodeType":"VariableDeclaration","scope":10237,"src":"504:8:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10221,"name":"int256","nodeType":"ElementaryTypeName","src":"504:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":10224,"mutability":"mutable","name":"b","nameLocation":"521:1:49","nodeType":"VariableDeclaration","scope":10237,"src":"514:8:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10223,"name":"int256","nodeType":"ElementaryTypeName","src":"514:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"503:20:49"},"returnParameters":{"id":10228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10227,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10237,"src":"547:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10226,"name":"int256","nodeType":"ElementaryTypeName","src":"547:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"546:8:49"},"scope":10303,"src":"491:101:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10280,"nodeType":"Block","src":"797:162:49","statements":[{"assignments":[10248],"declarations":[{"constant":false,"id":10248,"mutability":"mutable","name":"x","nameLocation":"866:1:49","nodeType":"VariableDeclaration","scope":10280,"src":"859:8:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10247,"name":"int256","nodeType":"ElementaryTypeName","src":"859:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":10261,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10249,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10240,"src":"871:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":10250,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"875:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"871:5:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10252,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"870:7:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10253,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10240,"src":"882:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":10254,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"886:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"882:5:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10256,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"881:7:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":10257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"892:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"881:12:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10259,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:14:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:24:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"859:35:49"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10262,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10248,"src":"911:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10267,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10248,"src":"931:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"923:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10265,"name":"uint256","nodeType":"ElementaryTypeName","src":"923:7:49","typeDescriptions":{}}},"id":10268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":10269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:3:49","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"923:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"916:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10263,"name":"int256","nodeType":"ElementaryTypeName","src":"916:6:49","typeDescriptions":{}}},"id":10271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10272,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10240,"src":"945:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":10273,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"949:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"945:5:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10275,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"944:7:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"916:35:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10277,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"915:37:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"911:41:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10246,"id":10279,"nodeType":"Return","src":"904:48:49"}]},"documentation":{"id":10238,"nodeType":"StructuredDocumentation","src":"598:126:49","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":10281,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"738:7:49","nodeType":"FunctionDefinition","parameters":{"id":10243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10240,"mutability":"mutable","name":"a","nameLocation":"753:1:49","nodeType":"VariableDeclaration","scope":10281,"src":"746:8:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10239,"name":"int256","nodeType":"ElementaryTypeName","src":"746:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":10242,"mutability":"mutable","name":"b","nameLocation":"763:1:49","nodeType":"VariableDeclaration","scope":10281,"src":"756:8:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10241,"name":"int256","nodeType":"ElementaryTypeName","src":"756:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"745:20:49"},"returnParameters":{"id":10246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10281,"src":"789:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10244,"name":"int256","nodeType":"ElementaryTypeName","src":"789:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"788:8:49"},"scope":10303,"src":"729:230:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10301,"nodeType":"Block","src":"1103:158:49","statements":[{"id":10300,"nodeType":"UncheckedBlock","src":"1113:142:49","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10291,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10284,"src":"1228:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":10292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1228:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":10296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1241:2:49","subExpression":{"id":10295,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10284,"src":"1242:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1228:15:49","trueExpression":{"id":10294,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10284,"src":"1237:1:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1220:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:49","typeDescriptions":{}}},"id":10298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10288,"id":10299,"nodeType":"Return","src":"1213:31:49"}]}]},"documentation":{"id":10282,"nodeType":"StructuredDocumentation","src":"965:78:49","text":" @dev Returns the absolute unsigned value of a signed value."},"id":10302,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1057:3:49","nodeType":"FunctionDefinition","parameters":{"id":10285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10284,"mutability":"mutable","name":"n","nameLocation":"1068:1:49","nodeType":"VariableDeclaration","scope":10302,"src":"1061:8:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10283,"name":"int256","nodeType":"ElementaryTypeName","src":"1061:6:49","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1060:10:49"},"returnParameters":{"id":10288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10302,"src":"1094:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10286,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1093:9:49"},"scope":10303,"src":"1048:213:49","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10304,"src":"216:1047:49","usedErrors":[],"usedEvents":[]}],"src":"109:1155:49"},"id":49},"contracts/MyONFT721.sol":{"ast":{"absolutePath":"contracts/MyONFT721.sol","exportedSymbols":{"MyONFT721":[10328],"ONFT721":[4283]},"id":10329,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":10305,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"39:24:50"},{"absolutePath":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol","file":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol","id":10307,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10329,"sourceUnit":4284,"src":"65:80:50","symbolAliases":[{"foreign":{"id":10306,"name":"ONFT721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4283,"src":"74:7:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10308,"name":"ONFT721","nameLocations":["169:7:50"],"nodeType":"IdentifierPath","referencedDeclaration":4283,"src":"169:7:50"},"id":10309,"nodeType":"InheritanceSpecifier","src":"169:7:50"}],"canonicalName":"MyONFT721","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":10328,"linearizedBaseContracts":[10328,4283,6652,5192,6815,6769,7377,7389,4691,1298,1847,520,802,988,650,5102,7098,1113,1901,1051,1134,2374,4787],"name":"MyONFT721","nameLocation":"156:9:50","nodeType":"ContractDefinition","nodes":[{"body":{"id":10326,"nodeType":"Block","src":"365:2:50","statements":[]},"id":10327,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":10320,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10311,"src":"325:5:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10321,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10313,"src":"332:7:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10322,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10315,"src":"341:11:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10323,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10317,"src":"354:9:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":10324,"kind":"baseConstructorSpecifier","modifierName":{"id":10319,"name":"ONFT721","nameLocations":["317:7:50"],"nodeType":"IdentifierPath","referencedDeclaration":4283,"src":"317:7:50"},"nodeType":"ModifierInvocation","src":"317:47:50"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10311,"mutability":"mutable","name":"_name","nameLocation":"218:5:50","nodeType":"VariableDeclaration","scope":10327,"src":"204:19:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10310,"name":"string","nodeType":"ElementaryTypeName","src":"204:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10313,"mutability":"mutable","name":"_symbol","nameLocation":"247:7:50","nodeType":"VariableDeclaration","scope":10327,"src":"233:21:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10312,"name":"string","nodeType":"ElementaryTypeName","src":"233:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10315,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"272:11:50","nodeType":"VariableDeclaration","scope":10327,"src":"264:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10314,"name":"address","nodeType":"ElementaryTypeName","src":"264:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10317,"mutability":"mutable","name":"_delegate","nameLocation":"301:9:50","nodeType":"VariableDeclaration","scope":10327,"src":"293:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10316,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"194:122:50"},"returnParameters":{"id":10325,"nodeType":"ParameterList","parameters":[],"src":"365:0:50"},"scope":10328,"src":"183:184:50","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":10329,"src":"147:222:50","usedErrors":[666,824,826,999,1003,1005,1007,1086,1857,1859,4713,4719,4968,4973,5150,5155,5164,5169,5174,5181,5186,5191,5370,6823,6828,6831],"usedEvents":[1013,1092,1864,4342,4729,4739,4979,6668,6677,6686]}],"src":"39:331:50"},"id":50},"contracts/mocks/MyONFT721Mock.sol":{"ast":{"absolutePath":"contracts/mocks/MyONFT721Mock.sol","exportedSymbols":{"MyONFT721":[10328],"MyONFT721Mock":[10366]},"id":10367,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":10330,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"39:24:51"},{"absolutePath":"contracts/MyONFT721.sol","file":"../MyONFT721.sol","id":10332,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10367,"sourceUnit":10329,"src":"65:45:51","symbolAliases":[{"foreign":{"id":10331,"name":"MyONFT721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10328,"src":"74:9:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10333,"name":"MyONFT721","nameLocations":["189:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":10328,"src":"189:9:51"},"id":10334,"nodeType":"InheritanceSpecifier","src":"189:9:51"}],"canonicalName":"MyONFT721Mock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":10366,"linearizedBaseContracts":[10366,10328,4283,6652,5192,6815,6769,7377,7389,4691,1298,1847,520,802,988,650,5102,7098,1113,1901,1051,1134,2374,4787],"name":"MyONFT721Mock","nameLocation":"172:13:51","nodeType":"ContractDefinition","nodes":[{"body":{"id":10351,"nodeType":"Block","src":"389:2:51","statements":[]},"id":10352,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":10345,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10336,"src":"349:5:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10346,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10338,"src":"356:7:51","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10347,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10340,"src":"365:11:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10348,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10342,"src":"378:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":10349,"kind":"baseConstructorSpecifier","modifierName":{"id":10344,"name":"MyONFT721","nameLocations":["339:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":10328,"src":"339:9:51"},"nodeType":"ModifierInvocation","src":"339:49:51"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10336,"mutability":"mutable","name":"_name","nameLocation":"240:5:51","nodeType":"VariableDeclaration","scope":10352,"src":"226:19:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10335,"name":"string","nodeType":"ElementaryTypeName","src":"226:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10338,"mutability":"mutable","name":"_symbol","nameLocation":"269:7:51","nodeType":"VariableDeclaration","scope":10352,"src":"255:21:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10337,"name":"string","nodeType":"ElementaryTypeName","src":"255:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10340,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"294:11:51","nodeType":"VariableDeclaration","scope":10352,"src":"286:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10339,"name":"address","nodeType":"ElementaryTypeName","src":"286:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10342,"mutability":"mutable","name":"_delegate","nameLocation":"323:9:51","nodeType":"VariableDeclaration","scope":10352,"src":"315:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10341,"name":"address","nodeType":"ElementaryTypeName","src":"315:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"216:122:51"},"returnParameters":{"id":10350,"nodeType":"ParameterList","parameters":[],"src":"389:0:51"},"scope":10366,"src":"205:186:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":10364,"nodeType":"Block","src":"448:36:51","statements":[{"expression":{"arguments":[{"id":10360,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10354,"src":"464:3:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10361,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10356,"src":"469:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10359,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6259,"src":"458:5:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":10362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"458:19:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10363,"nodeType":"ExpressionStatement","src":"458:19:51"}]},"functionSelector":"40c10f19","id":10365,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"406:4:51","nodeType":"FunctionDefinition","parameters":{"id":10357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10354,"mutability":"mutable","name":"_to","nameLocation":"419:3:51","nodeType":"VariableDeclaration","scope":10365,"src":"411:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10353,"name":"address","nodeType":"ElementaryTypeName","src":"411:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10356,"mutability":"mutable","name":"_amount","nameLocation":"432:7:51","nodeType":"VariableDeclaration","scope":10365,"src":"424:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10355,"name":"uint256","nodeType":"ElementaryTypeName","src":"424:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"410:30:51"},"returnParameters":{"id":10358,"nodeType":"ParameterList","parameters":[],"src":"448:0:51"},"scope":10366,"src":"397:87:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":10367,"src":"163:323:51","usedErrors":[666,824,826,999,1003,1005,1007,1086,1857,1859,4713,4719,4968,4973,5150,5155,5164,5169,5174,5181,5186,5191,5370,6823,6828,6831],"usedEvents":[1013,1092,1864,4342,4729,4739,4979,6668,6677,6686]}],"src":"39:448:51"},"id":51},"solidity-bytes-utils/contracts/BytesLib.sol":{"ast":{"absolutePath":"solidity-bytes-utils/contracts/BytesLib.sol","exportedSymbols":{"BytesLib":[10716]},"id":10717,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":10368,"literals":["solidity",">=","0.8",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"336:31:52"},{"abstract":false,"baseContracts":[],"canonicalName":"BytesLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":10716,"linearizedBaseContracts":[10716],"name":"BytesLib","nameLocation":"378:8:52","nodeType":"ContractDefinition","nodes":[{"body":{"id":10383,"nodeType":"Block","src":"545:2803:52","statements":[{"assignments":[10378],"declarations":[{"constant":false,"id":10378,"mutability":"mutable","name":"tempBytes","nameLocation":"568:9:52","nodeType":"VariableDeclaration","scope":10383,"src":"555:22:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10377,"name":"bytes","nodeType":"ElementaryTypeName","src":"555:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10379,"nodeType":"VariableDeclarationStatement","src":"555:22:52"},{"AST":{"nativeSrc":"597:2718:52","nodeType":"YulBlock","src":"597:2718:52","statements":[{"nativeSrc":"741:24:52","nodeType":"YulAssignment","src":"741:24:52","value":{"arguments":[{"kind":"number","nativeSrc":"760:4:52","nodeType":"YulLiteral","src":"760:4:52","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"754:5:52","nodeType":"YulIdentifier","src":"754:5:52"},"nativeSrc":"754:11:52","nodeType":"YulFunctionCall","src":"754:11:52"},"variableNames":[{"name":"tempBytes","nativeSrc":"741:9:52","nodeType":"YulIdentifier","src":"741:9:52"}]},{"nativeSrc":"897:30:52","nodeType":"YulVariableDeclaration","src":"897:30:52","value":{"arguments":[{"name":"_preBytes","nativeSrc":"917:9:52","nodeType":"YulIdentifier","src":"917:9:52"}],"functionName":{"name":"mload","nativeSrc":"911:5:52","nodeType":"YulIdentifier","src":"911:5:52"},"nativeSrc":"911:16:52","nodeType":"YulFunctionCall","src":"911:16:52"},"variables":[{"name":"length","nativeSrc":"901:6:52","nodeType":"YulTypedName","src":"901:6:52","type":""}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"947:9:52","nodeType":"YulIdentifier","src":"947:9:52"},{"name":"length","nativeSrc":"958:6:52","nodeType":"YulIdentifier","src":"958:6:52"}],"functionName":{"name":"mstore","nativeSrc":"940:6:52","nodeType":"YulIdentifier","src":"940:6:52"},"nativeSrc":"940:25:52","nodeType":"YulFunctionCall","src":"940:25:52"},"nativeSrc":"940:25:52","nodeType":"YulExpressionStatement","src":"940:25:52"},{"nativeSrc":"1175:30:52","nodeType":"YulVariableDeclaration","src":"1175:30:52","value":{"arguments":[{"name":"tempBytes","nativeSrc":"1189:9:52","nodeType":"YulIdentifier","src":"1189:9:52"},{"kind":"number","nativeSrc":"1200:4:52","nodeType":"YulLiteral","src":"1200:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1185:3:52","nodeType":"YulIdentifier","src":"1185:3:52"},"nativeSrc":"1185:20:52","nodeType":"YulFunctionCall","src":"1185:20:52"},"variables":[{"name":"mc","nativeSrc":"1179:2:52","nodeType":"YulTypedName","src":"1179:2:52","type":""}]},{"nativeSrc":"1330:26:52","nodeType":"YulVariableDeclaration","src":"1330:26:52","value":{"arguments":[{"name":"mc","nativeSrc":"1345:2:52","nodeType":"YulIdentifier","src":"1345:2:52"},{"name":"length","nativeSrc":"1349:6:52","nodeType":"YulIdentifier","src":"1349:6:52"}],"functionName":{"name":"add","nativeSrc":"1341:3:52","nodeType":"YulIdentifier","src":"1341:3:52"},"nativeSrc":"1341:15:52","nodeType":"YulFunctionCall","src":"1341:15:52"},"variables":[{"name":"end","nativeSrc":"1334:3:52","nodeType":"YulTypedName","src":"1334:3:52","type":""}]},{"body":{"nativeSrc":"1733:162:52","nodeType":"YulBlock","src":"1733:162:52","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"1867:2:52","nodeType":"YulIdentifier","src":"1867:2:52"},{"arguments":[{"name":"cc","nativeSrc":"1877:2:52","nodeType":"YulIdentifier","src":"1877:2:52"}],"functionName":{"name":"mload","nativeSrc":"1871:5:52","nodeType":"YulIdentifier","src":"1871:5:52"},"nativeSrc":"1871:9:52","nodeType":"YulFunctionCall","src":"1871:9:52"}],"functionName":{"name":"mstore","nativeSrc":"1860:6:52","nodeType":"YulIdentifier","src":"1860:6:52"},"nativeSrc":"1860:21:52","nodeType":"YulFunctionCall","src":"1860:21:52"},"nativeSrc":"1860:21:52","nodeType":"YulExpressionStatement","src":"1860:21:52"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"1566:2:52","nodeType":"YulIdentifier","src":"1566:2:52"},{"name":"end","nativeSrc":"1570:3:52","nodeType":"YulIdentifier","src":"1570:3:52"}],"functionName":{"name":"lt","nativeSrc":"1563:2:52","nodeType":"YulIdentifier","src":"1563:2:52"},"nativeSrc":"1563:11:52","nodeType":"YulFunctionCall","src":"1563:11:52"},"nativeSrc":"1370:525:52","nodeType":"YulForLoop","post":{"nativeSrc":"1575:157:52","nodeType":"YulBlock","src":"1575:157:52","statements":[{"nativeSrc":"1663:19:52","nodeType":"YulAssignment","src":"1663:19:52","value":{"arguments":[{"name":"mc","nativeSrc":"1673:2:52","nodeType":"YulIdentifier","src":"1673:2:52"},{"kind":"number","nativeSrc":"1677:4:52","nodeType":"YulLiteral","src":"1677:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1669:3:52","nodeType":"YulIdentifier","src":"1669:3:52"},"nativeSrc":"1669:13:52","nodeType":"YulFunctionCall","src":"1669:13:52"},"variableNames":[{"name":"mc","nativeSrc":"1663:2:52","nodeType":"YulIdentifier","src":"1663:2:52"}]},{"nativeSrc":"1699:19:52","nodeType":"YulAssignment","src":"1699:19:52","value":{"arguments":[{"name":"cc","nativeSrc":"1709:2:52","nodeType":"YulIdentifier","src":"1709:2:52"},{"kind":"number","nativeSrc":"1713:4:52","nodeType":"YulLiteral","src":"1713:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1705:3:52","nodeType":"YulIdentifier","src":"1705:3:52"},"nativeSrc":"1705:13:52","nodeType":"YulFunctionCall","src":"1705:13:52"},"variableNames":[{"name":"cc","nativeSrc":"1699:2:52","nodeType":"YulIdentifier","src":"1699:2:52"}]}]},"pre":{"nativeSrc":"1374:188:52","nodeType":"YulBlock","src":"1374:188:52","statements":[{"nativeSrc":"1518:30:52","nodeType":"YulVariableDeclaration","src":"1518:30:52","value":{"arguments":[{"name":"_preBytes","nativeSrc":"1532:9:52","nodeType":"YulIdentifier","src":"1532:9:52"},{"kind":"number","nativeSrc":"1543:4:52","nodeType":"YulLiteral","src":"1543:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1528:3:52","nodeType":"YulIdentifier","src":"1528:3:52"},"nativeSrc":"1528:20:52","nodeType":"YulFunctionCall","src":"1528:20:52"},"variables":[{"name":"cc","nativeSrc":"1522:2:52","nodeType":"YulTypedName","src":"1522:2:52","type":""}]}]},"src":"1370:525:52"},{"nativeSrc":"2096:27:52","nodeType":"YulAssignment","src":"2096:27:52","value":{"arguments":[{"name":"_postBytes","nativeSrc":"2112:10:52","nodeType":"YulIdentifier","src":"2112:10:52"}],"functionName":{"name":"mload","nativeSrc":"2106:5:52","nodeType":"YulIdentifier","src":"2106:5:52"},"nativeSrc":"2106:17:52","nodeType":"YulFunctionCall","src":"2106:17:52"},"variableNames":[{"name":"length","nativeSrc":"2096:6:52","nodeType":"YulIdentifier","src":"2096:6:52"}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"2143:9:52","nodeType":"YulIdentifier","src":"2143:9:52"},{"arguments":[{"name":"length","nativeSrc":"2158:6:52","nodeType":"YulIdentifier","src":"2158:6:52"},{"arguments":[{"name":"tempBytes","nativeSrc":"2172:9:52","nodeType":"YulIdentifier","src":"2172:9:52"}],"functionName":{"name":"mload","nativeSrc":"2166:5:52","nodeType":"YulIdentifier","src":"2166:5:52"},"nativeSrc":"2166:16:52","nodeType":"YulFunctionCall","src":"2166:16:52"}],"functionName":{"name":"add","nativeSrc":"2154:3:52","nodeType":"YulIdentifier","src":"2154:3:52"},"nativeSrc":"2154:29:52","nodeType":"YulFunctionCall","src":"2154:29:52"}],"functionName":{"name":"mstore","nativeSrc":"2136:6:52","nodeType":"YulIdentifier","src":"2136:6:52"},"nativeSrc":"2136:48:52","nodeType":"YulFunctionCall","src":"2136:48:52"},"nativeSrc":"2136:48:52","nodeType":"YulExpressionStatement","src":"2136:48:52"},{"nativeSrc":"2322:9:52","nodeType":"YulAssignment","src":"2322:9:52","value":{"name":"end","nativeSrc":"2328:3:52","nodeType":"YulIdentifier","src":"2328:3:52"},"variableNames":[{"name":"mc","nativeSrc":"2322:2:52","nodeType":"YulIdentifier","src":"2322:2:52"}]},{"nativeSrc":"2458:22:52","nodeType":"YulAssignment","src":"2458:22:52","value":{"arguments":[{"name":"mc","nativeSrc":"2469:2:52","nodeType":"YulIdentifier","src":"2469:2:52"},{"name":"length","nativeSrc":"2473:6:52","nodeType":"YulIdentifier","src":"2473:6:52"}],"functionName":{"name":"add","nativeSrc":"2465:3:52","nodeType":"YulIdentifier","src":"2465:3:52"},"nativeSrc":"2465:15:52","nodeType":"YulFunctionCall","src":"2465:15:52"},"variableNames":[{"name":"end","nativeSrc":"2458:3:52","nodeType":"YulIdentifier","src":"2458:3:52"}]},{"body":{"nativeSrc":"2662:53:52","nodeType":"YulBlock","src":"2662:53:52","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"2687:2:52","nodeType":"YulIdentifier","src":"2687:2:52"},{"arguments":[{"name":"cc","nativeSrc":"2697:2:52","nodeType":"YulIdentifier","src":"2697:2:52"}],"functionName":{"name":"mload","nativeSrc":"2691:5:52","nodeType":"YulIdentifier","src":"2691:5:52"},"nativeSrc":"2691:9:52","nodeType":"YulFunctionCall","src":"2691:9:52"}],"functionName":{"name":"mstore","nativeSrc":"2680:6:52","nodeType":"YulIdentifier","src":"2680:6:52"},"nativeSrc":"2680:21:52","nodeType":"YulFunctionCall","src":"2680:21:52"},"nativeSrc":"2680:21:52","nodeType":"YulExpressionStatement","src":"2680:21:52"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"2565:2:52","nodeType":"YulIdentifier","src":"2565:2:52"},{"name":"end","nativeSrc":"2569:3:52","nodeType":"YulIdentifier","src":"2569:3:52"}],"functionName":{"name":"lt","nativeSrc":"2562:2:52","nodeType":"YulIdentifier","src":"2562:2:52"},"nativeSrc":"2562:11:52","nodeType":"YulFunctionCall","src":"2562:11:52"},"nativeSrc":"2494:221:52","nodeType":"YulForLoop","post":{"nativeSrc":"2574:87:52","nodeType":"YulBlock","src":"2574:87:52","statements":[{"nativeSrc":"2592:19:52","nodeType":"YulAssignment","src":"2592:19:52","value":{"arguments":[{"name":"mc","nativeSrc":"2602:2:52","nodeType":"YulIdentifier","src":"2602:2:52"},{"kind":"number","nativeSrc":"2606:4:52","nodeType":"YulLiteral","src":"2606:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2598:3:52","nodeType":"YulIdentifier","src":"2598:3:52"},"nativeSrc":"2598:13:52","nodeType":"YulFunctionCall","src":"2598:13:52"},"variableNames":[{"name":"mc","nativeSrc":"2592:2:52","nodeType":"YulIdentifier","src":"2592:2:52"}]},{"nativeSrc":"2628:19:52","nodeType":"YulAssignment","src":"2628:19:52","value":{"arguments":[{"name":"cc","nativeSrc":"2638:2:52","nodeType":"YulIdentifier","src":"2638:2:52"},{"kind":"number","nativeSrc":"2642:4:52","nodeType":"YulLiteral","src":"2642:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2634:3:52","nodeType":"YulIdentifier","src":"2634:3:52"},"nativeSrc":"2634:13:52","nodeType":"YulFunctionCall","src":"2634:13:52"},"variableNames":[{"name":"cc","nativeSrc":"2628:2:52","nodeType":"YulIdentifier","src":"2628:2:52"}]}]},"pre":{"nativeSrc":"2498:63:52","nodeType":"YulBlock","src":"2498:63:52","statements":[{"nativeSrc":"2516:31:52","nodeType":"YulVariableDeclaration","src":"2516:31:52","value":{"arguments":[{"name":"_postBytes","nativeSrc":"2530:10:52","nodeType":"YulIdentifier","src":"2530:10:52"},{"kind":"number","nativeSrc":"2542:4:52","nodeType":"YulLiteral","src":"2542:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2526:3:52","nodeType":"YulIdentifier","src":"2526:3:52"},"nativeSrc":"2526:21:52","nodeType":"YulFunctionCall","src":"2526:21:52"},"variables":[{"name":"cc","nativeSrc":"2520:2:52","nodeType":"YulTypedName","src":"2520:2:52","type":""}]}]},"src":"2494:221:52"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3147:4:52","nodeType":"YulLiteral","src":"3147:4:52","type":"","value":"0x40"},{"arguments":[{"arguments":[{"arguments":[{"name":"end","nativeSrc":"3180:3:52","nodeType":"YulIdentifier","src":"3180:3:52"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3196:6:52","nodeType":"YulIdentifier","src":"3196:6:52"},{"arguments":[{"name":"_preBytes","nativeSrc":"3210:9:52","nodeType":"YulIdentifier","src":"3210:9:52"}],"functionName":{"name":"mload","nativeSrc":"3204:5:52","nodeType":"YulIdentifier","src":"3204:5:52"},"nativeSrc":"3204:16:52","nodeType":"YulFunctionCall","src":"3204:16:52"}],"functionName":{"name":"add","nativeSrc":"3192:3:52","nodeType":"YulIdentifier","src":"3192:3:52"},"nativeSrc":"3192:29:52","nodeType":"YulFunctionCall","src":"3192:29:52"}],"functionName":{"name":"iszero","nativeSrc":"3185:6:52","nodeType":"YulIdentifier","src":"3185:6:52"},"nativeSrc":"3185:37:52","nodeType":"YulFunctionCall","src":"3185:37:52"}],"functionName":{"name":"add","nativeSrc":"3176:3:52","nodeType":"YulIdentifier","src":"3176:3:52"},"nativeSrc":"3176:47:52","nodeType":"YulFunctionCall","src":"3176:47:52"},{"kind":"number","nativeSrc":"3225:2:52","nodeType":"YulLiteral","src":"3225:2:52","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3172:3:52","nodeType":"YulIdentifier","src":"3172:3:52"},"nativeSrc":"3172:56:52","nodeType":"YulFunctionCall","src":"3172:56:52"},{"arguments":[{"kind":"number","nativeSrc":"3248:2:52","nodeType":"YulLiteral","src":"3248:2:52","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3244:3:52","nodeType":"YulIdentifier","src":"3244:3:52"},"nativeSrc":"3244:7:52","nodeType":"YulFunctionCall","src":"3244:7:52"}],"functionName":{"name":"and","nativeSrc":"3153:3:52","nodeType":"YulIdentifier","src":"3153:3:52"},"nativeSrc":"3153:151:52","nodeType":"YulFunctionCall","src":"3153:151:52"}],"functionName":{"name":"mstore","nativeSrc":"3140:6:52","nodeType":"YulIdentifier","src":"3140:6:52"},"nativeSrc":"3140:165:52","nodeType":"YulFunctionCall","src":"3140:165:52"},"nativeSrc":"3140:165:52","nodeType":"YulExpressionStatement","src":"3140:165:52"}]},"evmVersion":"paris","externalReferences":[{"declaration":10372,"isOffset":false,"isSlot":false,"src":"2112:10:52","valueSize":1},{"declaration":10372,"isOffset":false,"isSlot":false,"src":"2530:10:52","valueSize":1},{"declaration":10370,"isOffset":false,"isSlot":false,"src":"1532:9:52","valueSize":1},{"declaration":10370,"isOffset":false,"isSlot":false,"src":"3210:9:52","valueSize":1},{"declaration":10370,"isOffset":false,"isSlot":false,"src":"917:9:52","valueSize":1},{"declaration":10378,"isOffset":false,"isSlot":false,"src":"1189:9:52","valueSize":1},{"declaration":10378,"isOffset":false,"isSlot":false,"src":"2143:9:52","valueSize":1},{"declaration":10378,"isOffset":false,"isSlot":false,"src":"2172:9:52","valueSize":1},{"declaration":10378,"isOffset":false,"isSlot":false,"src":"741:9:52","valueSize":1},{"declaration":10378,"isOffset":false,"isSlot":false,"src":"947:9:52","valueSize":1}],"id":10380,"nodeType":"InlineAssembly","src":"588:2727:52"},{"expression":{"id":10381,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10378,"src":"3332:9:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10376,"id":10382,"nodeType":"Return","src":"3325:16:52"}]},"id":10384,"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"402:6:52","nodeType":"FunctionDefinition","parameters":{"id":10373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10370,"mutability":"mutable","name":"_preBytes","nameLocation":"431:9:52","nodeType":"VariableDeclaration","scope":10384,"src":"418:22:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10369,"name":"bytes","nodeType":"ElementaryTypeName","src":"418:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10372,"mutability":"mutable","name":"_postBytes","nameLocation":"463:10:52","nodeType":"VariableDeclaration","scope":10384,"src":"450:23:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10371,"name":"bytes","nodeType":"ElementaryTypeName","src":"450:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"408:71:52"},"returnParameters":{"id":10376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10384,"src":"527:12:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10374,"name":"bytes","nodeType":"ElementaryTypeName","src":"527:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"526:14:52"},"scope":10716,"src":"393:2955:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10392,"nodeType":"Block","src":"3436:6015:52","statements":[{"AST":{"nativeSrc":"3455:5990:52","nodeType":"YulBlock","src":"3455:5990:52","statements":[{"nativeSrc":"3678:34:52","nodeType":"YulVariableDeclaration","src":"3678:34:52","value":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"3697:14:52","nodeType":"YulIdentifier","src":"3697:14:52"}],"functionName":{"name":"sload","nativeSrc":"3691:5:52","nodeType":"YulIdentifier","src":"3691:5:52"},"nativeSrc":"3691:21:52","nodeType":"YulFunctionCall","src":"3691:21:52"},"variables":[{"name":"fslot","nativeSrc":"3682:5:52","nodeType":"YulTypedName","src":"3682:5:52","type":""}]},{"nativeSrc":"4205:76:52","nodeType":"YulVariableDeclaration","src":"4205:76:52","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"4228:5:52","nodeType":"YulIdentifier","src":"4228:5:52"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4243:5:52","nodeType":"YulLiteral","src":"4243:5:52","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"4261:5:52","nodeType":"YulIdentifier","src":"4261:5:52"},{"kind":"number","nativeSrc":"4268:1:52","nodeType":"YulLiteral","src":"4268:1:52","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4257:3:52","nodeType":"YulIdentifier","src":"4257:3:52"},"nativeSrc":"4257:13:52","nodeType":"YulFunctionCall","src":"4257:13:52"}],"functionName":{"name":"iszero","nativeSrc":"4250:6:52","nodeType":"YulIdentifier","src":"4250:6:52"},"nativeSrc":"4250:21:52","nodeType":"YulFunctionCall","src":"4250:21:52"}],"functionName":{"name":"mul","nativeSrc":"4239:3:52","nodeType":"YulIdentifier","src":"4239:3:52"},"nativeSrc":"4239:33:52","nodeType":"YulFunctionCall","src":"4239:33:52"},{"kind":"number","nativeSrc":"4274:1:52","nodeType":"YulLiteral","src":"4274:1:52","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4235:3:52","nodeType":"YulIdentifier","src":"4235:3:52"},"nativeSrc":"4235:41:52","nodeType":"YulFunctionCall","src":"4235:41:52"}],"functionName":{"name":"and","nativeSrc":"4224:3:52","nodeType":"YulIdentifier","src":"4224:3:52"},"nativeSrc":"4224:53:52","nodeType":"YulFunctionCall","src":"4224:53:52"},{"kind":"number","nativeSrc":"4279:1:52","nodeType":"YulLiteral","src":"4279:1:52","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4220:3:52","nodeType":"YulIdentifier","src":"4220:3:52"},"nativeSrc":"4220:61:52","nodeType":"YulFunctionCall","src":"4220:61:52"},"variables":[{"name":"slength","nativeSrc":"4209:7:52","nodeType":"YulTypedName","src":"4209:7:52","type":""}]},{"nativeSrc":"4294:32:52","nodeType":"YulVariableDeclaration","src":"4294:32:52","value":{"arguments":[{"name":"_postBytes","nativeSrc":"4315:10:52","nodeType":"YulIdentifier","src":"4315:10:52"}],"functionName":{"name":"mload","nativeSrc":"4309:5:52","nodeType":"YulIdentifier","src":"4309:5:52"},"nativeSrc":"4309:17:52","nodeType":"YulFunctionCall","src":"4309:17:52"},"variables":[{"name":"mlength","nativeSrc":"4298:7:52","nodeType":"YulTypedName","src":"4298:7:52","type":""}]},{"nativeSrc":"4339:38:52","nodeType":"YulVariableDeclaration","src":"4339:38:52","value":{"arguments":[{"name":"slength","nativeSrc":"4360:7:52","nodeType":"YulIdentifier","src":"4360:7:52"},{"name":"mlength","nativeSrc":"4369:7:52","nodeType":"YulIdentifier","src":"4369:7:52"}],"functionName":{"name":"add","nativeSrc":"4356:3:52","nodeType":"YulIdentifier","src":"4356:3:52"},"nativeSrc":"4356:21:52","nodeType":"YulFunctionCall","src":"4356:21:52"},"variables":[{"name":"newlength","nativeSrc":"4343:9:52","nodeType":"YulTypedName","src":"4343:9:52","type":""}]},{"cases":[{"body":{"nativeSrc":"4710:1485:52","nodeType":"YulBlock","src":"4710:1485:52","statements":[{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"4991:14:52","nodeType":"YulIdentifier","src":"4991:14:52"},{"arguments":[{"name":"fslot","nativeSrc":"5303:5:52","nodeType":"YulIdentifier","src":"5303:5:52"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_postBytes","nativeSrc":"5521:10:52","nodeType":"YulIdentifier","src":"5521:10:52"},{"kind":"number","nativeSrc":"5533:4:52","nodeType":"YulLiteral","src":"5533:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5517:3:52","nodeType":"YulIdentifier","src":"5517:3:52"},"nativeSrc":"5517:21:52","nodeType":"YulFunctionCall","src":"5517:21:52"}],"functionName":{"name":"mload","nativeSrc":"5511:5:52","nodeType":"YulIdentifier","src":"5511:5:52"},"nativeSrc":"5511:28:52","nodeType":"YulFunctionCall","src":"5511:28:52"},{"arguments":[{"kind":"number","nativeSrc":"5648:5:52","nodeType":"YulLiteral","src":"5648:5:52","type":"","value":"0x100"},{"arguments":[{"kind":"number","nativeSrc":"5659:2:52","nodeType":"YulLiteral","src":"5659:2:52","type":"","value":"32"},{"name":"mlength","nativeSrc":"5663:7:52","nodeType":"YulIdentifier","src":"5663:7:52"}],"functionName":{"name":"sub","nativeSrc":"5655:3:52","nodeType":"YulIdentifier","src":"5655:3:52"},"nativeSrc":"5655:16:52","nodeType":"YulFunctionCall","src":"5655:16:52"}],"functionName":{"name":"exp","nativeSrc":"5644:3:52","nodeType":"YulIdentifier","src":"5644:3:52"},"nativeSrc":"5644:28:52","nodeType":"YulFunctionCall","src":"5644:28:52"}],"functionName":{"name":"div","nativeSrc":"5404:3:52","nodeType":"YulIdentifier","src":"5404:3:52"},"nativeSrc":"5404:302:52","nodeType":"YulFunctionCall","src":"5404:302:52"},{"arguments":[{"kind":"number","nativeSrc":"5895:5:52","nodeType":"YulLiteral","src":"5895:5:52","type":"","value":"0x100"},{"arguments":[{"kind":"number","nativeSrc":"5906:2:52","nodeType":"YulLiteral","src":"5906:2:52","type":"","value":"32"},{"name":"newlength","nativeSrc":"5910:9:52","nodeType":"YulIdentifier","src":"5910:9:52"}],"functionName":{"name":"sub","nativeSrc":"5902:3:52","nodeType":"YulIdentifier","src":"5902:3:52"},"nativeSrc":"5902:18:52","nodeType":"YulFunctionCall","src":"5902:18:52"}],"functionName":{"name":"exp","nativeSrc":"5891:3:52","nodeType":"YulIdentifier","src":"5891:3:52"},"nativeSrc":"5891:30:52","nodeType":"YulFunctionCall","src":"5891:30:52"}],"functionName":{"name":"mul","nativeSrc":"5367:3:52","nodeType":"YulIdentifier","src":"5367:3:52"},"nativeSrc":"5367:584:52","nodeType":"YulFunctionCall","src":"5367:584:52"},{"arguments":[{"name":"mlength","nativeSrc":"6104:7:52","nodeType":"YulIdentifier","src":"6104:7:52"},{"kind":"number","nativeSrc":"6113:1:52","nodeType":"YulLiteral","src":"6113:1:52","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"6100:3:52","nodeType":"YulIdentifier","src":"6100:3:52"},"nativeSrc":"6100:15:52","nodeType":"YulFunctionCall","src":"6100:15:52"}],"functionName":{"name":"add","nativeSrc":"5334:3:52","nodeType":"YulIdentifier","src":"5334:3:52"},"nativeSrc":"5334:807:52","nodeType":"YulFunctionCall","src":"5334:807:52"}],"functionName":{"name":"add","nativeSrc":"5134:3:52","nodeType":"YulIdentifier","src":"5134:3:52"},"nativeSrc":"5134:1029:52","nodeType":"YulFunctionCall","src":"5134:1029:52"}],"functionName":{"name":"sstore","nativeSrc":"4963:6:52","nodeType":"YulIdentifier","src":"4963:6:52"},"nativeSrc":"4963:1218:52","nodeType":"YulFunctionCall","src":"4963:1218:52"},"nativeSrc":"4963:1218:52","nodeType":"YulExpressionStatement","src":"4963:1218:52"}]},"nativeSrc":"4703:1492:52","nodeType":"YulCase","src":"4703:1492:52","value":{"kind":"number","nativeSrc":"4708:1:52","nodeType":"YulLiteral","src":"4708:1:52","type":"","value":"2"}},{"body":{"nativeSrc":"6215:1935:52","nodeType":"YulBlock","src":"6215:1935:52","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6424:3:52","nodeType":"YulLiteral","src":"6424:3:52","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"6429:14:52","nodeType":"YulIdentifier","src":"6429:14:52"}],"functionName":{"name":"mstore","nativeSrc":"6417:6:52","nodeType":"YulIdentifier","src":"6417:6:52"},"nativeSrc":"6417:27:52","nodeType":"YulFunctionCall","src":"6417:27:52"},"nativeSrc":"6417:27:52","nodeType":"YulExpressionStatement","src":"6417:27:52"},{"nativeSrc":"6461:53:52","nodeType":"YulVariableDeclaration","src":"6461:53:52","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6485:3:52","nodeType":"YulLiteral","src":"6485:3:52","type":"","value":"0x0"},{"kind":"number","nativeSrc":"6490:4:52","nodeType":"YulLiteral","src":"6490:4:52","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6475:9:52","nodeType":"YulIdentifier","src":"6475:9:52"},"nativeSrc":"6475:20:52","nodeType":"YulFunctionCall","src":"6475:20:52"},{"arguments":[{"name":"slength","nativeSrc":"6501:7:52","nodeType":"YulIdentifier","src":"6501:7:52"},{"kind":"number","nativeSrc":"6510:2:52","nodeType":"YulLiteral","src":"6510:2:52","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"6497:3:52","nodeType":"YulIdentifier","src":"6497:3:52"},"nativeSrc":"6497:16:52","nodeType":"YulFunctionCall","src":"6497:16:52"}],"functionName":{"name":"add","nativeSrc":"6471:3:52","nodeType":"YulIdentifier","src":"6471:3:52"},"nativeSrc":"6471:43:52","nodeType":"YulFunctionCall","src":"6471:43:52"},"variables":[{"name":"sc","nativeSrc":"6465:2:52","nodeType":"YulTypedName","src":"6465:2:52","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"6574:14:52","nodeType":"YulIdentifier","src":"6574:14:52"},{"arguments":[{"arguments":[{"name":"newlength","nativeSrc":"6598:9:52","nodeType":"YulIdentifier","src":"6598:9:52"},{"kind":"number","nativeSrc":"6609:1:52","nodeType":"YulLiteral","src":"6609:1:52","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"6594:3:52","nodeType":"YulIdentifier","src":"6594:3:52"},"nativeSrc":"6594:17:52","nodeType":"YulFunctionCall","src":"6594:17:52"},{"kind":"number","nativeSrc":"6613:1:52","nodeType":"YulLiteral","src":"6613:1:52","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6590:3:52","nodeType":"YulIdentifier","src":"6590:3:52"},"nativeSrc":"6590:25:52","nodeType":"YulFunctionCall","src":"6590:25:52"}],"functionName":{"name":"sstore","nativeSrc":"6567:6:52","nodeType":"YulIdentifier","src":"6567:6:52"},"nativeSrc":"6567:49:52","nodeType":"YulFunctionCall","src":"6567:49:52"},"nativeSrc":"6567:49:52","nodeType":"YulExpressionStatement","src":"6567:49:52"},{"nativeSrc":"7204:30:52","nodeType":"YulVariableDeclaration","src":"7204:30:52","value":{"arguments":[{"kind":"number","nativeSrc":"7222:2:52","nodeType":"YulLiteral","src":"7222:2:52","type":"","value":"32"},{"name":"slength","nativeSrc":"7226:7:52","nodeType":"YulIdentifier","src":"7226:7:52"}],"functionName":{"name":"sub","nativeSrc":"7218:3:52","nodeType":"YulIdentifier","src":"7218:3:52"},"nativeSrc":"7218:16:52","nodeType":"YulFunctionCall","src":"7218:16:52"},"variables":[{"name":"submod","nativeSrc":"7208:6:52","nodeType":"YulTypedName","src":"7208:6:52","type":""}]},{"nativeSrc":"7251:33:52","nodeType":"YulVariableDeclaration","src":"7251:33:52","value":{"arguments":[{"name":"_postBytes","nativeSrc":"7265:10:52","nodeType":"YulIdentifier","src":"7265:10:52"},{"name":"submod","nativeSrc":"7277:6:52","nodeType":"YulIdentifier","src":"7277:6:52"}],"functionName":{"name":"add","nativeSrc":"7261:3:52","nodeType":"YulIdentifier","src":"7261:3:52"},"nativeSrc":"7261:23:52","nodeType":"YulFunctionCall","src":"7261:23:52"},"variables":[{"name":"mc","nativeSrc":"7255:2:52","nodeType":"YulTypedName","src":"7255:2:52","type":""}]},{"nativeSrc":"7301:35:52","nodeType":"YulVariableDeclaration","src":"7301:35:52","value":{"arguments":[{"name":"_postBytes","nativeSrc":"7316:10:52","nodeType":"YulIdentifier","src":"7316:10:52"},{"name":"mlength","nativeSrc":"7328:7:52","nodeType":"YulIdentifier","src":"7328:7:52"}],"functionName":{"name":"add","nativeSrc":"7312:3:52","nodeType":"YulIdentifier","src":"7312:3:52"},"nativeSrc":"7312:24:52","nodeType":"YulFunctionCall","src":"7312:24:52"},"variables":[{"name":"end","nativeSrc":"7305:3:52","nodeType":"YulTypedName","src":"7305:3:52","type":""}]},{"nativeSrc":"7353:38:52","nodeType":"YulVariableDeclaration","src":"7353:38:52","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7373:5:52","nodeType":"YulLiteral","src":"7373:5:52","type":"","value":"0x100"},{"name":"submod","nativeSrc":"7380:6:52","nodeType":"YulIdentifier","src":"7380:6:52"}],"functionName":{"name":"exp","nativeSrc":"7369:3:52","nodeType":"YulIdentifier","src":"7369:3:52"},"nativeSrc":"7369:18:52","nodeType":"YulFunctionCall","src":"7369:18:52"},{"kind":"number","nativeSrc":"7389:1:52","nodeType":"YulLiteral","src":"7389:1:52","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7365:3:52","nodeType":"YulIdentifier","src":"7365:3:52"},"nativeSrc":"7365:26:52","nodeType":"YulFunctionCall","src":"7365:26:52"},"variables":[{"name":"mask","nativeSrc":"7357:4:52","nodeType":"YulTypedName","src":"7357:4:52","type":""}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"7437:2:52","nodeType":"YulIdentifier","src":"7437:2:52"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"7523:5:52","nodeType":"YulIdentifier","src":"7523:5:52"},{"kind":"number","nativeSrc":"7558:66:52","nodeType":"YulLiteral","src":"7558:66:52","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nativeSrc":"7490:3:52","nodeType":"YulIdentifier","src":"7490:3:52"},"nativeSrc":"7490:160:52","nodeType":"YulFunctionCall","src":"7490:160:52"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"7686:2:52","nodeType":"YulIdentifier","src":"7686:2:52"}],"functionName":{"name":"mload","nativeSrc":"7680:5:52","nodeType":"YulIdentifier","src":"7680:5:52"},"nativeSrc":"7680:9:52","nodeType":"YulFunctionCall","src":"7680:9:52"},{"name":"mask","nativeSrc":"7691:4:52","nodeType":"YulIdentifier","src":"7691:4:52"}],"functionName":{"name":"and","nativeSrc":"7676:3:52","nodeType":"YulIdentifier","src":"7676:3:52"},"nativeSrc":"7676:20:52","nodeType":"YulFunctionCall","src":"7676:20:52"}],"functionName":{"name":"add","nativeSrc":"7461:3:52","nodeType":"YulIdentifier","src":"7461:3:52"},"nativeSrc":"7461:257:52","nodeType":"YulFunctionCall","src":"7461:257:52"}],"functionName":{"name":"sstore","nativeSrc":"7409:6:52","nodeType":"YulIdentifier","src":"7409:6:52"},"nativeSrc":"7409:327:52","nodeType":"YulFunctionCall","src":"7409:327:52"},"nativeSrc":"7409:327:52","nodeType":"YulExpressionStatement","src":"7409:327:52"},{"body":{"nativeSrc":"7964:61:52","nodeType":"YulBlock","src":"7964:61:52","statements":[{"expression":{"arguments":[{"name":"sc","nativeSrc":"7993:2:52","nodeType":"YulIdentifier","src":"7993:2:52"},{"arguments":[{"name":"mc","nativeSrc":"8003:2:52","nodeType":"YulIdentifier","src":"8003:2:52"}],"functionName":{"name":"mload","nativeSrc":"7997:5:52","nodeType":"YulIdentifier","src":"7997:5:52"},"nativeSrc":"7997:9:52","nodeType":"YulFunctionCall","src":"7997:9:52"}],"functionName":{"name":"sstore","nativeSrc":"7986:6:52","nodeType":"YulIdentifier","src":"7986:6:52"},"nativeSrc":"7986:21:52","nodeType":"YulFunctionCall","src":"7986:21:52"},"nativeSrc":"7986:21:52","nodeType":"YulExpressionStatement","src":"7986:21:52"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"7858:2:52","nodeType":"YulIdentifier","src":"7858:2:52"},{"name":"end","nativeSrc":"7862:3:52","nodeType":"YulIdentifier","src":"7862:3:52"}],"functionName":{"name":"lt","nativeSrc":"7855:2:52","nodeType":"YulIdentifier","src":"7855:2:52"},"nativeSrc":"7855:11:52","nodeType":"YulFunctionCall","src":"7855:11:52"},"nativeSrc":"7754:271:52","nodeType":"YulForLoop","post":{"nativeSrc":"7867:96:52","nodeType":"YulBlock","src":"7867:96:52","statements":[{"nativeSrc":"7889:16:52","nodeType":"YulAssignment","src":"7889:16:52","value":{"arguments":[{"name":"sc","nativeSrc":"7899:2:52","nodeType":"YulIdentifier","src":"7899:2:52"},{"kind":"number","nativeSrc":"7903:1:52","nodeType":"YulLiteral","src":"7903:1:52","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7895:3:52","nodeType":"YulIdentifier","src":"7895:3:52"},"nativeSrc":"7895:10:52","nodeType":"YulFunctionCall","src":"7895:10:52"},"variableNames":[{"name":"sc","nativeSrc":"7889:2:52","nodeType":"YulIdentifier","src":"7889:2:52"}]},{"nativeSrc":"7926:19:52","nodeType":"YulAssignment","src":"7926:19:52","value":{"arguments":[{"name":"mc","nativeSrc":"7936:2:52","nodeType":"YulIdentifier","src":"7936:2:52"},{"kind":"number","nativeSrc":"7940:4:52","nodeType":"YulLiteral","src":"7940:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7932:3:52","nodeType":"YulIdentifier","src":"7932:3:52"},"nativeSrc":"7932:13:52","nodeType":"YulFunctionCall","src":"7932:13:52"},"variableNames":[{"name":"mc","nativeSrc":"7926:2:52","nodeType":"YulIdentifier","src":"7926:2:52"}]}]},"pre":{"nativeSrc":"7758:96:52","nodeType":"YulBlock","src":"7758:96:52","statements":[{"nativeSrc":"7780:19:52","nodeType":"YulAssignment","src":"7780:19:52","value":{"arguments":[{"name":"mc","nativeSrc":"7790:2:52","nodeType":"YulIdentifier","src":"7790:2:52"},{"kind":"number","nativeSrc":"7794:4:52","nodeType":"YulLiteral","src":"7794:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7786:3:52","nodeType":"YulIdentifier","src":"7786:3:52"},"nativeSrc":"7786:13:52","nodeType":"YulFunctionCall","src":"7786:13:52"},"variableNames":[{"name":"mc","nativeSrc":"7780:2:52","nodeType":"YulIdentifier","src":"7780:2:52"}]},{"nativeSrc":"7820:16:52","nodeType":"YulAssignment","src":"7820:16:52","value":{"arguments":[{"name":"sc","nativeSrc":"7830:2:52","nodeType":"YulIdentifier","src":"7830:2:52"},{"kind":"number","nativeSrc":"7834:1:52","nodeType":"YulLiteral","src":"7834:1:52","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7826:3:52","nodeType":"YulIdentifier","src":"7826:3:52"},"nativeSrc":"7826:10:52","nodeType":"YulFunctionCall","src":"7826:10:52"},"variableNames":[{"name":"sc","nativeSrc":"7820:2:52","nodeType":"YulIdentifier","src":"7820:2:52"}]}]},"src":"7754:271:52"},{"nativeSrc":"8043:32:52","nodeType":"YulAssignment","src":"8043:32:52","value":{"arguments":[{"kind":"number","nativeSrc":"8055:5:52","nodeType":"YulLiteral","src":"8055:5:52","type":"","value":"0x100"},{"arguments":[{"name":"mc","nativeSrc":"8066:2:52","nodeType":"YulIdentifier","src":"8066:2:52"},{"name":"end","nativeSrc":"8070:3:52","nodeType":"YulIdentifier","src":"8070:3:52"}],"functionName":{"name":"sub","nativeSrc":"8062:3:52","nodeType":"YulIdentifier","src":"8062:3:52"},"nativeSrc":"8062:12:52","nodeType":"YulFunctionCall","src":"8062:12:52"}],"functionName":{"name":"exp","nativeSrc":"8051:3:52","nodeType":"YulIdentifier","src":"8051:3:52"},"nativeSrc":"8051:24:52","nodeType":"YulFunctionCall","src":"8051:24:52"},"variableNames":[{"name":"mask","nativeSrc":"8043:4:52","nodeType":"YulIdentifier","src":"8043:4:52"}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"8100:2:52","nodeType":"YulIdentifier","src":"8100:2:52"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"8118:2:52","nodeType":"YulIdentifier","src":"8118:2:52"}],"functionName":{"name":"mload","nativeSrc":"8112:5:52","nodeType":"YulIdentifier","src":"8112:5:52"},"nativeSrc":"8112:9:52","nodeType":"YulFunctionCall","src":"8112:9:52"},{"name":"mask","nativeSrc":"8123:4:52","nodeType":"YulIdentifier","src":"8123:4:52"}],"functionName":{"name":"div","nativeSrc":"8108:3:52","nodeType":"YulIdentifier","src":"8108:3:52"},"nativeSrc":"8108:20:52","nodeType":"YulFunctionCall","src":"8108:20:52"},{"name":"mask","nativeSrc":"8130:4:52","nodeType":"YulIdentifier","src":"8130:4:52"}],"functionName":{"name":"mul","nativeSrc":"8104:3:52","nodeType":"YulIdentifier","src":"8104:3:52"},"nativeSrc":"8104:31:52","nodeType":"YulFunctionCall","src":"8104:31:52"}],"functionName":{"name":"sstore","nativeSrc":"8093:6:52","nodeType":"YulIdentifier","src":"8093:6:52"},"nativeSrc":"8093:43:52","nodeType":"YulFunctionCall","src":"8093:43:52"},"nativeSrc":"8093:43:52","nodeType":"YulExpressionStatement","src":"8093:43:52"}]},"nativeSrc":"6208:1942:52","nodeType":"YulCase","src":"6208:1942:52","value":{"kind":"number","nativeSrc":"6213:1:52","nodeType":"YulLiteral","src":"6213:1:52","type":"","value":"1"}},{"body":{"nativeSrc":"8171:1264:52","nodeType":"YulBlock","src":"8171:1264:52","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8268:3:52","nodeType":"YulLiteral","src":"8268:3:52","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"8273:14:52","nodeType":"YulIdentifier","src":"8273:14:52"}],"functionName":{"name":"mstore","nativeSrc":"8261:6:52","nodeType":"YulIdentifier","src":"8261:6:52"},"nativeSrc":"8261:27:52","nodeType":"YulFunctionCall","src":"8261:27:52"},"nativeSrc":"8261:27:52","nodeType":"YulExpressionStatement","src":"8261:27:52"},{"nativeSrc":"8381:53:52","nodeType":"YulVariableDeclaration","src":"8381:53:52","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8405:3:52","nodeType":"YulLiteral","src":"8405:3:52","type":"","value":"0x0"},{"kind":"number","nativeSrc":"8410:4:52","nodeType":"YulLiteral","src":"8410:4:52","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8395:9:52","nodeType":"YulIdentifier","src":"8395:9:52"},"nativeSrc":"8395:20:52","nodeType":"YulFunctionCall","src":"8395:20:52"},{"arguments":[{"name":"slength","nativeSrc":"8421:7:52","nodeType":"YulIdentifier","src":"8421:7:52"},{"kind":"number","nativeSrc":"8430:2:52","nodeType":"YulLiteral","src":"8430:2:52","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"8417:3:52","nodeType":"YulIdentifier","src":"8417:3:52"},"nativeSrc":"8417:16:52","nodeType":"YulFunctionCall","src":"8417:16:52"}],"functionName":{"name":"add","nativeSrc":"8391:3:52","nodeType":"YulIdentifier","src":"8391:3:52"},"nativeSrc":"8391:43:52","nodeType":"YulFunctionCall","src":"8391:43:52"},"variables":[{"name":"sc","nativeSrc":"8385:2:52","nodeType":"YulTypedName","src":"8385:2:52","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"8494:14:52","nodeType":"YulIdentifier","src":"8494:14:52"},{"arguments":[{"arguments":[{"name":"newlength","nativeSrc":"8518:9:52","nodeType":"YulIdentifier","src":"8518:9:52"},{"kind":"number","nativeSrc":"8529:1:52","nodeType":"YulLiteral","src":"8529:1:52","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8514:3:52","nodeType":"YulIdentifier","src":"8514:3:52"},"nativeSrc":"8514:17:52","nodeType":"YulFunctionCall","src":"8514:17:52"},{"kind":"number","nativeSrc":"8533:1:52","nodeType":"YulLiteral","src":"8533:1:52","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8510:3:52","nodeType":"YulIdentifier","src":"8510:3:52"},"nativeSrc":"8510:25:52","nodeType":"YulFunctionCall","src":"8510:25:52"}],"functionName":{"name":"sstore","nativeSrc":"8487:6:52","nodeType":"YulIdentifier","src":"8487:6:52"},"nativeSrc":"8487:49:52","nodeType":"YulFunctionCall","src":"8487:49:52"},"nativeSrc":"8487:49:52","nodeType":"YulExpressionStatement","src":"8487:49:52"},{"nativeSrc":"8663:34:52","nodeType":"YulVariableDeclaration","src":"8663:34:52","value":{"arguments":[{"name":"slength","nativeSrc":"8685:7:52","nodeType":"YulIdentifier","src":"8685:7:52"},{"kind":"number","nativeSrc":"8694:2:52","nodeType":"YulLiteral","src":"8694:2:52","type":"","value":"32"}],"functionName":{"name":"mod","nativeSrc":"8681:3:52","nodeType":"YulIdentifier","src":"8681:3:52"},"nativeSrc":"8681:16:52","nodeType":"YulFunctionCall","src":"8681:16:52"},"variables":[{"name":"slengthmod","nativeSrc":"8667:10:52","nodeType":"YulTypedName","src":"8667:10:52","type":""}]},{"nativeSrc":"8714:34:52","nodeType":"YulVariableDeclaration","src":"8714:34:52","value":{"arguments":[{"name":"mlength","nativeSrc":"8736:7:52","nodeType":"YulIdentifier","src":"8736:7:52"},{"kind":"number","nativeSrc":"8745:2:52","nodeType":"YulLiteral","src":"8745:2:52","type":"","value":"32"}],"functionName":{"name":"mod","nativeSrc":"8732:3:52","nodeType":"YulIdentifier","src":"8732:3:52"},"nativeSrc":"8732:16:52","nodeType":"YulFunctionCall","src":"8732:16:52"},"variables":[{"name":"mlengthmod","nativeSrc":"8718:10:52","nodeType":"YulTypedName","src":"8718:10:52","type":""}]},{"nativeSrc":"8765:33:52","nodeType":"YulVariableDeclaration","src":"8765:33:52","value":{"arguments":[{"kind":"number","nativeSrc":"8783:2:52","nodeType":"YulLiteral","src":"8783:2:52","type":"","value":"32"},{"name":"slengthmod","nativeSrc":"8787:10:52","nodeType":"YulIdentifier","src":"8787:10:52"}],"functionName":{"name":"sub","nativeSrc":"8779:3:52","nodeType":"YulIdentifier","src":"8779:3:52"},"nativeSrc":"8779:19:52","nodeType":"YulFunctionCall","src":"8779:19:52"},"variables":[{"name":"submod","nativeSrc":"8769:6:52","nodeType":"YulTypedName","src":"8769:6:52","type":""}]},{"nativeSrc":"8815:33:52","nodeType":"YulVariableDeclaration","src":"8815:33:52","value":{"arguments":[{"name":"_postBytes","nativeSrc":"8829:10:52","nodeType":"YulIdentifier","src":"8829:10:52"},{"name":"submod","nativeSrc":"8841:6:52","nodeType":"YulIdentifier","src":"8841:6:52"}],"functionName":{"name":"add","nativeSrc":"8825:3:52","nodeType":"YulIdentifier","src":"8825:3:52"},"nativeSrc":"8825:23:52","nodeType":"YulFunctionCall","src":"8825:23:52"},"variables":[{"name":"mc","nativeSrc":"8819:2:52","nodeType":"YulTypedName","src":"8819:2:52","type":""}]},{"nativeSrc":"8865:35:52","nodeType":"YulVariableDeclaration","src":"8865:35:52","value":{"arguments":[{"name":"_postBytes","nativeSrc":"8880:10:52","nodeType":"YulIdentifier","src":"8880:10:52"},{"name":"mlength","nativeSrc":"8892:7:52","nodeType":"YulIdentifier","src":"8892:7:52"}],"functionName":{"name":"add","nativeSrc":"8876:3:52","nodeType":"YulIdentifier","src":"8876:3:52"},"nativeSrc":"8876:24:52","nodeType":"YulFunctionCall","src":"8876:24:52"},"variables":[{"name":"end","nativeSrc":"8869:3:52","nodeType":"YulTypedName","src":"8869:3:52","type":""}]},{"nativeSrc":"8917:38:52","nodeType":"YulVariableDeclaration","src":"8917:38:52","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8937:5:52","nodeType":"YulLiteral","src":"8937:5:52","type":"","value":"0x100"},{"name":"submod","nativeSrc":"8944:6:52","nodeType":"YulIdentifier","src":"8944:6:52"}],"functionName":{"name":"exp","nativeSrc":"8933:3:52","nodeType":"YulIdentifier","src":"8933:3:52"},"nativeSrc":"8933:18:52","nodeType":"YulFunctionCall","src":"8933:18:52"},{"kind":"number","nativeSrc":"8953:1:52","nodeType":"YulLiteral","src":"8953:1:52","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8929:3:52","nodeType":"YulIdentifier","src":"8929:3:52"},"nativeSrc":"8929:26:52","nodeType":"YulFunctionCall","src":"8929:26:52"},"variables":[{"name":"mask","nativeSrc":"8921:4:52","nodeType":"YulTypedName","src":"8921:4:52","type":""}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"8980:2:52","nodeType":"YulIdentifier","src":"8980:2:52"},{"arguments":[{"arguments":[{"name":"sc","nativeSrc":"8994:2:52","nodeType":"YulIdentifier","src":"8994:2:52"}],"functionName":{"name":"sload","nativeSrc":"8988:5:52","nodeType":"YulIdentifier","src":"8988:5:52"},"nativeSrc":"8988:9:52","nodeType":"YulFunctionCall","src":"8988:9:52"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"9009:2:52","nodeType":"YulIdentifier","src":"9009:2:52"}],"functionName":{"name":"mload","nativeSrc":"9003:5:52","nodeType":"YulIdentifier","src":"9003:5:52"},"nativeSrc":"9003:9:52","nodeType":"YulFunctionCall","src":"9003:9:52"},{"name":"mask","nativeSrc":"9014:4:52","nodeType":"YulIdentifier","src":"9014:4:52"}],"functionName":{"name":"and","nativeSrc":"8999:3:52","nodeType":"YulIdentifier","src":"8999:3:52"},"nativeSrc":"8999:20:52","nodeType":"YulFunctionCall","src":"8999:20:52"}],"functionName":{"name":"add","nativeSrc":"8984:3:52","nodeType":"YulIdentifier","src":"8984:3:52"},"nativeSrc":"8984:36:52","nodeType":"YulFunctionCall","src":"8984:36:52"}],"functionName":{"name":"sstore","nativeSrc":"8973:6:52","nodeType":"YulIdentifier","src":"8973:6:52"},"nativeSrc":"8973:48:52","nodeType":"YulFunctionCall","src":"8973:48:52"},"nativeSrc":"8973:48:52","nodeType":"YulExpressionStatement","src":"8973:48:52"},{"body":{"nativeSrc":"9249:61:52","nodeType":"YulBlock","src":"9249:61:52","statements":[{"expression":{"arguments":[{"name":"sc","nativeSrc":"9278:2:52","nodeType":"YulIdentifier","src":"9278:2:52"},{"arguments":[{"name":"mc","nativeSrc":"9288:2:52","nodeType":"YulIdentifier","src":"9288:2:52"}],"functionName":{"name":"mload","nativeSrc":"9282:5:52","nodeType":"YulIdentifier","src":"9282:5:52"},"nativeSrc":"9282:9:52","nodeType":"YulFunctionCall","src":"9282:9:52"}],"functionName":{"name":"sstore","nativeSrc":"9271:6:52","nodeType":"YulIdentifier","src":"9271:6:52"},"nativeSrc":"9271:21:52","nodeType":"YulFunctionCall","src":"9271:21:52"},"nativeSrc":"9271:21:52","nodeType":"YulExpressionStatement","src":"9271:21:52"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"9143:2:52","nodeType":"YulIdentifier","src":"9143:2:52"},{"name":"end","nativeSrc":"9147:3:52","nodeType":"YulIdentifier","src":"9147:3:52"}],"functionName":{"name":"lt","nativeSrc":"9140:2:52","nodeType":"YulIdentifier","src":"9140:2:52"},"nativeSrc":"9140:11:52","nodeType":"YulFunctionCall","src":"9140:11:52"},"nativeSrc":"9039:271:52","nodeType":"YulForLoop","post":{"nativeSrc":"9152:96:52","nodeType":"YulBlock","src":"9152:96:52","statements":[{"nativeSrc":"9174:16:52","nodeType":"YulAssignment","src":"9174:16:52","value":{"arguments":[{"name":"sc","nativeSrc":"9184:2:52","nodeType":"YulIdentifier","src":"9184:2:52"},{"kind":"number","nativeSrc":"9188:1:52","nodeType":"YulLiteral","src":"9188:1:52","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9180:3:52","nodeType":"YulIdentifier","src":"9180:3:52"},"nativeSrc":"9180:10:52","nodeType":"YulFunctionCall","src":"9180:10:52"},"variableNames":[{"name":"sc","nativeSrc":"9174:2:52","nodeType":"YulIdentifier","src":"9174:2:52"}]},{"nativeSrc":"9211:19:52","nodeType":"YulAssignment","src":"9211:19:52","value":{"arguments":[{"name":"mc","nativeSrc":"9221:2:52","nodeType":"YulIdentifier","src":"9221:2:52"},{"kind":"number","nativeSrc":"9225:4:52","nodeType":"YulLiteral","src":"9225:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9217:3:52","nodeType":"YulIdentifier","src":"9217:3:52"},"nativeSrc":"9217:13:52","nodeType":"YulFunctionCall","src":"9217:13:52"},"variableNames":[{"name":"mc","nativeSrc":"9211:2:52","nodeType":"YulIdentifier","src":"9211:2:52"}]}]},"pre":{"nativeSrc":"9043:96:52","nodeType":"YulBlock","src":"9043:96:52","statements":[{"nativeSrc":"9065:16:52","nodeType":"YulAssignment","src":"9065:16:52","value":{"arguments":[{"name":"sc","nativeSrc":"9075:2:52","nodeType":"YulIdentifier","src":"9075:2:52"},{"kind":"number","nativeSrc":"9079:1:52","nodeType":"YulLiteral","src":"9079:1:52","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9071:3:52","nodeType":"YulIdentifier","src":"9071:3:52"},"nativeSrc":"9071:10:52","nodeType":"YulFunctionCall","src":"9071:10:52"},"variableNames":[{"name":"sc","nativeSrc":"9065:2:52","nodeType":"YulIdentifier","src":"9065:2:52"}]},{"nativeSrc":"9102:19:52","nodeType":"YulAssignment","src":"9102:19:52","value":{"arguments":[{"name":"mc","nativeSrc":"9112:2:52","nodeType":"YulIdentifier","src":"9112:2:52"},{"kind":"number","nativeSrc":"9116:4:52","nodeType":"YulLiteral","src":"9116:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9108:3:52","nodeType":"YulIdentifier","src":"9108:3:52"},"nativeSrc":"9108:13:52","nodeType":"YulFunctionCall","src":"9108:13:52"},"variableNames":[{"name":"mc","nativeSrc":"9102:2:52","nodeType":"YulIdentifier","src":"9102:2:52"}]}]},"src":"9039:271:52"},{"nativeSrc":"9328:32:52","nodeType":"YulAssignment","src":"9328:32:52","value":{"arguments":[{"kind":"number","nativeSrc":"9340:5:52","nodeType":"YulLiteral","src":"9340:5:52","type":"","value":"0x100"},{"arguments":[{"name":"mc","nativeSrc":"9351:2:52","nodeType":"YulIdentifier","src":"9351:2:52"},{"name":"end","nativeSrc":"9355:3:52","nodeType":"YulIdentifier","src":"9355:3:52"}],"functionName":{"name":"sub","nativeSrc":"9347:3:52","nodeType":"YulIdentifier","src":"9347:3:52"},"nativeSrc":"9347:12:52","nodeType":"YulFunctionCall","src":"9347:12:52"}],"functionName":{"name":"exp","nativeSrc":"9336:3:52","nodeType":"YulIdentifier","src":"9336:3:52"},"nativeSrc":"9336:24:52","nodeType":"YulFunctionCall","src":"9336:24:52"},"variableNames":[{"name":"mask","nativeSrc":"9328:4:52","nodeType":"YulIdentifier","src":"9328:4:52"}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"9385:2:52","nodeType":"YulIdentifier","src":"9385:2:52"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"9403:2:52","nodeType":"YulIdentifier","src":"9403:2:52"}],"functionName":{"name":"mload","nativeSrc":"9397:5:52","nodeType":"YulIdentifier","src":"9397:5:52"},"nativeSrc":"9397:9:52","nodeType":"YulFunctionCall","src":"9397:9:52"},{"name":"mask","nativeSrc":"9408:4:52","nodeType":"YulIdentifier","src":"9408:4:52"}],"functionName":{"name":"div","nativeSrc":"9393:3:52","nodeType":"YulIdentifier","src":"9393:3:52"},"nativeSrc":"9393:20:52","nodeType":"YulFunctionCall","src":"9393:20:52"},{"name":"mask","nativeSrc":"9415:4:52","nodeType":"YulIdentifier","src":"9415:4:52"}],"functionName":{"name":"mul","nativeSrc":"9389:3:52","nodeType":"YulIdentifier","src":"9389:3:52"},"nativeSrc":"9389:31:52","nodeType":"YulFunctionCall","src":"9389:31:52"}],"functionName":{"name":"sstore","nativeSrc":"9378:6:52","nodeType":"YulIdentifier","src":"9378:6:52"},"nativeSrc":"9378:43:52","nodeType":"YulFunctionCall","src":"9378:43:52"},"nativeSrc":"9378:43:52","nodeType":"YulExpressionStatement","src":"9378:43:52"}]},"nativeSrc":"8163:1272:52","nodeType":"YulCase","src":"8163:1272:52","value":"default"}],"expression":{"arguments":[{"arguments":[{"name":"slength","nativeSrc":"4658:7:52","nodeType":"YulIdentifier","src":"4658:7:52"},{"kind":"number","nativeSrc":"4667:2:52","nodeType":"YulLiteral","src":"4667:2:52","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4655:2:52","nodeType":"YulIdentifier","src":"4655:2:52"},"nativeSrc":"4655:15:52","nodeType":"YulFunctionCall","src":"4655:15:52"},{"arguments":[{"name":"newlength","nativeSrc":"4675:9:52","nodeType":"YulIdentifier","src":"4675:9:52"},{"kind":"number","nativeSrc":"4686:2:52","nodeType":"YulLiteral","src":"4686:2:52","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4672:2:52","nodeType":"YulIdentifier","src":"4672:2:52"},"nativeSrc":"4672:17:52","nodeType":"YulFunctionCall","src":"4672:17:52"}],"functionName":{"name":"add","nativeSrc":"4651:3:52","nodeType":"YulIdentifier","src":"4651:3:52"},"nativeSrc":"4651:39:52","nodeType":"YulFunctionCall","src":"4651:39:52"},"nativeSrc":"4644:4791:52","nodeType":"YulSwitch","src":"4644:4791:52"}]},"evmVersion":"paris","externalReferences":[{"declaration":10388,"isOffset":false,"isSlot":false,"src":"4315:10:52","valueSize":1},{"declaration":10388,"isOffset":false,"isSlot":false,"src":"5521:10:52","valueSize":1},{"declaration":10388,"isOffset":false,"isSlot":false,"src":"7265:10:52","valueSize":1},{"declaration":10388,"isOffset":false,"isSlot":false,"src":"7316:10:52","valueSize":1},{"declaration":10388,"isOffset":false,"isSlot":false,"src":"8829:10:52","valueSize":1},{"declaration":10388,"isOffset":false,"isSlot":false,"src":"8880:10:52","valueSize":1},{"declaration":10386,"isOffset":false,"isSlot":true,"src":"3697:14:52","suffix":"slot","valueSize":1},{"declaration":10386,"isOffset":false,"isSlot":true,"src":"4991:14:52","suffix":"slot","valueSize":1},{"declaration":10386,"isOffset":false,"isSlot":true,"src":"6429:14:52","suffix":"slot","valueSize":1},{"declaration":10386,"isOffset":false,"isSlot":true,"src":"6574:14:52","suffix":"slot","valueSize":1},{"declaration":10386,"isOffset":false,"isSlot":true,"src":"8273:14:52","suffix":"slot","valueSize":1},{"declaration":10386,"isOffset":false,"isSlot":true,"src":"8494:14:52","suffix":"slot","valueSize":1}],"id":10391,"nodeType":"InlineAssembly","src":"3446:5999:52"}]},"id":10393,"implemented":true,"kind":"function","modifiers":[],"name":"concatStorage","nameLocation":"3363:13:52","nodeType":"FunctionDefinition","parameters":{"id":10389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10386,"mutability":"mutable","name":"_preBytes","nameLocation":"3391:9:52","nodeType":"VariableDeclaration","scope":10393,"src":"3377:23:52","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":10385,"name":"bytes","nodeType":"ElementaryTypeName","src":"3377:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10388,"mutability":"mutable","name":"_postBytes","nameLocation":"3415:10:52","nodeType":"VariableDeclaration","scope":10393,"src":"3402:23:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10387,"name":"bytes","nodeType":"ElementaryTypeName","src":"3402:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3376:50:52"},"returnParameters":{"id":10390,"nodeType":"ParameterList","parameters":[],"src":"3436:0:52"},"scope":10716,"src":"3354:6097:52","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10429,"nodeType":"Block","src":"9621:2640:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10405,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10399,"src":"9639:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3331","id":10406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9649:2:52","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"9639:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":10408,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10399,"src":"9655:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9639:23:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f766572666c6f77","id":10410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9664:16:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""},"value":"slice_overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""}],"id":10404,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9631:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9631:50:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10412,"nodeType":"ExpressionStatement","src":"9631:50:52"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10414,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10395,"src":"9699:6:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9706:6:52","memberName":"length","nodeType":"MemberAccess","src":"9699:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10416,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10397,"src":"9716:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":10417,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10399,"src":"9725:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9716:16:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9699:33:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f75744f66426f756e6473","id":10420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9734:19:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""},"value":"slice_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""}],"id":10413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9691:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9691:63:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10422,"nodeType":"ExpressionStatement","src":"9691:63:52"},{"assignments":[10424],"declarations":[{"constant":false,"id":10424,"mutability":"mutable","name":"tempBytes","nameLocation":"9778:9:52","nodeType":"VariableDeclaration","scope":10429,"src":"9765:22:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10423,"name":"bytes","nodeType":"ElementaryTypeName","src":"9765:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10425,"nodeType":"VariableDeclarationStatement","src":"9765:22:52"},{"AST":{"nativeSrc":"9807:2421:52","nodeType":"YulBlock","src":"9807:2421:52","statements":[{"cases":[{"body":{"nativeSrc":"9863:1960:52","nodeType":"YulBlock","src":"9863:1960:52","statements":[{"nativeSrc":"10019:24:52","nodeType":"YulAssignment","src":"10019:24:52","value":{"arguments":[{"kind":"number","nativeSrc":"10038:4:52","nodeType":"YulLiteral","src":"10038:4:52","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"10032:5:52","nodeType":"YulIdentifier","src":"10032:5:52"},"nativeSrc":"10032:11:52","nodeType":"YulFunctionCall","src":"10032:11:52"},"variableNames":[{"name":"tempBytes","nativeSrc":"10019:9:52","nodeType":"YulIdentifier","src":"10019:9:52"}]},{"nativeSrc":"10667:33:52","nodeType":"YulVariableDeclaration","src":"10667:33:52","value":{"arguments":[{"name":"_length","nativeSrc":"10688:7:52","nodeType":"YulIdentifier","src":"10688:7:52"},{"kind":"number","nativeSrc":"10697:2:52","nodeType":"YulLiteral","src":"10697:2:52","type":"","value":"31"}],"functionName":{"name":"and","nativeSrc":"10684:3:52","nodeType":"YulIdentifier","src":"10684:3:52"},"nativeSrc":"10684:16:52","nodeType":"YulFunctionCall","src":"10684:16:52"},"variables":[{"name":"lengthmod","nativeSrc":"10671:9:52","nodeType":"YulTypedName","src":"10671:9:52","type":""}]},{"nativeSrc":"11021:70:52","nodeType":"YulVariableDeclaration","src":"11021:70:52","value":{"arguments":[{"arguments":[{"name":"tempBytes","nativeSrc":"11039:9:52","nodeType":"YulIdentifier","src":"11039:9:52"},{"name":"lengthmod","nativeSrc":"11050:9:52","nodeType":"YulIdentifier","src":"11050:9:52"}],"functionName":{"name":"add","nativeSrc":"11035:3:52","nodeType":"YulIdentifier","src":"11035:3:52"},"nativeSrc":"11035:25:52","nodeType":"YulFunctionCall","src":"11035:25:52"},{"arguments":[{"kind":"number","nativeSrc":"11066:4:52","nodeType":"YulLiteral","src":"11066:4:52","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nativeSrc":"11079:9:52","nodeType":"YulIdentifier","src":"11079:9:52"}],"functionName":{"name":"iszero","nativeSrc":"11072:6:52","nodeType":"YulIdentifier","src":"11072:6:52"},"nativeSrc":"11072:17:52","nodeType":"YulFunctionCall","src":"11072:17:52"}],"functionName":{"name":"mul","nativeSrc":"11062:3:52","nodeType":"YulIdentifier","src":"11062:3:52"},"nativeSrc":"11062:28:52","nodeType":"YulFunctionCall","src":"11062:28:52"}],"functionName":{"name":"add","nativeSrc":"11031:3:52","nodeType":"YulIdentifier","src":"11031:3:52"},"nativeSrc":"11031:60:52","nodeType":"YulFunctionCall","src":"11031:60:52"},"variables":[{"name":"mc","nativeSrc":"11025:2:52","nodeType":"YulTypedName","src":"11025:2:52","type":""}]},{"nativeSrc":"11108:27:52","nodeType":"YulVariableDeclaration","src":"11108:27:52","value":{"arguments":[{"name":"mc","nativeSrc":"11123:2:52","nodeType":"YulIdentifier","src":"11123:2:52"},{"name":"_length","nativeSrc":"11127:7:52","nodeType":"YulIdentifier","src":"11127:7:52"}],"functionName":{"name":"add","nativeSrc":"11119:3:52","nodeType":"YulIdentifier","src":"11119:3:52"},"nativeSrc":"11119:16:52","nodeType":"YulFunctionCall","src":"11119:16:52"},"variables":[{"name":"end","nativeSrc":"11112:3:52","nodeType":"YulTypedName","src":"11112:3:52","type":""}]},{"body":{"nativeSrc":"11517:61:52","nodeType":"YulBlock","src":"11517:61:52","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"11546:2:52","nodeType":"YulIdentifier","src":"11546:2:52"},{"arguments":[{"name":"cc","nativeSrc":"11556:2:52","nodeType":"YulIdentifier","src":"11556:2:52"}],"functionName":{"name":"mload","nativeSrc":"11550:5:52","nodeType":"YulIdentifier","src":"11550:5:52"},"nativeSrc":"11550:9:52","nodeType":"YulFunctionCall","src":"11550:9:52"}],"functionName":{"name":"mstore","nativeSrc":"11539:6:52","nodeType":"YulIdentifier","src":"11539:6:52"},"nativeSrc":"11539:21:52","nodeType":"YulFunctionCall","src":"11539:21:52"},"nativeSrc":"11539:21:52","nodeType":"YulExpressionStatement","src":"11539:21:52"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"11408:2:52","nodeType":"YulIdentifier","src":"11408:2:52"},{"name":"end","nativeSrc":"11412:3:52","nodeType":"YulIdentifier","src":"11412:3:52"}],"functionName":{"name":"lt","nativeSrc":"11405:2:52","nodeType":"YulIdentifier","src":"11405:2:52"},"nativeSrc":"11405:11:52","nodeType":"YulFunctionCall","src":"11405:11:52"},"nativeSrc":"11153:425:52","nodeType":"YulForLoop","post":{"nativeSrc":"11417:99:52","nodeType":"YulBlock","src":"11417:99:52","statements":[{"nativeSrc":"11439:19:52","nodeType":"YulAssignment","src":"11439:19:52","value":{"arguments":[{"name":"mc","nativeSrc":"11449:2:52","nodeType":"YulIdentifier","src":"11449:2:52"},{"kind":"number","nativeSrc":"11453:4:52","nodeType":"YulLiteral","src":"11453:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11445:3:52","nodeType":"YulIdentifier","src":"11445:3:52"},"nativeSrc":"11445:13:52","nodeType":"YulFunctionCall","src":"11445:13:52"},"variableNames":[{"name":"mc","nativeSrc":"11439:2:52","nodeType":"YulIdentifier","src":"11439:2:52"}]},{"nativeSrc":"11479:19:52","nodeType":"YulAssignment","src":"11479:19:52","value":{"arguments":[{"name":"cc","nativeSrc":"11489:2:52","nodeType":"YulIdentifier","src":"11489:2:52"},{"kind":"number","nativeSrc":"11493:4:52","nodeType":"YulLiteral","src":"11493:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11485:3:52","nodeType":"YulIdentifier","src":"11485:3:52"},"nativeSrc":"11485:13:52","nodeType":"YulFunctionCall","src":"11485:13:52"},"variableNames":[{"name":"cc","nativeSrc":"11479:2:52","nodeType":"YulIdentifier","src":"11479:2:52"}]}]},"pre":{"nativeSrc":"11157:247:52","nodeType":"YulBlock","src":"11157:247:52","statements":[{"nativeSrc":"11306:80:52","nodeType":"YulVariableDeclaration","src":"11306:80:52","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"11328:6:52","nodeType":"YulIdentifier","src":"11328:6:52"},{"name":"lengthmod","nativeSrc":"11336:9:52","nodeType":"YulIdentifier","src":"11336:9:52"}],"functionName":{"name":"add","nativeSrc":"11324:3:52","nodeType":"YulIdentifier","src":"11324:3:52"},"nativeSrc":"11324:22:52","nodeType":"YulFunctionCall","src":"11324:22:52"},{"arguments":[{"kind":"number","nativeSrc":"11352:4:52","nodeType":"YulLiteral","src":"11352:4:52","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nativeSrc":"11365:9:52","nodeType":"YulIdentifier","src":"11365:9:52"}],"functionName":{"name":"iszero","nativeSrc":"11358:6:52","nodeType":"YulIdentifier","src":"11358:6:52"},"nativeSrc":"11358:17:52","nodeType":"YulFunctionCall","src":"11358:17:52"}],"functionName":{"name":"mul","nativeSrc":"11348:3:52","nodeType":"YulIdentifier","src":"11348:3:52"},"nativeSrc":"11348:28:52","nodeType":"YulFunctionCall","src":"11348:28:52"}],"functionName":{"name":"add","nativeSrc":"11320:3:52","nodeType":"YulIdentifier","src":"11320:3:52"},"nativeSrc":"11320:57:52","nodeType":"YulFunctionCall","src":"11320:57:52"},{"name":"_start","nativeSrc":"11379:6:52","nodeType":"YulIdentifier","src":"11379:6:52"}],"functionName":{"name":"add","nativeSrc":"11316:3:52","nodeType":"YulIdentifier","src":"11316:3:52"},"nativeSrc":"11316:70:52","nodeType":"YulFunctionCall","src":"11316:70:52"},"variables":[{"name":"cc","nativeSrc":"11310:2:52","nodeType":"YulTypedName","src":"11310:2:52","type":""}]}]},"src":"11153:425:52"},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"11603:9:52","nodeType":"YulIdentifier","src":"11603:9:52"},{"name":"_length","nativeSrc":"11614:7:52","nodeType":"YulIdentifier","src":"11614:7:52"}],"functionName":{"name":"mstore","nativeSrc":"11596:6:52","nodeType":"YulIdentifier","src":"11596:6:52"},"nativeSrc":"11596:26:52","nodeType":"YulFunctionCall","src":"11596:26:52"},"nativeSrc":"11596:26:52","nodeType":"YulExpressionStatement","src":"11596:26:52"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11777:4:52","nodeType":"YulLiteral","src":"11777:4:52","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"11791:2:52","nodeType":"YulIdentifier","src":"11791:2:52"},{"kind":"number","nativeSrc":"11795:2:52","nodeType":"YulLiteral","src":"11795:2:52","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11787:3:52","nodeType":"YulIdentifier","src":"11787:3:52"},"nativeSrc":"11787:11:52","nodeType":"YulFunctionCall","src":"11787:11:52"},{"arguments":[{"kind":"number","nativeSrc":"11804:2:52","nodeType":"YulLiteral","src":"11804:2:52","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11800:3:52","nodeType":"YulIdentifier","src":"11800:3:52"},"nativeSrc":"11800:7:52","nodeType":"YulFunctionCall","src":"11800:7:52"}],"functionName":{"name":"and","nativeSrc":"11783:3:52","nodeType":"YulIdentifier","src":"11783:3:52"},"nativeSrc":"11783:25:52","nodeType":"YulFunctionCall","src":"11783:25:52"}],"functionName":{"name":"mstore","nativeSrc":"11770:6:52","nodeType":"YulIdentifier","src":"11770:6:52"},"nativeSrc":"11770:39:52","nodeType":"YulFunctionCall","src":"11770:39:52"},"nativeSrc":"11770:39:52","nodeType":"YulExpressionStatement","src":"11770:39:52"}]},"nativeSrc":"9856:1967:52","nodeType":"YulCase","src":"9856:1967:52","value":{"kind":"number","nativeSrc":"9861:1:52","nodeType":"YulLiteral","src":"9861:1:52","type":"","value":"0"}},{"body":{"nativeSrc":"11927:291:52","nodeType":"YulBlock","src":"11927:291:52","statements":[{"nativeSrc":"11945:24:52","nodeType":"YulAssignment","src":"11945:24:52","value":{"arguments":[{"kind":"number","nativeSrc":"11964:4:52","nodeType":"YulLiteral","src":"11964:4:52","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11958:5:52","nodeType":"YulIdentifier","src":"11958:5:52"},"nativeSrc":"11958:11:52","nodeType":"YulFunctionCall","src":"11958:11:52"},"variableNames":[{"name":"tempBytes","nativeSrc":"11945:9:52","nodeType":"YulIdentifier","src":"11945:9:52"}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"12139:9:52","nodeType":"YulIdentifier","src":"12139:9:52"},{"kind":"number","nativeSrc":"12150:1:52","nodeType":"YulLiteral","src":"12150:1:52","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12132:6:52","nodeType":"YulIdentifier","src":"12132:6:52"},"nativeSrc":"12132:20:52","nodeType":"YulFunctionCall","src":"12132:20:52"},"nativeSrc":"12132:20:52","nodeType":"YulExpressionStatement","src":"12132:20:52"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12177:4:52","nodeType":"YulLiteral","src":"12177:4:52","type":"","value":"0x40"},{"arguments":[{"name":"tempBytes","nativeSrc":"12187:9:52","nodeType":"YulIdentifier","src":"12187:9:52"},{"kind":"number","nativeSrc":"12198:4:52","nodeType":"YulLiteral","src":"12198:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12183:3:52","nodeType":"YulIdentifier","src":"12183:3:52"},"nativeSrc":"12183:20:52","nodeType":"YulFunctionCall","src":"12183:20:52"}],"functionName":{"name":"mstore","nativeSrc":"12170:6:52","nodeType":"YulIdentifier","src":"12170:6:52"},"nativeSrc":"12170:34:52","nodeType":"YulFunctionCall","src":"12170:34:52"},"nativeSrc":"12170:34:52","nodeType":"YulExpressionStatement","src":"12170:34:52"}]},"nativeSrc":"11919:299:52","nodeType":"YulCase","src":"11919:299:52","value":"default"}],"expression":{"arguments":[{"name":"_length","nativeSrc":"9835:7:52","nodeType":"YulIdentifier","src":"9835:7:52"}],"functionName":{"name":"iszero","nativeSrc":"9828:6:52","nodeType":"YulIdentifier","src":"9828:6:52"},"nativeSrc":"9828:15:52","nodeType":"YulFunctionCall","src":"9828:15:52"},"nativeSrc":"9821:2397:52","nodeType":"YulSwitch","src":"9821:2397:52"}]},"evmVersion":"paris","externalReferences":[{"declaration":10395,"isOffset":false,"isSlot":false,"src":"11328:6:52","valueSize":1},{"declaration":10399,"isOffset":false,"isSlot":false,"src":"10688:7:52","valueSize":1},{"declaration":10399,"isOffset":false,"isSlot":false,"src":"11127:7:52","valueSize":1},{"declaration":10399,"isOffset":false,"isSlot":false,"src":"11614:7:52","valueSize":1},{"declaration":10399,"isOffset":false,"isSlot":false,"src":"9835:7:52","valueSize":1},{"declaration":10397,"isOffset":false,"isSlot":false,"src":"11379:6:52","valueSize":1},{"declaration":10424,"isOffset":false,"isSlot":false,"src":"10019:9:52","valueSize":1},{"declaration":10424,"isOffset":false,"isSlot":false,"src":"11039:9:52","valueSize":1},{"declaration":10424,"isOffset":false,"isSlot":false,"src":"11603:9:52","valueSize":1},{"declaration":10424,"isOffset":false,"isSlot":false,"src":"11945:9:52","valueSize":1},{"declaration":10424,"isOffset":false,"isSlot":false,"src":"12139:9:52","valueSize":1},{"declaration":10424,"isOffset":false,"isSlot":false,"src":"12187:9:52","valueSize":1}],"id":10426,"nodeType":"InlineAssembly","src":"9798:2430:52"},{"expression":{"id":10427,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10424,"src":"12245:9:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10403,"id":10428,"nodeType":"Return","src":"12238:16:52"}]},"id":10430,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"9466:5:52","nodeType":"FunctionDefinition","parameters":{"id":10400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10395,"mutability":"mutable","name":"_bytes","nameLocation":"9494:6:52","nodeType":"VariableDeclaration","scope":10430,"src":"9481:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10394,"name":"bytes","nodeType":"ElementaryTypeName","src":"9481:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10397,"mutability":"mutable","name":"_start","nameLocation":"9518:6:52","nodeType":"VariableDeclaration","scope":10430,"src":"9510:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10396,"name":"uint256","nodeType":"ElementaryTypeName","src":"9510:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10399,"mutability":"mutable","name":"_length","nameLocation":"9542:7:52","nodeType":"VariableDeclaration","scope":10430,"src":"9534:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10398,"name":"uint256","nodeType":"ElementaryTypeName","src":"9534:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9471:84:52"},"returnParameters":{"id":10403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10430,"src":"9603:12:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10401,"name":"bytes","nodeType":"ElementaryTypeName","src":"9603:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9602:14:52"},"scope":10716,"src":"9457:2804:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10455,"nodeType":"Block","src":"12355:266:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10440,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10432,"src":"12373:6:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12380:6:52","memberName":"length","nodeType":"MemberAccess","src":"12373:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10442,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10434,"src":"12390:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3230","id":10443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12399:2:52","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"12390:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12373:28:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f416464726573735f6f75744f66426f756e6473","id":10446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12403:23:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""},"value":"toAddress_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""}],"id":10439,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12365:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12365:62:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10448,"nodeType":"ExpressionStatement","src":"12365:62:52"},{"assignments":[10450],"declarations":[{"constant":false,"id":10450,"mutability":"mutable","name":"tempAddress","nameLocation":"12445:11:52","nodeType":"VariableDeclaration","scope":10455,"src":"12437:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10449,"name":"address","nodeType":"ElementaryTypeName","src":"12437:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":10451,"nodeType":"VariableDeclarationStatement","src":"12437:19:52"},{"AST":{"nativeSrc":"12476:110:52","nodeType":"YulBlock","src":"12476:110:52","statements":[{"nativeSrc":"12490:86:52","nodeType":"YulAssignment","src":"12490:86:52","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"12523:6:52","nodeType":"YulIdentifier","src":"12523:6:52"},{"kind":"number","nativeSrc":"12531:4:52","nodeType":"YulLiteral","src":"12531:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12519:3:52","nodeType":"YulIdentifier","src":"12519:3:52"},"nativeSrc":"12519:17:52","nodeType":"YulFunctionCall","src":"12519:17:52"},{"name":"_start","nativeSrc":"12538:6:52","nodeType":"YulIdentifier","src":"12538:6:52"}],"functionName":{"name":"add","nativeSrc":"12515:3:52","nodeType":"YulIdentifier","src":"12515:3:52"},"nativeSrc":"12515:30:52","nodeType":"YulFunctionCall","src":"12515:30:52"}],"functionName":{"name":"mload","nativeSrc":"12509:5:52","nodeType":"YulIdentifier","src":"12509:5:52"},"nativeSrc":"12509:37:52","nodeType":"YulFunctionCall","src":"12509:37:52"},{"kind":"number","nativeSrc":"12548:27:52","nodeType":"YulLiteral","src":"12548:27:52","type":"","value":"0x1000000000000000000000000"}],"functionName":{"name":"div","nativeSrc":"12505:3:52","nodeType":"YulIdentifier","src":"12505:3:52"},"nativeSrc":"12505:71:52","nodeType":"YulFunctionCall","src":"12505:71:52"},"variableNames":[{"name":"tempAddress","nativeSrc":"12490:11:52","nodeType":"YulIdentifier","src":"12490:11:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10432,"isOffset":false,"isSlot":false,"src":"12523:6:52","valueSize":1},{"declaration":10434,"isOffset":false,"isSlot":false,"src":"12538:6:52","valueSize":1},{"declaration":10450,"isOffset":false,"isSlot":false,"src":"12490:11:52","valueSize":1}],"id":10452,"nodeType":"InlineAssembly","src":"12467:119:52"},{"expression":{"id":10453,"name":"tempAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10450,"src":"12603:11:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10438,"id":10454,"nodeType":"Return","src":"12596:18:52"}]},"id":10456,"implemented":true,"kind":"function","modifiers":[],"name":"toAddress","nameLocation":"12276:9:52","nodeType":"FunctionDefinition","parameters":{"id":10435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10432,"mutability":"mutable","name":"_bytes","nameLocation":"12299:6:52","nodeType":"VariableDeclaration","scope":10456,"src":"12286:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10431,"name":"bytes","nodeType":"ElementaryTypeName","src":"12286:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10434,"mutability":"mutable","name":"_start","nameLocation":"12315:6:52","nodeType":"VariableDeclaration","scope":10456,"src":"12307:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10433,"name":"uint256","nodeType":"ElementaryTypeName","src":"12307:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12285:37:52"},"returnParameters":{"id":10438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10456,"src":"12346:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10436,"name":"address","nodeType":"ElementaryTypeName","src":"12346:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12345:9:52"},"scope":10716,"src":"12267:354:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10481,"nodeType":"Block","src":"12711:218:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10466,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10458,"src":"12729:6:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12736:6:52","memberName":"length","nodeType":"MemberAccess","src":"12729:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10468,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10460,"src":"12746:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":10469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12755:1:52","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12746:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12729:27:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e74385f6f75744f66426f756e6473","id":10472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12759:21:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""},"value":"toUint8_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""}],"id":10465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12721:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12721:60:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10474,"nodeType":"ExpressionStatement","src":"12721:60:52"},{"assignments":[10476],"declarations":[{"constant":false,"id":10476,"mutability":"mutable","name":"tempUint","nameLocation":"12797:8:52","nodeType":"VariableDeclaration","scope":10481,"src":"12791:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10475,"name":"uint8","nodeType":"ElementaryTypeName","src":"12791:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":10477,"nodeType":"VariableDeclarationStatement","src":"12791:14:52"},{"AST":{"nativeSrc":"12825:72:52","nodeType":"YulBlock","src":"12825:72:52","statements":[{"nativeSrc":"12839:48:52","nodeType":"YulAssignment","src":"12839:48:52","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"12865:6:52","nodeType":"YulIdentifier","src":"12865:6:52"},{"kind":"number","nativeSrc":"12873:3:52","nodeType":"YulLiteral","src":"12873:3:52","type":"","value":"0x1"}],"functionName":{"name":"add","nativeSrc":"12861:3:52","nodeType":"YulIdentifier","src":"12861:3:52"},"nativeSrc":"12861:16:52","nodeType":"YulFunctionCall","src":"12861:16:52"},{"name":"_start","nativeSrc":"12879:6:52","nodeType":"YulIdentifier","src":"12879:6:52"}],"functionName":{"name":"add","nativeSrc":"12857:3:52","nodeType":"YulIdentifier","src":"12857:3:52"},"nativeSrc":"12857:29:52","nodeType":"YulFunctionCall","src":"12857:29:52"}],"functionName":{"name":"mload","nativeSrc":"12851:5:52","nodeType":"YulIdentifier","src":"12851:5:52"},"nativeSrc":"12851:36:52","nodeType":"YulFunctionCall","src":"12851:36:52"},"variableNames":[{"name":"tempUint","nativeSrc":"12839:8:52","nodeType":"YulIdentifier","src":"12839:8:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10458,"isOffset":false,"isSlot":false,"src":"12865:6:52","valueSize":1},{"declaration":10460,"isOffset":false,"isSlot":false,"src":"12879:6:52","valueSize":1},{"declaration":10476,"isOffset":false,"isSlot":false,"src":"12839:8:52","valueSize":1}],"id":10478,"nodeType":"InlineAssembly","src":"12816:81:52"},{"expression":{"id":10479,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10476,"src":"12914:8:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":10464,"id":10480,"nodeType":"Return","src":"12907:15:52"}]},"id":10482,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"12636:7:52","nodeType":"FunctionDefinition","parameters":{"id":10461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10458,"mutability":"mutable","name":"_bytes","nameLocation":"12657:6:52","nodeType":"VariableDeclaration","scope":10482,"src":"12644:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10457,"name":"bytes","nodeType":"ElementaryTypeName","src":"12644:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10460,"mutability":"mutable","name":"_start","nameLocation":"12673:6:52","nodeType":"VariableDeclaration","scope":10482,"src":"12665:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10459,"name":"uint256","nodeType":"ElementaryTypeName","src":"12665:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12643:37:52"},"returnParameters":{"id":10464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10482,"src":"12704:5:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10462,"name":"uint8","nodeType":"ElementaryTypeName","src":"12704:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12703:7:52"},"scope":10716,"src":"12627:302:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10507,"nodeType":"Block","src":"13021:219:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10492,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10484,"src":"13039:6:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13046:6:52","memberName":"length","nodeType":"MemberAccess","src":"13039:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10494,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10486,"src":"13056:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":10495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13065:1:52","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13056:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13039:27:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7431365f6f75744f66426f756e6473","id":10498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13068:22:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""},"value":"toUint16_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""}],"id":10491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13031:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13031:60:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10500,"nodeType":"ExpressionStatement","src":"13031:60:52"},{"assignments":[10502],"declarations":[{"constant":false,"id":10502,"mutability":"mutable","name":"tempUint","nameLocation":"13108:8:52","nodeType":"VariableDeclaration","scope":10507,"src":"13101:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10501,"name":"uint16","nodeType":"ElementaryTypeName","src":"13101:6:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":10503,"nodeType":"VariableDeclarationStatement","src":"13101:15:52"},{"AST":{"nativeSrc":"13136:72:52","nodeType":"YulBlock","src":"13136:72:52","statements":[{"nativeSrc":"13150:48:52","nodeType":"YulAssignment","src":"13150:48:52","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13176:6:52","nodeType":"YulIdentifier","src":"13176:6:52"},{"kind":"number","nativeSrc":"13184:3:52","nodeType":"YulLiteral","src":"13184:3:52","type":"","value":"0x2"}],"functionName":{"name":"add","nativeSrc":"13172:3:52","nodeType":"YulIdentifier","src":"13172:3:52"},"nativeSrc":"13172:16:52","nodeType":"YulFunctionCall","src":"13172:16:52"},{"name":"_start","nativeSrc":"13190:6:52","nodeType":"YulIdentifier","src":"13190:6:52"}],"functionName":{"name":"add","nativeSrc":"13168:3:52","nodeType":"YulIdentifier","src":"13168:3:52"},"nativeSrc":"13168:29:52","nodeType":"YulFunctionCall","src":"13168:29:52"}],"functionName":{"name":"mload","nativeSrc":"13162:5:52","nodeType":"YulIdentifier","src":"13162:5:52"},"nativeSrc":"13162:36:52","nodeType":"YulFunctionCall","src":"13162:36:52"},"variableNames":[{"name":"tempUint","nativeSrc":"13150:8:52","nodeType":"YulIdentifier","src":"13150:8:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10484,"isOffset":false,"isSlot":false,"src":"13176:6:52","valueSize":1},{"declaration":10486,"isOffset":false,"isSlot":false,"src":"13190:6:52","valueSize":1},{"declaration":10502,"isOffset":false,"isSlot":false,"src":"13150:8:52","valueSize":1}],"id":10504,"nodeType":"InlineAssembly","src":"13127:81:52"},{"expression":{"id":10505,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10502,"src":"13225:8:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":10490,"id":10506,"nodeType":"Return","src":"13218:15:52"}]},"id":10508,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"12944:8:52","nodeType":"FunctionDefinition","parameters":{"id":10487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10484,"mutability":"mutable","name":"_bytes","nameLocation":"12966:6:52","nodeType":"VariableDeclaration","scope":10508,"src":"12953:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10483,"name":"bytes","nodeType":"ElementaryTypeName","src":"12953:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10486,"mutability":"mutable","name":"_start","nameLocation":"12982:6:52","nodeType":"VariableDeclaration","scope":10508,"src":"12974:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10485,"name":"uint256","nodeType":"ElementaryTypeName","src":"12974:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12952:37:52"},"returnParameters":{"id":10490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10508,"src":"13013:6:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10488,"name":"uint16","nodeType":"ElementaryTypeName","src":"13013:6:52","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"13012:8:52"},"scope":10716,"src":"12935:305:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10533,"nodeType":"Block","src":"13332:219:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10518,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10510,"src":"13350:6:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13357:6:52","memberName":"length","nodeType":"MemberAccess","src":"13350:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10520,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10512,"src":"13367:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":10521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13376:1:52","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13367:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13350:27:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7433325f6f75744f66426f756e6473","id":10524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13379:22:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""},"value":"toUint32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""}],"id":10517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13342:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13342:60:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10526,"nodeType":"ExpressionStatement","src":"13342:60:52"},{"assignments":[10528],"declarations":[{"constant":false,"id":10528,"mutability":"mutable","name":"tempUint","nameLocation":"13419:8:52","nodeType":"VariableDeclaration","scope":10533,"src":"13412:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":10527,"name":"uint32","nodeType":"ElementaryTypeName","src":"13412:6:52","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":10529,"nodeType":"VariableDeclarationStatement","src":"13412:15:52"},{"AST":{"nativeSrc":"13447:72:52","nodeType":"YulBlock","src":"13447:72:52","statements":[{"nativeSrc":"13461:48:52","nodeType":"YulAssignment","src":"13461:48:52","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13487:6:52","nodeType":"YulIdentifier","src":"13487:6:52"},{"kind":"number","nativeSrc":"13495:3:52","nodeType":"YulLiteral","src":"13495:3:52","type":"","value":"0x4"}],"functionName":{"name":"add","nativeSrc":"13483:3:52","nodeType":"YulIdentifier","src":"13483:3:52"},"nativeSrc":"13483:16:52","nodeType":"YulFunctionCall","src":"13483:16:52"},{"name":"_start","nativeSrc":"13501:6:52","nodeType":"YulIdentifier","src":"13501:6:52"}],"functionName":{"name":"add","nativeSrc":"13479:3:52","nodeType":"YulIdentifier","src":"13479:3:52"},"nativeSrc":"13479:29:52","nodeType":"YulFunctionCall","src":"13479:29:52"}],"functionName":{"name":"mload","nativeSrc":"13473:5:52","nodeType":"YulIdentifier","src":"13473:5:52"},"nativeSrc":"13473:36:52","nodeType":"YulFunctionCall","src":"13473:36:52"},"variableNames":[{"name":"tempUint","nativeSrc":"13461:8:52","nodeType":"YulIdentifier","src":"13461:8:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10510,"isOffset":false,"isSlot":false,"src":"13487:6:52","valueSize":1},{"declaration":10512,"isOffset":false,"isSlot":false,"src":"13501:6:52","valueSize":1},{"declaration":10528,"isOffset":false,"isSlot":false,"src":"13461:8:52","valueSize":1}],"id":10530,"nodeType":"InlineAssembly","src":"13438:81:52"},{"expression":{"id":10531,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10528,"src":"13536:8:52","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":10516,"id":10532,"nodeType":"Return","src":"13529:15:52"}]},"id":10534,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"13255:8:52","nodeType":"FunctionDefinition","parameters":{"id":10513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10510,"mutability":"mutable","name":"_bytes","nameLocation":"13277:6:52","nodeType":"VariableDeclaration","scope":10534,"src":"13264:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10509,"name":"bytes","nodeType":"ElementaryTypeName","src":"13264:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10512,"mutability":"mutable","name":"_start","nameLocation":"13293:6:52","nodeType":"VariableDeclaration","scope":10534,"src":"13285:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10511,"name":"uint256","nodeType":"ElementaryTypeName","src":"13285:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13263:37:52"},"returnParameters":{"id":10516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10534,"src":"13324:6:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":10514,"name":"uint32","nodeType":"ElementaryTypeName","src":"13324:6:52","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"13323:8:52"},"scope":10716,"src":"13246:305:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10559,"nodeType":"Block","src":"13643:219:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10544,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10536,"src":"13661:6:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13668:6:52","memberName":"length","nodeType":"MemberAccess","src":"13661:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10546,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10538,"src":"13678:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"38","id":10547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13687:1:52","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"13678:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13661:27:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7436345f6f75744f66426f756e6473","id":10550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13690:22:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""},"value":"toUint64_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""}],"id":10543,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13653:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13653:60:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10552,"nodeType":"ExpressionStatement","src":"13653:60:52"},{"assignments":[10554],"declarations":[{"constant":false,"id":10554,"mutability":"mutable","name":"tempUint","nameLocation":"13730:8:52","nodeType":"VariableDeclaration","scope":10559,"src":"13723:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10553,"name":"uint64","nodeType":"ElementaryTypeName","src":"13723:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":10555,"nodeType":"VariableDeclarationStatement","src":"13723:15:52"},{"AST":{"nativeSrc":"13758:72:52","nodeType":"YulBlock","src":"13758:72:52","statements":[{"nativeSrc":"13772:48:52","nodeType":"YulAssignment","src":"13772:48:52","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13798:6:52","nodeType":"YulIdentifier","src":"13798:6:52"},{"kind":"number","nativeSrc":"13806:3:52","nodeType":"YulLiteral","src":"13806:3:52","type":"","value":"0x8"}],"functionName":{"name":"add","nativeSrc":"13794:3:52","nodeType":"YulIdentifier","src":"13794:3:52"},"nativeSrc":"13794:16:52","nodeType":"YulFunctionCall","src":"13794:16:52"},{"name":"_start","nativeSrc":"13812:6:52","nodeType":"YulIdentifier","src":"13812:6:52"}],"functionName":{"name":"add","nativeSrc":"13790:3:52","nodeType":"YulIdentifier","src":"13790:3:52"},"nativeSrc":"13790:29:52","nodeType":"YulFunctionCall","src":"13790:29:52"}],"functionName":{"name":"mload","nativeSrc":"13784:5:52","nodeType":"YulIdentifier","src":"13784:5:52"},"nativeSrc":"13784:36:52","nodeType":"YulFunctionCall","src":"13784:36:52"},"variableNames":[{"name":"tempUint","nativeSrc":"13772:8:52","nodeType":"YulIdentifier","src":"13772:8:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10536,"isOffset":false,"isSlot":false,"src":"13798:6:52","valueSize":1},{"declaration":10538,"isOffset":false,"isSlot":false,"src":"13812:6:52","valueSize":1},{"declaration":10554,"isOffset":false,"isSlot":false,"src":"13772:8:52","valueSize":1}],"id":10556,"nodeType":"InlineAssembly","src":"13749:81:52"},{"expression":{"id":10557,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10554,"src":"13847:8:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":10542,"id":10558,"nodeType":"Return","src":"13840:15:52"}]},"id":10560,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13566:8:52","nodeType":"FunctionDefinition","parameters":{"id":10539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10536,"mutability":"mutable","name":"_bytes","nameLocation":"13588:6:52","nodeType":"VariableDeclaration","scope":10560,"src":"13575:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10535,"name":"bytes","nodeType":"ElementaryTypeName","src":"13575:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10538,"mutability":"mutable","name":"_start","nameLocation":"13604:6:52","nodeType":"VariableDeclaration","scope":10560,"src":"13596:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10537,"name":"uint256","nodeType":"ElementaryTypeName","src":"13596:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13574:37:52"},"returnParameters":{"id":10542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10560,"src":"13635:6:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10540,"name":"uint64","nodeType":"ElementaryTypeName","src":"13635:6:52","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13634:8:52"},"scope":10716,"src":"13557:305:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10585,"nodeType":"Block","src":"13954:220:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10570,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10562,"src":"13972:6:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13979:6:52","memberName":"length","nodeType":"MemberAccess","src":"13972:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10572,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10564,"src":"13989:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3132","id":10573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13998:2:52","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"13989:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13972:28:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7439365f6f75744f66426f756e6473","id":10576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14002:22:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""},"value":"toUint96_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""}],"id":10569,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13964:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13964:61:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10578,"nodeType":"ExpressionStatement","src":"13964:61:52"},{"assignments":[10580],"declarations":[{"constant":false,"id":10580,"mutability":"mutable","name":"tempUint","nameLocation":"14042:8:52","nodeType":"VariableDeclaration","scope":10585,"src":"14035:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10579,"name":"uint96","nodeType":"ElementaryTypeName","src":"14035:6:52","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":10581,"nodeType":"VariableDeclarationStatement","src":"14035:15:52"},{"AST":{"nativeSrc":"14070:72:52","nodeType":"YulBlock","src":"14070:72:52","statements":[{"nativeSrc":"14084:48:52","nodeType":"YulAssignment","src":"14084:48:52","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14110:6:52","nodeType":"YulIdentifier","src":"14110:6:52"},{"kind":"number","nativeSrc":"14118:3:52","nodeType":"YulLiteral","src":"14118:3:52","type":"","value":"0xc"}],"functionName":{"name":"add","nativeSrc":"14106:3:52","nodeType":"YulIdentifier","src":"14106:3:52"},"nativeSrc":"14106:16:52","nodeType":"YulFunctionCall","src":"14106:16:52"},{"name":"_start","nativeSrc":"14124:6:52","nodeType":"YulIdentifier","src":"14124:6:52"}],"functionName":{"name":"add","nativeSrc":"14102:3:52","nodeType":"YulIdentifier","src":"14102:3:52"},"nativeSrc":"14102:29:52","nodeType":"YulFunctionCall","src":"14102:29:52"}],"functionName":{"name":"mload","nativeSrc":"14096:5:52","nodeType":"YulIdentifier","src":"14096:5:52"},"nativeSrc":"14096:36:52","nodeType":"YulFunctionCall","src":"14096:36:52"},"variableNames":[{"name":"tempUint","nativeSrc":"14084:8:52","nodeType":"YulIdentifier","src":"14084:8:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10562,"isOffset":false,"isSlot":false,"src":"14110:6:52","valueSize":1},{"declaration":10564,"isOffset":false,"isSlot":false,"src":"14124:6:52","valueSize":1},{"declaration":10580,"isOffset":false,"isSlot":false,"src":"14084:8:52","valueSize":1}],"id":10582,"nodeType":"InlineAssembly","src":"14061:81:52"},{"expression":{"id":10583,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10580,"src":"14159:8:52","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":10568,"id":10584,"nodeType":"Return","src":"14152:15:52"}]},"id":10586,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"13877:8:52","nodeType":"FunctionDefinition","parameters":{"id":10565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10562,"mutability":"mutable","name":"_bytes","nameLocation":"13899:6:52","nodeType":"VariableDeclaration","scope":10586,"src":"13886:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10561,"name":"bytes","nodeType":"ElementaryTypeName","src":"13886:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10564,"mutability":"mutable","name":"_start","nameLocation":"13915:6:52","nodeType":"VariableDeclaration","scope":10586,"src":"13907:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10563,"name":"uint256","nodeType":"ElementaryTypeName","src":"13907:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13885:37:52"},"returnParameters":{"id":10568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10586,"src":"13946:6:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10566,"name":"uint96","nodeType":"ElementaryTypeName","src":"13946:6:52","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"13945:8:52"},"scope":10716,"src":"13868:306:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10611,"nodeType":"Block","src":"14268:223:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10596,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10588,"src":"14286:6:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14293:6:52","memberName":"length","nodeType":"MemberAccess","src":"14286:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10598,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"14303:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3136","id":10599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14312:2:52","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14303:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14286:28:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743132385f6f75744f66426f756e6473","id":10602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14316:23:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""},"value":"toUint128_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""}],"id":10595,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14278:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14278:62:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10604,"nodeType":"ExpressionStatement","src":"14278:62:52"},{"assignments":[10606],"declarations":[{"constant":false,"id":10606,"mutability":"mutable","name":"tempUint","nameLocation":"14358:8:52","nodeType":"VariableDeclaration","scope":10611,"src":"14350:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":10605,"name":"uint128","nodeType":"ElementaryTypeName","src":"14350:7:52","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":10607,"nodeType":"VariableDeclarationStatement","src":"14350:16:52"},{"AST":{"nativeSrc":"14386:73:52","nodeType":"YulBlock","src":"14386:73:52","statements":[{"nativeSrc":"14400:49:52","nodeType":"YulAssignment","src":"14400:49:52","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14426:6:52","nodeType":"YulIdentifier","src":"14426:6:52"},{"kind":"number","nativeSrc":"14434:4:52","nodeType":"YulLiteral","src":"14434:4:52","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"14422:3:52","nodeType":"YulIdentifier","src":"14422:3:52"},"nativeSrc":"14422:17:52","nodeType":"YulFunctionCall","src":"14422:17:52"},{"name":"_start","nativeSrc":"14441:6:52","nodeType":"YulIdentifier","src":"14441:6:52"}],"functionName":{"name":"add","nativeSrc":"14418:3:52","nodeType":"YulIdentifier","src":"14418:3:52"},"nativeSrc":"14418:30:52","nodeType":"YulFunctionCall","src":"14418:30:52"}],"functionName":{"name":"mload","nativeSrc":"14412:5:52","nodeType":"YulIdentifier","src":"14412:5:52"},"nativeSrc":"14412:37:52","nodeType":"YulFunctionCall","src":"14412:37:52"},"variableNames":[{"name":"tempUint","nativeSrc":"14400:8:52","nodeType":"YulIdentifier","src":"14400:8:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10588,"isOffset":false,"isSlot":false,"src":"14426:6:52","valueSize":1},{"declaration":10590,"isOffset":false,"isSlot":false,"src":"14441:6:52","valueSize":1},{"declaration":10606,"isOffset":false,"isSlot":false,"src":"14400:8:52","valueSize":1}],"id":10608,"nodeType":"InlineAssembly","src":"14377:82:52"},{"expression":{"id":10609,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10606,"src":"14476:8:52","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":10594,"id":10610,"nodeType":"Return","src":"14469:15:52"}]},"id":10612,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"14189:9:52","nodeType":"FunctionDefinition","parameters":{"id":10591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10588,"mutability":"mutable","name":"_bytes","nameLocation":"14212:6:52","nodeType":"VariableDeclaration","scope":10612,"src":"14199:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10587,"name":"bytes","nodeType":"ElementaryTypeName","src":"14199:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10590,"mutability":"mutable","name":"_start","nameLocation":"14228:6:52","nodeType":"VariableDeclaration","scope":10612,"src":"14220:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10589,"name":"uint256","nodeType":"ElementaryTypeName","src":"14220:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14198:37:52"},"returnParameters":{"id":10594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10612,"src":"14259:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":10592,"name":"uint128","nodeType":"ElementaryTypeName","src":"14259:7:52","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"14258:9:52"},"scope":10716,"src":"14180:311:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10637,"nodeType":"Block","src":"14585:223:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10622,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10614,"src":"14603:6:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14610:6:52","memberName":"length","nodeType":"MemberAccess","src":"14603:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10624,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10616,"src":"14620:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":10625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14629:2:52","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14620:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14603:28:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743235365f6f75744f66426f756e6473","id":10628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14633:23:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""},"value":"toUint256_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""}],"id":10621,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14595:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14595:62:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10630,"nodeType":"ExpressionStatement","src":"14595:62:52"},{"assignments":[10632],"declarations":[{"constant":false,"id":10632,"mutability":"mutable","name":"tempUint","nameLocation":"14675:8:52","nodeType":"VariableDeclaration","scope":10637,"src":"14667:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10631,"name":"uint256","nodeType":"ElementaryTypeName","src":"14667:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10633,"nodeType":"VariableDeclarationStatement","src":"14667:16:52"},{"AST":{"nativeSrc":"14703:73:52","nodeType":"YulBlock","src":"14703:73:52","statements":[{"nativeSrc":"14717:49:52","nodeType":"YulAssignment","src":"14717:49:52","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14743:6:52","nodeType":"YulIdentifier","src":"14743:6:52"},{"kind":"number","nativeSrc":"14751:4:52","nodeType":"YulLiteral","src":"14751:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14739:3:52","nodeType":"YulIdentifier","src":"14739:3:52"},"nativeSrc":"14739:17:52","nodeType":"YulFunctionCall","src":"14739:17:52"},{"name":"_start","nativeSrc":"14758:6:52","nodeType":"YulIdentifier","src":"14758:6:52"}],"functionName":{"name":"add","nativeSrc":"14735:3:52","nodeType":"YulIdentifier","src":"14735:3:52"},"nativeSrc":"14735:30:52","nodeType":"YulFunctionCall","src":"14735:30:52"}],"functionName":{"name":"mload","nativeSrc":"14729:5:52","nodeType":"YulIdentifier","src":"14729:5:52"},"nativeSrc":"14729:37:52","nodeType":"YulFunctionCall","src":"14729:37:52"},"variableNames":[{"name":"tempUint","nativeSrc":"14717:8:52","nodeType":"YulIdentifier","src":"14717:8:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10614,"isOffset":false,"isSlot":false,"src":"14743:6:52","valueSize":1},{"declaration":10616,"isOffset":false,"isSlot":false,"src":"14758:6:52","valueSize":1},{"declaration":10632,"isOffset":false,"isSlot":false,"src":"14717:8:52","valueSize":1}],"id":10634,"nodeType":"InlineAssembly","src":"14694:82:52"},{"expression":{"id":10635,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"14793:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10620,"id":10636,"nodeType":"Return","src":"14786:15:52"}]},"id":10638,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"14506:9:52","nodeType":"FunctionDefinition","parameters":{"id":10617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10614,"mutability":"mutable","name":"_bytes","nameLocation":"14529:6:52","nodeType":"VariableDeclaration","scope":10638,"src":"14516:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10613,"name":"bytes","nodeType":"ElementaryTypeName","src":"14516:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10616,"mutability":"mutable","name":"_start","nameLocation":"14545:6:52","nodeType":"VariableDeclaration","scope":10638,"src":"14537:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10615,"name":"uint256","nodeType":"ElementaryTypeName","src":"14537:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14515:37:52"},"returnParameters":{"id":10620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10638,"src":"14576:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10618,"name":"uint256","nodeType":"ElementaryTypeName","src":"14576:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14575:9:52"},"scope":10716,"src":"14497:311:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10663,"nodeType":"Block","src":"14902:232:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10648,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10640,"src":"14920:6:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14927:6:52","memberName":"length","nodeType":"MemberAccess","src":"14920:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10650,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10642,"src":"14937:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":10651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14946:2:52","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14937:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14920:28:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f427974657333325f6f75744f66426f756e6473","id":10654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14950:23:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""},"value":"toBytes32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""}],"id":10647,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14912:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14912:62:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10656,"nodeType":"ExpressionStatement","src":"14912:62:52"},{"assignments":[10658],"declarations":[{"constant":false,"id":10658,"mutability":"mutable","name":"tempBytes32","nameLocation":"14992:11:52","nodeType":"VariableDeclaration","scope":10663,"src":"14984:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10657,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14984:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10659,"nodeType":"VariableDeclarationStatement","src":"14984:19:52"},{"AST":{"nativeSrc":"15023:76:52","nodeType":"YulBlock","src":"15023:76:52","statements":[{"nativeSrc":"15037:52:52","nodeType":"YulAssignment","src":"15037:52:52","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"15066:6:52","nodeType":"YulIdentifier","src":"15066:6:52"},{"kind":"number","nativeSrc":"15074:4:52","nodeType":"YulLiteral","src":"15074:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15062:3:52","nodeType":"YulIdentifier","src":"15062:3:52"},"nativeSrc":"15062:17:52","nodeType":"YulFunctionCall","src":"15062:17:52"},{"name":"_start","nativeSrc":"15081:6:52","nodeType":"YulIdentifier","src":"15081:6:52"}],"functionName":{"name":"add","nativeSrc":"15058:3:52","nodeType":"YulIdentifier","src":"15058:3:52"},"nativeSrc":"15058:30:52","nodeType":"YulFunctionCall","src":"15058:30:52"}],"functionName":{"name":"mload","nativeSrc":"15052:5:52","nodeType":"YulIdentifier","src":"15052:5:52"},"nativeSrc":"15052:37:52","nodeType":"YulFunctionCall","src":"15052:37:52"},"variableNames":[{"name":"tempBytes32","nativeSrc":"15037:11:52","nodeType":"YulIdentifier","src":"15037:11:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10640,"isOffset":false,"isSlot":false,"src":"15066:6:52","valueSize":1},{"declaration":10642,"isOffset":false,"isSlot":false,"src":"15081:6:52","valueSize":1},{"declaration":10658,"isOffset":false,"isSlot":false,"src":"15037:11:52","valueSize":1}],"id":10660,"nodeType":"InlineAssembly","src":"15014:85:52"},{"expression":{"id":10661,"name":"tempBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10658,"src":"15116:11:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10646,"id":10662,"nodeType":"Return","src":"15109:18:52"}]},"id":10664,"implemented":true,"kind":"function","modifiers":[],"name":"toBytes32","nameLocation":"14823:9:52","nodeType":"FunctionDefinition","parameters":{"id":10643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10640,"mutability":"mutable","name":"_bytes","nameLocation":"14846:6:52","nodeType":"VariableDeclaration","scope":10664,"src":"14833:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10639,"name":"bytes","nodeType":"ElementaryTypeName","src":"14833:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10642,"mutability":"mutable","name":"_start","nameLocation":"14862:6:52","nodeType":"VariableDeclaration","scope":10664,"src":"14854:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10641,"name":"uint256","nodeType":"ElementaryTypeName","src":"14854:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14832:37:52"},"returnParameters":{"id":10646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10664,"src":"14893:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14893:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14892:9:52"},"scope":10716,"src":"14814:320:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10680,"nodeType":"Block","src":"15233:1323:52","statements":[{"assignments":[10674],"declarations":[{"constant":false,"id":10674,"mutability":"mutable","name":"success","nameLocation":"15248:7:52","nodeType":"VariableDeclaration","scope":10680,"src":"15243:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10673,"name":"bool","nodeType":"ElementaryTypeName","src":"15243:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":10676,"initialValue":{"hexValue":"74727565","id":10675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15258:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"15243:19:52"},{"AST":{"nativeSrc":"15282:1243:52","nodeType":"YulBlock","src":"15282:1243:52","statements":[{"nativeSrc":"15296:30:52","nodeType":"YulVariableDeclaration","src":"15296:30:52","value":{"arguments":[{"name":"_preBytes","nativeSrc":"15316:9:52","nodeType":"YulIdentifier","src":"15316:9:52"}],"functionName":{"name":"mload","nativeSrc":"15310:5:52","nodeType":"YulIdentifier","src":"15310:5:52"},"nativeSrc":"15310:16:52","nodeType":"YulFunctionCall","src":"15310:16:52"},"variables":[{"name":"length","nativeSrc":"15300:6:52","nodeType":"YulTypedName","src":"15300:6:52","type":""}]},{"cases":[{"body":{"nativeSrc":"15459:961:52","nodeType":"YulBlock","src":"15459:961:52","statements":[{"nativeSrc":"15688:11:52","nodeType":"YulVariableDeclaration","src":"15688:11:52","value":{"kind":"number","nativeSrc":"15698:1:52","nodeType":"YulLiteral","src":"15698:1:52","type":"","value":"1"},"variables":[{"name":"cb","nativeSrc":"15692:2:52","nodeType":"YulTypedName","src":"15692:2:52","type":""}]},{"nativeSrc":"15717:30:52","nodeType":"YulVariableDeclaration","src":"15717:30:52","value":{"arguments":[{"name":"_preBytes","nativeSrc":"15731:9:52","nodeType":"YulIdentifier","src":"15731:9:52"},{"kind":"number","nativeSrc":"15742:4:52","nodeType":"YulLiteral","src":"15742:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15727:3:52","nodeType":"YulIdentifier","src":"15727:3:52"},"nativeSrc":"15727:20:52","nodeType":"YulFunctionCall","src":"15727:20:52"},"variables":[{"name":"mc","nativeSrc":"15721:2:52","nodeType":"YulTypedName","src":"15721:2:52","type":""}]},{"nativeSrc":"15764:26:52","nodeType":"YulVariableDeclaration","src":"15764:26:52","value":{"arguments":[{"name":"mc","nativeSrc":"15779:2:52","nodeType":"YulIdentifier","src":"15779:2:52"},{"name":"length","nativeSrc":"15783:6:52","nodeType":"YulIdentifier","src":"15783:6:52"}],"functionName":{"name":"add","nativeSrc":"15775:3:52","nodeType":"YulIdentifier","src":"15775:3:52"},"nativeSrc":"15775:15:52","nodeType":"YulFunctionCall","src":"15775:15:52"},"variables":[{"name":"end","nativeSrc":"15768:3:52","nodeType":"YulTypedName","src":"15768:3:52","type":""}]},{"body":{"nativeSrc":"16122:284:52","nodeType":"YulBlock","src":"16122:284:52","statements":[{"body":{"nativeSrc":"16258:130:52","nodeType":"YulBlock","src":"16258:130:52","statements":[{"nativeSrc":"16322:12:52","nodeType":"YulAssignment","src":"16322:12:52","value":{"kind":"number","nativeSrc":"16333:1:52","nodeType":"YulLiteral","src":"16333:1:52","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"16322:7:52","nodeType":"YulIdentifier","src":"16322:7:52"}]},{"nativeSrc":"16359:7:52","nodeType":"YulAssignment","src":"16359:7:52","value":{"kind":"number","nativeSrc":"16365:1:52","nodeType":"YulLiteral","src":"16365:1:52","type":"","value":"0"},"variableNames":[{"name":"cb","nativeSrc":"16359:2:52","nodeType":"YulIdentifier","src":"16359:2:52"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"16241:2:52","nodeType":"YulIdentifier","src":"16241:2:52"}],"functionName":{"name":"mload","nativeSrc":"16235:5:52","nodeType":"YulIdentifier","src":"16235:5:52"},"nativeSrc":"16235:9:52","nodeType":"YulFunctionCall","src":"16235:9:52"},{"arguments":[{"name":"cc","nativeSrc":"16252:2:52","nodeType":"YulIdentifier","src":"16252:2:52"}],"functionName":{"name":"mload","nativeSrc":"16246:5:52","nodeType":"YulIdentifier","src":"16246:5:52"},"nativeSrc":"16246:9:52","nodeType":"YulFunctionCall","src":"16246:9:52"}],"functionName":{"name":"eq","nativeSrc":"16232:2:52","nodeType":"YulIdentifier","src":"16232:2:52"},"nativeSrc":"16232:24:52","nodeType":"YulFunctionCall","src":"16232:24:52"}],"functionName":{"name":"iszero","nativeSrc":"16225:6:52","nodeType":"YulIdentifier","src":"16225:6:52"},"nativeSrc":"16225:32:52","nodeType":"YulFunctionCall","src":"16225:32:52"},"nativeSrc":"16222:166:52","nodeType":"YulIf","src":"16222:166:52"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"16004:2:52","nodeType":"YulIdentifier","src":"16004:2:52"},{"name":"end","nativeSrc":"16008:3:52","nodeType":"YulIdentifier","src":"16008:3:52"}],"functionName":{"name":"lt","nativeSrc":"16001:2:52","nodeType":"YulIdentifier","src":"16001:2:52"},"nativeSrc":"16001:11:52","nodeType":"YulFunctionCall","src":"16001:11:52"},{"name":"cb","nativeSrc":"16014:2:52","nodeType":"YulIdentifier","src":"16014:2:52"}],"functionName":{"name":"add","nativeSrc":"15997:3:52","nodeType":"YulIdentifier","src":"15997:3:52"},"nativeSrc":"15997:20:52","nodeType":"YulFunctionCall","src":"15997:20:52"},{"kind":"number","nativeSrc":"16019:1:52","nodeType":"YulLiteral","src":"16019:1:52","type":"","value":"2"}],"functionName":{"name":"eq","nativeSrc":"15994:2:52","nodeType":"YulIdentifier","src":"15994:2:52"},"nativeSrc":"15994:27:52","nodeType":"YulFunctionCall","src":"15994:27:52"},"nativeSrc":"15808:598:52","nodeType":"YulForLoop","post":{"nativeSrc":"16022:99:52","nodeType":"YulBlock","src":"16022:99:52","statements":[{"nativeSrc":"16044:19:52","nodeType":"YulAssignment","src":"16044:19:52","value":{"arguments":[{"name":"mc","nativeSrc":"16054:2:52","nodeType":"YulIdentifier","src":"16054:2:52"},{"kind":"number","nativeSrc":"16058:4:52","nodeType":"YulLiteral","src":"16058:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16050:3:52","nodeType":"YulIdentifier","src":"16050:3:52"},"nativeSrc":"16050:13:52","nodeType":"YulFunctionCall","src":"16050:13:52"},"variableNames":[{"name":"mc","nativeSrc":"16044:2:52","nodeType":"YulIdentifier","src":"16044:2:52"}]},{"nativeSrc":"16084:19:52","nodeType":"YulAssignment","src":"16084:19:52","value":{"arguments":[{"name":"cc","nativeSrc":"16094:2:52","nodeType":"YulIdentifier","src":"16094:2:52"},{"kind":"number","nativeSrc":"16098:4:52","nodeType":"YulLiteral","src":"16098:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16090:3:52","nodeType":"YulIdentifier","src":"16090:3:52"},"nativeSrc":"16090:13:52","nodeType":"YulFunctionCall","src":"16090:13:52"},"variableNames":[{"name":"cc","nativeSrc":"16084:2:52","nodeType":"YulIdentifier","src":"16084:2:52"}]}]},"pre":{"nativeSrc":"15812:181:52","nodeType":"YulBlock","src":"15812:181:52","statements":[{"nativeSrc":"15834:31:52","nodeType":"YulVariableDeclaration","src":"15834:31:52","value":{"arguments":[{"name":"_postBytes","nativeSrc":"15848:10:52","nodeType":"YulIdentifier","src":"15848:10:52"},{"kind":"number","nativeSrc":"15860:4:52","nodeType":"YulLiteral","src":"15860:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15844:3:52","nodeType":"YulIdentifier","src":"15844:3:52"},"nativeSrc":"15844:21:52","nodeType":"YulFunctionCall","src":"15844:21:52"},"variables":[{"name":"cc","nativeSrc":"15838:2:52","nodeType":"YulTypedName","src":"15838:2:52","type":""}]}]},"src":"15808:598:52"}]},"nativeSrc":"15452:968:52","nodeType":"YulCase","src":"15452:968:52","value":{"kind":"number","nativeSrc":"15457:1:52","nodeType":"YulLiteral","src":"15457:1:52","type":"","value":"1"}},{"body":{"nativeSrc":"16441:74:52","nodeType":"YulBlock","src":"16441:74:52","statements":[{"nativeSrc":"16489:12:52","nodeType":"YulAssignment","src":"16489:12:52","value":{"kind":"number","nativeSrc":"16500:1:52","nodeType":"YulLiteral","src":"16500:1:52","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"16489:7:52","nodeType":"YulIdentifier","src":"16489:7:52"}]}]},"nativeSrc":"16433:82:52","nodeType":"YulCase","src":"16433:82:52","value":"default"}],"expression":{"arguments":[{"name":"length","nativeSrc":"15413:6:52","nodeType":"YulIdentifier","src":"15413:6:52"},{"arguments":[{"name":"_postBytes","nativeSrc":"15427:10:52","nodeType":"YulIdentifier","src":"15427:10:52"}],"functionName":{"name":"mload","nativeSrc":"15421:5:52","nodeType":"YulIdentifier","src":"15421:5:52"},"nativeSrc":"15421:17:52","nodeType":"YulFunctionCall","src":"15421:17:52"}],"functionName":{"name":"eq","nativeSrc":"15410:2:52","nodeType":"YulIdentifier","src":"15410:2:52"},"nativeSrc":"15410:29:52","nodeType":"YulFunctionCall","src":"15410:29:52"},"nativeSrc":"15403:1112:52","nodeType":"YulSwitch","src":"15403:1112:52"}]},"evmVersion":"paris","externalReferences":[{"declaration":10668,"isOffset":false,"isSlot":false,"src":"15427:10:52","valueSize":1},{"declaration":10668,"isOffset":false,"isSlot":false,"src":"15848:10:52","valueSize":1},{"declaration":10666,"isOffset":false,"isSlot":false,"src":"15316:9:52","valueSize":1},{"declaration":10666,"isOffset":false,"isSlot":false,"src":"15731:9:52","valueSize":1},{"declaration":10674,"isOffset":false,"isSlot":false,"src":"16322:7:52","valueSize":1},{"declaration":10674,"isOffset":false,"isSlot":false,"src":"16489:7:52","valueSize":1}],"id":10677,"nodeType":"InlineAssembly","src":"15273:1252:52"},{"expression":{"id":10678,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10674,"src":"16542:7:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10672,"id":10679,"nodeType":"Return","src":"16535:14:52"}]},"id":10681,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"15149:5:52","nodeType":"FunctionDefinition","parameters":{"id":10669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10666,"mutability":"mutable","name":"_preBytes","nameLocation":"15168:9:52","nodeType":"VariableDeclaration","scope":10681,"src":"15155:22:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10665,"name":"bytes","nodeType":"ElementaryTypeName","src":"15155:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10668,"mutability":"mutable","name":"_postBytes","nameLocation":"15192:10:52","nodeType":"VariableDeclaration","scope":10681,"src":"15179:23:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10667,"name":"bytes","nodeType":"ElementaryTypeName","src":"15179:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15154:49:52"},"returnParameters":{"id":10672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10681,"src":"15227:4:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10670,"name":"bool","nodeType":"ElementaryTypeName","src":"15227:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15226:6:52"},"scope":10716,"src":"15140:1416:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10697,"nodeType":"Block","src":"16666:2293:52","statements":[{"assignments":[10691],"declarations":[{"constant":false,"id":10691,"mutability":"mutable","name":"success","nameLocation":"16681:7:52","nodeType":"VariableDeclaration","scope":10697,"src":"16676:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10690,"name":"bool","nodeType":"ElementaryTypeName","src":"16676:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":10693,"initialValue":{"hexValue":"74727565","id":10692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16691:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"16676:19:52"},{"AST":{"nativeSrc":"16715:2213:52","nodeType":"YulBlock","src":"16715:2213:52","statements":[{"nativeSrc":"16729:30:52","nodeType":"YulVariableDeclaration","src":"16729:30:52","value":{"arguments":[{"name":"_preBytes","nativeSrc":"16749:9:52","nodeType":"YulIdentifier","src":"16749:9:52"}],"functionName":{"name":"mload","nativeSrc":"16743:5:52","nodeType":"YulIdentifier","src":"16743:5:52"},"nativeSrc":"16743:16:52","nodeType":"YulFunctionCall","src":"16743:16:52"},"variables":[{"name":"length","nativeSrc":"16733:6:52","nodeType":"YulTypedName","src":"16733:6:52","type":""}]},{"cases":[{"body":{"nativeSrc":"16892:1931:52","nodeType":"YulBlock","src":"16892:1931:52","statements":[{"nativeSrc":"17121:11:52","nodeType":"YulVariableDeclaration","src":"17121:11:52","value":{"kind":"number","nativeSrc":"17131:1:52","nodeType":"YulLiteral","src":"17131:1:52","type":"","value":"1"},"variables":[{"name":"cb","nativeSrc":"17125:2:52","nodeType":"YulTypedName","src":"17125:2:52","type":""}]},{"nativeSrc":"17150:42:52","nodeType":"YulVariableDeclaration","src":"17150:42:52","value":{"arguments":[{"name":"_preBytes","nativeSrc":"17174:9:52","nodeType":"YulIdentifier","src":"17174:9:52"},{"name":"length","nativeSrc":"17185:6:52","nodeType":"YulIdentifier","src":"17185:6:52"}],"functionName":{"name":"add","nativeSrc":"17170:3:52","nodeType":"YulIdentifier","src":"17170:3:52"},"nativeSrc":"17170:22:52","nodeType":"YulFunctionCall","src":"17170:22:52"},"variables":[{"name":"endMinusWord","nativeSrc":"17154:12:52","nodeType":"YulTypedName","src":"17154:12:52","type":""}]},{"nativeSrc":"17209:30:52","nodeType":"YulVariableDeclaration","src":"17209:30:52","value":{"arguments":[{"name":"_preBytes","nativeSrc":"17223:9:52","nodeType":"YulIdentifier","src":"17223:9:52"},{"kind":"number","nativeSrc":"17234:4:52","nodeType":"YulLiteral","src":"17234:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17219:3:52","nodeType":"YulIdentifier","src":"17219:3:52"},"nativeSrc":"17219:20:52","nodeType":"YulFunctionCall","src":"17219:20:52"},"variables":[{"name":"mc","nativeSrc":"17213:2:52","nodeType":"YulTypedName","src":"17213:2:52","type":""}]},{"nativeSrc":"17256:31:52","nodeType":"YulVariableDeclaration","src":"17256:31:52","value":{"arguments":[{"name":"_postBytes","nativeSrc":"17270:10:52","nodeType":"YulIdentifier","src":"17270:10:52"},{"kind":"number","nativeSrc":"17282:4:52","nodeType":"YulLiteral","src":"17282:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17266:3:52","nodeType":"YulIdentifier","src":"17266:3:52"},"nativeSrc":"17266:21:52","nodeType":"YulFunctionCall","src":"17266:21:52"},"variables":[{"name":"cc","nativeSrc":"17260:2:52","nodeType":"YulTypedName","src":"17260:2:52","type":""}]},{"body":{"nativeSrc":"17580:284:52","nodeType":"YulBlock","src":"17580:284:52","statements":[{"body":{"nativeSrc":"17716:130:52","nodeType":"YulBlock","src":"17716:130:52","statements":[{"nativeSrc":"17780:12:52","nodeType":"YulAssignment","src":"17780:12:52","value":{"kind":"number","nativeSrc":"17791:1:52","nodeType":"YulLiteral","src":"17791:1:52","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"17780:7:52","nodeType":"YulIdentifier","src":"17780:7:52"}]},{"nativeSrc":"17817:7:52","nodeType":"YulAssignment","src":"17817:7:52","value":{"kind":"number","nativeSrc":"17823:1:52","nodeType":"YulLiteral","src":"17823:1:52","type":"","value":"0"},"variableNames":[{"name":"cb","nativeSrc":"17817:2:52","nodeType":"YulIdentifier","src":"17817:2:52"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"17699:2:52","nodeType":"YulIdentifier","src":"17699:2:52"}],"functionName":{"name":"mload","nativeSrc":"17693:5:52","nodeType":"YulIdentifier","src":"17693:5:52"},"nativeSrc":"17693:9:52","nodeType":"YulFunctionCall","src":"17693:9:52"},{"arguments":[{"name":"cc","nativeSrc":"17710:2:52","nodeType":"YulIdentifier","src":"17710:2:52"}],"functionName":{"name":"mload","nativeSrc":"17704:5:52","nodeType":"YulIdentifier","src":"17704:5:52"},"nativeSrc":"17704:9:52","nodeType":"YulFunctionCall","src":"17704:9:52"}],"functionName":{"name":"eq","nativeSrc":"17690:2:52","nodeType":"YulIdentifier","src":"17690:2:52"},"nativeSrc":"17690:24:52","nodeType":"YulFunctionCall","src":"17690:24:52"}],"functionName":{"name":"iszero","nativeSrc":"17683:6:52","nodeType":"YulIdentifier","src":"17683:6:52"},"nativeSrc":"17683:32:52","nodeType":"YulFunctionCall","src":"17683:32:52"},"nativeSrc":"17680:166:52","nodeType":"YulIf","src":"17680:166:52"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"17453:2:52","nodeType":"YulIdentifier","src":"17453:2:52"},{"name":"endMinusWord","nativeSrc":"17457:12:52","nodeType":"YulIdentifier","src":"17457:12:52"}],"functionName":{"name":"lt","nativeSrc":"17450:2:52","nodeType":"YulIdentifier","src":"17450:2:52"},"nativeSrc":"17450:20:52","nodeType":"YulFunctionCall","src":"17450:20:52"},{"name":"cb","nativeSrc":"17472:2:52","nodeType":"YulIdentifier","src":"17472:2:52"}],"functionName":{"name":"add","nativeSrc":"17446:3:52","nodeType":"YulIdentifier","src":"17446:3:52"},"nativeSrc":"17446:29:52","nodeType":"YulFunctionCall","src":"17446:29:52"},{"kind":"number","nativeSrc":"17477:1:52","nodeType":"YulLiteral","src":"17477:1:52","type":"","value":"2"}],"functionName":{"name":"eq","nativeSrc":"17443:2:52","nodeType":"YulIdentifier","src":"17443:2:52"},"nativeSrc":"17443:36:52","nodeType":"YulFunctionCall","src":"17443:36:52"},"nativeSrc":"17305:559:52","nodeType":"YulForLoop","post":{"nativeSrc":"17480:99:52","nodeType":"YulBlock","src":"17480:99:52","statements":[{"nativeSrc":"17502:19:52","nodeType":"YulAssignment","src":"17502:19:52","value":{"arguments":[{"name":"mc","nativeSrc":"17512:2:52","nodeType":"YulIdentifier","src":"17512:2:52"},{"kind":"number","nativeSrc":"17516:4:52","nodeType":"YulLiteral","src":"17516:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17508:3:52","nodeType":"YulIdentifier","src":"17508:3:52"},"nativeSrc":"17508:13:52","nodeType":"YulFunctionCall","src":"17508:13:52"},"variableNames":[{"name":"mc","nativeSrc":"17502:2:52","nodeType":"YulIdentifier","src":"17502:2:52"}]},{"nativeSrc":"17542:19:52","nodeType":"YulAssignment","src":"17542:19:52","value":{"arguments":[{"name":"cc","nativeSrc":"17552:2:52","nodeType":"YulIdentifier","src":"17552:2:52"},{"kind":"number","nativeSrc":"17556:4:52","nodeType":"YulLiteral","src":"17556:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17548:3:52","nodeType":"YulIdentifier","src":"17548:3:52"},"nativeSrc":"17548:13:52","nodeType":"YulFunctionCall","src":"17548:13:52"},"variableNames":[{"name":"cc","nativeSrc":"17542:2:52","nodeType":"YulIdentifier","src":"17542:2:52"}]}]},"pre":{"nativeSrc":"17309:133:52","nodeType":"YulBlock","src":"17309:133:52","statements":[]},"src":"17305:559:52"},{"body":{"nativeSrc":"17986:823:52","nodeType":"YulBlock","src":"17986:823:52","statements":[{"nativeSrc":"18119:37:52","nodeType":"YulVariableDeclaration","src":"18119:37:52","value":{"arguments":[{"name":"length","nativeSrc":"18143:6:52","nodeType":"YulIdentifier","src":"18143:6:52"},{"kind":"number","nativeSrc":"18151:4:52","nodeType":"YulLiteral","src":"18151:4:52","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"18139:3:52","nodeType":"YulIdentifier","src":"18139:3:52"},"nativeSrc":"18139:17:52","nodeType":"YulFunctionCall","src":"18139:17:52"},"variables":[{"name":"numTailBytes","nativeSrc":"18123:12:52","nodeType":"YulTypedName","src":"18123:12:52","type":""}]},{"nativeSrc":"18177:22:52","nodeType":"YulVariableDeclaration","src":"18177:22:52","value":{"arguments":[{"name":"mc","nativeSrc":"18196:2:52","nodeType":"YulIdentifier","src":"18196:2:52"}],"functionName":{"name":"mload","nativeSrc":"18190:5:52","nodeType":"YulIdentifier","src":"18190:5:52"},"nativeSrc":"18190:9:52","nodeType":"YulFunctionCall","src":"18190:9:52"},"variables":[{"name":"mcRem","nativeSrc":"18181:5:52","nodeType":"YulTypedName","src":"18181:5:52","type":""}]},{"nativeSrc":"18220:22:52","nodeType":"YulVariableDeclaration","src":"18220:22:52","value":{"arguments":[{"name":"cc","nativeSrc":"18239:2:52","nodeType":"YulIdentifier","src":"18239:2:52"}],"functionName":{"name":"mload","nativeSrc":"18233:5:52","nodeType":"YulIdentifier","src":"18233:5:52"},"nativeSrc":"18233:9:52","nodeType":"YulFunctionCall","src":"18233:9:52"},"variables":[{"name":"ccRem","nativeSrc":"18224:5:52","nodeType":"YulTypedName","src":"18224:5:52","type":""}]},{"body":{"nativeSrc":"18551:240:52","nodeType":"YulBlock","src":"18551:240:52","statements":[{"body":{"nativeSrc":"18623:146:52","nodeType":"YulBlock","src":"18623:146:52","statements":[{"nativeSrc":"18695:12:52","nodeType":"YulAssignment","src":"18695:12:52","value":{"kind":"number","nativeSrc":"18706:1:52","nodeType":"YulLiteral","src":"18706:1:52","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"18695:7:52","nodeType":"YulIdentifier","src":"18695:7:52"}]},{"nativeSrc":"18736:7:52","nodeType":"YulAssignment","src":"18736:7:52","value":{"kind":"number","nativeSrc":"18742:1:52","nodeType":"YulLiteral","src":"18742:1:52","type":"","value":"0"},"variableNames":[{"name":"cb","nativeSrc":"18736:2:52","nodeType":"YulIdentifier","src":"18736:2:52"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"i","nativeSrc":"18595:1:52","nodeType":"YulIdentifier","src":"18595:1:52"},{"name":"mcRem","nativeSrc":"18598:5:52","nodeType":"YulIdentifier","src":"18598:5:52"}],"functionName":{"name":"byte","nativeSrc":"18590:4:52","nodeType":"YulIdentifier","src":"18590:4:52"},"nativeSrc":"18590:14:52","nodeType":"YulFunctionCall","src":"18590:14:52"},{"arguments":[{"name":"i","nativeSrc":"18611:1:52","nodeType":"YulIdentifier","src":"18611:1:52"},{"name":"ccRem","nativeSrc":"18614:5:52","nodeType":"YulIdentifier","src":"18614:5:52"}],"functionName":{"name":"byte","nativeSrc":"18606:4:52","nodeType":"YulIdentifier","src":"18606:4:52"},"nativeSrc":"18606:14:52","nodeType":"YulFunctionCall","src":"18606:14:52"}],"functionName":{"name":"eq","nativeSrc":"18587:2:52","nodeType":"YulIdentifier","src":"18587:2:52"},"nativeSrc":"18587:34:52","nodeType":"YulFunctionCall","src":"18587:34:52"}],"functionName":{"name":"iszero","nativeSrc":"18580:6:52","nodeType":"YulIdentifier","src":"18580:6:52"},"nativeSrc":"18580:42:52","nodeType":"YulFunctionCall","src":"18580:42:52"},"nativeSrc":"18577:192:52","nodeType":"YulIf","src":"18577:192:52"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"i","nativeSrc":"18462:1:52","nodeType":"YulIdentifier","src":"18462:1:52"},{"name":"numTailBytes","nativeSrc":"18465:12:52","nodeType":"YulIdentifier","src":"18465:12:52"}],"functionName":{"name":"lt","nativeSrc":"18459:2:52","nodeType":"YulIdentifier","src":"18459:2:52"},"nativeSrc":"18459:19:52","nodeType":"YulFunctionCall","src":"18459:19:52"},{"name":"cb","nativeSrc":"18480:2:52","nodeType":"YulIdentifier","src":"18480:2:52"}],"functionName":{"name":"add","nativeSrc":"18455:3:52","nodeType":"YulIdentifier","src":"18455:3:52"},"nativeSrc":"18455:28:52","nodeType":"YulFunctionCall","src":"18455:28:52"},{"kind":"number","nativeSrc":"18485:1:52","nodeType":"YulLiteral","src":"18485:1:52","type":"","value":"2"}],"functionName":{"name":"eq","nativeSrc":"18452:2:52","nodeType":"YulIdentifier","src":"18452:2:52"},"nativeSrc":"18452:35:52","nodeType":"YulFunctionCall","src":"18452:35:52"},"nativeSrc":"18263:528:52","nodeType":"YulForLoop","post":{"nativeSrc":"18488:62:52","nodeType":"YulBlock","src":"18488:62:52","statements":[{"nativeSrc":"18514:14:52","nodeType":"YulAssignment","src":"18514:14:52","value":{"arguments":[{"name":"i","nativeSrc":"18523:1:52","nodeType":"YulIdentifier","src":"18523:1:52"},{"kind":"number","nativeSrc":"18526:1:52","nodeType":"YulLiteral","src":"18526:1:52","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"18519:3:52","nodeType":"YulIdentifier","src":"18519:3:52"},"nativeSrc":"18519:9:52","nodeType":"YulFunctionCall","src":"18519:9:52"},"variableNames":[{"name":"i","nativeSrc":"18514:1:52","nodeType":"YulIdentifier","src":"18514:1:52"}]}]},"pre":{"nativeSrc":"18267:184:52","nodeType":"YulBlock","src":"18267:184:52","statements":[{"nativeSrc":"18293:10:52","nodeType":"YulVariableDeclaration","src":"18293:10:52","value":{"kind":"number","nativeSrc":"18302:1:52","nodeType":"YulLiteral","src":"18302:1:52","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"18297:1:52","nodeType":"YulTypedName","src":"18297:1:52","type":""}]}]},"src":"18263:528:52"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"17974:7:52","nodeType":"YulIdentifier","src":"17974:7:52"},{"kind":"number","nativeSrc":"17983:1:52","nodeType":"YulLiteral","src":"17983:1:52","type":"","value":"0"}],"functionName":{"name":"gt","nativeSrc":"17971:2:52","nodeType":"YulIdentifier","src":"17971:2:52"},"nativeSrc":"17971:14:52","nodeType":"YulFunctionCall","src":"17971:14:52"},"nativeSrc":"17968:841:52","nodeType":"YulIf","src":"17968:841:52"}]},"nativeSrc":"16885:1938:52","nodeType":"YulCase","src":"16885:1938:52","value":{"kind":"number","nativeSrc":"16890:1:52","nodeType":"YulLiteral","src":"16890:1:52","type":"","value":"1"}},{"body":{"nativeSrc":"18844:74:52","nodeType":"YulBlock","src":"18844:74:52","statements":[{"nativeSrc":"18892:12:52","nodeType":"YulAssignment","src":"18892:12:52","value":{"kind":"number","nativeSrc":"18903:1:52","nodeType":"YulLiteral","src":"18903:1:52","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"18892:7:52","nodeType":"YulIdentifier","src":"18892:7:52"}]}]},"nativeSrc":"18836:82:52","nodeType":"YulCase","src":"18836:82:52","value":"default"}],"expression":{"arguments":[{"name":"length","nativeSrc":"16846:6:52","nodeType":"YulIdentifier","src":"16846:6:52"},{"arguments":[{"name":"_postBytes","nativeSrc":"16860:10:52","nodeType":"YulIdentifier","src":"16860:10:52"}],"functionName":{"name":"mload","nativeSrc":"16854:5:52","nodeType":"YulIdentifier","src":"16854:5:52"},"nativeSrc":"16854:17:52","nodeType":"YulFunctionCall","src":"16854:17:52"}],"functionName":{"name":"eq","nativeSrc":"16843:2:52","nodeType":"YulIdentifier","src":"16843:2:52"},"nativeSrc":"16843:29:52","nodeType":"YulFunctionCall","src":"16843:29:52"},"nativeSrc":"16836:2082:52","nodeType":"YulSwitch","src":"16836:2082:52"}]},"evmVersion":"paris","externalReferences":[{"declaration":10685,"isOffset":false,"isSlot":false,"src":"16860:10:52","valueSize":1},{"declaration":10685,"isOffset":false,"isSlot":false,"src":"17270:10:52","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"16749:9:52","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"17174:9:52","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"17223:9:52","valueSize":1},{"declaration":10691,"isOffset":false,"isSlot":false,"src":"17780:7:52","valueSize":1},{"declaration":10691,"isOffset":false,"isSlot":false,"src":"17974:7:52","valueSize":1},{"declaration":10691,"isOffset":false,"isSlot":false,"src":"18695:7:52","valueSize":1},{"declaration":10691,"isOffset":false,"isSlot":false,"src":"18892:7:52","valueSize":1}],"id":10694,"nodeType":"InlineAssembly","src":"16706:2222:52"},{"expression":{"id":10695,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10691,"src":"18945:7:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10689,"id":10696,"nodeType":"Return","src":"18938:14:52"}]},"id":10698,"implemented":true,"kind":"function","modifiers":[],"name":"equal_nonAligned","nameLocation":"16571:16:52","nodeType":"FunctionDefinition","parameters":{"id":10686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10683,"mutability":"mutable","name":"_preBytes","nameLocation":"16601:9:52","nodeType":"VariableDeclaration","scope":10698,"src":"16588:22:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10682,"name":"bytes","nodeType":"ElementaryTypeName","src":"16588:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10685,"mutability":"mutable","name":"_postBytes","nameLocation":"16625:10:52","nodeType":"VariableDeclaration","scope":10698,"src":"16612:23:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10684,"name":"bytes","nodeType":"ElementaryTypeName","src":"16612:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16587:49:52"},"returnParameters":{"id":10689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10698,"src":"16660:4:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10687,"name":"bool","nodeType":"ElementaryTypeName","src":"16660:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16659:6:52"},"scope":10716,"src":"16562:2397:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10714,"nodeType":"Block","src":"19116:2559:52","statements":[{"assignments":[10708],"declarations":[{"constant":false,"id":10708,"mutability":"mutable","name":"success","nameLocation":"19131:7:52","nodeType":"VariableDeclaration","scope":10714,"src":"19126:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10707,"name":"bool","nodeType":"ElementaryTypeName","src":"19126:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":10710,"initialValue":{"hexValue":"74727565","id":10709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19141:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"19126:19:52"},{"AST":{"nativeSrc":"19165:2479:52","nodeType":"YulBlock","src":"19165:2479:52","statements":[{"nativeSrc":"19224:34:52","nodeType":"YulVariableDeclaration","src":"19224:34:52","value":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"19243:14:52","nodeType":"YulIdentifier","src":"19243:14:52"}],"functionName":{"name":"sload","nativeSrc":"19237:5:52","nodeType":"YulIdentifier","src":"19237:5:52"},"nativeSrc":"19237:21:52","nodeType":"YulFunctionCall","src":"19237:21:52"},"variables":[{"name":"fslot","nativeSrc":"19228:5:52","nodeType":"YulTypedName","src":"19228:5:52","type":""}]},{"nativeSrc":"19349:76:52","nodeType":"YulVariableDeclaration","src":"19349:76:52","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"19372:5:52","nodeType":"YulIdentifier","src":"19372:5:52"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19387:5:52","nodeType":"YulLiteral","src":"19387:5:52","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"19405:5:52","nodeType":"YulIdentifier","src":"19405:5:52"},{"kind":"number","nativeSrc":"19412:1:52","nodeType":"YulLiteral","src":"19412:1:52","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"19401:3:52","nodeType":"YulIdentifier","src":"19401:3:52"},"nativeSrc":"19401:13:52","nodeType":"YulFunctionCall","src":"19401:13:52"}],"functionName":{"name":"iszero","nativeSrc":"19394:6:52","nodeType":"YulIdentifier","src":"19394:6:52"},"nativeSrc":"19394:21:52","nodeType":"YulFunctionCall","src":"19394:21:52"}],"functionName":{"name":"mul","nativeSrc":"19383:3:52","nodeType":"YulIdentifier","src":"19383:3:52"},"nativeSrc":"19383:33:52","nodeType":"YulFunctionCall","src":"19383:33:52"},{"kind":"number","nativeSrc":"19418:1:52","nodeType":"YulLiteral","src":"19418:1:52","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"19379:3:52","nodeType":"YulIdentifier","src":"19379:3:52"},"nativeSrc":"19379:41:52","nodeType":"YulFunctionCall","src":"19379:41:52"}],"functionName":{"name":"and","nativeSrc":"19368:3:52","nodeType":"YulIdentifier","src":"19368:3:52"},"nativeSrc":"19368:53:52","nodeType":"YulFunctionCall","src":"19368:53:52"},{"kind":"number","nativeSrc":"19423:1:52","nodeType":"YulLiteral","src":"19423:1:52","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"19364:3:52","nodeType":"YulIdentifier","src":"19364:3:52"},"nativeSrc":"19364:61:52","nodeType":"YulFunctionCall","src":"19364:61:52"},"variables":[{"name":"slength","nativeSrc":"19353:7:52","nodeType":"YulTypedName","src":"19353:7:52","type":""}]},{"nativeSrc":"19438:32:52","nodeType":"YulVariableDeclaration","src":"19438:32:52","value":{"arguments":[{"name":"_postBytes","nativeSrc":"19459:10:52","nodeType":"YulIdentifier","src":"19459:10:52"}],"functionName":{"name":"mload","nativeSrc":"19453:5:52","nodeType":"YulIdentifier","src":"19453:5:52"},"nativeSrc":"19453:17:52","nodeType":"YulFunctionCall","src":"19453:17:52"},"variables":[{"name":"mlength","nativeSrc":"19442:7:52","nodeType":"YulTypedName","src":"19442:7:52","type":""}]},{"cases":[{"body":{"nativeSrc":"19594:1945:52","nodeType":"YulBlock","src":"19594:1945:52","statements":[{"body":{"nativeSrc":"19905:1620:52","nodeType":"YulBlock","src":"19905:1620:52","statements":[{"cases":[{"body":{"nativeSrc":"19977:340:52","nodeType":"YulBlock","src":"19977:340:52","statements":[{"nativeSrc":"20070:38:52","nodeType":"YulAssignment","src":"20070:38:52","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"20087:5:52","nodeType":"YulIdentifier","src":"20087:5:52"},{"kind":"number","nativeSrc":"20094:5:52","nodeType":"YulLiteral","src":"20094:5:52","type":"","value":"0x100"}],"functionName":{"name":"div","nativeSrc":"20083:3:52","nodeType":"YulIdentifier","src":"20083:3:52"},"nativeSrc":"20083:17:52","nodeType":"YulFunctionCall","src":"20083:17:52"},{"kind":"number","nativeSrc":"20102:5:52","nodeType":"YulLiteral","src":"20102:5:52","type":"","value":"0x100"}],"functionName":{"name":"mul","nativeSrc":"20079:3:52","nodeType":"YulIdentifier","src":"20079:3:52"},"nativeSrc":"20079:29:52","nodeType":"YulFunctionCall","src":"20079:29:52"},"variableNames":[{"name":"fslot","nativeSrc":"20070:5:52","nodeType":"YulIdentifier","src":"20070:5:52"}]},{"body":{"nativeSrc":"20185:110:52","nodeType":"YulBlock","src":"20185:110:52","statements":[{"nativeSrc":"20257:12:52","nodeType":"YulAssignment","src":"20257:12:52","value":{"kind":"number","nativeSrc":"20268:1:52","nodeType":"YulLiteral","src":"20268:1:52","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"20257:7:52","nodeType":"YulIdentifier","src":"20257:7:52"}]}]},"condition":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"20147:5:52","nodeType":"YulIdentifier","src":"20147:5:52"},{"arguments":[{"arguments":[{"name":"_postBytes","nativeSrc":"20164:10:52","nodeType":"YulIdentifier","src":"20164:10:52"},{"kind":"number","nativeSrc":"20176:4:52","nodeType":"YulLiteral","src":"20176:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20160:3:52","nodeType":"YulIdentifier","src":"20160:3:52"},"nativeSrc":"20160:21:52","nodeType":"YulFunctionCall","src":"20160:21:52"}],"functionName":{"name":"mload","nativeSrc":"20154:5:52","nodeType":"YulIdentifier","src":"20154:5:52"},"nativeSrc":"20154:28:52","nodeType":"YulFunctionCall","src":"20154:28:52"}],"functionName":{"name":"eq","nativeSrc":"20144:2:52","nodeType":"YulIdentifier","src":"20144:2:52"},"nativeSrc":"20144:39:52","nodeType":"YulFunctionCall","src":"20144:39:52"}],"functionName":{"name":"iszero","nativeSrc":"20137:6:52","nodeType":"YulIdentifier","src":"20137:6:52"},"nativeSrc":"20137:47:52","nodeType":"YulFunctionCall","src":"20137:47:52"},"nativeSrc":"20134:161:52","nodeType":"YulIf","src":"20134:161:52"}]},"nativeSrc":"19970:347:52","nodeType":"YulCase","src":"19970:347:52","value":{"kind":"number","nativeSrc":"19975:1:52","nodeType":"YulLiteral","src":"19975:1:52","type":"","value":"1"}},{"body":{"nativeSrc":"20346:1161:52","nodeType":"YulBlock","src":"20346:1161:52","statements":[{"nativeSrc":"20615:11:52","nodeType":"YulVariableDeclaration","src":"20615:11:52","value":{"kind":"number","nativeSrc":"20625:1:52","nodeType":"YulLiteral","src":"20625:1:52","type":"","value":"1"},"variables":[{"name":"cb","nativeSrc":"20619:2:52","nodeType":"YulTypedName","src":"20619:2:52","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20739:3:52","nodeType":"YulLiteral","src":"20739:3:52","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"20744:14:52","nodeType":"YulIdentifier","src":"20744:14:52"}],"functionName":{"name":"mstore","nativeSrc":"20732:6:52","nodeType":"YulIdentifier","src":"20732:6:52"},"nativeSrc":"20732:27:52","nodeType":"YulFunctionCall","src":"20732:27:52"},"nativeSrc":"20732:27:52","nodeType":"YulExpressionStatement","src":"20732:27:52"},{"nativeSrc":"20784:30:52","nodeType":"YulVariableDeclaration","src":"20784:30:52","value":{"arguments":[{"kind":"number","nativeSrc":"20804:3:52","nodeType":"YulLiteral","src":"20804:3:52","type":"","value":"0x0"},{"kind":"number","nativeSrc":"20809:4:52","nodeType":"YulLiteral","src":"20809:4:52","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"20794:9:52","nodeType":"YulIdentifier","src":"20794:9:52"},"nativeSrc":"20794:20:52","nodeType":"YulFunctionCall","src":"20794:20:52"},"variables":[{"name":"sc","nativeSrc":"20788:2:52","nodeType":"YulTypedName","src":"20788:2:52","type":""}]},{"nativeSrc":"20840:31:52","nodeType":"YulVariableDeclaration","src":"20840:31:52","value":{"arguments":[{"name":"_postBytes","nativeSrc":"20854:10:52","nodeType":"YulIdentifier","src":"20854:10:52"},{"kind":"number","nativeSrc":"20866:4:52","nodeType":"YulLiteral","src":"20866:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20850:3:52","nodeType":"YulIdentifier","src":"20850:3:52"},"nativeSrc":"20850:21:52","nodeType":"YulFunctionCall","src":"20850:21:52"},"variables":[{"name":"mc","nativeSrc":"20844:2:52","nodeType":"YulTypedName","src":"20844:2:52","type":""}]},{"nativeSrc":"20896:27:52","nodeType":"YulVariableDeclaration","src":"20896:27:52","value":{"arguments":[{"name":"mc","nativeSrc":"20911:2:52","nodeType":"YulIdentifier","src":"20911:2:52"},{"name":"mlength","nativeSrc":"20915:7:52","nodeType":"YulIdentifier","src":"20915:7:52"}],"functionName":{"name":"add","nativeSrc":"20907:3:52","nodeType":"YulIdentifier","src":"20907:3:52"},"nativeSrc":"20907:16:52","nodeType":"YulFunctionCall","src":"20907:16:52"},"variables":[{"name":"end","nativeSrc":"20900:3:52","nodeType":"YulTypedName","src":"20900:3:52","type":""}]},{"body":{"nativeSrc":"21231:254:52","nodeType":"YulBlock","src":"21231:254:52","statements":[{"body":{"nativeSrc":"21297:162:52","nodeType":"YulBlock","src":"21297:162:52","statements":[{"nativeSrc":"21377:12:52","nodeType":"YulAssignment","src":"21377:12:52","value":{"kind":"number","nativeSrc":"21388:1:52","nodeType":"YulLiteral","src":"21388:1:52","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"21377:7:52","nodeType":"YulIdentifier","src":"21377:7:52"}]},{"nativeSrc":"21422:7:52","nodeType":"YulAssignment","src":"21422:7:52","value":{"kind":"number","nativeSrc":"21428:1:52","nodeType":"YulLiteral","src":"21428:1:52","type":"","value":"0"},"variableNames":[{"name":"cb","nativeSrc":"21422:2:52","nodeType":"YulIdentifier","src":"21422:2:52"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"sc","nativeSrc":"21280:2:52","nodeType":"YulIdentifier","src":"21280:2:52"}],"functionName":{"name":"sload","nativeSrc":"21274:5:52","nodeType":"YulIdentifier","src":"21274:5:52"},"nativeSrc":"21274:9:52","nodeType":"YulFunctionCall","src":"21274:9:52"},{"arguments":[{"name":"mc","nativeSrc":"21291:2:52","nodeType":"YulIdentifier","src":"21291:2:52"}],"functionName":{"name":"mload","nativeSrc":"21285:5:52","nodeType":"YulIdentifier","src":"21285:5:52"},"nativeSrc":"21285:9:52","nodeType":"YulFunctionCall","src":"21285:9:52"}],"functionName":{"name":"eq","nativeSrc":"21271:2:52","nodeType":"YulIdentifier","src":"21271:2:52"},"nativeSrc":"21271:24:52","nodeType":"YulFunctionCall","src":"21271:24:52"}],"functionName":{"name":"iszero","nativeSrc":"21264:6:52","nodeType":"YulIdentifier","src":"21264:6:52"},"nativeSrc":"21264:32:52","nodeType":"YulFunctionCall","src":"21264:32:52"},"nativeSrc":"21261:198:52","nodeType":"YulIf","src":"21261:198:52"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"21092:2:52","nodeType":"YulIdentifier","src":"21092:2:52"},{"name":"end","nativeSrc":"21096:3:52","nodeType":"YulIdentifier","src":"21096:3:52"}],"functionName":{"name":"lt","nativeSrc":"21089:2:52","nodeType":"YulIdentifier","src":"21089:2:52"},"nativeSrc":"21089:11:52","nodeType":"YulFunctionCall","src":"21089:11:52"},{"name":"cb","nativeSrc":"21102:2:52","nodeType":"YulIdentifier","src":"21102:2:52"}],"functionName":{"name":"add","nativeSrc":"21085:3:52","nodeType":"YulIdentifier","src":"21085:3:52"},"nativeSrc":"21085:20:52","nodeType":"YulFunctionCall","src":"21085:20:52"},{"kind":"number","nativeSrc":"21107:1:52","nodeType":"YulLiteral","src":"21107:1:52","type":"","value":"2"}],"functionName":{"name":"eq","nativeSrc":"21082:2:52","nodeType":"YulIdentifier","src":"21082:2:52"},"nativeSrc":"21082:27:52","nodeType":"YulFunctionCall","src":"21082:27:52"},"nativeSrc":"21075:410:52","nodeType":"YulForLoop","post":{"nativeSrc":"21110:120:52","nodeType":"YulBlock","src":"21110:120:52","statements":[{"nativeSrc":"21140:16:52","nodeType":"YulAssignment","src":"21140:16:52","value":{"arguments":[{"name":"sc","nativeSrc":"21150:2:52","nodeType":"YulIdentifier","src":"21150:2:52"},{"kind":"number","nativeSrc":"21154:1:52","nodeType":"YulLiteral","src":"21154:1:52","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"21146:3:52","nodeType":"YulIdentifier","src":"21146:3:52"},"nativeSrc":"21146:10:52","nodeType":"YulFunctionCall","src":"21146:10:52"},"variableNames":[{"name":"sc","nativeSrc":"21140:2:52","nodeType":"YulIdentifier","src":"21140:2:52"}]},{"nativeSrc":"21185:19:52","nodeType":"YulAssignment","src":"21185:19:52","value":{"arguments":[{"name":"mc","nativeSrc":"21195:2:52","nodeType":"YulIdentifier","src":"21195:2:52"},{"kind":"number","nativeSrc":"21199:4:52","nodeType":"YulLiteral","src":"21199:4:52","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21191:3:52","nodeType":"YulIdentifier","src":"21191:3:52"},"nativeSrc":"21191:13:52","nodeType":"YulFunctionCall","src":"21191:13:52"},"variableNames":[{"name":"mc","nativeSrc":"21185:2:52","nodeType":"YulIdentifier","src":"21185:2:52"}]}]},"pre":{"nativeSrc":"21079:2:52","nodeType":"YulBlock","src":"21079:2:52","statements":[]},"src":"21075:410:52"}]},"nativeSrc":"20338:1169:52","nodeType":"YulCase","src":"20338:1169:52","value":"default"}],"expression":{"arguments":[{"name":"slength","nativeSrc":"19937:7:52","nodeType":"YulIdentifier","src":"19937:7:52"},{"kind":"number","nativeSrc":"19946:2:52","nodeType":"YulLiteral","src":"19946:2:52","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"19934:2:52","nodeType":"YulIdentifier","src":"19934:2:52"},"nativeSrc":"19934:15:52","nodeType":"YulFunctionCall","src":"19934:15:52"},"nativeSrc":"19927:1580:52","nodeType":"YulSwitch","src":"19927:1580:52"}]},"condition":{"arguments":[{"arguments":[{"name":"slength","nativeSrc":"19895:7:52","nodeType":"YulIdentifier","src":"19895:7:52"}],"functionName":{"name":"iszero","nativeSrc":"19888:6:52","nodeType":"YulIdentifier","src":"19888:6:52"},"nativeSrc":"19888:15:52","nodeType":"YulFunctionCall","src":"19888:15:52"}],"functionName":{"name":"iszero","nativeSrc":"19881:6:52","nodeType":"YulIdentifier","src":"19881:6:52"},"nativeSrc":"19881:23:52","nodeType":"YulFunctionCall","src":"19881:23:52"},"nativeSrc":"19878:1647:52","nodeType":"YulIf","src":"19878:1647:52"}]},"nativeSrc":"19587:1952:52","nodeType":"YulCase","src":"19587:1952:52","value":{"kind":"number","nativeSrc":"19592:1:52","nodeType":"YulLiteral","src":"19592:1:52","type":"","value":"1"}},{"body":{"nativeSrc":"21560:74:52","nodeType":"YulBlock","src":"21560:74:52","statements":[{"nativeSrc":"21608:12:52","nodeType":"YulAssignment","src":"21608:12:52","value":{"kind":"number","nativeSrc":"21619:1:52","nodeType":"YulLiteral","src":"21619:1:52","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"21608:7:52","nodeType":"YulIdentifier","src":"21608:7:52"}]}]},"nativeSrc":"21552:82:52","nodeType":"YulCase","src":"21552:82:52","value":"default"}],"expression":{"arguments":[{"name":"slength","nativeSrc":"19557:7:52","nodeType":"YulIdentifier","src":"19557:7:52"},{"name":"mlength","nativeSrc":"19566:7:52","nodeType":"YulIdentifier","src":"19566:7:52"}],"functionName":{"name":"eq","nativeSrc":"19554:2:52","nodeType":"YulIdentifier","src":"19554:2:52"},"nativeSrc":"19554:20:52","nodeType":"YulFunctionCall","src":"19554:20:52"},"nativeSrc":"19547:2087:52","nodeType":"YulSwitch","src":"19547:2087:52"}]},"evmVersion":"paris","externalReferences":[{"declaration":10702,"isOffset":false,"isSlot":false,"src":"19459:10:52","valueSize":1},{"declaration":10702,"isOffset":false,"isSlot":false,"src":"20164:10:52","valueSize":1},{"declaration":10702,"isOffset":false,"isSlot":false,"src":"20854:10:52","valueSize":1},{"declaration":10700,"isOffset":false,"isSlot":true,"src":"19243:14:52","suffix":"slot","valueSize":1},{"declaration":10700,"isOffset":false,"isSlot":true,"src":"20744:14:52","suffix":"slot","valueSize":1},{"declaration":10708,"isOffset":false,"isSlot":false,"src":"20257:7:52","valueSize":1},{"declaration":10708,"isOffset":false,"isSlot":false,"src":"21377:7:52","valueSize":1},{"declaration":10708,"isOffset":false,"isSlot":false,"src":"21608:7:52","valueSize":1}],"id":10711,"nodeType":"InlineAssembly","src":"19156:2488:52"},{"expression":{"id":10712,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10708,"src":"21661:7:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10706,"id":10713,"nodeType":"Return","src":"21654:14:52"}]},"id":10715,"implemented":true,"kind":"function","modifiers":[],"name":"equalStorage","nameLocation":"18974:12:52","nodeType":"FunctionDefinition","parameters":{"id":10703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10700,"mutability":"mutable","name":"_preBytes","nameLocation":"19010:9:52","nodeType":"VariableDeclaration","scope":10715,"src":"18996:23:52","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":10699,"name":"bytes","nodeType":"ElementaryTypeName","src":"18996:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10702,"mutability":"mutable","name":"_postBytes","nameLocation":"19042:10:52","nodeType":"VariableDeclaration","scope":10715,"src":"19029:23:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10701,"name":"bytes","nodeType":"ElementaryTypeName","src":"19029:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18986:72:52"},"returnParameters":{"id":10706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10715,"src":"19106:4:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10704,"name":"bool","nodeType":"ElementaryTypeName","src":"19106:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19105:6:52"},"scope":10716,"src":"18965:2710:52","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":10717,"src":"370:21307:52","usedErrors":[],"usedEvents":[]}],"src":"336:21342:52"},"id":52}},"contracts":{"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"DVNOptions":{"abi":[{"inputs":[],"name":"DVN_InvalidDVNIdx","type":"error"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"name":"DVN_InvalidDVNOptions","type":"error"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e53dfb044826513d808ed804ea23b198e174aff63d6855b9972cb9d192b02ea964736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 RETURNDATASIZE 0xFB DIV BASEFEE 0x26 MLOAD RETURNDATASIZE DUP1 DUP15 0xD8 DIV 0xEA 0x23 0xB1 SWAP9 0xE1 PUSH21 0xAFF63D6855B9972CB9D192B02EA964736F6C634300 ADDMOD AND STOP CALLER ","sourceMap":"345:6975:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;345:6975:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e53dfb044826513d808ed804ea23b198e174aff63d6855b9972cb9d192b02ea964736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 RETURNDATASIZE 0xFB DIV BASEFEE 0x26 MLOAD RETURNDATASIZE DUP1 DUP15 0xD8 DIV 0xEA 0x23 0xB1 SWAP9 0xE1 PUSH21 0xAFF63D6855B9972CB9D192B02EA964736F6C634300 ADDMOD AND STOP CALLER ","sourceMap":"345:6975:0:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"_insertDVNOptions(bytes memory[] memory,uint8[] memory,uint8,bytes memory)":"infinite","getNumDVNs(bytes memory)":"infinite","groupDVNOptionsByIdx(bytes memory)":"infinite","nextDVNOption(bytes calldata,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DVN_InvalidDVNIdx\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"DVN_InvalidDVNOptions\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":\"DVNOptions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\n\\nimport { BitMap256 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\\\";\\nimport { CalldataBytesLib } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary DVNOptions {\\n using CalldataBytesLib for bytes;\\n using BytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 2;\\n uint8 internal constant OPTION_TYPE_PRECRIME = 1;\\n\\n error DVN_InvalidDVNIdx();\\n error DVN_InvalidDVNOptions(uint256 cursor);\\n\\n /// @dev group dvn options by its idx\\n /// @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\\n /// dvn_option = [option_size][dvn_idx][option_type][option]\\n /// option_size = len(dvn_idx) + len(option_type) + len(option)\\n /// dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @return dvnOptions the grouped options, still share the same format of _options\\n /// @return dvnIndices the dvn indices\\n function groupDVNOptionsByIdx(\\n bytes memory _options\\n ) internal pure returns (bytes[] memory dvnOptions, uint8[] memory dvnIndices) {\\n if (_options.length == 0) return (dvnOptions, dvnIndices);\\n\\n uint8 numDVNs = getNumDVNs(_options);\\n\\n // if there is only 1 dvn, we can just return the whole options\\n if (numDVNs == 1) {\\n dvnOptions = new bytes[](1);\\n dvnOptions[0] = _options;\\n\\n dvnIndices = new uint8[](1);\\n dvnIndices[0] = _options.toUint8(3); // dvn idx\\n return (dvnOptions, dvnIndices);\\n }\\n\\n // otherwise, we need to group the options by dvn_idx\\n dvnIndices = new uint8[](numDVNs);\\n dvnOptions = new bytes[](numDVNs);\\n unchecked {\\n uint256 cursor = 0;\\n uint256 start = 0;\\n uint8 lastDVNIdx = 255; // 255 is an invalid dvn_idx\\n\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n // optionLength asserted in getNumDVNs (skip check)\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n\\n // dvnIdx asserted in getNumDVNs (skip check)\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // dvnIdx must equal to the lastDVNIdx for the first option\\n // so it is always skipped in the first option\\n // this operation slices out options whenever the scan finds a different lastDVNIdx\\n if (lastDVNIdx == 255) {\\n lastDVNIdx = dvnIdx;\\n } else if (dvnIdx != lastDVNIdx) {\\n uint256 len = cursor - start - 3; // 3 is for worker_id and option_length\\n bytes memory opt = _options.slice(start, len);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, opt);\\n\\n // reset the start and lastDVNIdx\\n start += len;\\n lastDVNIdx = dvnIdx;\\n }\\n\\n cursor += optionLength;\\n }\\n\\n // skip check the cursor here because the cursor is asserted in getNumDVNs\\n // if we have reached the end of the options, we need to process the last dvn\\n uint256 size = cursor - start;\\n bytes memory op = _options.slice(start, size);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, op);\\n\\n // revert dvnIndices to start from 0\\n for (uint8 i = 0; i < numDVNs; ++i) {\\n --dvnIndices[i];\\n }\\n }\\n }\\n\\n function _insertDVNOptions(\\n bytes[] memory _dvnOptions,\\n uint8[] memory _dvnIndices,\\n uint8 _dvnIdx,\\n bytes memory _newOptions\\n ) internal pure {\\n // dvnIdx starts from 0 but default value of dvnIndices is 0,\\n // so we tell if the slot is empty by adding 1 to dvnIdx\\n if (_dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n uint8 dvnIdxAdj = _dvnIdx + 1;\\n\\n for (uint256 j = 0; j < _dvnIndices.length; ++j) {\\n uint8 index = _dvnIndices[j];\\n if (dvnIdxAdj == index) {\\n _dvnOptions[j] = abi.encodePacked(_dvnOptions[j], _newOptions);\\n break;\\n } else if (index == 0) {\\n // empty slot, that means it is the first time we see this dvn\\n _dvnIndices[j] = dvnIdxAdj;\\n _dvnOptions[j] = _newOptions;\\n break;\\n }\\n }\\n }\\n\\n /// @dev get the number of unique dvns\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n function getNumDVNs(bytes memory _options) internal pure returns (uint8 numDVNs) {\\n uint256 cursor = 0;\\n BitMap256 bitmap;\\n\\n // find number of unique dvn_idx\\n unchecked {\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n if (optionLength < 2) revert DVN_InvalidDVNOptions(cursor); // at least 1 byte for dvn_idx and 1 byte for option_type\\n\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // if dvnIdx is not set, increment numDVNs\\n // max num of dvns is 255, 255 is an invalid dvn_idx\\n // The order of the dvnIdx is not required to be sequential, as enforcing the order may weaken\\n // the composability of the options. e.g. if we refrain from enforcing the order, an OApp that has\\n // already enforced certain options can append additional options to the end of the enforced\\n // ones without restrictions.\\n if (dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n if (!bitmap.get(dvnIdx)) {\\n ++numDVNs;\\n bitmap = bitmap.set(dvnIdx);\\n }\\n\\n cursor += optionLength;\\n }\\n }\\n if (cursor != _options.length) revert DVN_InvalidDVNOptions(cursor);\\n }\\n\\n /// @dev decode the next dvn option from _options starting from the specified cursor\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n /// @param _cursor the cursor to start decoding\\n /// @return optionType the type of the option\\n /// @return option the option\\n /// @return cursor the cursor to start decoding the next option\\n function nextDVNOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor + 1); // skip dvn_idx\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 2; // skip option type and dvn_idx\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n}\\n\",\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n return uint8(_bytes[_start]);\\n }\\n\\n function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n unchecked {\\n uint256 end = _start + 2;\\n return uint16(bytes2(_bytes[_start:end]));\\n }\\n }\\n\\n function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n unchecked {\\n uint256 end = _start + 4;\\n return uint32(bytes4(_bytes[_start:end]));\\n }\\n }\\n\\n function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n unchecked {\\n uint256 end = _start + 8;\\n return uint64(bytes8(_bytes[_start:end]));\\n }\\n }\\n\\n function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n unchecked {\\n uint256 end = _start + 16;\\n return uint128(bytes16(_bytes[_start:end]));\\n }\\n }\\n\\n function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n unchecked {\\n uint256 end = _start + 32;\\n return uint256(bytes32(_bytes[_start:end]));\\n }\\n }\\n\\n function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n unchecked {\\n uint256 end = _start + 20;\\n return address(bytes20(_bytes[_start:end]));\\n }\\n }\\n\\n function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n unchecked {\\n uint256 end = _start + 32;\\n return bytes32(_bytes[_start:end]);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\\npragma solidity ^0.8.20;\\n\\ntype BitMap256 is uint256;\\n\\nusing BitMaps for BitMap256 global;\\n\\nlibrary BitMaps {\\n /**\\n * @dev Returns whether the bit at `index` is set.\\n */\\n function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\\n uint256 mask = 1 << index;\\n return BitMap256.unwrap(bitmap) & mask != 0;\\n }\\n\\n /**\\n * @dev Sets the bit at `index`.\\n */\\n function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\\n uint256 mask = 1 << index;\\n return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\\n }\\n}\\n\",\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\"},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equal_nonAligned(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let endMinusWord := add(_preBytes, length)\\n let mc := add(_preBytes, 0x20)\\n let cc := add(_postBytes, 0x20)\\n\\n for {\\n // the next line is the loop condition:\\n // while(uint256(mc < endWord) + cb == 2)\\n } eq(add(lt(mc, endMinusWord), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n\\n // Only if still successful\\n // For <1 word tail bytes\\n if gt(success, 0) {\\n // Get the remainder of length/32\\n // length % 32 = AND(length, 32 - 1)\\n let numTailBytes := and(length, 0x1f)\\n let mcRem := mload(mc)\\n let ccRem := mload(cc)\\n for {\\n let i := 0\\n // the next line is the loop condition:\\n // while(uint256(i < numTailBytes) + cb == 2)\\n } eq(add(lt(i, numTailBytes), cb), 2) {\\n i := add(i, 1)\\n } {\\n if iszero(eq(byte(i, mcRem), byte(i, ccRem))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"OApp":{"abi":[{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[],"name":"LzTokenUnavailable","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"name":"NotEnoughNative","type":"error"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"OnlyEndpoint","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality.","errors":{"OwnableInvalidOwner(address)":[{"details":"The owner is not a valid owner account. (eg. `address(0)`)"}],"OwnableUnauthorizedAccount(address)":[{"details":"The caller account is not authorized to perform an operation."}]},"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"constructor":{"details":"Constructor to initialize the OApp with the provided endpoint and owner.","params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_endpoint":"The address of the LOCAL LayerZero endpoint."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"OApp","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","endpoint()":"5e280f11","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"constructor\":{\"details\":\"Constructor to initialize the OApp with the provided endpoint and owner.\",\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_endpoint\":\"The address of the LOCAL LayerZero endpoint.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OApp\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":\"OApp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the 'MessagingFee' and 'MessagingReceipt' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppSender, MessagingFee, MessagingReceipt } from \\\"./OAppSender.sol\\\";\\n// @dev Import the 'Origin' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppReceiver, Origin } from \\\"./OAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OApp\\n * @dev Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality.\\n */\\nabstract contract OApp is OAppSender, OAppReceiver {\\n /**\\n * @dev Constructor to initialize the OApp with the provided endpoint and owner.\\n * @param _endpoint The address of the LOCAL LayerZero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n */\\n constructor(address _endpoint, address _delegate) OAppCore(_endpoint, _delegate) {}\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol implementation.\\n * @return receiverVersion The version of the OAppReceiver.sol implementation.\\n */\\n function oAppVersion()\\n public\\n pure\\n virtual\\n override(OAppSender, OAppReceiver)\\n returns (uint64 senderVersion, uint64 receiverVersion)\\n {\\n return (SENDER_VERSION, RECEIVER_VERSION);\\n }\\n}\\n\",\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"./interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCore is IOAppCore, Ownable {\\n // The LayerZero endpoint associated with the given OApp\\n ILayerZeroEndpointV2 public immutable endpoint;\\n\\n // Mapping to store peers associated with corresponding endpoints\\n mapping(uint32 eid => bytes32 peer) public peers;\\n\\n /**\\n * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n *\\n * @dev The delegate typically should be set as the owner of the contract.\\n */\\n constructor(address _endpoint, address _delegate) {\\n endpoint = ILayerZeroEndpointV2(_endpoint);\\n\\n if (_delegate == address(0)) revert InvalidDelegate();\\n endpoint.setDelegate(_delegate);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n _setPeer(_eid, _peer);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function _setPeer(uint32 _eid, bytes32 _peer) internal virtual {\\n peers[_eid] = _peer;\\n emit PeerSet(_eid, _peer);\\n }\\n\\n /**\\n * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n * ie. the peer is set to bytes32(0).\\n * @param _eid The endpoint ID.\\n * @return peer The address of the peer associated with the specified endpoint.\\n */\\n function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n bytes32 peer = peers[_eid];\\n if (peer == bytes32(0)) revert NoPeer(_eid);\\n return peer;\\n }\\n\\n /**\\n * @notice Sets the delegate address for the OApp.\\n * @param _delegate The address of the delegate to be set.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n */\\n function setDelegate(address _delegate) public onlyOwner {\\n endpoint.setDelegate(_delegate);\\n }\\n}\\n\",\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { IOAppReceiver, Origin } from \\\"./interfaces/IOAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppReceiver\\n * @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\\n */\\nabstract contract OAppReceiver is IOAppReceiver, OAppCore {\\n // Custom error message for when the caller is not the registered endpoint/\\n error OnlyEndpoint(address addr);\\n\\n // @dev The version of the OAppReceiver implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant RECEIVER_VERSION = 2;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\\n * ie. this is a RECEIVE only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (0, RECEIVER_VERSION);\\n }\\n\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @dev _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @dev _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata /*_origin*/,\\n bytes calldata /*_message*/,\\n address _sender\\n ) public view virtual returns (bool) {\\n return _sender == address(this);\\n }\\n\\n /**\\n * @notice Checks if the path initialization is allowed based on the provided origin.\\n * @param origin The origin information containing the source endpoint and sender address.\\n * @return Whether the path has been initialized.\\n *\\n * @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\\n * @dev This defaults to assuming if a peer has been set, its initialized.\\n * Can be overridden by the OApp if there is other logic to determine this.\\n */\\n function allowInitializePath(Origin calldata origin) public view virtual returns (bool) {\\n return peers[origin.srcEid] == origin.sender;\\n }\\n\\n /**\\n * @notice Retrieves the next nonce for a given source endpoint and sender address.\\n * @dev _srcEid The source endpoint ID.\\n * @dev _sender The sender address.\\n * @return nonce The next nonce.\\n *\\n * @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\\n * @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\\n * @dev This is also enforced by the OApp.\\n * @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\\n */\\n function nextNonce(uint32 /*_srcEid*/, bytes32 /*_sender*/) public view virtual returns (uint64 nonce) {\\n return 0;\\n }\\n\\n /**\\n * @dev Entry point for receiving messages or packets from the endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier for the received LayerZero message.\\n * @param _message The payload of the received message.\\n * @param _executor The address of the executor for the received message.\\n * @param _extraData Additional arbitrary data provided by the corresponding executor.\\n *\\n * @dev Entry point for receiving msg/packet from the LayerZero endpoint.\\n */\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) public payable virtual {\\n // Ensures that only the endpoint can attempt to lzReceive() messages to this OApp.\\n if (address(endpoint) != msg.sender) revert OnlyEndpoint(msg.sender);\\n\\n // Ensure that the sender matches the expected peer for the source endpoint.\\n if (_getPeerOrRevert(_origin.srcEid) != _origin.sender) revert OnlyPeer(_origin.srcEid, _origin.sender);\\n\\n // Call the internal OApp implementation of lzReceive.\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation.\\n */\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n}\\n\",\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppSender\\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\\n */\\nabstract contract OAppSender is OAppCore {\\n using SafeERC20 for IERC20;\\n\\n // Custom error messages\\n error NotEnoughNative(uint256 msgValue);\\n error LzTokenUnavailable();\\n\\n // @dev The version of the OAppSender implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant SENDER_VERSION = 1;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\\n * ie. this is a SEND only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (SENDER_VERSION, 0);\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\\n * @return fee The calculated MessagingFee for the message.\\n * - nativeFee: The native fee for the message.\\n * - lzTokenFee: The LZ token fee for the message.\\n */\\n function _quote(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n bool _payInLzToken\\n ) internal view virtual returns (MessagingFee memory fee) {\\n return\\n endpoint.quote(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\\n address(this)\\n );\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _fee The calculated LayerZero fee for the message.\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\\n * @return receipt The receipt for the sent message.\\n * - guid: The unique identifier for the sent message.\\n * - nonce: The nonce of the sent message.\\n * - fee: The LayerZero fee incurred for the message.\\n */\\n function _lzSend(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n MessagingFee memory _fee,\\n address _refundAddress\\n ) internal virtual returns (MessagingReceipt memory receipt) {\\n // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\\n uint256 messageValue = _payNative(_fee.nativeFee);\\n if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\\n\\n return\\n // solhint-disable-next-line check-send-result\\n endpoint.send{ value: messageValue }(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\\n _refundAddress\\n );\\n }\\n\\n /**\\n * @dev Internal function to pay the native fee associated with the message.\\n * @param _nativeFee The native fee to be paid.\\n * @return nativeFee The amount of native currency paid.\\n *\\n * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\\n * this will need to be overridden because msg.value would contain multiple lzFees.\\n * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\\n * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\\n * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\\n */\\n function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\\n if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\\n return _nativeFee;\\n }\\n\\n /**\\n * @dev Internal function to pay the LZ token fee associated with the message.\\n * @param _lzTokenFee The LZ token fee to be paid.\\n *\\n * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\\n * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\\n */\\n function _payLzToken(uint256 _lzTokenFee) internal virtual {\\n // @dev Cannot cache the token because it is not immutable in the endpoint.\\n address lzToken = endpoint.lzToken();\\n if (lzToken == address(0)) revert LzTokenUnavailable();\\n\\n // Pay LZ token fee by sending tokens to the endpoint.\\n IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\\n }\\n}\\n\",\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n // Custom error messages\\n error OnlyPeer(uint32 eid, bytes32 sender);\\n error NoPeer(uint32 eid);\\n error InvalidEndpointCall();\\n error InvalidDelegate();\\n\\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n event PeerSet(uint32 eid, bytes32 peer);\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n */\\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n /**\\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n * @return iEndpoint The LayerZero endpoint as an interface.\\n */\\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n /**\\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n */\\n function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n /**\\n * @notice Sets the delegate address for the OApp Core.\\n * @param _delegate The address of the delegate to be set.\\n */\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroReceiver, Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\\\";\\n\\ninterface IOAppReceiver is ILayerZeroReceiver {\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata _origin,\\n bytes calldata _message,\\n address _sender\\n ) external view returns (bool isSender);\\n}\\n\",\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the value of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the value of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\\n * allowance mechanism. `value` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 value) external returns (bool);\\n}\\n\",\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n * doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n * token.safeTransferFrom(msg.sender, address(this), value);\\n * ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n /**\\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n * given ``owner``'s signed approval.\\n *\\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n * ordering also apply here.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `deadline` must be a timestamp in the future.\\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n * over the EIP712-formatted function arguments.\\n * - the signature must use ``owner``'s current nonce (see {nonces}).\\n *\\n * For more information on the signature format, see the\\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n * section].\\n *\\n * CAUTION: See Security Considerations above.\\n */\\n function permit(\\n address owner,\\n address spender,\\n uint256 value,\\n uint256 deadline,\\n uint8 v,\\n bytes32 r,\\n bytes32 s\\n ) external;\\n\\n /**\\n * @dev Returns the current nonce for `owner`. This value must be\\n * included whenever a signature is generated for {permit}.\\n *\\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n * prevents a signature from being used multiple times.\\n */\\n function nonces(address owner) external view returns (uint256);\\n\\n /**\\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n */\\n // solhint-disable-next-line func-name-mixedcase\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"../IERC20.sol\\\";\\nimport {IERC20Permit} from \\\"../extensions/IERC20Permit.sol\\\";\\nimport {Address} from \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n using Address for address;\\n\\n /**\\n * @dev An operation with an ERC20 token failed.\\n */\\n error SafeERC20FailedOperation(address token);\\n\\n /**\\n * @dev Indicates a failed `decreaseAllowance` request.\\n */\\n error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\\n\\n /**\\n * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\\n }\\n\\n /**\\n * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n */\\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\\n }\\n\\n /**\\n * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n uint256 oldAllowance = token.allowance(address(this), spender);\\n forceApprove(token, spender, oldAllowance + value);\\n }\\n\\n /**\\n * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\\n * value, non-reverting calls are assumed to be successful.\\n */\\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\\n unchecked {\\n uint256 currentAllowance = token.allowance(address(this), spender);\\n if (currentAllowance < requestedDecrease) {\\n revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\\n }\\n forceApprove(token, spender, currentAllowance - requestedDecrease);\\n }\\n }\\n\\n /**\\n * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n * to be set to zero before setting it to a non-zero value, such as USDT.\\n */\\n function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\\n\\n if (!_callOptionalReturnBool(token, approvalCall)) {\\n _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\\n _callOptionalReturn(token, approvalCall);\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n */\\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n // the target address contains contract code and also asserts for success in the low-level call.\\n\\n bytes memory returndata = address(token).functionCall(data);\\n if (returndata.length != 0 && !abi.decode(returndata, (bool))) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n *\\n * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n */\\n function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n // and not revert is the subcall reverts.\\n\\n (bool success, bytes memory returndata) = address(token).call(data);\\n return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && address(token).code.length > 0;\\n }\\n}\\n\",\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev The ETH balance of the account is not enough to perform the operation.\\n */\\n error AddressInsufficientBalance(address account);\\n\\n /**\\n * @dev There's no code at `target` (it is not a contract).\\n */\\n error AddressEmptyCode(address target);\\n\\n /**\\n * @dev A call to an address target failed. The target may have reverted.\\n */\\n error FailedInnerCall();\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n if (address(this).balance < amount) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n if (!success) {\\n revert FailedInnerCall();\\n }\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason or custom error, it is bubbled\\n * up by this function (like regular Solidity function calls). However, if\\n * the call reverted with no returned reason, this function reverts with a\\n * {FailedInnerCall} error.\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n if (address(this).balance < value) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\\n * unsuccessful call.\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata\\n ) internal view returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n // only check if target is a contract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n if (returndata.length == 0 && target.code.length == 0) {\\n revert AddressEmptyCode(target);\\n }\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\\n * revert reason or with a default {FailedInnerCall} error.\\n */\\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\\n */\\n function _revert(bytes memory returndata) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert FailedInnerCall();\\n }\\n }\\n}\\n\",\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4963,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol:OApp","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":539,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol:OApp","label":"peers","offset":0,"slot":"1","type":"t_mapping(t_uint32,t_bytes32)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_uint32,t_bytes32)":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"OAppCore":{"abi":[{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Abstract contract implementing the IOAppCore interface with basic OApp configurations.","errors":{"OwnableInvalidOwner(address)":[{"details":"The owner is not a valid owner account. (eg. `address(0)`)"}],"OwnableUnauthorizedAccount(address)":[{"details":"The caller account is not authorized to perform an operation."}]},"kind":"dev","methods":{"constructor":{"details":"Constructor to initialize the OAppCore with the provided endpoint and delegate.The delegate typically should be set as the owner of the contract.","params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_endpoint":"The address of the LOCAL Layer Zero endpoint."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"stateVariables":{"endpoint":{"return":"The LayerZero endpoint as an interface.","returns":{"_0":"The LayerZero endpoint as an interface."}},"peers":{"params":{"_eid":"The endpoint ID."},"return":"peer The peer address (OApp instance) associated with the corresponding endpoint.","returns":{"peer":"The peer address (OApp instance) associated with the corresponding endpoint."}}},"title":"OAppCore","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the IOAppCore interface with basic OApp configurations.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Constructor to initialize the OAppCore with the provided endpoint and delegate.The delegate typically should be set as the owner of the contract.\",\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_endpoint\":\"The address of the LOCAL Layer Zero endpoint.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"endpoint\":{\"return\":\"The LayerZero endpoint as an interface.\",\"returns\":{\"_0\":\"The LayerZero endpoint as an interface.\"}},\"peers\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"return\":\"peer The peer address (OApp instance) associated with the corresponding endpoint.\",\"returns\":{\"peer\":\"The peer address (OApp instance) associated with the corresponding endpoint.\"}}},\"title\":\"OAppCore\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":\"OAppCore\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"./interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCore is IOAppCore, Ownable {\\n // The LayerZero endpoint associated with the given OApp\\n ILayerZeroEndpointV2 public immutable endpoint;\\n\\n // Mapping to store peers associated with corresponding endpoints\\n mapping(uint32 eid => bytes32 peer) public peers;\\n\\n /**\\n * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n *\\n * @dev The delegate typically should be set as the owner of the contract.\\n */\\n constructor(address _endpoint, address _delegate) {\\n endpoint = ILayerZeroEndpointV2(_endpoint);\\n\\n if (_delegate == address(0)) revert InvalidDelegate();\\n endpoint.setDelegate(_delegate);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n _setPeer(_eid, _peer);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function _setPeer(uint32 _eid, bytes32 _peer) internal virtual {\\n peers[_eid] = _peer;\\n emit PeerSet(_eid, _peer);\\n }\\n\\n /**\\n * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n * ie. the peer is set to bytes32(0).\\n * @param _eid The endpoint ID.\\n * @return peer The address of the peer associated with the specified endpoint.\\n */\\n function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n bytes32 peer = peers[_eid];\\n if (peer == bytes32(0)) revert NoPeer(_eid);\\n return peer;\\n }\\n\\n /**\\n * @notice Sets the delegate address for the OApp.\\n * @param _delegate The address of the delegate to be set.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n */\\n function setDelegate(address _delegate) public onlyOwner {\\n endpoint.setDelegate(_delegate);\\n }\\n}\\n\",\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n // Custom error messages\\n error OnlyPeer(uint32 eid, bytes32 sender);\\n error NoPeer(uint32 eid);\\n error InvalidEndpointCall();\\n error InvalidDelegate();\\n\\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n event PeerSet(uint32 eid, bytes32 peer);\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n */\\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n /**\\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n * @return iEndpoint The LayerZero endpoint as an interface.\\n */\\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n /**\\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n */\\n function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n /**\\n * @notice Sets the delegate address for the OApp Core.\\n * @param _delegate The address of the delegate to be set.\\n */\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4963,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol:OAppCore","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":539,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol:OAppCore","label":"peers","offset":0,"slot":"1","type":"t_mapping(t_uint32,t_bytes32)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_uint32,t_bytes32)":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"OAppReceiver":{"abi":[{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"OnlyEndpoint","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.","errors":{"OwnableInvalidOwner(address)":[{"details":"The owner is not a valid owner account. (eg. `address(0)`)"}],"OwnableUnauthorizedAccount(address)":[{"details":"The caller account is not authorized to perform an operation."}]},"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oAppVersion()":{"details":"Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented. ie. this is a RECEIVE only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.","returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"OAppReceiver","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","endpoint()":"5e280f11","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oAppVersion()\":{\"details\":\"Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented. ie. this is a RECEIVE only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\",\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OAppReceiver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":\"OAppReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"./interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCore is IOAppCore, Ownable {\\n // The LayerZero endpoint associated with the given OApp\\n ILayerZeroEndpointV2 public immutable endpoint;\\n\\n // Mapping to store peers associated with corresponding endpoints\\n mapping(uint32 eid => bytes32 peer) public peers;\\n\\n /**\\n * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n *\\n * @dev The delegate typically should be set as the owner of the contract.\\n */\\n constructor(address _endpoint, address _delegate) {\\n endpoint = ILayerZeroEndpointV2(_endpoint);\\n\\n if (_delegate == address(0)) revert InvalidDelegate();\\n endpoint.setDelegate(_delegate);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n _setPeer(_eid, _peer);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function _setPeer(uint32 _eid, bytes32 _peer) internal virtual {\\n peers[_eid] = _peer;\\n emit PeerSet(_eid, _peer);\\n }\\n\\n /**\\n * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n * ie. the peer is set to bytes32(0).\\n * @param _eid The endpoint ID.\\n * @return peer The address of the peer associated with the specified endpoint.\\n */\\n function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n bytes32 peer = peers[_eid];\\n if (peer == bytes32(0)) revert NoPeer(_eid);\\n return peer;\\n }\\n\\n /**\\n * @notice Sets the delegate address for the OApp.\\n * @param _delegate The address of the delegate to be set.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n */\\n function setDelegate(address _delegate) public onlyOwner {\\n endpoint.setDelegate(_delegate);\\n }\\n}\\n\",\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { IOAppReceiver, Origin } from \\\"./interfaces/IOAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppReceiver\\n * @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\\n */\\nabstract contract OAppReceiver is IOAppReceiver, OAppCore {\\n // Custom error message for when the caller is not the registered endpoint/\\n error OnlyEndpoint(address addr);\\n\\n // @dev The version of the OAppReceiver implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant RECEIVER_VERSION = 2;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\\n * ie. this is a RECEIVE only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (0, RECEIVER_VERSION);\\n }\\n\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @dev _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @dev _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata /*_origin*/,\\n bytes calldata /*_message*/,\\n address _sender\\n ) public view virtual returns (bool) {\\n return _sender == address(this);\\n }\\n\\n /**\\n * @notice Checks if the path initialization is allowed based on the provided origin.\\n * @param origin The origin information containing the source endpoint and sender address.\\n * @return Whether the path has been initialized.\\n *\\n * @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\\n * @dev This defaults to assuming if a peer has been set, its initialized.\\n * Can be overridden by the OApp if there is other logic to determine this.\\n */\\n function allowInitializePath(Origin calldata origin) public view virtual returns (bool) {\\n return peers[origin.srcEid] == origin.sender;\\n }\\n\\n /**\\n * @notice Retrieves the next nonce for a given source endpoint and sender address.\\n * @dev _srcEid The source endpoint ID.\\n * @dev _sender The sender address.\\n * @return nonce The next nonce.\\n *\\n * @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\\n * @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\\n * @dev This is also enforced by the OApp.\\n * @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\\n */\\n function nextNonce(uint32 /*_srcEid*/, bytes32 /*_sender*/) public view virtual returns (uint64 nonce) {\\n return 0;\\n }\\n\\n /**\\n * @dev Entry point for receiving messages or packets from the endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier for the received LayerZero message.\\n * @param _message The payload of the received message.\\n * @param _executor The address of the executor for the received message.\\n * @param _extraData Additional arbitrary data provided by the corresponding executor.\\n *\\n * @dev Entry point for receiving msg/packet from the LayerZero endpoint.\\n */\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) public payable virtual {\\n // Ensures that only the endpoint can attempt to lzReceive() messages to this OApp.\\n if (address(endpoint) != msg.sender) revert OnlyEndpoint(msg.sender);\\n\\n // Ensure that the sender matches the expected peer for the source endpoint.\\n if (_getPeerOrRevert(_origin.srcEid) != _origin.sender) revert OnlyPeer(_origin.srcEid, _origin.sender);\\n\\n // Call the internal OApp implementation of lzReceive.\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation.\\n */\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n}\\n\",\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n // Custom error messages\\n error OnlyPeer(uint32 eid, bytes32 sender);\\n error NoPeer(uint32 eid);\\n error InvalidEndpointCall();\\n error InvalidDelegate();\\n\\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n event PeerSet(uint32 eid, bytes32 peer);\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n */\\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n /**\\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n * @return iEndpoint The LayerZero endpoint as an interface.\\n */\\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n /**\\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n */\\n function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n /**\\n * @notice Sets the delegate address for the OApp Core.\\n * @param _delegate The address of the delegate to be set.\\n */\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroReceiver, Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\\\";\\n\\ninterface IOAppReceiver is ILayerZeroReceiver {\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata _origin,\\n bytes calldata _message,\\n address _sender\\n ) external view returns (bool isSender);\\n}\\n\",\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4963,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol:OAppReceiver","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":539,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol:OAppReceiver","label":"peers","offset":0,"slot":"1","type":"t_mapping(t_uint32,t_bytes32)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_uint32,t_bytes32)":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"OAppSender":{"abi":[{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[],"name":"LzTokenUnavailable","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"name":"NotEnoughNative","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.","errors":{"OwnableInvalidOwner(address)":[{"details":"The owner is not a valid owner account. (eg. `address(0)`)"}],"OwnableUnauthorizedAccount(address)":[{"details":"The caller account is not authorized to perform an operation."}]},"kind":"dev","methods":{"oAppVersion()":{"details":"Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented. ie. this is a SEND only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions","returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"OAppSender","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"oAppVersion()\":{\"details\":\"Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented. ie. this is a SEND only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\",\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OAppSender\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":\"OAppSender\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"./interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCore is IOAppCore, Ownable {\\n // The LayerZero endpoint associated with the given OApp\\n ILayerZeroEndpointV2 public immutable endpoint;\\n\\n // Mapping to store peers associated with corresponding endpoints\\n mapping(uint32 eid => bytes32 peer) public peers;\\n\\n /**\\n * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n *\\n * @dev The delegate typically should be set as the owner of the contract.\\n */\\n constructor(address _endpoint, address _delegate) {\\n endpoint = ILayerZeroEndpointV2(_endpoint);\\n\\n if (_delegate == address(0)) revert InvalidDelegate();\\n endpoint.setDelegate(_delegate);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n _setPeer(_eid, _peer);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function _setPeer(uint32 _eid, bytes32 _peer) internal virtual {\\n peers[_eid] = _peer;\\n emit PeerSet(_eid, _peer);\\n }\\n\\n /**\\n * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n * ie. the peer is set to bytes32(0).\\n * @param _eid The endpoint ID.\\n * @return peer The address of the peer associated with the specified endpoint.\\n */\\n function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n bytes32 peer = peers[_eid];\\n if (peer == bytes32(0)) revert NoPeer(_eid);\\n return peer;\\n }\\n\\n /**\\n * @notice Sets the delegate address for the OApp.\\n * @param _delegate The address of the delegate to be set.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n */\\n function setDelegate(address _delegate) public onlyOwner {\\n endpoint.setDelegate(_delegate);\\n }\\n}\\n\",\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppSender\\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\\n */\\nabstract contract OAppSender is OAppCore {\\n using SafeERC20 for IERC20;\\n\\n // Custom error messages\\n error NotEnoughNative(uint256 msgValue);\\n error LzTokenUnavailable();\\n\\n // @dev The version of the OAppSender implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant SENDER_VERSION = 1;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\\n * ie. this is a SEND only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (SENDER_VERSION, 0);\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\\n * @return fee The calculated MessagingFee for the message.\\n * - nativeFee: The native fee for the message.\\n * - lzTokenFee: The LZ token fee for the message.\\n */\\n function _quote(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n bool _payInLzToken\\n ) internal view virtual returns (MessagingFee memory fee) {\\n return\\n endpoint.quote(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\\n address(this)\\n );\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _fee The calculated LayerZero fee for the message.\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\\n * @return receipt The receipt for the sent message.\\n * - guid: The unique identifier for the sent message.\\n * - nonce: The nonce of the sent message.\\n * - fee: The LayerZero fee incurred for the message.\\n */\\n function _lzSend(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n MessagingFee memory _fee,\\n address _refundAddress\\n ) internal virtual returns (MessagingReceipt memory receipt) {\\n // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\\n uint256 messageValue = _payNative(_fee.nativeFee);\\n if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\\n\\n return\\n // solhint-disable-next-line check-send-result\\n endpoint.send{ value: messageValue }(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\\n _refundAddress\\n );\\n }\\n\\n /**\\n * @dev Internal function to pay the native fee associated with the message.\\n * @param _nativeFee The native fee to be paid.\\n * @return nativeFee The amount of native currency paid.\\n *\\n * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\\n * this will need to be overridden because msg.value would contain multiple lzFees.\\n * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\\n * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\\n * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\\n */\\n function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\\n if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\\n return _nativeFee;\\n }\\n\\n /**\\n * @dev Internal function to pay the LZ token fee associated with the message.\\n * @param _lzTokenFee The LZ token fee to be paid.\\n *\\n * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\\n * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\\n */\\n function _payLzToken(uint256 _lzTokenFee) internal virtual {\\n // @dev Cannot cache the token because it is not immutable in the endpoint.\\n address lzToken = endpoint.lzToken();\\n if (lzToken == address(0)) revert LzTokenUnavailable();\\n\\n // Pay LZ token fee by sending tokens to the endpoint.\\n IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\\n }\\n}\\n\",\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n // Custom error messages\\n error OnlyPeer(uint32 eid, bytes32 sender);\\n error NoPeer(uint32 eid);\\n error InvalidEndpointCall();\\n error InvalidDelegate();\\n\\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n event PeerSet(uint32 eid, bytes32 peer);\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n */\\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n /**\\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n * @return iEndpoint The LayerZero endpoint as an interface.\\n */\\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n /**\\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n */\\n function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n /**\\n * @notice Sets the delegate address for the OApp Core.\\n * @param _delegate The address of the delegate to be set.\\n */\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the value of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the value of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\\n * allowance mechanism. `value` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 value) external returns (bool);\\n}\\n\",\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n * doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n * token.safeTransferFrom(msg.sender, address(this), value);\\n * ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n /**\\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n * given ``owner``'s signed approval.\\n *\\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n * ordering also apply here.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `deadline` must be a timestamp in the future.\\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n * over the EIP712-formatted function arguments.\\n * - the signature must use ``owner``'s current nonce (see {nonces}).\\n *\\n * For more information on the signature format, see the\\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n * section].\\n *\\n * CAUTION: See Security Considerations above.\\n */\\n function permit(\\n address owner,\\n address spender,\\n uint256 value,\\n uint256 deadline,\\n uint8 v,\\n bytes32 r,\\n bytes32 s\\n ) external;\\n\\n /**\\n * @dev Returns the current nonce for `owner`. This value must be\\n * included whenever a signature is generated for {permit}.\\n *\\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n * prevents a signature from being used multiple times.\\n */\\n function nonces(address owner) external view returns (uint256);\\n\\n /**\\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n */\\n // solhint-disable-next-line func-name-mixedcase\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"../IERC20.sol\\\";\\nimport {IERC20Permit} from \\\"../extensions/IERC20Permit.sol\\\";\\nimport {Address} from \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n using Address for address;\\n\\n /**\\n * @dev An operation with an ERC20 token failed.\\n */\\n error SafeERC20FailedOperation(address token);\\n\\n /**\\n * @dev Indicates a failed `decreaseAllowance` request.\\n */\\n error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\\n\\n /**\\n * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\\n }\\n\\n /**\\n * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n */\\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\\n }\\n\\n /**\\n * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n uint256 oldAllowance = token.allowance(address(this), spender);\\n forceApprove(token, spender, oldAllowance + value);\\n }\\n\\n /**\\n * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\\n * value, non-reverting calls are assumed to be successful.\\n */\\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\\n unchecked {\\n uint256 currentAllowance = token.allowance(address(this), spender);\\n if (currentAllowance < requestedDecrease) {\\n revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\\n }\\n forceApprove(token, spender, currentAllowance - requestedDecrease);\\n }\\n }\\n\\n /**\\n * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n * to be set to zero before setting it to a non-zero value, such as USDT.\\n */\\n function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\\n\\n if (!_callOptionalReturnBool(token, approvalCall)) {\\n _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\\n _callOptionalReturn(token, approvalCall);\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n */\\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n // the target address contains contract code and also asserts for success in the low-level call.\\n\\n bytes memory returndata = address(token).functionCall(data);\\n if (returndata.length != 0 && !abi.decode(returndata, (bool))) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n *\\n * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n */\\n function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n // and not revert is the subcall reverts.\\n\\n (bool success, bytes memory returndata) = address(token).call(data);\\n return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && address(token).code.length > 0;\\n }\\n}\\n\",\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev The ETH balance of the account is not enough to perform the operation.\\n */\\n error AddressInsufficientBalance(address account);\\n\\n /**\\n * @dev There's no code at `target` (it is not a contract).\\n */\\n error AddressEmptyCode(address target);\\n\\n /**\\n * @dev A call to an address target failed. The target may have reverted.\\n */\\n error FailedInnerCall();\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n if (address(this).balance < amount) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n if (!success) {\\n revert FailedInnerCall();\\n }\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason or custom error, it is bubbled\\n * up by this function (like regular Solidity function calls). However, if\\n * the call reverted with no returned reason, this function reverts with a\\n * {FailedInnerCall} error.\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n if (address(this).balance < value) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\\n * unsuccessful call.\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata\\n ) internal view returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n // only check if target is a contract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n if (returndata.length == 0 && target.code.length == 0) {\\n revert AddressEmptyCode(target);\\n }\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\\n * revert reason or with a default {FailedInnerCall} error.\\n */\\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\\n */\\n function _revert(bytes memory returndata) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert FailedInnerCall();\\n }\\n }\\n}\\n\",\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4963,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol:OAppSender","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":539,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol:OAppSender","label":"peers","offset":0,"slot":"1","type":"t_mapping(t_uint32,t_bytes32)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_uint32,t_bytes32)":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"IOAppCore":{"abi":[{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"iEndpoint","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"endpoint()":{"returns":{"iEndpoint":"The LayerZero endpoint as an interface."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"peer":"The peer address (OApp instance) associated with the corresponding endpoint."}},"setDelegate(address)":{"params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}}},"title":"IOAppCore","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","peers(uint32)":"bb0b6a53","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"iEndpoint\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"endpoint()\":{\"returns\":{\"iEndpoint\":\"The LayerZero endpoint as an interface.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"peer\":\"The peer address (OApp instance) associated with the corresponding endpoint.\"}},\"setDelegate(address)\":{\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}}},\"title\":\"IOAppCore\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp Core.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":\"IOAppCore\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n // Custom error messages\\n error OnlyPeer(uint32 eid, bytes32 sender);\\n error NoPeer(uint32 eid);\\n error InvalidEndpointCall();\\n error InvalidDelegate();\\n\\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n event PeerSet(uint32 eid, bytes32 peer);\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n */\\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n /**\\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n * @return iEndpoint The LayerZero endpoint as an interface.\\n */\\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n /**\\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n */\\n function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n /**\\n * @notice Sets the delegate address for the OApp Core.\\n * @param _delegate The address of the delegate to be set.\\n */\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp Core."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"IOAppMsgInspector":{"abi":[{"inputs":[{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"}],"name":"InspectionFailed","type":"error"},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"name":"inspect","outputs":[{"internalType":"bool","name":"valid","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Interface for the OApp Message Inspector, allowing examination of message and options contents.","kind":"dev","methods":{"inspect(bytes,bytes)":{"details":"Optionally done as a revert, OR use the boolean provided to handle the failure.","params":{"_message":"The message payload to be inspected.","_options":"Additional options or parameters for inspection."},"returns":{"valid":"A boolean indicating whether the inspection passed (true) or failed (false)."}}},"title":"IOAppMsgInspector","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"inspect(bytes,bytes)":"043a78eb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InspectionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"inspect\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the OApp Message Inspector, allowing examination of message and options contents.\",\"kind\":\"dev\",\"methods\":{\"inspect(bytes,bytes)\":{\"details\":\"Optionally done as a revert, OR use the boolean provided to handle the failure.\",\"params\":{\"_message\":\"The message payload to be inspected.\",\"_options\":\"Additional options or parameters for inspection.\"},\"returns\":{\"valid\":\"A boolean indicating whether the inspection passed (true) or failed (false).\"}}},\"title\":\"IOAppMsgInspector\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"inspect(bytes,bytes)\":{\"notice\":\"Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":\"IOAppMsgInspector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @title IOAppMsgInspector\\n * @dev Interface for the OApp Message Inspector, allowing examination of message and options contents.\\n */\\ninterface IOAppMsgInspector {\\n // Custom error message for inspection failure\\n error InspectionFailed(bytes message, bytes options);\\n\\n /**\\n * @notice Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\\n * @param _message The message payload to be inspected.\\n * @param _options Additional options or parameters for inspection.\\n * @return valid A boolean indicating whether the inspection passed (true) or failed (false).\\n *\\n * @dev Optionally done as a revert, OR use the boolean provided to handle the failure.\\n */\\n function inspect(bytes calldata _message, bytes calldata _options) external view returns (bool valid);\\n}\\n\",\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"inspect(bytes,bytes)":{"notice":"Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid."}},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"IOAppOptionsType3":{"abi":[{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"name":"InvalidOptions","type":"error"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false,"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"EnforcedOptionSet","type":"event"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"name":"combineOptions","outputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"setEnforcedOptions","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.","kind":"dev","methods":{"combineOptions(uint32,uint16,bytes)":{"params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OApp message type."},"returns":{"options":"The combination of caller specified options AND enforced options."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}}},"title":"IOAppOptionsType3","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"combineOptions(uint32,uint16,bytes)":"bc70b354","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.\",\"kind\":\"dev\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OApp message type.\"},\"returns\":{\"options\":\"The combination of caller specified options AND enforced options.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}}},\"title\":\"IOAppOptionsType3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"notice\":\"Sets enforced options for specific endpoint and message type combinations.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":\"IOAppOptionsType3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Struct representing enforced option parameters.\\n */\\nstruct EnforcedOptionParam {\\n uint32 eid; // Endpoint ID\\n uint16 msgType; // Message Type\\n bytes options; // Additional options\\n}\\n\\n/**\\n * @title IOAppOptionsType3\\n * @dev Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.\\n */\\ninterface IOAppOptionsType3 {\\n // Custom error message for invalid options\\n error InvalidOptions(bytes options);\\n\\n // Event emitted when enforced options are set\\n event EnforcedOptionSet(EnforcedOptionParam[] _enforcedOptions);\\n\\n /**\\n * @notice Sets enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) external;\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OApp message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) external view returns (bytes memory options);\\n}\\n\",\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"setEnforcedOptions((uint32,uint16,bytes)[])":{"notice":"Sets enforced options for specific endpoint and message type combinations."}},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"IOAppReceiver":{"abi":[{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"isSender","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_message":"The lzReceive payload.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.","_sender":"The sender address."},"returns":{"isSender":"Is a valid sender."}}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSender\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_message\":\"The lzReceive payload.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\",\"_sender\":\"The sender address.\"},\"returns\":{\"isSender\":\"Is a valid sender.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":\"IOAppReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroReceiver, Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\\\";\\n\\ninterface IOAppReceiver is ILayerZeroReceiver {\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata _origin,\\n bytes calldata _message,\\n address _sender\\n ) external view returns (bool isSender);\\n}\\n\",\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."}},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"OAppOptionsType3":{"abi":[{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"name":"InvalidOptions","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false,"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"EnforcedOptionSet","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"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"setEnforcedOptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Abstract contract implementing the IOAppOptionsType3 interface with type 3 options.","errors":{"OwnableInvalidOwner(address)":[{"details":"The owner is not a valid owner account. (eg. `address(0)`)"}],"OwnableUnauthorizedAccount(address)":[{"details":"The caller account is not authorized to perform an operation."}]},"kind":"dev","methods":{"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"OAppOptionsType3","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"combineOptions(uint32,uint16,bytes)":"bc70b354","enforcedOptions(uint32,uint16)":"5535d461","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"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\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the IOAppOptionsType3 interface with type 3 options.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OAppOptionsType3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":\"OAppOptionsType3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Struct representing enforced option parameters.\\n */\\nstruct EnforcedOptionParam {\\n uint32 eid; // Endpoint ID\\n uint16 msgType; // Message Type\\n bytes options; // Additional options\\n}\\n\\n/**\\n * @title IOAppOptionsType3\\n * @dev Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.\\n */\\ninterface IOAppOptionsType3 {\\n // Custom error message for invalid options\\n error InvalidOptions(bytes options);\\n\\n // Event emitted when enforced options are set\\n event EnforcedOptionSet(EnforcedOptionParam[] _enforcedOptions);\\n\\n /**\\n * @notice Sets enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) external;\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OApp message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) external view returns (bytes memory options);\\n}\\n\",\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppOptionsType3, EnforcedOptionParam } from \\\"../interfaces/IOAppOptionsType3.sol\\\";\\n\\n/**\\n * @title OAppOptionsType3\\n * @dev Abstract contract implementing the IOAppOptionsType3 interface with type 3 options.\\n */\\nabstract contract OAppOptionsType3 is IOAppOptionsType3, Ownable {\\n uint16 internal constant OPTION_TYPE_3 = 3;\\n\\n // @dev The \\\"msgType\\\" should be defined in the child contract.\\n mapping(uint32 eid => mapping(uint16 msgType => bytes enforcedOption)) public enforcedOptions;\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) public virtual onlyOwner {\\n _setEnforcedOptions(_enforcedOptions);\\n }\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function _setEnforcedOptions(EnforcedOptionParam[] memory _enforcedOptions) internal virtual {\\n for (uint256 i = 0; i < _enforcedOptions.length; i++) {\\n // @dev Enforced options are only available for optionType 3, as type 1 and 2 dont support combining.\\n _assertOptionsType3(_enforcedOptions[i].options);\\n enforcedOptions[_enforcedOptions[i].eid][_enforcedOptions[i].msgType] = _enforcedOptions[i].options;\\n }\\n\\n emit EnforcedOptionSet(_enforcedOptions);\\n }\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OAPP message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n *\\n * @dev If there is an enforced lzReceive option:\\n * - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether}\\n * - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.\\n * @dev This presence of duplicated options is handled off-chain in the verifier/executor.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) public view virtual returns (bytes memory) {\\n bytes memory enforced = enforcedOptions[_eid][_msgType];\\n\\n // No enforced options, pass whatever the caller supplied, even if it's empty or legacy type 1/2 options.\\n if (enforced.length == 0) return _extraOptions;\\n\\n // No caller options, return enforced\\n if (_extraOptions.length == 0) return enforced;\\n\\n // @dev If caller provided _extraOptions, must be type 3 as its the ONLY type that can be combined.\\n if (_extraOptions.length >= 2) {\\n _assertOptionsType3(_extraOptions);\\n // @dev Remove the first 2 bytes containing the type from the _extraOptions and combine with enforced.\\n return bytes.concat(enforced, _extraOptions[2:]);\\n }\\n\\n // No valid set of options was found.\\n revert InvalidOptions(_extraOptions);\\n }\\n\\n /**\\n * @dev Internal function to assert that options are of type 3.\\n * @param _options The options to be checked.\\n */\\n function _assertOptionsType3(bytes memory _options) internal pure virtual {\\n uint16 optionsType;\\n assembly {\\n optionsType := mload(add(_options, 2))\\n }\\n if (optionsType != OPTION_TYPE_3) revert InvalidOptions(_options);\\n }\\n}\\n\",\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4963,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol:OAppOptionsType3","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":1155,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol:OAppOptionsType3","label":"enforcedOptions","offset":0,"slot":"1","type":"t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => mapping(uint16 => bytes))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_bytes_storage)"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."}},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"OptionsBuilder":{"abi":[{"inputs":[{"internalType":"uint16","name":"optionType","type":"uint16"}],"name":"InvalidOptionType","type":"error"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"InvalidSize","type":"error"}],"devdoc":{"details":"Library for building and encoding various message options.","kind":"dev","methods":{},"title":"OptionsBuilder","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122045eb1cdeb50aa3baa88d3f056dd0bad5eac5edfb7bb8d8e7da631c43e247d13264736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT 0xEB SHR 0xDE 0xB5 EXP LOG3 0xBA 0xA8 DUP14 EXTCODEHASH SDIV PUSH14 0xD0BAD5EAC5EDFB7BB8D8E7DA631C NUMBER 0xE2 SELFBALANCE 0xD1 ORIGIN PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"524:7881:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;524:7881:10;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122045eb1cdeb50aa3baa88d3f056dd0bad5eac5edfb7bb8d8e7da631c43e247d13264736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT 0xEB SHR 0xDE 0xB5 EXP LOG3 0xBA 0xA8 DUP14 EXTCODEHASH SDIV PUSH14 0xD0BAD5EAC5EDFB7BB8D8E7DA631C NUMBER 0xE2 SELFBALANCE 0xD1 ORIGIN PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"524:7881:10:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"addDVNOption(bytes memory,uint8,uint8,bytes memory)":"infinite","addDVNPreCrimeOption(bytes memory,uint8)":"infinite","addExecutorLzComposeOption(bytes memory,uint16,uint128,uint128)":"infinite","addExecutorLzReceiveOption(bytes memory,uint128,uint128)":"infinite","addExecutorNativeDropOption(bytes memory,uint128,bytes32)":"infinite","addExecutorOption(bytes memory,uint8,bytes memory)":"infinite","addExecutorOrderedExecutionOption(bytes memory)":"infinite","encodeLegacyOptionsType1(uint256)":"infinite","encodeLegacyOptionsType2(uint256,uint256,bytes memory)":"infinite","newOptions()":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"optionType\",\"type\":\"uint16\"}],\"name\":\"InvalidOptionType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InvalidSize\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Library for building and encoding various message options.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"OptionsBuilder\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":\"OptionsBuilder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\n\\nimport { BitMap256 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\\\";\\nimport { CalldataBytesLib } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary DVNOptions {\\n using CalldataBytesLib for bytes;\\n using BytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 2;\\n uint8 internal constant OPTION_TYPE_PRECRIME = 1;\\n\\n error DVN_InvalidDVNIdx();\\n error DVN_InvalidDVNOptions(uint256 cursor);\\n\\n /// @dev group dvn options by its idx\\n /// @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\\n /// dvn_option = [option_size][dvn_idx][option_type][option]\\n /// option_size = len(dvn_idx) + len(option_type) + len(option)\\n /// dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @return dvnOptions the grouped options, still share the same format of _options\\n /// @return dvnIndices the dvn indices\\n function groupDVNOptionsByIdx(\\n bytes memory _options\\n ) internal pure returns (bytes[] memory dvnOptions, uint8[] memory dvnIndices) {\\n if (_options.length == 0) return (dvnOptions, dvnIndices);\\n\\n uint8 numDVNs = getNumDVNs(_options);\\n\\n // if there is only 1 dvn, we can just return the whole options\\n if (numDVNs == 1) {\\n dvnOptions = new bytes[](1);\\n dvnOptions[0] = _options;\\n\\n dvnIndices = new uint8[](1);\\n dvnIndices[0] = _options.toUint8(3); // dvn idx\\n return (dvnOptions, dvnIndices);\\n }\\n\\n // otherwise, we need to group the options by dvn_idx\\n dvnIndices = new uint8[](numDVNs);\\n dvnOptions = new bytes[](numDVNs);\\n unchecked {\\n uint256 cursor = 0;\\n uint256 start = 0;\\n uint8 lastDVNIdx = 255; // 255 is an invalid dvn_idx\\n\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n // optionLength asserted in getNumDVNs (skip check)\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n\\n // dvnIdx asserted in getNumDVNs (skip check)\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // dvnIdx must equal to the lastDVNIdx for the first option\\n // so it is always skipped in the first option\\n // this operation slices out options whenever the scan finds a different lastDVNIdx\\n if (lastDVNIdx == 255) {\\n lastDVNIdx = dvnIdx;\\n } else if (dvnIdx != lastDVNIdx) {\\n uint256 len = cursor - start - 3; // 3 is for worker_id and option_length\\n bytes memory opt = _options.slice(start, len);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, opt);\\n\\n // reset the start and lastDVNIdx\\n start += len;\\n lastDVNIdx = dvnIdx;\\n }\\n\\n cursor += optionLength;\\n }\\n\\n // skip check the cursor here because the cursor is asserted in getNumDVNs\\n // if we have reached the end of the options, we need to process the last dvn\\n uint256 size = cursor - start;\\n bytes memory op = _options.slice(start, size);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, op);\\n\\n // revert dvnIndices to start from 0\\n for (uint8 i = 0; i < numDVNs; ++i) {\\n --dvnIndices[i];\\n }\\n }\\n }\\n\\n function _insertDVNOptions(\\n bytes[] memory _dvnOptions,\\n uint8[] memory _dvnIndices,\\n uint8 _dvnIdx,\\n bytes memory _newOptions\\n ) internal pure {\\n // dvnIdx starts from 0 but default value of dvnIndices is 0,\\n // so we tell if the slot is empty by adding 1 to dvnIdx\\n if (_dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n uint8 dvnIdxAdj = _dvnIdx + 1;\\n\\n for (uint256 j = 0; j < _dvnIndices.length; ++j) {\\n uint8 index = _dvnIndices[j];\\n if (dvnIdxAdj == index) {\\n _dvnOptions[j] = abi.encodePacked(_dvnOptions[j], _newOptions);\\n break;\\n } else if (index == 0) {\\n // empty slot, that means it is the first time we see this dvn\\n _dvnIndices[j] = dvnIdxAdj;\\n _dvnOptions[j] = _newOptions;\\n break;\\n }\\n }\\n }\\n\\n /// @dev get the number of unique dvns\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n function getNumDVNs(bytes memory _options) internal pure returns (uint8 numDVNs) {\\n uint256 cursor = 0;\\n BitMap256 bitmap;\\n\\n // find number of unique dvn_idx\\n unchecked {\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n if (optionLength < 2) revert DVN_InvalidDVNOptions(cursor); // at least 1 byte for dvn_idx and 1 byte for option_type\\n\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // if dvnIdx is not set, increment numDVNs\\n // max num of dvns is 255, 255 is an invalid dvn_idx\\n // The order of the dvnIdx is not required to be sequential, as enforcing the order may weaken\\n // the composability of the options. e.g. if we refrain from enforcing the order, an OApp that has\\n // already enforced certain options can append additional options to the end of the enforced\\n // ones without restrictions.\\n if (dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n if (!bitmap.get(dvnIdx)) {\\n ++numDVNs;\\n bitmap = bitmap.set(dvnIdx);\\n }\\n\\n cursor += optionLength;\\n }\\n }\\n if (cursor != _options.length) revert DVN_InvalidDVNOptions(cursor);\\n }\\n\\n /// @dev decode the next dvn option from _options starting from the specified cursor\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n /// @param _cursor the cursor to start decoding\\n /// @return optionType the type of the option\\n /// @return option the option\\n /// @return cursor the cursor to start decoding the next option\\n function nextDVNOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor + 1); // skip dvn_idx\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 2; // skip option type and dvn_idx\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n}\\n\",\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\nimport { SafeCast } from \\\"@openzeppelin/contracts/utils/math/SafeCast.sol\\\";\\n\\nimport { ExecutorOptions } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\\\";\\nimport { DVNOptions } from \\\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\\\";\\n\\n/**\\n * @title OptionsBuilder\\n * @dev Library for building and encoding various message options.\\n */\\nlibrary OptionsBuilder {\\n using SafeCast for uint256;\\n using BytesLib for bytes;\\n\\n // Constants for options types\\n uint16 internal constant TYPE_1 = 1; // legacy options type 1\\n uint16 internal constant TYPE_2 = 2; // legacy options type 2\\n uint16 internal constant TYPE_3 = 3;\\n\\n // Custom error message\\n error InvalidSize(uint256 max, uint256 actual);\\n error InvalidOptionType(uint16 optionType);\\n\\n // Modifier to ensure only options of type 3 are used\\n modifier onlyType3(bytes memory _options) {\\n if (_options.toUint16(0) != TYPE_3) revert InvalidOptionType(_options.toUint16(0));\\n _;\\n }\\n\\n /**\\n * @dev Creates a new options container with type 3.\\n * @return options The newly created options container.\\n */\\n function newOptions() internal pure returns (bytes memory) {\\n return abi.encodePacked(TYPE_3);\\n }\\n\\n /**\\n * @dev Adds an executor LZ receive option to the existing options.\\n * @param _options The existing options container.\\n * @param _gas The gasLimit used on the lzReceive() function in the OApp.\\n * @param _value The msg.value passed to the lzReceive() function in the OApp.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed by the executor\\n * eg. if (_gas: 200k, and _value: 1 ether) AND (_gas: 100k, _value: 0.5 ether) are sent in an option to the LayerZeroEndpoint,\\n * that becomes (300k, 1.5 ether) when the message is executed on the remote lzReceive() function.\\n */\\n function addExecutorLzReceiveOption(\\n bytes memory _options,\\n uint128 _gas,\\n uint128 _value\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeLzReceiveOption(_gas, _value);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZRECEIVE, option);\\n }\\n\\n /**\\n * @dev Adds an executor native drop option to the existing options.\\n * @param _options The existing options container.\\n * @param _amount The amount for the native value that is airdropped to the 'receiver'.\\n * @param _receiver The receiver address for the native drop option.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\\n */\\n function addExecutorNativeDropOption(\\n bytes memory _options,\\n uint128 _amount,\\n bytes32 _receiver\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeNativeDropOption(_amount, _receiver);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_NATIVE_DROP, option);\\n }\\n\\n /**\\n * @dev Adds an executor LZ compose option to the existing options.\\n * @param _options The existing options container.\\n * @param _index The index for the lzCompose() function call.\\n * @param _gas The gasLimit for the lzCompose() function call.\\n * @param _value The msg.value for the lzCompose() function call.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed PER index by the executor on the remote chain.\\n * @dev If the OApp sends N lzCompose calls on the remote, you must provide N incremented indexes starting with 0.\\n * ie. When your remote OApp composes (N = 3) messages, you must set this option for index 0,1,2\\n */\\n function addExecutorLzComposeOption(\\n bytes memory _options,\\n uint16 _index,\\n uint128 _gas,\\n uint128 _value\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeLzComposeOption(_index, _gas, _value);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZCOMPOSE, option);\\n }\\n\\n /**\\n * @dev Adds an executor ordered execution option to the existing options.\\n * @param _options The existing options container.\\n * @return options The updated options container.\\n */\\n function addExecutorOrderedExecutionOption(\\n bytes memory _options\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_ORDERED_EXECUTION, bytes(\\\"\\\"));\\n }\\n\\n /**\\n * @dev Adds a DVN pre-crime option to the existing options.\\n * @param _options The existing options container.\\n * @param _dvnIdx The DVN index for the pre-crime option.\\n * @return options The updated options container.\\n */\\n function addDVNPreCrimeOption(\\n bytes memory _options,\\n uint8 _dvnIdx\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return addDVNOption(_options, _dvnIdx, DVNOptions.OPTION_TYPE_PRECRIME, bytes(\\\"\\\"));\\n }\\n\\n /**\\n * @dev Adds an executor option to the existing options.\\n * @param _options The existing options container.\\n * @param _optionType The type of the executor option.\\n * @param _option The encoded data for the executor option.\\n * @return options The updated options container.\\n */\\n function addExecutorOption(\\n bytes memory _options,\\n uint8 _optionType,\\n bytes memory _option\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return\\n abi.encodePacked(\\n _options,\\n ExecutorOptions.WORKER_ID,\\n _option.length.toUint16() + 1, // +1 for optionType\\n _optionType,\\n _option\\n );\\n }\\n\\n /**\\n * @dev Adds a DVN option to the existing options.\\n * @param _options The existing options container.\\n * @param _dvnIdx The DVN index for the DVN option.\\n * @param _optionType The type of the DVN option.\\n * @param _option The encoded data for the DVN option.\\n * @return options The updated options container.\\n */\\n function addDVNOption(\\n bytes memory _options,\\n uint8 _dvnIdx,\\n uint8 _optionType,\\n bytes memory _option\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return\\n abi.encodePacked(\\n _options,\\n DVNOptions.WORKER_ID,\\n _option.length.toUint16() + 2, // +2 for optionType and dvnIdx\\n _dvnIdx,\\n _optionType,\\n _option\\n );\\n }\\n\\n /**\\n * @dev Encodes legacy options of type 1.\\n * @param _executionGas The gasLimit value passed to lzReceive().\\n * @return legacyOptions The encoded legacy options.\\n */\\n function encodeLegacyOptionsType1(uint256 _executionGas) internal pure returns (bytes memory) {\\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n return abi.encodePacked(TYPE_1, _executionGas);\\n }\\n\\n /**\\n * @dev Encodes legacy options of type 2.\\n * @param _executionGas The gasLimit value passed to lzReceive().\\n * @param _nativeForDst The amount of native air dropped to the receiver.\\n * @param _receiver The _nativeForDst receiver address.\\n * @return legacyOptions The encoded legacy options of type 2.\\n */\\n function encodeLegacyOptionsType2(\\n uint256 _executionGas,\\n uint256 _nativeForDst,\\n bytes memory _receiver // @dev Use bytes instead of bytes32 in legacy type 2 for _receiver.\\n ) internal pure returns (bytes memory) {\\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n if (_nativeForDst > type(uint128).max) revert InvalidSize(type(uint128).max, _nativeForDst);\\n if (_receiver.length > 32) revert InvalidSize(32, _receiver.length);\\n return abi.encodePacked(TYPE_2, _executionGas, _nativeForDst, _receiver);\\n }\\n}\\n\",\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n return uint8(_bytes[_start]);\\n }\\n\\n function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n unchecked {\\n uint256 end = _start + 2;\\n return uint16(bytes2(_bytes[_start:end]));\\n }\\n }\\n\\n function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n unchecked {\\n uint256 end = _start + 4;\\n return uint32(bytes4(_bytes[_start:end]));\\n }\\n }\\n\\n function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n unchecked {\\n uint256 end = _start + 8;\\n return uint64(bytes8(_bytes[_start:end]));\\n }\\n }\\n\\n function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n unchecked {\\n uint256 end = _start + 16;\\n return uint128(bytes16(_bytes[_start:end]));\\n }\\n }\\n\\n function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n unchecked {\\n uint256 end = _start + 32;\\n return uint256(bytes32(_bytes[_start:end]));\\n }\\n }\\n\\n function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n unchecked {\\n uint256 end = _start + 20;\\n return address(bytes20(_bytes[_start:end]));\\n }\\n }\\n\\n function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n unchecked {\\n uint256 end = _start + 32;\\n return bytes32(_bytes[_start:end]);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\\npragma solidity ^0.8.20;\\n\\ntype BitMap256 is uint256;\\n\\nusing BitMaps for BitMap256 global;\\n\\nlibrary BitMaps {\\n /**\\n * @dev Returns whether the bit at `index` is set.\\n */\\n function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\\n uint256 mask = 1 << index;\\n return BitMap256.unwrap(bitmap) & mask != 0;\\n }\\n\\n /**\\n * @dev Sets the bit at `index`.\\n */\\n function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\\n uint256 mask = 1 << index;\\n return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\\n }\\n}\\n\",\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { CalldataBytesLib } from \\\"../../libs/CalldataBytesLib.sol\\\";\\n\\nlibrary ExecutorOptions {\\n using CalldataBytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 1;\\n\\n uint8 internal constant OPTION_TYPE_LZRECEIVE = 1;\\n uint8 internal constant OPTION_TYPE_NATIVE_DROP = 2;\\n uint8 internal constant OPTION_TYPE_LZCOMPOSE = 3;\\n uint8 internal constant OPTION_TYPE_ORDERED_EXECUTION = 4;\\n\\n error Executor_InvalidLzReceiveOption();\\n error Executor_InvalidNativeDropOption();\\n error Executor_InvalidLzComposeOption();\\n\\n /// @dev decode the next executor option from the options starting from the specified cursor\\n /// @param _options [executor_id][executor_option][executor_id][executor_option]...\\n /// executor_option = [option_size][option_type][option]\\n /// option_size = len(option_type) + len(option)\\n /// executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @param _cursor the cursor to start decoding from\\n /// @return optionType the type of the option\\n /// @return option the option of the executor\\n /// @return cursor the cursor to start decoding the next executor option\\n function nextExecutorOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor);\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 1; // skip option type\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n\\n function decodeLzReceiveOption(bytes calldata _option) internal pure returns (uint128 gas, uint128 value) {\\n if (_option.length != 16 && _option.length != 32) revert Executor_InvalidLzReceiveOption();\\n gas = _option.toU128(0);\\n value = _option.length == 32 ? _option.toU128(16) : 0;\\n }\\n\\n function decodeNativeDropOption(bytes calldata _option) internal pure returns (uint128 amount, bytes32 receiver) {\\n if (_option.length != 48) revert Executor_InvalidNativeDropOption();\\n amount = _option.toU128(0);\\n receiver = _option.toB32(16);\\n }\\n\\n function decodeLzComposeOption(\\n bytes calldata _option\\n ) internal pure returns (uint16 index, uint128 gas, uint128 value) {\\n if (_option.length != 18 && _option.length != 34) revert Executor_InvalidLzComposeOption();\\n index = _option.toU16(0);\\n gas = _option.toU128(2);\\n value = _option.length == 34 ? _option.toU128(18) : 0;\\n }\\n\\n function encodeLzReceiveOption(uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_gas) : abi.encodePacked(_gas, _value);\\n }\\n\\n function encodeNativeDropOption(uint128 _amount, bytes32 _receiver) internal pure returns (bytes memory) {\\n return abi.encodePacked(_amount, _receiver);\\n }\\n\\n function encodeLzComposeOption(uint16 _index, uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_index, _gas) : abi.encodePacked(_index, _gas, _value);\\n }\\n}\\n\",\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\"},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SafeCast.sol)\\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\\n * checks.\\n *\\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\\n * easily result in undesired exploitation or bugs, since developers usually\\n * assume that overflows raise errors. `SafeCast` restores this intuition by\\n * reverting the transaction when such an operation overflows.\\n *\\n * Using this library instead of the unchecked operations eliminates an entire\\n * class of bugs, so it's recommended to use it always.\\n */\\nlibrary SafeCast {\\n /**\\n * @dev Value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\\n\\n /**\\n * @dev An int value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedIntToUint(int256 value);\\n\\n /**\\n * @dev Value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\\n\\n /**\\n * @dev An uint value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedUintToInt(uint256 value);\\n\\n /**\\n * @dev Returns the downcasted uint248 from uint256, reverting on\\n * overflow (when the input is greater than largest uint248).\\n *\\n * Counterpart to Solidity's `uint248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toUint248(uint256 value) internal pure returns (uint248) {\\n if (value > type(uint248).max) {\\n revert SafeCastOverflowedUintDowncast(248, value);\\n }\\n return uint248(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint240 from uint256, reverting on\\n * overflow (when the input is greater than largest uint240).\\n *\\n * Counterpart to Solidity's `uint240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toUint240(uint256 value) internal pure returns (uint240) {\\n if (value > type(uint240).max) {\\n revert SafeCastOverflowedUintDowncast(240, value);\\n }\\n return uint240(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint232 from uint256, reverting on\\n * overflow (when the input is greater than largest uint232).\\n *\\n * Counterpart to Solidity's `uint232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toUint232(uint256 value) internal pure returns (uint232) {\\n if (value > type(uint232).max) {\\n revert SafeCastOverflowedUintDowncast(232, value);\\n }\\n return uint232(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint224 from uint256, reverting on\\n * overflow (when the input is greater than largest uint224).\\n *\\n * Counterpart to Solidity's `uint224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toUint224(uint256 value) internal pure returns (uint224) {\\n if (value > type(uint224).max) {\\n revert SafeCastOverflowedUintDowncast(224, value);\\n }\\n return uint224(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint216 from uint256, reverting on\\n * overflow (when the input is greater than largest uint216).\\n *\\n * Counterpart to Solidity's `uint216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toUint216(uint256 value) internal pure returns (uint216) {\\n if (value > type(uint216).max) {\\n revert SafeCastOverflowedUintDowncast(216, value);\\n }\\n return uint216(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint208 from uint256, reverting on\\n * overflow (when the input is greater than largest uint208).\\n *\\n * Counterpart to Solidity's `uint208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toUint208(uint256 value) internal pure returns (uint208) {\\n if (value > type(uint208).max) {\\n revert SafeCastOverflowedUintDowncast(208, value);\\n }\\n return uint208(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint200 from uint256, reverting on\\n * overflow (when the input is greater than largest uint200).\\n *\\n * Counterpart to Solidity's `uint200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toUint200(uint256 value) internal pure returns (uint200) {\\n if (value > type(uint200).max) {\\n revert SafeCastOverflowedUintDowncast(200, value);\\n }\\n return uint200(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint192 from uint256, reverting on\\n * overflow (when the input is greater than largest uint192).\\n *\\n * Counterpart to Solidity's `uint192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toUint192(uint256 value) internal pure returns (uint192) {\\n if (value > type(uint192).max) {\\n revert SafeCastOverflowedUintDowncast(192, value);\\n }\\n return uint192(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint184 from uint256, reverting on\\n * overflow (when the input is greater than largest uint184).\\n *\\n * Counterpart to Solidity's `uint184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toUint184(uint256 value) internal pure returns (uint184) {\\n if (value > type(uint184).max) {\\n revert SafeCastOverflowedUintDowncast(184, value);\\n }\\n return uint184(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint176 from uint256, reverting on\\n * overflow (when the input is greater than largest uint176).\\n *\\n * Counterpart to Solidity's `uint176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toUint176(uint256 value) internal pure returns (uint176) {\\n if (value > type(uint176).max) {\\n revert SafeCastOverflowedUintDowncast(176, value);\\n }\\n return uint176(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint168 from uint256, reverting on\\n * overflow (when the input is greater than largest uint168).\\n *\\n * Counterpart to Solidity's `uint168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toUint168(uint256 value) internal pure returns (uint168) {\\n if (value > type(uint168).max) {\\n revert SafeCastOverflowedUintDowncast(168, value);\\n }\\n return uint168(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint160 from uint256, reverting on\\n * overflow (when the input is greater than largest uint160).\\n *\\n * Counterpart to Solidity's `uint160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toUint160(uint256 value) internal pure returns (uint160) {\\n if (value > type(uint160).max) {\\n revert SafeCastOverflowedUintDowncast(160, value);\\n }\\n return uint160(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint152 from uint256, reverting on\\n * overflow (when the input is greater than largest uint152).\\n *\\n * Counterpart to Solidity's `uint152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toUint152(uint256 value) internal pure returns (uint152) {\\n if (value > type(uint152).max) {\\n revert SafeCastOverflowedUintDowncast(152, value);\\n }\\n return uint152(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint144 from uint256, reverting on\\n * overflow (when the input is greater than largest uint144).\\n *\\n * Counterpart to Solidity's `uint144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toUint144(uint256 value) internal pure returns (uint144) {\\n if (value > type(uint144).max) {\\n revert SafeCastOverflowedUintDowncast(144, value);\\n }\\n return uint144(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint136 from uint256, reverting on\\n * overflow (when the input is greater than largest uint136).\\n *\\n * Counterpart to Solidity's `uint136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toUint136(uint256 value) internal pure returns (uint136) {\\n if (value > type(uint136).max) {\\n revert SafeCastOverflowedUintDowncast(136, value);\\n }\\n return uint136(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint128 from uint256, reverting on\\n * overflow (when the input is greater than largest uint128).\\n *\\n * Counterpart to Solidity's `uint128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toUint128(uint256 value) internal pure returns (uint128) {\\n if (value > type(uint128).max) {\\n revert SafeCastOverflowedUintDowncast(128, value);\\n }\\n return uint128(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint120 from uint256, reverting on\\n * overflow (when the input is greater than largest uint120).\\n *\\n * Counterpart to Solidity's `uint120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toUint120(uint256 value) internal pure returns (uint120) {\\n if (value > type(uint120).max) {\\n revert SafeCastOverflowedUintDowncast(120, value);\\n }\\n return uint120(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint112 from uint256, reverting on\\n * overflow (when the input is greater than largest uint112).\\n *\\n * Counterpart to Solidity's `uint112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toUint112(uint256 value) internal pure returns (uint112) {\\n if (value > type(uint112).max) {\\n revert SafeCastOverflowedUintDowncast(112, value);\\n }\\n return uint112(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint104 from uint256, reverting on\\n * overflow (when the input is greater than largest uint104).\\n *\\n * Counterpart to Solidity's `uint104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toUint104(uint256 value) internal pure returns (uint104) {\\n if (value > type(uint104).max) {\\n revert SafeCastOverflowedUintDowncast(104, value);\\n }\\n return uint104(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint96 from uint256, reverting on\\n * overflow (when the input is greater than largest uint96).\\n *\\n * Counterpart to Solidity's `uint96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toUint96(uint256 value) internal pure returns (uint96) {\\n if (value > type(uint96).max) {\\n revert SafeCastOverflowedUintDowncast(96, value);\\n }\\n return uint96(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint88 from uint256, reverting on\\n * overflow (when the input is greater than largest uint88).\\n *\\n * Counterpart to Solidity's `uint88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toUint88(uint256 value) internal pure returns (uint88) {\\n if (value > type(uint88).max) {\\n revert SafeCastOverflowedUintDowncast(88, value);\\n }\\n return uint88(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint80 from uint256, reverting on\\n * overflow (when the input is greater than largest uint80).\\n *\\n * Counterpart to Solidity's `uint80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toUint80(uint256 value) internal pure returns (uint80) {\\n if (value > type(uint80).max) {\\n revert SafeCastOverflowedUintDowncast(80, value);\\n }\\n return uint80(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint72 from uint256, reverting on\\n * overflow (when the input is greater than largest uint72).\\n *\\n * Counterpart to Solidity's `uint72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toUint72(uint256 value) internal pure returns (uint72) {\\n if (value > type(uint72).max) {\\n revert SafeCastOverflowedUintDowncast(72, value);\\n }\\n return uint72(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint64 from uint256, reverting on\\n * overflow (when the input is greater than largest uint64).\\n *\\n * Counterpart to Solidity's `uint64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toUint64(uint256 value) internal pure returns (uint64) {\\n if (value > type(uint64).max) {\\n revert SafeCastOverflowedUintDowncast(64, value);\\n }\\n return uint64(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint56 from uint256, reverting on\\n * overflow (when the input is greater than largest uint56).\\n *\\n * Counterpart to Solidity's `uint56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toUint56(uint256 value) internal pure returns (uint56) {\\n if (value > type(uint56).max) {\\n revert SafeCastOverflowedUintDowncast(56, value);\\n }\\n return uint56(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint48 from uint256, reverting on\\n * overflow (when the input is greater than largest uint48).\\n *\\n * Counterpart to Solidity's `uint48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toUint48(uint256 value) internal pure returns (uint48) {\\n if (value > type(uint48).max) {\\n revert SafeCastOverflowedUintDowncast(48, value);\\n }\\n return uint48(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint40 from uint256, reverting on\\n * overflow (when the input is greater than largest uint40).\\n *\\n * Counterpart to Solidity's `uint40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toUint40(uint256 value) internal pure returns (uint40) {\\n if (value > type(uint40).max) {\\n revert SafeCastOverflowedUintDowncast(40, value);\\n }\\n return uint40(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint32 from uint256, reverting on\\n * overflow (when the input is greater than largest uint32).\\n *\\n * Counterpart to Solidity's `uint32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toUint32(uint256 value) internal pure returns (uint32) {\\n if (value > type(uint32).max) {\\n revert SafeCastOverflowedUintDowncast(32, value);\\n }\\n return uint32(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint24 from uint256, reverting on\\n * overflow (when the input is greater than largest uint24).\\n *\\n * Counterpart to Solidity's `uint24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toUint24(uint256 value) internal pure returns (uint24) {\\n if (value > type(uint24).max) {\\n revert SafeCastOverflowedUintDowncast(24, value);\\n }\\n return uint24(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint16 from uint256, reverting on\\n * overflow (when the input is greater than largest uint16).\\n *\\n * Counterpart to Solidity's `uint16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toUint16(uint256 value) internal pure returns (uint16) {\\n if (value > type(uint16).max) {\\n revert SafeCastOverflowedUintDowncast(16, value);\\n }\\n return uint16(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint8 from uint256, reverting on\\n * overflow (when the input is greater than largest uint8).\\n *\\n * Counterpart to Solidity's `uint8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toUint8(uint256 value) internal pure returns (uint8) {\\n if (value > type(uint8).max) {\\n revert SafeCastOverflowedUintDowncast(8, value);\\n }\\n return uint8(value);\\n }\\n\\n /**\\n * @dev Converts a signed int256 into an unsigned uint256.\\n *\\n * Requirements:\\n *\\n * - input must be greater than or equal to 0.\\n */\\n function toUint256(int256 value) internal pure returns (uint256) {\\n if (value < 0) {\\n revert SafeCastOverflowedIntToUint(value);\\n }\\n return uint256(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted int248 from int256, reverting on\\n * overflow (when the input is less than smallest int248 or\\n * greater than largest int248).\\n *\\n * Counterpart to Solidity's `int248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\\n downcasted = int248(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(248, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int240 from int256, reverting on\\n * overflow (when the input is less than smallest int240 or\\n * greater than largest int240).\\n *\\n * Counterpart to Solidity's `int240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\\n downcasted = int240(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(240, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int232 from int256, reverting on\\n * overflow (when the input is less than smallest int232 or\\n * greater than largest int232).\\n *\\n * Counterpart to Solidity's `int232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\\n downcasted = int232(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(232, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int224 from int256, reverting on\\n * overflow (when the input is less than smallest int224 or\\n * greater than largest int224).\\n *\\n * Counterpart to Solidity's `int224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\\n downcasted = int224(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(224, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int216 from int256, reverting on\\n * overflow (when the input is less than smallest int216 or\\n * greater than largest int216).\\n *\\n * Counterpart to Solidity's `int216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\\n downcasted = int216(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(216, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int208 from int256, reverting on\\n * overflow (when the input is less than smallest int208 or\\n * greater than largest int208).\\n *\\n * Counterpart to Solidity's `int208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\\n downcasted = int208(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(208, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int200 from int256, reverting on\\n * overflow (when the input is less than smallest int200 or\\n * greater than largest int200).\\n *\\n * Counterpart to Solidity's `int200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\\n downcasted = int200(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(200, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int192 from int256, reverting on\\n * overflow (when the input is less than smallest int192 or\\n * greater than largest int192).\\n *\\n * Counterpart to Solidity's `int192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\\n downcasted = int192(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(192, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int184 from int256, reverting on\\n * overflow (when the input is less than smallest int184 or\\n * greater than largest int184).\\n *\\n * Counterpart to Solidity's `int184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\\n downcasted = int184(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(184, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int176 from int256, reverting on\\n * overflow (when the input is less than smallest int176 or\\n * greater than largest int176).\\n *\\n * Counterpart to Solidity's `int176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\\n downcasted = int176(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(176, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int168 from int256, reverting on\\n * overflow (when the input is less than smallest int168 or\\n * greater than largest int168).\\n *\\n * Counterpart to Solidity's `int168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\\n downcasted = int168(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(168, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int160 from int256, reverting on\\n * overflow (when the input is less than smallest int160 or\\n * greater than largest int160).\\n *\\n * Counterpart to Solidity's `int160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\\n downcasted = int160(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(160, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int152 from int256, reverting on\\n * overflow (when the input is less than smallest int152 or\\n * greater than largest int152).\\n *\\n * Counterpart to Solidity's `int152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\\n downcasted = int152(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(152, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int144 from int256, reverting on\\n * overflow (when the input is less than smallest int144 or\\n * greater than largest int144).\\n *\\n * Counterpart to Solidity's `int144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\\n downcasted = int144(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(144, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int136 from int256, reverting on\\n * overflow (when the input is less than smallest int136 or\\n * greater than largest int136).\\n *\\n * Counterpart to Solidity's `int136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\\n downcasted = int136(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(136, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int128 from int256, reverting on\\n * overflow (when the input is less than smallest int128 or\\n * greater than largest int128).\\n *\\n * Counterpart to Solidity's `int128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\\n downcasted = int128(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(128, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int120 from int256, reverting on\\n * overflow (when the input is less than smallest int120 or\\n * greater than largest int120).\\n *\\n * Counterpart to Solidity's `int120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\\n downcasted = int120(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(120, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int112 from int256, reverting on\\n * overflow (when the input is less than smallest int112 or\\n * greater than largest int112).\\n *\\n * Counterpart to Solidity's `int112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\\n downcasted = int112(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(112, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int104 from int256, reverting on\\n * overflow (when the input is less than smallest int104 or\\n * greater than largest int104).\\n *\\n * Counterpart to Solidity's `int104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\\n downcasted = int104(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(104, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int96 from int256, reverting on\\n * overflow (when the input is less than smallest int96 or\\n * greater than largest int96).\\n *\\n * Counterpart to Solidity's `int96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\\n downcasted = int96(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(96, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int88 from int256, reverting on\\n * overflow (when the input is less than smallest int88 or\\n * greater than largest int88).\\n *\\n * Counterpart to Solidity's `int88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\\n downcasted = int88(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(88, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int80 from int256, reverting on\\n * overflow (when the input is less than smallest int80 or\\n * greater than largest int80).\\n *\\n * Counterpart to Solidity's `int80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\\n downcasted = int80(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(80, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int72 from int256, reverting on\\n * overflow (when the input is less than smallest int72 or\\n * greater than largest int72).\\n *\\n * Counterpart to Solidity's `int72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\\n downcasted = int72(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(72, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int64 from int256, reverting on\\n * overflow (when the input is less than smallest int64 or\\n * greater than largest int64).\\n *\\n * Counterpart to Solidity's `int64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\\n downcasted = int64(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(64, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int56 from int256, reverting on\\n * overflow (when the input is less than smallest int56 or\\n * greater than largest int56).\\n *\\n * Counterpart to Solidity's `int56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\\n downcasted = int56(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(56, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int48 from int256, reverting on\\n * overflow (when the input is less than smallest int48 or\\n * greater than largest int48).\\n *\\n * Counterpart to Solidity's `int48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\\n downcasted = int48(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(48, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int40 from int256, reverting on\\n * overflow (when the input is less than smallest int40 or\\n * greater than largest int40).\\n *\\n * Counterpart to Solidity's `int40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\\n downcasted = int40(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(40, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int32 from int256, reverting on\\n * overflow (when the input is less than smallest int32 or\\n * greater than largest int32).\\n *\\n * Counterpart to Solidity's `int32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\\n downcasted = int32(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(32, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int24 from int256, reverting on\\n * overflow (when the input is less than smallest int24 or\\n * greater than largest int24).\\n *\\n * Counterpart to Solidity's `int24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\\n downcasted = int24(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(24, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int16 from int256, reverting on\\n * overflow (when the input is less than smallest int16 or\\n * greater than largest int16).\\n *\\n * Counterpart to Solidity's `int16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\\n downcasted = int16(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(16, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int8 from int256, reverting on\\n * overflow (when the input is less than smallest int8 or\\n * greater than largest int8).\\n *\\n * Counterpart to Solidity's `int8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\\n downcasted = int8(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(8, value);\\n }\\n }\\n\\n /**\\n * @dev Converts an unsigned uint256 into a signed int256.\\n *\\n * Requirements:\\n *\\n * - input must be less than or equal to maxInt256.\\n */\\n function toInt256(uint256 value) internal pure returns (int256) {\\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\\n if (value > uint256(type(int256).max)) {\\n revert SafeCastOverflowedUintToInt(value);\\n }\\n return int256(value);\\n }\\n}\\n\",\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\"},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equal_nonAligned(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let endMinusWord := add(_preBytes, length)\\n let mc := add(_preBytes, 0x20)\\n let cc := add(_postBytes, 0x20)\\n\\n for {\\n // the next line is the loop condition:\\n // while(uint256(mc < endWord) + cb == 2)\\n } eq(add(lt(mc, endMinusWord), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n\\n // Only if still successful\\n // For <1 word tail bytes\\n if gt(success, 0) {\\n // Get the remainder of length/32\\n // length % 32 = AND(length, 32 - 1)\\n let numTailBytes := and(length, 0x1f)\\n let mcRem := mload(mc)\\n let ccRem := mload(cc)\\n for {\\n let i := 0\\n // the next line is the loop condition:\\n // while(uint256(i < numTailBytes) + cb == 2)\\n } eq(add(lt(i, numTailBytes), cb), 2) {\\n i := add(i, 1)\\n } {\\n if iszero(eq(byte(i, mcRem), byte(i, ccRem))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"OAppPreCrimeSimulator":{"abi":[{"inputs":[],"name":"OnlySelf","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"name":"SimulationResult","type":"error"},{"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":"address","name":"preCrimeAddress","type":"address"}],"name":"PreCrimeSet","type":"event"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]"}],"name":"lzReceiveAndRevert","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceiveSimulate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"address","name":"_preCrime","type":"address"}],"name":"setPreCrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Abstract contract serving as the base for preCrime simulation functionality in an OApp.","errors":{"OwnableInvalidOwner(address)":[{"details":"The owner is not a valid owner account. (eg. `address(0)`)"}],"OwnableUnauthorizedAccount(address)":[{"details":"The caller account is not authorized to perform an operation."}]},"events":{"PreCrimeSet(address)":{"details":"Emitted when the preCrime contract address is set.","params":{"preCrimeAddress":"The address of the preCrime contract."}}},"kind":"dev","methods":{"isPeer(uint32,bytes32)":{"details":"checks if the specified peer is considered 'trusted' by the OApp.","params":{"_eid":"The endpoint Id to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"stateVariables":{"preCrime":{"details":"Retrieves the address of the preCrime contract implementation.","return":"The address of the preCrime contract.","returns":{"_0":"The address of the preCrime contract."}}},"title":"OAppPreCrimeSimulator","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"isPeer(uint32,bytes32)":"5a0dfe4d","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","oApp()":"52ae2879","owner()":"8da5cb5b","preCrime()":"b731ea0a","renounceOwnership()":"715018a6","setPreCrime(address)":"d4243885","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"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\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract serving as the base for preCrime simulation functionality in an OApp.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"isPeer(uint32,bytes32)\":{\"details\":\"checks if the specified peer is considered 'trusted' by the OApp.\",\"params\":{\"_eid\":\"The endpoint Id to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"preCrime\":{\"details\":\"Retrieves the address of the preCrime contract implementation.\",\"return\":\"The address of the preCrime contract.\",\"returns\":{\"_0\":\"The address of the preCrime contract.\"}}},\"title\":\"OAppPreCrimeSimulator\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":\"OAppPreCrimeSimulator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IPreCrime } from \\\"./interfaces/IPreCrime.sol\\\";\\nimport { IOAppPreCrimeSimulator, InboundPacket, Origin } from \\\"./interfaces/IOAppPreCrimeSimulator.sol\\\";\\n\\n/**\\n * @title OAppPreCrimeSimulator\\n * @dev Abstract contract serving as the base for preCrime simulation functionality in an OApp.\\n */\\nabstract contract OAppPreCrimeSimulator is IOAppPreCrimeSimulator, Ownable {\\n // The address of the preCrime implementation.\\n address public preCrime;\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n *\\n * @dev The simulator contract is the base contract for the OApp by default.\\n * @dev If the simulator is a separate contract, override this function.\\n */\\n function oApp() external view virtual returns (address) {\\n return address(this);\\n }\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) public virtual onlyOwner {\\n preCrime = _preCrime;\\n emit PreCrimeSet(_preCrime);\\n }\\n\\n /**\\n * @dev Interface for pre-crime simulations. Always reverts at the end with the simulation results.\\n * @param _packets An array of InboundPacket objects representing received packets to be delivered.\\n *\\n * @dev WARNING: MUST revert at the end with the simulation results.\\n * @dev Gives the preCrime implementation the ability to mock sending packets to the lzReceive function,\\n * WITHOUT actually executing them.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) public payable virtual {\\n for (uint256 i = 0; i < _packets.length; i++) {\\n InboundPacket calldata packet = _packets[i];\\n\\n // Ignore packets that are not from trusted peers.\\n if (!isPeer(packet.origin.srcEid, packet.origin.sender)) continue;\\n\\n // @dev Because a verifier is calling this function, it doesnt have access to executor params:\\n // - address _executor\\n // - bytes calldata _extraData\\n // preCrime will NOT work for OApps that rely on these two parameters inside of their _lzReceive().\\n // They are instead stubbed to default values, address(0) and bytes(\\\"\\\")\\n // @dev Calling this.lzReceiveSimulate removes ability for assembly return 0 callstack exit,\\n // which would cause the revert to be ignored.\\n this.lzReceiveSimulate{ value: packet.value }(\\n packet.origin,\\n packet.guid,\\n packet.message,\\n packet.executor,\\n packet.extraData\\n );\\n }\\n\\n // @dev Revert with the simulation results. msg.sender must implement IPreCrime.buildSimulationResult().\\n revert SimulationResult(IPreCrime(msg.sender).buildSimulationResult());\\n }\\n\\n /**\\n * @dev Is effectively an internal function because msg.sender must be address(this).\\n * Allows resetting the call stack for 'internal' calls.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier of the packet.\\n * @param _message The message payload of the packet.\\n * @param _executor The executor address for the packet.\\n * @param _extraData Additional data for the packet.\\n */\\n function lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable virtual {\\n // @dev Ensure ONLY can be called 'internally'.\\n if (msg.sender != address(this)) revert OnlySelf();\\n _lzReceiveSimulate(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\\n * @param _origin The origin information.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address from the src chain.\\n * - nonce: The nonce of the LayerZero message.\\n * @param _guid The GUID of the LayerZero message.\\n * @param _message The LayerZero message.\\n * @param _executor The address of the off-chain executor.\\n * @param _extraData Arbitrary data passed by the msg executor.\\n *\\n * @dev Enables the preCrime simulator to mock sending lzReceive() messages,\\n * routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\\n */\\n function _lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual returns (bool);\\n}\\n\",\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the Origin so it's exposed to OAppPreCrimeSimulator implementers.\\n// solhint-disable-next-line no-unused-import\\nimport { InboundPacket, Origin } from \\\"../libs/Packet.sol\\\";\\n\\n/**\\n * @title IOAppPreCrimeSimulator Interface\\n * @dev Interface for the preCrime simulation functionality in an OApp.\\n */\\ninterface IOAppPreCrimeSimulator {\\n // @dev simulation result used in PreCrime implementation\\n error SimulationResult(bytes result);\\n error OnlySelf();\\n\\n /**\\n * @dev Emitted when the preCrime contract address is set.\\n * @param preCrimeAddress The address of the preCrime contract.\\n */\\n event PreCrimeSet(address preCrimeAddress);\\n\\n /**\\n * @dev Retrieves the address of the preCrime contract implementation.\\n * @return The address of the preCrime contract.\\n */\\n function preCrime() external view returns (address);\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n */\\n function oApp() external view returns (address);\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) external;\\n\\n /**\\n * @dev Mocks receiving a packet, then reverts with a series of data to infer the state/result.\\n * @param _packets An array of LayerZero InboundPacket objects representing received packets.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) external payable;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\nstruct PreCrimePeer {\\n uint32 eid;\\n bytes32 preCrime;\\n bytes32 oApp;\\n}\\n\\n// TODO not done yet\\ninterface IPreCrime {\\n error OnlyOffChain();\\n\\n // for simulate()\\n error PacketOversize(uint256 max, uint256 actual);\\n error PacketUnsorted();\\n error SimulationFailed(bytes reason);\\n\\n // for preCrime()\\n error SimulationResultNotFound(uint32 eid);\\n error InvalidSimulationResult(uint32 eid, bytes reason);\\n error CrimeFound(bytes crime);\\n\\n function getConfig(bytes[] calldata _packets, uint256[] calldata _packetMsgValues) external returns (bytes memory);\\n\\n function simulate(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues\\n ) external payable returns (bytes memory);\\n\\n function buildSimulationResult() external view returns (bytes memory);\\n\\n function preCrime(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues,\\n bytes[] calldata _simulations\\n ) external;\\n\\n function version() external view returns (uint64 major, uint8 minor);\\n}\\n\",\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { PacketV1Codec } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\\\";\\n\\n/**\\n * @title InboundPacket\\n * @dev Structure representing an inbound packet received by the contract.\\n */\\nstruct InboundPacket {\\n Origin origin; // Origin information of the packet.\\n uint32 dstEid; // Destination endpointId of the packet.\\n address receiver; // Receiver address for the packet.\\n bytes32 guid; // Unique identifier of the packet.\\n uint256 value; // msg.value of the packet.\\n address executor; // Executor address for the packet.\\n bytes message; // Message payload of the packet.\\n bytes extraData; // Additional arbitrary data for the packet.\\n}\\n\\n/**\\n * @title PacketDecoder\\n * @dev Library for decoding LayerZero packets.\\n */\\nlibrary PacketDecoder {\\n using PacketV1Codec for bytes;\\n\\n /**\\n * @dev Decode an inbound packet from the given packet data.\\n * @param _packet The packet data to decode.\\n * @return packet An InboundPacket struct representing the decoded packet.\\n */\\n function decode(bytes calldata _packet) internal pure returns (InboundPacket memory packet) {\\n packet.origin = Origin(_packet.srcEid(), _packet.sender(), _packet.nonce());\\n packet.dstEid = _packet.dstEid();\\n packet.receiver = _packet.receiverB20();\\n packet.guid = _packet.guid();\\n packet.message = _packet.message();\\n }\\n\\n /**\\n * @dev Decode multiple inbound packets from the given packet data and associated message values.\\n * @param _packets An array of packet data to decode.\\n * @param _packetMsgValues An array of associated message values for each packet.\\n * @return packets An array of InboundPacket structs representing the decoded packets.\\n */\\n function decode(\\n bytes[] calldata _packets,\\n uint256[] memory _packetMsgValues\\n ) internal pure returns (InboundPacket[] memory packets) {\\n packets = new InboundPacket[](_packets.length);\\n for (uint256 i = 0; i < _packets.length; i++) {\\n bytes calldata packet = _packets[i];\\n packets[i] = PacketDecoder.decode(packet);\\n // @dev Allows the verifier to specify the msg.value that gets passed in lzReceive.\\n packets[i].value = _packetMsgValues[i];\\n }\\n }\\n}\\n\",\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\nimport { SetConfigParam } from \\\"./IMessageLibManager.sol\\\";\\n\\nenum MessageLibType {\\n Send,\\n Receive,\\n SendAndReceive\\n}\\n\\ninterface IMessageLib is IERC165 {\\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\\n\\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n // message libs of same major version are compatible\\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\\n\\n function messageLibType() external view returns (MessageLibType);\\n}\\n\",\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { MessagingFee } from \\\"./ILayerZeroEndpointV2.sol\\\";\\nimport { IMessageLib } from \\\"./IMessageLib.sol\\\";\\n\\nstruct Packet {\\n uint64 nonce;\\n uint32 srcEid;\\n address sender;\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes32 guid;\\n bytes message;\\n}\\n\\ninterface ISendLib is IMessageLib {\\n function send(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external returns (MessagingFee memory, bytes memory encodedPacket);\\n\\n function quote(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external view returns (MessagingFee memory);\\n\\n function setTreasury(address _treasury) external;\\n\\n function withdrawFee(address _to, uint256 _amount) external;\\n\\n function withdrawLzTokenFee(address _lzToken, address _to, uint256 _amount) external;\\n}\\n\",\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary AddressCast {\\n error AddressCast_InvalidSizeForAddress();\\n error AddressCast_InvalidAddress();\\n\\n function toBytes32(bytes calldata _addressBytes) internal pure returns (bytes32 result) {\\n if (_addressBytes.length > 32) revert AddressCast_InvalidAddress();\\n result = bytes32(_addressBytes);\\n unchecked {\\n uint256 offset = 32 - _addressBytes.length;\\n result = result >> (offset * 8);\\n }\\n }\\n\\n function toBytes32(address _address) internal pure returns (bytes32 result) {\\n result = bytes32(uint256(uint160(_address)));\\n }\\n\\n function toBytes(bytes32 _addressBytes32, uint256 _size) internal pure returns (bytes memory result) {\\n if (_size == 0 || _size > 32) revert AddressCast_InvalidSizeForAddress();\\n result = new bytes(_size);\\n unchecked {\\n uint256 offset = 256 - _size * 8;\\n assembly {\\n mstore(add(result, 32), shl(offset, _addressBytes32))\\n }\\n }\\n }\\n\\n function toAddress(bytes32 _addressBytes32) internal pure returns (address result) {\\n result = address(uint160(uint256(_addressBytes32)));\\n }\\n\\n function toAddress(bytes calldata _addressBytes) internal pure returns (address result) {\\n if (_addressBytes.length != 20) revert AddressCast_InvalidAddress();\\n result = address(bytes20(_addressBytes));\\n }\\n}\\n\",\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { Packet } from \\\"../../interfaces/ISendLib.sol\\\";\\nimport { AddressCast } from \\\"../../libs/AddressCast.sol\\\";\\n\\nlibrary PacketV1Codec {\\n using AddressCast for address;\\n using AddressCast for bytes32;\\n\\n uint8 internal constant PACKET_VERSION = 1;\\n\\n // header (version + nonce + path)\\n // version\\n uint256 private constant PACKET_VERSION_OFFSET = 0;\\n // nonce\\n uint256 private constant NONCE_OFFSET = 1;\\n // path\\n uint256 private constant SRC_EID_OFFSET = 9;\\n uint256 private constant SENDER_OFFSET = 13;\\n uint256 private constant DST_EID_OFFSET = 45;\\n uint256 private constant RECEIVER_OFFSET = 49;\\n // payload (guid + message)\\n uint256 private constant GUID_OFFSET = 81; // keccak256(nonce + path)\\n uint256 private constant MESSAGE_OFFSET = 113;\\n\\n function encode(Packet memory _packet) internal pure returns (bytes memory encodedPacket) {\\n encodedPacket = abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver,\\n _packet.guid,\\n _packet.message\\n );\\n }\\n\\n function encodePacketHeader(Packet memory _packet) internal pure returns (bytes memory) {\\n return\\n abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver\\n );\\n }\\n\\n function encodePayload(Packet memory _packet) internal pure returns (bytes memory) {\\n return abi.encodePacked(_packet.guid, _packet.message);\\n }\\n\\n function header(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return _packet[0:GUID_OFFSET];\\n }\\n\\n function version(bytes calldata _packet) internal pure returns (uint8) {\\n return uint8(bytes1(_packet[PACKET_VERSION_OFFSET:NONCE_OFFSET]));\\n }\\n\\n function nonce(bytes calldata _packet) internal pure returns (uint64) {\\n return uint64(bytes8(_packet[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n function srcEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[SRC_EID_OFFSET:SENDER_OFFSET]));\\n }\\n\\n function sender(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[SENDER_OFFSET:DST_EID_OFFSET]);\\n }\\n\\n function senderAddressB20(bytes calldata _packet) internal pure returns (address) {\\n return sender(_packet).toAddress();\\n }\\n\\n function dstEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[DST_EID_OFFSET:RECEIVER_OFFSET]));\\n }\\n\\n function receiver(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[RECEIVER_OFFSET:GUID_OFFSET]);\\n }\\n\\n function receiverB20(bytes calldata _packet) internal pure returns (address) {\\n return receiver(_packet).toAddress();\\n }\\n\\n function guid(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[GUID_OFFSET:MESSAGE_OFFSET]);\\n }\\n\\n function message(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[MESSAGE_OFFSET:]);\\n }\\n\\n function payload(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[GUID_OFFSET:]);\\n }\\n\\n function payloadHash(bytes calldata _packet) internal pure returns (bytes32) {\\n return keccak256(payload(_packet));\\n }\\n}\\n\",\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4963,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol:OAppPreCrimeSimulator","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":1690,"contract":"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol:OAppPreCrimeSimulator","label":"preCrime","offset":0,"slot":"1","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"IOAppPreCrimeSimulator":{"abi":[{"inputs":[],"name":"OnlySelf","type":"error"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"name":"SimulationResult","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"preCrimeAddress","type":"address"}],"name":"PreCrimeSet","type":"event"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]"}],"name":"lzReceiveAndRevert","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"name":"setPreCrime","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface for the preCrime simulation functionality in an OApp.","events":{"PreCrimeSet(address)":{"details":"Emitted when the preCrime contract address is set.","params":{"preCrimeAddress":"The address of the preCrime contract."}}},"kind":"dev","methods":{"isPeer(uint32,bytes32)":{"details":"checks if the specified peer is considered 'trusted' by the OApp.","params":{"_eid":"The endpoint Id to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Mocks receiving a packet, then reverts with a series of data to infer the state/result.","params":{"_packets":"An array of LayerZero InboundPacket objects representing received packets."}},"oApp()":{"details":"Retrieves the address of the OApp contract.","returns":{"_0":"The address of the OApp contract."}},"preCrime()":{"details":"Retrieves the address of the preCrime contract implementation.","returns":{"_0":"The address of the preCrime contract."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}}},"title":"IOAppPreCrimeSimulator Interface","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"isPeer(uint32,bytes32)":"5a0dfe4d","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","oApp()":"52ae2879","preCrime()":"b731ea0a","setPreCrime(address)":"d4243885"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the preCrime simulation functionality in an OApp.\",\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"isPeer(uint32,bytes32)\":{\"details\":\"checks if the specified peer is considered 'trusted' by the OApp.\",\"params\":{\"_eid\":\"The endpoint Id to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Mocks receiving a packet, then reverts with a series of data to infer the state/result.\",\"params\":{\"_packets\":\"An array of LayerZero InboundPacket objects representing received packets.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"preCrime()\":{\"details\":\"Retrieves the address of the preCrime contract implementation.\",\"returns\":{\"_0\":\"The address of the preCrime contract.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}}},\"title\":\"IOAppPreCrimeSimulator Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":\"IOAppPreCrimeSimulator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the Origin so it's exposed to OAppPreCrimeSimulator implementers.\\n// solhint-disable-next-line no-unused-import\\nimport { InboundPacket, Origin } from \\\"../libs/Packet.sol\\\";\\n\\n/**\\n * @title IOAppPreCrimeSimulator Interface\\n * @dev Interface for the preCrime simulation functionality in an OApp.\\n */\\ninterface IOAppPreCrimeSimulator {\\n // @dev simulation result used in PreCrime implementation\\n error SimulationResult(bytes result);\\n error OnlySelf();\\n\\n /**\\n * @dev Emitted when the preCrime contract address is set.\\n * @param preCrimeAddress The address of the preCrime contract.\\n */\\n event PreCrimeSet(address preCrimeAddress);\\n\\n /**\\n * @dev Retrieves the address of the preCrime contract implementation.\\n * @return The address of the preCrime contract.\\n */\\n function preCrime() external view returns (address);\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n */\\n function oApp() external view returns (address);\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) external;\\n\\n /**\\n * @dev Mocks receiving a packet, then reverts with a series of data to infer the state/result.\\n * @param _packets An array of LayerZero InboundPacket objects representing received packets.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) external payable;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { PacketV1Codec } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\\\";\\n\\n/**\\n * @title InboundPacket\\n * @dev Structure representing an inbound packet received by the contract.\\n */\\nstruct InboundPacket {\\n Origin origin; // Origin information of the packet.\\n uint32 dstEid; // Destination endpointId of the packet.\\n address receiver; // Receiver address for the packet.\\n bytes32 guid; // Unique identifier of the packet.\\n uint256 value; // msg.value of the packet.\\n address executor; // Executor address for the packet.\\n bytes message; // Message payload of the packet.\\n bytes extraData; // Additional arbitrary data for the packet.\\n}\\n\\n/**\\n * @title PacketDecoder\\n * @dev Library for decoding LayerZero packets.\\n */\\nlibrary PacketDecoder {\\n using PacketV1Codec for bytes;\\n\\n /**\\n * @dev Decode an inbound packet from the given packet data.\\n * @param _packet The packet data to decode.\\n * @return packet An InboundPacket struct representing the decoded packet.\\n */\\n function decode(bytes calldata _packet) internal pure returns (InboundPacket memory packet) {\\n packet.origin = Origin(_packet.srcEid(), _packet.sender(), _packet.nonce());\\n packet.dstEid = _packet.dstEid();\\n packet.receiver = _packet.receiverB20();\\n packet.guid = _packet.guid();\\n packet.message = _packet.message();\\n }\\n\\n /**\\n * @dev Decode multiple inbound packets from the given packet data and associated message values.\\n * @param _packets An array of packet data to decode.\\n * @param _packetMsgValues An array of associated message values for each packet.\\n * @return packets An array of InboundPacket structs representing the decoded packets.\\n */\\n function decode(\\n bytes[] calldata _packets,\\n uint256[] memory _packetMsgValues\\n ) internal pure returns (InboundPacket[] memory packets) {\\n packets = new InboundPacket[](_packets.length);\\n for (uint256 i = 0; i < _packets.length; i++) {\\n bytes calldata packet = _packets[i];\\n packets[i] = PacketDecoder.decode(packet);\\n // @dev Allows the verifier to specify the msg.value that gets passed in lzReceive.\\n packets[i].value = _packetMsgValues[i];\\n }\\n }\\n}\\n\",\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\nimport { SetConfigParam } from \\\"./IMessageLibManager.sol\\\";\\n\\nenum MessageLibType {\\n Send,\\n Receive,\\n SendAndReceive\\n}\\n\\ninterface IMessageLib is IERC165 {\\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\\n\\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n // message libs of same major version are compatible\\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\\n\\n function messageLibType() external view returns (MessageLibType);\\n}\\n\",\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { MessagingFee } from \\\"./ILayerZeroEndpointV2.sol\\\";\\nimport { IMessageLib } from \\\"./IMessageLib.sol\\\";\\n\\nstruct Packet {\\n uint64 nonce;\\n uint32 srcEid;\\n address sender;\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes32 guid;\\n bytes message;\\n}\\n\\ninterface ISendLib is IMessageLib {\\n function send(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external returns (MessagingFee memory, bytes memory encodedPacket);\\n\\n function quote(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external view returns (MessagingFee memory);\\n\\n function setTreasury(address _treasury) external;\\n\\n function withdrawFee(address _to, uint256 _amount) external;\\n\\n function withdrawLzTokenFee(address _lzToken, address _to, uint256 _amount) external;\\n}\\n\",\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary AddressCast {\\n error AddressCast_InvalidSizeForAddress();\\n error AddressCast_InvalidAddress();\\n\\n function toBytes32(bytes calldata _addressBytes) internal pure returns (bytes32 result) {\\n if (_addressBytes.length > 32) revert AddressCast_InvalidAddress();\\n result = bytes32(_addressBytes);\\n unchecked {\\n uint256 offset = 32 - _addressBytes.length;\\n result = result >> (offset * 8);\\n }\\n }\\n\\n function toBytes32(address _address) internal pure returns (bytes32 result) {\\n result = bytes32(uint256(uint160(_address)));\\n }\\n\\n function toBytes(bytes32 _addressBytes32, uint256 _size) internal pure returns (bytes memory result) {\\n if (_size == 0 || _size > 32) revert AddressCast_InvalidSizeForAddress();\\n result = new bytes(_size);\\n unchecked {\\n uint256 offset = 256 - _size * 8;\\n assembly {\\n mstore(add(result, 32), shl(offset, _addressBytes32))\\n }\\n }\\n }\\n\\n function toAddress(bytes32 _addressBytes32) internal pure returns (address result) {\\n result = address(uint160(uint256(_addressBytes32)));\\n }\\n\\n function toAddress(bytes calldata _addressBytes) internal pure returns (address result) {\\n if (_addressBytes.length != 20) revert AddressCast_InvalidAddress();\\n result = address(bytes20(_addressBytes));\\n }\\n}\\n\",\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { Packet } from \\\"../../interfaces/ISendLib.sol\\\";\\nimport { AddressCast } from \\\"../../libs/AddressCast.sol\\\";\\n\\nlibrary PacketV1Codec {\\n using AddressCast for address;\\n using AddressCast for bytes32;\\n\\n uint8 internal constant PACKET_VERSION = 1;\\n\\n // header (version + nonce + path)\\n // version\\n uint256 private constant PACKET_VERSION_OFFSET = 0;\\n // nonce\\n uint256 private constant NONCE_OFFSET = 1;\\n // path\\n uint256 private constant SRC_EID_OFFSET = 9;\\n uint256 private constant SENDER_OFFSET = 13;\\n uint256 private constant DST_EID_OFFSET = 45;\\n uint256 private constant RECEIVER_OFFSET = 49;\\n // payload (guid + message)\\n uint256 private constant GUID_OFFSET = 81; // keccak256(nonce + path)\\n uint256 private constant MESSAGE_OFFSET = 113;\\n\\n function encode(Packet memory _packet) internal pure returns (bytes memory encodedPacket) {\\n encodedPacket = abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver,\\n _packet.guid,\\n _packet.message\\n );\\n }\\n\\n function encodePacketHeader(Packet memory _packet) internal pure returns (bytes memory) {\\n return\\n abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver\\n );\\n }\\n\\n function encodePayload(Packet memory _packet) internal pure returns (bytes memory) {\\n return abi.encodePacked(_packet.guid, _packet.message);\\n }\\n\\n function header(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return _packet[0:GUID_OFFSET];\\n }\\n\\n function version(bytes calldata _packet) internal pure returns (uint8) {\\n return uint8(bytes1(_packet[PACKET_VERSION_OFFSET:NONCE_OFFSET]));\\n }\\n\\n function nonce(bytes calldata _packet) internal pure returns (uint64) {\\n return uint64(bytes8(_packet[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n function srcEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[SRC_EID_OFFSET:SENDER_OFFSET]));\\n }\\n\\n function sender(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[SENDER_OFFSET:DST_EID_OFFSET]);\\n }\\n\\n function senderAddressB20(bytes calldata _packet) internal pure returns (address) {\\n return sender(_packet).toAddress();\\n }\\n\\n function dstEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[DST_EID_OFFSET:RECEIVER_OFFSET]));\\n }\\n\\n function receiver(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[RECEIVER_OFFSET:GUID_OFFSET]);\\n }\\n\\n function receiverB20(bytes calldata _packet) internal pure returns (address) {\\n return receiver(_packet).toAddress();\\n }\\n\\n function guid(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[GUID_OFFSET:MESSAGE_OFFSET]);\\n }\\n\\n function message(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[MESSAGE_OFFSET:]);\\n }\\n\\n function payload(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[GUID_OFFSET:]);\\n }\\n\\n function payloadHash(bytes calldata _packet) internal pure returns (bytes32) {\\n return keccak256(payload(_packet));\\n }\\n}\\n\",\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"IPreCrime":{"abi":[{"inputs":[{"internalType":"bytes","name":"crime","type":"bytes"}],"name":"CrimeFound","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes","name":"reason","type":"bytes"}],"name":"InvalidSimulationResult","type":"error"},{"inputs":[],"name":"OnlyOffChain","type":"error"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"PacketOversize","type":"error"},{"inputs":[],"name":"PacketUnsorted","type":"error"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"name":"SimulationFailed","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"SimulationResultNotFound","type":"error"},{"inputs":[],"name":"buildSimulationResult","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"_packets","type":"bytes[]"},{"internalType":"uint256[]","name":"_packetMsgValues","type":"uint256[]"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"_packets","type":"bytes[]"},{"internalType":"uint256[]","name":"_packetMsgValues","type":"uint256[]"},{"internalType":"bytes[]","name":"_simulations","type":"bytes[]"}],"name":"preCrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"_packets","type":"bytes[]"},{"internalType":"uint256[]","name":"_packetMsgValues","type":"uint256[]"}],"name":"simulate","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"buildSimulationResult()":"8e9e7099","getConfig(bytes[],uint256[])":"f0cd3836","preCrime(bytes[],uint256[],bytes[])":"10f9cf3a","simulate(bytes[],uint256[])":"50dfa937","version()":"54fd4d50"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"crime\",\"type\":\"bytes\"}],\"name\":\"CrimeFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"InvalidSimulationResult\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyOffChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"PacketOversize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PacketUnsorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"SimulationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"SimulationResultNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"buildSimulationResult\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_packets\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_packetMsgValues\",\"type\":\"uint256[]\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_packets\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_packetMsgValues\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_simulations\",\"type\":\"bytes[]\"}],\"name\":\"preCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_packets\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_packetMsgValues\",\"type\":\"uint256[]\"}],\"name\":\"simulate\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":\"IPreCrime\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\nstruct PreCrimePeer {\\n uint32 eid;\\n bytes32 preCrime;\\n bytes32 oApp;\\n}\\n\\n// TODO not done yet\\ninterface IPreCrime {\\n error OnlyOffChain();\\n\\n // for simulate()\\n error PacketOversize(uint256 max, uint256 actual);\\n error PacketUnsorted();\\n error SimulationFailed(bytes reason);\\n\\n // for preCrime()\\n error SimulationResultNotFound(uint32 eid);\\n error InvalidSimulationResult(uint32 eid, bytes reason);\\n error CrimeFound(bytes crime);\\n\\n function getConfig(bytes[] calldata _packets, uint256[] calldata _packetMsgValues) external returns (bytes memory);\\n\\n function simulate(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues\\n ) external payable returns (bytes memory);\\n\\n function buildSimulationResult() external view returns (bytes memory);\\n\\n function preCrime(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues,\\n bytes[] calldata _simulations\\n ) external;\\n\\n function version() external view returns (uint64 major, uint8 minor);\\n}\\n\",\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"PacketDecoder":{"abi":[],"devdoc":{"details":"Library for decoding LayerZero packets.","kind":"dev","methods":{},"title":"PacketDecoder","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206d908140f6b8800dabab245389ebbc3ff84f3e6b4a20e48e5fa597532882348864736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0x908140F6B8800DABAB245389EBBC EXTCODEHASH 0xF8 0x4F RETURNDATACOPY PUSH12 0x4A20E48E5FA5975328823488 PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"942:1527:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;942:1527:14;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206d908140f6b8800dabab245389ebbc3ff84f3e6b4a20e48e5fa597532882348864736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0x908140F6B8800DABAB245389EBBC EXTCODEHASH 0xF8 0x4F RETURNDATACOPY PUSH12 0x4A20E48E5FA5975328823488 PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"942:1527:14:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"decode(bytes calldata)":"infinite","decode(bytes calldata[] calldata,uint256[] memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for decoding LayerZero packets.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PacketDecoder\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":\"PacketDecoder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { PacketV1Codec } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\\\";\\n\\n/**\\n * @title InboundPacket\\n * @dev Structure representing an inbound packet received by the contract.\\n */\\nstruct InboundPacket {\\n Origin origin; // Origin information of the packet.\\n uint32 dstEid; // Destination endpointId of the packet.\\n address receiver; // Receiver address for the packet.\\n bytes32 guid; // Unique identifier of the packet.\\n uint256 value; // msg.value of the packet.\\n address executor; // Executor address for the packet.\\n bytes message; // Message payload of the packet.\\n bytes extraData; // Additional arbitrary data for the packet.\\n}\\n\\n/**\\n * @title PacketDecoder\\n * @dev Library for decoding LayerZero packets.\\n */\\nlibrary PacketDecoder {\\n using PacketV1Codec for bytes;\\n\\n /**\\n * @dev Decode an inbound packet from the given packet data.\\n * @param _packet The packet data to decode.\\n * @return packet An InboundPacket struct representing the decoded packet.\\n */\\n function decode(bytes calldata _packet) internal pure returns (InboundPacket memory packet) {\\n packet.origin = Origin(_packet.srcEid(), _packet.sender(), _packet.nonce());\\n packet.dstEid = _packet.dstEid();\\n packet.receiver = _packet.receiverB20();\\n packet.guid = _packet.guid();\\n packet.message = _packet.message();\\n }\\n\\n /**\\n * @dev Decode multiple inbound packets from the given packet data and associated message values.\\n * @param _packets An array of packet data to decode.\\n * @param _packetMsgValues An array of associated message values for each packet.\\n * @return packets An array of InboundPacket structs representing the decoded packets.\\n */\\n function decode(\\n bytes[] calldata _packets,\\n uint256[] memory _packetMsgValues\\n ) internal pure returns (InboundPacket[] memory packets) {\\n packets = new InboundPacket[](_packets.length);\\n for (uint256 i = 0; i < _packets.length; i++) {\\n bytes calldata packet = _packets[i];\\n packets[i] = PacketDecoder.decode(packet);\\n // @dev Allows the verifier to specify the msg.value that gets passed in lzReceive.\\n packets[i].value = _packetMsgValues[i];\\n }\\n }\\n}\\n\",\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\nimport { SetConfigParam } from \\\"./IMessageLibManager.sol\\\";\\n\\nenum MessageLibType {\\n Send,\\n Receive,\\n SendAndReceive\\n}\\n\\ninterface IMessageLib is IERC165 {\\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\\n\\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n // message libs of same major version are compatible\\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\\n\\n function messageLibType() external view returns (MessageLibType);\\n}\\n\",\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { MessagingFee } from \\\"./ILayerZeroEndpointV2.sol\\\";\\nimport { IMessageLib } from \\\"./IMessageLib.sol\\\";\\n\\nstruct Packet {\\n uint64 nonce;\\n uint32 srcEid;\\n address sender;\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes32 guid;\\n bytes message;\\n}\\n\\ninterface ISendLib is IMessageLib {\\n function send(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external returns (MessagingFee memory, bytes memory encodedPacket);\\n\\n function quote(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external view returns (MessagingFee memory);\\n\\n function setTreasury(address _treasury) external;\\n\\n function withdrawFee(address _to, uint256 _amount) external;\\n\\n function withdrawLzTokenFee(address _lzToken, address _to, uint256 _amount) external;\\n}\\n\",\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary AddressCast {\\n error AddressCast_InvalidSizeForAddress();\\n error AddressCast_InvalidAddress();\\n\\n function toBytes32(bytes calldata _addressBytes) internal pure returns (bytes32 result) {\\n if (_addressBytes.length > 32) revert AddressCast_InvalidAddress();\\n result = bytes32(_addressBytes);\\n unchecked {\\n uint256 offset = 32 - _addressBytes.length;\\n result = result >> (offset * 8);\\n }\\n }\\n\\n function toBytes32(address _address) internal pure returns (bytes32 result) {\\n result = bytes32(uint256(uint160(_address)));\\n }\\n\\n function toBytes(bytes32 _addressBytes32, uint256 _size) internal pure returns (bytes memory result) {\\n if (_size == 0 || _size > 32) revert AddressCast_InvalidSizeForAddress();\\n result = new bytes(_size);\\n unchecked {\\n uint256 offset = 256 - _size * 8;\\n assembly {\\n mstore(add(result, 32), shl(offset, _addressBytes32))\\n }\\n }\\n }\\n\\n function toAddress(bytes32 _addressBytes32) internal pure returns (address result) {\\n result = address(uint160(uint256(_addressBytes32)));\\n }\\n\\n function toAddress(bytes calldata _addressBytes) internal pure returns (address result) {\\n if (_addressBytes.length != 20) revert AddressCast_InvalidAddress();\\n result = address(bytes20(_addressBytes));\\n }\\n}\\n\",\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { Packet } from \\\"../../interfaces/ISendLib.sol\\\";\\nimport { AddressCast } from \\\"../../libs/AddressCast.sol\\\";\\n\\nlibrary PacketV1Codec {\\n using AddressCast for address;\\n using AddressCast for bytes32;\\n\\n uint8 internal constant PACKET_VERSION = 1;\\n\\n // header (version + nonce + path)\\n // version\\n uint256 private constant PACKET_VERSION_OFFSET = 0;\\n // nonce\\n uint256 private constant NONCE_OFFSET = 1;\\n // path\\n uint256 private constant SRC_EID_OFFSET = 9;\\n uint256 private constant SENDER_OFFSET = 13;\\n uint256 private constant DST_EID_OFFSET = 45;\\n uint256 private constant RECEIVER_OFFSET = 49;\\n // payload (guid + message)\\n uint256 private constant GUID_OFFSET = 81; // keccak256(nonce + path)\\n uint256 private constant MESSAGE_OFFSET = 113;\\n\\n function encode(Packet memory _packet) internal pure returns (bytes memory encodedPacket) {\\n encodedPacket = abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver,\\n _packet.guid,\\n _packet.message\\n );\\n }\\n\\n function encodePacketHeader(Packet memory _packet) internal pure returns (bytes memory) {\\n return\\n abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver\\n );\\n }\\n\\n function encodePayload(Packet memory _packet) internal pure returns (bytes memory) {\\n return abi.encodePacked(_packet.guid, _packet.message);\\n }\\n\\n function header(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return _packet[0:GUID_OFFSET];\\n }\\n\\n function version(bytes calldata _packet) internal pure returns (uint8) {\\n return uint8(bytes1(_packet[PACKET_VERSION_OFFSET:NONCE_OFFSET]));\\n }\\n\\n function nonce(bytes calldata _packet) internal pure returns (uint64) {\\n return uint64(bytes8(_packet[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n function srcEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[SRC_EID_OFFSET:SENDER_OFFSET]));\\n }\\n\\n function sender(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[SENDER_OFFSET:DST_EID_OFFSET]);\\n }\\n\\n function senderAddressB20(bytes calldata _packet) internal pure returns (address) {\\n return sender(_packet).toAddress();\\n }\\n\\n function dstEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[DST_EID_OFFSET:RECEIVER_OFFSET]));\\n }\\n\\n function receiver(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[RECEIVER_OFFSET:GUID_OFFSET]);\\n }\\n\\n function receiverB20(bytes calldata _packet) internal pure returns (address) {\\n return receiver(_packet).toAddress();\\n }\\n\\n function guid(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[GUID_OFFSET:MESSAGE_OFFSET]);\\n }\\n\\n function message(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[MESSAGE_OFFSET:]);\\n }\\n\\n function payload(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[GUID_OFFSET:]);\\n }\\n\\n function payloadHash(bytes calldata _packet) internal pure returns (bytes32) {\\n return keccak256(payload(_packet));\\n }\\n}\\n\",\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"ILayerZeroEndpointV2":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"}],"name":"ComposeDelivered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"}],"name":"ComposeSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"DefaultReceiveLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"oldLib","type":"address"},{"indexed":false,"internalType":"uint256","name":"expiry","type":"uint256"}],"name":"DefaultReceiveLibraryTimeoutSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"DefaultSendLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"delegate","type":"address"}],"name":"DelegateSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"}],"name":"InboundNonceSkipped","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"LibraryRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"extraData","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"LzComposeAlert","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false,"internalType":"struct Origin","name":"origin","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"extraData","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"LzReceiveAlert","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"}],"name":"LzTokenSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"name":"PacketBurnt","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false,"internalType":"struct Origin","name":"origin","type":"tuple"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"}],"name":"PacketDelivered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"name":"PacketNilified","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"encodedPayload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"options","type":"bytes"},{"indexed":false,"internalType":"address","name":"sendLibrary","type":"address"}],"name":"PacketSent","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false,"internalType":"struct Origin","name":"origin","type":"tuple"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"name":"PacketVerified","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"ReceiveLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"oldLib","type":"address"},{"indexed":false,"internalType":"uint256","name":"timeout","type":"uint256"}],"name":"ReceiveLibraryTimeoutSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"SendLibrarySet","type":"event"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"}],"name":"clear","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"}],"name":"composeQueue","outputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultReceiveLibrary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultReceiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultSendLibrary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"getReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"bool","name":"isDefault","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegisteredLibraries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSendContext","outputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"getSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"name":"inboundPayloadHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"address","name":"_receiver","type":"address"}],"name":"initializable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"isDefaultSendLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"name":"isRegisteredLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"}],"name":"isValidReceiveLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"lazyInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzCompose","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"lzToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nativeToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"name":"nextGuid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"nilify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}],"internalType":"struct MessagingParams","name":"_params","type":"tuple"},{"internalType":"address","name":"_sender","type":"address"}],"name":"quote","outputs":[{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"receiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"name":"registerLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}],"internalType":"struct MessagingParams","name":"_params","type":"tuple"},{"internalType":"address","name":"_refundAddress","type":"address"}],"name":"send","outputs":[{"components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"fee","type":"tuple"}],"internalType":"struct MessagingReceipt","name":"","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"}],"name":"sendCompose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}],"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"name":"setDefaultReceiveLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"name":"setDefaultReceiveLibraryTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"name":"setDefaultSendLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lzToken","type":"address"}],"name":"setLzToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"name":"setReceiveLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"name":"setReceiveLibraryTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"name":"setSendLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"name":"skip","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"address","name":"_receiver","type":"address"}],"name":"verifiable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"verify","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"burn(address,uint32,bytes32,uint64,bytes32)":"40f80683","clear(address,(uint32,bytes32,uint64),bytes32,bytes)":"2a56c1b0","composeQueue(address,address,bytes32,uint16)":"35d330b0","defaultReceiveLibrary(uint32)":"6f50a803","defaultReceiveLibraryTimeout(uint32)":"6e83f5bb","defaultSendLibrary(uint32)":"f64be4c7","eid()":"416ecebf","getConfig(address,address,uint32,uint32)":"2b3197b9","getReceiveLibrary(address,uint32)":"402f8468","getRegisteredLibraries()":"9132e5c3","getSendContext()":"14f651a9","getSendLibrary(address,uint32)":"b96a277f","inboundNonce(address,uint32,bytes32)":"a0dd43fc","inboundPayloadHash(address,uint32,bytes32,uint64)":"c9fc7bcd","initializable((uint32,bytes32,uint64),address)":"861e1ca5","isDefaultSendLibrary(address,uint32)":"dc93c8a2","isRegisteredLibrary(address)":"dc706a62","isSendingMessage()":"79624ca9","isSupportedEid(uint32)":"6750cd4c","isValidReceiveLibrary(address,uint32,address)":"9d7f9775","lazyInboundNonce(address,uint32,bytes32)":"5b17bb70","lzCompose(address,address,bytes32,uint16,bytes,bytes)":"91d20fa1","lzReceive((uint32,bytes32,uint64),address,bytes32,bytes,bytes)":"0c0c389e","lzToken()":"e4fe1d94","nativeToken()":"e1758bd8","nextGuid(address,uint32,bytes32)":"aafe5e07","nilify(address,uint32,bytes32,uint64,bytes32)":"2e80fbf3","outboundNonce(address,uint32,bytes32)":"9c6d7340","quote((uint32,bytes32,bytes,bytes,bool),address)":"ddc28c58","receiveLibraryTimeout(address,uint32)":"ef667aa1","registerLibrary(address)":"e8964e81","send((uint32,bytes32,bytes,bytes,bool),address)":"2637a450","sendCompose(address,bytes32,uint16,bytes)":"7cb59012","setConfig(address,address,(uint32,uint32,bytes)[])":"6dbd9f90","setDefaultReceiveLibrary(uint32,address,uint256)":"a718531b","setDefaultReceiveLibraryTimeout(uint32,address,uint256)":"d4b4ec8f","setDefaultSendLibrary(uint32,address)":"aafea312","setDelegate(address)":"ca5eb5e1","setLzToken(address)":"c28e0eed","setReceiveLibrary(address,uint32,address,uint256)":"6a14d715","setReceiveLibraryTimeout(address,uint32,address,uint256)":"183c834f","setSendLibrary(address,uint32,address)":"9535ff30","skip(address,uint32,bytes32,uint64)":"d70b8902","verifiable((uint32,bytes32,uint64),address)":"c9a54a99","verify((uint32,bytes32,uint64),address,bytes32)":"a825d747"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"ComposeDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ComposeSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"DefaultReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultSendLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"DelegateSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InboundNonceSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"LibraryRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzComposeAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzReceiveAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"LzTokenSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketBurnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"PacketDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketNilified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"encodedPayload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sendLibrary\",\"type\":\"address\"}],\"name\":\"PacketSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"ReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"ReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"SendLibrarySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"clear\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"}],\"name\":\"composeQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDefault\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisteredLibraries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSendContext\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"inboundPayloadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"initializable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isDefaultSendLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isRegisteredLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isValidReceiveLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"lazyInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"nextGuid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"nilify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"receiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"registerLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setDefaultSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzToken\",\"type\":\"address\"}],\"name\":\"setLzToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"verifiable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setSendLibrary(address,uint32,address)\":{\"notice\":\"------------------- OApp interfaces -------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":\"ILayerZeroEndpointV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"setSendLibrary(address,uint32,address)":{"notice":"------------------- OApp interfaces -------------------"}},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"ILayerZeroReceiver":{"abi":[{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":\"ILayerZeroReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"IMessageLib":{"abi":[{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}],"internalType":"struct SetConfigParam[]","name":"_config","type":"tuple[]"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getConfig(uint32,address,uint32)":"9c33abf7","isSupportedEid(uint32)":"6750cd4c","messageLibType()":"1881d94d","setConfig(address,(uint32,uint32,bytes)[])":"20efd722","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_config\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":\"IMessageLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\nimport { SetConfigParam } from \\\"./IMessageLibManager.sol\\\";\\n\\nenum MessageLibType {\\n Send,\\n Receive,\\n SendAndReceive\\n}\\n\\ninterface IMessageLib is IERC165 {\\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\\n\\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n // message libs of same major version are compatible\\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\\n\\n function messageLibType() external view returns (MessageLibType);\\n}\\n\",\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"IMessageLibManager":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"DefaultReceiveLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"oldLib","type":"address"},{"indexed":false,"internalType":"uint256","name":"expiry","type":"uint256"}],"name":"DefaultReceiveLibraryTimeoutSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"DefaultSendLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"LibraryRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"ReceiveLibrarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"oldLib","type":"address"},{"indexed":false,"internalType":"uint256","name":"timeout","type":"uint256"}],"name":"ReceiveLibraryTimeoutSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"address","name":"newLib","type":"address"}],"name":"SendLibrarySet","type":"event"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultReceiveLibrary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultReceiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"defaultSendLibrary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"getReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"bool","name":"isDefault","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegisteredLibraries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"getSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"isDefaultSendLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"name":"isRegisteredLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"}],"name":"isValidReceiveLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"receiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"name":"registerLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}],"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"name":"setDefaultReceiveLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"name":"setDefaultReceiveLibraryTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"name":"setDefaultSendLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"name":"setReceiveLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"name":"setReceiveLibraryTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"name":"setSendLibrary","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"defaultReceiveLibrary(uint32)":"6f50a803","defaultReceiveLibraryTimeout(uint32)":"6e83f5bb","defaultSendLibrary(uint32)":"f64be4c7","getConfig(address,address,uint32,uint32)":"2b3197b9","getReceiveLibrary(address,uint32)":"402f8468","getRegisteredLibraries()":"9132e5c3","getSendLibrary(address,uint32)":"b96a277f","isDefaultSendLibrary(address,uint32)":"dc93c8a2","isRegisteredLibrary(address)":"dc706a62","isSupportedEid(uint32)":"6750cd4c","isValidReceiveLibrary(address,uint32,address)":"9d7f9775","receiveLibraryTimeout(address,uint32)":"ef667aa1","registerLibrary(address)":"e8964e81","setConfig(address,address,(uint32,uint32,bytes)[])":"6dbd9f90","setDefaultReceiveLibrary(uint32,address,uint256)":"a718531b","setDefaultReceiveLibraryTimeout(uint32,address,uint256)":"d4b4ec8f","setDefaultSendLibrary(uint32,address)":"aafea312","setReceiveLibrary(address,uint32,address,uint256)":"6a14d715","setReceiveLibraryTimeout(address,uint32,address,uint256)":"183c834f","setSendLibrary(address,uint32,address)":"9535ff30"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"DefaultReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultSendLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"LibraryRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"ReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"ReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"SendLibrarySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDefault\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisteredLibraries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isDefaultSendLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isRegisteredLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isValidReceiveLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"receiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"registerLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setDefaultSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setSendLibrary(address,uint32,address)\":{\"notice\":\"------------------- OApp interfaces -------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":\"IMessageLibManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"setSendLibrary(address,uint32,address)":{"notice":"------------------- OApp interfaces -------------------"}},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"IMessagingChannel":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"}],"name":"InboundNonceSkipped","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"name":"PacketBurnt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"sender","type":"bytes32"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"name":"PacketNilified","type":"event"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"name":"inboundPayloadHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"name":"lazyInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"name":"nextGuid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"nilify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"name":"skip","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"burn(address,uint32,bytes32,uint64,bytes32)":"40f80683","eid()":"416ecebf","inboundNonce(address,uint32,bytes32)":"a0dd43fc","inboundPayloadHash(address,uint32,bytes32,uint64)":"c9fc7bcd","lazyInboundNonce(address,uint32,bytes32)":"5b17bb70","nextGuid(address,uint32,bytes32)":"aafe5e07","nilify(address,uint32,bytes32,uint64,bytes32)":"2e80fbf3","outboundNonce(address,uint32,bytes32)":"9c6d7340","skip(address,uint32,bytes32,uint64)":"d70b8902"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InboundNonceSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketBurnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketNilified\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"inboundPayloadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"lazyInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"nextGuid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"nilify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":\"IMessagingChannel\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"IMessagingComposer":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"}],"name":"ComposeDelivered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"}],"name":"ComposeSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"index","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"extraData","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"LzComposeAlert","type":"event"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"}],"name":"composeQueue","outputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzCompose","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"}],"name":"sendCompose","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"composeQueue(address,address,bytes32,uint16)":"35d330b0","lzCompose(address,address,bytes32,uint16,bytes,bytes)":"91d20fa1","sendCompose(address,bytes32,uint16,bytes)":"7cb59012"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"ComposeDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ComposeSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzComposeAlert\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"}],\"name\":\"composeQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":\"IMessagingComposer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"IMessagingContext":{"abi":[{"inputs":[],"name":"getSendContext","outputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getSendContext()":"14f651a9","isSendingMessage()":"79624ca9"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getSendContext\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":\"IMessagingContext\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"ISendLib":{"abi":[{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}],"internalType":"struct Packet","name":"_packet","type":"tuple"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"name":"quote","outputs":[{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}],"internalType":"struct Packet","name":"_packet","type":"tuple"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"name":"send","outputs":[{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"","type":"tuple"},{"internalType":"bytes","name":"encodedPacket","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}],"internalType":"struct SetConfigParam[]","name":"_config","type":"tuple[]"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lzToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawLzTokenFee","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getConfig(uint32,address,uint32)":"9c33abf7","isSupportedEid(uint32)":"6750cd4c","messageLibType()":"1881d94d","quote((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"d80e9bd9","send((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"4389e58f","setConfig(address,(uint32,uint32,bytes)[])":"20efd722","setTreasury(address)":"f0f44260","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","withdrawFee(address,uint256)":"fd9be522","withdrawLzTokenFee(address,address,uint256)":"200175f7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"_packet\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"_packet\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"encodedPacket\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_config\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawLzTokenFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":\"ISendLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\nimport { SetConfigParam } from \\\"./IMessageLibManager.sol\\\";\\n\\nenum MessageLibType {\\n Send,\\n Receive,\\n SendAndReceive\\n}\\n\\ninterface IMessageLib is IERC165 {\\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\\n\\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n // message libs of same major version are compatible\\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\\n\\n function messageLibType() external view returns (MessageLibType);\\n}\\n\",\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { MessagingFee } from \\\"./ILayerZeroEndpointV2.sol\\\";\\nimport { IMessageLib } from \\\"./IMessageLib.sol\\\";\\n\\nstruct Packet {\\n uint64 nonce;\\n uint32 srcEid;\\n address sender;\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes32 guid;\\n bytes message;\\n}\\n\\ninterface ISendLib is IMessageLib {\\n function send(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external returns (MessagingFee memory, bytes memory encodedPacket);\\n\\n function quote(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external view returns (MessagingFee memory);\\n\\n function setTreasury(address _treasury) external;\\n\\n function withdrawFee(address _to, uint256 _amount) external;\\n\\n function withdrawLzTokenFee(address _lzToken, address _to, uint256 _amount) external;\\n}\\n\",\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"AddressCast":{"abi":[{"inputs":[],"name":"AddressCast_InvalidAddress","type":"error"},{"inputs":[],"name":"AddressCast_InvalidSizeForAddress","type":"error"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205c7c912ee158597c362dd2231f967bbff1f2e5e9420ddb60614885a7b61ff2c564736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5C PUSH29 0x912EE158597C362DD2231F967BBFF1F2E5E9420DDB60614885A7B61FF2 0xC5 PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"64:1401:23:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;64:1401:23;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205c7c912ee158597c362dd2231f967bbff1f2e5e9420ddb60614885a7b61ff2c564736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5C PUSH29 0x912EE158597C362DD2231F967BBFF1F2E5E9420DDB60614885A7B61FF2 0xC5 PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"64:1401:23:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"toAddress(bytes calldata)":"infinite","toAddress(bytes32)":"infinite","toBytes(bytes32,uint256)":"infinite","toBytes32(address)":"infinite","toBytes32(bytes calldata)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCast_InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressCast_InvalidSizeForAddress\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":\"AddressCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary AddressCast {\\n error AddressCast_InvalidSizeForAddress();\\n error AddressCast_InvalidAddress();\\n\\n function toBytes32(bytes calldata _addressBytes) internal pure returns (bytes32 result) {\\n if (_addressBytes.length > 32) revert AddressCast_InvalidAddress();\\n result = bytes32(_addressBytes);\\n unchecked {\\n uint256 offset = 32 - _addressBytes.length;\\n result = result >> (offset * 8);\\n }\\n }\\n\\n function toBytes32(address _address) internal pure returns (bytes32 result) {\\n result = bytes32(uint256(uint160(_address)));\\n }\\n\\n function toBytes(bytes32 _addressBytes32, uint256 _size) internal pure returns (bytes memory result) {\\n if (_size == 0 || _size > 32) revert AddressCast_InvalidSizeForAddress();\\n result = new bytes(_size);\\n unchecked {\\n uint256 offset = 256 - _size * 8;\\n assembly {\\n mstore(add(result, 32), shl(offset, _addressBytes32))\\n }\\n }\\n }\\n\\n function toAddress(bytes32 _addressBytes32) internal pure returns (address result) {\\n result = address(uint160(uint256(_addressBytes32)));\\n }\\n\\n function toAddress(bytes calldata _addressBytes) internal pure returns (address result) {\\n if (_addressBytes.length != 20) revert AddressCast_InvalidAddress();\\n result = address(bytes20(_addressBytes));\\n }\\n}\\n\",\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"CalldataBytesLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220821c11b95d2c35cebe76481c875073ad077f6c35fced5c45d6b49a4a6afb835464736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP3 SHR GT 0xB9 0x5D 0x2C CALLDATALOAD 0xCE 0xBE PUSH23 0x481C875073AD077F6C35FCED5C45D6B49A4A6AFB835464 PUSH20 0x6F6C634300081600330000000000000000000000 ","sourceMap":"64:1718:24:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;64:1718:24;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220821c11b95d2c35cebe76481c875073ad077f6c35fced5c45d6b49a4a6afb835464736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP3 SHR GT 0xB9 0x5D 0x2C CALLDATALOAD 0xCE 0xBE PUSH23 0x481C875073AD077F6C35FCED5C45D6B49A4A6AFB835464 PUSH20 0x6F6C634300081600330000000000000000000000 ","sourceMap":"64:1718:24:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"toAddr(bytes calldata,uint256)":"infinite","toB32(bytes calldata,uint256)":"infinite","toU128(bytes calldata,uint256)":"infinite","toU16(bytes calldata,uint256)":"infinite","toU256(bytes calldata,uint256)":"infinite","toU32(bytes calldata,uint256)":"infinite","toU64(bytes calldata,uint256)":"infinite","toU8(bytes calldata,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":\"CalldataBytesLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n return uint8(_bytes[_start]);\\n }\\n\\n function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n unchecked {\\n uint256 end = _start + 2;\\n return uint16(bytes2(_bytes[_start:end]));\\n }\\n }\\n\\n function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n unchecked {\\n uint256 end = _start + 4;\\n return uint32(bytes4(_bytes[_start:end]));\\n }\\n }\\n\\n function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n unchecked {\\n uint256 end = _start + 8;\\n return uint64(bytes8(_bytes[_start:end]));\\n }\\n }\\n\\n function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n unchecked {\\n uint256 end = _start + 16;\\n return uint128(bytes16(_bytes[_start:end]));\\n }\\n }\\n\\n function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n unchecked {\\n uint256 end = _start + 32;\\n return uint256(bytes32(_bytes[_start:end]));\\n }\\n }\\n\\n function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n unchecked {\\n uint256 end = _start + 20;\\n return address(bytes20(_bytes[_start:end]));\\n }\\n }\\n\\n function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n unchecked {\\n uint256 end = _start + 32;\\n return bytes32(_bytes[_start:end]);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"BitMaps":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c138a090826fdbd7371903be6d9871c3634ca9859fe20ca60ca84e37db1d8c164736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 SGT DUP11 MULMOD ADDMOD 0x26 REVERT 0xBD PUSH20 0x71903BE6D9871C3634CA9859FE20CA60CA84E37D 0xB1 0xD8 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"244:506:25:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;244:506:25;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c138a090826fdbd7371903be6d9871c3634ca9859fe20ca60ca84e37db1d8c164736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 SGT DUP11 MULMOD ADDMOD 0x26 REVERT 0xBD PUSH20 0x71903BE6D9871C3634CA9859FE20CA60CA84E37D 0xB1 0xD8 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"244:506:25:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"get(BitMap256,uint8)":"infinite","set(BitMap256,uint8)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":\"BitMaps\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\\npragma solidity ^0.8.20;\\n\\ntype BitMap256 is uint256;\\n\\nusing BitMaps for BitMap256 global;\\n\\nlibrary BitMaps {\\n /**\\n * @dev Returns whether the bit at `index` is set.\\n */\\n function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\\n uint256 mask = 1 << index;\\n return BitMap256.unwrap(bitmap) & mask != 0;\\n }\\n\\n /**\\n * @dev Sets the bit at `index`.\\n */\\n function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\\n uint256 mask = 1 << index;\\n return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\\n }\\n}\\n\",\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"ExecutorOptions":{"abi":[{"inputs":[],"name":"Executor_InvalidLzComposeOption","type":"error"},{"inputs":[],"name":"Executor_InvalidLzReceiveOption","type":"error"},{"inputs":[],"name":"Executor_InvalidNativeDropOption","type":"error"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209e7288ad6cd4183992b815484bcbb092a46352738421d37fa47e56f5d4b6f23464736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 PUSH19 0x88AD6CD4183992B815484BCBB092A463527384 0x21 0xD3 PUSH32 0xA47E56F5D4B6F23464736F6C6343000816003300000000000000000000000000 ","sourceMap":"133:3427:26:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;133:3427:26;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209e7288ad6cd4183992b815484bcbb092a46352738421d37fa47e56f5d4b6f23464736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 PUSH19 0x88AD6CD4183992B815484BCBB092A463527384 0x21 0xD3 PUSH32 0xA47E56F5D4B6F23464736F6C6343000816003300000000000000000000000000 ","sourceMap":"133:3427:26:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"decodeLzComposeOption(bytes calldata)":"infinite","decodeLzReceiveOption(bytes calldata)":"infinite","decodeNativeDropOption(bytes calldata)":"infinite","encodeLzComposeOption(uint16,uint128,uint128)":"infinite","encodeLzReceiveOption(uint128,uint128)":"infinite","encodeNativeDropOption(uint128,bytes32)":"infinite","nextExecutorOption(bytes calldata,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReceiveOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidNativeDropOption\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":\"ExecutorOptions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n return uint8(_bytes[_start]);\\n }\\n\\n function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n unchecked {\\n uint256 end = _start + 2;\\n return uint16(bytes2(_bytes[_start:end]));\\n }\\n }\\n\\n function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n unchecked {\\n uint256 end = _start + 4;\\n return uint32(bytes4(_bytes[_start:end]));\\n }\\n }\\n\\n function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n unchecked {\\n uint256 end = _start + 8;\\n return uint64(bytes8(_bytes[_start:end]));\\n }\\n }\\n\\n function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n unchecked {\\n uint256 end = _start + 16;\\n return uint128(bytes16(_bytes[_start:end]));\\n }\\n }\\n\\n function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n unchecked {\\n uint256 end = _start + 32;\\n return uint256(bytes32(_bytes[_start:end]));\\n }\\n }\\n\\n function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n unchecked {\\n uint256 end = _start + 20;\\n return address(bytes20(_bytes[_start:end]));\\n }\\n }\\n\\n function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n unchecked {\\n uint256 end = _start + 32;\\n return bytes32(_bytes[_start:end]);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { CalldataBytesLib } from \\\"../../libs/CalldataBytesLib.sol\\\";\\n\\nlibrary ExecutorOptions {\\n using CalldataBytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 1;\\n\\n uint8 internal constant OPTION_TYPE_LZRECEIVE = 1;\\n uint8 internal constant OPTION_TYPE_NATIVE_DROP = 2;\\n uint8 internal constant OPTION_TYPE_LZCOMPOSE = 3;\\n uint8 internal constant OPTION_TYPE_ORDERED_EXECUTION = 4;\\n\\n error Executor_InvalidLzReceiveOption();\\n error Executor_InvalidNativeDropOption();\\n error Executor_InvalidLzComposeOption();\\n\\n /// @dev decode the next executor option from the options starting from the specified cursor\\n /// @param _options [executor_id][executor_option][executor_id][executor_option]...\\n /// executor_option = [option_size][option_type][option]\\n /// option_size = len(option_type) + len(option)\\n /// executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @param _cursor the cursor to start decoding from\\n /// @return optionType the type of the option\\n /// @return option the option of the executor\\n /// @return cursor the cursor to start decoding the next executor option\\n function nextExecutorOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor);\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 1; // skip option type\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n\\n function decodeLzReceiveOption(bytes calldata _option) internal pure returns (uint128 gas, uint128 value) {\\n if (_option.length != 16 && _option.length != 32) revert Executor_InvalidLzReceiveOption();\\n gas = _option.toU128(0);\\n value = _option.length == 32 ? _option.toU128(16) : 0;\\n }\\n\\n function decodeNativeDropOption(bytes calldata _option) internal pure returns (uint128 amount, bytes32 receiver) {\\n if (_option.length != 48) revert Executor_InvalidNativeDropOption();\\n amount = _option.toU128(0);\\n receiver = _option.toB32(16);\\n }\\n\\n function decodeLzComposeOption(\\n bytes calldata _option\\n ) internal pure returns (uint16 index, uint128 gas, uint128 value) {\\n if (_option.length != 18 && _option.length != 34) revert Executor_InvalidLzComposeOption();\\n index = _option.toU16(0);\\n gas = _option.toU128(2);\\n value = _option.length == 34 ? _option.toU128(18) : 0;\\n }\\n\\n function encodeLzReceiveOption(uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_gas) : abi.encodePacked(_gas, _value);\\n }\\n\\n function encodeNativeDropOption(uint128 _amount, bytes32 _receiver) internal pure returns (bytes memory) {\\n return abi.encodePacked(_amount, _receiver);\\n }\\n\\n function encodeLzComposeOption(uint16 _index, uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_index, _gas) : abi.encodePacked(_index, _gas, _value);\\n }\\n}\\n\",\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"PacketV1Codec":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122062e729053cc850e1eb250d29153ff41affd9fe228d02949c787e9c824831539c64736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH3 0xE72905 EXTCODECOPY 0xC8 POP 0xE1 0xEB 0x25 0xD 0x29 ISZERO EXTCODEHASH DELEGATECALL BYTE SELFDESTRUCT 0xD9 INVALID 0x22 DUP14 MUL SWAP5 SWAP13 PUSH25 0x7E9C824831539C64736F6C6343000816003300000000000000 ","sourceMap":"179:3486:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;179:3486:27;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122062e729053cc850e1eb250d29153ff41affd9fe228d02949c787e9c824831539c64736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH3 0xE72905 EXTCODECOPY 0xC8 POP 0xE1 0xEB 0x25 0xD 0x29 ISZERO EXTCODEHASH DELEGATECALL BYTE SELFDESTRUCT 0xD9 INVALID 0x22 DUP14 MUL SWAP5 SWAP13 PUSH25 0x7E9C824831539C64736F6C6343000816003300000000000000 ","sourceMap":"179:3486:27:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"dstEid(bytes calldata)":"infinite","encode(struct Packet memory)":"infinite","encodePacketHeader(struct Packet memory)":"infinite","encodePayload(struct Packet memory)":"infinite","guid(bytes calldata)":"infinite","header(bytes calldata)":"infinite","message(bytes calldata)":"infinite","nonce(bytes calldata)":"infinite","payload(bytes calldata)":"infinite","payloadHash(bytes calldata)":"infinite","receiver(bytes calldata)":"infinite","receiverB20(bytes calldata)":"infinite","sender(bytes calldata)":"infinite","senderAddressB20(bytes calldata)":"infinite","srcEid(bytes calldata)":"infinite","version(bytes calldata)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":\"PacketV1Codec\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\nimport { SetConfigParam } from \\\"./IMessageLibManager.sol\\\";\\n\\nenum MessageLibType {\\n Send,\\n Receive,\\n SendAndReceive\\n}\\n\\ninterface IMessageLib is IERC165 {\\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\\n\\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n // message libs of same major version are compatible\\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\\n\\n function messageLibType() external view returns (MessageLibType);\\n}\\n\",\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { MessagingFee } from \\\"./ILayerZeroEndpointV2.sol\\\";\\nimport { IMessageLib } from \\\"./IMessageLib.sol\\\";\\n\\nstruct Packet {\\n uint64 nonce;\\n uint32 srcEid;\\n address sender;\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes32 guid;\\n bytes message;\\n}\\n\\ninterface ISendLib is IMessageLib {\\n function send(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external returns (MessagingFee memory, bytes memory encodedPacket);\\n\\n function quote(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external view returns (MessagingFee memory);\\n\\n function setTreasury(address _treasury) external;\\n\\n function withdrawFee(address _to, uint256 _amount) external;\\n\\n function withdrawLzTokenFee(address _lzToken, address _to, uint256 _amount) external;\\n}\\n\",\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary AddressCast {\\n error AddressCast_InvalidSizeForAddress();\\n error AddressCast_InvalidAddress();\\n\\n function toBytes32(bytes calldata _addressBytes) internal pure returns (bytes32 result) {\\n if (_addressBytes.length > 32) revert AddressCast_InvalidAddress();\\n result = bytes32(_addressBytes);\\n unchecked {\\n uint256 offset = 32 - _addressBytes.length;\\n result = result >> (offset * 8);\\n }\\n }\\n\\n function toBytes32(address _address) internal pure returns (bytes32 result) {\\n result = bytes32(uint256(uint160(_address)));\\n }\\n\\n function toBytes(bytes32 _addressBytes32, uint256 _size) internal pure returns (bytes memory result) {\\n if (_size == 0 || _size > 32) revert AddressCast_InvalidSizeForAddress();\\n result = new bytes(_size);\\n unchecked {\\n uint256 offset = 256 - _size * 8;\\n assembly {\\n mstore(add(result, 32), shl(offset, _addressBytes32))\\n }\\n }\\n }\\n\\n function toAddress(bytes32 _addressBytes32) internal pure returns (address result) {\\n result = address(uint160(uint256(_addressBytes32)));\\n }\\n\\n function toAddress(bytes calldata _addressBytes) internal pure returns (address result) {\\n if (_addressBytes.length != 20) revert AddressCast_InvalidAddress();\\n result = address(bytes20(_addressBytes));\\n }\\n}\\n\",\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { Packet } from \\\"../../interfaces/ISendLib.sol\\\";\\nimport { AddressCast } from \\\"../../libs/AddressCast.sol\\\";\\n\\nlibrary PacketV1Codec {\\n using AddressCast for address;\\n using AddressCast for bytes32;\\n\\n uint8 internal constant PACKET_VERSION = 1;\\n\\n // header (version + nonce + path)\\n // version\\n uint256 private constant PACKET_VERSION_OFFSET = 0;\\n // nonce\\n uint256 private constant NONCE_OFFSET = 1;\\n // path\\n uint256 private constant SRC_EID_OFFSET = 9;\\n uint256 private constant SENDER_OFFSET = 13;\\n uint256 private constant DST_EID_OFFSET = 45;\\n uint256 private constant RECEIVER_OFFSET = 49;\\n // payload (guid + message)\\n uint256 private constant GUID_OFFSET = 81; // keccak256(nonce + path)\\n uint256 private constant MESSAGE_OFFSET = 113;\\n\\n function encode(Packet memory _packet) internal pure returns (bytes memory encodedPacket) {\\n encodedPacket = abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver,\\n _packet.guid,\\n _packet.message\\n );\\n }\\n\\n function encodePacketHeader(Packet memory _packet) internal pure returns (bytes memory) {\\n return\\n abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver\\n );\\n }\\n\\n function encodePayload(Packet memory _packet) internal pure returns (bytes memory) {\\n return abi.encodePacked(_packet.guid, _packet.message);\\n }\\n\\n function header(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return _packet[0:GUID_OFFSET];\\n }\\n\\n function version(bytes calldata _packet) internal pure returns (uint8) {\\n return uint8(bytes1(_packet[PACKET_VERSION_OFFSET:NONCE_OFFSET]));\\n }\\n\\n function nonce(bytes calldata _packet) internal pure returns (uint64) {\\n return uint64(bytes8(_packet[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n function srcEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[SRC_EID_OFFSET:SENDER_OFFSET]));\\n }\\n\\n function sender(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[SENDER_OFFSET:DST_EID_OFFSET]);\\n }\\n\\n function senderAddressB20(bytes calldata _packet) internal pure returns (address) {\\n return sender(_packet).toAddress();\\n }\\n\\n function dstEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[DST_EID_OFFSET:RECEIVER_OFFSET]));\\n }\\n\\n function receiver(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[RECEIVER_OFFSET:GUID_OFFSET]);\\n }\\n\\n function receiverB20(bytes calldata _packet) internal pure returns (address) {\\n return receiver(_packet).toAddress();\\n }\\n\\n function guid(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[GUID_OFFSET:MESSAGE_OFFSET]);\\n }\\n\\n function message(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[MESSAGE_OFFSET:]);\\n }\\n\\n function payload(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[GUID_OFFSET:]);\\n }\\n\\n function payloadHash(bytes calldata _packet) internal pure returns (bytes32) {\\n return keccak256(payload(_packet));\\n }\\n}\\n\",\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol":{"ONFTComposeMsgCodec":{"abi":[],"devdoc":{"kind":"dev","methods":{},"title":"ONFT Composed Message Codec","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a4b8a6bd4f844db8b4d60d47a67ec76133f42da35c6deb8404dac1dfa6b79a4764736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG4 0xB8 0xA6 0xBD 0x4F DUP5 0x4D 0xB8 0xB4 0xD6 0xD SELFBALANCE 0xA6 PUSH31 0xC76133F42DA35C6DEB8404DAC1DFA6B79A4764736F6C634300081600330000 ","sourceMap":"168:2673:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;168:2673:28;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a4b8a6bd4f844db8b4d60d47a67ec76133f42da35c6deb8404dac1dfa6b79a4764736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG4 0xB8 0xA6 0xBD 0x4F DUP5 0x4D 0xB8 0xB4 0xD6 0xD SELFBALANCE 0xA6 PUSH31 0xC76133F42DA35C6DEB8404DAC1DFA6B79A4764736F6C634300081600330000 ","sourceMap":"168:2673:28:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"addressToBytes32(address)":"infinite","bytes32ToAddress(bytes32)":"infinite","composeFrom(bytes calldata)":"infinite","composeMsg(bytes calldata)":"infinite","encode(uint64,uint32,bytes memory)":"infinite","nonce(bytes calldata)":"infinite","srcEid(bytes calldata)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ONFT Composed Message Codec\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for encoding and decoding ONFT composed messages.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":\"ONFTComposeMsgCodec\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\n/// @title ONFT Composed Message Codec\\n/// @notice Library for encoding and decoding ONFT composed messages.\\nlibrary ONFTComposeMsgCodec {\\n // Offset constants for decoding composed messages\\n uint8 private constant NONCE_OFFSET = 8;\\n uint8 private constant SRC_EID_OFFSET = 12;\\n uint8 private constant COMPOSE_FROM_OFFSET = 44;\\n\\n /// @dev Encodes a ONFT721 composed message.\\n /// @param _nonce The nonce value.\\n /// @param _srcEid The source LayerZero endpoint ID.\\n /// @param _composeMsg The composed message.\\n /// @return payload The encoded payload, including the composed message.\\n function encode(\\n uint64 _nonce,\\n uint32 _srcEid,\\n bytes memory _composeMsg // 0x[composeFrom][composeMsg]\\n ) internal pure returns (bytes memory payload) {\\n payload = abi.encodePacked(_nonce, _srcEid, _composeMsg);\\n }\\n\\n /// @dev Retrieves the nonce from the composed message.\\n /// @param _msg The message.\\n /// @return parsedNonce The nonce value.\\n function nonce(bytes calldata _msg) internal pure returns (uint64 parsedNonce) {\\n parsedNonce = uint64(bytes8(_msg[:NONCE_OFFSET]));\\n }\\n\\n /// @dev Retrieves the source LayerZero endpoint ID from the composed message.\\n /// @param _msg The message.\\n /// @return parsedSrcEid The source LayerZero endpoint ID.\\n function srcEid(bytes calldata _msg) internal pure returns (uint32 parsedSrcEid) {\\n parsedSrcEid = uint32(bytes4(_msg[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n /// @dev Retrieves the composeFrom value from the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeFrom The composeFrom value as bytes32.\\n function composeFrom(bytes calldata _msg) internal pure returns (bytes32 parsedComposeFrom) {\\n parsedComposeFrom = bytes32(_msg[SRC_EID_OFFSET:COMPOSE_FROM_OFFSET]);\\n }\\n\\n /// @dev Retrieves the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeMsg The composed message.\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\\n parsedComposeMsg = _msg[COMPOSE_FROM_OFFSET:];\\n }\\n\\n /// @dev Converts an address to bytes32.\\n /// @param _addr The address to convert.\\n /// @return bytes32Repr The bytes32 representation of the address.\\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\\n bytes32Repr = bytes32(uint256(uint160(_addr)));\\n }\\n\\n /// @dev Converts bytes32 to an address.\\n /// @param _b The bytes32 value to convert.\\n /// @return addressRepr The address representation of bytes32.\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\\n addressRepr = address(uint160(uint256(_b)));\\n }\\n}\\n\",\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"notice":"Library for encoding and decoding ONFT composed messages.","version":1}}},"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol":{"ONFT721":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"name":"InvalidOptions","type":"error"},{"inputs":[],"name":"InvalidReceiver","type":"error"},{"inputs":[],"name":"LzTokenUnavailable","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"name":"NotEnoughNative","type":"error"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"OnlyEndpoint","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"OnlyNFTOwner","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"inputs":[],"name":"OnlySelf","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"name":"SimulationResult","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false,"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"EnforcedOptionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"inspector","type":"address"}],"name":"MsgInspectorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ONFTReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"dstEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ONFTSent","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":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"preCrimeAddress","type":"address"}],"name":"PreCrimeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]"}],"name":"lzReceiveAndRevert","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceiveSimulate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"name":"quoteSend","outputs":[{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"msgFee","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"_fee","type":"tuple"},{"internalType":"address","name":"_refundAddress","type":"address"}],"name":"send","outputs":[{"components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"fee","type":"tuple"}],"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"setEnforcedOptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"name":"setMsgInspector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"name":"setPreCrime","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"ONFT721 is an ERC-721 token that extends the functionality of the ONFT721Core contract.","errors":{"AddressEmptyCode(address)":[{"details":"There's no code at `target` (it is not a contract)."}],"AddressInsufficientBalance(address)":[{"details":"The ETH balance of the account is not enough to perform the operation."}],"ERC721IncorrectOwner(address,uint256,address)":[{"details":"Indicates an error related to the ownership over a particular token. Used in transfers.","params":{"owner":"Address of the current owner of a token.","sender":"Address whose tokens are being transferred.","tokenId":"Identifier number of a token."}}],"ERC721InsufficientApproval(address,uint256)":[{"details":"Indicates a failure with the `operator`’s approval. Used in transfers.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner.","tokenId":"Identifier number of a token."}}],"ERC721InvalidApprover(address)":[{"details":"Indicates a failure with the `approver` of a token to be approved. Used in approvals.","params":{"approver":"Address initiating an approval operation."}}],"ERC721InvalidOperator(address)":[{"details":"Indicates a failure with the `operator` to be approved. Used in approvals.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner."}}],"ERC721InvalidOwner(address)":[{"details":"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.","params":{"owner":"Address of the current owner of a token."}}],"ERC721InvalidReceiver(address)":[{"details":"Indicates a failure with the token `receiver`. Used in transfers.","params":{"receiver":"Address to which tokens are being transferred."}}],"ERC721InvalidSender(address)":[{"details":"Indicates a failure with the token `sender`. Used in transfers.","params":{"sender":"Address whose tokens are being transferred."}}],"ERC721NonexistentToken(uint256)":[{"details":"Indicates a `tokenId` whose `owner` is the zero address.","params":{"tokenId":"Identifier number of a token."}}],"FailedInnerCall()":[{"details":"A call to an address target failed. The target may have reverted."}],"OwnableInvalidOwner(address)":[{"details":"The owner is not a valid owner account. (eg. `address(0)`)"}],"OwnableUnauthorizedAccount(address)":[{"details":"The caller account is not authorized to perform an operation."}],"SafeERC20FailedOperation(address)":[{"details":"An operation with an ERC20 token failed."}]},"events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"PreCrimeSet(address)":{"details":"Emitted when the preCrime contract address is set.","params":{"preCrimeAddress":"The address of the preCrime contract."}},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}},"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"In the case of ONFT where the contract IS the token, approval is NOT required.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"constructor":{"details":"Constructor for the ONFT721 contract.","params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_lzEndpoint":"The LayerZero endpoint address.","_name":"The name of the ONFT.","_symbol":"The symbol of the ONFT."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"name()":{"details":"See {IERC721Metadata-name}."},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"ONFT721 Contract","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","name()":"06fdde03","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setApprovalForAll(address,bool)":"a22cb465","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","token()":"fc0c546a","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ONFT721 is an ERC-721 token that extends the functionality of the ONFT721Core contract.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"In the case of ONFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"constructor\":{\"details\":\"Constructor for the ONFT721 contract.\",\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_lzEndpoint\":\"The LayerZero endpoint address.\",\"_name\":\"The name of the ONFT.\",\"_symbol\":\"The symbol of the ONFT.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"ONFT721 Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the underlying ERC721 implementation (ie. this contract).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol\":\"ONFT721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\n\\nimport { BitMap256 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\\\";\\nimport { CalldataBytesLib } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary DVNOptions {\\n using CalldataBytesLib for bytes;\\n using BytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 2;\\n uint8 internal constant OPTION_TYPE_PRECRIME = 1;\\n\\n error DVN_InvalidDVNIdx();\\n error DVN_InvalidDVNOptions(uint256 cursor);\\n\\n /// @dev group dvn options by its idx\\n /// @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\\n /// dvn_option = [option_size][dvn_idx][option_type][option]\\n /// option_size = len(dvn_idx) + len(option_type) + len(option)\\n /// dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @return dvnOptions the grouped options, still share the same format of _options\\n /// @return dvnIndices the dvn indices\\n function groupDVNOptionsByIdx(\\n bytes memory _options\\n ) internal pure returns (bytes[] memory dvnOptions, uint8[] memory dvnIndices) {\\n if (_options.length == 0) return (dvnOptions, dvnIndices);\\n\\n uint8 numDVNs = getNumDVNs(_options);\\n\\n // if there is only 1 dvn, we can just return the whole options\\n if (numDVNs == 1) {\\n dvnOptions = new bytes[](1);\\n dvnOptions[0] = _options;\\n\\n dvnIndices = new uint8[](1);\\n dvnIndices[0] = _options.toUint8(3); // dvn idx\\n return (dvnOptions, dvnIndices);\\n }\\n\\n // otherwise, we need to group the options by dvn_idx\\n dvnIndices = new uint8[](numDVNs);\\n dvnOptions = new bytes[](numDVNs);\\n unchecked {\\n uint256 cursor = 0;\\n uint256 start = 0;\\n uint8 lastDVNIdx = 255; // 255 is an invalid dvn_idx\\n\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n // optionLength asserted in getNumDVNs (skip check)\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n\\n // dvnIdx asserted in getNumDVNs (skip check)\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // dvnIdx must equal to the lastDVNIdx for the first option\\n // so it is always skipped in the first option\\n // this operation slices out options whenever the scan finds a different lastDVNIdx\\n if (lastDVNIdx == 255) {\\n lastDVNIdx = dvnIdx;\\n } else if (dvnIdx != lastDVNIdx) {\\n uint256 len = cursor - start - 3; // 3 is for worker_id and option_length\\n bytes memory opt = _options.slice(start, len);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, opt);\\n\\n // reset the start and lastDVNIdx\\n start += len;\\n lastDVNIdx = dvnIdx;\\n }\\n\\n cursor += optionLength;\\n }\\n\\n // skip check the cursor here because the cursor is asserted in getNumDVNs\\n // if we have reached the end of the options, we need to process the last dvn\\n uint256 size = cursor - start;\\n bytes memory op = _options.slice(start, size);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, op);\\n\\n // revert dvnIndices to start from 0\\n for (uint8 i = 0; i < numDVNs; ++i) {\\n --dvnIndices[i];\\n }\\n }\\n }\\n\\n function _insertDVNOptions(\\n bytes[] memory _dvnOptions,\\n uint8[] memory _dvnIndices,\\n uint8 _dvnIdx,\\n bytes memory _newOptions\\n ) internal pure {\\n // dvnIdx starts from 0 but default value of dvnIndices is 0,\\n // so we tell if the slot is empty by adding 1 to dvnIdx\\n if (_dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n uint8 dvnIdxAdj = _dvnIdx + 1;\\n\\n for (uint256 j = 0; j < _dvnIndices.length; ++j) {\\n uint8 index = _dvnIndices[j];\\n if (dvnIdxAdj == index) {\\n _dvnOptions[j] = abi.encodePacked(_dvnOptions[j], _newOptions);\\n break;\\n } else if (index == 0) {\\n // empty slot, that means it is the first time we see this dvn\\n _dvnIndices[j] = dvnIdxAdj;\\n _dvnOptions[j] = _newOptions;\\n break;\\n }\\n }\\n }\\n\\n /// @dev get the number of unique dvns\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n function getNumDVNs(bytes memory _options) internal pure returns (uint8 numDVNs) {\\n uint256 cursor = 0;\\n BitMap256 bitmap;\\n\\n // find number of unique dvn_idx\\n unchecked {\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n if (optionLength < 2) revert DVN_InvalidDVNOptions(cursor); // at least 1 byte for dvn_idx and 1 byte for option_type\\n\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // if dvnIdx is not set, increment numDVNs\\n // max num of dvns is 255, 255 is an invalid dvn_idx\\n // The order of the dvnIdx is not required to be sequential, as enforcing the order may weaken\\n // the composability of the options. e.g. if we refrain from enforcing the order, an OApp that has\\n // already enforced certain options can append additional options to the end of the enforced\\n // ones without restrictions.\\n if (dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n if (!bitmap.get(dvnIdx)) {\\n ++numDVNs;\\n bitmap = bitmap.set(dvnIdx);\\n }\\n\\n cursor += optionLength;\\n }\\n }\\n if (cursor != _options.length) revert DVN_InvalidDVNOptions(cursor);\\n }\\n\\n /// @dev decode the next dvn option from _options starting from the specified cursor\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n /// @param _cursor the cursor to start decoding\\n /// @return optionType the type of the option\\n /// @return option the option\\n /// @return cursor the cursor to start decoding the next option\\n function nextDVNOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor + 1); // skip dvn_idx\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 2; // skip option type and dvn_idx\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n}\\n\",\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the 'MessagingFee' and 'MessagingReceipt' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppSender, MessagingFee, MessagingReceipt } from \\\"./OAppSender.sol\\\";\\n// @dev Import the 'Origin' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppReceiver, Origin } from \\\"./OAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OApp\\n * @dev Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality.\\n */\\nabstract contract OApp is OAppSender, OAppReceiver {\\n /**\\n * @dev Constructor to initialize the OApp with the provided endpoint and owner.\\n * @param _endpoint The address of the LOCAL LayerZero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n */\\n constructor(address _endpoint, address _delegate) OAppCore(_endpoint, _delegate) {}\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol implementation.\\n * @return receiverVersion The version of the OAppReceiver.sol implementation.\\n */\\n function oAppVersion()\\n public\\n pure\\n virtual\\n override(OAppSender, OAppReceiver)\\n returns (uint64 senderVersion, uint64 receiverVersion)\\n {\\n return (SENDER_VERSION, RECEIVER_VERSION);\\n }\\n}\\n\",\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"./interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCore is IOAppCore, Ownable {\\n // The LayerZero endpoint associated with the given OApp\\n ILayerZeroEndpointV2 public immutable endpoint;\\n\\n // Mapping to store peers associated with corresponding endpoints\\n mapping(uint32 eid => bytes32 peer) public peers;\\n\\n /**\\n * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n *\\n * @dev The delegate typically should be set as the owner of the contract.\\n */\\n constructor(address _endpoint, address _delegate) {\\n endpoint = ILayerZeroEndpointV2(_endpoint);\\n\\n if (_delegate == address(0)) revert InvalidDelegate();\\n endpoint.setDelegate(_delegate);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n _setPeer(_eid, _peer);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function _setPeer(uint32 _eid, bytes32 _peer) internal virtual {\\n peers[_eid] = _peer;\\n emit PeerSet(_eid, _peer);\\n }\\n\\n /**\\n * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n * ie. the peer is set to bytes32(0).\\n * @param _eid The endpoint ID.\\n * @return peer The address of the peer associated with the specified endpoint.\\n */\\n function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n bytes32 peer = peers[_eid];\\n if (peer == bytes32(0)) revert NoPeer(_eid);\\n return peer;\\n }\\n\\n /**\\n * @notice Sets the delegate address for the OApp.\\n * @param _delegate The address of the delegate to be set.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n */\\n function setDelegate(address _delegate) public onlyOwner {\\n endpoint.setDelegate(_delegate);\\n }\\n}\\n\",\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { IOAppReceiver, Origin } from \\\"./interfaces/IOAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppReceiver\\n * @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\\n */\\nabstract contract OAppReceiver is IOAppReceiver, OAppCore {\\n // Custom error message for when the caller is not the registered endpoint/\\n error OnlyEndpoint(address addr);\\n\\n // @dev The version of the OAppReceiver implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant RECEIVER_VERSION = 2;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\\n * ie. this is a RECEIVE only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (0, RECEIVER_VERSION);\\n }\\n\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @dev _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @dev _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata /*_origin*/,\\n bytes calldata /*_message*/,\\n address _sender\\n ) public view virtual returns (bool) {\\n return _sender == address(this);\\n }\\n\\n /**\\n * @notice Checks if the path initialization is allowed based on the provided origin.\\n * @param origin The origin information containing the source endpoint and sender address.\\n * @return Whether the path has been initialized.\\n *\\n * @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\\n * @dev This defaults to assuming if a peer has been set, its initialized.\\n * Can be overridden by the OApp if there is other logic to determine this.\\n */\\n function allowInitializePath(Origin calldata origin) public view virtual returns (bool) {\\n return peers[origin.srcEid] == origin.sender;\\n }\\n\\n /**\\n * @notice Retrieves the next nonce for a given source endpoint and sender address.\\n * @dev _srcEid The source endpoint ID.\\n * @dev _sender The sender address.\\n * @return nonce The next nonce.\\n *\\n * @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\\n * @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\\n * @dev This is also enforced by the OApp.\\n * @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\\n */\\n function nextNonce(uint32 /*_srcEid*/, bytes32 /*_sender*/) public view virtual returns (uint64 nonce) {\\n return 0;\\n }\\n\\n /**\\n * @dev Entry point for receiving messages or packets from the endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier for the received LayerZero message.\\n * @param _message The payload of the received message.\\n * @param _executor The address of the executor for the received message.\\n * @param _extraData Additional arbitrary data provided by the corresponding executor.\\n *\\n * @dev Entry point for receiving msg/packet from the LayerZero endpoint.\\n */\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) public payable virtual {\\n // Ensures that only the endpoint can attempt to lzReceive() messages to this OApp.\\n if (address(endpoint) != msg.sender) revert OnlyEndpoint(msg.sender);\\n\\n // Ensure that the sender matches the expected peer for the source endpoint.\\n if (_getPeerOrRevert(_origin.srcEid) != _origin.sender) revert OnlyPeer(_origin.srcEid, _origin.sender);\\n\\n // Call the internal OApp implementation of lzReceive.\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation.\\n */\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n}\\n\",\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppSender\\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\\n */\\nabstract contract OAppSender is OAppCore {\\n using SafeERC20 for IERC20;\\n\\n // Custom error messages\\n error NotEnoughNative(uint256 msgValue);\\n error LzTokenUnavailable();\\n\\n // @dev The version of the OAppSender implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant SENDER_VERSION = 1;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\\n * ie. this is a SEND only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (SENDER_VERSION, 0);\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\\n * @return fee The calculated MessagingFee for the message.\\n * - nativeFee: The native fee for the message.\\n * - lzTokenFee: The LZ token fee for the message.\\n */\\n function _quote(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n bool _payInLzToken\\n ) internal view virtual returns (MessagingFee memory fee) {\\n return\\n endpoint.quote(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\\n address(this)\\n );\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _fee The calculated LayerZero fee for the message.\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\\n * @return receipt The receipt for the sent message.\\n * - guid: The unique identifier for the sent message.\\n * - nonce: The nonce of the sent message.\\n * - fee: The LayerZero fee incurred for the message.\\n */\\n function _lzSend(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n MessagingFee memory _fee,\\n address _refundAddress\\n ) internal virtual returns (MessagingReceipt memory receipt) {\\n // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\\n uint256 messageValue = _payNative(_fee.nativeFee);\\n if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\\n\\n return\\n // solhint-disable-next-line check-send-result\\n endpoint.send{ value: messageValue }(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\\n _refundAddress\\n );\\n }\\n\\n /**\\n * @dev Internal function to pay the native fee associated with the message.\\n * @param _nativeFee The native fee to be paid.\\n * @return nativeFee The amount of native currency paid.\\n *\\n * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\\n * this will need to be overridden because msg.value would contain multiple lzFees.\\n * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\\n * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\\n * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\\n */\\n function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\\n if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\\n return _nativeFee;\\n }\\n\\n /**\\n * @dev Internal function to pay the LZ token fee associated with the message.\\n * @param _lzTokenFee The LZ token fee to be paid.\\n *\\n * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\\n * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\\n */\\n function _payLzToken(uint256 _lzTokenFee) internal virtual {\\n // @dev Cannot cache the token because it is not immutable in the endpoint.\\n address lzToken = endpoint.lzToken();\\n if (lzToken == address(0)) revert LzTokenUnavailable();\\n\\n // Pay LZ token fee by sending tokens to the endpoint.\\n IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\\n }\\n}\\n\",\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n // Custom error messages\\n error OnlyPeer(uint32 eid, bytes32 sender);\\n error NoPeer(uint32 eid);\\n error InvalidEndpointCall();\\n error InvalidDelegate();\\n\\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n event PeerSet(uint32 eid, bytes32 peer);\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n */\\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n /**\\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n * @return iEndpoint The LayerZero endpoint as an interface.\\n */\\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n /**\\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n */\\n function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n /**\\n * @notice Sets the delegate address for the OApp Core.\\n * @param _delegate The address of the delegate to be set.\\n */\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @title IOAppMsgInspector\\n * @dev Interface for the OApp Message Inspector, allowing examination of message and options contents.\\n */\\ninterface IOAppMsgInspector {\\n // Custom error message for inspection failure\\n error InspectionFailed(bytes message, bytes options);\\n\\n /**\\n * @notice Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\\n * @param _message The message payload to be inspected.\\n * @param _options Additional options or parameters for inspection.\\n * @return valid A boolean indicating whether the inspection passed (true) or failed (false).\\n *\\n * @dev Optionally done as a revert, OR use the boolean provided to handle the failure.\\n */\\n function inspect(bytes calldata _message, bytes calldata _options) external view returns (bool valid);\\n}\\n\",\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Struct representing enforced option parameters.\\n */\\nstruct EnforcedOptionParam {\\n uint32 eid; // Endpoint ID\\n uint16 msgType; // Message Type\\n bytes options; // Additional options\\n}\\n\\n/**\\n * @title IOAppOptionsType3\\n * @dev Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.\\n */\\ninterface IOAppOptionsType3 {\\n // Custom error message for invalid options\\n error InvalidOptions(bytes options);\\n\\n // Event emitted when enforced options are set\\n event EnforcedOptionSet(EnforcedOptionParam[] _enforcedOptions);\\n\\n /**\\n * @notice Sets enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) external;\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OApp message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) external view returns (bytes memory options);\\n}\\n\",\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroReceiver, Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\\\";\\n\\ninterface IOAppReceiver is ILayerZeroReceiver {\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata _origin,\\n bytes calldata _message,\\n address _sender\\n ) external view returns (bool isSender);\\n}\\n\",\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppOptionsType3, EnforcedOptionParam } from \\\"../interfaces/IOAppOptionsType3.sol\\\";\\n\\n/**\\n * @title OAppOptionsType3\\n * @dev Abstract contract implementing the IOAppOptionsType3 interface with type 3 options.\\n */\\nabstract contract OAppOptionsType3 is IOAppOptionsType3, Ownable {\\n uint16 internal constant OPTION_TYPE_3 = 3;\\n\\n // @dev The \\\"msgType\\\" should be defined in the child contract.\\n mapping(uint32 eid => mapping(uint16 msgType => bytes enforcedOption)) public enforcedOptions;\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) public virtual onlyOwner {\\n _setEnforcedOptions(_enforcedOptions);\\n }\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function _setEnforcedOptions(EnforcedOptionParam[] memory _enforcedOptions) internal virtual {\\n for (uint256 i = 0; i < _enforcedOptions.length; i++) {\\n // @dev Enforced options are only available for optionType 3, as type 1 and 2 dont support combining.\\n _assertOptionsType3(_enforcedOptions[i].options);\\n enforcedOptions[_enforcedOptions[i].eid][_enforcedOptions[i].msgType] = _enforcedOptions[i].options;\\n }\\n\\n emit EnforcedOptionSet(_enforcedOptions);\\n }\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OAPP message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n *\\n * @dev If there is an enforced lzReceive option:\\n * - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether}\\n * - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.\\n * @dev This presence of duplicated options is handled off-chain in the verifier/executor.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) public view virtual returns (bytes memory) {\\n bytes memory enforced = enforcedOptions[_eid][_msgType];\\n\\n // No enforced options, pass whatever the caller supplied, even if it's empty or legacy type 1/2 options.\\n if (enforced.length == 0) return _extraOptions;\\n\\n // No caller options, return enforced\\n if (_extraOptions.length == 0) return enforced;\\n\\n // @dev If caller provided _extraOptions, must be type 3 as its the ONLY type that can be combined.\\n if (_extraOptions.length >= 2) {\\n _assertOptionsType3(_extraOptions);\\n // @dev Remove the first 2 bytes containing the type from the _extraOptions and combine with enforced.\\n return bytes.concat(enforced, _extraOptions[2:]);\\n }\\n\\n // No valid set of options was found.\\n revert InvalidOptions(_extraOptions);\\n }\\n\\n /**\\n * @dev Internal function to assert that options are of type 3.\\n * @param _options The options to be checked.\\n */\\n function _assertOptionsType3(bytes memory _options) internal pure virtual {\\n uint16 optionsType;\\n assembly {\\n optionsType := mload(add(_options, 2))\\n }\\n if (optionsType != OPTION_TYPE_3) revert InvalidOptions(_options);\\n }\\n}\\n\",\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\nimport { SafeCast } from \\\"@openzeppelin/contracts/utils/math/SafeCast.sol\\\";\\n\\nimport { ExecutorOptions } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\\\";\\nimport { DVNOptions } from \\\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\\\";\\n\\n/**\\n * @title OptionsBuilder\\n * @dev Library for building and encoding various message options.\\n */\\nlibrary OptionsBuilder {\\n using SafeCast for uint256;\\n using BytesLib for bytes;\\n\\n // Constants for options types\\n uint16 internal constant TYPE_1 = 1; // legacy options type 1\\n uint16 internal constant TYPE_2 = 2; // legacy options type 2\\n uint16 internal constant TYPE_3 = 3;\\n\\n // Custom error message\\n error InvalidSize(uint256 max, uint256 actual);\\n error InvalidOptionType(uint16 optionType);\\n\\n // Modifier to ensure only options of type 3 are used\\n modifier onlyType3(bytes memory _options) {\\n if (_options.toUint16(0) != TYPE_3) revert InvalidOptionType(_options.toUint16(0));\\n _;\\n }\\n\\n /**\\n * @dev Creates a new options container with type 3.\\n * @return options The newly created options container.\\n */\\n function newOptions() internal pure returns (bytes memory) {\\n return abi.encodePacked(TYPE_3);\\n }\\n\\n /**\\n * @dev Adds an executor LZ receive option to the existing options.\\n * @param _options The existing options container.\\n * @param _gas The gasLimit used on the lzReceive() function in the OApp.\\n * @param _value The msg.value passed to the lzReceive() function in the OApp.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed by the executor\\n * eg. if (_gas: 200k, and _value: 1 ether) AND (_gas: 100k, _value: 0.5 ether) are sent in an option to the LayerZeroEndpoint,\\n * that becomes (300k, 1.5 ether) when the message is executed on the remote lzReceive() function.\\n */\\n function addExecutorLzReceiveOption(\\n bytes memory _options,\\n uint128 _gas,\\n uint128 _value\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeLzReceiveOption(_gas, _value);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZRECEIVE, option);\\n }\\n\\n /**\\n * @dev Adds an executor native drop option to the existing options.\\n * @param _options The existing options container.\\n * @param _amount The amount for the native value that is airdropped to the 'receiver'.\\n * @param _receiver The receiver address for the native drop option.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\\n */\\n function addExecutorNativeDropOption(\\n bytes memory _options,\\n uint128 _amount,\\n bytes32 _receiver\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeNativeDropOption(_amount, _receiver);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_NATIVE_DROP, option);\\n }\\n\\n /**\\n * @dev Adds an executor LZ compose option to the existing options.\\n * @param _options The existing options container.\\n * @param _index The index for the lzCompose() function call.\\n * @param _gas The gasLimit for the lzCompose() function call.\\n * @param _value The msg.value for the lzCompose() function call.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed PER index by the executor on the remote chain.\\n * @dev If the OApp sends N lzCompose calls on the remote, you must provide N incremented indexes starting with 0.\\n * ie. When your remote OApp composes (N = 3) messages, you must set this option for index 0,1,2\\n */\\n function addExecutorLzComposeOption(\\n bytes memory _options,\\n uint16 _index,\\n uint128 _gas,\\n uint128 _value\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeLzComposeOption(_index, _gas, _value);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZCOMPOSE, option);\\n }\\n\\n /**\\n * @dev Adds an executor ordered execution option to the existing options.\\n * @param _options The existing options container.\\n * @return options The updated options container.\\n */\\n function addExecutorOrderedExecutionOption(\\n bytes memory _options\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_ORDERED_EXECUTION, bytes(\\\"\\\"));\\n }\\n\\n /**\\n * @dev Adds a DVN pre-crime option to the existing options.\\n * @param _options The existing options container.\\n * @param _dvnIdx The DVN index for the pre-crime option.\\n * @return options The updated options container.\\n */\\n function addDVNPreCrimeOption(\\n bytes memory _options,\\n uint8 _dvnIdx\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return addDVNOption(_options, _dvnIdx, DVNOptions.OPTION_TYPE_PRECRIME, bytes(\\\"\\\"));\\n }\\n\\n /**\\n * @dev Adds an executor option to the existing options.\\n * @param _options The existing options container.\\n * @param _optionType The type of the executor option.\\n * @param _option The encoded data for the executor option.\\n * @return options The updated options container.\\n */\\n function addExecutorOption(\\n bytes memory _options,\\n uint8 _optionType,\\n bytes memory _option\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return\\n abi.encodePacked(\\n _options,\\n ExecutorOptions.WORKER_ID,\\n _option.length.toUint16() + 1, // +1 for optionType\\n _optionType,\\n _option\\n );\\n }\\n\\n /**\\n * @dev Adds a DVN option to the existing options.\\n * @param _options The existing options container.\\n * @param _dvnIdx The DVN index for the DVN option.\\n * @param _optionType The type of the DVN option.\\n * @param _option The encoded data for the DVN option.\\n * @return options The updated options container.\\n */\\n function addDVNOption(\\n bytes memory _options,\\n uint8 _dvnIdx,\\n uint8 _optionType,\\n bytes memory _option\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return\\n abi.encodePacked(\\n _options,\\n DVNOptions.WORKER_ID,\\n _option.length.toUint16() + 2, // +2 for optionType and dvnIdx\\n _dvnIdx,\\n _optionType,\\n _option\\n );\\n }\\n\\n /**\\n * @dev Encodes legacy options of type 1.\\n * @param _executionGas The gasLimit value passed to lzReceive().\\n * @return legacyOptions The encoded legacy options.\\n */\\n function encodeLegacyOptionsType1(uint256 _executionGas) internal pure returns (bytes memory) {\\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n return abi.encodePacked(TYPE_1, _executionGas);\\n }\\n\\n /**\\n * @dev Encodes legacy options of type 2.\\n * @param _executionGas The gasLimit value passed to lzReceive().\\n * @param _nativeForDst The amount of native air dropped to the receiver.\\n * @param _receiver The _nativeForDst receiver address.\\n * @return legacyOptions The encoded legacy options of type 2.\\n */\\n function encodeLegacyOptionsType2(\\n uint256 _executionGas,\\n uint256 _nativeForDst,\\n bytes memory _receiver // @dev Use bytes instead of bytes32 in legacy type 2 for _receiver.\\n ) internal pure returns (bytes memory) {\\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n if (_nativeForDst > type(uint128).max) revert InvalidSize(type(uint128).max, _nativeForDst);\\n if (_receiver.length > 32) revert InvalidSize(32, _receiver.length);\\n return abi.encodePacked(TYPE_2, _executionGas, _nativeForDst, _receiver);\\n }\\n}\\n\",\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IPreCrime } from \\\"./interfaces/IPreCrime.sol\\\";\\nimport { IOAppPreCrimeSimulator, InboundPacket, Origin } from \\\"./interfaces/IOAppPreCrimeSimulator.sol\\\";\\n\\n/**\\n * @title OAppPreCrimeSimulator\\n * @dev Abstract contract serving as the base for preCrime simulation functionality in an OApp.\\n */\\nabstract contract OAppPreCrimeSimulator is IOAppPreCrimeSimulator, Ownable {\\n // The address of the preCrime implementation.\\n address public preCrime;\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n *\\n * @dev The simulator contract is the base contract for the OApp by default.\\n * @dev If the simulator is a separate contract, override this function.\\n */\\n function oApp() external view virtual returns (address) {\\n return address(this);\\n }\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) public virtual onlyOwner {\\n preCrime = _preCrime;\\n emit PreCrimeSet(_preCrime);\\n }\\n\\n /**\\n * @dev Interface for pre-crime simulations. Always reverts at the end with the simulation results.\\n * @param _packets An array of InboundPacket objects representing received packets to be delivered.\\n *\\n * @dev WARNING: MUST revert at the end with the simulation results.\\n * @dev Gives the preCrime implementation the ability to mock sending packets to the lzReceive function,\\n * WITHOUT actually executing them.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) public payable virtual {\\n for (uint256 i = 0; i < _packets.length; i++) {\\n InboundPacket calldata packet = _packets[i];\\n\\n // Ignore packets that are not from trusted peers.\\n if (!isPeer(packet.origin.srcEid, packet.origin.sender)) continue;\\n\\n // @dev Because a verifier is calling this function, it doesnt have access to executor params:\\n // - address _executor\\n // - bytes calldata _extraData\\n // preCrime will NOT work for OApps that rely on these two parameters inside of their _lzReceive().\\n // They are instead stubbed to default values, address(0) and bytes(\\\"\\\")\\n // @dev Calling this.lzReceiveSimulate removes ability for assembly return 0 callstack exit,\\n // which would cause the revert to be ignored.\\n this.lzReceiveSimulate{ value: packet.value }(\\n packet.origin,\\n packet.guid,\\n packet.message,\\n packet.executor,\\n packet.extraData\\n );\\n }\\n\\n // @dev Revert with the simulation results. msg.sender must implement IPreCrime.buildSimulationResult().\\n revert SimulationResult(IPreCrime(msg.sender).buildSimulationResult());\\n }\\n\\n /**\\n * @dev Is effectively an internal function because msg.sender must be address(this).\\n * Allows resetting the call stack for 'internal' calls.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier of the packet.\\n * @param _message The message payload of the packet.\\n * @param _executor The executor address for the packet.\\n * @param _extraData Additional data for the packet.\\n */\\n function lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable virtual {\\n // @dev Ensure ONLY can be called 'internally'.\\n if (msg.sender != address(this)) revert OnlySelf();\\n _lzReceiveSimulate(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\\n * @param _origin The origin information.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address from the src chain.\\n * - nonce: The nonce of the LayerZero message.\\n * @param _guid The GUID of the LayerZero message.\\n * @param _message The LayerZero message.\\n * @param _executor The address of the off-chain executor.\\n * @param _extraData Arbitrary data passed by the msg executor.\\n *\\n * @dev Enables the preCrime simulator to mock sending lzReceive() messages,\\n * routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\\n */\\n function _lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual returns (bool);\\n}\\n\",\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the Origin so it's exposed to OAppPreCrimeSimulator implementers.\\n// solhint-disable-next-line no-unused-import\\nimport { InboundPacket, Origin } from \\\"../libs/Packet.sol\\\";\\n\\n/**\\n * @title IOAppPreCrimeSimulator Interface\\n * @dev Interface for the preCrime simulation functionality in an OApp.\\n */\\ninterface IOAppPreCrimeSimulator {\\n // @dev simulation result used in PreCrime implementation\\n error SimulationResult(bytes result);\\n error OnlySelf();\\n\\n /**\\n * @dev Emitted when the preCrime contract address is set.\\n * @param preCrimeAddress The address of the preCrime contract.\\n */\\n event PreCrimeSet(address preCrimeAddress);\\n\\n /**\\n * @dev Retrieves the address of the preCrime contract implementation.\\n * @return The address of the preCrime contract.\\n */\\n function preCrime() external view returns (address);\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n */\\n function oApp() external view returns (address);\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) external;\\n\\n /**\\n * @dev Mocks receiving a packet, then reverts with a series of data to infer the state/result.\\n * @param _packets An array of LayerZero InboundPacket objects representing received packets.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) external payable;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\nstruct PreCrimePeer {\\n uint32 eid;\\n bytes32 preCrime;\\n bytes32 oApp;\\n}\\n\\n// TODO not done yet\\ninterface IPreCrime {\\n error OnlyOffChain();\\n\\n // for simulate()\\n error PacketOversize(uint256 max, uint256 actual);\\n error PacketUnsorted();\\n error SimulationFailed(bytes reason);\\n\\n // for preCrime()\\n error SimulationResultNotFound(uint32 eid);\\n error InvalidSimulationResult(uint32 eid, bytes reason);\\n error CrimeFound(bytes crime);\\n\\n function getConfig(bytes[] calldata _packets, uint256[] calldata _packetMsgValues) external returns (bytes memory);\\n\\n function simulate(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues\\n ) external payable returns (bytes memory);\\n\\n function buildSimulationResult() external view returns (bytes memory);\\n\\n function preCrime(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues,\\n bytes[] calldata _simulations\\n ) external;\\n\\n function version() external view returns (uint64 major, uint8 minor);\\n}\\n\",\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { PacketV1Codec } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\\\";\\n\\n/**\\n * @title InboundPacket\\n * @dev Structure representing an inbound packet received by the contract.\\n */\\nstruct InboundPacket {\\n Origin origin; // Origin information of the packet.\\n uint32 dstEid; // Destination endpointId of the packet.\\n address receiver; // Receiver address for the packet.\\n bytes32 guid; // Unique identifier of the packet.\\n uint256 value; // msg.value of the packet.\\n address executor; // Executor address for the packet.\\n bytes message; // Message payload of the packet.\\n bytes extraData; // Additional arbitrary data for the packet.\\n}\\n\\n/**\\n * @title PacketDecoder\\n * @dev Library for decoding LayerZero packets.\\n */\\nlibrary PacketDecoder {\\n using PacketV1Codec for bytes;\\n\\n /**\\n * @dev Decode an inbound packet from the given packet data.\\n * @param _packet The packet data to decode.\\n * @return packet An InboundPacket struct representing the decoded packet.\\n */\\n function decode(bytes calldata _packet) internal pure returns (InboundPacket memory packet) {\\n packet.origin = Origin(_packet.srcEid(), _packet.sender(), _packet.nonce());\\n packet.dstEid = _packet.dstEid();\\n packet.receiver = _packet.receiverB20();\\n packet.guid = _packet.guid();\\n packet.message = _packet.message();\\n }\\n\\n /**\\n * @dev Decode multiple inbound packets from the given packet data and associated message values.\\n * @param _packets An array of packet data to decode.\\n * @param _packetMsgValues An array of associated message values for each packet.\\n * @return packets An array of InboundPacket structs representing the decoded packets.\\n */\\n function decode(\\n bytes[] calldata _packets,\\n uint256[] memory _packetMsgValues\\n ) internal pure returns (InboundPacket[] memory packets) {\\n packets = new InboundPacket[](_packets.length);\\n for (uint256 i = 0; i < _packets.length; i++) {\\n bytes calldata packet = _packets[i];\\n packets[i] = PacketDecoder.decode(packet);\\n // @dev Allows the verifier to specify the msg.value that gets passed in lzReceive.\\n packets[i].value = _packetMsgValues[i];\\n }\\n }\\n}\\n\",\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\nimport { SetConfigParam } from \\\"./IMessageLibManager.sol\\\";\\n\\nenum MessageLibType {\\n Send,\\n Receive,\\n SendAndReceive\\n}\\n\\ninterface IMessageLib is IERC165 {\\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\\n\\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n // message libs of same major version are compatible\\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\\n\\n function messageLibType() external view returns (MessageLibType);\\n}\\n\",\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { MessagingFee } from \\\"./ILayerZeroEndpointV2.sol\\\";\\nimport { IMessageLib } from \\\"./IMessageLib.sol\\\";\\n\\nstruct Packet {\\n uint64 nonce;\\n uint32 srcEid;\\n address sender;\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes32 guid;\\n bytes message;\\n}\\n\\ninterface ISendLib is IMessageLib {\\n function send(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external returns (MessagingFee memory, bytes memory encodedPacket);\\n\\n function quote(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external view returns (MessagingFee memory);\\n\\n function setTreasury(address _treasury) external;\\n\\n function withdrawFee(address _to, uint256 _amount) external;\\n\\n function withdrawLzTokenFee(address _lzToken, address _to, uint256 _amount) external;\\n}\\n\",\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary AddressCast {\\n error AddressCast_InvalidSizeForAddress();\\n error AddressCast_InvalidAddress();\\n\\n function toBytes32(bytes calldata _addressBytes) internal pure returns (bytes32 result) {\\n if (_addressBytes.length > 32) revert AddressCast_InvalidAddress();\\n result = bytes32(_addressBytes);\\n unchecked {\\n uint256 offset = 32 - _addressBytes.length;\\n result = result >> (offset * 8);\\n }\\n }\\n\\n function toBytes32(address _address) internal pure returns (bytes32 result) {\\n result = bytes32(uint256(uint160(_address)));\\n }\\n\\n function toBytes(bytes32 _addressBytes32, uint256 _size) internal pure returns (bytes memory result) {\\n if (_size == 0 || _size > 32) revert AddressCast_InvalidSizeForAddress();\\n result = new bytes(_size);\\n unchecked {\\n uint256 offset = 256 - _size * 8;\\n assembly {\\n mstore(add(result, 32), shl(offset, _addressBytes32))\\n }\\n }\\n }\\n\\n function toAddress(bytes32 _addressBytes32) internal pure returns (address result) {\\n result = address(uint160(uint256(_addressBytes32)));\\n }\\n\\n function toAddress(bytes calldata _addressBytes) internal pure returns (address result) {\\n if (_addressBytes.length != 20) revert AddressCast_InvalidAddress();\\n result = address(bytes20(_addressBytes));\\n }\\n}\\n\",\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n return uint8(_bytes[_start]);\\n }\\n\\n function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n unchecked {\\n uint256 end = _start + 2;\\n return uint16(bytes2(_bytes[_start:end]));\\n }\\n }\\n\\n function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n unchecked {\\n uint256 end = _start + 4;\\n return uint32(bytes4(_bytes[_start:end]));\\n }\\n }\\n\\n function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n unchecked {\\n uint256 end = _start + 8;\\n return uint64(bytes8(_bytes[_start:end]));\\n }\\n }\\n\\n function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n unchecked {\\n uint256 end = _start + 16;\\n return uint128(bytes16(_bytes[_start:end]));\\n }\\n }\\n\\n function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n unchecked {\\n uint256 end = _start + 32;\\n return uint256(bytes32(_bytes[_start:end]));\\n }\\n }\\n\\n function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n unchecked {\\n uint256 end = _start + 20;\\n return address(bytes20(_bytes[_start:end]));\\n }\\n }\\n\\n function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n unchecked {\\n uint256 end = _start + 32;\\n return bytes32(_bytes[_start:end]);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\\npragma solidity ^0.8.20;\\n\\ntype BitMap256 is uint256;\\n\\nusing BitMaps for BitMap256 global;\\n\\nlibrary BitMaps {\\n /**\\n * @dev Returns whether the bit at `index` is set.\\n */\\n function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\\n uint256 mask = 1 << index;\\n return BitMap256.unwrap(bitmap) & mask != 0;\\n }\\n\\n /**\\n * @dev Sets the bit at `index`.\\n */\\n function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\\n uint256 mask = 1 << index;\\n return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\\n }\\n}\\n\",\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { CalldataBytesLib } from \\\"../../libs/CalldataBytesLib.sol\\\";\\n\\nlibrary ExecutorOptions {\\n using CalldataBytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 1;\\n\\n uint8 internal constant OPTION_TYPE_LZRECEIVE = 1;\\n uint8 internal constant OPTION_TYPE_NATIVE_DROP = 2;\\n uint8 internal constant OPTION_TYPE_LZCOMPOSE = 3;\\n uint8 internal constant OPTION_TYPE_ORDERED_EXECUTION = 4;\\n\\n error Executor_InvalidLzReceiveOption();\\n error Executor_InvalidNativeDropOption();\\n error Executor_InvalidLzComposeOption();\\n\\n /// @dev decode the next executor option from the options starting from the specified cursor\\n /// @param _options [executor_id][executor_option][executor_id][executor_option]...\\n /// executor_option = [option_size][option_type][option]\\n /// option_size = len(option_type) + len(option)\\n /// executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @param _cursor the cursor to start decoding from\\n /// @return optionType the type of the option\\n /// @return option the option of the executor\\n /// @return cursor the cursor to start decoding the next executor option\\n function nextExecutorOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor);\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 1; // skip option type\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n\\n function decodeLzReceiveOption(bytes calldata _option) internal pure returns (uint128 gas, uint128 value) {\\n if (_option.length != 16 && _option.length != 32) revert Executor_InvalidLzReceiveOption();\\n gas = _option.toU128(0);\\n value = _option.length == 32 ? _option.toU128(16) : 0;\\n }\\n\\n function decodeNativeDropOption(bytes calldata _option) internal pure returns (uint128 amount, bytes32 receiver) {\\n if (_option.length != 48) revert Executor_InvalidNativeDropOption();\\n amount = _option.toU128(0);\\n receiver = _option.toB32(16);\\n }\\n\\n function decodeLzComposeOption(\\n bytes calldata _option\\n ) internal pure returns (uint16 index, uint128 gas, uint128 value) {\\n if (_option.length != 18 && _option.length != 34) revert Executor_InvalidLzComposeOption();\\n index = _option.toU16(0);\\n gas = _option.toU128(2);\\n value = _option.length == 34 ? _option.toU128(18) : 0;\\n }\\n\\n function encodeLzReceiveOption(uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_gas) : abi.encodePacked(_gas, _value);\\n }\\n\\n function encodeNativeDropOption(uint128 _amount, bytes32 _receiver) internal pure returns (bytes memory) {\\n return abi.encodePacked(_amount, _receiver);\\n }\\n\\n function encodeLzComposeOption(uint16 _index, uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_index, _gas) : abi.encodePacked(_index, _gas, _value);\\n }\\n}\\n\",\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { Packet } from \\\"../../interfaces/ISendLib.sol\\\";\\nimport { AddressCast } from \\\"../../libs/AddressCast.sol\\\";\\n\\nlibrary PacketV1Codec {\\n using AddressCast for address;\\n using AddressCast for bytes32;\\n\\n uint8 internal constant PACKET_VERSION = 1;\\n\\n // header (version + nonce + path)\\n // version\\n uint256 private constant PACKET_VERSION_OFFSET = 0;\\n // nonce\\n uint256 private constant NONCE_OFFSET = 1;\\n // path\\n uint256 private constant SRC_EID_OFFSET = 9;\\n uint256 private constant SENDER_OFFSET = 13;\\n uint256 private constant DST_EID_OFFSET = 45;\\n uint256 private constant RECEIVER_OFFSET = 49;\\n // payload (guid + message)\\n uint256 private constant GUID_OFFSET = 81; // keccak256(nonce + path)\\n uint256 private constant MESSAGE_OFFSET = 113;\\n\\n function encode(Packet memory _packet) internal pure returns (bytes memory encodedPacket) {\\n encodedPacket = abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver,\\n _packet.guid,\\n _packet.message\\n );\\n }\\n\\n function encodePacketHeader(Packet memory _packet) internal pure returns (bytes memory) {\\n return\\n abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver\\n );\\n }\\n\\n function encodePayload(Packet memory _packet) internal pure returns (bytes memory) {\\n return abi.encodePacked(_packet.guid, _packet.message);\\n }\\n\\n function header(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return _packet[0:GUID_OFFSET];\\n }\\n\\n function version(bytes calldata _packet) internal pure returns (uint8) {\\n return uint8(bytes1(_packet[PACKET_VERSION_OFFSET:NONCE_OFFSET]));\\n }\\n\\n function nonce(bytes calldata _packet) internal pure returns (uint64) {\\n return uint64(bytes8(_packet[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n function srcEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[SRC_EID_OFFSET:SENDER_OFFSET]));\\n }\\n\\n function sender(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[SENDER_OFFSET:DST_EID_OFFSET]);\\n }\\n\\n function senderAddressB20(bytes calldata _packet) internal pure returns (address) {\\n return sender(_packet).toAddress();\\n }\\n\\n function dstEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[DST_EID_OFFSET:RECEIVER_OFFSET]));\\n }\\n\\n function receiver(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[RECEIVER_OFFSET:GUID_OFFSET]);\\n }\\n\\n function receiverB20(bytes calldata _packet) internal pure returns (address) {\\n return receiver(_packet).toAddress();\\n }\\n\\n function guid(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[GUID_OFFSET:MESSAGE_OFFSET]);\\n }\\n\\n function message(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[MESSAGE_OFFSET:]);\\n }\\n\\n function payload(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[GUID_OFFSET:]);\\n }\\n\\n function payloadHash(bytes calldata _packet) internal pure returns (bytes32) {\\n return keccak256(payload(_packet));\\n }\\n}\\n\",\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\n/// @title ONFT Composed Message Codec\\n/// @notice Library for encoding and decoding ONFT composed messages.\\nlibrary ONFTComposeMsgCodec {\\n // Offset constants for decoding composed messages\\n uint8 private constant NONCE_OFFSET = 8;\\n uint8 private constant SRC_EID_OFFSET = 12;\\n uint8 private constant COMPOSE_FROM_OFFSET = 44;\\n\\n /// @dev Encodes a ONFT721 composed message.\\n /// @param _nonce The nonce value.\\n /// @param _srcEid The source LayerZero endpoint ID.\\n /// @param _composeMsg The composed message.\\n /// @return payload The encoded payload, including the composed message.\\n function encode(\\n uint64 _nonce,\\n uint32 _srcEid,\\n bytes memory _composeMsg // 0x[composeFrom][composeMsg]\\n ) internal pure returns (bytes memory payload) {\\n payload = abi.encodePacked(_nonce, _srcEid, _composeMsg);\\n }\\n\\n /// @dev Retrieves the nonce from the composed message.\\n /// @param _msg The message.\\n /// @return parsedNonce The nonce value.\\n function nonce(bytes calldata _msg) internal pure returns (uint64 parsedNonce) {\\n parsedNonce = uint64(bytes8(_msg[:NONCE_OFFSET]));\\n }\\n\\n /// @dev Retrieves the source LayerZero endpoint ID from the composed message.\\n /// @param _msg The message.\\n /// @return parsedSrcEid The source LayerZero endpoint ID.\\n function srcEid(bytes calldata _msg) internal pure returns (uint32 parsedSrcEid) {\\n parsedSrcEid = uint32(bytes4(_msg[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n /// @dev Retrieves the composeFrom value from the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeFrom The composeFrom value as bytes32.\\n function composeFrom(bytes calldata _msg) internal pure returns (bytes32 parsedComposeFrom) {\\n parsedComposeFrom = bytes32(_msg[SRC_EID_OFFSET:COMPOSE_FROM_OFFSET]);\\n }\\n\\n /// @dev Retrieves the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeMsg The composed message.\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\\n parsedComposeMsg = _msg[COMPOSE_FROM_OFFSET:];\\n }\\n\\n /// @dev Converts an address to bytes32.\\n /// @param _addr The address to convert.\\n /// @return bytes32Repr The bytes32 representation of the address.\\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\\n bytes32Repr = bytes32(uint256(uint160(_addr)));\\n }\\n\\n /// @dev Converts bytes32 to an address.\\n /// @param _b The bytes32 value to convert.\\n /// @return addressRepr The address representation of bytes32.\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\\n addressRepr = address(uint160(uint256(_b)));\\n }\\n}\\n\",\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { ERC721 } from \\\"@openzeppelin/contracts/token/ERC721/ERC721.sol\\\";\\nimport { IONFT721, ONFT721Core } from \\\"./ONFT721Core.sol\\\";\\n\\n/// @title ONFT721 Contract\\n/// @dev ONFT721 is an ERC-721 token that extends the functionality of the ONFT721Core contract.\\nabstract contract ONFT721 is ONFT721Core, ERC721 {\\n /// @dev Constructor for the ONFT721 contract.\\n /// @param _name The name of the ONFT.\\n /// @param _symbol The symbol of the ONFT.\\n /// @param _lzEndpoint The LayerZero endpoint address.\\n /// @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n constructor(\\n string memory _name,\\n string memory _symbol,\\n address _lzEndpoint,\\n address _delegate\\n ) ERC721(_name, _symbol) ONFT721Core(_lzEndpoint, _delegate) {}\\n\\n /// @notice Retrieves the address of the underlying ERC721 implementation (ie. this contract).\\n function token() external view returns (address) {\\n return address(this);\\n }\\n\\n /// @notice Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\\n /// @dev In the case of ONFT where the contract IS the token, approval is NOT required.\\n /// @return requiresApproval Needs approval of the underlying token implementation.\\n function approvalRequired() external pure virtual returns (bool) {\\n return false;\\n }\\n\\n function _debit(address _from, uint256 _tokenId, uint32 /*_dstEid*/) internal virtual override {\\n if (_from != ERC721.ownerOf(_tokenId)) revert OnlyNFTOwner(_from, ERC721.ownerOf(_tokenId));\\n _burn(_tokenId);\\n }\\n\\n function _credit(address _to, uint256 _tokenId, uint32 /*_srcEid*/) internal virtual override {\\n _mint(_to, _tokenId);\\n }\\n}\\n\",\"keccak256\":\"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { OApp, Origin } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\\\";\\nimport { IOAppMsgInspector } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\\\";\\nimport { OAppOptionsType3 } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\\\";\\n\\nimport { OAppPreCrimeSimulator } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\\\";\\n\\nimport { IONFT721, MessagingFee, MessagingReceipt, SendParam } from \\\"./interfaces/IONFT721.sol\\\";\\nimport { ONFT721MsgCodec } from \\\"./libs/ONFT721MsgCodec.sol\\\";\\nimport { ONFTComposeMsgCodec } from \\\"../libs/ONFTComposeMsgCodec.sol\\\";\\nimport { OptionsBuilder } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\\\";\\n\\nimport { SafeCast } from \\\"@openzeppelin/contracts/utils/math/SafeCast.sol\\\";\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\n/// @title ONFT721Core\\n/// @dev Abstract contract for an ONFT721 token.\\nabstract contract ONFT721Core is IONFT721, OApp, OAppPreCrimeSimulator, OAppOptionsType3 {\\n using ONFT721MsgCodec for bytes;\\n using ONFT721MsgCodec for bytes32;\\n using ONFT721MsgCodec for uint256;\\n using OptionsBuilder for bytes;\\n\\n // @notice Msg types that are used to identify the various OFT operations.\\n // @dev This can be extended in child contracts for non-default oft operations\\n // @dev These values are used in things like combineOptions() in OAppOptionsType3.sol.\\n uint16 public constant SEND = 1;\\n uint16 public constant SEND_AND_COMPOSE = 2;\\n\\n // Address of an optional contract to inspect both 'message' and 'options'\\n address public msgInspector;\\n\\n event MsgInspectorSet(address inspector);\\n\\n /// @param _lzEndpoint The address of the LayerZero endpoint.\\n /// @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n constructor(address _lzEndpoint, address _delegate) Ownable(_delegate) OApp(_lzEndpoint, _delegate) {}\\n\\n /// @notice Retrieves interfaceID and the version of the ONFT.\\n /// @return interfaceId The interface ID (0x94642228).\\n /// @return version The version.\\n /// @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\\n /// @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\\n /// @dev ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\\n function onftVersion() external pure virtual returns (bytes4 interfaceId, uint64 version) {\\n return (type(IONFT721).interfaceId, 1);\\n }\\n\\n function quoteSend(\\n SendParam calldata _sendParam,\\n bool _payInLzToken\\n ) external view virtual returns (MessagingFee memory msgFee) {\\n if (_sendParam.to == bytes32(0)) revert InvalidReceiver();\\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam);\\n return _quote(_sendParam.dstEid, message, options, _payInLzToken);\\n }\\n\\n function send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) external payable virtual returns (MessagingReceipt memory msgReceipt) {\\n if (_sendParam.to == bytes32(0)) revert InvalidReceiver();\\n _debit(msg.sender, _sendParam.tokenId, _sendParam.dstEid);\\n\\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam);\\n\\n // @dev Sends the message to the LayerZero Endpoint, returning the MessagingReceipt.\\n msgReceipt = _lzSend(_sendParam.dstEid, message, options, _fee, _refundAddress);\\n emit ONFTSent(msgReceipt.guid, _sendParam.dstEid, msg.sender, _sendParam.tokenId);\\n }\\n\\n /// @dev Internal function to build the message and options.\\n /// @param _sendParam The parameters for the send() operation.\\n /// @return message The encoded message.\\n /// @return options The encoded options.\\n function _buildMsgAndOptions(\\n SendParam calldata _sendParam\\n ) internal view virtual returns (bytes memory message, bytes memory options) {\\n bool hasCompose;\\n (message, hasCompose) = ONFT721MsgCodec.encode(_sendParam.to, _sendParam.tokenId, _sendParam.composeMsg);\\n uint16 msgType = hasCompose ? SEND_AND_COMPOSE : SEND;\\n\\n options = combineOptions(_sendParam.dstEid, msgType, _sendParam.extraOptions);\\n\\n // @dev Optionally inspect the message and options depending if the OApp owner has set a msg inspector.\\n // @dev If it fails inspection, needs to revert in the implementation. ie. does not rely on return boolean\\n if (msgInspector != address(0)) IOAppMsgInspector(msgInspector).inspect(message, options);\\n }\\n\\n /// @dev Internal function to handle the receive on the LayerZero endpoint.\\n /// @param _origin The origin information.\\n /// - srcEid: The source chain endpoint ID.\\n /// - sender: The sender address from the src chain.\\n /// - nonce: The nonce of the LayerZero message.\\n /// @param _guid The unique identifier for the received LayerZero message.\\n /// @param _message The encoded message.\\n /// @dev _executor The address of the executor.\\n /// @dev _extraData Additional data.\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address /*_executor*/, // @dev unused in the default implementation.\\n bytes calldata /*_extraData*/ // @dev unused in the default implementation.\\n ) internal virtual override {\\n address toAddress = _message.sendTo().bytes32ToAddress();\\n uint256 tokenId = _message.tokenId();\\n\\n _credit(toAddress, tokenId, _origin.srcEid);\\n\\n if (_message.isComposed()) {\\n bytes memory composeMsg = ONFTComposeMsgCodec.encode(_origin.nonce, _origin.srcEid, _message.composeMsg());\\n endpoint.sendCompose(toAddress, _guid, 0 /* the index of composed message*/, composeMsg);\\n }\\n\\n emit ONFTReceived(_guid, _origin.srcEid, toAddress, tokenId);\\n }\\n\\n /// @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\\n /// @param _origin The origin information.\\n /// - srcEid: The source chain endpoint ID.\\n /// - sender: The sender address from the src chain.\\n /// - nonce: The nonce of the LayerZero message.\\n /// @param _guid The unique identifier for the received LayerZero message.\\n /// @param _message The LayerZero message.\\n /// @param _executor The address of the off-chain executor.\\n /// @param _extraData Arbitrary data passed by the msg executor.\\n /// @dev Enables the preCrime simulator to mock sending lzReceive() messages,\\n /// routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\\n function _lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual override {\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /// @dev Check if the peer is considered 'trusted' by the OApp.\\n /// @param _eid The endpoint ID to check.\\n /// @param _peer The peer to check.\\n /// @return Whether the peer passed is considered 'trusted' by the OApp.\\n /// @dev Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual override returns (bool) {\\n return peers[_eid] == _peer;\\n }\\n\\n /// @notice Sets the message inspector address for the OFT.\\n /// @param _msgInspector The address of the message inspector.\\n /// @dev This is an optional contract that can be used to inspect both 'message' and 'options'.\\n /// @dev Set it to address(0) to disable it, or set it to a contract address to enable it.\\n function setMsgInspector(address _msgInspector) public virtual onlyOwner {\\n msgInspector = _msgInspector;\\n emit MsgInspectorSet(_msgInspector);\\n }\\n\\n function _debit(address /*_from*/, uint256 /*_tokenId*/, uint32 /*_dstEid*/) internal virtual;\\n\\n function _credit(address /*_to*/, uint256 /*_tokenId*/, uint32 /*_srcEid*/) internal virtual;\\n}\\n\",\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\\\";\\n\\n/// @dev Struct representing token parameters for the ONFT send() operation.\\nstruct SendParam {\\n uint32 dstEid; // Destination LayerZero EndpointV2 ID.\\n bytes32 to; // Recipient address.\\n uint256 tokenId;\\n bytes extraOptions; // Additional options supplied by the caller to be used in the LayerZero message.\\n bytes composeMsg; // The composed message for the send() operation.\\n bytes onftCmd; // The ONFT command to be executed, unused in default ONFT implementations.\\n}\\n\\n/// @title IONFT\\n/// @dev Interface for the ONFT721 token.\\n/// @dev Does not inherit ERC721 to accommodate usage by OFT721Adapter.\\ninterface IONFT721 {\\n // Custom error messages\\n error InvalidReceiver();\\n error OnlyNFTOwner(address caller, address owner);\\n\\n // Events\\n event ONFTSent(\\n bytes32 indexed guid, // GUID of the ONFT message.\\n uint32 dstEid, // Destination Endpoint ID.\\n address indexed fromAddress, // Address of the sender on the src chain.\\n uint256 tokenId // ONFT ID sent.\\n );\\n\\n event ONFTReceived(\\n bytes32 indexed guid, // GUID of the ONFT message.\\n uint32 srcEid, // Source Endpoint ID.\\n address indexed toAddress, // Address of the recipient on the dst chain.\\n uint256 tokenId // ONFT ID received.\\n );\\n\\n /// @notice Retrieves interfaceID and the version of the ONFT.\\n /// @return interfaceId The interface ID.\\n /// @return version The version.\\n /// @dev interfaceId: This specific interface ID is '0x94642228'.\\n /// @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\\n /// @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\\n /// ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\\n function onftVersion() external view returns (bytes4 interfaceId, uint64 version);\\n\\n /// @notice Retrieves the address of the token associated with the ONFT.\\n /// @return token The address of the ERC721 token implementation.\\n function token() external view returns (address);\\n\\n /// @notice Indicates whether the OFT contract requires approval of the 'token()' to send.\\n /// @return requiresApproval Needs approval of the underlying token implementation.\\n /// @dev Allows things like wallet implementers to determine integration requirements,\\n /// without understanding the underlying token implementation.\\n function approvalRequired() external view returns (bool);\\n\\n /// @notice Provides a quote for the send() operation.\\n /// @param _sendParam The parameters for the send() operation.\\n /// @param _payInLzToken Flag indicating whether the caller is paying in the LZ token.\\n /// @return fee The calculated LayerZero messaging fee from the send() operation.\\n /// @dev MessagingFee: LayerZero msg fee\\n /// - nativeFee: The native fee.\\n /// - lzTokenFee: The lzToken fee.\\n function quoteSend(SendParam calldata _sendParam, bool _payInLzToken) external view returns (MessagingFee memory);\\n\\n /// @notice Executes the send() operation.\\n /// @param _sendParam The parameters for the send operation.\\n /// @param _fee The fee information supplied by the caller.\\n /// - nativeFee: The native fee.\\n /// - lzTokenFee: The lzToken fee.\\n /// @param _refundAddress The address to receive any excess funds from fees etc. on the src.\\n /// @return receipt The LayerZero messaging receipt from the send() operation.\\n /// @dev MessagingReceipt: LayerZero msg receipt\\n /// - guid: The unique identifier for the sent message.\\n /// - nonce: The nonce of the sent message.\\n /// - fee: The LayerZero fee incurred for the message.\\n function send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n}\\n\",\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\n/// @title ONFT721MsgCodec\\n/// @notice Library for encoding and decoding ONFT721 LayerZero messages.\\nlibrary ONFT721MsgCodec {\\n uint8 private constant SEND_TO_OFFSET = 32;\\n uint8 private constant TOKEN_ID_OFFSET = 64;\\n\\n /// @dev Encodes an ONFT721 LayerZero message payload.\\n /// @param _sendTo The recipient address.\\n /// @param _tokenId The ID of the token to transfer.\\n /// @param _composeMsg The composed payload.\\n /// @return payload The encoded message payload.\\n /// @return hasCompose A boolean indicating whether the message payload contains a composed payload.\\n function encode(\\n bytes32 _sendTo,\\n uint256 _tokenId,\\n bytes memory _composeMsg\\n ) internal view returns (bytes memory payload, bool hasCompose) {\\n hasCompose = _composeMsg.length > 0;\\n payload = hasCompose\\n ? abi.encodePacked(_sendTo, _tokenId, addressToBytes32(msg.sender), _composeMsg)\\n : abi.encodePacked(_sendTo, _tokenId);\\n }\\n\\n /// @dev Decodes sendTo from the ONFT LayerZero message.\\n /// @param _msg The message.\\n /// @return parsedSendTo The recipient address in bytes32 format.\\n function sendTo(bytes calldata _msg) internal pure returns (bytes32 parsedSendTo) {\\n parsedSendTo = bytes32(_msg[:SEND_TO_OFFSET]);\\n }\\n\\n /// @dev Decodes tokenId from the ONFT LayerZero message.\\n /// @param _msg The message.\\n /// @return parsedTokenId The ID of the tokens to transfer.\\n function tokenId(bytes calldata _msg) internal pure returns (uint256 parsedTokenId) {\\n parsedTokenId = abi.decode(_msg[SEND_TO_OFFSET:TOKEN_ID_OFFSET], (uint256));\\n }\\n\\n /// @dev Decodes whether there is a composed payload.\\n /// @param _msg The message.\\n /// @return parsedIsComposed A boolean indicating whether the message has a composed payload.\\n function isComposed(bytes calldata _msg) internal pure returns (bool parsedIsComposed) {\\n parsedIsComposed = _msg.length > TOKEN_ID_OFFSET;\\n }\\n\\n /// @dev Decodes the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeMsg The composed message.\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\\n parsedComposeMsg = _msg[TOKEN_ID_OFFSET:];\\n }\\n\\n /// @dev Converts an address to bytes32.\\n /// @param _addr The address to convert.\\n /// @return bytes32Repr The bytes32 representation of the address.\\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\\n bytes32Repr = bytes32(uint256(uint160(_addr)));\\n }\\n\\n /// @dev Converts bytes32 to an address.\\n /// @param _b The bytes32 value to convert.\\n /// @return addressRepr The address representation of bytes32.\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\\n addressRepr = address(uint160(uint256(_b)));\\n }\\n}\\n\",\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard ERC20 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\\n */\\ninterface IERC20Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC20InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC20InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC20InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC20InvalidSpender(address spender);\\n}\\n\\n/**\\n * @dev Standard ERC721 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\\n */\\ninterface IERC721Errors {\\n /**\\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\\n * Used in balance queries.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721InvalidOwner(address owner);\\n\\n /**\\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721NonexistentToken(uint256 tokenId);\\n\\n /**\\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param tokenId Identifier number of a token.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC721InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC721InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC721InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC721InvalidOperator(address operator);\\n}\\n\\n/**\\n * @dev Standard ERC1155 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\\n */\\ninterface IERC1155Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC1155InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC1155InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC1155MissingApprovalForAll(address operator, address owner);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC1155InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC1155InvalidOperator(address operator);\\n\\n /**\\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\\n * Used in batch transfers.\\n * @param idsLength Length of the array of token identifiers\\n * @param valuesLength Length of the array of token amounts\\n */\\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\\n}\\n\",\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the value of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the value of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\\n * allowance mechanism. `value` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 value) external returns (bool);\\n}\\n\",\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n * doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n * token.safeTransferFrom(msg.sender, address(this), value);\\n * ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n /**\\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n * given ``owner``'s signed approval.\\n *\\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n * ordering also apply here.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `deadline` must be a timestamp in the future.\\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n * over the EIP712-formatted function arguments.\\n * - the signature must use ``owner``'s current nonce (see {nonces}).\\n *\\n * For more information on the signature format, see the\\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n * section].\\n *\\n * CAUTION: See Security Considerations above.\\n */\\n function permit(\\n address owner,\\n address spender,\\n uint256 value,\\n uint256 deadline,\\n uint8 v,\\n bytes32 r,\\n bytes32 s\\n ) external;\\n\\n /**\\n * @dev Returns the current nonce for `owner`. This value must be\\n * included whenever a signature is generated for {permit}.\\n *\\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n * prevents a signature from being used multiple times.\\n */\\n function nonces(address owner) external view returns (uint256);\\n\\n /**\\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n */\\n // solhint-disable-next-line func-name-mixedcase\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"../IERC20.sol\\\";\\nimport {IERC20Permit} from \\\"../extensions/IERC20Permit.sol\\\";\\nimport {Address} from \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n using Address for address;\\n\\n /**\\n * @dev An operation with an ERC20 token failed.\\n */\\n error SafeERC20FailedOperation(address token);\\n\\n /**\\n * @dev Indicates a failed `decreaseAllowance` request.\\n */\\n error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\\n\\n /**\\n * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\\n }\\n\\n /**\\n * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n */\\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\\n }\\n\\n /**\\n * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n uint256 oldAllowance = token.allowance(address(this), spender);\\n forceApprove(token, spender, oldAllowance + value);\\n }\\n\\n /**\\n * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\\n * value, non-reverting calls are assumed to be successful.\\n */\\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\\n unchecked {\\n uint256 currentAllowance = token.allowance(address(this), spender);\\n if (currentAllowance < requestedDecrease) {\\n revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\\n }\\n forceApprove(token, spender, currentAllowance - requestedDecrease);\\n }\\n }\\n\\n /**\\n * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n * to be set to zero before setting it to a non-zero value, such as USDT.\\n */\\n function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\\n\\n if (!_callOptionalReturnBool(token, approvalCall)) {\\n _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\\n _callOptionalReturn(token, approvalCall);\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n */\\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n // the target address contains contract code and also asserts for success in the low-level call.\\n\\n bytes memory returndata = address(token).functionCall(data);\\n if (returndata.length != 0 && !abi.decode(returndata, (bool))) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n *\\n * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n */\\n function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n // and not revert is the subcall reverts.\\n\\n (bool success, bytes memory returndata) = address(token).call(data);\\n return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && address(token).code.length > 0;\\n }\\n}\\n\",\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC721} from \\\"./IERC721.sol\\\";\\nimport {IERC721Receiver} from \\\"./IERC721Receiver.sol\\\";\\nimport {IERC721Metadata} from \\\"./extensions/IERC721Metadata.sol\\\";\\nimport {Context} from \\\"../../utils/Context.sol\\\";\\nimport {Strings} from \\\"../../utils/Strings.sol\\\";\\nimport {IERC165, ERC165} from \\\"../../utils/introspection/ERC165.sol\\\";\\nimport {IERC721Errors} from \\\"../../interfaces/draft-IERC6093.sol\\\";\\n\\n/**\\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\\n * {ERC721Enumerable}.\\n */\\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\\n using Strings for uint256;\\n\\n // Token name\\n string private _name;\\n\\n // Token symbol\\n string private _symbol;\\n\\n mapping(uint256 tokenId => address) private _owners;\\n\\n mapping(address owner => uint256) private _balances;\\n\\n mapping(uint256 tokenId => address) private _tokenApprovals;\\n\\n mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\\n\\n /**\\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\n return\\n interfaceId == type(IERC721).interfaceId ||\\n interfaceId == type(IERC721Metadata).interfaceId ||\\n super.supportsInterface(interfaceId);\\n }\\n\\n /**\\n * @dev See {IERC721-balanceOf}.\\n */\\n function balanceOf(address owner) public view virtual returns (uint256) {\\n if (owner == address(0)) {\\n revert ERC721InvalidOwner(address(0));\\n }\\n return _balances[owner];\\n }\\n\\n /**\\n * @dev See {IERC721-ownerOf}.\\n */\\n function ownerOf(uint256 tokenId) public view virtual returns (address) {\\n return _requireOwned(tokenId);\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-name}.\\n */\\n function name() public view virtual returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-symbol}.\\n */\\n function symbol() public view virtual returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-tokenURI}.\\n */\\n function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\\n _requireOwned(tokenId);\\n\\n string memory baseURI = _baseURI();\\n return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \\\"\\\";\\n }\\n\\n /**\\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\\n * by default, can be overridden in child contracts.\\n */\\n function _baseURI() internal view virtual returns (string memory) {\\n return \\\"\\\";\\n }\\n\\n /**\\n * @dev See {IERC721-approve}.\\n */\\n function approve(address to, uint256 tokenId) public virtual {\\n _approve(to, tokenId, _msgSender());\\n }\\n\\n /**\\n * @dev See {IERC721-getApproved}.\\n */\\n function getApproved(uint256 tokenId) public view virtual returns (address) {\\n _requireOwned(tokenId);\\n\\n return _getApproved(tokenId);\\n }\\n\\n /**\\n * @dev See {IERC721-setApprovalForAll}.\\n */\\n function setApprovalForAll(address operator, bool approved) public virtual {\\n _setApprovalForAll(_msgSender(), operator, approved);\\n }\\n\\n /**\\n * @dev See {IERC721-isApprovedForAll}.\\n */\\n function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\\n return _operatorApprovals[owner][operator];\\n }\\n\\n /**\\n * @dev See {IERC721-transferFrom}.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) public virtual {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n // Setting an \\\"auth\\\" arguments enables the `_isAuthorized` check which verifies that the token exists\\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\\n address previousOwner = _update(to, tokenId, _msgSender());\\n if (previousOwner != from) {\\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\\n }\\n }\\n\\n /**\\n * @dev See {IERC721-safeTransferFrom}.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\\n safeTransferFrom(from, to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev See {IERC721-safeTransferFrom}.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\\n transferFrom(from, to, tokenId);\\n _checkOnERC721Received(from, to, tokenId, data);\\n }\\n\\n /**\\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\\n *\\n * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\\n * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\\n * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\\n * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\\n */\\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\\n return _owners[tokenId];\\n }\\n\\n /**\\n * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\\n */\\n function _getApproved(uint256 tokenId) internal view virtual returns (address) {\\n return _tokenApprovals[tokenId];\\n }\\n\\n /**\\n * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\\n * particular (ignoring whether it is owned by `owner`).\\n *\\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\\n * assumption.\\n */\\n function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\\n return\\n spender != address(0) &&\\n (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\\n }\\n\\n /**\\n * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\\n * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\\n * the `spender` for the specific `tokenId`.\\n *\\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\\n * assumption.\\n */\\n function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\\n if (!_isAuthorized(owner, spender, tokenId)) {\\n if (owner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n } else {\\n revert ERC721InsufficientApproval(spender, tokenId);\\n }\\n }\\n }\\n\\n /**\\n * @dev Unsafe write access to the balances, used by extensions that \\\"mint\\\" tokens using an {ownerOf} override.\\n *\\n * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\\n * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\\n *\\n * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\\n * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\\n * remain consistent with one another.\\n */\\n function _increaseBalance(address account, uint128 value) internal virtual {\\n unchecked {\\n _balances[account] += value;\\n }\\n }\\n\\n /**\\n * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\\n * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\\n *\\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that\\n * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\\n *\\n * Emits a {Transfer} event.\\n *\\n * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\\n */\\n function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\\n address from = _ownerOf(tokenId);\\n\\n // Perform (optional) operator check\\n if (auth != address(0)) {\\n _checkAuthorized(from, auth, tokenId);\\n }\\n\\n // Execute the update\\n if (from != address(0)) {\\n // Clear approval. No need to re-authorize or emit the Approval event\\n _approve(address(0), tokenId, address(0), false);\\n\\n unchecked {\\n _balances[from] -= 1;\\n }\\n }\\n\\n if (to != address(0)) {\\n unchecked {\\n _balances[to] += 1;\\n }\\n }\\n\\n _owners[tokenId] = to;\\n\\n emit Transfer(from, to, tokenId);\\n\\n return from;\\n }\\n\\n /**\\n * @dev Mints `tokenId` and transfers it to `to`.\\n *\\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\\n *\\n * Requirements:\\n *\\n * - `tokenId` must not exist.\\n * - `to` cannot be the zero address.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _mint(address to, uint256 tokenId) internal {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n address previousOwner = _update(to, tokenId, address(0));\\n if (previousOwner != address(0)) {\\n revert ERC721InvalidSender(address(0));\\n }\\n }\\n\\n /**\\n * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must not exist.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _safeMint(address to, uint256 tokenId) internal {\\n _safeMint(to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\n */\\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\\n _mint(to, tokenId);\\n _checkOnERC721Received(address(0), to, tokenId, data);\\n }\\n\\n /**\\n * @dev Destroys `tokenId`.\\n * The approval is cleared when the token is burned.\\n * This is an internal function that does not check if the sender is authorized to operate on the token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _burn(uint256 tokenId) internal {\\n address previousOwner = _update(address(0), tokenId, address(0));\\n if (previousOwner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n }\\n }\\n\\n /**\\n * @dev Transfers `tokenId` from `from` to `to`.\\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _transfer(address from, address to, uint256 tokenId) internal {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n address previousOwner = _update(to, tokenId, address(0));\\n if (previousOwner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n } else if (previousOwner != from) {\\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\\n }\\n }\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\\n * are aware of the ERC721 standard to prevent tokens from being forever locked.\\n *\\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\\n *\\n * This internal function is like {safeTransferFrom} in the sense that it invokes\\n * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\\n * implement alternative mechanisms to perform token transfer, such as signature-based.\\n *\\n * Requirements:\\n *\\n * - `tokenId` token must exist and be owned by `from`.\\n * - `to` cannot be the zero address.\\n * - `from` cannot be the zero address.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _safeTransfer(address from, address to, uint256 tokenId) internal {\\n _safeTransfer(from, to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\n */\\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\\n _transfer(from, to, tokenId);\\n _checkOnERC721Received(from, to, tokenId, data);\\n }\\n\\n /**\\n * @dev Approve `to` to operate on `tokenId`\\n *\\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\\n * either the owner of the token, or approved to operate on all tokens held by this owner.\\n *\\n * Emits an {Approval} event.\\n *\\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\\n */\\n function _approve(address to, uint256 tokenId, address auth) internal {\\n _approve(to, tokenId, auth, true);\\n }\\n\\n /**\\n * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\\n * emitted in the context of transfers.\\n */\\n function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\\n // Avoid reading the owner unless necessary\\n if (emitEvent || auth != address(0)) {\\n address owner = _requireOwned(tokenId);\\n\\n // We do not use _isAuthorized because single-token approvals should not be able to call approve\\n if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\\n revert ERC721InvalidApprover(auth);\\n }\\n\\n if (emitEvent) {\\n emit Approval(owner, to, tokenId);\\n }\\n }\\n\\n _tokenApprovals[tokenId] = to;\\n }\\n\\n /**\\n * @dev Approve `operator` to operate on all of `owner` tokens\\n *\\n * Requirements:\\n * - operator can't be the address zero.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\\n if (operator == address(0)) {\\n revert ERC721InvalidOperator(operator);\\n }\\n _operatorApprovals[owner][operator] = approved;\\n emit ApprovalForAll(owner, operator, approved);\\n }\\n\\n /**\\n * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\\n * Returns the owner.\\n *\\n * Overrides to ownership logic should be done to {_ownerOf}.\\n */\\n function _requireOwned(uint256 tokenId) internal view returns (address) {\\n address owner = _ownerOf(tokenId);\\n if (owner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n }\\n return owner;\\n }\\n\\n /**\\n * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\\n * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\\n *\\n * @param from address representing the previous owner of the given token ID\\n * @param to target address that will receive the tokens\\n * @param tokenId uint256 ID of the token to be transferred\\n * @param data bytes optional data to send along with the call\\n */\\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {\\n if (to.code.length > 0) {\\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\\n if (retval != IERC721Receiver.onERC721Received.selector) {\\n revert ERC721InvalidReceiver(to);\\n }\\n } catch (bytes memory reason) {\\n if (reason.length == 0) {\\n revert ERC721InvalidReceiver(to);\\n } else {\\n /// @solidity memory-safe-assembly\\n assembly {\\n revert(add(32, reason), mload(reason))\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"../../utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Required interface of an ERC721 compliant contract.\\n */\\ninterface IERC721 is IERC165 {\\n /**\\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\\n */\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\\n */\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\n\\n /**\\n * @dev Returns the number of tokens in ``owner``'s account.\\n */\\n function balanceOf(address owner) external view returns (uint256 balance);\\n\\n /**\\n * @dev Returns the owner of the `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\\n * {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Transfers `tokenId` token from `from` to `to`.\\n *\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\\n * The approval is cleared when the token is transferred.\\n *\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\n *\\n * Requirements:\\n *\\n * - The caller must own the token or be an approved operator.\\n * - `tokenId` must exist.\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Approve or remove `operator` as an operator for the caller.\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\n *\\n * Requirements:\\n *\\n * - The `operator` cannot be the address zero.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function setApprovalForAll(address operator, bool approved) external;\\n\\n /**\\n * @dev Returns the account approved for `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function getApproved(uint256 tokenId) external view returns (address operator);\\n\\n /**\\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\\n *\\n * See {setApprovalForAll}\\n */\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @title ERC721 token receiver interface\\n * @dev Interface for any contract that wants to support safeTransfers\\n * from ERC721 asset contracts.\\n */\\ninterface IERC721Receiver {\\n /**\\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\\n * by `operator` from `from`, this function is called.\\n *\\n * It must return its Solidity selector to confirm the token transfer.\\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\\n * reverted.\\n *\\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\\n */\\n function onERC721Received(\\n address operator,\\n address from,\\n uint256 tokenId,\\n bytes calldata data\\n ) external returns (bytes4);\\n}\\n\",\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC721} from \\\"../IERC721.sol\\\";\\n\\n/**\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\n */\\ninterface IERC721Metadata is IERC721 {\\n /**\\n * @dev Returns the token collection name.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the token collection symbol.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\\n */\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev The ETH balance of the account is not enough to perform the operation.\\n */\\n error AddressInsufficientBalance(address account);\\n\\n /**\\n * @dev There's no code at `target` (it is not a contract).\\n */\\n error AddressEmptyCode(address target);\\n\\n /**\\n * @dev A call to an address target failed. The target may have reverted.\\n */\\n error FailedInnerCall();\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n if (address(this).balance < amount) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n if (!success) {\\n revert FailedInnerCall();\\n }\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason or custom error, it is bubbled\\n * up by this function (like regular Solidity function calls). However, if\\n * the call reverted with no returned reason, this function reverts with a\\n * {FailedInnerCall} error.\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n if (address(this).balance < value) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\\n * unsuccessful call.\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata\\n ) internal view returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n // only check if target is a contract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n if (returndata.length == 0 && target.code.length == 0) {\\n revert AddressEmptyCode(target);\\n }\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\\n * revert reason or with a default {FailedInnerCall} error.\\n */\\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\\n */\\n function _revert(bytes memory returndata) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert FailedInnerCall();\\n }\\n }\\n}\\n\",\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Math} from \\\"./math/Math.sol\\\";\\nimport {SignedMath} from \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n bytes16 private constant HEX_DIGITS = \\\"0123456789abcdef\\\";\\n uint8 private constant ADDRESS_LENGTH = 20;\\n\\n /**\\n * @dev The `value` string doesn't fit in the specified `length`.\\n */\\n error StringsInsufficientHexLength(uint256 value, uint256 length);\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n */\\n function toString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n uint256 length = Math.log10(value) + 1;\\n string memory buffer = new string(length);\\n uint256 ptr;\\n /// @solidity memory-safe-assembly\\n assembly {\\n ptr := add(buffer, add(32, length))\\n }\\n while (true) {\\n ptr--;\\n /// @solidity memory-safe-assembly\\n assembly {\\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\\n }\\n value /= 10;\\n if (value == 0) break;\\n }\\n return buffer;\\n }\\n }\\n\\n /**\\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n */\\n function toStringSigned(int256 value) internal pure returns (string memory) {\\n return string.concat(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value)));\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n */\\n function toHexString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n return toHexString(value, Math.log256(value) + 1);\\n }\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n */\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n uint256 localValue = value;\\n bytes memory buffer = new bytes(2 * length + 2);\\n buffer[0] = \\\"0\\\";\\n buffer[1] = \\\"x\\\";\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\n buffer[i] = HEX_DIGITS[localValue & 0xf];\\n localValue >>= 4;\\n }\\n if (localValue != 0) {\\n revert StringsInsufficientHexLength(value, length);\\n }\\n return string(buffer);\\n }\\n\\n /**\\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\\n * representation.\\n */\\n function toHexString(address addr) internal pure returns (string memory) {\\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\\n }\\n\\n /**\\n * @dev Returns true if the two strings are equal.\\n */\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\\n }\\n}\\n\",\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n */\\nabstract contract ERC165 is IERC165 {\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\\n return interfaceId == type(IERC165).interfaceId;\\n }\\n}\\n\",\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n /**\\n * @dev Muldiv operation overflow.\\n */\\n error MathOverflowedMulDiv();\\n\\n enum Rounding {\\n Floor, // Toward negative infinity\\n Ceil, // Toward positive infinity\\n Trunc, // Toward zero\\n Expand // Away from zero\\n }\\n\\n /**\\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\\n */\\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n uint256 c = a + b;\\n if (c < a) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\\n */\\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b > a) return (false, 0);\\n return (true, a - b);\\n }\\n }\\n\\n /**\\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\\n */\\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\\n // benefit is lost if 'b' is also tested.\\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\\n if (a == 0) return (true, 0);\\n uint256 c = a * b;\\n if (c / a != b) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\\n */\\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a / b);\\n }\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\\n */\\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a % b);\\n }\\n }\\n\\n /**\\n * @dev Returns the largest of two numbers.\\n */\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two numbers.\\n */\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two numbers. The result is rounded towards\\n * zero.\\n */\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b) / 2 can overflow.\\n return (a & b) + (a ^ b) / 2;\\n }\\n\\n /**\\n * @dev Returns the ceiling of the division of two numbers.\\n *\\n * This differs from standard division with `/` in that it rounds towards infinity instead\\n * of rounding towards zero.\\n */\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n if (b == 0) {\\n // Guarantee the same behavior as in a regular Solidity division.\\n return a / b;\\n }\\n\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\n return a == 0 ? 0 : (a - 1) / b + 1;\\n }\\n\\n /**\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\\n * denominator == 0.\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\\n * Uniswap Labs also under MIT license.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n unchecked {\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n // variables such that product = prod1 * 2^256 + prod0.\\n uint256 prod0 = x * y; // Least significant 256 bits of the product\\n uint256 prod1; // Most significant 256 bits of the product\\n assembly {\\n let mm := mulmod(x, y, not(0))\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n }\\n\\n // Handle non-overflow cases, 256 by 256 division.\\n if (prod1 == 0) {\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n // The surrounding unchecked block does not change this fact.\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n return prod0 / denominator;\\n }\\n\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n if (denominator <= prod1) {\\n revert MathOverflowedMulDiv();\\n }\\n\\n ///////////////////////////////////////////////\\n // 512 by 256 division.\\n ///////////////////////////////////////////////\\n\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\n uint256 remainder;\\n assembly {\\n // Compute remainder using mulmod.\\n remainder := mulmod(x, y, denominator)\\n\\n // Subtract 256 bit number from 512 bit number.\\n prod1 := sub(prod1, gt(remainder, prod0))\\n prod0 := sub(prod0, remainder)\\n }\\n\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\\n\\n uint256 twos = denominator & (0 - denominator);\\n assembly {\\n // Divide denominator by twos.\\n denominator := div(denominator, twos)\\n\\n // Divide [prod1 prod0] by twos.\\n prod0 := div(prod0, twos)\\n\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n twos := add(div(sub(0, twos), twos), 1)\\n }\\n\\n // Shift in bits from prod1 into prod0.\\n prod0 |= prod1 * twos;\\n\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\n uint256 inverse = (3 * denominator) ^ 2;\\n\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\\n // works in modular arithmetic, doubling the correct bits in each step.\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n // is no longer required.\\n result = prod0 * inverse;\\n return result;\\n }\\n }\\n\\n /**\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n uint256 result = mulDiv(x, y, denominator);\\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\\n result += 1;\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\\n * towards zero.\\n *\\n * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n */\\n function sqrt(uint256 a) internal pure returns (uint256) {\\n if (a == 0) {\\n return 0;\\n }\\n\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n //\\n // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n //\\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n //\\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n uint256 result = 1 << (log2(a) >> 1);\\n\\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n // into the expected uint128 result.\\n unchecked {\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n return min(result, a / result);\\n }\\n }\\n\\n /**\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\n */\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = sqrt(a);\\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 2 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 128;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 64;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 32;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 16;\\n }\\n if (value >> 8 > 0) {\\n value >>= 8;\\n result += 8;\\n }\\n if (value >> 4 > 0) {\\n value >>= 4;\\n result += 4;\\n }\\n if (value >> 2 > 0) {\\n value >>= 2;\\n result += 2;\\n }\\n if (value >> 1 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log2(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 10 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >= 10 ** 64) {\\n value /= 10 ** 64;\\n result += 64;\\n }\\n if (value >= 10 ** 32) {\\n value /= 10 ** 32;\\n result += 32;\\n }\\n if (value >= 10 ** 16) {\\n value /= 10 ** 16;\\n result += 16;\\n }\\n if (value >= 10 ** 8) {\\n value /= 10 ** 8;\\n result += 8;\\n }\\n if (value >= 10 ** 4) {\\n value /= 10 ** 4;\\n result += 4;\\n }\\n if (value >= 10 ** 2) {\\n value /= 10 ** 2;\\n result += 2;\\n }\\n if (value >= 10 ** 1) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log10(value);\\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 256 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n *\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n */\\n function log256(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 16;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 8;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 4;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 2;\\n }\\n if (value >> 8 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log256(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\\n */\\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\\n return uint8(rounding) % 2 == 1;\\n }\\n}\\n\",\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SafeCast.sol)\\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\\n * checks.\\n *\\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\\n * easily result in undesired exploitation or bugs, since developers usually\\n * assume that overflows raise errors. `SafeCast` restores this intuition by\\n * reverting the transaction when such an operation overflows.\\n *\\n * Using this library instead of the unchecked operations eliminates an entire\\n * class of bugs, so it's recommended to use it always.\\n */\\nlibrary SafeCast {\\n /**\\n * @dev Value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\\n\\n /**\\n * @dev An int value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedIntToUint(int256 value);\\n\\n /**\\n * @dev Value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\\n\\n /**\\n * @dev An uint value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedUintToInt(uint256 value);\\n\\n /**\\n * @dev Returns the downcasted uint248 from uint256, reverting on\\n * overflow (when the input is greater than largest uint248).\\n *\\n * Counterpart to Solidity's `uint248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toUint248(uint256 value) internal pure returns (uint248) {\\n if (value > type(uint248).max) {\\n revert SafeCastOverflowedUintDowncast(248, value);\\n }\\n return uint248(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint240 from uint256, reverting on\\n * overflow (when the input is greater than largest uint240).\\n *\\n * Counterpart to Solidity's `uint240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toUint240(uint256 value) internal pure returns (uint240) {\\n if (value > type(uint240).max) {\\n revert SafeCastOverflowedUintDowncast(240, value);\\n }\\n return uint240(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint232 from uint256, reverting on\\n * overflow (when the input is greater than largest uint232).\\n *\\n * Counterpart to Solidity's `uint232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toUint232(uint256 value) internal pure returns (uint232) {\\n if (value > type(uint232).max) {\\n revert SafeCastOverflowedUintDowncast(232, value);\\n }\\n return uint232(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint224 from uint256, reverting on\\n * overflow (when the input is greater than largest uint224).\\n *\\n * Counterpart to Solidity's `uint224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toUint224(uint256 value) internal pure returns (uint224) {\\n if (value > type(uint224).max) {\\n revert SafeCastOverflowedUintDowncast(224, value);\\n }\\n return uint224(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint216 from uint256, reverting on\\n * overflow (when the input is greater than largest uint216).\\n *\\n * Counterpart to Solidity's `uint216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toUint216(uint256 value) internal pure returns (uint216) {\\n if (value > type(uint216).max) {\\n revert SafeCastOverflowedUintDowncast(216, value);\\n }\\n return uint216(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint208 from uint256, reverting on\\n * overflow (when the input is greater than largest uint208).\\n *\\n * Counterpart to Solidity's `uint208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toUint208(uint256 value) internal pure returns (uint208) {\\n if (value > type(uint208).max) {\\n revert SafeCastOverflowedUintDowncast(208, value);\\n }\\n return uint208(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint200 from uint256, reverting on\\n * overflow (when the input is greater than largest uint200).\\n *\\n * Counterpart to Solidity's `uint200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toUint200(uint256 value) internal pure returns (uint200) {\\n if (value > type(uint200).max) {\\n revert SafeCastOverflowedUintDowncast(200, value);\\n }\\n return uint200(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint192 from uint256, reverting on\\n * overflow (when the input is greater than largest uint192).\\n *\\n * Counterpart to Solidity's `uint192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toUint192(uint256 value) internal pure returns (uint192) {\\n if (value > type(uint192).max) {\\n revert SafeCastOverflowedUintDowncast(192, value);\\n }\\n return uint192(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint184 from uint256, reverting on\\n * overflow (when the input is greater than largest uint184).\\n *\\n * Counterpart to Solidity's `uint184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toUint184(uint256 value) internal pure returns (uint184) {\\n if (value > type(uint184).max) {\\n revert SafeCastOverflowedUintDowncast(184, value);\\n }\\n return uint184(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint176 from uint256, reverting on\\n * overflow (when the input is greater than largest uint176).\\n *\\n * Counterpart to Solidity's `uint176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toUint176(uint256 value) internal pure returns (uint176) {\\n if (value > type(uint176).max) {\\n revert SafeCastOverflowedUintDowncast(176, value);\\n }\\n return uint176(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint168 from uint256, reverting on\\n * overflow (when the input is greater than largest uint168).\\n *\\n * Counterpart to Solidity's `uint168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toUint168(uint256 value) internal pure returns (uint168) {\\n if (value > type(uint168).max) {\\n revert SafeCastOverflowedUintDowncast(168, value);\\n }\\n return uint168(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint160 from uint256, reverting on\\n * overflow (when the input is greater than largest uint160).\\n *\\n * Counterpart to Solidity's `uint160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toUint160(uint256 value) internal pure returns (uint160) {\\n if (value > type(uint160).max) {\\n revert SafeCastOverflowedUintDowncast(160, value);\\n }\\n return uint160(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint152 from uint256, reverting on\\n * overflow (when the input is greater than largest uint152).\\n *\\n * Counterpart to Solidity's `uint152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toUint152(uint256 value) internal pure returns (uint152) {\\n if (value > type(uint152).max) {\\n revert SafeCastOverflowedUintDowncast(152, value);\\n }\\n return uint152(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint144 from uint256, reverting on\\n * overflow (when the input is greater than largest uint144).\\n *\\n * Counterpart to Solidity's `uint144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toUint144(uint256 value) internal pure returns (uint144) {\\n if (value > type(uint144).max) {\\n revert SafeCastOverflowedUintDowncast(144, value);\\n }\\n return uint144(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint136 from uint256, reverting on\\n * overflow (when the input is greater than largest uint136).\\n *\\n * Counterpart to Solidity's `uint136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toUint136(uint256 value) internal pure returns (uint136) {\\n if (value > type(uint136).max) {\\n revert SafeCastOverflowedUintDowncast(136, value);\\n }\\n return uint136(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint128 from uint256, reverting on\\n * overflow (when the input is greater than largest uint128).\\n *\\n * Counterpart to Solidity's `uint128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toUint128(uint256 value) internal pure returns (uint128) {\\n if (value > type(uint128).max) {\\n revert SafeCastOverflowedUintDowncast(128, value);\\n }\\n return uint128(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint120 from uint256, reverting on\\n * overflow (when the input is greater than largest uint120).\\n *\\n * Counterpart to Solidity's `uint120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toUint120(uint256 value) internal pure returns (uint120) {\\n if (value > type(uint120).max) {\\n revert SafeCastOverflowedUintDowncast(120, value);\\n }\\n return uint120(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint112 from uint256, reverting on\\n * overflow (when the input is greater than largest uint112).\\n *\\n * Counterpart to Solidity's `uint112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toUint112(uint256 value) internal pure returns (uint112) {\\n if (value > type(uint112).max) {\\n revert SafeCastOverflowedUintDowncast(112, value);\\n }\\n return uint112(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint104 from uint256, reverting on\\n * overflow (when the input is greater than largest uint104).\\n *\\n * Counterpart to Solidity's `uint104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toUint104(uint256 value) internal pure returns (uint104) {\\n if (value > type(uint104).max) {\\n revert SafeCastOverflowedUintDowncast(104, value);\\n }\\n return uint104(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint96 from uint256, reverting on\\n * overflow (when the input is greater than largest uint96).\\n *\\n * Counterpart to Solidity's `uint96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toUint96(uint256 value) internal pure returns (uint96) {\\n if (value > type(uint96).max) {\\n revert SafeCastOverflowedUintDowncast(96, value);\\n }\\n return uint96(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint88 from uint256, reverting on\\n * overflow (when the input is greater than largest uint88).\\n *\\n * Counterpart to Solidity's `uint88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toUint88(uint256 value) internal pure returns (uint88) {\\n if (value > type(uint88).max) {\\n revert SafeCastOverflowedUintDowncast(88, value);\\n }\\n return uint88(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint80 from uint256, reverting on\\n * overflow (when the input is greater than largest uint80).\\n *\\n * Counterpart to Solidity's `uint80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toUint80(uint256 value) internal pure returns (uint80) {\\n if (value > type(uint80).max) {\\n revert SafeCastOverflowedUintDowncast(80, value);\\n }\\n return uint80(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint72 from uint256, reverting on\\n * overflow (when the input is greater than largest uint72).\\n *\\n * Counterpart to Solidity's `uint72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toUint72(uint256 value) internal pure returns (uint72) {\\n if (value > type(uint72).max) {\\n revert SafeCastOverflowedUintDowncast(72, value);\\n }\\n return uint72(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint64 from uint256, reverting on\\n * overflow (when the input is greater than largest uint64).\\n *\\n * Counterpart to Solidity's `uint64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toUint64(uint256 value) internal pure returns (uint64) {\\n if (value > type(uint64).max) {\\n revert SafeCastOverflowedUintDowncast(64, value);\\n }\\n return uint64(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint56 from uint256, reverting on\\n * overflow (when the input is greater than largest uint56).\\n *\\n * Counterpart to Solidity's `uint56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toUint56(uint256 value) internal pure returns (uint56) {\\n if (value > type(uint56).max) {\\n revert SafeCastOverflowedUintDowncast(56, value);\\n }\\n return uint56(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint48 from uint256, reverting on\\n * overflow (when the input is greater than largest uint48).\\n *\\n * Counterpart to Solidity's `uint48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toUint48(uint256 value) internal pure returns (uint48) {\\n if (value > type(uint48).max) {\\n revert SafeCastOverflowedUintDowncast(48, value);\\n }\\n return uint48(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint40 from uint256, reverting on\\n * overflow (when the input is greater than largest uint40).\\n *\\n * Counterpart to Solidity's `uint40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toUint40(uint256 value) internal pure returns (uint40) {\\n if (value > type(uint40).max) {\\n revert SafeCastOverflowedUintDowncast(40, value);\\n }\\n return uint40(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint32 from uint256, reverting on\\n * overflow (when the input is greater than largest uint32).\\n *\\n * Counterpart to Solidity's `uint32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toUint32(uint256 value) internal pure returns (uint32) {\\n if (value > type(uint32).max) {\\n revert SafeCastOverflowedUintDowncast(32, value);\\n }\\n return uint32(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint24 from uint256, reverting on\\n * overflow (when the input is greater than largest uint24).\\n *\\n * Counterpart to Solidity's `uint24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toUint24(uint256 value) internal pure returns (uint24) {\\n if (value > type(uint24).max) {\\n revert SafeCastOverflowedUintDowncast(24, value);\\n }\\n return uint24(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint16 from uint256, reverting on\\n * overflow (when the input is greater than largest uint16).\\n *\\n * Counterpart to Solidity's `uint16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toUint16(uint256 value) internal pure returns (uint16) {\\n if (value > type(uint16).max) {\\n revert SafeCastOverflowedUintDowncast(16, value);\\n }\\n return uint16(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint8 from uint256, reverting on\\n * overflow (when the input is greater than largest uint8).\\n *\\n * Counterpart to Solidity's `uint8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toUint8(uint256 value) internal pure returns (uint8) {\\n if (value > type(uint8).max) {\\n revert SafeCastOverflowedUintDowncast(8, value);\\n }\\n return uint8(value);\\n }\\n\\n /**\\n * @dev Converts a signed int256 into an unsigned uint256.\\n *\\n * Requirements:\\n *\\n * - input must be greater than or equal to 0.\\n */\\n function toUint256(int256 value) internal pure returns (uint256) {\\n if (value < 0) {\\n revert SafeCastOverflowedIntToUint(value);\\n }\\n return uint256(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted int248 from int256, reverting on\\n * overflow (when the input is less than smallest int248 or\\n * greater than largest int248).\\n *\\n * Counterpart to Solidity's `int248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\\n downcasted = int248(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(248, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int240 from int256, reverting on\\n * overflow (when the input is less than smallest int240 or\\n * greater than largest int240).\\n *\\n * Counterpart to Solidity's `int240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\\n downcasted = int240(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(240, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int232 from int256, reverting on\\n * overflow (when the input is less than smallest int232 or\\n * greater than largest int232).\\n *\\n * Counterpart to Solidity's `int232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\\n downcasted = int232(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(232, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int224 from int256, reverting on\\n * overflow (when the input is less than smallest int224 or\\n * greater than largest int224).\\n *\\n * Counterpart to Solidity's `int224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\\n downcasted = int224(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(224, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int216 from int256, reverting on\\n * overflow (when the input is less than smallest int216 or\\n * greater than largest int216).\\n *\\n * Counterpart to Solidity's `int216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\\n downcasted = int216(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(216, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int208 from int256, reverting on\\n * overflow (when the input is less than smallest int208 or\\n * greater than largest int208).\\n *\\n * Counterpart to Solidity's `int208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\\n downcasted = int208(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(208, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int200 from int256, reverting on\\n * overflow (when the input is less than smallest int200 or\\n * greater than largest int200).\\n *\\n * Counterpart to Solidity's `int200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\\n downcasted = int200(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(200, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int192 from int256, reverting on\\n * overflow (when the input is less than smallest int192 or\\n * greater than largest int192).\\n *\\n * Counterpart to Solidity's `int192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\\n downcasted = int192(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(192, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int184 from int256, reverting on\\n * overflow (when the input is less than smallest int184 or\\n * greater than largest int184).\\n *\\n * Counterpart to Solidity's `int184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\\n downcasted = int184(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(184, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int176 from int256, reverting on\\n * overflow (when the input is less than smallest int176 or\\n * greater than largest int176).\\n *\\n * Counterpart to Solidity's `int176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\\n downcasted = int176(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(176, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int168 from int256, reverting on\\n * overflow (when the input is less than smallest int168 or\\n * greater than largest int168).\\n *\\n * Counterpart to Solidity's `int168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\\n downcasted = int168(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(168, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int160 from int256, reverting on\\n * overflow (when the input is less than smallest int160 or\\n * greater than largest int160).\\n *\\n * Counterpart to Solidity's `int160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\\n downcasted = int160(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(160, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int152 from int256, reverting on\\n * overflow (when the input is less than smallest int152 or\\n * greater than largest int152).\\n *\\n * Counterpart to Solidity's `int152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\\n downcasted = int152(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(152, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int144 from int256, reverting on\\n * overflow (when the input is less than smallest int144 or\\n * greater than largest int144).\\n *\\n * Counterpart to Solidity's `int144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\\n downcasted = int144(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(144, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int136 from int256, reverting on\\n * overflow (when the input is less than smallest int136 or\\n * greater than largest int136).\\n *\\n * Counterpart to Solidity's `int136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\\n downcasted = int136(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(136, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int128 from int256, reverting on\\n * overflow (when the input is less than smallest int128 or\\n * greater than largest int128).\\n *\\n * Counterpart to Solidity's `int128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\\n downcasted = int128(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(128, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int120 from int256, reverting on\\n * overflow (when the input is less than smallest int120 or\\n * greater than largest int120).\\n *\\n * Counterpart to Solidity's `int120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\\n downcasted = int120(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(120, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int112 from int256, reverting on\\n * overflow (when the input is less than smallest int112 or\\n * greater than largest int112).\\n *\\n * Counterpart to Solidity's `int112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\\n downcasted = int112(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(112, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int104 from int256, reverting on\\n * overflow (when the input is less than smallest int104 or\\n * greater than largest int104).\\n *\\n * Counterpart to Solidity's `int104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\\n downcasted = int104(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(104, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int96 from int256, reverting on\\n * overflow (when the input is less than smallest int96 or\\n * greater than largest int96).\\n *\\n * Counterpart to Solidity's `int96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\\n downcasted = int96(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(96, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int88 from int256, reverting on\\n * overflow (when the input is less than smallest int88 or\\n * greater than largest int88).\\n *\\n * Counterpart to Solidity's `int88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\\n downcasted = int88(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(88, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int80 from int256, reverting on\\n * overflow (when the input is less than smallest int80 or\\n * greater than largest int80).\\n *\\n * Counterpart to Solidity's `int80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\\n downcasted = int80(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(80, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int72 from int256, reverting on\\n * overflow (when the input is less than smallest int72 or\\n * greater than largest int72).\\n *\\n * Counterpart to Solidity's `int72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\\n downcasted = int72(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(72, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int64 from int256, reverting on\\n * overflow (when the input is less than smallest int64 or\\n * greater than largest int64).\\n *\\n * Counterpart to Solidity's `int64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\\n downcasted = int64(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(64, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int56 from int256, reverting on\\n * overflow (when the input is less than smallest int56 or\\n * greater than largest int56).\\n *\\n * Counterpart to Solidity's `int56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\\n downcasted = int56(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(56, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int48 from int256, reverting on\\n * overflow (when the input is less than smallest int48 or\\n * greater than largest int48).\\n *\\n * Counterpart to Solidity's `int48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\\n downcasted = int48(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(48, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int40 from int256, reverting on\\n * overflow (when the input is less than smallest int40 or\\n * greater than largest int40).\\n *\\n * Counterpart to Solidity's `int40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\\n downcasted = int40(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(40, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int32 from int256, reverting on\\n * overflow (when the input is less than smallest int32 or\\n * greater than largest int32).\\n *\\n * Counterpart to Solidity's `int32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\\n downcasted = int32(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(32, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int24 from int256, reverting on\\n * overflow (when the input is less than smallest int24 or\\n * greater than largest int24).\\n *\\n * Counterpart to Solidity's `int24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\\n downcasted = int24(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(24, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int16 from int256, reverting on\\n * overflow (when the input is less than smallest int16 or\\n * greater than largest int16).\\n *\\n * Counterpart to Solidity's `int16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\\n downcasted = int16(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(16, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int8 from int256, reverting on\\n * overflow (when the input is less than smallest int8 or\\n * greater than largest int8).\\n *\\n * Counterpart to Solidity's `int8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\\n downcasted = int8(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(8, value);\\n }\\n }\\n\\n /**\\n * @dev Converts an unsigned uint256 into a signed int256.\\n *\\n * Requirements:\\n *\\n * - input must be less than or equal to maxInt256.\\n */\\n function toInt256(uint256 value) internal pure returns (int256) {\\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\\n if (value > uint256(type(int256).max)) {\\n revert SafeCastOverflowedUintToInt(value);\\n }\\n return int256(value);\\n }\\n}\\n\",\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n /**\\n * @dev Returns the largest of two signed numbers.\\n */\\n function max(int256 a, int256 b) internal pure returns (int256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two signed numbers.\\n */\\n function min(int256 a, int256 b) internal pure returns (int256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two signed numbers without overflow.\\n * The result is rounded towards zero.\\n */\\n function average(int256 a, int256 b) internal pure returns (int256) {\\n // Formula from the book \\\"Hacker's Delight\\\"\\n int256 x = (a & b) + ((a ^ b) >> 1);\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\n }\\n\\n /**\\n * @dev Returns the absolute unsigned value of a signed value.\\n */\\n function abs(int256 n) internal pure returns (uint256) {\\n unchecked {\\n // must be unchecked in order to support `n = type(int256).min`\\n return uint256(n >= 0 ? n : -n);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\"},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equal_nonAligned(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let endMinusWord := add(_preBytes, length)\\n let mc := add(_preBytes, 0x20)\\n let cc := add(_postBytes, 0x20)\\n\\n for {\\n // the next line is the loop condition:\\n // while(uint256(mc < endWord) + cb == 2)\\n } eq(add(lt(mc, endMinusWord), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n\\n // Only if still successful\\n // For <1 word tail bytes\\n if gt(success, 0) {\\n // Get the remainder of length/32\\n // length % 32 = AND(length, 32 - 1)\\n let numTailBytes := and(length, 0x1f)\\n let mcRem := mload(mc)\\n let ccRem := mload(cc)\\n for {\\n let i := 0\\n // the next line is the loop condition:\\n // while(uint256(i < numTailBytes) + cb == 2)\\n } eq(add(lt(i, numTailBytes), cb), 2) {\\n i := add(i, 1)\\n } {\\n if iszero(eq(byte(i, mcRem), byte(i, ccRem))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4963,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol:ONFT721","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":539,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol:ONFT721","label":"peers","offset":0,"slot":"1","type":"t_mapping(t_uint32,t_bytes32)"},{"astId":1690,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol:ONFT721","label":"preCrime","offset":0,"slot":"2","type":"t_address"},{"astId":1155,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol:ONFT721","label":"enforcedOptions","offset":0,"slot":"3","type":"t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))"},{"astId":4338,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol:ONFT721","label":"msgInspector","offset":0,"slot":"4","type":"t_address"},{"astId":5676,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol:ONFT721","label":"_name","offset":0,"slot":"5","type":"t_string_storage"},{"astId":5678,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol:ONFT721","label":"_symbol","offset":0,"slot":"6","type":"t_string_storage"},{"astId":5682,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol:ONFT721","label":"_owners","offset":0,"slot":"7","type":"t_mapping(t_uint256,t_address)"},{"astId":5686,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol:ONFT721","label":"_balances","offset":0,"slot":"8","type":"t_mapping(t_address,t_uint256)"},{"astId":5690,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol:ONFT721","label":"_tokenApprovals","offset":0,"slot":"9","type":"t_mapping(t_uint256,t_address)"},{"astId":5696,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol:ONFT721","label":"_operatorApprovals","offset":0,"slot":"10","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint32,t_bytes32)":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => mapping(uint16 => bytes))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_bytes_storage)"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the ONFT721 contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the underlying ERC721 implementation (ie. this contract)."}},"version":1}}},"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol":{"ONFT721Core":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"name":"InvalidOptions","type":"error"},{"inputs":[],"name":"InvalidReceiver","type":"error"},{"inputs":[],"name":"LzTokenUnavailable","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"name":"NotEnoughNative","type":"error"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"OnlyEndpoint","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"OnlyNFTOwner","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"inputs":[],"name":"OnlySelf","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"name":"SimulationResult","type":"error"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false,"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"EnforcedOptionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"inspector","type":"address"}],"name":"MsgInspectorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ONFTReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"dstEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ONFTSent","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":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"preCrimeAddress","type":"address"}],"name":"PreCrimeSet","type":"event"},{"inputs":[],"name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]"}],"name":"lzReceiveAndRevert","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceiveSimulate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"name":"quoteSend","outputs":[{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"msgFee","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"_fee","type":"tuple"},{"internalType":"address","name":"_refundAddress","type":"address"}],"name":"send","outputs":[{"components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"fee","type":"tuple"}],"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"setEnforcedOptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"name":"setMsgInspector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"name":"setPreCrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Abstract contract for an ONFT721 token.","errors":{"AddressEmptyCode(address)":[{"details":"There's no code at `target` (it is not a contract)."}],"AddressInsufficientBalance(address)":[{"details":"The ETH balance of the account is not enough to perform the operation."}],"FailedInnerCall()":[{"details":"A call to an address target failed. The target may have reverted."}],"OwnableInvalidOwner(address)":[{"details":"The owner is not a valid owner account. (eg. `address(0)`)"}],"OwnableUnauthorizedAccount(address)":[{"details":"The caller account is not authorized to perform an operation."}],"SafeERC20FailedOperation(address)":[{"details":"An operation with an ERC20 token failed."}]},"events":{"PreCrimeSet(address)":{"details":"Emitted when the preCrime contract address is set.","params":{"preCrimeAddress":"The address of the preCrime contract."}}},"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"constructor":{"params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_lzEndpoint":"The address of the LayerZero endpoint."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"token()":{"returns":{"_0":"token The address of the ERC721 token implementation."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"ONFT721Core","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","token()":"fc0c546a","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract for an ONFT721 token.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"constructor\":{\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_lzEndpoint\":\"The address of the LayerZero endpoint.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"token()\":{\"returns\":{\"_0\":\"token The address of the ERC721 token implementation.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"ONFT721Core\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the OFT contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the ONFT.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol\":\"ONFT721Core\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\n\\nimport { BitMap256 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\\\";\\nimport { CalldataBytesLib } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary DVNOptions {\\n using CalldataBytesLib for bytes;\\n using BytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 2;\\n uint8 internal constant OPTION_TYPE_PRECRIME = 1;\\n\\n error DVN_InvalidDVNIdx();\\n error DVN_InvalidDVNOptions(uint256 cursor);\\n\\n /// @dev group dvn options by its idx\\n /// @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\\n /// dvn_option = [option_size][dvn_idx][option_type][option]\\n /// option_size = len(dvn_idx) + len(option_type) + len(option)\\n /// dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @return dvnOptions the grouped options, still share the same format of _options\\n /// @return dvnIndices the dvn indices\\n function groupDVNOptionsByIdx(\\n bytes memory _options\\n ) internal pure returns (bytes[] memory dvnOptions, uint8[] memory dvnIndices) {\\n if (_options.length == 0) return (dvnOptions, dvnIndices);\\n\\n uint8 numDVNs = getNumDVNs(_options);\\n\\n // if there is only 1 dvn, we can just return the whole options\\n if (numDVNs == 1) {\\n dvnOptions = new bytes[](1);\\n dvnOptions[0] = _options;\\n\\n dvnIndices = new uint8[](1);\\n dvnIndices[0] = _options.toUint8(3); // dvn idx\\n return (dvnOptions, dvnIndices);\\n }\\n\\n // otherwise, we need to group the options by dvn_idx\\n dvnIndices = new uint8[](numDVNs);\\n dvnOptions = new bytes[](numDVNs);\\n unchecked {\\n uint256 cursor = 0;\\n uint256 start = 0;\\n uint8 lastDVNIdx = 255; // 255 is an invalid dvn_idx\\n\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n // optionLength asserted in getNumDVNs (skip check)\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n\\n // dvnIdx asserted in getNumDVNs (skip check)\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // dvnIdx must equal to the lastDVNIdx for the first option\\n // so it is always skipped in the first option\\n // this operation slices out options whenever the scan finds a different lastDVNIdx\\n if (lastDVNIdx == 255) {\\n lastDVNIdx = dvnIdx;\\n } else if (dvnIdx != lastDVNIdx) {\\n uint256 len = cursor - start - 3; // 3 is for worker_id and option_length\\n bytes memory opt = _options.slice(start, len);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, opt);\\n\\n // reset the start and lastDVNIdx\\n start += len;\\n lastDVNIdx = dvnIdx;\\n }\\n\\n cursor += optionLength;\\n }\\n\\n // skip check the cursor here because the cursor is asserted in getNumDVNs\\n // if we have reached the end of the options, we need to process the last dvn\\n uint256 size = cursor - start;\\n bytes memory op = _options.slice(start, size);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, op);\\n\\n // revert dvnIndices to start from 0\\n for (uint8 i = 0; i < numDVNs; ++i) {\\n --dvnIndices[i];\\n }\\n }\\n }\\n\\n function _insertDVNOptions(\\n bytes[] memory _dvnOptions,\\n uint8[] memory _dvnIndices,\\n uint8 _dvnIdx,\\n bytes memory _newOptions\\n ) internal pure {\\n // dvnIdx starts from 0 but default value of dvnIndices is 0,\\n // so we tell if the slot is empty by adding 1 to dvnIdx\\n if (_dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n uint8 dvnIdxAdj = _dvnIdx + 1;\\n\\n for (uint256 j = 0; j < _dvnIndices.length; ++j) {\\n uint8 index = _dvnIndices[j];\\n if (dvnIdxAdj == index) {\\n _dvnOptions[j] = abi.encodePacked(_dvnOptions[j], _newOptions);\\n break;\\n } else if (index == 0) {\\n // empty slot, that means it is the first time we see this dvn\\n _dvnIndices[j] = dvnIdxAdj;\\n _dvnOptions[j] = _newOptions;\\n break;\\n }\\n }\\n }\\n\\n /// @dev get the number of unique dvns\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n function getNumDVNs(bytes memory _options) internal pure returns (uint8 numDVNs) {\\n uint256 cursor = 0;\\n BitMap256 bitmap;\\n\\n // find number of unique dvn_idx\\n unchecked {\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n if (optionLength < 2) revert DVN_InvalidDVNOptions(cursor); // at least 1 byte for dvn_idx and 1 byte for option_type\\n\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // if dvnIdx is not set, increment numDVNs\\n // max num of dvns is 255, 255 is an invalid dvn_idx\\n // The order of the dvnIdx is not required to be sequential, as enforcing the order may weaken\\n // the composability of the options. e.g. if we refrain from enforcing the order, an OApp that has\\n // already enforced certain options can append additional options to the end of the enforced\\n // ones without restrictions.\\n if (dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n if (!bitmap.get(dvnIdx)) {\\n ++numDVNs;\\n bitmap = bitmap.set(dvnIdx);\\n }\\n\\n cursor += optionLength;\\n }\\n }\\n if (cursor != _options.length) revert DVN_InvalidDVNOptions(cursor);\\n }\\n\\n /// @dev decode the next dvn option from _options starting from the specified cursor\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n /// @param _cursor the cursor to start decoding\\n /// @return optionType the type of the option\\n /// @return option the option\\n /// @return cursor the cursor to start decoding the next option\\n function nextDVNOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor + 1); // skip dvn_idx\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 2; // skip option type and dvn_idx\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n}\\n\",\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the 'MessagingFee' and 'MessagingReceipt' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppSender, MessagingFee, MessagingReceipt } from \\\"./OAppSender.sol\\\";\\n// @dev Import the 'Origin' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppReceiver, Origin } from \\\"./OAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OApp\\n * @dev Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality.\\n */\\nabstract contract OApp is OAppSender, OAppReceiver {\\n /**\\n * @dev Constructor to initialize the OApp with the provided endpoint and owner.\\n * @param _endpoint The address of the LOCAL LayerZero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n */\\n constructor(address _endpoint, address _delegate) OAppCore(_endpoint, _delegate) {}\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol implementation.\\n * @return receiverVersion The version of the OAppReceiver.sol implementation.\\n */\\n function oAppVersion()\\n public\\n pure\\n virtual\\n override(OAppSender, OAppReceiver)\\n returns (uint64 senderVersion, uint64 receiverVersion)\\n {\\n return (SENDER_VERSION, RECEIVER_VERSION);\\n }\\n}\\n\",\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"./interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCore is IOAppCore, Ownable {\\n // The LayerZero endpoint associated with the given OApp\\n ILayerZeroEndpointV2 public immutable endpoint;\\n\\n // Mapping to store peers associated with corresponding endpoints\\n mapping(uint32 eid => bytes32 peer) public peers;\\n\\n /**\\n * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n *\\n * @dev The delegate typically should be set as the owner of the contract.\\n */\\n constructor(address _endpoint, address _delegate) {\\n endpoint = ILayerZeroEndpointV2(_endpoint);\\n\\n if (_delegate == address(0)) revert InvalidDelegate();\\n endpoint.setDelegate(_delegate);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n _setPeer(_eid, _peer);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function _setPeer(uint32 _eid, bytes32 _peer) internal virtual {\\n peers[_eid] = _peer;\\n emit PeerSet(_eid, _peer);\\n }\\n\\n /**\\n * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n * ie. the peer is set to bytes32(0).\\n * @param _eid The endpoint ID.\\n * @return peer The address of the peer associated with the specified endpoint.\\n */\\n function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n bytes32 peer = peers[_eid];\\n if (peer == bytes32(0)) revert NoPeer(_eid);\\n return peer;\\n }\\n\\n /**\\n * @notice Sets the delegate address for the OApp.\\n * @param _delegate The address of the delegate to be set.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n */\\n function setDelegate(address _delegate) public onlyOwner {\\n endpoint.setDelegate(_delegate);\\n }\\n}\\n\",\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { IOAppReceiver, Origin } from \\\"./interfaces/IOAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppReceiver\\n * @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\\n */\\nabstract contract OAppReceiver is IOAppReceiver, OAppCore {\\n // Custom error message for when the caller is not the registered endpoint/\\n error OnlyEndpoint(address addr);\\n\\n // @dev The version of the OAppReceiver implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant RECEIVER_VERSION = 2;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\\n * ie. this is a RECEIVE only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (0, RECEIVER_VERSION);\\n }\\n\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @dev _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @dev _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata /*_origin*/,\\n bytes calldata /*_message*/,\\n address _sender\\n ) public view virtual returns (bool) {\\n return _sender == address(this);\\n }\\n\\n /**\\n * @notice Checks if the path initialization is allowed based on the provided origin.\\n * @param origin The origin information containing the source endpoint and sender address.\\n * @return Whether the path has been initialized.\\n *\\n * @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\\n * @dev This defaults to assuming if a peer has been set, its initialized.\\n * Can be overridden by the OApp if there is other logic to determine this.\\n */\\n function allowInitializePath(Origin calldata origin) public view virtual returns (bool) {\\n return peers[origin.srcEid] == origin.sender;\\n }\\n\\n /**\\n * @notice Retrieves the next nonce for a given source endpoint and sender address.\\n * @dev _srcEid The source endpoint ID.\\n * @dev _sender The sender address.\\n * @return nonce The next nonce.\\n *\\n * @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\\n * @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\\n * @dev This is also enforced by the OApp.\\n * @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\\n */\\n function nextNonce(uint32 /*_srcEid*/, bytes32 /*_sender*/) public view virtual returns (uint64 nonce) {\\n return 0;\\n }\\n\\n /**\\n * @dev Entry point for receiving messages or packets from the endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier for the received LayerZero message.\\n * @param _message The payload of the received message.\\n * @param _executor The address of the executor for the received message.\\n * @param _extraData Additional arbitrary data provided by the corresponding executor.\\n *\\n * @dev Entry point for receiving msg/packet from the LayerZero endpoint.\\n */\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) public payable virtual {\\n // Ensures that only the endpoint can attempt to lzReceive() messages to this OApp.\\n if (address(endpoint) != msg.sender) revert OnlyEndpoint(msg.sender);\\n\\n // Ensure that the sender matches the expected peer for the source endpoint.\\n if (_getPeerOrRevert(_origin.srcEid) != _origin.sender) revert OnlyPeer(_origin.srcEid, _origin.sender);\\n\\n // Call the internal OApp implementation of lzReceive.\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation.\\n */\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n}\\n\",\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppSender\\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\\n */\\nabstract contract OAppSender is OAppCore {\\n using SafeERC20 for IERC20;\\n\\n // Custom error messages\\n error NotEnoughNative(uint256 msgValue);\\n error LzTokenUnavailable();\\n\\n // @dev The version of the OAppSender implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant SENDER_VERSION = 1;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\\n * ie. this is a SEND only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (SENDER_VERSION, 0);\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\\n * @return fee The calculated MessagingFee for the message.\\n * - nativeFee: The native fee for the message.\\n * - lzTokenFee: The LZ token fee for the message.\\n */\\n function _quote(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n bool _payInLzToken\\n ) internal view virtual returns (MessagingFee memory fee) {\\n return\\n endpoint.quote(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\\n address(this)\\n );\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _fee The calculated LayerZero fee for the message.\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\\n * @return receipt The receipt for the sent message.\\n * - guid: The unique identifier for the sent message.\\n * - nonce: The nonce of the sent message.\\n * - fee: The LayerZero fee incurred for the message.\\n */\\n function _lzSend(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n MessagingFee memory _fee,\\n address _refundAddress\\n ) internal virtual returns (MessagingReceipt memory receipt) {\\n // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\\n uint256 messageValue = _payNative(_fee.nativeFee);\\n if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\\n\\n return\\n // solhint-disable-next-line check-send-result\\n endpoint.send{ value: messageValue }(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\\n _refundAddress\\n );\\n }\\n\\n /**\\n * @dev Internal function to pay the native fee associated with the message.\\n * @param _nativeFee The native fee to be paid.\\n * @return nativeFee The amount of native currency paid.\\n *\\n * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\\n * this will need to be overridden because msg.value would contain multiple lzFees.\\n * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\\n * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\\n * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\\n */\\n function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\\n if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\\n return _nativeFee;\\n }\\n\\n /**\\n * @dev Internal function to pay the LZ token fee associated with the message.\\n * @param _lzTokenFee The LZ token fee to be paid.\\n *\\n * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\\n * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\\n */\\n function _payLzToken(uint256 _lzTokenFee) internal virtual {\\n // @dev Cannot cache the token because it is not immutable in the endpoint.\\n address lzToken = endpoint.lzToken();\\n if (lzToken == address(0)) revert LzTokenUnavailable();\\n\\n // Pay LZ token fee by sending tokens to the endpoint.\\n IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\\n }\\n}\\n\",\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n // Custom error messages\\n error OnlyPeer(uint32 eid, bytes32 sender);\\n error NoPeer(uint32 eid);\\n error InvalidEndpointCall();\\n error InvalidDelegate();\\n\\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n event PeerSet(uint32 eid, bytes32 peer);\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n */\\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n /**\\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n * @return iEndpoint The LayerZero endpoint as an interface.\\n */\\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n /**\\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n */\\n function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n /**\\n * @notice Sets the delegate address for the OApp Core.\\n * @param _delegate The address of the delegate to be set.\\n */\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @title IOAppMsgInspector\\n * @dev Interface for the OApp Message Inspector, allowing examination of message and options contents.\\n */\\ninterface IOAppMsgInspector {\\n // Custom error message for inspection failure\\n error InspectionFailed(bytes message, bytes options);\\n\\n /**\\n * @notice Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\\n * @param _message The message payload to be inspected.\\n * @param _options Additional options or parameters for inspection.\\n * @return valid A boolean indicating whether the inspection passed (true) or failed (false).\\n *\\n * @dev Optionally done as a revert, OR use the boolean provided to handle the failure.\\n */\\n function inspect(bytes calldata _message, bytes calldata _options) external view returns (bool valid);\\n}\\n\",\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Struct representing enforced option parameters.\\n */\\nstruct EnforcedOptionParam {\\n uint32 eid; // Endpoint ID\\n uint16 msgType; // Message Type\\n bytes options; // Additional options\\n}\\n\\n/**\\n * @title IOAppOptionsType3\\n * @dev Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.\\n */\\ninterface IOAppOptionsType3 {\\n // Custom error message for invalid options\\n error InvalidOptions(bytes options);\\n\\n // Event emitted when enforced options are set\\n event EnforcedOptionSet(EnforcedOptionParam[] _enforcedOptions);\\n\\n /**\\n * @notice Sets enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) external;\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OApp message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) external view returns (bytes memory options);\\n}\\n\",\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroReceiver, Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\\\";\\n\\ninterface IOAppReceiver is ILayerZeroReceiver {\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata _origin,\\n bytes calldata _message,\\n address _sender\\n ) external view returns (bool isSender);\\n}\\n\",\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppOptionsType3, EnforcedOptionParam } from \\\"../interfaces/IOAppOptionsType3.sol\\\";\\n\\n/**\\n * @title OAppOptionsType3\\n * @dev Abstract contract implementing the IOAppOptionsType3 interface with type 3 options.\\n */\\nabstract contract OAppOptionsType3 is IOAppOptionsType3, Ownable {\\n uint16 internal constant OPTION_TYPE_3 = 3;\\n\\n // @dev The \\\"msgType\\\" should be defined in the child contract.\\n mapping(uint32 eid => mapping(uint16 msgType => bytes enforcedOption)) public enforcedOptions;\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) public virtual onlyOwner {\\n _setEnforcedOptions(_enforcedOptions);\\n }\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function _setEnforcedOptions(EnforcedOptionParam[] memory _enforcedOptions) internal virtual {\\n for (uint256 i = 0; i < _enforcedOptions.length; i++) {\\n // @dev Enforced options are only available for optionType 3, as type 1 and 2 dont support combining.\\n _assertOptionsType3(_enforcedOptions[i].options);\\n enforcedOptions[_enforcedOptions[i].eid][_enforcedOptions[i].msgType] = _enforcedOptions[i].options;\\n }\\n\\n emit EnforcedOptionSet(_enforcedOptions);\\n }\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OAPP message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n *\\n * @dev If there is an enforced lzReceive option:\\n * - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether}\\n * - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.\\n * @dev This presence of duplicated options is handled off-chain in the verifier/executor.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) public view virtual returns (bytes memory) {\\n bytes memory enforced = enforcedOptions[_eid][_msgType];\\n\\n // No enforced options, pass whatever the caller supplied, even if it's empty or legacy type 1/2 options.\\n if (enforced.length == 0) return _extraOptions;\\n\\n // No caller options, return enforced\\n if (_extraOptions.length == 0) return enforced;\\n\\n // @dev If caller provided _extraOptions, must be type 3 as its the ONLY type that can be combined.\\n if (_extraOptions.length >= 2) {\\n _assertOptionsType3(_extraOptions);\\n // @dev Remove the first 2 bytes containing the type from the _extraOptions and combine with enforced.\\n return bytes.concat(enforced, _extraOptions[2:]);\\n }\\n\\n // No valid set of options was found.\\n revert InvalidOptions(_extraOptions);\\n }\\n\\n /**\\n * @dev Internal function to assert that options are of type 3.\\n * @param _options The options to be checked.\\n */\\n function _assertOptionsType3(bytes memory _options) internal pure virtual {\\n uint16 optionsType;\\n assembly {\\n optionsType := mload(add(_options, 2))\\n }\\n if (optionsType != OPTION_TYPE_3) revert InvalidOptions(_options);\\n }\\n}\\n\",\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\nimport { SafeCast } from \\\"@openzeppelin/contracts/utils/math/SafeCast.sol\\\";\\n\\nimport { ExecutorOptions } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\\\";\\nimport { DVNOptions } from \\\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\\\";\\n\\n/**\\n * @title OptionsBuilder\\n * @dev Library for building and encoding various message options.\\n */\\nlibrary OptionsBuilder {\\n using SafeCast for uint256;\\n using BytesLib for bytes;\\n\\n // Constants for options types\\n uint16 internal constant TYPE_1 = 1; // legacy options type 1\\n uint16 internal constant TYPE_2 = 2; // legacy options type 2\\n uint16 internal constant TYPE_3 = 3;\\n\\n // Custom error message\\n error InvalidSize(uint256 max, uint256 actual);\\n error InvalidOptionType(uint16 optionType);\\n\\n // Modifier to ensure only options of type 3 are used\\n modifier onlyType3(bytes memory _options) {\\n if (_options.toUint16(0) != TYPE_3) revert InvalidOptionType(_options.toUint16(0));\\n _;\\n }\\n\\n /**\\n * @dev Creates a new options container with type 3.\\n * @return options The newly created options container.\\n */\\n function newOptions() internal pure returns (bytes memory) {\\n return abi.encodePacked(TYPE_3);\\n }\\n\\n /**\\n * @dev Adds an executor LZ receive option to the existing options.\\n * @param _options The existing options container.\\n * @param _gas The gasLimit used on the lzReceive() function in the OApp.\\n * @param _value The msg.value passed to the lzReceive() function in the OApp.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed by the executor\\n * eg. if (_gas: 200k, and _value: 1 ether) AND (_gas: 100k, _value: 0.5 ether) are sent in an option to the LayerZeroEndpoint,\\n * that becomes (300k, 1.5 ether) when the message is executed on the remote lzReceive() function.\\n */\\n function addExecutorLzReceiveOption(\\n bytes memory _options,\\n uint128 _gas,\\n uint128 _value\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeLzReceiveOption(_gas, _value);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZRECEIVE, option);\\n }\\n\\n /**\\n * @dev Adds an executor native drop option to the existing options.\\n * @param _options The existing options container.\\n * @param _amount The amount for the native value that is airdropped to the 'receiver'.\\n * @param _receiver The receiver address for the native drop option.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\\n */\\n function addExecutorNativeDropOption(\\n bytes memory _options,\\n uint128 _amount,\\n bytes32 _receiver\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeNativeDropOption(_amount, _receiver);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_NATIVE_DROP, option);\\n }\\n\\n /**\\n * @dev Adds an executor LZ compose option to the existing options.\\n * @param _options The existing options container.\\n * @param _index The index for the lzCompose() function call.\\n * @param _gas The gasLimit for the lzCompose() function call.\\n * @param _value The msg.value for the lzCompose() function call.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed PER index by the executor on the remote chain.\\n * @dev If the OApp sends N lzCompose calls on the remote, you must provide N incremented indexes starting with 0.\\n * ie. When your remote OApp composes (N = 3) messages, you must set this option for index 0,1,2\\n */\\n function addExecutorLzComposeOption(\\n bytes memory _options,\\n uint16 _index,\\n uint128 _gas,\\n uint128 _value\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeLzComposeOption(_index, _gas, _value);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZCOMPOSE, option);\\n }\\n\\n /**\\n * @dev Adds an executor ordered execution option to the existing options.\\n * @param _options The existing options container.\\n * @return options The updated options container.\\n */\\n function addExecutorOrderedExecutionOption(\\n bytes memory _options\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_ORDERED_EXECUTION, bytes(\\\"\\\"));\\n }\\n\\n /**\\n * @dev Adds a DVN pre-crime option to the existing options.\\n * @param _options The existing options container.\\n * @param _dvnIdx The DVN index for the pre-crime option.\\n * @return options The updated options container.\\n */\\n function addDVNPreCrimeOption(\\n bytes memory _options,\\n uint8 _dvnIdx\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return addDVNOption(_options, _dvnIdx, DVNOptions.OPTION_TYPE_PRECRIME, bytes(\\\"\\\"));\\n }\\n\\n /**\\n * @dev Adds an executor option to the existing options.\\n * @param _options The existing options container.\\n * @param _optionType The type of the executor option.\\n * @param _option The encoded data for the executor option.\\n * @return options The updated options container.\\n */\\n function addExecutorOption(\\n bytes memory _options,\\n uint8 _optionType,\\n bytes memory _option\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return\\n abi.encodePacked(\\n _options,\\n ExecutorOptions.WORKER_ID,\\n _option.length.toUint16() + 1, // +1 for optionType\\n _optionType,\\n _option\\n );\\n }\\n\\n /**\\n * @dev Adds a DVN option to the existing options.\\n * @param _options The existing options container.\\n * @param _dvnIdx The DVN index for the DVN option.\\n * @param _optionType The type of the DVN option.\\n * @param _option The encoded data for the DVN option.\\n * @return options The updated options container.\\n */\\n function addDVNOption(\\n bytes memory _options,\\n uint8 _dvnIdx,\\n uint8 _optionType,\\n bytes memory _option\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return\\n abi.encodePacked(\\n _options,\\n DVNOptions.WORKER_ID,\\n _option.length.toUint16() + 2, // +2 for optionType and dvnIdx\\n _dvnIdx,\\n _optionType,\\n _option\\n );\\n }\\n\\n /**\\n * @dev Encodes legacy options of type 1.\\n * @param _executionGas The gasLimit value passed to lzReceive().\\n * @return legacyOptions The encoded legacy options.\\n */\\n function encodeLegacyOptionsType1(uint256 _executionGas) internal pure returns (bytes memory) {\\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n return abi.encodePacked(TYPE_1, _executionGas);\\n }\\n\\n /**\\n * @dev Encodes legacy options of type 2.\\n * @param _executionGas The gasLimit value passed to lzReceive().\\n * @param _nativeForDst The amount of native air dropped to the receiver.\\n * @param _receiver The _nativeForDst receiver address.\\n * @return legacyOptions The encoded legacy options of type 2.\\n */\\n function encodeLegacyOptionsType2(\\n uint256 _executionGas,\\n uint256 _nativeForDst,\\n bytes memory _receiver // @dev Use bytes instead of bytes32 in legacy type 2 for _receiver.\\n ) internal pure returns (bytes memory) {\\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n if (_nativeForDst > type(uint128).max) revert InvalidSize(type(uint128).max, _nativeForDst);\\n if (_receiver.length > 32) revert InvalidSize(32, _receiver.length);\\n return abi.encodePacked(TYPE_2, _executionGas, _nativeForDst, _receiver);\\n }\\n}\\n\",\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IPreCrime } from \\\"./interfaces/IPreCrime.sol\\\";\\nimport { IOAppPreCrimeSimulator, InboundPacket, Origin } from \\\"./interfaces/IOAppPreCrimeSimulator.sol\\\";\\n\\n/**\\n * @title OAppPreCrimeSimulator\\n * @dev Abstract contract serving as the base for preCrime simulation functionality in an OApp.\\n */\\nabstract contract OAppPreCrimeSimulator is IOAppPreCrimeSimulator, Ownable {\\n // The address of the preCrime implementation.\\n address public preCrime;\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n *\\n * @dev The simulator contract is the base contract for the OApp by default.\\n * @dev If the simulator is a separate contract, override this function.\\n */\\n function oApp() external view virtual returns (address) {\\n return address(this);\\n }\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) public virtual onlyOwner {\\n preCrime = _preCrime;\\n emit PreCrimeSet(_preCrime);\\n }\\n\\n /**\\n * @dev Interface for pre-crime simulations. Always reverts at the end with the simulation results.\\n * @param _packets An array of InboundPacket objects representing received packets to be delivered.\\n *\\n * @dev WARNING: MUST revert at the end with the simulation results.\\n * @dev Gives the preCrime implementation the ability to mock sending packets to the lzReceive function,\\n * WITHOUT actually executing them.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) public payable virtual {\\n for (uint256 i = 0; i < _packets.length; i++) {\\n InboundPacket calldata packet = _packets[i];\\n\\n // Ignore packets that are not from trusted peers.\\n if (!isPeer(packet.origin.srcEid, packet.origin.sender)) continue;\\n\\n // @dev Because a verifier is calling this function, it doesnt have access to executor params:\\n // - address _executor\\n // - bytes calldata _extraData\\n // preCrime will NOT work for OApps that rely on these two parameters inside of their _lzReceive().\\n // They are instead stubbed to default values, address(0) and bytes(\\\"\\\")\\n // @dev Calling this.lzReceiveSimulate removes ability for assembly return 0 callstack exit,\\n // which would cause the revert to be ignored.\\n this.lzReceiveSimulate{ value: packet.value }(\\n packet.origin,\\n packet.guid,\\n packet.message,\\n packet.executor,\\n packet.extraData\\n );\\n }\\n\\n // @dev Revert with the simulation results. msg.sender must implement IPreCrime.buildSimulationResult().\\n revert SimulationResult(IPreCrime(msg.sender).buildSimulationResult());\\n }\\n\\n /**\\n * @dev Is effectively an internal function because msg.sender must be address(this).\\n * Allows resetting the call stack for 'internal' calls.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier of the packet.\\n * @param _message The message payload of the packet.\\n * @param _executor The executor address for the packet.\\n * @param _extraData Additional data for the packet.\\n */\\n function lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable virtual {\\n // @dev Ensure ONLY can be called 'internally'.\\n if (msg.sender != address(this)) revert OnlySelf();\\n _lzReceiveSimulate(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\\n * @param _origin The origin information.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address from the src chain.\\n * - nonce: The nonce of the LayerZero message.\\n * @param _guid The GUID of the LayerZero message.\\n * @param _message The LayerZero message.\\n * @param _executor The address of the off-chain executor.\\n * @param _extraData Arbitrary data passed by the msg executor.\\n *\\n * @dev Enables the preCrime simulator to mock sending lzReceive() messages,\\n * routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\\n */\\n function _lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual returns (bool);\\n}\\n\",\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the Origin so it's exposed to OAppPreCrimeSimulator implementers.\\n// solhint-disable-next-line no-unused-import\\nimport { InboundPacket, Origin } from \\\"../libs/Packet.sol\\\";\\n\\n/**\\n * @title IOAppPreCrimeSimulator Interface\\n * @dev Interface for the preCrime simulation functionality in an OApp.\\n */\\ninterface IOAppPreCrimeSimulator {\\n // @dev simulation result used in PreCrime implementation\\n error SimulationResult(bytes result);\\n error OnlySelf();\\n\\n /**\\n * @dev Emitted when the preCrime contract address is set.\\n * @param preCrimeAddress The address of the preCrime contract.\\n */\\n event PreCrimeSet(address preCrimeAddress);\\n\\n /**\\n * @dev Retrieves the address of the preCrime contract implementation.\\n * @return The address of the preCrime contract.\\n */\\n function preCrime() external view returns (address);\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n */\\n function oApp() external view returns (address);\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) external;\\n\\n /**\\n * @dev Mocks receiving a packet, then reverts with a series of data to infer the state/result.\\n * @param _packets An array of LayerZero InboundPacket objects representing received packets.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) external payable;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\nstruct PreCrimePeer {\\n uint32 eid;\\n bytes32 preCrime;\\n bytes32 oApp;\\n}\\n\\n// TODO not done yet\\ninterface IPreCrime {\\n error OnlyOffChain();\\n\\n // for simulate()\\n error PacketOversize(uint256 max, uint256 actual);\\n error PacketUnsorted();\\n error SimulationFailed(bytes reason);\\n\\n // for preCrime()\\n error SimulationResultNotFound(uint32 eid);\\n error InvalidSimulationResult(uint32 eid, bytes reason);\\n error CrimeFound(bytes crime);\\n\\n function getConfig(bytes[] calldata _packets, uint256[] calldata _packetMsgValues) external returns (bytes memory);\\n\\n function simulate(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues\\n ) external payable returns (bytes memory);\\n\\n function buildSimulationResult() external view returns (bytes memory);\\n\\n function preCrime(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues,\\n bytes[] calldata _simulations\\n ) external;\\n\\n function version() external view returns (uint64 major, uint8 minor);\\n}\\n\",\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { PacketV1Codec } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\\\";\\n\\n/**\\n * @title InboundPacket\\n * @dev Structure representing an inbound packet received by the contract.\\n */\\nstruct InboundPacket {\\n Origin origin; // Origin information of the packet.\\n uint32 dstEid; // Destination endpointId of the packet.\\n address receiver; // Receiver address for the packet.\\n bytes32 guid; // Unique identifier of the packet.\\n uint256 value; // msg.value of the packet.\\n address executor; // Executor address for the packet.\\n bytes message; // Message payload of the packet.\\n bytes extraData; // Additional arbitrary data for the packet.\\n}\\n\\n/**\\n * @title PacketDecoder\\n * @dev Library for decoding LayerZero packets.\\n */\\nlibrary PacketDecoder {\\n using PacketV1Codec for bytes;\\n\\n /**\\n * @dev Decode an inbound packet from the given packet data.\\n * @param _packet The packet data to decode.\\n * @return packet An InboundPacket struct representing the decoded packet.\\n */\\n function decode(bytes calldata _packet) internal pure returns (InboundPacket memory packet) {\\n packet.origin = Origin(_packet.srcEid(), _packet.sender(), _packet.nonce());\\n packet.dstEid = _packet.dstEid();\\n packet.receiver = _packet.receiverB20();\\n packet.guid = _packet.guid();\\n packet.message = _packet.message();\\n }\\n\\n /**\\n * @dev Decode multiple inbound packets from the given packet data and associated message values.\\n * @param _packets An array of packet data to decode.\\n * @param _packetMsgValues An array of associated message values for each packet.\\n * @return packets An array of InboundPacket structs representing the decoded packets.\\n */\\n function decode(\\n bytes[] calldata _packets,\\n uint256[] memory _packetMsgValues\\n ) internal pure returns (InboundPacket[] memory packets) {\\n packets = new InboundPacket[](_packets.length);\\n for (uint256 i = 0; i < _packets.length; i++) {\\n bytes calldata packet = _packets[i];\\n packets[i] = PacketDecoder.decode(packet);\\n // @dev Allows the verifier to specify the msg.value that gets passed in lzReceive.\\n packets[i].value = _packetMsgValues[i];\\n }\\n }\\n}\\n\",\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\nimport { SetConfigParam } from \\\"./IMessageLibManager.sol\\\";\\n\\nenum MessageLibType {\\n Send,\\n Receive,\\n SendAndReceive\\n}\\n\\ninterface IMessageLib is IERC165 {\\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\\n\\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n // message libs of same major version are compatible\\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\\n\\n function messageLibType() external view returns (MessageLibType);\\n}\\n\",\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { MessagingFee } from \\\"./ILayerZeroEndpointV2.sol\\\";\\nimport { IMessageLib } from \\\"./IMessageLib.sol\\\";\\n\\nstruct Packet {\\n uint64 nonce;\\n uint32 srcEid;\\n address sender;\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes32 guid;\\n bytes message;\\n}\\n\\ninterface ISendLib is IMessageLib {\\n function send(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external returns (MessagingFee memory, bytes memory encodedPacket);\\n\\n function quote(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external view returns (MessagingFee memory);\\n\\n function setTreasury(address _treasury) external;\\n\\n function withdrawFee(address _to, uint256 _amount) external;\\n\\n function withdrawLzTokenFee(address _lzToken, address _to, uint256 _amount) external;\\n}\\n\",\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary AddressCast {\\n error AddressCast_InvalidSizeForAddress();\\n error AddressCast_InvalidAddress();\\n\\n function toBytes32(bytes calldata _addressBytes) internal pure returns (bytes32 result) {\\n if (_addressBytes.length > 32) revert AddressCast_InvalidAddress();\\n result = bytes32(_addressBytes);\\n unchecked {\\n uint256 offset = 32 - _addressBytes.length;\\n result = result >> (offset * 8);\\n }\\n }\\n\\n function toBytes32(address _address) internal pure returns (bytes32 result) {\\n result = bytes32(uint256(uint160(_address)));\\n }\\n\\n function toBytes(bytes32 _addressBytes32, uint256 _size) internal pure returns (bytes memory result) {\\n if (_size == 0 || _size > 32) revert AddressCast_InvalidSizeForAddress();\\n result = new bytes(_size);\\n unchecked {\\n uint256 offset = 256 - _size * 8;\\n assembly {\\n mstore(add(result, 32), shl(offset, _addressBytes32))\\n }\\n }\\n }\\n\\n function toAddress(bytes32 _addressBytes32) internal pure returns (address result) {\\n result = address(uint160(uint256(_addressBytes32)));\\n }\\n\\n function toAddress(bytes calldata _addressBytes) internal pure returns (address result) {\\n if (_addressBytes.length != 20) revert AddressCast_InvalidAddress();\\n result = address(bytes20(_addressBytes));\\n }\\n}\\n\",\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n return uint8(_bytes[_start]);\\n }\\n\\n function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n unchecked {\\n uint256 end = _start + 2;\\n return uint16(bytes2(_bytes[_start:end]));\\n }\\n }\\n\\n function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n unchecked {\\n uint256 end = _start + 4;\\n return uint32(bytes4(_bytes[_start:end]));\\n }\\n }\\n\\n function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n unchecked {\\n uint256 end = _start + 8;\\n return uint64(bytes8(_bytes[_start:end]));\\n }\\n }\\n\\n function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n unchecked {\\n uint256 end = _start + 16;\\n return uint128(bytes16(_bytes[_start:end]));\\n }\\n }\\n\\n function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n unchecked {\\n uint256 end = _start + 32;\\n return uint256(bytes32(_bytes[_start:end]));\\n }\\n }\\n\\n function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n unchecked {\\n uint256 end = _start + 20;\\n return address(bytes20(_bytes[_start:end]));\\n }\\n }\\n\\n function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n unchecked {\\n uint256 end = _start + 32;\\n return bytes32(_bytes[_start:end]);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\\npragma solidity ^0.8.20;\\n\\ntype BitMap256 is uint256;\\n\\nusing BitMaps for BitMap256 global;\\n\\nlibrary BitMaps {\\n /**\\n * @dev Returns whether the bit at `index` is set.\\n */\\n function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\\n uint256 mask = 1 << index;\\n return BitMap256.unwrap(bitmap) & mask != 0;\\n }\\n\\n /**\\n * @dev Sets the bit at `index`.\\n */\\n function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\\n uint256 mask = 1 << index;\\n return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\\n }\\n}\\n\",\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { CalldataBytesLib } from \\\"../../libs/CalldataBytesLib.sol\\\";\\n\\nlibrary ExecutorOptions {\\n using CalldataBytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 1;\\n\\n uint8 internal constant OPTION_TYPE_LZRECEIVE = 1;\\n uint8 internal constant OPTION_TYPE_NATIVE_DROP = 2;\\n uint8 internal constant OPTION_TYPE_LZCOMPOSE = 3;\\n uint8 internal constant OPTION_TYPE_ORDERED_EXECUTION = 4;\\n\\n error Executor_InvalidLzReceiveOption();\\n error Executor_InvalidNativeDropOption();\\n error Executor_InvalidLzComposeOption();\\n\\n /// @dev decode the next executor option from the options starting from the specified cursor\\n /// @param _options [executor_id][executor_option][executor_id][executor_option]...\\n /// executor_option = [option_size][option_type][option]\\n /// option_size = len(option_type) + len(option)\\n /// executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @param _cursor the cursor to start decoding from\\n /// @return optionType the type of the option\\n /// @return option the option of the executor\\n /// @return cursor the cursor to start decoding the next executor option\\n function nextExecutorOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor);\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 1; // skip option type\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n\\n function decodeLzReceiveOption(bytes calldata _option) internal pure returns (uint128 gas, uint128 value) {\\n if (_option.length != 16 && _option.length != 32) revert Executor_InvalidLzReceiveOption();\\n gas = _option.toU128(0);\\n value = _option.length == 32 ? _option.toU128(16) : 0;\\n }\\n\\n function decodeNativeDropOption(bytes calldata _option) internal pure returns (uint128 amount, bytes32 receiver) {\\n if (_option.length != 48) revert Executor_InvalidNativeDropOption();\\n amount = _option.toU128(0);\\n receiver = _option.toB32(16);\\n }\\n\\n function decodeLzComposeOption(\\n bytes calldata _option\\n ) internal pure returns (uint16 index, uint128 gas, uint128 value) {\\n if (_option.length != 18 && _option.length != 34) revert Executor_InvalidLzComposeOption();\\n index = _option.toU16(0);\\n gas = _option.toU128(2);\\n value = _option.length == 34 ? _option.toU128(18) : 0;\\n }\\n\\n function encodeLzReceiveOption(uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_gas) : abi.encodePacked(_gas, _value);\\n }\\n\\n function encodeNativeDropOption(uint128 _amount, bytes32 _receiver) internal pure returns (bytes memory) {\\n return abi.encodePacked(_amount, _receiver);\\n }\\n\\n function encodeLzComposeOption(uint16 _index, uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_index, _gas) : abi.encodePacked(_index, _gas, _value);\\n }\\n}\\n\",\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { Packet } from \\\"../../interfaces/ISendLib.sol\\\";\\nimport { AddressCast } from \\\"../../libs/AddressCast.sol\\\";\\n\\nlibrary PacketV1Codec {\\n using AddressCast for address;\\n using AddressCast for bytes32;\\n\\n uint8 internal constant PACKET_VERSION = 1;\\n\\n // header (version + nonce + path)\\n // version\\n uint256 private constant PACKET_VERSION_OFFSET = 0;\\n // nonce\\n uint256 private constant NONCE_OFFSET = 1;\\n // path\\n uint256 private constant SRC_EID_OFFSET = 9;\\n uint256 private constant SENDER_OFFSET = 13;\\n uint256 private constant DST_EID_OFFSET = 45;\\n uint256 private constant RECEIVER_OFFSET = 49;\\n // payload (guid + message)\\n uint256 private constant GUID_OFFSET = 81; // keccak256(nonce + path)\\n uint256 private constant MESSAGE_OFFSET = 113;\\n\\n function encode(Packet memory _packet) internal pure returns (bytes memory encodedPacket) {\\n encodedPacket = abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver,\\n _packet.guid,\\n _packet.message\\n );\\n }\\n\\n function encodePacketHeader(Packet memory _packet) internal pure returns (bytes memory) {\\n return\\n abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver\\n );\\n }\\n\\n function encodePayload(Packet memory _packet) internal pure returns (bytes memory) {\\n return abi.encodePacked(_packet.guid, _packet.message);\\n }\\n\\n function header(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return _packet[0:GUID_OFFSET];\\n }\\n\\n function version(bytes calldata _packet) internal pure returns (uint8) {\\n return uint8(bytes1(_packet[PACKET_VERSION_OFFSET:NONCE_OFFSET]));\\n }\\n\\n function nonce(bytes calldata _packet) internal pure returns (uint64) {\\n return uint64(bytes8(_packet[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n function srcEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[SRC_EID_OFFSET:SENDER_OFFSET]));\\n }\\n\\n function sender(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[SENDER_OFFSET:DST_EID_OFFSET]);\\n }\\n\\n function senderAddressB20(bytes calldata _packet) internal pure returns (address) {\\n return sender(_packet).toAddress();\\n }\\n\\n function dstEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[DST_EID_OFFSET:RECEIVER_OFFSET]));\\n }\\n\\n function receiver(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[RECEIVER_OFFSET:GUID_OFFSET]);\\n }\\n\\n function receiverB20(bytes calldata _packet) internal pure returns (address) {\\n return receiver(_packet).toAddress();\\n }\\n\\n function guid(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[GUID_OFFSET:MESSAGE_OFFSET]);\\n }\\n\\n function message(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[MESSAGE_OFFSET:]);\\n }\\n\\n function payload(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[GUID_OFFSET:]);\\n }\\n\\n function payloadHash(bytes calldata _packet) internal pure returns (bytes32) {\\n return keccak256(payload(_packet));\\n }\\n}\\n\",\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\n/// @title ONFT Composed Message Codec\\n/// @notice Library for encoding and decoding ONFT composed messages.\\nlibrary ONFTComposeMsgCodec {\\n // Offset constants for decoding composed messages\\n uint8 private constant NONCE_OFFSET = 8;\\n uint8 private constant SRC_EID_OFFSET = 12;\\n uint8 private constant COMPOSE_FROM_OFFSET = 44;\\n\\n /// @dev Encodes a ONFT721 composed message.\\n /// @param _nonce The nonce value.\\n /// @param _srcEid The source LayerZero endpoint ID.\\n /// @param _composeMsg The composed message.\\n /// @return payload The encoded payload, including the composed message.\\n function encode(\\n uint64 _nonce,\\n uint32 _srcEid,\\n bytes memory _composeMsg // 0x[composeFrom][composeMsg]\\n ) internal pure returns (bytes memory payload) {\\n payload = abi.encodePacked(_nonce, _srcEid, _composeMsg);\\n }\\n\\n /// @dev Retrieves the nonce from the composed message.\\n /// @param _msg The message.\\n /// @return parsedNonce The nonce value.\\n function nonce(bytes calldata _msg) internal pure returns (uint64 parsedNonce) {\\n parsedNonce = uint64(bytes8(_msg[:NONCE_OFFSET]));\\n }\\n\\n /// @dev Retrieves the source LayerZero endpoint ID from the composed message.\\n /// @param _msg The message.\\n /// @return parsedSrcEid The source LayerZero endpoint ID.\\n function srcEid(bytes calldata _msg) internal pure returns (uint32 parsedSrcEid) {\\n parsedSrcEid = uint32(bytes4(_msg[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n /// @dev Retrieves the composeFrom value from the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeFrom The composeFrom value as bytes32.\\n function composeFrom(bytes calldata _msg) internal pure returns (bytes32 parsedComposeFrom) {\\n parsedComposeFrom = bytes32(_msg[SRC_EID_OFFSET:COMPOSE_FROM_OFFSET]);\\n }\\n\\n /// @dev Retrieves the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeMsg The composed message.\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\\n parsedComposeMsg = _msg[COMPOSE_FROM_OFFSET:];\\n }\\n\\n /// @dev Converts an address to bytes32.\\n /// @param _addr The address to convert.\\n /// @return bytes32Repr The bytes32 representation of the address.\\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\\n bytes32Repr = bytes32(uint256(uint160(_addr)));\\n }\\n\\n /// @dev Converts bytes32 to an address.\\n /// @param _b The bytes32 value to convert.\\n /// @return addressRepr The address representation of bytes32.\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\\n addressRepr = address(uint160(uint256(_b)));\\n }\\n}\\n\",\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { OApp, Origin } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\\\";\\nimport { IOAppMsgInspector } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\\\";\\nimport { OAppOptionsType3 } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\\\";\\n\\nimport { OAppPreCrimeSimulator } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\\\";\\n\\nimport { IONFT721, MessagingFee, MessagingReceipt, SendParam } from \\\"./interfaces/IONFT721.sol\\\";\\nimport { ONFT721MsgCodec } from \\\"./libs/ONFT721MsgCodec.sol\\\";\\nimport { ONFTComposeMsgCodec } from \\\"../libs/ONFTComposeMsgCodec.sol\\\";\\nimport { OptionsBuilder } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\\\";\\n\\nimport { SafeCast } from \\\"@openzeppelin/contracts/utils/math/SafeCast.sol\\\";\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\n/// @title ONFT721Core\\n/// @dev Abstract contract for an ONFT721 token.\\nabstract contract ONFT721Core is IONFT721, OApp, OAppPreCrimeSimulator, OAppOptionsType3 {\\n using ONFT721MsgCodec for bytes;\\n using ONFT721MsgCodec for bytes32;\\n using ONFT721MsgCodec for uint256;\\n using OptionsBuilder for bytes;\\n\\n // @notice Msg types that are used to identify the various OFT operations.\\n // @dev This can be extended in child contracts for non-default oft operations\\n // @dev These values are used in things like combineOptions() in OAppOptionsType3.sol.\\n uint16 public constant SEND = 1;\\n uint16 public constant SEND_AND_COMPOSE = 2;\\n\\n // Address of an optional contract to inspect both 'message' and 'options'\\n address public msgInspector;\\n\\n event MsgInspectorSet(address inspector);\\n\\n /// @param _lzEndpoint The address of the LayerZero endpoint.\\n /// @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n constructor(address _lzEndpoint, address _delegate) Ownable(_delegate) OApp(_lzEndpoint, _delegate) {}\\n\\n /// @notice Retrieves interfaceID and the version of the ONFT.\\n /// @return interfaceId The interface ID (0x94642228).\\n /// @return version The version.\\n /// @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\\n /// @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\\n /// @dev ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\\n function onftVersion() external pure virtual returns (bytes4 interfaceId, uint64 version) {\\n return (type(IONFT721).interfaceId, 1);\\n }\\n\\n function quoteSend(\\n SendParam calldata _sendParam,\\n bool _payInLzToken\\n ) external view virtual returns (MessagingFee memory msgFee) {\\n if (_sendParam.to == bytes32(0)) revert InvalidReceiver();\\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam);\\n return _quote(_sendParam.dstEid, message, options, _payInLzToken);\\n }\\n\\n function send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) external payable virtual returns (MessagingReceipt memory msgReceipt) {\\n if (_sendParam.to == bytes32(0)) revert InvalidReceiver();\\n _debit(msg.sender, _sendParam.tokenId, _sendParam.dstEid);\\n\\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam);\\n\\n // @dev Sends the message to the LayerZero Endpoint, returning the MessagingReceipt.\\n msgReceipt = _lzSend(_sendParam.dstEid, message, options, _fee, _refundAddress);\\n emit ONFTSent(msgReceipt.guid, _sendParam.dstEid, msg.sender, _sendParam.tokenId);\\n }\\n\\n /// @dev Internal function to build the message and options.\\n /// @param _sendParam The parameters for the send() operation.\\n /// @return message The encoded message.\\n /// @return options The encoded options.\\n function _buildMsgAndOptions(\\n SendParam calldata _sendParam\\n ) internal view virtual returns (bytes memory message, bytes memory options) {\\n bool hasCompose;\\n (message, hasCompose) = ONFT721MsgCodec.encode(_sendParam.to, _sendParam.tokenId, _sendParam.composeMsg);\\n uint16 msgType = hasCompose ? SEND_AND_COMPOSE : SEND;\\n\\n options = combineOptions(_sendParam.dstEid, msgType, _sendParam.extraOptions);\\n\\n // @dev Optionally inspect the message and options depending if the OApp owner has set a msg inspector.\\n // @dev If it fails inspection, needs to revert in the implementation. ie. does not rely on return boolean\\n if (msgInspector != address(0)) IOAppMsgInspector(msgInspector).inspect(message, options);\\n }\\n\\n /// @dev Internal function to handle the receive on the LayerZero endpoint.\\n /// @param _origin The origin information.\\n /// - srcEid: The source chain endpoint ID.\\n /// - sender: The sender address from the src chain.\\n /// - nonce: The nonce of the LayerZero message.\\n /// @param _guid The unique identifier for the received LayerZero message.\\n /// @param _message The encoded message.\\n /// @dev _executor The address of the executor.\\n /// @dev _extraData Additional data.\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address /*_executor*/, // @dev unused in the default implementation.\\n bytes calldata /*_extraData*/ // @dev unused in the default implementation.\\n ) internal virtual override {\\n address toAddress = _message.sendTo().bytes32ToAddress();\\n uint256 tokenId = _message.tokenId();\\n\\n _credit(toAddress, tokenId, _origin.srcEid);\\n\\n if (_message.isComposed()) {\\n bytes memory composeMsg = ONFTComposeMsgCodec.encode(_origin.nonce, _origin.srcEid, _message.composeMsg());\\n endpoint.sendCompose(toAddress, _guid, 0 /* the index of composed message*/, composeMsg);\\n }\\n\\n emit ONFTReceived(_guid, _origin.srcEid, toAddress, tokenId);\\n }\\n\\n /// @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\\n /// @param _origin The origin information.\\n /// - srcEid: The source chain endpoint ID.\\n /// - sender: The sender address from the src chain.\\n /// - nonce: The nonce of the LayerZero message.\\n /// @param _guid The unique identifier for the received LayerZero message.\\n /// @param _message The LayerZero message.\\n /// @param _executor The address of the off-chain executor.\\n /// @param _extraData Arbitrary data passed by the msg executor.\\n /// @dev Enables the preCrime simulator to mock sending lzReceive() messages,\\n /// routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\\n function _lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual override {\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /// @dev Check if the peer is considered 'trusted' by the OApp.\\n /// @param _eid The endpoint ID to check.\\n /// @param _peer The peer to check.\\n /// @return Whether the peer passed is considered 'trusted' by the OApp.\\n /// @dev Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual override returns (bool) {\\n return peers[_eid] == _peer;\\n }\\n\\n /// @notice Sets the message inspector address for the OFT.\\n /// @param _msgInspector The address of the message inspector.\\n /// @dev This is an optional contract that can be used to inspect both 'message' and 'options'.\\n /// @dev Set it to address(0) to disable it, or set it to a contract address to enable it.\\n function setMsgInspector(address _msgInspector) public virtual onlyOwner {\\n msgInspector = _msgInspector;\\n emit MsgInspectorSet(_msgInspector);\\n }\\n\\n function _debit(address /*_from*/, uint256 /*_tokenId*/, uint32 /*_dstEid*/) internal virtual;\\n\\n function _credit(address /*_to*/, uint256 /*_tokenId*/, uint32 /*_srcEid*/) internal virtual;\\n}\\n\",\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\\\";\\n\\n/// @dev Struct representing token parameters for the ONFT send() operation.\\nstruct SendParam {\\n uint32 dstEid; // Destination LayerZero EndpointV2 ID.\\n bytes32 to; // Recipient address.\\n uint256 tokenId;\\n bytes extraOptions; // Additional options supplied by the caller to be used in the LayerZero message.\\n bytes composeMsg; // The composed message for the send() operation.\\n bytes onftCmd; // The ONFT command to be executed, unused in default ONFT implementations.\\n}\\n\\n/// @title IONFT\\n/// @dev Interface for the ONFT721 token.\\n/// @dev Does not inherit ERC721 to accommodate usage by OFT721Adapter.\\ninterface IONFT721 {\\n // Custom error messages\\n error InvalidReceiver();\\n error OnlyNFTOwner(address caller, address owner);\\n\\n // Events\\n event ONFTSent(\\n bytes32 indexed guid, // GUID of the ONFT message.\\n uint32 dstEid, // Destination Endpoint ID.\\n address indexed fromAddress, // Address of the sender on the src chain.\\n uint256 tokenId // ONFT ID sent.\\n );\\n\\n event ONFTReceived(\\n bytes32 indexed guid, // GUID of the ONFT message.\\n uint32 srcEid, // Source Endpoint ID.\\n address indexed toAddress, // Address of the recipient on the dst chain.\\n uint256 tokenId // ONFT ID received.\\n );\\n\\n /// @notice Retrieves interfaceID and the version of the ONFT.\\n /// @return interfaceId The interface ID.\\n /// @return version The version.\\n /// @dev interfaceId: This specific interface ID is '0x94642228'.\\n /// @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\\n /// @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\\n /// ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\\n function onftVersion() external view returns (bytes4 interfaceId, uint64 version);\\n\\n /// @notice Retrieves the address of the token associated with the ONFT.\\n /// @return token The address of the ERC721 token implementation.\\n function token() external view returns (address);\\n\\n /// @notice Indicates whether the OFT contract requires approval of the 'token()' to send.\\n /// @return requiresApproval Needs approval of the underlying token implementation.\\n /// @dev Allows things like wallet implementers to determine integration requirements,\\n /// without understanding the underlying token implementation.\\n function approvalRequired() external view returns (bool);\\n\\n /// @notice Provides a quote for the send() operation.\\n /// @param _sendParam The parameters for the send() operation.\\n /// @param _payInLzToken Flag indicating whether the caller is paying in the LZ token.\\n /// @return fee The calculated LayerZero messaging fee from the send() operation.\\n /// @dev MessagingFee: LayerZero msg fee\\n /// - nativeFee: The native fee.\\n /// - lzTokenFee: The lzToken fee.\\n function quoteSend(SendParam calldata _sendParam, bool _payInLzToken) external view returns (MessagingFee memory);\\n\\n /// @notice Executes the send() operation.\\n /// @param _sendParam The parameters for the send operation.\\n /// @param _fee The fee information supplied by the caller.\\n /// - nativeFee: The native fee.\\n /// - lzTokenFee: The lzToken fee.\\n /// @param _refundAddress The address to receive any excess funds from fees etc. on the src.\\n /// @return receipt The LayerZero messaging receipt from the send() operation.\\n /// @dev MessagingReceipt: LayerZero msg receipt\\n /// - guid: The unique identifier for the sent message.\\n /// - nonce: The nonce of the sent message.\\n /// - fee: The LayerZero fee incurred for the message.\\n function send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n}\\n\",\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\n/// @title ONFT721MsgCodec\\n/// @notice Library for encoding and decoding ONFT721 LayerZero messages.\\nlibrary ONFT721MsgCodec {\\n uint8 private constant SEND_TO_OFFSET = 32;\\n uint8 private constant TOKEN_ID_OFFSET = 64;\\n\\n /// @dev Encodes an ONFT721 LayerZero message payload.\\n /// @param _sendTo The recipient address.\\n /// @param _tokenId The ID of the token to transfer.\\n /// @param _composeMsg The composed payload.\\n /// @return payload The encoded message payload.\\n /// @return hasCompose A boolean indicating whether the message payload contains a composed payload.\\n function encode(\\n bytes32 _sendTo,\\n uint256 _tokenId,\\n bytes memory _composeMsg\\n ) internal view returns (bytes memory payload, bool hasCompose) {\\n hasCompose = _composeMsg.length > 0;\\n payload = hasCompose\\n ? abi.encodePacked(_sendTo, _tokenId, addressToBytes32(msg.sender), _composeMsg)\\n : abi.encodePacked(_sendTo, _tokenId);\\n }\\n\\n /// @dev Decodes sendTo from the ONFT LayerZero message.\\n /// @param _msg The message.\\n /// @return parsedSendTo The recipient address in bytes32 format.\\n function sendTo(bytes calldata _msg) internal pure returns (bytes32 parsedSendTo) {\\n parsedSendTo = bytes32(_msg[:SEND_TO_OFFSET]);\\n }\\n\\n /// @dev Decodes tokenId from the ONFT LayerZero message.\\n /// @param _msg The message.\\n /// @return parsedTokenId The ID of the tokens to transfer.\\n function tokenId(bytes calldata _msg) internal pure returns (uint256 parsedTokenId) {\\n parsedTokenId = abi.decode(_msg[SEND_TO_OFFSET:TOKEN_ID_OFFSET], (uint256));\\n }\\n\\n /// @dev Decodes whether there is a composed payload.\\n /// @param _msg The message.\\n /// @return parsedIsComposed A boolean indicating whether the message has a composed payload.\\n function isComposed(bytes calldata _msg) internal pure returns (bool parsedIsComposed) {\\n parsedIsComposed = _msg.length > TOKEN_ID_OFFSET;\\n }\\n\\n /// @dev Decodes the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeMsg The composed message.\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\\n parsedComposeMsg = _msg[TOKEN_ID_OFFSET:];\\n }\\n\\n /// @dev Converts an address to bytes32.\\n /// @param _addr The address to convert.\\n /// @return bytes32Repr The bytes32 representation of the address.\\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\\n bytes32Repr = bytes32(uint256(uint160(_addr)));\\n }\\n\\n /// @dev Converts bytes32 to an address.\\n /// @param _b The bytes32 value to convert.\\n /// @return addressRepr The address representation of bytes32.\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\\n addressRepr = address(uint160(uint256(_b)));\\n }\\n}\\n\",\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the value of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the value of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\\n * allowance mechanism. `value` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 value) external returns (bool);\\n}\\n\",\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n * doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n * token.safeTransferFrom(msg.sender, address(this), value);\\n * ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n /**\\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n * given ``owner``'s signed approval.\\n *\\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n * ordering also apply here.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `deadline` must be a timestamp in the future.\\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n * over the EIP712-formatted function arguments.\\n * - the signature must use ``owner``'s current nonce (see {nonces}).\\n *\\n * For more information on the signature format, see the\\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n * section].\\n *\\n * CAUTION: See Security Considerations above.\\n */\\n function permit(\\n address owner,\\n address spender,\\n uint256 value,\\n uint256 deadline,\\n uint8 v,\\n bytes32 r,\\n bytes32 s\\n ) external;\\n\\n /**\\n * @dev Returns the current nonce for `owner`. This value must be\\n * included whenever a signature is generated for {permit}.\\n *\\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n * prevents a signature from being used multiple times.\\n */\\n function nonces(address owner) external view returns (uint256);\\n\\n /**\\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n */\\n // solhint-disable-next-line func-name-mixedcase\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"../IERC20.sol\\\";\\nimport {IERC20Permit} from \\\"../extensions/IERC20Permit.sol\\\";\\nimport {Address} from \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n using Address for address;\\n\\n /**\\n * @dev An operation with an ERC20 token failed.\\n */\\n error SafeERC20FailedOperation(address token);\\n\\n /**\\n * @dev Indicates a failed `decreaseAllowance` request.\\n */\\n error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\\n\\n /**\\n * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\\n }\\n\\n /**\\n * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n */\\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\\n }\\n\\n /**\\n * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n uint256 oldAllowance = token.allowance(address(this), spender);\\n forceApprove(token, spender, oldAllowance + value);\\n }\\n\\n /**\\n * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\\n * value, non-reverting calls are assumed to be successful.\\n */\\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\\n unchecked {\\n uint256 currentAllowance = token.allowance(address(this), spender);\\n if (currentAllowance < requestedDecrease) {\\n revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\\n }\\n forceApprove(token, spender, currentAllowance - requestedDecrease);\\n }\\n }\\n\\n /**\\n * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n * to be set to zero before setting it to a non-zero value, such as USDT.\\n */\\n function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\\n\\n if (!_callOptionalReturnBool(token, approvalCall)) {\\n _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\\n _callOptionalReturn(token, approvalCall);\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n */\\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n // the target address contains contract code and also asserts for success in the low-level call.\\n\\n bytes memory returndata = address(token).functionCall(data);\\n if (returndata.length != 0 && !abi.decode(returndata, (bool))) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n *\\n * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n */\\n function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n // and not revert is the subcall reverts.\\n\\n (bool success, bytes memory returndata) = address(token).call(data);\\n return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && address(token).code.length > 0;\\n }\\n}\\n\",\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev The ETH balance of the account is not enough to perform the operation.\\n */\\n error AddressInsufficientBalance(address account);\\n\\n /**\\n * @dev There's no code at `target` (it is not a contract).\\n */\\n error AddressEmptyCode(address target);\\n\\n /**\\n * @dev A call to an address target failed. The target may have reverted.\\n */\\n error FailedInnerCall();\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n if (address(this).balance < amount) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n if (!success) {\\n revert FailedInnerCall();\\n }\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason or custom error, it is bubbled\\n * up by this function (like regular Solidity function calls). However, if\\n * the call reverted with no returned reason, this function reverts with a\\n * {FailedInnerCall} error.\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n if (address(this).balance < value) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\\n * unsuccessful call.\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata\\n ) internal view returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n // only check if target is a contract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n if (returndata.length == 0 && target.code.length == 0) {\\n revert AddressEmptyCode(target);\\n }\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\\n * revert reason or with a default {FailedInnerCall} error.\\n */\\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\\n */\\n function _revert(bytes memory returndata) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert FailedInnerCall();\\n }\\n }\\n}\\n\",\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SafeCast.sol)\\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\\n * checks.\\n *\\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\\n * easily result in undesired exploitation or bugs, since developers usually\\n * assume that overflows raise errors. `SafeCast` restores this intuition by\\n * reverting the transaction when such an operation overflows.\\n *\\n * Using this library instead of the unchecked operations eliminates an entire\\n * class of bugs, so it's recommended to use it always.\\n */\\nlibrary SafeCast {\\n /**\\n * @dev Value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\\n\\n /**\\n * @dev An int value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedIntToUint(int256 value);\\n\\n /**\\n * @dev Value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\\n\\n /**\\n * @dev An uint value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedUintToInt(uint256 value);\\n\\n /**\\n * @dev Returns the downcasted uint248 from uint256, reverting on\\n * overflow (when the input is greater than largest uint248).\\n *\\n * Counterpart to Solidity's `uint248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toUint248(uint256 value) internal pure returns (uint248) {\\n if (value > type(uint248).max) {\\n revert SafeCastOverflowedUintDowncast(248, value);\\n }\\n return uint248(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint240 from uint256, reverting on\\n * overflow (when the input is greater than largest uint240).\\n *\\n * Counterpart to Solidity's `uint240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toUint240(uint256 value) internal pure returns (uint240) {\\n if (value > type(uint240).max) {\\n revert SafeCastOverflowedUintDowncast(240, value);\\n }\\n return uint240(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint232 from uint256, reverting on\\n * overflow (when the input is greater than largest uint232).\\n *\\n * Counterpart to Solidity's `uint232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toUint232(uint256 value) internal pure returns (uint232) {\\n if (value > type(uint232).max) {\\n revert SafeCastOverflowedUintDowncast(232, value);\\n }\\n return uint232(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint224 from uint256, reverting on\\n * overflow (when the input is greater than largest uint224).\\n *\\n * Counterpart to Solidity's `uint224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toUint224(uint256 value) internal pure returns (uint224) {\\n if (value > type(uint224).max) {\\n revert SafeCastOverflowedUintDowncast(224, value);\\n }\\n return uint224(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint216 from uint256, reverting on\\n * overflow (when the input is greater than largest uint216).\\n *\\n * Counterpart to Solidity's `uint216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toUint216(uint256 value) internal pure returns (uint216) {\\n if (value > type(uint216).max) {\\n revert SafeCastOverflowedUintDowncast(216, value);\\n }\\n return uint216(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint208 from uint256, reverting on\\n * overflow (when the input is greater than largest uint208).\\n *\\n * Counterpart to Solidity's `uint208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toUint208(uint256 value) internal pure returns (uint208) {\\n if (value > type(uint208).max) {\\n revert SafeCastOverflowedUintDowncast(208, value);\\n }\\n return uint208(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint200 from uint256, reverting on\\n * overflow (when the input is greater than largest uint200).\\n *\\n * Counterpart to Solidity's `uint200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toUint200(uint256 value) internal pure returns (uint200) {\\n if (value > type(uint200).max) {\\n revert SafeCastOverflowedUintDowncast(200, value);\\n }\\n return uint200(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint192 from uint256, reverting on\\n * overflow (when the input is greater than largest uint192).\\n *\\n * Counterpart to Solidity's `uint192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toUint192(uint256 value) internal pure returns (uint192) {\\n if (value > type(uint192).max) {\\n revert SafeCastOverflowedUintDowncast(192, value);\\n }\\n return uint192(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint184 from uint256, reverting on\\n * overflow (when the input is greater than largest uint184).\\n *\\n * Counterpart to Solidity's `uint184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toUint184(uint256 value) internal pure returns (uint184) {\\n if (value > type(uint184).max) {\\n revert SafeCastOverflowedUintDowncast(184, value);\\n }\\n return uint184(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint176 from uint256, reverting on\\n * overflow (when the input is greater than largest uint176).\\n *\\n * Counterpart to Solidity's `uint176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toUint176(uint256 value) internal pure returns (uint176) {\\n if (value > type(uint176).max) {\\n revert SafeCastOverflowedUintDowncast(176, value);\\n }\\n return uint176(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint168 from uint256, reverting on\\n * overflow (when the input is greater than largest uint168).\\n *\\n * Counterpart to Solidity's `uint168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toUint168(uint256 value) internal pure returns (uint168) {\\n if (value > type(uint168).max) {\\n revert SafeCastOverflowedUintDowncast(168, value);\\n }\\n return uint168(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint160 from uint256, reverting on\\n * overflow (when the input is greater than largest uint160).\\n *\\n * Counterpart to Solidity's `uint160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toUint160(uint256 value) internal pure returns (uint160) {\\n if (value > type(uint160).max) {\\n revert SafeCastOverflowedUintDowncast(160, value);\\n }\\n return uint160(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint152 from uint256, reverting on\\n * overflow (when the input is greater than largest uint152).\\n *\\n * Counterpart to Solidity's `uint152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toUint152(uint256 value) internal pure returns (uint152) {\\n if (value > type(uint152).max) {\\n revert SafeCastOverflowedUintDowncast(152, value);\\n }\\n return uint152(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint144 from uint256, reverting on\\n * overflow (when the input is greater than largest uint144).\\n *\\n * Counterpart to Solidity's `uint144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toUint144(uint256 value) internal pure returns (uint144) {\\n if (value > type(uint144).max) {\\n revert SafeCastOverflowedUintDowncast(144, value);\\n }\\n return uint144(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint136 from uint256, reverting on\\n * overflow (when the input is greater than largest uint136).\\n *\\n * Counterpart to Solidity's `uint136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toUint136(uint256 value) internal pure returns (uint136) {\\n if (value > type(uint136).max) {\\n revert SafeCastOverflowedUintDowncast(136, value);\\n }\\n return uint136(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint128 from uint256, reverting on\\n * overflow (when the input is greater than largest uint128).\\n *\\n * Counterpart to Solidity's `uint128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toUint128(uint256 value) internal pure returns (uint128) {\\n if (value > type(uint128).max) {\\n revert SafeCastOverflowedUintDowncast(128, value);\\n }\\n return uint128(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint120 from uint256, reverting on\\n * overflow (when the input is greater than largest uint120).\\n *\\n * Counterpart to Solidity's `uint120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toUint120(uint256 value) internal pure returns (uint120) {\\n if (value > type(uint120).max) {\\n revert SafeCastOverflowedUintDowncast(120, value);\\n }\\n return uint120(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint112 from uint256, reverting on\\n * overflow (when the input is greater than largest uint112).\\n *\\n * Counterpart to Solidity's `uint112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toUint112(uint256 value) internal pure returns (uint112) {\\n if (value > type(uint112).max) {\\n revert SafeCastOverflowedUintDowncast(112, value);\\n }\\n return uint112(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint104 from uint256, reverting on\\n * overflow (when the input is greater than largest uint104).\\n *\\n * Counterpart to Solidity's `uint104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toUint104(uint256 value) internal pure returns (uint104) {\\n if (value > type(uint104).max) {\\n revert SafeCastOverflowedUintDowncast(104, value);\\n }\\n return uint104(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint96 from uint256, reverting on\\n * overflow (when the input is greater than largest uint96).\\n *\\n * Counterpart to Solidity's `uint96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toUint96(uint256 value) internal pure returns (uint96) {\\n if (value > type(uint96).max) {\\n revert SafeCastOverflowedUintDowncast(96, value);\\n }\\n return uint96(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint88 from uint256, reverting on\\n * overflow (when the input is greater than largest uint88).\\n *\\n * Counterpart to Solidity's `uint88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toUint88(uint256 value) internal pure returns (uint88) {\\n if (value > type(uint88).max) {\\n revert SafeCastOverflowedUintDowncast(88, value);\\n }\\n return uint88(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint80 from uint256, reverting on\\n * overflow (when the input is greater than largest uint80).\\n *\\n * Counterpart to Solidity's `uint80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toUint80(uint256 value) internal pure returns (uint80) {\\n if (value > type(uint80).max) {\\n revert SafeCastOverflowedUintDowncast(80, value);\\n }\\n return uint80(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint72 from uint256, reverting on\\n * overflow (when the input is greater than largest uint72).\\n *\\n * Counterpart to Solidity's `uint72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toUint72(uint256 value) internal pure returns (uint72) {\\n if (value > type(uint72).max) {\\n revert SafeCastOverflowedUintDowncast(72, value);\\n }\\n return uint72(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint64 from uint256, reverting on\\n * overflow (when the input is greater than largest uint64).\\n *\\n * Counterpart to Solidity's `uint64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toUint64(uint256 value) internal pure returns (uint64) {\\n if (value > type(uint64).max) {\\n revert SafeCastOverflowedUintDowncast(64, value);\\n }\\n return uint64(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint56 from uint256, reverting on\\n * overflow (when the input is greater than largest uint56).\\n *\\n * Counterpart to Solidity's `uint56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toUint56(uint256 value) internal pure returns (uint56) {\\n if (value > type(uint56).max) {\\n revert SafeCastOverflowedUintDowncast(56, value);\\n }\\n return uint56(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint48 from uint256, reverting on\\n * overflow (when the input is greater than largest uint48).\\n *\\n * Counterpart to Solidity's `uint48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toUint48(uint256 value) internal pure returns (uint48) {\\n if (value > type(uint48).max) {\\n revert SafeCastOverflowedUintDowncast(48, value);\\n }\\n return uint48(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint40 from uint256, reverting on\\n * overflow (when the input is greater than largest uint40).\\n *\\n * Counterpart to Solidity's `uint40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toUint40(uint256 value) internal pure returns (uint40) {\\n if (value > type(uint40).max) {\\n revert SafeCastOverflowedUintDowncast(40, value);\\n }\\n return uint40(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint32 from uint256, reverting on\\n * overflow (when the input is greater than largest uint32).\\n *\\n * Counterpart to Solidity's `uint32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toUint32(uint256 value) internal pure returns (uint32) {\\n if (value > type(uint32).max) {\\n revert SafeCastOverflowedUintDowncast(32, value);\\n }\\n return uint32(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint24 from uint256, reverting on\\n * overflow (when the input is greater than largest uint24).\\n *\\n * Counterpart to Solidity's `uint24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toUint24(uint256 value) internal pure returns (uint24) {\\n if (value > type(uint24).max) {\\n revert SafeCastOverflowedUintDowncast(24, value);\\n }\\n return uint24(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint16 from uint256, reverting on\\n * overflow (when the input is greater than largest uint16).\\n *\\n * Counterpart to Solidity's `uint16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toUint16(uint256 value) internal pure returns (uint16) {\\n if (value > type(uint16).max) {\\n revert SafeCastOverflowedUintDowncast(16, value);\\n }\\n return uint16(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint8 from uint256, reverting on\\n * overflow (when the input is greater than largest uint8).\\n *\\n * Counterpart to Solidity's `uint8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toUint8(uint256 value) internal pure returns (uint8) {\\n if (value > type(uint8).max) {\\n revert SafeCastOverflowedUintDowncast(8, value);\\n }\\n return uint8(value);\\n }\\n\\n /**\\n * @dev Converts a signed int256 into an unsigned uint256.\\n *\\n * Requirements:\\n *\\n * - input must be greater than or equal to 0.\\n */\\n function toUint256(int256 value) internal pure returns (uint256) {\\n if (value < 0) {\\n revert SafeCastOverflowedIntToUint(value);\\n }\\n return uint256(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted int248 from int256, reverting on\\n * overflow (when the input is less than smallest int248 or\\n * greater than largest int248).\\n *\\n * Counterpart to Solidity's `int248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\\n downcasted = int248(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(248, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int240 from int256, reverting on\\n * overflow (when the input is less than smallest int240 or\\n * greater than largest int240).\\n *\\n * Counterpart to Solidity's `int240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\\n downcasted = int240(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(240, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int232 from int256, reverting on\\n * overflow (when the input is less than smallest int232 or\\n * greater than largest int232).\\n *\\n * Counterpart to Solidity's `int232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\\n downcasted = int232(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(232, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int224 from int256, reverting on\\n * overflow (when the input is less than smallest int224 or\\n * greater than largest int224).\\n *\\n * Counterpart to Solidity's `int224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\\n downcasted = int224(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(224, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int216 from int256, reverting on\\n * overflow (when the input is less than smallest int216 or\\n * greater than largest int216).\\n *\\n * Counterpart to Solidity's `int216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\\n downcasted = int216(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(216, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int208 from int256, reverting on\\n * overflow (when the input is less than smallest int208 or\\n * greater than largest int208).\\n *\\n * Counterpart to Solidity's `int208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\\n downcasted = int208(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(208, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int200 from int256, reverting on\\n * overflow (when the input is less than smallest int200 or\\n * greater than largest int200).\\n *\\n * Counterpart to Solidity's `int200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\\n downcasted = int200(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(200, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int192 from int256, reverting on\\n * overflow (when the input is less than smallest int192 or\\n * greater than largest int192).\\n *\\n * Counterpart to Solidity's `int192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\\n downcasted = int192(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(192, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int184 from int256, reverting on\\n * overflow (when the input is less than smallest int184 or\\n * greater than largest int184).\\n *\\n * Counterpart to Solidity's `int184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\\n downcasted = int184(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(184, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int176 from int256, reverting on\\n * overflow (when the input is less than smallest int176 or\\n * greater than largest int176).\\n *\\n * Counterpart to Solidity's `int176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\\n downcasted = int176(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(176, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int168 from int256, reverting on\\n * overflow (when the input is less than smallest int168 or\\n * greater than largest int168).\\n *\\n * Counterpart to Solidity's `int168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\\n downcasted = int168(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(168, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int160 from int256, reverting on\\n * overflow (when the input is less than smallest int160 or\\n * greater than largest int160).\\n *\\n * Counterpart to Solidity's `int160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\\n downcasted = int160(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(160, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int152 from int256, reverting on\\n * overflow (when the input is less than smallest int152 or\\n * greater than largest int152).\\n *\\n * Counterpart to Solidity's `int152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\\n downcasted = int152(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(152, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int144 from int256, reverting on\\n * overflow (when the input is less than smallest int144 or\\n * greater than largest int144).\\n *\\n * Counterpart to Solidity's `int144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\\n downcasted = int144(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(144, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int136 from int256, reverting on\\n * overflow (when the input is less than smallest int136 or\\n * greater than largest int136).\\n *\\n * Counterpart to Solidity's `int136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\\n downcasted = int136(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(136, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int128 from int256, reverting on\\n * overflow (when the input is less than smallest int128 or\\n * greater than largest int128).\\n *\\n * Counterpart to Solidity's `int128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\\n downcasted = int128(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(128, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int120 from int256, reverting on\\n * overflow (when the input is less than smallest int120 or\\n * greater than largest int120).\\n *\\n * Counterpart to Solidity's `int120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\\n downcasted = int120(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(120, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int112 from int256, reverting on\\n * overflow (when the input is less than smallest int112 or\\n * greater than largest int112).\\n *\\n * Counterpart to Solidity's `int112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\\n downcasted = int112(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(112, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int104 from int256, reverting on\\n * overflow (when the input is less than smallest int104 or\\n * greater than largest int104).\\n *\\n * Counterpart to Solidity's `int104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\\n downcasted = int104(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(104, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int96 from int256, reverting on\\n * overflow (when the input is less than smallest int96 or\\n * greater than largest int96).\\n *\\n * Counterpart to Solidity's `int96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\\n downcasted = int96(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(96, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int88 from int256, reverting on\\n * overflow (when the input is less than smallest int88 or\\n * greater than largest int88).\\n *\\n * Counterpart to Solidity's `int88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\\n downcasted = int88(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(88, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int80 from int256, reverting on\\n * overflow (when the input is less than smallest int80 or\\n * greater than largest int80).\\n *\\n * Counterpart to Solidity's `int80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\\n downcasted = int80(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(80, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int72 from int256, reverting on\\n * overflow (when the input is less than smallest int72 or\\n * greater than largest int72).\\n *\\n * Counterpart to Solidity's `int72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\\n downcasted = int72(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(72, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int64 from int256, reverting on\\n * overflow (when the input is less than smallest int64 or\\n * greater than largest int64).\\n *\\n * Counterpart to Solidity's `int64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\\n downcasted = int64(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(64, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int56 from int256, reverting on\\n * overflow (when the input is less than smallest int56 or\\n * greater than largest int56).\\n *\\n * Counterpart to Solidity's `int56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\\n downcasted = int56(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(56, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int48 from int256, reverting on\\n * overflow (when the input is less than smallest int48 or\\n * greater than largest int48).\\n *\\n * Counterpart to Solidity's `int48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\\n downcasted = int48(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(48, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int40 from int256, reverting on\\n * overflow (when the input is less than smallest int40 or\\n * greater than largest int40).\\n *\\n * Counterpart to Solidity's `int40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\\n downcasted = int40(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(40, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int32 from int256, reverting on\\n * overflow (when the input is less than smallest int32 or\\n * greater than largest int32).\\n *\\n * Counterpart to Solidity's `int32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\\n downcasted = int32(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(32, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int24 from int256, reverting on\\n * overflow (when the input is less than smallest int24 or\\n * greater than largest int24).\\n *\\n * Counterpart to Solidity's `int24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\\n downcasted = int24(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(24, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int16 from int256, reverting on\\n * overflow (when the input is less than smallest int16 or\\n * greater than largest int16).\\n *\\n * Counterpart to Solidity's `int16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\\n downcasted = int16(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(16, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int8 from int256, reverting on\\n * overflow (when the input is less than smallest int8 or\\n * greater than largest int8).\\n *\\n * Counterpart to Solidity's `int8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\\n downcasted = int8(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(8, value);\\n }\\n }\\n\\n /**\\n * @dev Converts an unsigned uint256 into a signed int256.\\n *\\n * Requirements:\\n *\\n * - input must be less than or equal to maxInt256.\\n */\\n function toInt256(uint256 value) internal pure returns (int256) {\\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\\n if (value > uint256(type(int256).max)) {\\n revert SafeCastOverflowedUintToInt(value);\\n }\\n return int256(value);\\n }\\n}\\n\",\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\"},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equal_nonAligned(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let endMinusWord := add(_preBytes, length)\\n let mc := add(_preBytes, 0x20)\\n let cc := add(_postBytes, 0x20)\\n\\n for {\\n // the next line is the loop condition:\\n // while(uint256(mc < endWord) + cb == 2)\\n } eq(add(lt(mc, endMinusWord), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n\\n // Only if still successful\\n // For <1 word tail bytes\\n if gt(success, 0) {\\n // Get the remainder of length/32\\n // length % 32 = AND(length, 32 - 1)\\n let numTailBytes := and(length, 0x1f)\\n let mcRem := mload(mc)\\n let ccRem := mload(cc)\\n for {\\n let i := 0\\n // the next line is the loop condition:\\n // while(uint256(i < numTailBytes) + cb == 2)\\n } eq(add(lt(i, numTailBytes), cb), 2) {\\n i := add(i, 1)\\n } {\\n if iszero(eq(byte(i, mcRem), byte(i, ccRem))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4963,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol:ONFT721Core","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":539,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol:ONFT721Core","label":"peers","offset":0,"slot":"1","type":"t_mapping(t_uint32,t_bytes32)"},{"astId":1690,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol:ONFT721Core","label":"preCrime","offset":0,"slot":"2","type":"t_address"},{"astId":1155,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol:ONFT721Core","label":"enforcedOptions","offset":0,"slot":"3","type":"t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))"},{"astId":4338,"contract":"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol:ONFT721Core","label":"msgInspector","offset":0,"slot":"4","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint32,t_bytes32)":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => mapping(uint16 => bytes))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_bytes_storage)"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the OFT contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the token associated with the ONFT."}},"version":1}}},"@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol":{"IONFT721":{"abi":[{"inputs":[],"name":"InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"OnlyNFTOwner","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ONFTReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"dstEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ONFTSent","type":"event"},{"inputs":[],"name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"name":"quoteSend","outputs":[{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"_fee","type":"tuple"},{"internalType":"address","name":"_refundAddress","type":"address"}],"name":"send","outputs":[{"components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"fee","type":"tuple"}],"internalType":"struct MessagingReceipt","name":"","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Interface for the ONFT721 token.Does not inherit ERC721 to accommodate usage by OFT721Adapter.","kind":"dev","methods":{"approvalRequired()":{"details":"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"onftVersion()":{"details":"interfaceId: This specific interface ID is '0x94642228'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID.","version":"The version."}},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"_0":"fee The calculated LayerZero messaging fee from the send() operation."}},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"_0":"receipt The LayerZero messaging receipt from the send() operation."}},"token()":{"returns":{"_0":"token The address of the ERC721 token implementation."}}},"title":"IONFT","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"approvalRequired()":"9f68b964","onftVersion()":"a72f5dd8","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","token()":"fc0c546a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the ONFT721 token.Does not inherit ERC721 to accommodate usage by OFT721Adapter.\",\"kind\":\"dev\",\"methods\":{\"approvalRequired()\":{\"details\":\"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"onftVersion()\":{\"details\":\"interfaceId: This specific interface ID is '0x94642228'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID.\",\"version\":\"The version.\"}},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"_0\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"_0\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"token()\":{\"returns\":{\"_0\":\"token The address of the ERC721 token implementation.\"}}},\"title\":\"IONFT\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approvalRequired()\":{\"notice\":\"Indicates whether the OFT contract requires approval of the 'token()' to send.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the ONFT.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":\"IONFT721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"./interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCore is IOAppCore, Ownable {\\n // The LayerZero endpoint associated with the given OApp\\n ILayerZeroEndpointV2 public immutable endpoint;\\n\\n // Mapping to store peers associated with corresponding endpoints\\n mapping(uint32 eid => bytes32 peer) public peers;\\n\\n /**\\n * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n *\\n * @dev The delegate typically should be set as the owner of the contract.\\n */\\n constructor(address _endpoint, address _delegate) {\\n endpoint = ILayerZeroEndpointV2(_endpoint);\\n\\n if (_delegate == address(0)) revert InvalidDelegate();\\n endpoint.setDelegate(_delegate);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n _setPeer(_eid, _peer);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function _setPeer(uint32 _eid, bytes32 _peer) internal virtual {\\n peers[_eid] = _peer;\\n emit PeerSet(_eid, _peer);\\n }\\n\\n /**\\n * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n * ie. the peer is set to bytes32(0).\\n * @param _eid The endpoint ID.\\n * @return peer The address of the peer associated with the specified endpoint.\\n */\\n function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n bytes32 peer = peers[_eid];\\n if (peer == bytes32(0)) revert NoPeer(_eid);\\n return peer;\\n }\\n\\n /**\\n * @notice Sets the delegate address for the OApp.\\n * @param _delegate The address of the delegate to be set.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n */\\n function setDelegate(address _delegate) public onlyOwner {\\n endpoint.setDelegate(_delegate);\\n }\\n}\\n\",\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppSender\\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\\n */\\nabstract contract OAppSender is OAppCore {\\n using SafeERC20 for IERC20;\\n\\n // Custom error messages\\n error NotEnoughNative(uint256 msgValue);\\n error LzTokenUnavailable();\\n\\n // @dev The version of the OAppSender implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant SENDER_VERSION = 1;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\\n * ie. this is a SEND only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (SENDER_VERSION, 0);\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\\n * @return fee The calculated MessagingFee for the message.\\n * - nativeFee: The native fee for the message.\\n * - lzTokenFee: The LZ token fee for the message.\\n */\\n function _quote(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n bool _payInLzToken\\n ) internal view virtual returns (MessagingFee memory fee) {\\n return\\n endpoint.quote(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\\n address(this)\\n );\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _fee The calculated LayerZero fee for the message.\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\\n * @return receipt The receipt for the sent message.\\n * - guid: The unique identifier for the sent message.\\n * - nonce: The nonce of the sent message.\\n * - fee: The LayerZero fee incurred for the message.\\n */\\n function _lzSend(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n MessagingFee memory _fee,\\n address _refundAddress\\n ) internal virtual returns (MessagingReceipt memory receipt) {\\n // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\\n uint256 messageValue = _payNative(_fee.nativeFee);\\n if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\\n\\n return\\n // solhint-disable-next-line check-send-result\\n endpoint.send{ value: messageValue }(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\\n _refundAddress\\n );\\n }\\n\\n /**\\n * @dev Internal function to pay the native fee associated with the message.\\n * @param _nativeFee The native fee to be paid.\\n * @return nativeFee The amount of native currency paid.\\n *\\n * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\\n * this will need to be overridden because msg.value would contain multiple lzFees.\\n * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\\n * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\\n * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\\n */\\n function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\\n if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\\n return _nativeFee;\\n }\\n\\n /**\\n * @dev Internal function to pay the LZ token fee associated with the message.\\n * @param _lzTokenFee The LZ token fee to be paid.\\n *\\n * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\\n * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\\n */\\n function _payLzToken(uint256 _lzTokenFee) internal virtual {\\n // @dev Cannot cache the token because it is not immutable in the endpoint.\\n address lzToken = endpoint.lzToken();\\n if (lzToken == address(0)) revert LzTokenUnavailable();\\n\\n // Pay LZ token fee by sending tokens to the endpoint.\\n IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\\n }\\n}\\n\",\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n // Custom error messages\\n error OnlyPeer(uint32 eid, bytes32 sender);\\n error NoPeer(uint32 eid);\\n error InvalidEndpointCall();\\n error InvalidDelegate();\\n\\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n event PeerSet(uint32 eid, bytes32 peer);\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n */\\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n /**\\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n * @return iEndpoint The LayerZero endpoint as an interface.\\n */\\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n /**\\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n */\\n function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n /**\\n * @notice Sets the delegate address for the OApp Core.\\n * @param _delegate The address of the delegate to be set.\\n */\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\\\";\\n\\n/// @dev Struct representing token parameters for the ONFT send() operation.\\nstruct SendParam {\\n uint32 dstEid; // Destination LayerZero EndpointV2 ID.\\n bytes32 to; // Recipient address.\\n uint256 tokenId;\\n bytes extraOptions; // Additional options supplied by the caller to be used in the LayerZero message.\\n bytes composeMsg; // The composed message for the send() operation.\\n bytes onftCmd; // The ONFT command to be executed, unused in default ONFT implementations.\\n}\\n\\n/// @title IONFT\\n/// @dev Interface for the ONFT721 token.\\n/// @dev Does not inherit ERC721 to accommodate usage by OFT721Adapter.\\ninterface IONFT721 {\\n // Custom error messages\\n error InvalidReceiver();\\n error OnlyNFTOwner(address caller, address owner);\\n\\n // Events\\n event ONFTSent(\\n bytes32 indexed guid, // GUID of the ONFT message.\\n uint32 dstEid, // Destination Endpoint ID.\\n address indexed fromAddress, // Address of the sender on the src chain.\\n uint256 tokenId // ONFT ID sent.\\n );\\n\\n event ONFTReceived(\\n bytes32 indexed guid, // GUID of the ONFT message.\\n uint32 srcEid, // Source Endpoint ID.\\n address indexed toAddress, // Address of the recipient on the dst chain.\\n uint256 tokenId // ONFT ID received.\\n );\\n\\n /// @notice Retrieves interfaceID and the version of the ONFT.\\n /// @return interfaceId The interface ID.\\n /// @return version The version.\\n /// @dev interfaceId: This specific interface ID is '0x94642228'.\\n /// @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\\n /// @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\\n /// ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\\n function onftVersion() external view returns (bytes4 interfaceId, uint64 version);\\n\\n /// @notice Retrieves the address of the token associated with the ONFT.\\n /// @return token The address of the ERC721 token implementation.\\n function token() external view returns (address);\\n\\n /// @notice Indicates whether the OFT contract requires approval of the 'token()' to send.\\n /// @return requiresApproval Needs approval of the underlying token implementation.\\n /// @dev Allows things like wallet implementers to determine integration requirements,\\n /// without understanding the underlying token implementation.\\n function approvalRequired() external view returns (bool);\\n\\n /// @notice Provides a quote for the send() operation.\\n /// @param _sendParam The parameters for the send() operation.\\n /// @param _payInLzToken Flag indicating whether the caller is paying in the LZ token.\\n /// @return fee The calculated LayerZero messaging fee from the send() operation.\\n /// @dev MessagingFee: LayerZero msg fee\\n /// - nativeFee: The native fee.\\n /// - lzTokenFee: The lzToken fee.\\n function quoteSend(SendParam calldata _sendParam, bool _payInLzToken) external view returns (MessagingFee memory);\\n\\n /// @notice Executes the send() operation.\\n /// @param _sendParam The parameters for the send operation.\\n /// @param _fee The fee information supplied by the caller.\\n /// - nativeFee: The native fee.\\n /// - lzTokenFee: The lzToken fee.\\n /// @param _refundAddress The address to receive any excess funds from fees etc. on the src.\\n /// @return receipt The LayerZero messaging receipt from the send() operation.\\n /// @dev MessagingReceipt: LayerZero msg receipt\\n /// - guid: The unique identifier for the sent message.\\n /// - nonce: The nonce of the sent message.\\n /// - fee: The LayerZero fee incurred for the message.\\n function send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n}\\n\",\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the value of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the value of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\\n * allowance mechanism. `value` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 value) external returns (bool);\\n}\\n\",\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n * doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n * token.safeTransferFrom(msg.sender, address(this), value);\\n * ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n /**\\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n * given ``owner``'s signed approval.\\n *\\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n * ordering also apply here.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `deadline` must be a timestamp in the future.\\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n * over the EIP712-formatted function arguments.\\n * - the signature must use ``owner``'s current nonce (see {nonces}).\\n *\\n * For more information on the signature format, see the\\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n * section].\\n *\\n * CAUTION: See Security Considerations above.\\n */\\n function permit(\\n address owner,\\n address spender,\\n uint256 value,\\n uint256 deadline,\\n uint8 v,\\n bytes32 r,\\n bytes32 s\\n ) external;\\n\\n /**\\n * @dev Returns the current nonce for `owner`. This value must be\\n * included whenever a signature is generated for {permit}.\\n *\\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n * prevents a signature from being used multiple times.\\n */\\n function nonces(address owner) external view returns (uint256);\\n\\n /**\\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n */\\n // solhint-disable-next-line func-name-mixedcase\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"../IERC20.sol\\\";\\nimport {IERC20Permit} from \\\"../extensions/IERC20Permit.sol\\\";\\nimport {Address} from \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n using Address for address;\\n\\n /**\\n * @dev An operation with an ERC20 token failed.\\n */\\n error SafeERC20FailedOperation(address token);\\n\\n /**\\n * @dev Indicates a failed `decreaseAllowance` request.\\n */\\n error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\\n\\n /**\\n * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\\n }\\n\\n /**\\n * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n */\\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\\n }\\n\\n /**\\n * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n uint256 oldAllowance = token.allowance(address(this), spender);\\n forceApprove(token, spender, oldAllowance + value);\\n }\\n\\n /**\\n * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\\n * value, non-reverting calls are assumed to be successful.\\n */\\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\\n unchecked {\\n uint256 currentAllowance = token.allowance(address(this), spender);\\n if (currentAllowance < requestedDecrease) {\\n revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\\n }\\n forceApprove(token, spender, currentAllowance - requestedDecrease);\\n }\\n }\\n\\n /**\\n * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n * to be set to zero before setting it to a non-zero value, such as USDT.\\n */\\n function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\\n\\n if (!_callOptionalReturnBool(token, approvalCall)) {\\n _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\\n _callOptionalReturn(token, approvalCall);\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n */\\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n // the target address contains contract code and also asserts for success in the low-level call.\\n\\n bytes memory returndata = address(token).functionCall(data);\\n if (returndata.length != 0 && !abi.decode(returndata, (bool))) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n *\\n * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n */\\n function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n // and not revert is the subcall reverts.\\n\\n (bool success, bytes memory returndata) = address(token).call(data);\\n return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && address(token).code.length > 0;\\n }\\n}\\n\",\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev The ETH balance of the account is not enough to perform the operation.\\n */\\n error AddressInsufficientBalance(address account);\\n\\n /**\\n * @dev There's no code at `target` (it is not a contract).\\n */\\n error AddressEmptyCode(address target);\\n\\n /**\\n * @dev A call to an address target failed. The target may have reverted.\\n */\\n error FailedInnerCall();\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n if (address(this).balance < amount) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n if (!success) {\\n revert FailedInnerCall();\\n }\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason or custom error, it is bubbled\\n * up by this function (like regular Solidity function calls). However, if\\n * the call reverted with no returned reason, this function reverts with a\\n * {FailedInnerCall} error.\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n if (address(this).balance < value) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\\n * unsuccessful call.\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata\\n ) internal view returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n // only check if target is a contract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n if (returndata.length == 0 && target.code.length == 0) {\\n revert AddressEmptyCode(target);\\n }\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\\n * revert reason or with a default {FailedInnerCall} error.\\n */\\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\\n */\\n function _revert(bytes memory returndata) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert FailedInnerCall();\\n }\\n }\\n}\\n\",\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"approvalRequired()":{"notice":"Indicates whether the OFT contract requires approval of the 'token()' to send."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"token()":{"notice":"Retrieves the address of the token associated with the ONFT."}},"version":1}}},"@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol":{"ONFT721MsgCodec":{"abi":[],"devdoc":{"kind":"dev","methods":{},"title":"ONFT721MsgCodec","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220402464e4b555272fd3ad0e100ff428bb24814eb69eab0b50314e2960a6db586164736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BLOCKHASH 0x24 PUSH5 0xE4B555272F 0xD3 0xAD 0xE LT 0xF DELEGATECALL 0x28 0xBB 0x24 DUP2 0x4E 0xB6 SWAP15 0xAB SIGNEXTEND POP BALANCE 0x4E 0x29 PUSH1 0xA6 0xDB PC PUSH2 0x6473 PUSH16 0x6C634300081600330000000000000000 ","sourceMap":"160:2808:32:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;160:2808:32;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220402464e4b555272fd3ad0e100ff428bb24814eb69eab0b50314e2960a6db586164736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BLOCKHASH 0x24 PUSH5 0xE4B555272F 0xD3 0xAD 0xE LT 0xF DELEGATECALL 0x28 0xBB 0x24 DUP2 0x4E 0xB6 SWAP15 0xAB SIGNEXTEND POP BALANCE 0x4E 0x29 PUSH1 0xA6 0xDB PC PUSH2 0x6473 PUSH16 0x6C634300081600330000000000000000 ","sourceMap":"160:2808:32:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"addressToBytes32(address)":"infinite","bytes32ToAddress(bytes32)":"infinite","composeMsg(bytes calldata)":"infinite","encode(bytes32,uint256,bytes memory)":"infinite","isComposed(bytes calldata)":"infinite","sendTo(bytes calldata)":"infinite","tokenId(bytes calldata)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ONFT721MsgCodec\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for encoding and decoding ONFT721 LayerZero messages.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":\"ONFT721MsgCodec\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\n/// @title ONFT721MsgCodec\\n/// @notice Library for encoding and decoding ONFT721 LayerZero messages.\\nlibrary ONFT721MsgCodec {\\n uint8 private constant SEND_TO_OFFSET = 32;\\n uint8 private constant TOKEN_ID_OFFSET = 64;\\n\\n /// @dev Encodes an ONFT721 LayerZero message payload.\\n /// @param _sendTo The recipient address.\\n /// @param _tokenId The ID of the token to transfer.\\n /// @param _composeMsg The composed payload.\\n /// @return payload The encoded message payload.\\n /// @return hasCompose A boolean indicating whether the message payload contains a composed payload.\\n function encode(\\n bytes32 _sendTo,\\n uint256 _tokenId,\\n bytes memory _composeMsg\\n ) internal view returns (bytes memory payload, bool hasCompose) {\\n hasCompose = _composeMsg.length > 0;\\n payload = hasCompose\\n ? abi.encodePacked(_sendTo, _tokenId, addressToBytes32(msg.sender), _composeMsg)\\n : abi.encodePacked(_sendTo, _tokenId);\\n }\\n\\n /// @dev Decodes sendTo from the ONFT LayerZero message.\\n /// @param _msg The message.\\n /// @return parsedSendTo The recipient address in bytes32 format.\\n function sendTo(bytes calldata _msg) internal pure returns (bytes32 parsedSendTo) {\\n parsedSendTo = bytes32(_msg[:SEND_TO_OFFSET]);\\n }\\n\\n /// @dev Decodes tokenId from the ONFT LayerZero message.\\n /// @param _msg The message.\\n /// @return parsedTokenId The ID of the tokens to transfer.\\n function tokenId(bytes calldata _msg) internal pure returns (uint256 parsedTokenId) {\\n parsedTokenId = abi.decode(_msg[SEND_TO_OFFSET:TOKEN_ID_OFFSET], (uint256));\\n }\\n\\n /// @dev Decodes whether there is a composed payload.\\n /// @param _msg The message.\\n /// @return parsedIsComposed A boolean indicating whether the message has a composed payload.\\n function isComposed(bytes calldata _msg) internal pure returns (bool parsedIsComposed) {\\n parsedIsComposed = _msg.length > TOKEN_ID_OFFSET;\\n }\\n\\n /// @dev Decodes the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeMsg The composed message.\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\\n parsedComposeMsg = _msg[TOKEN_ID_OFFSET:];\\n }\\n\\n /// @dev Converts an address to bytes32.\\n /// @param _addr The address to convert.\\n /// @return bytes32Repr The bytes32 representation of the address.\\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\\n bytes32Repr = bytes32(uint256(uint160(_addr)));\\n }\\n\\n /// @dev Converts bytes32 to an address.\\n /// @param _b The bytes32 value to convert.\\n /// @return addressRepr The address representation of bytes32.\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\\n addressRepr = address(uint160(uint256(_b)));\\n }\\n}\\n\",\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"notice":"Library for encoding and decoding ONFT721 LayerZero messages.","version":1}}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","errors":{"OwnableInvalidOwner(address)":[{"details":"The owner is not a valid owner account. (eg. `address(0)`)"}],"OwnableUnauthorizedAccount(address)":[{"details":"The caller account is not authorized to perform an operation."}]},"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the address provided by the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4963,"contract":"@openzeppelin/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"IERC1155Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC1155InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC1155InvalidApprover","type":"error"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"name":"ERC1155InvalidArrayLength","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC1155InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC1155InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC1155InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC1155MissingApprovalForAll","type":"error"}],"devdoc":{"details":"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.","errors":{"ERC1155InsufficientBalance(address,uint256,uint256,uint256)":[{"details":"Indicates an error related to the current `balance` of a `sender`. Used in transfers.","params":{"balance":"Current balance for the interacting account.","needed":"Minimum amount required to perform a transfer.","sender":"Address whose tokens are being transferred.","tokenId":"Identifier number of a token."}}],"ERC1155InvalidApprover(address)":[{"details":"Indicates a failure with the `approver` of a token to be approved. Used in approvals.","params":{"approver":"Address initiating an approval operation."}}],"ERC1155InvalidArrayLength(uint256,uint256)":[{"details":"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.","params":{"idsLength":"Length of the array of token identifiers","valuesLength":"Length of the array of token amounts"}}],"ERC1155InvalidOperator(address)":[{"details":"Indicates a failure with the `operator` to be approved. Used in approvals.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner."}}],"ERC1155InvalidReceiver(address)":[{"details":"Indicates a failure with the token `receiver`. Used in transfers.","params":{"receiver":"Address to which tokens are being transferred."}}],"ERC1155InvalidSender(address)":[{"details":"Indicates a failure with the token `sender`. Used in transfers.","params":{"sender":"Address whose tokens are being transferred."}}],"ERC1155MissingApprovalForAll(address,address)":[{"details":"Indicates a failure with the `operator`’s approval. Used in transfers.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner.","owner":"Address of the current owner of a token."}}]},"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard ERC20 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\\n */\\ninterface IERC20Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC20InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC20InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC20InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC20InvalidSpender(address spender);\\n}\\n\\n/**\\n * @dev Standard ERC721 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\\n */\\ninterface IERC721Errors {\\n /**\\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\\n * Used in balance queries.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721InvalidOwner(address owner);\\n\\n /**\\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721NonexistentToken(uint256 tokenId);\\n\\n /**\\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param tokenId Identifier number of a token.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC721InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC721InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC721InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC721InvalidOperator(address operator);\\n}\\n\\n/**\\n * @dev Standard ERC1155 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\\n */\\ninterface IERC1155Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC1155InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC1155InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC1155MissingApprovalForAll(address operator, address owner);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC1155InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC1155InvalidOperator(address operator);\\n\\n /**\\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\\n * Used in batch transfers.\\n * @param idsLength Length of the array of token identifiers\\n * @param valuesLength Length of the array of token amounts\\n */\\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\\n}\\n\",\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}},"IERC20Errors":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"}],"devdoc":{"details":"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.","errors":{"ERC20InsufficientAllowance(address,uint256,uint256)":[{"details":"Indicates a failure with the `spender`’s `allowance`. Used in transfers.","params":{"allowance":"Amount of tokens a `spender` is allowed to operate with.","needed":"Minimum amount required to perform a transfer.","spender":"Address that may be allowed to operate on tokens without being their owner."}}],"ERC20InsufficientBalance(address,uint256,uint256)":[{"details":"Indicates an error related to the current `balance` of a `sender`. Used in transfers.","params":{"balance":"Current balance for the interacting account.","needed":"Minimum amount required to perform a transfer.","sender":"Address whose tokens are being transferred."}}],"ERC20InvalidApprover(address)":[{"details":"Indicates a failure with the `approver` of a token to be approved. Used in approvals.","params":{"approver":"Address initiating an approval operation."}}],"ERC20InvalidReceiver(address)":[{"details":"Indicates a failure with the token `receiver`. Used in transfers.","params":{"receiver":"Address to which tokens are being transferred."}}],"ERC20InvalidSender(address)":[{"details":"Indicates a failure with the token `sender`. Used in transfers.","params":{"sender":"Address whose tokens are being transferred."}}],"ERC20InvalidSpender(address)":[{"details":"Indicates a failure with the `spender` to be approved. Used in approvals.","params":{"spender":"Address that may be allowed to operate on tokens without being their owner."}}]},"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard ERC20 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\\n */\\ninterface IERC20Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC20InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC20InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC20InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC20InvalidSpender(address spender);\\n}\\n\\n/**\\n * @dev Standard ERC721 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\\n */\\ninterface IERC721Errors {\\n /**\\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\\n * Used in balance queries.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721InvalidOwner(address owner);\\n\\n /**\\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721NonexistentToken(uint256 tokenId);\\n\\n /**\\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param tokenId Identifier number of a token.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC721InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC721InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC721InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC721InvalidOperator(address operator);\\n}\\n\\n/**\\n * @dev Standard ERC1155 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\\n */\\ninterface IERC1155Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC1155InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC1155InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC1155MissingApprovalForAll(address operator, address owner);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC1155InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC1155InvalidOperator(address operator);\\n\\n /**\\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\\n * Used in batch transfers.\\n * @param idsLength Length of the array of token identifiers\\n * @param valuesLength Length of the array of token amounts\\n */\\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\\n}\\n\",\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}},"IERC721Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"}],"devdoc":{"details":"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.","errors":{"ERC721IncorrectOwner(address,uint256,address)":[{"details":"Indicates an error related to the ownership over a particular token. Used in transfers.","params":{"owner":"Address of the current owner of a token.","sender":"Address whose tokens are being transferred.","tokenId":"Identifier number of a token."}}],"ERC721InsufficientApproval(address,uint256)":[{"details":"Indicates a failure with the `operator`’s approval. Used in transfers.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner.","tokenId":"Identifier number of a token."}}],"ERC721InvalidApprover(address)":[{"details":"Indicates a failure with the `approver` of a token to be approved. Used in approvals.","params":{"approver":"Address initiating an approval operation."}}],"ERC721InvalidOperator(address)":[{"details":"Indicates a failure with the `operator` to be approved. Used in approvals.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner."}}],"ERC721InvalidOwner(address)":[{"details":"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.","params":{"owner":"Address of the current owner of a token."}}],"ERC721InvalidReceiver(address)":[{"details":"Indicates a failure with the token `receiver`. Used in transfers.","params":{"receiver":"Address to which tokens are being transferred."}}],"ERC721InvalidSender(address)":[{"details":"Indicates a failure with the token `sender`. Used in transfers.","params":{"sender":"Address whose tokens are being transferred."}}],"ERC721NonexistentToken(uint256)":[{"details":"Indicates a `tokenId` whose `owner` is the zero address.","params":{"tokenId":"Identifier number of a token."}}]},"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard ERC20 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\\n */\\ninterface IERC20Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC20InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC20InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC20InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC20InvalidSpender(address spender);\\n}\\n\\n/**\\n * @dev Standard ERC721 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\\n */\\ninterface IERC721Errors {\\n /**\\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\\n * Used in balance queries.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721InvalidOwner(address owner);\\n\\n /**\\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721NonexistentToken(uint256 tokenId);\\n\\n /**\\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param tokenId Identifier number of a token.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC721InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC721InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC721InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC721InvalidOperator(address operator);\\n}\\n\\n/**\\n * @dev Standard ERC1155 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\\n */\\ninterface IERC1155Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC1155InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC1155InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC1155MissingApprovalForAll(address operator, address owner);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC1155InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC1155InvalidOperator(address operator);\\n\\n /**\\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\\n * Used in batch transfers.\\n * @param idsLength Length of the array of token identifiers\\n * @param valuesLength Length of the array of token amounts\\n */\\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\\n}\\n\",\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"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":"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":[{"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":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","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":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface of the ERC20 standard as defined in the EIP.","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"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\":[{\"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\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the value of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the value of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\\n * allowance mechanism. `value` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 value) external returns (bool);\\n}\\n\",\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public { try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {} doThing(..., value); } function doThing(..., uint256 value) public { token.safeTransferFrom(msg.sender, address(this), value); ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.","kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public { try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {} doThing(..., value); } function doThing(..., uint256 value) public { token.safeTransferFrom(msg.sender, address(this), value); ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n * doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n * token.safeTransferFrom(msg.sender, address(this), value);\\n * ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n /**\\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n * given ``owner``'s signed approval.\\n *\\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n * ordering also apply here.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `deadline` must be a timestamp in the future.\\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n * over the EIP712-formatted function arguments.\\n * - the signature must use ``owner``'s current nonce (see {nonces}).\\n *\\n * For more information on the signature format, see the\\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n * section].\\n *\\n * CAUTION: See Security Considerations above.\\n */\\n function permit(\\n address owner,\\n address spender,\\n uint256 value,\\n uint256 deadline,\\n uint8 v,\\n bytes32 r,\\n bytes32 s\\n ) external;\\n\\n /**\\n * @dev Returns the current nonce for `owner`. This value must be\\n * included whenever a signature is generated for {permit}.\\n *\\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n * prevents a signature from being used multiple times.\\n */\\n function nonces(address owner) external view returns (uint256);\\n\\n /**\\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n */\\n // solhint-disable-next-line func-name-mixedcase\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"name":"SafeERC20FailedDecreaseAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"}],"devdoc":{"details":"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.","errors":{"SafeERC20FailedDecreaseAllowance(address,uint256,uint256)":[{"details":"Indicates a failed `decreaseAllowance` request."}],"SafeERC20FailedOperation(address)":[{"details":"An operation with an ERC20 token failed."}]},"kind":"dev","methods":{},"title":"SafeERC20","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca33cb6246e30444f0da91b82d74bc6869ff3ba6fe725e32c02df8f3bc9e0d0f64736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA CALLER 0xCB PUSH3 0x46E304 PREVRANDAO CREATE 0xDA SWAP2 0xB8 0x2D PUSH21 0xBC6869FF3BA6FE725E32C02DF8F3BC9E0D0F64736F PUSH13 0x63430008160033000000000000 ","sourceMap":"751:5018:37:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;751:5018:37;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca33cb6246e30444f0da91b82d74bc6869ff3ba6fe725e32c02df8f3bc9e0d0f64736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA CALLER 0xCB PUSH3 0x46E304 PREVRANDAO CREATE 0xDA SWAP2 0xB8 0x2D PUSH21 0xBC6869FF3BA6FE725E32C02DF8F3BC9E0D0F64736F PUSH13 0x63430008160033000000000000 ","sourceMap":"751:5018:37:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"_callOptionalReturn(contract IERC20,bytes memory)":"infinite","_callOptionalReturnBool(contract IERC20,bytes memory)":"infinite","forceApprove(contract IERC20,address,uint256)":"infinite","safeDecreaseAllowance(contract IERC20,address,uint256)":"infinite","safeIncreaseAllowance(contract IERC20,address,uint256)":"infinite","safeTransfer(contract IERC20,address,uint256)":"infinite","safeTransferFrom(contract IERC20,address,address,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"SafeERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"errors\":{\"SafeERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the value of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the value of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\\n * allowance mechanism. `value` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 value) external returns (bool);\\n}\\n\",\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n * doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n * token.safeTransferFrom(msg.sender, address(this), value);\\n * ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n /**\\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n * given ``owner``'s signed approval.\\n *\\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n * ordering also apply here.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `deadline` must be a timestamp in the future.\\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n * over the EIP712-formatted function arguments.\\n * - the signature must use ``owner``'s current nonce (see {nonces}).\\n *\\n * For more information on the signature format, see the\\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n * section].\\n *\\n * CAUTION: See Security Considerations above.\\n */\\n function permit(\\n address owner,\\n address spender,\\n uint256 value,\\n uint256 deadline,\\n uint8 v,\\n bytes32 r,\\n bytes32 s\\n ) external;\\n\\n /**\\n * @dev Returns the current nonce for `owner`. This value must be\\n * included whenever a signature is generated for {permit}.\\n *\\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n * prevents a signature from being used multiple times.\\n */\\n function nonces(address owner) external view returns (uint256);\\n\\n /**\\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n */\\n // solhint-disable-next-line func-name-mixedcase\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"../IERC20.sol\\\";\\nimport {IERC20Permit} from \\\"../extensions/IERC20Permit.sol\\\";\\nimport {Address} from \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n using Address for address;\\n\\n /**\\n * @dev An operation with an ERC20 token failed.\\n */\\n error SafeERC20FailedOperation(address token);\\n\\n /**\\n * @dev Indicates a failed `decreaseAllowance` request.\\n */\\n error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\\n\\n /**\\n * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\\n }\\n\\n /**\\n * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n */\\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\\n }\\n\\n /**\\n * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n uint256 oldAllowance = token.allowance(address(this), spender);\\n forceApprove(token, spender, oldAllowance + value);\\n }\\n\\n /**\\n * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\\n * value, non-reverting calls are assumed to be successful.\\n */\\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\\n unchecked {\\n uint256 currentAllowance = token.allowance(address(this), spender);\\n if (currentAllowance < requestedDecrease) {\\n revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\\n }\\n forceApprove(token, spender, currentAllowance - requestedDecrease);\\n }\\n }\\n\\n /**\\n * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n * to be set to zero before setting it to a non-zero value, such as USDT.\\n */\\n function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\\n\\n if (!_callOptionalReturnBool(token, approvalCall)) {\\n _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\\n _callOptionalReturn(token, approvalCall);\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n */\\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n // the target address contains contract code and also asserts for success in the low-level call.\\n\\n bytes memory returndata = address(token).functionCall(data);\\n if (returndata.length != 0 && !abi.decode(returndata, (bool))) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n *\\n * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n */\\n function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n // and not revert is the subcall reverts.\\n\\n (bool success, bytes memory returndata) = address(token).call(data);\\n return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && address(token).code.length > 0;\\n }\\n}\\n\",\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev The ETH balance of the account is not enough to perform the operation.\\n */\\n error AddressInsufficientBalance(address account);\\n\\n /**\\n * @dev There's no code at `target` (it is not a contract).\\n */\\n error AddressEmptyCode(address target);\\n\\n /**\\n * @dev A call to an address target failed. The target may have reverted.\\n */\\n error FailedInnerCall();\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n if (address(this).balance < amount) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n if (!success) {\\n revert FailedInnerCall();\\n }\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason or custom error, it is bubbled\\n * up by this function (like regular Solidity function calls). However, if\\n * the call reverted with no returned reason, this function reverts with a\\n * {FailedInnerCall} error.\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n if (address(this).balance < value) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\\n * unsuccessful call.\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata\\n ) internal view returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n // only check if target is a contract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n if (returndata.length == 0 && target.code.length == 0) {\\n revert AddressEmptyCode(target);\\n }\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\\n * revert reason or with a default {FailedInnerCall} error.\\n */\\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\\n */\\n function _revert(bytes memory returndata) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert FailedInnerCall();\\n }\\n }\\n}\\n\",\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ERC721":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.","errors":{"ERC721IncorrectOwner(address,uint256,address)":[{"details":"Indicates an error related to the ownership over a particular token. Used in transfers.","params":{"owner":"Address of the current owner of a token.","sender":"Address whose tokens are being transferred.","tokenId":"Identifier number of a token."}}],"ERC721InsufficientApproval(address,uint256)":[{"details":"Indicates a failure with the `operator`’s approval. Used in transfers.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner.","tokenId":"Identifier number of a token."}}],"ERC721InvalidApprover(address)":[{"details":"Indicates a failure with the `approver` of a token to be approved. Used in approvals.","params":{"approver":"Address initiating an approval operation."}}],"ERC721InvalidOperator(address)":[{"details":"Indicates a failure with the `operator` to be approved. Used in approvals.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner."}}],"ERC721InvalidOwner(address)":[{"details":"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.","params":{"owner":"Address of the current owner of a token."}}],"ERC721InvalidReceiver(address)":[{"details":"Indicates a failure with the token `receiver`. Used in transfers.","params":{"receiver":"Address to which tokens are being transferred."}}],"ERC721InvalidSender(address)":[{"details":"Indicates a failure with the token `sender`. Used in transfers.","params":{"sender":"Address whose tokens are being transferred."}}],"ERC721NonexistentToken(uint256)":[{"details":"Indicates a `tokenId` whose `owner` is the zero address.","params":{"tokenId":"Identifier number of a token."}}]},"events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}},"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"constructor":{"details":"Initializes the contract by setting a `name` and a `symbol` to the token collection."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard ERC20 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\\n */\\ninterface IERC20Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC20InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC20InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC20InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC20InvalidSpender(address spender);\\n}\\n\\n/**\\n * @dev Standard ERC721 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\\n */\\ninterface IERC721Errors {\\n /**\\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\\n * Used in balance queries.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721InvalidOwner(address owner);\\n\\n /**\\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721NonexistentToken(uint256 tokenId);\\n\\n /**\\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param tokenId Identifier number of a token.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC721InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC721InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC721InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC721InvalidOperator(address operator);\\n}\\n\\n/**\\n * @dev Standard ERC1155 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\\n */\\ninterface IERC1155Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC1155InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC1155InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC1155MissingApprovalForAll(address operator, address owner);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC1155InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC1155InvalidOperator(address operator);\\n\\n /**\\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\\n * Used in batch transfers.\\n * @param idsLength Length of the array of token identifiers\\n * @param valuesLength Length of the array of token amounts\\n */\\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\\n}\\n\",\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC721} from \\\"./IERC721.sol\\\";\\nimport {IERC721Receiver} from \\\"./IERC721Receiver.sol\\\";\\nimport {IERC721Metadata} from \\\"./extensions/IERC721Metadata.sol\\\";\\nimport {Context} from \\\"../../utils/Context.sol\\\";\\nimport {Strings} from \\\"../../utils/Strings.sol\\\";\\nimport {IERC165, ERC165} from \\\"../../utils/introspection/ERC165.sol\\\";\\nimport {IERC721Errors} from \\\"../../interfaces/draft-IERC6093.sol\\\";\\n\\n/**\\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\\n * {ERC721Enumerable}.\\n */\\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\\n using Strings for uint256;\\n\\n // Token name\\n string private _name;\\n\\n // Token symbol\\n string private _symbol;\\n\\n mapping(uint256 tokenId => address) private _owners;\\n\\n mapping(address owner => uint256) private _balances;\\n\\n mapping(uint256 tokenId => address) private _tokenApprovals;\\n\\n mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\\n\\n /**\\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\n return\\n interfaceId == type(IERC721).interfaceId ||\\n interfaceId == type(IERC721Metadata).interfaceId ||\\n super.supportsInterface(interfaceId);\\n }\\n\\n /**\\n * @dev See {IERC721-balanceOf}.\\n */\\n function balanceOf(address owner) public view virtual returns (uint256) {\\n if (owner == address(0)) {\\n revert ERC721InvalidOwner(address(0));\\n }\\n return _balances[owner];\\n }\\n\\n /**\\n * @dev See {IERC721-ownerOf}.\\n */\\n function ownerOf(uint256 tokenId) public view virtual returns (address) {\\n return _requireOwned(tokenId);\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-name}.\\n */\\n function name() public view virtual returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-symbol}.\\n */\\n function symbol() public view virtual returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-tokenURI}.\\n */\\n function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\\n _requireOwned(tokenId);\\n\\n string memory baseURI = _baseURI();\\n return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \\\"\\\";\\n }\\n\\n /**\\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\\n * by default, can be overridden in child contracts.\\n */\\n function _baseURI() internal view virtual returns (string memory) {\\n return \\\"\\\";\\n }\\n\\n /**\\n * @dev See {IERC721-approve}.\\n */\\n function approve(address to, uint256 tokenId) public virtual {\\n _approve(to, tokenId, _msgSender());\\n }\\n\\n /**\\n * @dev See {IERC721-getApproved}.\\n */\\n function getApproved(uint256 tokenId) public view virtual returns (address) {\\n _requireOwned(tokenId);\\n\\n return _getApproved(tokenId);\\n }\\n\\n /**\\n * @dev See {IERC721-setApprovalForAll}.\\n */\\n function setApprovalForAll(address operator, bool approved) public virtual {\\n _setApprovalForAll(_msgSender(), operator, approved);\\n }\\n\\n /**\\n * @dev See {IERC721-isApprovedForAll}.\\n */\\n function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\\n return _operatorApprovals[owner][operator];\\n }\\n\\n /**\\n * @dev See {IERC721-transferFrom}.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) public virtual {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n // Setting an \\\"auth\\\" arguments enables the `_isAuthorized` check which verifies that the token exists\\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\\n address previousOwner = _update(to, tokenId, _msgSender());\\n if (previousOwner != from) {\\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\\n }\\n }\\n\\n /**\\n * @dev See {IERC721-safeTransferFrom}.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\\n safeTransferFrom(from, to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev See {IERC721-safeTransferFrom}.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\\n transferFrom(from, to, tokenId);\\n _checkOnERC721Received(from, to, tokenId, data);\\n }\\n\\n /**\\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\\n *\\n * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\\n * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\\n * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\\n * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\\n */\\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\\n return _owners[tokenId];\\n }\\n\\n /**\\n * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\\n */\\n function _getApproved(uint256 tokenId) internal view virtual returns (address) {\\n return _tokenApprovals[tokenId];\\n }\\n\\n /**\\n * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\\n * particular (ignoring whether it is owned by `owner`).\\n *\\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\\n * assumption.\\n */\\n function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\\n return\\n spender != address(0) &&\\n (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\\n }\\n\\n /**\\n * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\\n * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\\n * the `spender` for the specific `tokenId`.\\n *\\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\\n * assumption.\\n */\\n function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\\n if (!_isAuthorized(owner, spender, tokenId)) {\\n if (owner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n } else {\\n revert ERC721InsufficientApproval(spender, tokenId);\\n }\\n }\\n }\\n\\n /**\\n * @dev Unsafe write access to the balances, used by extensions that \\\"mint\\\" tokens using an {ownerOf} override.\\n *\\n * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\\n * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\\n *\\n * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\\n * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\\n * remain consistent with one another.\\n */\\n function _increaseBalance(address account, uint128 value) internal virtual {\\n unchecked {\\n _balances[account] += value;\\n }\\n }\\n\\n /**\\n * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\\n * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\\n *\\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that\\n * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\\n *\\n * Emits a {Transfer} event.\\n *\\n * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\\n */\\n function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\\n address from = _ownerOf(tokenId);\\n\\n // Perform (optional) operator check\\n if (auth != address(0)) {\\n _checkAuthorized(from, auth, tokenId);\\n }\\n\\n // Execute the update\\n if (from != address(0)) {\\n // Clear approval. No need to re-authorize or emit the Approval event\\n _approve(address(0), tokenId, address(0), false);\\n\\n unchecked {\\n _balances[from] -= 1;\\n }\\n }\\n\\n if (to != address(0)) {\\n unchecked {\\n _balances[to] += 1;\\n }\\n }\\n\\n _owners[tokenId] = to;\\n\\n emit Transfer(from, to, tokenId);\\n\\n return from;\\n }\\n\\n /**\\n * @dev Mints `tokenId` and transfers it to `to`.\\n *\\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\\n *\\n * Requirements:\\n *\\n * - `tokenId` must not exist.\\n * - `to` cannot be the zero address.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _mint(address to, uint256 tokenId) internal {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n address previousOwner = _update(to, tokenId, address(0));\\n if (previousOwner != address(0)) {\\n revert ERC721InvalidSender(address(0));\\n }\\n }\\n\\n /**\\n * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must not exist.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _safeMint(address to, uint256 tokenId) internal {\\n _safeMint(to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\n */\\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\\n _mint(to, tokenId);\\n _checkOnERC721Received(address(0), to, tokenId, data);\\n }\\n\\n /**\\n * @dev Destroys `tokenId`.\\n * The approval is cleared when the token is burned.\\n * This is an internal function that does not check if the sender is authorized to operate on the token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _burn(uint256 tokenId) internal {\\n address previousOwner = _update(address(0), tokenId, address(0));\\n if (previousOwner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n }\\n }\\n\\n /**\\n * @dev Transfers `tokenId` from `from` to `to`.\\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _transfer(address from, address to, uint256 tokenId) internal {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n address previousOwner = _update(to, tokenId, address(0));\\n if (previousOwner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n } else if (previousOwner != from) {\\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\\n }\\n }\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\\n * are aware of the ERC721 standard to prevent tokens from being forever locked.\\n *\\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\\n *\\n * This internal function is like {safeTransferFrom} in the sense that it invokes\\n * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\\n * implement alternative mechanisms to perform token transfer, such as signature-based.\\n *\\n * Requirements:\\n *\\n * - `tokenId` token must exist and be owned by `from`.\\n * - `to` cannot be the zero address.\\n * - `from` cannot be the zero address.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _safeTransfer(address from, address to, uint256 tokenId) internal {\\n _safeTransfer(from, to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\n */\\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\\n _transfer(from, to, tokenId);\\n _checkOnERC721Received(from, to, tokenId, data);\\n }\\n\\n /**\\n * @dev Approve `to` to operate on `tokenId`\\n *\\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\\n * either the owner of the token, or approved to operate on all tokens held by this owner.\\n *\\n * Emits an {Approval} event.\\n *\\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\\n */\\n function _approve(address to, uint256 tokenId, address auth) internal {\\n _approve(to, tokenId, auth, true);\\n }\\n\\n /**\\n * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\\n * emitted in the context of transfers.\\n */\\n function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\\n // Avoid reading the owner unless necessary\\n if (emitEvent || auth != address(0)) {\\n address owner = _requireOwned(tokenId);\\n\\n // We do not use _isAuthorized because single-token approvals should not be able to call approve\\n if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\\n revert ERC721InvalidApprover(auth);\\n }\\n\\n if (emitEvent) {\\n emit Approval(owner, to, tokenId);\\n }\\n }\\n\\n _tokenApprovals[tokenId] = to;\\n }\\n\\n /**\\n * @dev Approve `operator` to operate on all of `owner` tokens\\n *\\n * Requirements:\\n * - operator can't be the address zero.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\\n if (operator == address(0)) {\\n revert ERC721InvalidOperator(operator);\\n }\\n _operatorApprovals[owner][operator] = approved;\\n emit ApprovalForAll(owner, operator, approved);\\n }\\n\\n /**\\n * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\\n * Returns the owner.\\n *\\n * Overrides to ownership logic should be done to {_ownerOf}.\\n */\\n function _requireOwned(uint256 tokenId) internal view returns (address) {\\n address owner = _ownerOf(tokenId);\\n if (owner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n }\\n return owner;\\n }\\n\\n /**\\n * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\\n * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\\n *\\n * @param from address representing the previous owner of the given token ID\\n * @param to target address that will receive the tokens\\n * @param tokenId uint256 ID of the token to be transferred\\n * @param data bytes optional data to send along with the call\\n */\\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {\\n if (to.code.length > 0) {\\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\\n if (retval != IERC721Receiver.onERC721Received.selector) {\\n revert ERC721InvalidReceiver(to);\\n }\\n } catch (bytes memory reason) {\\n if (reason.length == 0) {\\n revert ERC721InvalidReceiver(to);\\n } else {\\n /// @solidity memory-safe-assembly\\n assembly {\\n revert(add(32, reason), mload(reason))\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"../../utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Required interface of an ERC721 compliant contract.\\n */\\ninterface IERC721 is IERC165 {\\n /**\\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\\n */\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\\n */\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\n\\n /**\\n * @dev Returns the number of tokens in ``owner``'s account.\\n */\\n function balanceOf(address owner) external view returns (uint256 balance);\\n\\n /**\\n * @dev Returns the owner of the `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\\n * {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Transfers `tokenId` token from `from` to `to`.\\n *\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\\n * The approval is cleared when the token is transferred.\\n *\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\n *\\n * Requirements:\\n *\\n * - The caller must own the token or be an approved operator.\\n * - `tokenId` must exist.\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Approve or remove `operator` as an operator for the caller.\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\n *\\n * Requirements:\\n *\\n * - The `operator` cannot be the address zero.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function setApprovalForAll(address operator, bool approved) external;\\n\\n /**\\n * @dev Returns the account approved for `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function getApproved(uint256 tokenId) external view returns (address operator);\\n\\n /**\\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\\n *\\n * See {setApprovalForAll}\\n */\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @title ERC721 token receiver interface\\n * @dev Interface for any contract that wants to support safeTransfers\\n * from ERC721 asset contracts.\\n */\\ninterface IERC721Receiver {\\n /**\\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\\n * by `operator` from `from`, this function is called.\\n *\\n * It must return its Solidity selector to confirm the token transfer.\\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\\n * reverted.\\n *\\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\\n */\\n function onERC721Received(\\n address operator,\\n address from,\\n uint256 tokenId,\\n bytes calldata data\\n ) external returns (bytes4);\\n}\\n\",\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC721} from \\\"../IERC721.sol\\\";\\n\\n/**\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\n */\\ninterface IERC721Metadata is IERC721 {\\n /**\\n * @dev Returns the token collection name.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the token collection symbol.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\\n */\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Math} from \\\"./math/Math.sol\\\";\\nimport {SignedMath} from \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n bytes16 private constant HEX_DIGITS = \\\"0123456789abcdef\\\";\\n uint8 private constant ADDRESS_LENGTH = 20;\\n\\n /**\\n * @dev The `value` string doesn't fit in the specified `length`.\\n */\\n error StringsInsufficientHexLength(uint256 value, uint256 length);\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n */\\n function toString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n uint256 length = Math.log10(value) + 1;\\n string memory buffer = new string(length);\\n uint256 ptr;\\n /// @solidity memory-safe-assembly\\n assembly {\\n ptr := add(buffer, add(32, length))\\n }\\n while (true) {\\n ptr--;\\n /// @solidity memory-safe-assembly\\n assembly {\\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\\n }\\n value /= 10;\\n if (value == 0) break;\\n }\\n return buffer;\\n }\\n }\\n\\n /**\\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n */\\n function toStringSigned(int256 value) internal pure returns (string memory) {\\n return string.concat(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value)));\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n */\\n function toHexString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n return toHexString(value, Math.log256(value) + 1);\\n }\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n */\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n uint256 localValue = value;\\n bytes memory buffer = new bytes(2 * length + 2);\\n buffer[0] = \\\"0\\\";\\n buffer[1] = \\\"x\\\";\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\n buffer[i] = HEX_DIGITS[localValue & 0xf];\\n localValue >>= 4;\\n }\\n if (localValue != 0) {\\n revert StringsInsufficientHexLength(value, length);\\n }\\n return string(buffer);\\n }\\n\\n /**\\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\\n * representation.\\n */\\n function toHexString(address addr) internal pure returns (string memory) {\\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\\n }\\n\\n /**\\n * @dev Returns true if the two strings are equal.\\n */\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\\n }\\n}\\n\",\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n */\\nabstract contract ERC165 is IERC165 {\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\\n return interfaceId == type(IERC165).interfaceId;\\n }\\n}\\n\",\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n /**\\n * @dev Muldiv operation overflow.\\n */\\n error MathOverflowedMulDiv();\\n\\n enum Rounding {\\n Floor, // Toward negative infinity\\n Ceil, // Toward positive infinity\\n Trunc, // Toward zero\\n Expand // Away from zero\\n }\\n\\n /**\\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\\n */\\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n uint256 c = a + b;\\n if (c < a) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\\n */\\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b > a) return (false, 0);\\n return (true, a - b);\\n }\\n }\\n\\n /**\\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\\n */\\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\\n // benefit is lost if 'b' is also tested.\\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\\n if (a == 0) return (true, 0);\\n uint256 c = a * b;\\n if (c / a != b) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\\n */\\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a / b);\\n }\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\\n */\\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a % b);\\n }\\n }\\n\\n /**\\n * @dev Returns the largest of two numbers.\\n */\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two numbers.\\n */\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two numbers. The result is rounded towards\\n * zero.\\n */\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b) / 2 can overflow.\\n return (a & b) + (a ^ b) / 2;\\n }\\n\\n /**\\n * @dev Returns the ceiling of the division of two numbers.\\n *\\n * This differs from standard division with `/` in that it rounds towards infinity instead\\n * of rounding towards zero.\\n */\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n if (b == 0) {\\n // Guarantee the same behavior as in a regular Solidity division.\\n return a / b;\\n }\\n\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\n return a == 0 ? 0 : (a - 1) / b + 1;\\n }\\n\\n /**\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\\n * denominator == 0.\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\\n * Uniswap Labs also under MIT license.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n unchecked {\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n // variables such that product = prod1 * 2^256 + prod0.\\n uint256 prod0 = x * y; // Least significant 256 bits of the product\\n uint256 prod1; // Most significant 256 bits of the product\\n assembly {\\n let mm := mulmod(x, y, not(0))\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n }\\n\\n // Handle non-overflow cases, 256 by 256 division.\\n if (prod1 == 0) {\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n // The surrounding unchecked block does not change this fact.\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n return prod0 / denominator;\\n }\\n\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n if (denominator <= prod1) {\\n revert MathOverflowedMulDiv();\\n }\\n\\n ///////////////////////////////////////////////\\n // 512 by 256 division.\\n ///////////////////////////////////////////////\\n\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\n uint256 remainder;\\n assembly {\\n // Compute remainder using mulmod.\\n remainder := mulmod(x, y, denominator)\\n\\n // Subtract 256 bit number from 512 bit number.\\n prod1 := sub(prod1, gt(remainder, prod0))\\n prod0 := sub(prod0, remainder)\\n }\\n\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\\n\\n uint256 twos = denominator & (0 - denominator);\\n assembly {\\n // Divide denominator by twos.\\n denominator := div(denominator, twos)\\n\\n // Divide [prod1 prod0] by twos.\\n prod0 := div(prod0, twos)\\n\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n twos := add(div(sub(0, twos), twos), 1)\\n }\\n\\n // Shift in bits from prod1 into prod0.\\n prod0 |= prod1 * twos;\\n\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\n uint256 inverse = (3 * denominator) ^ 2;\\n\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\\n // works in modular arithmetic, doubling the correct bits in each step.\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n // is no longer required.\\n result = prod0 * inverse;\\n return result;\\n }\\n }\\n\\n /**\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n uint256 result = mulDiv(x, y, denominator);\\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\\n result += 1;\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\\n * towards zero.\\n *\\n * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n */\\n function sqrt(uint256 a) internal pure returns (uint256) {\\n if (a == 0) {\\n return 0;\\n }\\n\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n //\\n // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n //\\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n //\\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n uint256 result = 1 << (log2(a) >> 1);\\n\\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n // into the expected uint128 result.\\n unchecked {\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n return min(result, a / result);\\n }\\n }\\n\\n /**\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\n */\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = sqrt(a);\\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 2 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 128;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 64;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 32;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 16;\\n }\\n if (value >> 8 > 0) {\\n value >>= 8;\\n result += 8;\\n }\\n if (value >> 4 > 0) {\\n value >>= 4;\\n result += 4;\\n }\\n if (value >> 2 > 0) {\\n value >>= 2;\\n result += 2;\\n }\\n if (value >> 1 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log2(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 10 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >= 10 ** 64) {\\n value /= 10 ** 64;\\n result += 64;\\n }\\n if (value >= 10 ** 32) {\\n value /= 10 ** 32;\\n result += 32;\\n }\\n if (value >= 10 ** 16) {\\n value /= 10 ** 16;\\n result += 16;\\n }\\n if (value >= 10 ** 8) {\\n value /= 10 ** 8;\\n result += 8;\\n }\\n if (value >= 10 ** 4) {\\n value /= 10 ** 4;\\n result += 4;\\n }\\n if (value >= 10 ** 2) {\\n value /= 10 ** 2;\\n result += 2;\\n }\\n if (value >= 10 ** 1) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log10(value);\\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 256 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n *\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n */\\n function log256(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 16;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 8;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 4;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 2;\\n }\\n if (value >> 8 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log256(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\\n */\\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\\n return uint8(rounding) % 2 == 1;\\n }\\n}\\n\",\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n /**\\n * @dev Returns the largest of two signed numbers.\\n */\\n function max(int256 a, int256 b) internal pure returns (int256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two signed numbers.\\n */\\n function min(int256 a, int256 b) internal pure returns (int256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two signed numbers without overflow.\\n * The result is rounded towards zero.\\n */\\n function average(int256 a, int256 b) internal pure returns (int256) {\\n // Formula from the book \\\"Hacker's Delight\\\"\\n int256 x = (a & b) + ((a ^ b) >> 1);\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\n }\\n\\n /**\\n * @dev Returns the absolute unsigned value of a signed value.\\n */\\n function abs(int256 n) internal pure returns (uint256) {\\n unchecked {\\n // must be unchecked in order to support `n = type(int256).min`\\n return uint256(n >= 0 ? n : -n);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5676,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":5678,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":5682,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_owners","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_address)"},{"astId":5686,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_balances","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":5690,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_tokenApprovals","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_address)"},{"astId":5696,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_operatorApprovals","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Required interface of an ERC721 compliant contract.","events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}},"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"../../utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Required interface of an ERC721 compliant contract.\\n */\\ninterface IERC721 is IERC165 {\\n /**\\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\\n */\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\\n */\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\n\\n /**\\n * @dev Returns the number of tokens in ``owner``'s account.\\n */\\n function balanceOf(address owner) external view returns (uint256 balance);\\n\\n /**\\n * @dev Returns the owner of the `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\\n * {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Transfers `tokenId` token from `from` to `to`.\\n *\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\\n * The approval is cleared when the token is transferred.\\n *\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\n *\\n * Requirements:\\n *\\n * - The caller must own the token or be an approved operator.\\n * - `tokenId` must exist.\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Approve or remove `operator` as an operator for the caller.\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\n *\\n * Requirements:\\n *\\n * - The `operator` cannot be the address zero.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function setApprovalForAll(address operator, bool approved) external;\\n\\n /**\\n * @dev Returns the account approved for `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function getApproved(uint256 tokenId) external view returns (address operator);\\n\\n /**\\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\\n *\\n * See {setApprovalForAll}\\n */\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.","kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"title":"ERC721 token receiver interface","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @title ERC721 token receiver interface\\n * @dev Interface for any contract that wants to support safeTransfers\\n * from ERC721 asset contracts.\\n */\\ninterface IERC721Receiver {\\n /**\\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\\n * by `operator` from `from`, this function is called.\\n *\\n * It must return its Solidity selector to confirm the token transfer.\\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\\n * reverted.\\n *\\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\\n */\\n function onERC721Received(\\n address operator,\\n address from,\\n uint256 tokenId,\\n bytes calldata data\\n ) external returns (bytes4);\\n}\\n\",\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"IERC721Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"See https://eips.ethereum.org/EIPS/eip-721","events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}},"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"title":"ERC-721 Non-Fungible Token Standard, optional metadata extension","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"../../utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Required interface of an ERC721 compliant contract.\\n */\\ninterface IERC721 is IERC165 {\\n /**\\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\\n */\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\\n */\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\n\\n /**\\n * @dev Returns the number of tokens in ``owner``'s account.\\n */\\n function balanceOf(address owner) external view returns (uint256 balance);\\n\\n /**\\n * @dev Returns the owner of the `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\\n * {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Transfers `tokenId` token from `from` to `to`.\\n *\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\\n * The approval is cleared when the token is transferred.\\n *\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\n *\\n * Requirements:\\n *\\n * - The caller must own the token or be an approved operator.\\n * - `tokenId` must exist.\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Approve or remove `operator` as an operator for the caller.\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\n *\\n * Requirements:\\n *\\n * - The `operator` cannot be the address zero.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function setApprovalForAll(address operator, bool approved) external;\\n\\n /**\\n * @dev Returns the account approved for `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function getApproved(uint256 tokenId) external view returns (address operator);\\n\\n /**\\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\\n *\\n * See {setApprovalForAll}\\n */\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC721} from \\\"../IERC721.sol\\\";\\n\\n/**\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\n */\\ninterface IERC721Metadata is IERC721 {\\n /**\\n * @dev Returns the token collection name.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the token collection symbol.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\\n */\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"}],"devdoc":{"details":"Collection of functions related to the address type","errors":{"AddressEmptyCode(address)":[{"details":"There's no code at `target` (it is not a contract)."}],"AddressInsufficientBalance(address)":[{"details":"The ETH balance of the account is not enough to perform the operation."}],"FailedInnerCall()":[{"details":"A call to an address target failed. The target may have reverted."}]},"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220195f9d9223e29b7d07593b032d7ca4d36543ca8cc3b93039772852982b57875c64736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 NOT PUSH0 SWAP14 SWAP3 0x23 0xE2 SWAP12 PUSH30 0x7593B032D7CA4D36543CA8CC3B93039772852982B57875C64736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"195:6066:42:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;195:6066:42;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220195f9d9223e29b7d07593b032d7ca4d36543ca8cc3b93039772852982b57875c64736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 NOT PUSH0 SWAP14 SWAP3 0x23 0xE2 SWAP12 PUSH30 0x7593B032D7CA4D36543CA8CC3B93039772852982B57875C64736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"195:6066:42:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"_revert(bytes memory)":"infinite","functionCall(address,bytes memory)":"infinite","functionCallWithValue(address,bytes memory,uint256)":"infinite","functionDelegateCall(address,bytes memory)":"infinite","functionStaticCall(address,bytes memory)":"infinite","sendValue(address payable,uint256)":"infinite","verifyCallResult(bool,bytes memory)":"infinite","verifyCallResultFromTarget(address,bool,bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev The ETH balance of the account is not enough to perform the operation.\\n */\\n error AddressInsufficientBalance(address account);\\n\\n /**\\n * @dev There's no code at `target` (it is not a contract).\\n */\\n error AddressEmptyCode(address target);\\n\\n /**\\n * @dev A call to an address target failed. The target may have reverted.\\n */\\n error FailedInnerCall();\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n if (address(this).balance < amount) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n if (!success) {\\n revert FailedInnerCall();\\n }\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason or custom error, it is bubbled\\n * up by this function (like regular Solidity function calls). However, if\\n * the call reverted with no returned reason, this function reverts with a\\n * {FailedInnerCall} error.\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n if (address(this).balance < value) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\\n * unsuccessful call.\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata\\n ) internal view returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n // only check if target is a contract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n if (returndata.length == 0 && target.code.length == 0) {\\n revert AddressEmptyCode(target);\\n }\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\\n * revert reason or with a default {FailedInnerCall} error.\\n */\\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\\n */\\n function _revert(bytes memory returndata) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert FailedInnerCall();\\n }\\n }\\n}\\n\",\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"StringsInsufficientHexLength","type":"error"}],"devdoc":{"details":"String operations.","errors":{"StringsInsufficientHexLength(uint256,uint256)":[{"details":"The `value` string doesn't fit in the specified `length`."}]},"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bb4914abe7f6eeba5e4ddbf3206858fb8294ce03aaecc1901f0a45a565423f9f64736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB 0x49 EQ 0xAB 0xE7 0xF6 0xEE 0xBA 0x5E 0x4D 0xDB RETURN KECCAK256 PUSH9 0x58FB8294CE03AAECC1 SWAP1 0x1F EXP GASLIMIT 0xA5 PUSH6 0x423F9F64736F PUSH13 0x63430008160033000000000000 ","sourceMap":"251:2847:44:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;251:2847:44;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bb4914abe7f6eeba5e4ddbf3206858fb8294ce03aaecc1901f0a45a565423f9f64736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB 0x49 EQ 0xAB 0xE7 0xF6 0xEE 0xBA 0x5E 0x4D 0xDB RETURN KECCAK256 PUSH9 0x58FB8294CE03AAECC1 SWAP1 0x1F EXP GASLIMIT 0xA5 PUSH6 0x423F9F64736F PUSH13 0x63430008160033000000000000 ","sourceMap":"251:2847:44:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"equal(string memory,string memory)":"infinite","toHexString(address)":"infinite","toHexString(uint256)":"infinite","toHexString(uint256,uint256)":"infinite","toString(uint256)":"infinite","toStringSigned(int256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Math} from \\\"./math/Math.sol\\\";\\nimport {SignedMath} from \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n bytes16 private constant HEX_DIGITS = \\\"0123456789abcdef\\\";\\n uint8 private constant ADDRESS_LENGTH = 20;\\n\\n /**\\n * @dev The `value` string doesn't fit in the specified `length`.\\n */\\n error StringsInsufficientHexLength(uint256 value, uint256 length);\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n */\\n function toString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n uint256 length = Math.log10(value) + 1;\\n string memory buffer = new string(length);\\n uint256 ptr;\\n /// @solidity memory-safe-assembly\\n assembly {\\n ptr := add(buffer, add(32, length))\\n }\\n while (true) {\\n ptr--;\\n /// @solidity memory-safe-assembly\\n assembly {\\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\\n }\\n value /= 10;\\n if (value == 0) break;\\n }\\n return buffer;\\n }\\n }\\n\\n /**\\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n */\\n function toStringSigned(int256 value) internal pure returns (string memory) {\\n return string.concat(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value)));\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n */\\n function toHexString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n return toHexString(value, Math.log256(value) + 1);\\n }\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n */\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n uint256 localValue = value;\\n bytes memory buffer = new bytes(2 * length + 2);\\n buffer[0] = \\\"0\\\";\\n buffer[1] = \\\"x\\\";\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\n buffer[i] = HEX_DIGITS[localValue & 0xf];\\n localValue >>= 4;\\n }\\n if (localValue != 0) {\\n revert StringsInsufficientHexLength(value, length);\\n }\\n return string(buffer);\\n }\\n\\n /**\\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\\n * representation.\\n */\\n function toHexString(address addr) internal pure returns (string memory) {\\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\\n }\\n\\n /**\\n * @dev Returns true if the two strings are equal.\\n */\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\\n }\\n}\\n\",\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n /**\\n * @dev Muldiv operation overflow.\\n */\\n error MathOverflowedMulDiv();\\n\\n enum Rounding {\\n Floor, // Toward negative infinity\\n Ceil, // Toward positive infinity\\n Trunc, // Toward zero\\n Expand // Away from zero\\n }\\n\\n /**\\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\\n */\\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n uint256 c = a + b;\\n if (c < a) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\\n */\\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b > a) return (false, 0);\\n return (true, a - b);\\n }\\n }\\n\\n /**\\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\\n */\\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\\n // benefit is lost if 'b' is also tested.\\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\\n if (a == 0) return (true, 0);\\n uint256 c = a * b;\\n if (c / a != b) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\\n */\\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a / b);\\n }\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\\n */\\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a % b);\\n }\\n }\\n\\n /**\\n * @dev Returns the largest of two numbers.\\n */\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two numbers.\\n */\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two numbers. The result is rounded towards\\n * zero.\\n */\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b) / 2 can overflow.\\n return (a & b) + (a ^ b) / 2;\\n }\\n\\n /**\\n * @dev Returns the ceiling of the division of two numbers.\\n *\\n * This differs from standard division with `/` in that it rounds towards infinity instead\\n * of rounding towards zero.\\n */\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n if (b == 0) {\\n // Guarantee the same behavior as in a regular Solidity division.\\n return a / b;\\n }\\n\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\n return a == 0 ? 0 : (a - 1) / b + 1;\\n }\\n\\n /**\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\\n * denominator == 0.\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\\n * Uniswap Labs also under MIT license.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n unchecked {\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n // variables such that product = prod1 * 2^256 + prod0.\\n uint256 prod0 = x * y; // Least significant 256 bits of the product\\n uint256 prod1; // Most significant 256 bits of the product\\n assembly {\\n let mm := mulmod(x, y, not(0))\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n }\\n\\n // Handle non-overflow cases, 256 by 256 division.\\n if (prod1 == 0) {\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n // The surrounding unchecked block does not change this fact.\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n return prod0 / denominator;\\n }\\n\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n if (denominator <= prod1) {\\n revert MathOverflowedMulDiv();\\n }\\n\\n ///////////////////////////////////////////////\\n // 512 by 256 division.\\n ///////////////////////////////////////////////\\n\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\n uint256 remainder;\\n assembly {\\n // Compute remainder using mulmod.\\n remainder := mulmod(x, y, denominator)\\n\\n // Subtract 256 bit number from 512 bit number.\\n prod1 := sub(prod1, gt(remainder, prod0))\\n prod0 := sub(prod0, remainder)\\n }\\n\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\\n\\n uint256 twos = denominator & (0 - denominator);\\n assembly {\\n // Divide denominator by twos.\\n denominator := div(denominator, twos)\\n\\n // Divide [prod1 prod0] by twos.\\n prod0 := div(prod0, twos)\\n\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n twos := add(div(sub(0, twos), twos), 1)\\n }\\n\\n // Shift in bits from prod1 into prod0.\\n prod0 |= prod1 * twos;\\n\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\n uint256 inverse = (3 * denominator) ^ 2;\\n\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\\n // works in modular arithmetic, doubling the correct bits in each step.\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n // is no longer required.\\n result = prod0 * inverse;\\n return result;\\n }\\n }\\n\\n /**\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n uint256 result = mulDiv(x, y, denominator);\\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\\n result += 1;\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\\n * towards zero.\\n *\\n * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n */\\n function sqrt(uint256 a) internal pure returns (uint256) {\\n if (a == 0) {\\n return 0;\\n }\\n\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n //\\n // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n //\\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n //\\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n uint256 result = 1 << (log2(a) >> 1);\\n\\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n // into the expected uint128 result.\\n unchecked {\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n return min(result, a / result);\\n }\\n }\\n\\n /**\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\n */\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = sqrt(a);\\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 2 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 128;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 64;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 32;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 16;\\n }\\n if (value >> 8 > 0) {\\n value >>= 8;\\n result += 8;\\n }\\n if (value >> 4 > 0) {\\n value >>= 4;\\n result += 4;\\n }\\n if (value >> 2 > 0) {\\n value >>= 2;\\n result += 2;\\n }\\n if (value >> 1 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log2(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 10 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >= 10 ** 64) {\\n value /= 10 ** 64;\\n result += 64;\\n }\\n if (value >= 10 ** 32) {\\n value /= 10 ** 32;\\n result += 32;\\n }\\n if (value >= 10 ** 16) {\\n value /= 10 ** 16;\\n result += 16;\\n }\\n if (value >= 10 ** 8) {\\n value /= 10 ** 8;\\n result += 8;\\n }\\n if (value >= 10 ** 4) {\\n value /= 10 ** 4;\\n result += 4;\\n }\\n if (value >= 10 ** 2) {\\n value /= 10 ** 2;\\n result += 2;\\n }\\n if (value >= 10 ** 1) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log10(value);\\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 256 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n *\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n */\\n function log256(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 16;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 8;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 4;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 2;\\n }\\n if (value >> 8 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log256(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\\n */\\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\\n return uint8(rounding) % 2 == 1;\\n }\\n}\\n\",\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n /**\\n * @dev Returns the largest of two signed numbers.\\n */\\n function max(int256 a, int256 b) internal pure returns (int256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two signed numbers.\\n */\\n function min(int256 a, int256 b) internal pure returns (int256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two signed numbers without overflow.\\n * The result is rounded towards zero.\\n */\\n function average(int256 a, int256 b) internal pure returns (int256) {\\n // Formula from the book \\\"Hacker's Delight\\\"\\n int256 x = (a & b) + ((a ^ b) >> 1);\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\n }\\n\\n /**\\n * @dev Returns the absolute unsigned value of a signed value.\\n */\\n function abs(int256 n) internal pure returns (uint256) {\\n unchecked {\\n // must be unchecked in order to support `n = type(int256).min`\\n return uint256(n >= 0 ? n : -n);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```","kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n */\\nabstract contract ERC165 is IERC165 {\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\\n return interfaceId == type(IERC165).interfaceId;\\n }\\n}\\n\",\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.","kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[{"inputs":[],"name":"MathOverflowedMulDiv","type":"error"}],"devdoc":{"details":"Standard math utilities missing in the Solidity language.","errors":{"MathOverflowedMulDiv()":[{"details":"Muldiv operation overflow."}]},"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220324fcae33b24d21ae3a3906644907ae0f151a6f85cb15a1dbcc8623d0deceb0364736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0x4F 0xCA 0xE3 EXTCODESIZE 0x24 0xD2 BYTE 0xE3 LOG3 SWAP1 PUSH7 0x44907AE0F151A6 0xF8 0x5C 0xB1 GAS SAR 0xBC 0xC8 PUSH3 0x3D0DEC 0xEB SUB PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"203:14914:47:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;203:14914:47;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220324fcae33b24d21ae3a3906644907ae0f151a6f85cb15a1dbcc8623d0deceb0364736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0x4F 0xCA 0xE3 EXTCODESIZE 0x24 0xD2 BYTE 0xE3 LOG3 SWAP1 PUSH7 0x44907AE0F151A6 0xF8 0x5C 0xB1 GAS SAR 0xBC 0xC8 PUSH3 0x3D0DEC 0xEB SUB PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"203:14914:47:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"average(uint256,uint256)":"infinite","ceilDiv(uint256,uint256)":"infinite","log10(uint256)":"infinite","log10(uint256,enum Math.Rounding)":"infinite","log2(uint256)":"infinite","log2(uint256,enum Math.Rounding)":"infinite","log256(uint256)":"infinite","log256(uint256,enum Math.Rounding)":"infinite","max(uint256,uint256)":"infinite","min(uint256,uint256)":"infinite","mulDiv(uint256,uint256,uint256)":"infinite","mulDiv(uint256,uint256,uint256,enum Math.Rounding)":"infinite","sqrt(uint256)":"infinite","sqrt(uint256,enum Math.Rounding)":"infinite","tryAdd(uint256,uint256)":"infinite","tryDiv(uint256,uint256)":"infinite","tryMod(uint256,uint256)":"infinite","tryMul(uint256,uint256)":"infinite","trySub(uint256,uint256)":"infinite","unsignedRoundsUp(enum Math.Rounding)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n /**\\n * @dev Muldiv operation overflow.\\n */\\n error MathOverflowedMulDiv();\\n\\n enum Rounding {\\n Floor, // Toward negative infinity\\n Ceil, // Toward positive infinity\\n Trunc, // Toward zero\\n Expand // Away from zero\\n }\\n\\n /**\\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\\n */\\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n uint256 c = a + b;\\n if (c < a) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\\n */\\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b > a) return (false, 0);\\n return (true, a - b);\\n }\\n }\\n\\n /**\\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\\n */\\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\\n // benefit is lost if 'b' is also tested.\\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\\n if (a == 0) return (true, 0);\\n uint256 c = a * b;\\n if (c / a != b) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\\n */\\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a / b);\\n }\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\\n */\\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a % b);\\n }\\n }\\n\\n /**\\n * @dev Returns the largest of two numbers.\\n */\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two numbers.\\n */\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two numbers. The result is rounded towards\\n * zero.\\n */\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b) / 2 can overflow.\\n return (a & b) + (a ^ b) / 2;\\n }\\n\\n /**\\n * @dev Returns the ceiling of the division of two numbers.\\n *\\n * This differs from standard division with `/` in that it rounds towards infinity instead\\n * of rounding towards zero.\\n */\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n if (b == 0) {\\n // Guarantee the same behavior as in a regular Solidity division.\\n return a / b;\\n }\\n\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\n return a == 0 ? 0 : (a - 1) / b + 1;\\n }\\n\\n /**\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\\n * denominator == 0.\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\\n * Uniswap Labs also under MIT license.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n unchecked {\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n // variables such that product = prod1 * 2^256 + prod0.\\n uint256 prod0 = x * y; // Least significant 256 bits of the product\\n uint256 prod1; // Most significant 256 bits of the product\\n assembly {\\n let mm := mulmod(x, y, not(0))\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n }\\n\\n // Handle non-overflow cases, 256 by 256 division.\\n if (prod1 == 0) {\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n // The surrounding unchecked block does not change this fact.\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n return prod0 / denominator;\\n }\\n\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n if (denominator <= prod1) {\\n revert MathOverflowedMulDiv();\\n }\\n\\n ///////////////////////////////////////////////\\n // 512 by 256 division.\\n ///////////////////////////////////////////////\\n\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\n uint256 remainder;\\n assembly {\\n // Compute remainder using mulmod.\\n remainder := mulmod(x, y, denominator)\\n\\n // Subtract 256 bit number from 512 bit number.\\n prod1 := sub(prod1, gt(remainder, prod0))\\n prod0 := sub(prod0, remainder)\\n }\\n\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\\n\\n uint256 twos = denominator & (0 - denominator);\\n assembly {\\n // Divide denominator by twos.\\n denominator := div(denominator, twos)\\n\\n // Divide [prod1 prod0] by twos.\\n prod0 := div(prod0, twos)\\n\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n twos := add(div(sub(0, twos), twos), 1)\\n }\\n\\n // Shift in bits from prod1 into prod0.\\n prod0 |= prod1 * twos;\\n\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\n uint256 inverse = (3 * denominator) ^ 2;\\n\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\\n // works in modular arithmetic, doubling the correct bits in each step.\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n // is no longer required.\\n result = prod0 * inverse;\\n return result;\\n }\\n }\\n\\n /**\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n uint256 result = mulDiv(x, y, denominator);\\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\\n result += 1;\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\\n * towards zero.\\n *\\n * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n */\\n function sqrt(uint256 a) internal pure returns (uint256) {\\n if (a == 0) {\\n return 0;\\n }\\n\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n //\\n // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n //\\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n //\\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n uint256 result = 1 << (log2(a) >> 1);\\n\\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n // into the expected uint128 result.\\n unchecked {\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n return min(result, a / result);\\n }\\n }\\n\\n /**\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\n */\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = sqrt(a);\\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 2 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 128;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 64;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 32;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 16;\\n }\\n if (value >> 8 > 0) {\\n value >>= 8;\\n result += 8;\\n }\\n if (value >> 4 > 0) {\\n value >>= 4;\\n result += 4;\\n }\\n if (value >> 2 > 0) {\\n value >>= 2;\\n result += 2;\\n }\\n if (value >> 1 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log2(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 10 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >= 10 ** 64) {\\n value /= 10 ** 64;\\n result += 64;\\n }\\n if (value >= 10 ** 32) {\\n value /= 10 ** 32;\\n result += 32;\\n }\\n if (value >= 10 ** 16) {\\n value /= 10 ** 16;\\n result += 16;\\n }\\n if (value >= 10 ** 8) {\\n value /= 10 ** 8;\\n result += 8;\\n }\\n if (value >= 10 ** 4) {\\n value /= 10 ** 4;\\n result += 4;\\n }\\n if (value >= 10 ** 2) {\\n value /= 10 ** 2;\\n result += 2;\\n }\\n if (value >= 10 ** 1) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log10(value);\\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 256 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n *\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n */\\n function log256(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 16;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 8;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 4;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 2;\\n }\\n if (value >> 8 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log256(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\\n */\\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\\n return uint8(rounding) % 2 == 1;\\n }\\n}\\n\",\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"SafeCast":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntDowncast","type":"error"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntToUint","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintToInt","type":"error"}],"devdoc":{"details":"Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.","errors":{"SafeCastOverflowedIntDowncast(uint8,int256)":[{"details":"Value doesn't fit in an int of `bits` size."}],"SafeCastOverflowedIntToUint(int256)":[{"details":"An int value doesn't fit in an uint of `bits` size."}],"SafeCastOverflowedUintDowncast(uint8,uint256)":[{"details":"Value doesn't fit in an uint of `bits` size."}],"SafeCastOverflowedUintToInt(uint256)":[{"details":"An uint value doesn't fit in an int of `bits` size."}]},"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1f054420f4fdb1e7eb18ac5f606e2317a43d66f2b1e58174a4b2f73cfcae3dc64736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL CREATE SLOAD TIMESTAMP 0xF 0x4F 0xDB 0x1E PUSH31 0xB18AC5F606E2317A43D66F2B1E58174A4B2F73CFCAE3DC64736F6C63430008 AND STOP CALLER ","sourceMap":"764:33927:48:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;764:33927:48;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1f054420f4fdb1e7eb18ac5f606e2317a43d66f2b1e58174a4b2f73cfcae3dc64736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL CREATE SLOAD TIMESTAMP 0xF 0x4F 0xDB 0x1E PUSH31 0xB18AC5F606E2317A43D66F2B1E58174A4B2F73CFCAE3DC64736F6C63430008 AND STOP CALLER ","sourceMap":"764:33927:48:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"toInt104(int256)":"infinite","toInt112(int256)":"infinite","toInt120(int256)":"infinite","toInt128(int256)":"infinite","toInt136(int256)":"infinite","toInt144(int256)":"infinite","toInt152(int256)":"infinite","toInt16(int256)":"infinite","toInt160(int256)":"infinite","toInt168(int256)":"infinite","toInt176(int256)":"infinite","toInt184(int256)":"infinite","toInt192(int256)":"infinite","toInt200(int256)":"infinite","toInt208(int256)":"infinite","toInt216(int256)":"infinite","toInt224(int256)":"infinite","toInt232(int256)":"infinite","toInt24(int256)":"infinite","toInt240(int256)":"infinite","toInt248(int256)":"infinite","toInt256(uint256)":"infinite","toInt32(int256)":"infinite","toInt40(int256)":"infinite","toInt48(int256)":"infinite","toInt56(int256)":"infinite","toInt64(int256)":"infinite","toInt72(int256)":"infinite","toInt8(int256)":"infinite","toInt80(int256)":"infinite","toInt88(int256)":"infinite","toInt96(int256)":"infinite","toUint104(uint256)":"infinite","toUint112(uint256)":"infinite","toUint120(uint256)":"infinite","toUint128(uint256)":"infinite","toUint136(uint256)":"infinite","toUint144(uint256)":"infinite","toUint152(uint256)":"infinite","toUint16(uint256)":"infinite","toUint160(uint256)":"infinite","toUint168(uint256)":"infinite","toUint176(uint256)":"infinite","toUint184(uint256)":"infinite","toUint192(uint256)":"infinite","toUint200(uint256)":"infinite","toUint208(uint256)":"infinite","toUint216(uint256)":"infinite","toUint224(uint256)":"infinite","toUint232(uint256)":"infinite","toUint24(uint256)":"infinite","toUint240(uint256)":"infinite","toUint248(uint256)":"infinite","toUint256(int256)":"infinite","toUint32(uint256)":"infinite","toUint40(uint256)":"infinite","toUint48(uint256)":"infinite","toUint56(uint256)":"infinite","toUint64(uint256)":"infinite","toUint72(uint256)":"infinite","toUint8(uint256)":"infinite","toUint80(uint256)":"infinite","toUint88(uint256)":"infinite","toUint96(uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SafeCast.sol)\\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\\n * checks.\\n *\\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\\n * easily result in undesired exploitation or bugs, since developers usually\\n * assume that overflows raise errors. `SafeCast` restores this intuition by\\n * reverting the transaction when such an operation overflows.\\n *\\n * Using this library instead of the unchecked operations eliminates an entire\\n * class of bugs, so it's recommended to use it always.\\n */\\nlibrary SafeCast {\\n /**\\n * @dev Value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\\n\\n /**\\n * @dev An int value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedIntToUint(int256 value);\\n\\n /**\\n * @dev Value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\\n\\n /**\\n * @dev An uint value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedUintToInt(uint256 value);\\n\\n /**\\n * @dev Returns the downcasted uint248 from uint256, reverting on\\n * overflow (when the input is greater than largest uint248).\\n *\\n * Counterpart to Solidity's `uint248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toUint248(uint256 value) internal pure returns (uint248) {\\n if (value > type(uint248).max) {\\n revert SafeCastOverflowedUintDowncast(248, value);\\n }\\n return uint248(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint240 from uint256, reverting on\\n * overflow (when the input is greater than largest uint240).\\n *\\n * Counterpart to Solidity's `uint240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toUint240(uint256 value) internal pure returns (uint240) {\\n if (value > type(uint240).max) {\\n revert SafeCastOverflowedUintDowncast(240, value);\\n }\\n return uint240(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint232 from uint256, reverting on\\n * overflow (when the input is greater than largest uint232).\\n *\\n * Counterpart to Solidity's `uint232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toUint232(uint256 value) internal pure returns (uint232) {\\n if (value > type(uint232).max) {\\n revert SafeCastOverflowedUintDowncast(232, value);\\n }\\n return uint232(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint224 from uint256, reverting on\\n * overflow (when the input is greater than largest uint224).\\n *\\n * Counterpart to Solidity's `uint224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toUint224(uint256 value) internal pure returns (uint224) {\\n if (value > type(uint224).max) {\\n revert SafeCastOverflowedUintDowncast(224, value);\\n }\\n return uint224(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint216 from uint256, reverting on\\n * overflow (when the input is greater than largest uint216).\\n *\\n * Counterpart to Solidity's `uint216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toUint216(uint256 value) internal pure returns (uint216) {\\n if (value > type(uint216).max) {\\n revert SafeCastOverflowedUintDowncast(216, value);\\n }\\n return uint216(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint208 from uint256, reverting on\\n * overflow (when the input is greater than largest uint208).\\n *\\n * Counterpart to Solidity's `uint208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toUint208(uint256 value) internal pure returns (uint208) {\\n if (value > type(uint208).max) {\\n revert SafeCastOverflowedUintDowncast(208, value);\\n }\\n return uint208(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint200 from uint256, reverting on\\n * overflow (when the input is greater than largest uint200).\\n *\\n * Counterpart to Solidity's `uint200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toUint200(uint256 value) internal pure returns (uint200) {\\n if (value > type(uint200).max) {\\n revert SafeCastOverflowedUintDowncast(200, value);\\n }\\n return uint200(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint192 from uint256, reverting on\\n * overflow (when the input is greater than largest uint192).\\n *\\n * Counterpart to Solidity's `uint192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toUint192(uint256 value) internal pure returns (uint192) {\\n if (value > type(uint192).max) {\\n revert SafeCastOverflowedUintDowncast(192, value);\\n }\\n return uint192(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint184 from uint256, reverting on\\n * overflow (when the input is greater than largest uint184).\\n *\\n * Counterpart to Solidity's `uint184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toUint184(uint256 value) internal pure returns (uint184) {\\n if (value > type(uint184).max) {\\n revert SafeCastOverflowedUintDowncast(184, value);\\n }\\n return uint184(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint176 from uint256, reverting on\\n * overflow (when the input is greater than largest uint176).\\n *\\n * Counterpart to Solidity's `uint176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toUint176(uint256 value) internal pure returns (uint176) {\\n if (value > type(uint176).max) {\\n revert SafeCastOverflowedUintDowncast(176, value);\\n }\\n return uint176(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint168 from uint256, reverting on\\n * overflow (when the input is greater than largest uint168).\\n *\\n * Counterpart to Solidity's `uint168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toUint168(uint256 value) internal pure returns (uint168) {\\n if (value > type(uint168).max) {\\n revert SafeCastOverflowedUintDowncast(168, value);\\n }\\n return uint168(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint160 from uint256, reverting on\\n * overflow (when the input is greater than largest uint160).\\n *\\n * Counterpart to Solidity's `uint160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toUint160(uint256 value) internal pure returns (uint160) {\\n if (value > type(uint160).max) {\\n revert SafeCastOverflowedUintDowncast(160, value);\\n }\\n return uint160(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint152 from uint256, reverting on\\n * overflow (when the input is greater than largest uint152).\\n *\\n * Counterpart to Solidity's `uint152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toUint152(uint256 value) internal pure returns (uint152) {\\n if (value > type(uint152).max) {\\n revert SafeCastOverflowedUintDowncast(152, value);\\n }\\n return uint152(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint144 from uint256, reverting on\\n * overflow (when the input is greater than largest uint144).\\n *\\n * Counterpart to Solidity's `uint144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toUint144(uint256 value) internal pure returns (uint144) {\\n if (value > type(uint144).max) {\\n revert SafeCastOverflowedUintDowncast(144, value);\\n }\\n return uint144(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint136 from uint256, reverting on\\n * overflow (when the input is greater than largest uint136).\\n *\\n * Counterpart to Solidity's `uint136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toUint136(uint256 value) internal pure returns (uint136) {\\n if (value > type(uint136).max) {\\n revert SafeCastOverflowedUintDowncast(136, value);\\n }\\n return uint136(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint128 from uint256, reverting on\\n * overflow (when the input is greater than largest uint128).\\n *\\n * Counterpart to Solidity's `uint128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toUint128(uint256 value) internal pure returns (uint128) {\\n if (value > type(uint128).max) {\\n revert SafeCastOverflowedUintDowncast(128, value);\\n }\\n return uint128(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint120 from uint256, reverting on\\n * overflow (when the input is greater than largest uint120).\\n *\\n * Counterpart to Solidity's `uint120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toUint120(uint256 value) internal pure returns (uint120) {\\n if (value > type(uint120).max) {\\n revert SafeCastOverflowedUintDowncast(120, value);\\n }\\n return uint120(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint112 from uint256, reverting on\\n * overflow (when the input is greater than largest uint112).\\n *\\n * Counterpart to Solidity's `uint112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toUint112(uint256 value) internal pure returns (uint112) {\\n if (value > type(uint112).max) {\\n revert SafeCastOverflowedUintDowncast(112, value);\\n }\\n return uint112(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint104 from uint256, reverting on\\n * overflow (when the input is greater than largest uint104).\\n *\\n * Counterpart to Solidity's `uint104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toUint104(uint256 value) internal pure returns (uint104) {\\n if (value > type(uint104).max) {\\n revert SafeCastOverflowedUintDowncast(104, value);\\n }\\n return uint104(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint96 from uint256, reverting on\\n * overflow (when the input is greater than largest uint96).\\n *\\n * Counterpart to Solidity's `uint96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toUint96(uint256 value) internal pure returns (uint96) {\\n if (value > type(uint96).max) {\\n revert SafeCastOverflowedUintDowncast(96, value);\\n }\\n return uint96(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint88 from uint256, reverting on\\n * overflow (when the input is greater than largest uint88).\\n *\\n * Counterpart to Solidity's `uint88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toUint88(uint256 value) internal pure returns (uint88) {\\n if (value > type(uint88).max) {\\n revert SafeCastOverflowedUintDowncast(88, value);\\n }\\n return uint88(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint80 from uint256, reverting on\\n * overflow (when the input is greater than largest uint80).\\n *\\n * Counterpart to Solidity's `uint80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toUint80(uint256 value) internal pure returns (uint80) {\\n if (value > type(uint80).max) {\\n revert SafeCastOverflowedUintDowncast(80, value);\\n }\\n return uint80(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint72 from uint256, reverting on\\n * overflow (when the input is greater than largest uint72).\\n *\\n * Counterpart to Solidity's `uint72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toUint72(uint256 value) internal pure returns (uint72) {\\n if (value > type(uint72).max) {\\n revert SafeCastOverflowedUintDowncast(72, value);\\n }\\n return uint72(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint64 from uint256, reverting on\\n * overflow (when the input is greater than largest uint64).\\n *\\n * Counterpart to Solidity's `uint64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toUint64(uint256 value) internal pure returns (uint64) {\\n if (value > type(uint64).max) {\\n revert SafeCastOverflowedUintDowncast(64, value);\\n }\\n return uint64(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint56 from uint256, reverting on\\n * overflow (when the input is greater than largest uint56).\\n *\\n * Counterpart to Solidity's `uint56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toUint56(uint256 value) internal pure returns (uint56) {\\n if (value > type(uint56).max) {\\n revert SafeCastOverflowedUintDowncast(56, value);\\n }\\n return uint56(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint48 from uint256, reverting on\\n * overflow (when the input is greater than largest uint48).\\n *\\n * Counterpart to Solidity's `uint48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toUint48(uint256 value) internal pure returns (uint48) {\\n if (value > type(uint48).max) {\\n revert SafeCastOverflowedUintDowncast(48, value);\\n }\\n return uint48(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint40 from uint256, reverting on\\n * overflow (when the input is greater than largest uint40).\\n *\\n * Counterpart to Solidity's `uint40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toUint40(uint256 value) internal pure returns (uint40) {\\n if (value > type(uint40).max) {\\n revert SafeCastOverflowedUintDowncast(40, value);\\n }\\n return uint40(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint32 from uint256, reverting on\\n * overflow (when the input is greater than largest uint32).\\n *\\n * Counterpart to Solidity's `uint32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toUint32(uint256 value) internal pure returns (uint32) {\\n if (value > type(uint32).max) {\\n revert SafeCastOverflowedUintDowncast(32, value);\\n }\\n return uint32(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint24 from uint256, reverting on\\n * overflow (when the input is greater than largest uint24).\\n *\\n * Counterpart to Solidity's `uint24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toUint24(uint256 value) internal pure returns (uint24) {\\n if (value > type(uint24).max) {\\n revert SafeCastOverflowedUintDowncast(24, value);\\n }\\n return uint24(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint16 from uint256, reverting on\\n * overflow (when the input is greater than largest uint16).\\n *\\n * Counterpart to Solidity's `uint16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toUint16(uint256 value) internal pure returns (uint16) {\\n if (value > type(uint16).max) {\\n revert SafeCastOverflowedUintDowncast(16, value);\\n }\\n return uint16(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint8 from uint256, reverting on\\n * overflow (when the input is greater than largest uint8).\\n *\\n * Counterpart to Solidity's `uint8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toUint8(uint256 value) internal pure returns (uint8) {\\n if (value > type(uint8).max) {\\n revert SafeCastOverflowedUintDowncast(8, value);\\n }\\n return uint8(value);\\n }\\n\\n /**\\n * @dev Converts a signed int256 into an unsigned uint256.\\n *\\n * Requirements:\\n *\\n * - input must be greater than or equal to 0.\\n */\\n function toUint256(int256 value) internal pure returns (uint256) {\\n if (value < 0) {\\n revert SafeCastOverflowedIntToUint(value);\\n }\\n return uint256(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted int248 from int256, reverting on\\n * overflow (when the input is less than smallest int248 or\\n * greater than largest int248).\\n *\\n * Counterpart to Solidity's `int248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\\n downcasted = int248(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(248, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int240 from int256, reverting on\\n * overflow (when the input is less than smallest int240 or\\n * greater than largest int240).\\n *\\n * Counterpart to Solidity's `int240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\\n downcasted = int240(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(240, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int232 from int256, reverting on\\n * overflow (when the input is less than smallest int232 or\\n * greater than largest int232).\\n *\\n * Counterpart to Solidity's `int232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\\n downcasted = int232(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(232, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int224 from int256, reverting on\\n * overflow (when the input is less than smallest int224 or\\n * greater than largest int224).\\n *\\n * Counterpart to Solidity's `int224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\\n downcasted = int224(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(224, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int216 from int256, reverting on\\n * overflow (when the input is less than smallest int216 or\\n * greater than largest int216).\\n *\\n * Counterpart to Solidity's `int216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\\n downcasted = int216(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(216, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int208 from int256, reverting on\\n * overflow (when the input is less than smallest int208 or\\n * greater than largest int208).\\n *\\n * Counterpart to Solidity's `int208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\\n downcasted = int208(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(208, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int200 from int256, reverting on\\n * overflow (when the input is less than smallest int200 or\\n * greater than largest int200).\\n *\\n * Counterpart to Solidity's `int200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\\n downcasted = int200(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(200, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int192 from int256, reverting on\\n * overflow (when the input is less than smallest int192 or\\n * greater than largest int192).\\n *\\n * Counterpart to Solidity's `int192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\\n downcasted = int192(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(192, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int184 from int256, reverting on\\n * overflow (when the input is less than smallest int184 or\\n * greater than largest int184).\\n *\\n * Counterpart to Solidity's `int184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\\n downcasted = int184(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(184, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int176 from int256, reverting on\\n * overflow (when the input is less than smallest int176 or\\n * greater than largest int176).\\n *\\n * Counterpart to Solidity's `int176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\\n downcasted = int176(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(176, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int168 from int256, reverting on\\n * overflow (when the input is less than smallest int168 or\\n * greater than largest int168).\\n *\\n * Counterpart to Solidity's `int168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\\n downcasted = int168(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(168, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int160 from int256, reverting on\\n * overflow (when the input is less than smallest int160 or\\n * greater than largest int160).\\n *\\n * Counterpart to Solidity's `int160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\\n downcasted = int160(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(160, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int152 from int256, reverting on\\n * overflow (when the input is less than smallest int152 or\\n * greater than largest int152).\\n *\\n * Counterpart to Solidity's `int152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\\n downcasted = int152(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(152, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int144 from int256, reverting on\\n * overflow (when the input is less than smallest int144 or\\n * greater than largest int144).\\n *\\n * Counterpart to Solidity's `int144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\\n downcasted = int144(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(144, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int136 from int256, reverting on\\n * overflow (when the input is less than smallest int136 or\\n * greater than largest int136).\\n *\\n * Counterpart to Solidity's `int136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\\n downcasted = int136(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(136, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int128 from int256, reverting on\\n * overflow (when the input is less than smallest int128 or\\n * greater than largest int128).\\n *\\n * Counterpart to Solidity's `int128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\\n downcasted = int128(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(128, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int120 from int256, reverting on\\n * overflow (when the input is less than smallest int120 or\\n * greater than largest int120).\\n *\\n * Counterpart to Solidity's `int120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\\n downcasted = int120(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(120, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int112 from int256, reverting on\\n * overflow (when the input is less than smallest int112 or\\n * greater than largest int112).\\n *\\n * Counterpart to Solidity's `int112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\\n downcasted = int112(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(112, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int104 from int256, reverting on\\n * overflow (when the input is less than smallest int104 or\\n * greater than largest int104).\\n *\\n * Counterpart to Solidity's `int104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\\n downcasted = int104(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(104, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int96 from int256, reverting on\\n * overflow (when the input is less than smallest int96 or\\n * greater than largest int96).\\n *\\n * Counterpart to Solidity's `int96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\\n downcasted = int96(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(96, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int88 from int256, reverting on\\n * overflow (when the input is less than smallest int88 or\\n * greater than largest int88).\\n *\\n * Counterpart to Solidity's `int88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\\n downcasted = int88(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(88, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int80 from int256, reverting on\\n * overflow (when the input is less than smallest int80 or\\n * greater than largest int80).\\n *\\n * Counterpart to Solidity's `int80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\\n downcasted = int80(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(80, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int72 from int256, reverting on\\n * overflow (when the input is less than smallest int72 or\\n * greater than largest int72).\\n *\\n * Counterpart to Solidity's `int72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\\n downcasted = int72(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(72, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int64 from int256, reverting on\\n * overflow (when the input is less than smallest int64 or\\n * greater than largest int64).\\n *\\n * Counterpart to Solidity's `int64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\\n downcasted = int64(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(64, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int56 from int256, reverting on\\n * overflow (when the input is less than smallest int56 or\\n * greater than largest int56).\\n *\\n * Counterpart to Solidity's `int56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\\n downcasted = int56(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(56, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int48 from int256, reverting on\\n * overflow (when the input is less than smallest int48 or\\n * greater than largest int48).\\n *\\n * Counterpart to Solidity's `int48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\\n downcasted = int48(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(48, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int40 from int256, reverting on\\n * overflow (when the input is less than smallest int40 or\\n * greater than largest int40).\\n *\\n * Counterpart to Solidity's `int40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\\n downcasted = int40(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(40, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int32 from int256, reverting on\\n * overflow (when the input is less than smallest int32 or\\n * greater than largest int32).\\n *\\n * Counterpart to Solidity's `int32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\\n downcasted = int32(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(32, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int24 from int256, reverting on\\n * overflow (when the input is less than smallest int24 or\\n * greater than largest int24).\\n *\\n * Counterpart to Solidity's `int24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\\n downcasted = int24(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(24, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int16 from int256, reverting on\\n * overflow (when the input is less than smallest int16 or\\n * greater than largest int16).\\n *\\n * Counterpart to Solidity's `int16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\\n downcasted = int16(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(16, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int8 from int256, reverting on\\n * overflow (when the input is less than smallest int8 or\\n * greater than largest int8).\\n *\\n * Counterpart to Solidity's `int8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\\n downcasted = int8(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(8, value);\\n }\\n }\\n\\n /**\\n * @dev Converts an unsigned uint256 into a signed int256.\\n *\\n * Requirements:\\n *\\n * - input must be less than or equal to maxInt256.\\n */\\n function toInt256(uint256 value) internal pure returns (int256) {\\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\\n if (value > uint256(type(int256).max)) {\\n revert SafeCastOverflowedUintToInt(value);\\n }\\n return int256(value);\\n }\\n}\\n\",\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"devdoc":{"details":"Standard signed math utilities missing in the Solidity language.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202910780e4ad318b06fb6b73574673c7fe5839427085b878ead8eec84c6345e0264736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 LT PUSH25 0xE4AD318B06FB6B73574673C7FE5839427085B878EAD8EEC84 0xC6 CALLVALUE 0x5E MUL PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"216:1047:49:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;216:1047:49;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202910780e4ad318b06fb6b73574673c7fe5839427085b878ead8eec84c6345e0264736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 LT PUSH25 0xE4AD318B06FB6B73574673C7FE5839427085B878EAD8EEC84 0xC6 CALLVALUE 0x5E MUL PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ","sourceMap":"216:1047:49:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"abs(int256)":"infinite","average(int256,int256)":"infinite","max(int256,int256)":"infinite","min(int256,int256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n /**\\n * @dev Returns the largest of two signed numbers.\\n */\\n function max(int256 a, int256 b) internal pure returns (int256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two signed numbers.\\n */\\n function min(int256 a, int256 b) internal pure returns (int256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two signed numbers without overflow.\\n * The result is rounded towards zero.\\n */\\n function average(int256 a, int256 b) internal pure returns (int256) {\\n // Formula from the book \\\"Hacker's Delight\\\"\\n int256 x = (a & b) + ((a ^ b) >> 1);\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\n }\\n\\n /**\\n * @dev Returns the absolute unsigned value of a signed value.\\n */\\n function abs(int256 n) internal pure returns (uint256) {\\n unchecked {\\n // must be unchecked in order to support `n = type(int256).min`\\n return uint256(n >= 0 ? n : -n);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/MyONFT721.sol":{"MyONFT721":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"name":"InvalidOptions","type":"error"},{"inputs":[],"name":"InvalidReceiver","type":"error"},{"inputs":[],"name":"LzTokenUnavailable","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"name":"NotEnoughNative","type":"error"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"OnlyEndpoint","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"OnlyNFTOwner","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"inputs":[],"name":"OnlySelf","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"name":"SimulationResult","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false,"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"EnforcedOptionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"inspector","type":"address"}],"name":"MsgInspectorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ONFTReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"dstEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ONFTSent","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":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"preCrimeAddress","type":"address"}],"name":"PreCrimeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]"}],"name":"lzReceiveAndRevert","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceiveSimulate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"name":"quoteSend","outputs":[{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"msgFee","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"_fee","type":"tuple"},{"internalType":"address","name":"_refundAddress","type":"address"}],"name":"send","outputs":[{"components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"fee","type":"tuple"}],"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"setEnforcedOptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"name":"setMsgInspector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"name":"setPreCrime","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"errors":{"AddressEmptyCode(address)":[{"details":"There's no code at `target` (it is not a contract)."}],"AddressInsufficientBalance(address)":[{"details":"The ETH balance of the account is not enough to perform the operation."}],"ERC721IncorrectOwner(address,uint256,address)":[{"details":"Indicates an error related to the ownership over a particular token. Used in transfers.","params":{"owner":"Address of the current owner of a token.","sender":"Address whose tokens are being transferred.","tokenId":"Identifier number of a token."}}],"ERC721InsufficientApproval(address,uint256)":[{"details":"Indicates a failure with the `operator`’s approval. Used in transfers.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner.","tokenId":"Identifier number of a token."}}],"ERC721InvalidApprover(address)":[{"details":"Indicates a failure with the `approver` of a token to be approved. Used in approvals.","params":{"approver":"Address initiating an approval operation."}}],"ERC721InvalidOperator(address)":[{"details":"Indicates a failure with the `operator` to be approved. Used in approvals.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner."}}],"ERC721InvalidOwner(address)":[{"details":"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.","params":{"owner":"Address of the current owner of a token."}}],"ERC721InvalidReceiver(address)":[{"details":"Indicates a failure with the token `receiver`. Used in transfers.","params":{"receiver":"Address to which tokens are being transferred."}}],"ERC721InvalidSender(address)":[{"details":"Indicates a failure with the token `sender`. Used in transfers.","params":{"sender":"Address whose tokens are being transferred."}}],"ERC721NonexistentToken(uint256)":[{"details":"Indicates a `tokenId` whose `owner` is the zero address.","params":{"tokenId":"Identifier number of a token."}}],"FailedInnerCall()":[{"details":"A call to an address target failed. The target may have reverted."}],"OwnableInvalidOwner(address)":[{"details":"The owner is not a valid owner account. (eg. `address(0)`)"}],"OwnableUnauthorizedAccount(address)":[{"details":"The caller account is not authorized to perform an operation."}],"SafeERC20FailedOperation(address)":[{"details":"An operation with an ERC20 token failed."}]},"events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"PreCrimeSet(address)":{"details":"Emitted when the preCrime contract address is set.","params":{"preCrimeAddress":"The address of the preCrime contract."}},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}},"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"In the case of ONFT where the contract IS the token, approval is NOT required.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"name()":{"details":"See {IERC721Metadata-name}."},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_10327":{"entryPoint":null,"id":10327,"parameterSlots":4,"returnSlots":0},"@_4215":{"entryPoint":null,"id":4215,"parameterSlots":4,"returnSlots":0},"@_4358":{"entryPoint":null,"id":4358,"parameterSlots":2,"returnSlots":0},"@_5005":{"entryPoint":null,"id":5005,"parameterSlots":1,"returnSlots":0},"@_503":{"entryPoint":null,"id":503,"parameterSlots":2,"returnSlots":0},"@_570":{"entryPoint":null,"id":570,"parameterSlots":2,"returnSlots":0},"@_5713":{"entryPoint":null,"id":5713,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_5101":{"entryPoint":322,"id":5101,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":602,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_fromMemory":{"entryPoint":424,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_addresst_address_fromMemory":{"entryPoint":631,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":834,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":919,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":774,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":402,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4700:53","nodeType":"YulBlock","src":"0:4700:53","statements":[{"nativeSrc":"6:3:53","nodeType":"YulBlock","src":"6:3:53","statements":[]},{"body":{"nativeSrc":"46:95:53","nodeType":"YulBlock","src":"46:95:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:53","nodeType":"YulLiteral","src":"63:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:53","nodeType":"YulLiteral","src":"70:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:53","nodeType":"YulLiteral","src":"75:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:53","nodeType":"YulIdentifier","src":"66:3:53"},"nativeSrc":"66:20:53","nodeType":"YulFunctionCall","src":"66:20:53"}],"functionName":{"name":"mstore","nativeSrc":"56:6:53","nodeType":"YulIdentifier","src":"56:6:53"},"nativeSrc":"56:31:53","nodeType":"YulFunctionCall","src":"56:31:53"},"nativeSrc":"56:31:53","nodeType":"YulExpressionStatement","src":"56:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:53","nodeType":"YulLiteral","src":"103:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:53","nodeType":"YulLiteral","src":"106:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:53","nodeType":"YulIdentifier","src":"96:6:53"},"nativeSrc":"96:15:53","nodeType":"YulFunctionCall","src":"96:15:53"},"nativeSrc":"96:15:53","nodeType":"YulExpressionStatement","src":"96:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:53","nodeType":"YulLiteral","src":"127:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:53","nodeType":"YulLiteral","src":"130:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:53","nodeType":"YulIdentifier","src":"120:6:53"},"nativeSrc":"120:15:53","nodeType":"YulFunctionCall","src":"120:15:53"},"nativeSrc":"120:15:53","nodeType":"YulExpressionStatement","src":"120:15:53"}]},"name":"panic_error_0x41","nativeSrc":"14:127:53","nodeType":"YulFunctionDefinition","src":"14:127:53"},{"body":{"nativeSrc":"210:780:53","nodeType":"YulBlock","src":"210:780:53","statements":[{"body":{"nativeSrc":"259:16:53","nodeType":"YulBlock","src":"259:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"268:1:53","nodeType":"YulLiteral","src":"268:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"271:1:53","nodeType":"YulLiteral","src":"271:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"261:6:53","nodeType":"YulIdentifier","src":"261:6:53"},"nativeSrc":"261:12:53","nodeType":"YulFunctionCall","src":"261:12:53"},"nativeSrc":"261:12:53","nodeType":"YulExpressionStatement","src":"261:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"238:6:53","nodeType":"YulIdentifier","src":"238:6:53"},{"kind":"number","nativeSrc":"246:4:53","nodeType":"YulLiteral","src":"246:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"234:3:53","nodeType":"YulIdentifier","src":"234:3:53"},"nativeSrc":"234:17:53","nodeType":"YulFunctionCall","src":"234:17:53"},{"name":"end","nativeSrc":"253:3:53","nodeType":"YulIdentifier","src":"253:3:53"}],"functionName":{"name":"slt","nativeSrc":"230:3:53","nodeType":"YulIdentifier","src":"230:3:53"},"nativeSrc":"230:27:53","nodeType":"YulFunctionCall","src":"230:27:53"}],"functionName":{"name":"iszero","nativeSrc":"223:6:53","nodeType":"YulIdentifier","src":"223:6:53"},"nativeSrc":"223:35:53","nodeType":"YulFunctionCall","src":"223:35:53"},"nativeSrc":"220:55:53","nodeType":"YulIf","src":"220:55:53"},{"nativeSrc":"284:23:53","nodeType":"YulVariableDeclaration","src":"284:23:53","value":{"arguments":[{"name":"offset","nativeSrc":"300:6:53","nodeType":"YulIdentifier","src":"300:6:53"}],"functionName":{"name":"mload","nativeSrc":"294:5:53","nodeType":"YulIdentifier","src":"294:5:53"},"nativeSrc":"294:13:53","nodeType":"YulFunctionCall","src":"294:13:53"},"variables":[{"name":"_1","nativeSrc":"288:2:53","nodeType":"YulTypedName","src":"288:2:53","type":""}]},{"nativeSrc":"316:28:53","nodeType":"YulVariableDeclaration","src":"316:28:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"334:2:53","nodeType":"YulLiteral","src":"334:2:53","type":"","value":"64"},{"kind":"number","nativeSrc":"338:1:53","nodeType":"YulLiteral","src":"338:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"330:3:53","nodeType":"YulIdentifier","src":"330:3:53"},"nativeSrc":"330:10:53","nodeType":"YulFunctionCall","src":"330:10:53"},{"kind":"number","nativeSrc":"342:1:53","nodeType":"YulLiteral","src":"342:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"326:3:53","nodeType":"YulIdentifier","src":"326:3:53"},"nativeSrc":"326:18:53","nodeType":"YulFunctionCall","src":"326:18:53"},"variables":[{"name":"_2","nativeSrc":"320:2:53","nodeType":"YulTypedName","src":"320:2:53","type":""}]},{"body":{"nativeSrc":"367:22:53","nodeType":"YulBlock","src":"367:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"369:16:53","nodeType":"YulIdentifier","src":"369:16:53"},"nativeSrc":"369:18:53","nodeType":"YulFunctionCall","src":"369:18:53"},"nativeSrc":"369:18:53","nodeType":"YulExpressionStatement","src":"369:18:53"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"359:2:53","nodeType":"YulIdentifier","src":"359:2:53"},{"name":"_2","nativeSrc":"363:2:53","nodeType":"YulIdentifier","src":"363:2:53"}],"functionName":{"name":"gt","nativeSrc":"356:2:53","nodeType":"YulIdentifier","src":"356:2:53"},"nativeSrc":"356:10:53","nodeType":"YulFunctionCall","src":"356:10:53"},"nativeSrc":"353:36:53","nodeType":"YulIf","src":"353:36:53"},{"nativeSrc":"398:17:53","nodeType":"YulVariableDeclaration","src":"398:17:53","value":{"arguments":[{"kind":"number","nativeSrc":"412:2:53","nodeType":"YulLiteral","src":"412:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"408:3:53","nodeType":"YulIdentifier","src":"408:3:53"},"nativeSrc":"408:7:53","nodeType":"YulFunctionCall","src":"408:7:53"},"variables":[{"name":"_3","nativeSrc":"402:2:53","nodeType":"YulTypedName","src":"402:2:53","type":""}]},{"nativeSrc":"424:23:53","nodeType":"YulVariableDeclaration","src":"424:23:53","value":{"arguments":[{"kind":"number","nativeSrc":"444:2:53","nodeType":"YulLiteral","src":"444:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"438:5:53","nodeType":"YulIdentifier","src":"438:5:53"},"nativeSrc":"438:9:53","nodeType":"YulFunctionCall","src":"438:9:53"},"variables":[{"name":"memPtr","nativeSrc":"428:6:53","nodeType":"YulTypedName","src":"428:6:53","type":""}]},{"nativeSrc":"456:71:53","nodeType":"YulVariableDeclaration","src":"456:71:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"478:6:53","nodeType":"YulIdentifier","src":"478:6:53"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"502:2:53","nodeType":"YulIdentifier","src":"502:2:53"},{"kind":"number","nativeSrc":"506:4:53","nodeType":"YulLiteral","src":"506:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"498:3:53","nodeType":"YulIdentifier","src":"498:3:53"},"nativeSrc":"498:13:53","nodeType":"YulFunctionCall","src":"498:13:53"},{"name":"_3","nativeSrc":"513:2:53","nodeType":"YulIdentifier","src":"513:2:53"}],"functionName":{"name":"and","nativeSrc":"494:3:53","nodeType":"YulIdentifier","src":"494:3:53"},"nativeSrc":"494:22:53","nodeType":"YulFunctionCall","src":"494:22:53"},{"kind":"number","nativeSrc":"518:2:53","nodeType":"YulLiteral","src":"518:2:53","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"490:3:53","nodeType":"YulIdentifier","src":"490:3:53"},"nativeSrc":"490:31:53","nodeType":"YulFunctionCall","src":"490:31:53"},{"name":"_3","nativeSrc":"523:2:53","nodeType":"YulIdentifier","src":"523:2:53"}],"functionName":{"name":"and","nativeSrc":"486:3:53","nodeType":"YulIdentifier","src":"486:3:53"},"nativeSrc":"486:40:53","nodeType":"YulFunctionCall","src":"486:40:53"}],"functionName":{"name":"add","nativeSrc":"474:3:53","nodeType":"YulIdentifier","src":"474:3:53"},"nativeSrc":"474:53:53","nodeType":"YulFunctionCall","src":"474:53:53"},"variables":[{"name":"newFreePtr","nativeSrc":"460:10:53","nodeType":"YulTypedName","src":"460:10:53","type":""}]},{"body":{"nativeSrc":"586:22:53","nodeType":"YulBlock","src":"586:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"588:16:53","nodeType":"YulIdentifier","src":"588:16:53"},"nativeSrc":"588:18:53","nodeType":"YulFunctionCall","src":"588:18:53"},"nativeSrc":"588:18:53","nodeType":"YulExpressionStatement","src":"588:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"545:10:53","nodeType":"YulIdentifier","src":"545:10:53"},{"name":"_2","nativeSrc":"557:2:53","nodeType":"YulIdentifier","src":"557:2:53"}],"functionName":{"name":"gt","nativeSrc":"542:2:53","nodeType":"YulIdentifier","src":"542:2:53"},"nativeSrc":"542:18:53","nodeType":"YulFunctionCall","src":"542:18:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"565:10:53","nodeType":"YulIdentifier","src":"565:10:53"},{"name":"memPtr","nativeSrc":"577:6:53","nodeType":"YulIdentifier","src":"577:6:53"}],"functionName":{"name":"lt","nativeSrc":"562:2:53","nodeType":"YulIdentifier","src":"562:2:53"},"nativeSrc":"562:22:53","nodeType":"YulFunctionCall","src":"562:22:53"}],"functionName":{"name":"or","nativeSrc":"539:2:53","nodeType":"YulIdentifier","src":"539:2:53"},"nativeSrc":"539:46:53","nodeType":"YulFunctionCall","src":"539:46:53"},"nativeSrc":"536:72:53","nodeType":"YulIf","src":"536:72:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"624:2:53","nodeType":"YulLiteral","src":"624:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"628:10:53","nodeType":"YulIdentifier","src":"628:10:53"}],"functionName":{"name":"mstore","nativeSrc":"617:6:53","nodeType":"YulIdentifier","src":"617:6:53"},"nativeSrc":"617:22:53","nodeType":"YulFunctionCall","src":"617:22:53"},"nativeSrc":"617:22:53","nodeType":"YulExpressionStatement","src":"617:22:53"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"655:6:53","nodeType":"YulIdentifier","src":"655:6:53"},{"name":"_1","nativeSrc":"663:2:53","nodeType":"YulIdentifier","src":"663:2:53"}],"functionName":{"name":"mstore","nativeSrc":"648:6:53","nodeType":"YulIdentifier","src":"648:6:53"},"nativeSrc":"648:18:53","nodeType":"YulFunctionCall","src":"648:18:53"},"nativeSrc":"648:18:53","nodeType":"YulExpressionStatement","src":"648:18:53"},{"nativeSrc":"675:14:53","nodeType":"YulVariableDeclaration","src":"675:14:53","value":{"kind":"number","nativeSrc":"685:4:53","nodeType":"YulLiteral","src":"685:4:53","type":"","value":"0x20"},"variables":[{"name":"_4","nativeSrc":"679:2:53","nodeType":"YulTypedName","src":"679:2:53","type":""}]},{"body":{"nativeSrc":"737:16:53","nodeType":"YulBlock","src":"737:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"746:1:53","nodeType":"YulLiteral","src":"746:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"749:1:53","nodeType":"YulLiteral","src":"749:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"739:6:53","nodeType":"YulIdentifier","src":"739:6:53"},"nativeSrc":"739:12:53","nodeType":"YulFunctionCall","src":"739:12:53"},"nativeSrc":"739:12:53","nodeType":"YulExpressionStatement","src":"739:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"712:6:53","nodeType":"YulIdentifier","src":"712:6:53"},{"name":"_1","nativeSrc":"720:2:53","nodeType":"YulIdentifier","src":"720:2:53"}],"functionName":{"name":"add","nativeSrc":"708:3:53","nodeType":"YulIdentifier","src":"708:3:53"},"nativeSrc":"708:15:53","nodeType":"YulFunctionCall","src":"708:15:53"},{"kind":"number","nativeSrc":"725:4:53","nodeType":"YulLiteral","src":"725:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"704:3:53","nodeType":"YulIdentifier","src":"704:3:53"},"nativeSrc":"704:26:53","nodeType":"YulFunctionCall","src":"704:26:53"},{"name":"end","nativeSrc":"732:3:53","nodeType":"YulIdentifier","src":"732:3:53"}],"functionName":{"name":"gt","nativeSrc":"701:2:53","nodeType":"YulIdentifier","src":"701:2:53"},"nativeSrc":"701:35:53","nodeType":"YulFunctionCall","src":"701:35:53"},"nativeSrc":"698:55:53","nodeType":"YulIf","src":"698:55:53"},{"nativeSrc":"762:10:53","nodeType":"YulVariableDeclaration","src":"762:10:53","value":{"kind":"number","nativeSrc":"771:1:53","nodeType":"YulLiteral","src":"771:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"766:1:53","nodeType":"YulTypedName","src":"766:1:53","type":""}]},{"body":{"nativeSrc":"827:87:53","nodeType":"YulBlock","src":"827:87:53","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"856:6:53","nodeType":"YulIdentifier","src":"856:6:53"},{"name":"i","nativeSrc":"864:1:53","nodeType":"YulIdentifier","src":"864:1:53"}],"functionName":{"name":"add","nativeSrc":"852:3:53","nodeType":"YulIdentifier","src":"852:3:53"},"nativeSrc":"852:14:53","nodeType":"YulFunctionCall","src":"852:14:53"},{"name":"_4","nativeSrc":"868:2:53","nodeType":"YulIdentifier","src":"868:2:53"}],"functionName":{"name":"add","nativeSrc":"848:3:53","nodeType":"YulIdentifier","src":"848:3:53"},"nativeSrc":"848:23:53","nodeType":"YulFunctionCall","src":"848:23:53"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"887:6:53","nodeType":"YulIdentifier","src":"887:6:53"},{"name":"i","nativeSrc":"895:1:53","nodeType":"YulIdentifier","src":"895:1:53"}],"functionName":{"name":"add","nativeSrc":"883:3:53","nodeType":"YulIdentifier","src":"883:3:53"},"nativeSrc":"883:14:53","nodeType":"YulFunctionCall","src":"883:14:53"},{"name":"_4","nativeSrc":"899:2:53","nodeType":"YulIdentifier","src":"899:2:53"}],"functionName":{"name":"add","nativeSrc":"879:3:53","nodeType":"YulIdentifier","src":"879:3:53"},"nativeSrc":"879:23:53","nodeType":"YulFunctionCall","src":"879:23:53"}],"functionName":{"name":"mload","nativeSrc":"873:5:53","nodeType":"YulIdentifier","src":"873:5:53"},"nativeSrc":"873:30:53","nodeType":"YulFunctionCall","src":"873:30:53"}],"functionName":{"name":"mstore","nativeSrc":"841:6:53","nodeType":"YulIdentifier","src":"841:6:53"},"nativeSrc":"841:63:53","nodeType":"YulFunctionCall","src":"841:63:53"},"nativeSrc":"841:63:53","nodeType":"YulExpressionStatement","src":"841:63:53"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"792:1:53","nodeType":"YulIdentifier","src":"792:1:53"},{"name":"_1","nativeSrc":"795:2:53","nodeType":"YulIdentifier","src":"795:2:53"}],"functionName":{"name":"lt","nativeSrc":"789:2:53","nodeType":"YulIdentifier","src":"789:2:53"},"nativeSrc":"789:9:53","nodeType":"YulFunctionCall","src":"789:9:53"},"nativeSrc":"781:133:53","nodeType":"YulForLoop","post":{"nativeSrc":"799:19:53","nodeType":"YulBlock","src":"799:19:53","statements":[{"nativeSrc":"801:15:53","nodeType":"YulAssignment","src":"801:15:53","value":{"arguments":[{"name":"i","nativeSrc":"810:1:53","nodeType":"YulIdentifier","src":"810:1:53"},{"name":"_4","nativeSrc":"813:2:53","nodeType":"YulIdentifier","src":"813:2:53"}],"functionName":{"name":"add","nativeSrc":"806:3:53","nodeType":"YulIdentifier","src":"806:3:53"},"nativeSrc":"806:10:53","nodeType":"YulFunctionCall","src":"806:10:53"},"variableNames":[{"name":"i","nativeSrc":"801:1:53","nodeType":"YulIdentifier","src":"801:1:53"}]}]},"pre":{"nativeSrc":"785:3:53","nodeType":"YulBlock","src":"785:3:53","statements":[]},"src":"781:133:53"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"938:6:53","nodeType":"YulIdentifier","src":"938:6:53"},{"name":"_1","nativeSrc":"946:2:53","nodeType":"YulIdentifier","src":"946:2:53"}],"functionName":{"name":"add","nativeSrc":"934:3:53","nodeType":"YulIdentifier","src":"934:3:53"},"nativeSrc":"934:15:53","nodeType":"YulFunctionCall","src":"934:15:53"},{"kind":"number","nativeSrc":"951:4:53","nodeType":"YulLiteral","src":"951:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"930:3:53","nodeType":"YulIdentifier","src":"930:3:53"},"nativeSrc":"930:26:53","nodeType":"YulFunctionCall","src":"930:26:53"},{"kind":"number","nativeSrc":"958:1:53","nodeType":"YulLiteral","src":"958:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"923:6:53","nodeType":"YulIdentifier","src":"923:6:53"},"nativeSrc":"923:37:53","nodeType":"YulFunctionCall","src":"923:37:53"},"nativeSrc":"923:37:53","nodeType":"YulExpressionStatement","src":"923:37:53"},{"nativeSrc":"969:15:53","nodeType":"YulAssignment","src":"969:15:53","value":{"name":"memPtr","nativeSrc":"978:6:53","nodeType":"YulIdentifier","src":"978:6:53"},"variableNames":[{"name":"array","nativeSrc":"969:5:53","nodeType":"YulIdentifier","src":"969:5:53"}]}]},"name":"abi_decode_string_fromMemory","nativeSrc":"146:844:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"184:6:53","nodeType":"YulTypedName","src":"184:6:53","type":""},{"name":"end","nativeSrc":"192:3:53","nodeType":"YulTypedName","src":"192:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"200:5:53","nodeType":"YulTypedName","src":"200:5:53","type":""}],"src":"146:844:53"},{"body":{"nativeSrc":"1055:117:53","nodeType":"YulBlock","src":"1055:117:53","statements":[{"nativeSrc":"1065:22:53","nodeType":"YulAssignment","src":"1065:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"1080:6:53","nodeType":"YulIdentifier","src":"1080:6:53"}],"functionName":{"name":"mload","nativeSrc":"1074:5:53","nodeType":"YulIdentifier","src":"1074:5:53"},"nativeSrc":"1074:13:53","nodeType":"YulFunctionCall","src":"1074:13:53"},"variableNames":[{"name":"value","nativeSrc":"1065:5:53","nodeType":"YulIdentifier","src":"1065:5:53"}]},{"body":{"nativeSrc":"1150:16:53","nodeType":"YulBlock","src":"1150:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1159:1:53","nodeType":"YulLiteral","src":"1159:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1162:1:53","nodeType":"YulLiteral","src":"1162:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1152:6:53","nodeType":"YulIdentifier","src":"1152:6:53"},"nativeSrc":"1152:12:53","nodeType":"YulFunctionCall","src":"1152:12:53"},"nativeSrc":"1152:12:53","nodeType":"YulExpressionStatement","src":"1152:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1109:5:53","nodeType":"YulIdentifier","src":"1109:5:53"},{"arguments":[{"name":"value","nativeSrc":"1120:5:53","nodeType":"YulIdentifier","src":"1120:5:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1135:3:53","nodeType":"YulLiteral","src":"1135:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"1140:1:53","nodeType":"YulLiteral","src":"1140:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1131:3:53","nodeType":"YulIdentifier","src":"1131:3:53"},"nativeSrc":"1131:11:53","nodeType":"YulFunctionCall","src":"1131:11:53"},{"kind":"number","nativeSrc":"1144:1:53","nodeType":"YulLiteral","src":"1144:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1127:3:53","nodeType":"YulIdentifier","src":"1127:3:53"},"nativeSrc":"1127:19:53","nodeType":"YulFunctionCall","src":"1127:19:53"}],"functionName":{"name":"and","nativeSrc":"1116:3:53","nodeType":"YulIdentifier","src":"1116:3:53"},"nativeSrc":"1116:31:53","nodeType":"YulFunctionCall","src":"1116:31:53"}],"functionName":{"name":"eq","nativeSrc":"1106:2:53","nodeType":"YulIdentifier","src":"1106:2:53"},"nativeSrc":"1106:42:53","nodeType":"YulFunctionCall","src":"1106:42:53"}],"functionName":{"name":"iszero","nativeSrc":"1099:6:53","nodeType":"YulIdentifier","src":"1099:6:53"},"nativeSrc":"1099:50:53","nodeType":"YulFunctionCall","src":"1099:50:53"},"nativeSrc":"1096:70:53","nodeType":"YulIf","src":"1096:70:53"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"995:177:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1034:6:53","nodeType":"YulTypedName","src":"1034:6:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1045:5:53","nodeType":"YulTypedName","src":"1045:5:53","type":""}],"src":"995:177:53"},{"body":{"nativeSrc":"1329:581:53","nodeType":"YulBlock","src":"1329:581:53","statements":[{"body":{"nativeSrc":"1376:16:53","nodeType":"YulBlock","src":"1376:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1385:1:53","nodeType":"YulLiteral","src":"1385:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1388:1:53","nodeType":"YulLiteral","src":"1388:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1378:6:53","nodeType":"YulIdentifier","src":"1378:6:53"},"nativeSrc":"1378:12:53","nodeType":"YulFunctionCall","src":"1378:12:53"},"nativeSrc":"1378:12:53","nodeType":"YulExpressionStatement","src":"1378:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1350:7:53","nodeType":"YulIdentifier","src":"1350:7:53"},{"name":"headStart","nativeSrc":"1359:9:53","nodeType":"YulIdentifier","src":"1359:9:53"}],"functionName":{"name":"sub","nativeSrc":"1346:3:53","nodeType":"YulIdentifier","src":"1346:3:53"},"nativeSrc":"1346:23:53","nodeType":"YulFunctionCall","src":"1346:23:53"},{"kind":"number","nativeSrc":"1371:3:53","nodeType":"YulLiteral","src":"1371:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"1342:3:53","nodeType":"YulIdentifier","src":"1342:3:53"},"nativeSrc":"1342:33:53","nodeType":"YulFunctionCall","src":"1342:33:53"},"nativeSrc":"1339:53:53","nodeType":"YulIf","src":"1339:53:53"},{"nativeSrc":"1401:30:53","nodeType":"YulVariableDeclaration","src":"1401:30:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1421:9:53","nodeType":"YulIdentifier","src":"1421:9:53"}],"functionName":{"name":"mload","nativeSrc":"1415:5:53","nodeType":"YulIdentifier","src":"1415:5:53"},"nativeSrc":"1415:16:53","nodeType":"YulFunctionCall","src":"1415:16:53"},"variables":[{"name":"offset","nativeSrc":"1405:6:53","nodeType":"YulTypedName","src":"1405:6:53","type":""}]},{"nativeSrc":"1440:28:53","nodeType":"YulVariableDeclaration","src":"1440:28:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1458:2:53","nodeType":"YulLiteral","src":"1458:2:53","type":"","value":"64"},{"kind":"number","nativeSrc":"1462:1:53","nodeType":"YulLiteral","src":"1462:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1454:3:53","nodeType":"YulIdentifier","src":"1454:3:53"},"nativeSrc":"1454:10:53","nodeType":"YulFunctionCall","src":"1454:10:53"},{"kind":"number","nativeSrc":"1466:1:53","nodeType":"YulLiteral","src":"1466:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1450:3:53","nodeType":"YulIdentifier","src":"1450:3:53"},"nativeSrc":"1450:18:53","nodeType":"YulFunctionCall","src":"1450:18:53"},"variables":[{"name":"_1","nativeSrc":"1444:2:53","nodeType":"YulTypedName","src":"1444:2:53","type":""}]},{"body":{"nativeSrc":"1495:16:53","nodeType":"YulBlock","src":"1495:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1504:1:53","nodeType":"YulLiteral","src":"1504:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1507:1:53","nodeType":"YulLiteral","src":"1507:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1497:6:53","nodeType":"YulIdentifier","src":"1497:6:53"},"nativeSrc":"1497:12:53","nodeType":"YulFunctionCall","src":"1497:12:53"},"nativeSrc":"1497:12:53","nodeType":"YulExpressionStatement","src":"1497:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1483:6:53","nodeType":"YulIdentifier","src":"1483:6:53"},{"name":"_1","nativeSrc":"1491:2:53","nodeType":"YulIdentifier","src":"1491:2:53"}],"functionName":{"name":"gt","nativeSrc":"1480:2:53","nodeType":"YulIdentifier","src":"1480:2:53"},"nativeSrc":"1480:14:53","nodeType":"YulFunctionCall","src":"1480:14:53"},"nativeSrc":"1477:34:53","nodeType":"YulIf","src":"1477:34:53"},{"nativeSrc":"1520:71:53","nodeType":"YulAssignment","src":"1520:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1563:9:53","nodeType":"YulIdentifier","src":"1563:9:53"},{"name":"offset","nativeSrc":"1574:6:53","nodeType":"YulIdentifier","src":"1574:6:53"}],"functionName":{"name":"add","nativeSrc":"1559:3:53","nodeType":"YulIdentifier","src":"1559:3:53"},"nativeSrc":"1559:22:53","nodeType":"YulFunctionCall","src":"1559:22:53"},{"name":"dataEnd","nativeSrc":"1583:7:53","nodeType":"YulIdentifier","src":"1583:7:53"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1530:28:53","nodeType":"YulIdentifier","src":"1530:28:53"},"nativeSrc":"1530:61:53","nodeType":"YulFunctionCall","src":"1530:61:53"},"variableNames":[{"name":"value0","nativeSrc":"1520:6:53","nodeType":"YulIdentifier","src":"1520:6:53"}]},{"nativeSrc":"1600:41:53","nodeType":"YulVariableDeclaration","src":"1600:41:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1626:9:53","nodeType":"YulIdentifier","src":"1626:9:53"},{"kind":"number","nativeSrc":"1637:2:53","nodeType":"YulLiteral","src":"1637:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1622:3:53","nodeType":"YulIdentifier","src":"1622:3:53"},"nativeSrc":"1622:18:53","nodeType":"YulFunctionCall","src":"1622:18:53"}],"functionName":{"name":"mload","nativeSrc":"1616:5:53","nodeType":"YulIdentifier","src":"1616:5:53"},"nativeSrc":"1616:25:53","nodeType":"YulFunctionCall","src":"1616:25:53"},"variables":[{"name":"offset_1","nativeSrc":"1604:8:53","nodeType":"YulTypedName","src":"1604:8:53","type":""}]},{"body":{"nativeSrc":"1670:16:53","nodeType":"YulBlock","src":"1670:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1679:1:53","nodeType":"YulLiteral","src":"1679:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1682:1:53","nodeType":"YulLiteral","src":"1682:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1672:6:53","nodeType":"YulIdentifier","src":"1672:6:53"},"nativeSrc":"1672:12:53","nodeType":"YulFunctionCall","src":"1672:12:53"},"nativeSrc":"1672:12:53","nodeType":"YulExpressionStatement","src":"1672:12:53"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1656:8:53","nodeType":"YulIdentifier","src":"1656:8:53"},{"name":"_1","nativeSrc":"1666:2:53","nodeType":"YulIdentifier","src":"1666:2:53"}],"functionName":{"name":"gt","nativeSrc":"1653:2:53","nodeType":"YulIdentifier","src":"1653:2:53"},"nativeSrc":"1653:16:53","nodeType":"YulFunctionCall","src":"1653:16:53"},"nativeSrc":"1650:36:53","nodeType":"YulIf","src":"1650:36:53"},{"nativeSrc":"1695:73:53","nodeType":"YulAssignment","src":"1695:73:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1738:9:53","nodeType":"YulIdentifier","src":"1738:9:53"},{"name":"offset_1","nativeSrc":"1749:8:53","nodeType":"YulIdentifier","src":"1749:8:53"}],"functionName":{"name":"add","nativeSrc":"1734:3:53","nodeType":"YulIdentifier","src":"1734:3:53"},"nativeSrc":"1734:24:53","nodeType":"YulFunctionCall","src":"1734:24:53"},{"name":"dataEnd","nativeSrc":"1760:7:53","nodeType":"YulIdentifier","src":"1760:7:53"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1705:28:53","nodeType":"YulIdentifier","src":"1705:28:53"},"nativeSrc":"1705:63:53","nodeType":"YulFunctionCall","src":"1705:63:53"},"variableNames":[{"name":"value1","nativeSrc":"1695:6:53","nodeType":"YulIdentifier","src":"1695:6:53"}]},{"nativeSrc":"1777:59:53","nodeType":"YulAssignment","src":"1777:59:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1821:9:53","nodeType":"YulIdentifier","src":"1821:9:53"},{"kind":"number","nativeSrc":"1832:2:53","nodeType":"YulLiteral","src":"1832:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1817:3:53","nodeType":"YulIdentifier","src":"1817:3:53"},"nativeSrc":"1817:18:53","nodeType":"YulFunctionCall","src":"1817:18:53"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"1787:29:53","nodeType":"YulIdentifier","src":"1787:29:53"},"nativeSrc":"1787:49:53","nodeType":"YulFunctionCall","src":"1787:49:53"},"variableNames":[{"name":"value2","nativeSrc":"1777:6:53","nodeType":"YulIdentifier","src":"1777:6:53"}]},{"nativeSrc":"1845:59:53","nodeType":"YulAssignment","src":"1845:59:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1889:9:53","nodeType":"YulIdentifier","src":"1889:9:53"},{"kind":"number","nativeSrc":"1900:2:53","nodeType":"YulLiteral","src":"1900:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1885:3:53","nodeType":"YulIdentifier","src":"1885:3:53"},"nativeSrc":"1885:18:53","nodeType":"YulFunctionCall","src":"1885:18:53"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"1855:29:53","nodeType":"YulIdentifier","src":"1855:29:53"},"nativeSrc":"1855:49:53","nodeType":"YulFunctionCall","src":"1855:49:53"},"variableNames":[{"name":"value3","nativeSrc":"1845:6:53","nodeType":"YulIdentifier","src":"1845:6:53"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_addresst_address_fromMemory","nativeSrc":"1177:733:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1271:9:53","nodeType":"YulTypedName","src":"1271:9:53","type":""},{"name":"dataEnd","nativeSrc":"1282:7:53","nodeType":"YulTypedName","src":"1282:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1294:6:53","nodeType":"YulTypedName","src":"1294:6:53","type":""},{"name":"value1","nativeSrc":"1302:6:53","nodeType":"YulTypedName","src":"1302:6:53","type":""},{"name":"value2","nativeSrc":"1310:6:53","nodeType":"YulTypedName","src":"1310:6:53","type":""},{"name":"value3","nativeSrc":"1318:6:53","nodeType":"YulTypedName","src":"1318:6:53","type":""}],"src":"1177:733:53"},{"body":{"nativeSrc":"2016:102:53","nodeType":"YulBlock","src":"2016:102:53","statements":[{"nativeSrc":"2026:26:53","nodeType":"YulAssignment","src":"2026:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2038:9:53","nodeType":"YulIdentifier","src":"2038:9:53"},{"kind":"number","nativeSrc":"2049:2:53","nodeType":"YulLiteral","src":"2049:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2034:3:53","nodeType":"YulIdentifier","src":"2034:3:53"},"nativeSrc":"2034:18:53","nodeType":"YulFunctionCall","src":"2034:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2026:4:53","nodeType":"YulIdentifier","src":"2026:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2068:9:53","nodeType":"YulIdentifier","src":"2068:9:53"},{"arguments":[{"name":"value0","nativeSrc":"2083:6:53","nodeType":"YulIdentifier","src":"2083:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2099:3:53","nodeType":"YulLiteral","src":"2099:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"2104:1:53","nodeType":"YulLiteral","src":"2104:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2095:3:53","nodeType":"YulIdentifier","src":"2095:3:53"},"nativeSrc":"2095:11:53","nodeType":"YulFunctionCall","src":"2095:11:53"},{"kind":"number","nativeSrc":"2108:1:53","nodeType":"YulLiteral","src":"2108:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2091:3:53","nodeType":"YulIdentifier","src":"2091:3:53"},"nativeSrc":"2091:19:53","nodeType":"YulFunctionCall","src":"2091:19:53"}],"functionName":{"name":"and","nativeSrc":"2079:3:53","nodeType":"YulIdentifier","src":"2079:3:53"},"nativeSrc":"2079:32:53","nodeType":"YulFunctionCall","src":"2079:32:53"}],"functionName":{"name":"mstore","nativeSrc":"2061:6:53","nodeType":"YulIdentifier","src":"2061:6:53"},"nativeSrc":"2061:51:53","nodeType":"YulFunctionCall","src":"2061:51:53"},"nativeSrc":"2061:51:53","nodeType":"YulExpressionStatement","src":"2061:51:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1915:203:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1985:9:53","nodeType":"YulTypedName","src":"1985:9:53","type":""},{"name":"value0","nativeSrc":"1996:6:53","nodeType":"YulTypedName","src":"1996:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2007:4:53","nodeType":"YulTypedName","src":"2007:4:53","type":""}],"src":"1915:203:53"},{"body":{"nativeSrc":"2178:325:53","nodeType":"YulBlock","src":"2178:325:53","statements":[{"nativeSrc":"2188:22:53","nodeType":"YulAssignment","src":"2188:22:53","value":{"arguments":[{"kind":"number","nativeSrc":"2202:1:53","nodeType":"YulLiteral","src":"2202:1:53","type":"","value":"1"},{"name":"data","nativeSrc":"2205:4:53","nodeType":"YulIdentifier","src":"2205:4:53"}],"functionName":{"name":"shr","nativeSrc":"2198:3:53","nodeType":"YulIdentifier","src":"2198:3:53"},"nativeSrc":"2198:12:53","nodeType":"YulFunctionCall","src":"2198:12:53"},"variableNames":[{"name":"length","nativeSrc":"2188:6:53","nodeType":"YulIdentifier","src":"2188:6:53"}]},{"nativeSrc":"2219:38:53","nodeType":"YulVariableDeclaration","src":"2219:38:53","value":{"arguments":[{"name":"data","nativeSrc":"2249:4:53","nodeType":"YulIdentifier","src":"2249:4:53"},{"kind":"number","nativeSrc":"2255:1:53","nodeType":"YulLiteral","src":"2255:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"2245:3:53","nodeType":"YulIdentifier","src":"2245:3:53"},"nativeSrc":"2245:12:53","nodeType":"YulFunctionCall","src":"2245:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"2223:18:53","nodeType":"YulTypedName","src":"2223:18:53","type":""}]},{"body":{"nativeSrc":"2296:31:53","nodeType":"YulBlock","src":"2296:31:53","statements":[{"nativeSrc":"2298:27:53","nodeType":"YulAssignment","src":"2298:27:53","value":{"arguments":[{"name":"length","nativeSrc":"2312:6:53","nodeType":"YulIdentifier","src":"2312:6:53"},{"kind":"number","nativeSrc":"2320:4:53","nodeType":"YulLiteral","src":"2320:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"2308:3:53","nodeType":"YulIdentifier","src":"2308:3:53"},"nativeSrc":"2308:17:53","nodeType":"YulFunctionCall","src":"2308:17:53"},"variableNames":[{"name":"length","nativeSrc":"2298:6:53","nodeType":"YulIdentifier","src":"2298:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2276:18:53","nodeType":"YulIdentifier","src":"2276:18:53"}],"functionName":{"name":"iszero","nativeSrc":"2269:6:53","nodeType":"YulIdentifier","src":"2269:6:53"},"nativeSrc":"2269:26:53","nodeType":"YulFunctionCall","src":"2269:26:53"},"nativeSrc":"2266:61:53","nodeType":"YulIf","src":"2266:61:53"},{"body":{"nativeSrc":"2386:111:53","nodeType":"YulBlock","src":"2386:111:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2407:1:53","nodeType":"YulLiteral","src":"2407:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2414:3:53","nodeType":"YulLiteral","src":"2414:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"2419:10:53","nodeType":"YulLiteral","src":"2419:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2410:3:53","nodeType":"YulIdentifier","src":"2410:3:53"},"nativeSrc":"2410:20:53","nodeType":"YulFunctionCall","src":"2410:20:53"}],"functionName":{"name":"mstore","nativeSrc":"2400:6:53","nodeType":"YulIdentifier","src":"2400:6:53"},"nativeSrc":"2400:31:53","nodeType":"YulFunctionCall","src":"2400:31:53"},"nativeSrc":"2400:31:53","nodeType":"YulExpressionStatement","src":"2400:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2451:1:53","nodeType":"YulLiteral","src":"2451:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"2454:4:53","nodeType":"YulLiteral","src":"2454:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"2444:6:53","nodeType":"YulIdentifier","src":"2444:6:53"},"nativeSrc":"2444:15:53","nodeType":"YulFunctionCall","src":"2444:15:53"},"nativeSrc":"2444:15:53","nodeType":"YulExpressionStatement","src":"2444:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2479:1:53","nodeType":"YulLiteral","src":"2479:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2482:4:53","nodeType":"YulLiteral","src":"2482:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2472:6:53","nodeType":"YulIdentifier","src":"2472:6:53"},"nativeSrc":"2472:15:53","nodeType":"YulFunctionCall","src":"2472:15:53"},"nativeSrc":"2472:15:53","nodeType":"YulExpressionStatement","src":"2472:15:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2342:18:53","nodeType":"YulIdentifier","src":"2342:18:53"},{"arguments":[{"name":"length","nativeSrc":"2365:6:53","nodeType":"YulIdentifier","src":"2365:6:53"},{"kind":"number","nativeSrc":"2373:2:53","nodeType":"YulLiteral","src":"2373:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"2362:2:53","nodeType":"YulIdentifier","src":"2362:2:53"},"nativeSrc":"2362:14:53","nodeType":"YulFunctionCall","src":"2362:14:53"}],"functionName":{"name":"eq","nativeSrc":"2339:2:53","nodeType":"YulIdentifier","src":"2339:2:53"},"nativeSrc":"2339:38:53","nodeType":"YulFunctionCall","src":"2339:38:53"},"nativeSrc":"2336:161:53","nodeType":"YulIf","src":"2336:161:53"}]},"name":"extract_byte_array_length","nativeSrc":"2123:380:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2158:4:53","nodeType":"YulTypedName","src":"2158:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"2167:6:53","nodeType":"YulTypedName","src":"2167:6:53","type":""}],"src":"2123:380:53"},{"body":{"nativeSrc":"2564:65:53","nodeType":"YulBlock","src":"2564:65:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2581:1:53","nodeType":"YulLiteral","src":"2581:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"2584:3:53","nodeType":"YulIdentifier","src":"2584:3:53"}],"functionName":{"name":"mstore","nativeSrc":"2574:6:53","nodeType":"YulIdentifier","src":"2574:6:53"},"nativeSrc":"2574:14:53","nodeType":"YulFunctionCall","src":"2574:14:53"},"nativeSrc":"2574:14:53","nodeType":"YulExpressionStatement","src":"2574:14:53"},{"nativeSrc":"2597:26:53","nodeType":"YulAssignment","src":"2597:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"2615:1:53","nodeType":"YulLiteral","src":"2615:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2618:4:53","nodeType":"YulLiteral","src":"2618:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2605:9:53","nodeType":"YulIdentifier","src":"2605:9:53"},"nativeSrc":"2605:18:53","nodeType":"YulFunctionCall","src":"2605:18:53"},"variableNames":[{"name":"data","nativeSrc":"2597:4:53","nodeType":"YulIdentifier","src":"2597:4:53"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"2508:121:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"2547:3:53","nodeType":"YulTypedName","src":"2547:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"2555:4:53","nodeType":"YulTypedName","src":"2555:4:53","type":""}],"src":"2508:121:53"},{"body":{"nativeSrc":"2715:462:53","nodeType":"YulBlock","src":"2715:462:53","statements":[{"body":{"nativeSrc":"2748:423:53","nodeType":"YulBlock","src":"2748:423:53","statements":[{"nativeSrc":"2762:11:53","nodeType":"YulVariableDeclaration","src":"2762:11:53","value":{"kind":"number","nativeSrc":"2772:1:53","nodeType":"YulLiteral","src":"2772:1:53","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"2766:2:53","nodeType":"YulTypedName","src":"2766:2:53","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2793:1:53","nodeType":"YulLiteral","src":"2793:1:53","type":"","value":"0"},{"name":"array","nativeSrc":"2796:5:53","nodeType":"YulIdentifier","src":"2796:5:53"}],"functionName":{"name":"mstore","nativeSrc":"2786:6:53","nodeType":"YulIdentifier","src":"2786:6:53"},"nativeSrc":"2786:16:53","nodeType":"YulFunctionCall","src":"2786:16:53"},"nativeSrc":"2786:16:53","nodeType":"YulExpressionStatement","src":"2786:16:53"},{"nativeSrc":"2815:30:53","nodeType":"YulVariableDeclaration","src":"2815:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"2837:1:53","nodeType":"YulLiteral","src":"2837:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2840:4:53","nodeType":"YulLiteral","src":"2840:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2827:9:53","nodeType":"YulIdentifier","src":"2827:9:53"},"nativeSrc":"2827:18:53","nodeType":"YulFunctionCall","src":"2827:18:53"},"variables":[{"name":"data","nativeSrc":"2819:4:53","nodeType":"YulTypedName","src":"2819:4:53","type":""}]},{"nativeSrc":"2858:57:53","nodeType":"YulVariableDeclaration","src":"2858:57:53","value":{"arguments":[{"name":"data","nativeSrc":"2881:4:53","nodeType":"YulIdentifier","src":"2881:4:53"},{"arguments":[{"kind":"number","nativeSrc":"2891:1:53","nodeType":"YulLiteral","src":"2891:1:53","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"2898:10:53","nodeType":"YulIdentifier","src":"2898:10:53"},{"kind":"number","nativeSrc":"2910:2:53","nodeType":"YulLiteral","src":"2910:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2894:3:53","nodeType":"YulIdentifier","src":"2894:3:53"},"nativeSrc":"2894:19:53","nodeType":"YulFunctionCall","src":"2894:19:53"}],"functionName":{"name":"shr","nativeSrc":"2887:3:53","nodeType":"YulIdentifier","src":"2887:3:53"},"nativeSrc":"2887:27:53","nodeType":"YulFunctionCall","src":"2887:27:53"}],"functionName":{"name":"add","nativeSrc":"2877:3:53","nodeType":"YulIdentifier","src":"2877:3:53"},"nativeSrc":"2877:38:53","nodeType":"YulFunctionCall","src":"2877:38:53"},"variables":[{"name":"deleteStart","nativeSrc":"2862:11:53","nodeType":"YulTypedName","src":"2862:11:53","type":""}]},{"body":{"nativeSrc":"2952:23:53","nodeType":"YulBlock","src":"2952:23:53","statements":[{"nativeSrc":"2954:19:53","nodeType":"YulAssignment","src":"2954:19:53","value":{"name":"data","nativeSrc":"2969:4:53","nodeType":"YulIdentifier","src":"2969:4:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"2954:11:53","nodeType":"YulIdentifier","src":"2954:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"2934:10:53","nodeType":"YulIdentifier","src":"2934:10:53"},{"kind":"number","nativeSrc":"2946:4:53","nodeType":"YulLiteral","src":"2946:4:53","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"2931:2:53","nodeType":"YulIdentifier","src":"2931:2:53"},"nativeSrc":"2931:20:53","nodeType":"YulFunctionCall","src":"2931:20:53"},"nativeSrc":"2928:47:53","nodeType":"YulIf","src":"2928:47:53"},{"nativeSrc":"2988:41:53","nodeType":"YulVariableDeclaration","src":"2988:41:53","value":{"arguments":[{"name":"data","nativeSrc":"3002:4:53","nodeType":"YulIdentifier","src":"3002:4:53"},{"arguments":[{"kind":"number","nativeSrc":"3012:1:53","nodeType":"YulLiteral","src":"3012:1:53","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"3019:3:53","nodeType":"YulIdentifier","src":"3019:3:53"},{"kind":"number","nativeSrc":"3024:2:53","nodeType":"YulLiteral","src":"3024:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3015:3:53","nodeType":"YulIdentifier","src":"3015:3:53"},"nativeSrc":"3015:12:53","nodeType":"YulFunctionCall","src":"3015:12:53"}],"functionName":{"name":"shr","nativeSrc":"3008:3:53","nodeType":"YulIdentifier","src":"3008:3:53"},"nativeSrc":"3008:20:53","nodeType":"YulFunctionCall","src":"3008:20:53"}],"functionName":{"name":"add","nativeSrc":"2998:3:53","nodeType":"YulIdentifier","src":"2998:3:53"},"nativeSrc":"2998:31:53","nodeType":"YulFunctionCall","src":"2998:31:53"},"variables":[{"name":"_2","nativeSrc":"2992:2:53","nodeType":"YulTypedName","src":"2992:2:53","type":""}]},{"nativeSrc":"3042:24:53","nodeType":"YulVariableDeclaration","src":"3042:24:53","value":{"name":"deleteStart","nativeSrc":"3055:11:53","nodeType":"YulIdentifier","src":"3055:11:53"},"variables":[{"name":"start","nativeSrc":"3046:5:53","nodeType":"YulTypedName","src":"3046:5:53","type":""}]},{"body":{"nativeSrc":"3140:21:53","nodeType":"YulBlock","src":"3140:21:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"3149:5:53","nodeType":"YulIdentifier","src":"3149:5:53"},{"name":"_1","nativeSrc":"3156:2:53","nodeType":"YulIdentifier","src":"3156:2:53"}],"functionName":{"name":"sstore","nativeSrc":"3142:6:53","nodeType":"YulIdentifier","src":"3142:6:53"},"nativeSrc":"3142:17:53","nodeType":"YulFunctionCall","src":"3142:17:53"},"nativeSrc":"3142:17:53","nodeType":"YulExpressionStatement","src":"3142:17:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"3090:5:53","nodeType":"YulIdentifier","src":"3090:5:53"},{"name":"_2","nativeSrc":"3097:2:53","nodeType":"YulIdentifier","src":"3097:2:53"}],"functionName":{"name":"lt","nativeSrc":"3087:2:53","nodeType":"YulIdentifier","src":"3087:2:53"},"nativeSrc":"3087:13:53","nodeType":"YulFunctionCall","src":"3087:13:53"},"nativeSrc":"3079:82:53","nodeType":"YulForLoop","post":{"nativeSrc":"3101:26:53","nodeType":"YulBlock","src":"3101:26:53","statements":[{"nativeSrc":"3103:22:53","nodeType":"YulAssignment","src":"3103:22:53","value":{"arguments":[{"name":"start","nativeSrc":"3116:5:53","nodeType":"YulIdentifier","src":"3116:5:53"},{"kind":"number","nativeSrc":"3123:1:53","nodeType":"YulLiteral","src":"3123:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3112:3:53","nodeType":"YulIdentifier","src":"3112:3:53"},"nativeSrc":"3112:13:53","nodeType":"YulFunctionCall","src":"3112:13:53"},"variableNames":[{"name":"start","nativeSrc":"3103:5:53","nodeType":"YulIdentifier","src":"3103:5:53"}]}]},"pre":{"nativeSrc":"3083:3:53","nodeType":"YulBlock","src":"3083:3:53","statements":[]},"src":"3079:82:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2731:3:53","nodeType":"YulIdentifier","src":"2731:3:53"},{"kind":"number","nativeSrc":"2736:2:53","nodeType":"YulLiteral","src":"2736:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2728:2:53","nodeType":"YulIdentifier","src":"2728:2:53"},"nativeSrc":"2728:11:53","nodeType":"YulFunctionCall","src":"2728:11:53"},"nativeSrc":"2725:446:53","nodeType":"YulIf","src":"2725:446:53"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"2634:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2687:5:53","nodeType":"YulTypedName","src":"2687:5:53","type":""},{"name":"len","nativeSrc":"2694:3:53","nodeType":"YulTypedName","src":"2694:3:53","type":""},{"name":"startIndex","nativeSrc":"2699:10:53","nodeType":"YulTypedName","src":"2699:10:53","type":""}],"src":"2634:543:53"},{"body":{"nativeSrc":"3267:81:53","nodeType":"YulBlock","src":"3267:81:53","statements":[{"nativeSrc":"3277:65:53","nodeType":"YulAssignment","src":"3277:65:53","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"3292:4:53","nodeType":"YulIdentifier","src":"3292:4:53"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3310:1:53","nodeType":"YulLiteral","src":"3310:1:53","type":"","value":"3"},{"name":"len","nativeSrc":"3313:3:53","nodeType":"YulIdentifier","src":"3313:3:53"}],"functionName":{"name":"shl","nativeSrc":"3306:3:53","nodeType":"YulIdentifier","src":"3306:3:53"},"nativeSrc":"3306:11:53","nodeType":"YulFunctionCall","src":"3306:11:53"},{"arguments":[{"kind":"number","nativeSrc":"3323:1:53","nodeType":"YulLiteral","src":"3323:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3319:3:53","nodeType":"YulIdentifier","src":"3319:3:53"},"nativeSrc":"3319:6:53","nodeType":"YulFunctionCall","src":"3319:6:53"}],"functionName":{"name":"shr","nativeSrc":"3302:3:53","nodeType":"YulIdentifier","src":"3302:3:53"},"nativeSrc":"3302:24:53","nodeType":"YulFunctionCall","src":"3302:24:53"}],"functionName":{"name":"not","nativeSrc":"3298:3:53","nodeType":"YulIdentifier","src":"3298:3:53"},"nativeSrc":"3298:29:53","nodeType":"YulFunctionCall","src":"3298:29:53"}],"functionName":{"name":"and","nativeSrc":"3288:3:53","nodeType":"YulIdentifier","src":"3288:3:53"},"nativeSrc":"3288:40:53","nodeType":"YulFunctionCall","src":"3288:40:53"},{"arguments":[{"kind":"number","nativeSrc":"3334:1:53","nodeType":"YulLiteral","src":"3334:1:53","type":"","value":"1"},{"name":"len","nativeSrc":"3337:3:53","nodeType":"YulIdentifier","src":"3337:3:53"}],"functionName":{"name":"shl","nativeSrc":"3330:3:53","nodeType":"YulIdentifier","src":"3330:3:53"},"nativeSrc":"3330:11:53","nodeType":"YulFunctionCall","src":"3330:11:53"}],"functionName":{"name":"or","nativeSrc":"3285:2:53","nodeType":"YulIdentifier","src":"3285:2:53"},"nativeSrc":"3285:57:53","nodeType":"YulFunctionCall","src":"3285:57:53"},"variableNames":[{"name":"used","nativeSrc":"3277:4:53","nodeType":"YulIdentifier","src":"3277:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"3182:166:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3244:4:53","nodeType":"YulTypedName","src":"3244:4:53","type":""},{"name":"len","nativeSrc":"3250:3:53","nodeType":"YulTypedName","src":"3250:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"3258:4:53","nodeType":"YulTypedName","src":"3258:4:53","type":""}],"src":"3182:166:53"},{"body":{"nativeSrc":"3449:1249:53","nodeType":"YulBlock","src":"3449:1249:53","statements":[{"nativeSrc":"3459:24:53","nodeType":"YulVariableDeclaration","src":"3459:24:53","value":{"arguments":[{"name":"src","nativeSrc":"3479:3:53","nodeType":"YulIdentifier","src":"3479:3:53"}],"functionName":{"name":"mload","nativeSrc":"3473:5:53","nodeType":"YulIdentifier","src":"3473:5:53"},"nativeSrc":"3473:10:53","nodeType":"YulFunctionCall","src":"3473:10:53"},"variables":[{"name":"newLen","nativeSrc":"3463:6:53","nodeType":"YulTypedName","src":"3463:6:53","type":""}]},{"body":{"nativeSrc":"3526:22:53","nodeType":"YulBlock","src":"3526:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3528:16:53","nodeType":"YulIdentifier","src":"3528:16:53"},"nativeSrc":"3528:18:53","nodeType":"YulFunctionCall","src":"3528:18:53"},"nativeSrc":"3528:18:53","nodeType":"YulExpressionStatement","src":"3528:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"3498:6:53","nodeType":"YulIdentifier","src":"3498:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3514:2:53","nodeType":"YulLiteral","src":"3514:2:53","type":"","value":"64"},{"kind":"number","nativeSrc":"3518:1:53","nodeType":"YulLiteral","src":"3518:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3510:3:53","nodeType":"YulIdentifier","src":"3510:3:53"},"nativeSrc":"3510:10:53","nodeType":"YulFunctionCall","src":"3510:10:53"},{"kind":"number","nativeSrc":"3522:1:53","nodeType":"YulLiteral","src":"3522:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3506:3:53","nodeType":"YulIdentifier","src":"3506:3:53"},"nativeSrc":"3506:18:53","nodeType":"YulFunctionCall","src":"3506:18:53"}],"functionName":{"name":"gt","nativeSrc":"3495:2:53","nodeType":"YulIdentifier","src":"3495:2:53"},"nativeSrc":"3495:30:53","nodeType":"YulFunctionCall","src":"3495:30:53"},"nativeSrc":"3492:56:53","nodeType":"YulIf","src":"3492:56:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3601:4:53","nodeType":"YulIdentifier","src":"3601:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"3639:4:53","nodeType":"YulIdentifier","src":"3639:4:53"}],"functionName":{"name":"sload","nativeSrc":"3633:5:53","nodeType":"YulIdentifier","src":"3633:5:53"},"nativeSrc":"3633:11:53","nodeType":"YulFunctionCall","src":"3633:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"3607:25:53","nodeType":"YulIdentifier","src":"3607:25:53"},"nativeSrc":"3607:38:53","nodeType":"YulFunctionCall","src":"3607:38:53"},{"name":"newLen","nativeSrc":"3647:6:53","nodeType":"YulIdentifier","src":"3647:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"3557:43:53","nodeType":"YulIdentifier","src":"3557:43:53"},"nativeSrc":"3557:97:53","nodeType":"YulFunctionCall","src":"3557:97:53"},"nativeSrc":"3557:97:53","nodeType":"YulExpressionStatement","src":"3557:97:53"},{"nativeSrc":"3663:18:53","nodeType":"YulVariableDeclaration","src":"3663:18:53","value":{"kind":"number","nativeSrc":"3680:1:53","nodeType":"YulLiteral","src":"3680:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"3667:9:53","nodeType":"YulTypedName","src":"3667:9:53","type":""}]},{"nativeSrc":"3690:23:53","nodeType":"YulVariableDeclaration","src":"3690:23:53","value":{"kind":"number","nativeSrc":"3709:4:53","nodeType":"YulLiteral","src":"3709:4:53","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"3694:11:53","nodeType":"YulTypedName","src":"3694:11:53","type":""}]},{"nativeSrc":"3722:17:53","nodeType":"YulAssignment","src":"3722:17:53","value":{"kind":"number","nativeSrc":"3735:4:53","nodeType":"YulLiteral","src":"3735:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"3722:9:53","nodeType":"YulIdentifier","src":"3722:9:53"}]},{"cases":[{"body":{"nativeSrc":"3785:656:53","nodeType":"YulBlock","src":"3785:656:53","statements":[{"nativeSrc":"3799:35:53","nodeType":"YulVariableDeclaration","src":"3799:35:53","value":{"arguments":[{"name":"newLen","nativeSrc":"3818:6:53","nodeType":"YulIdentifier","src":"3818:6:53"},{"arguments":[{"kind":"number","nativeSrc":"3830:2:53","nodeType":"YulLiteral","src":"3830:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3826:3:53","nodeType":"YulIdentifier","src":"3826:3:53"},"nativeSrc":"3826:7:53","nodeType":"YulFunctionCall","src":"3826:7:53"}],"functionName":{"name":"and","nativeSrc":"3814:3:53","nodeType":"YulIdentifier","src":"3814:3:53"},"nativeSrc":"3814:20:53","nodeType":"YulFunctionCall","src":"3814:20:53"},"variables":[{"name":"loopEnd","nativeSrc":"3803:7:53","nodeType":"YulTypedName","src":"3803:7:53","type":""}]},{"nativeSrc":"3847:49:53","nodeType":"YulVariableDeclaration","src":"3847:49:53","value":{"arguments":[{"name":"slot","nativeSrc":"3891:4:53","nodeType":"YulIdentifier","src":"3891:4:53"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"3861:29:53","nodeType":"YulIdentifier","src":"3861:29:53"},"nativeSrc":"3861:35:53","nodeType":"YulFunctionCall","src":"3861:35:53"},"variables":[{"name":"dstPtr","nativeSrc":"3851:6:53","nodeType":"YulTypedName","src":"3851:6:53","type":""}]},{"nativeSrc":"3909:10:53","nodeType":"YulVariableDeclaration","src":"3909:10:53","value":{"kind":"number","nativeSrc":"3918:1:53","nodeType":"YulLiteral","src":"3918:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3913:1:53","nodeType":"YulTypedName","src":"3913:1:53","type":""}]},{"body":{"nativeSrc":"3996:172:53","nodeType":"YulBlock","src":"3996:172:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4021:6:53","nodeType":"YulIdentifier","src":"4021:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4039:3:53","nodeType":"YulIdentifier","src":"4039:3:53"},{"name":"srcOffset","nativeSrc":"4044:9:53","nodeType":"YulIdentifier","src":"4044:9:53"}],"functionName":{"name":"add","nativeSrc":"4035:3:53","nodeType":"YulIdentifier","src":"4035:3:53"},"nativeSrc":"4035:19:53","nodeType":"YulFunctionCall","src":"4035:19:53"}],"functionName":{"name":"mload","nativeSrc":"4029:5:53","nodeType":"YulIdentifier","src":"4029:5:53"},"nativeSrc":"4029:26:53","nodeType":"YulFunctionCall","src":"4029:26:53"}],"functionName":{"name":"sstore","nativeSrc":"4014:6:53","nodeType":"YulIdentifier","src":"4014:6:53"},"nativeSrc":"4014:42:53","nodeType":"YulFunctionCall","src":"4014:42:53"},"nativeSrc":"4014:42:53","nodeType":"YulExpressionStatement","src":"4014:42:53"},{"nativeSrc":"4073:24:53","nodeType":"YulAssignment","src":"4073:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"4087:6:53","nodeType":"YulIdentifier","src":"4087:6:53"},{"kind":"number","nativeSrc":"4095:1:53","nodeType":"YulLiteral","src":"4095:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4083:3:53","nodeType":"YulIdentifier","src":"4083:3:53"},"nativeSrc":"4083:14:53","nodeType":"YulFunctionCall","src":"4083:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"4073:6:53","nodeType":"YulIdentifier","src":"4073:6:53"}]},{"nativeSrc":"4114:40:53","nodeType":"YulAssignment","src":"4114:40:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"4131:9:53","nodeType":"YulIdentifier","src":"4131:9:53"},{"name":"srcOffset_1","nativeSrc":"4142:11:53","nodeType":"YulIdentifier","src":"4142:11:53"}],"functionName":{"name":"add","nativeSrc":"4127:3:53","nodeType":"YulIdentifier","src":"4127:3:53"},"nativeSrc":"4127:27:53","nodeType":"YulFunctionCall","src":"4127:27:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"4114:9:53","nodeType":"YulIdentifier","src":"4114:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3943:1:53","nodeType":"YulIdentifier","src":"3943:1:53"},{"name":"loopEnd","nativeSrc":"3946:7:53","nodeType":"YulIdentifier","src":"3946:7:53"}],"functionName":{"name":"lt","nativeSrc":"3940:2:53","nodeType":"YulIdentifier","src":"3940:2:53"},"nativeSrc":"3940:14:53","nodeType":"YulFunctionCall","src":"3940:14:53"},"nativeSrc":"3932:236:53","nodeType":"YulForLoop","post":{"nativeSrc":"3955:28:53","nodeType":"YulBlock","src":"3955:28:53","statements":[{"nativeSrc":"3957:24:53","nodeType":"YulAssignment","src":"3957:24:53","value":{"arguments":[{"name":"i","nativeSrc":"3966:1:53","nodeType":"YulIdentifier","src":"3966:1:53"},{"name":"srcOffset_1","nativeSrc":"3969:11:53","nodeType":"YulIdentifier","src":"3969:11:53"}],"functionName":{"name":"add","nativeSrc":"3962:3:53","nodeType":"YulIdentifier","src":"3962:3:53"},"nativeSrc":"3962:19:53","nodeType":"YulFunctionCall","src":"3962:19:53"},"variableNames":[{"name":"i","nativeSrc":"3957:1:53","nodeType":"YulIdentifier","src":"3957:1:53"}]}]},"pre":{"nativeSrc":"3936:3:53","nodeType":"YulBlock","src":"3936:3:53","statements":[]},"src":"3932:236:53"},{"body":{"nativeSrc":"4216:166:53","nodeType":"YulBlock","src":"4216:166:53","statements":[{"nativeSrc":"4234:43:53","nodeType":"YulVariableDeclaration","src":"4234:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4261:3:53","nodeType":"YulIdentifier","src":"4261:3:53"},{"name":"srcOffset","nativeSrc":"4266:9:53","nodeType":"YulIdentifier","src":"4266:9:53"}],"functionName":{"name":"add","nativeSrc":"4257:3:53","nodeType":"YulIdentifier","src":"4257:3:53"},"nativeSrc":"4257:19:53","nodeType":"YulFunctionCall","src":"4257:19:53"}],"functionName":{"name":"mload","nativeSrc":"4251:5:53","nodeType":"YulIdentifier","src":"4251:5:53"},"nativeSrc":"4251:26:53","nodeType":"YulFunctionCall","src":"4251:26:53"},"variables":[{"name":"lastValue","nativeSrc":"4238:9:53","nodeType":"YulTypedName","src":"4238:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4301:6:53","nodeType":"YulIdentifier","src":"4301:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"4313:9:53","nodeType":"YulIdentifier","src":"4313:9:53"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4340:1:53","nodeType":"YulLiteral","src":"4340:1:53","type":"","value":"3"},{"name":"newLen","nativeSrc":"4343:6:53","nodeType":"YulIdentifier","src":"4343:6:53"}],"functionName":{"name":"shl","nativeSrc":"4336:3:53","nodeType":"YulIdentifier","src":"4336:3:53"},"nativeSrc":"4336:14:53","nodeType":"YulFunctionCall","src":"4336:14:53"},{"kind":"number","nativeSrc":"4352:3:53","nodeType":"YulLiteral","src":"4352:3:53","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"4332:3:53","nodeType":"YulIdentifier","src":"4332:3:53"},"nativeSrc":"4332:24:53","nodeType":"YulFunctionCall","src":"4332:24:53"},{"arguments":[{"kind":"number","nativeSrc":"4362:1:53","nodeType":"YulLiteral","src":"4362:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"4358:3:53","nodeType":"YulIdentifier","src":"4358:3:53"},"nativeSrc":"4358:6:53","nodeType":"YulFunctionCall","src":"4358:6:53"}],"functionName":{"name":"shr","nativeSrc":"4328:3:53","nodeType":"YulIdentifier","src":"4328:3:53"},"nativeSrc":"4328:37:53","nodeType":"YulFunctionCall","src":"4328:37:53"}],"functionName":{"name":"not","nativeSrc":"4324:3:53","nodeType":"YulIdentifier","src":"4324:3:53"},"nativeSrc":"4324:42:53","nodeType":"YulFunctionCall","src":"4324:42:53"}],"functionName":{"name":"and","nativeSrc":"4309:3:53","nodeType":"YulIdentifier","src":"4309:3:53"},"nativeSrc":"4309:58:53","nodeType":"YulFunctionCall","src":"4309:58:53"}],"functionName":{"name":"sstore","nativeSrc":"4294:6:53","nodeType":"YulIdentifier","src":"4294:6:53"},"nativeSrc":"4294:74:53","nodeType":"YulFunctionCall","src":"4294:74:53"},"nativeSrc":"4294:74:53","nodeType":"YulExpressionStatement","src":"4294:74:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"4187:7:53","nodeType":"YulIdentifier","src":"4187:7:53"},{"name":"newLen","nativeSrc":"4196:6:53","nodeType":"YulIdentifier","src":"4196:6:53"}],"functionName":{"name":"lt","nativeSrc":"4184:2:53","nodeType":"YulIdentifier","src":"4184:2:53"},"nativeSrc":"4184:19:53","nodeType":"YulFunctionCall","src":"4184:19:53"},"nativeSrc":"4181:201:53","nodeType":"YulIf","src":"4181:201:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4402:4:53","nodeType":"YulIdentifier","src":"4402:4:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4416:1:53","nodeType":"YulLiteral","src":"4416:1:53","type":"","value":"1"},{"name":"newLen","nativeSrc":"4419:6:53","nodeType":"YulIdentifier","src":"4419:6:53"}],"functionName":{"name":"shl","nativeSrc":"4412:3:53","nodeType":"YulIdentifier","src":"4412:3:53"},"nativeSrc":"4412:14:53","nodeType":"YulFunctionCall","src":"4412:14:53"},{"kind":"number","nativeSrc":"4428:1:53","nodeType":"YulLiteral","src":"4428:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4408:3:53","nodeType":"YulIdentifier","src":"4408:3:53"},"nativeSrc":"4408:22:53","nodeType":"YulFunctionCall","src":"4408:22:53"}],"functionName":{"name":"sstore","nativeSrc":"4395:6:53","nodeType":"YulIdentifier","src":"4395:6:53"},"nativeSrc":"4395:36:53","nodeType":"YulFunctionCall","src":"4395:36:53"},"nativeSrc":"4395:36:53","nodeType":"YulExpressionStatement","src":"4395:36:53"}]},"nativeSrc":"3778:663:53","nodeType":"YulCase","src":"3778:663:53","value":{"kind":"number","nativeSrc":"3783:1:53","nodeType":"YulLiteral","src":"3783:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"4458:234:53","nodeType":"YulBlock","src":"4458:234:53","statements":[{"nativeSrc":"4472:14:53","nodeType":"YulVariableDeclaration","src":"4472:14:53","value":{"kind":"number","nativeSrc":"4485:1:53","nodeType":"YulLiteral","src":"4485:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4476:5:53","nodeType":"YulTypedName","src":"4476:5:53","type":""}]},{"body":{"nativeSrc":"4521:67:53","nodeType":"YulBlock","src":"4521:67:53","statements":[{"nativeSrc":"4539:35:53","nodeType":"YulAssignment","src":"4539:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4558:3:53","nodeType":"YulIdentifier","src":"4558:3:53"},{"name":"srcOffset","nativeSrc":"4563:9:53","nodeType":"YulIdentifier","src":"4563:9:53"}],"functionName":{"name":"add","nativeSrc":"4554:3:53","nodeType":"YulIdentifier","src":"4554:3:53"},"nativeSrc":"4554:19:53","nodeType":"YulFunctionCall","src":"4554:19:53"}],"functionName":{"name":"mload","nativeSrc":"4548:5:53","nodeType":"YulIdentifier","src":"4548:5:53"},"nativeSrc":"4548:26:53","nodeType":"YulFunctionCall","src":"4548:26:53"},"variableNames":[{"name":"value","nativeSrc":"4539:5:53","nodeType":"YulIdentifier","src":"4539:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"4502:6:53","nodeType":"YulIdentifier","src":"4502:6:53"},"nativeSrc":"4499:89:53","nodeType":"YulIf","src":"4499:89:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4608:4:53","nodeType":"YulIdentifier","src":"4608:4:53"},{"arguments":[{"name":"value","nativeSrc":"4667:5:53","nodeType":"YulIdentifier","src":"4667:5:53"},{"name":"newLen","nativeSrc":"4674:6:53","nodeType":"YulIdentifier","src":"4674:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"4614:52:53","nodeType":"YulIdentifier","src":"4614:52:53"},"nativeSrc":"4614:67:53","nodeType":"YulFunctionCall","src":"4614:67:53"}],"functionName":{"name":"sstore","nativeSrc":"4601:6:53","nodeType":"YulIdentifier","src":"4601:6:53"},"nativeSrc":"4601:81:53","nodeType":"YulFunctionCall","src":"4601:81:53"},"nativeSrc":"4601:81:53","nodeType":"YulExpressionStatement","src":"4601:81:53"}]},"nativeSrc":"4450:242:53","nodeType":"YulCase","src":"4450:242:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"3758:6:53","nodeType":"YulIdentifier","src":"3758:6:53"},{"kind":"number","nativeSrc":"3766:2:53","nodeType":"YulLiteral","src":"3766:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3755:2:53","nodeType":"YulIdentifier","src":"3755:2:53"},"nativeSrc":"3755:14:53","nodeType":"YulFunctionCall","src":"3755:14:53"},"nativeSrc":"3748:944:53","nodeType":"YulSwitch","src":"3748:944:53"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"3353:1345:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3434:4:53","nodeType":"YulTypedName","src":"3434:4:53","type":""},{"name":"src","nativeSrc":"3440:3:53","nodeType":"YulTypedName","src":"3440:3:53","type":""}],"src":"3353:1345:53"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := abi_decode_address_fromMemory(add(headStart, 96))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(0, array)\n let data := keccak256(0, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := 0x20\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n}","id":53,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b50604051620038ff380380620038ff833981016040819052620000349162000277565b838383838383838381818181806001600160a01b0381166200007057604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007b8162000142565b506001600160a01b038083166080528116620000aa57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000f257600080fd5b505af115801562000107573d6000803e3d6000fd5b50505050505050505050816005908162000122919062000397565b50600662000131828262000397565b505050505050505050505062000463565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ba57600080fd5b81516001600160401b0380821115620001d757620001d762000192565b604051601f8301601f19908116603f0116810190828211818310171562000202576200020262000192565b81604052838152602092508660208588010111156200022057600080fd5b600091505b8382101562000244578582018301518183018401529082019062000225565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200027257600080fd5b919050565b600080600080608085870312156200028e57600080fd5b84516001600160401b0380821115620002a657600080fd5b620002b488838901620001a8565b95506020870151915080821115620002cb57600080fd5b50620002da87828801620001a8565b935050620002eb604086016200025a565b9150620002fb606086016200025a565b905092959194509250565b600181811c908216806200031b57607f821691505b6020821081036200033c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000392576000816000526020600020601f850160051c810160208610156200036d5750805b601f850160051c820191505b818110156200038e5782815560010162000379565b5050505b505050565b81516001600160401b03811115620003b357620003b362000192565b620003cb81620003c4845462000306565b8462000342565b602080601f831160018114620004035760008415620003ea5750858301515b600019600386901b1c1916600185901b1785556200038e565b600085815260208120601f198616915b82811015620004345788860151825594840194600190910190840162000413565b5085821015620004535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805161344f620004b06000396000818161048b0152818161090d01528181611162015281816113f70152818161167a01528181611c270152818161200601526120bf015261344f6000f3fe60806040526004361061025c5760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc1461075c578063d42438851461076f578063e985e9c51461078f578063f2fde38b146107af578063fc0c546a1461040f578063ff7bd03d146107cf57600080fd5b8063bc70b354146106bc578063bd815db0146106dc578063c6414e7b146106ef578063c87b56dd1461071c578063ca5eb5e11461073c57600080fd5b8063a72f5dd811610108578063a72f5dd8146105f2578063b21a33e41461061a578063b731ea0a1461062f578063b88d4fde1461064f578063b98bd0701461066f578063bb0b6a531461068f57600080fd5b806382413eac1461056b5780638da5cb5b1461058b57806395d89b41146105a95780639f68b964146105be578063a22cb465146105d257600080fd5b80633400288b116101dd5780635e280f11116101a15780635e280f11146104795780636352211e146104ad5780636fc1b31e146104cd57806370a08231146104ed578063715018a61461051b5780637d25a05e1461053057600080fd5b80633400288b146103cf57806342842e0e146103ef57806352ae28791461040f5780635535d461146104225780635a0dfe4d1461044257600080fd5b806313137d651161022457806313137d651461033257806317442b70146103455780631f5e13341461036757806321eb730b1461038f57806323b872dd146103af57600080fd5b806301ffc9a71461026157806306fdde0314610296578063081812fc146102b8578063095ea7b3146102f0578063111ecdad14610312575b600080fd5b34801561026d57600080fd5b5061028161027c366004612509565b6107ef565b60405190151581526020015b60405180910390f35b3480156102a257600080fd5b506102ab610841565b60405161028d9190612576565b3480156102c457600080fd5b506102d86102d3366004612589565b6108d3565b6040516001600160a01b03909116815260200161028d565b3480156102fc57600080fd5b5061031061030b3660046125b7565b6108fc565b005b34801561031e57600080fd5b506004546102d8906001600160a01b031681565b610310610340366004612643565b61090b565b34801561035157600080fd5b506040805160018152600260208201520161028d565b34801561037357600080fd5b5061037c600181565b60405161ffff909116815260200161028d565b6103a261039d3660046126f4565b6109cb565b60405161028d9190612761565b3480156103bb57600080fd5b506103106103ca3660046127a3565b610aa6565b3480156103db57600080fd5b506103106103ea3660046127fd565b610b31565b3480156103fb57600080fd5b5061031061040a3660046127a3565b610b43565b34801561041b57600080fd5b50306102d8565b34801561042e57600080fd5b506102ab61043d36600461282b565b610b63565b34801561044e57600080fd5b5061028161045d3660046127fd565b63ffffffff919091166000908152600160205260409020541490565b34801561048557600080fd5b506102d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b957600080fd5b506102d86104c8366004612589565b610c08565b3480156104d957600080fd5b506103106104e836600461285e565b610c13565b3480156104f957600080fd5b5061050d61050836600461285e565b610c70565b60405190815260200161028d565b34801561052757600080fd5b50610310610cb8565b34801561053c57600080fd5b5061055361054b3660046127fd565b600092915050565b6040516001600160401b03909116815260200161028d565b34801561057757600080fd5b5061028161058636600461287b565b610ccc565b34801561059757600080fd5b506000546001600160a01b03166102d8565b3480156105b557600080fd5b506102ab610ce1565b3480156105ca57600080fd5b506000610281565b3480156105de57600080fd5b506103106105ed3660046128ef565b610cf0565b3480156105fe57600080fd5b50604080516311f0c6d360e11b8152600160208201520161028d565b34801561062657600080fd5b5061037c600281565b34801561063b57600080fd5b506002546102d8906001600160a01b031681565b34801561065b57600080fd5b5061031061066a366004612a35565b610cfb565b34801561067b57600080fd5b5061031061068a366004612ae4565b610d12565b34801561069b57600080fd5b5061050d6106aa366004612b25565b60016020526000908152604090205481565b3480156106c857600080fd5b506102ab6106d7366004612b40565b610d2c565b6103106106ea366004612ae4565b610ed4565b3480156106fb57600080fd5b5061070f61070a366004612ba0565b61105e565b60405161028d9190612be6565b34801561072857600080fd5b506102ab610737366004612589565b6110c6565b34801561074857600080fd5b5061031061075736600461285e565b61113b565b61031061076a366004612643565b6111c1565b34801561077b57600080fd5b5061031061078a36600461285e565b6111f0565b34801561079b57600080fd5b506102816107aa366004612bfd565b611246565b3480156107bb57600080fd5b506103106107ca36600461285e565b611274565b3480156107db57600080fd5b506102816107ea366004612c2b565b6112b2565b60006001600160e01b031982166380ac58cd60e01b148061082057506001600160e01b03198216635b5e139f60e01b145b8061083b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461085090612c47565b80601f016020809104026020016040519081016040528092919081815260200182805461087c90612c47565b80156108c95780601f1061089e576101008083540402835291602001916108c9565b820191906000526020600020905b8154815290600101906020018083116108ac57829003601f168201915b5050505050905090565b60006108de826112e8565b506000828152600960205260409020546001600160a01b031661083b565b610907828233611321565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461095b576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061097590610970908a612b25565b61132e565b146109b3576109876020880188612b25565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610952565b6109c28787878787878761136a565b50505050505050565b6109d36124ac565b60208401356109f557604051631e4ec46b60e01b815260040160405180910390fd5b610a10336040860135610a0b6020880188612b25565b6114c9565b600080610a1c86611529565b9092509050610a48610a316020880188612b25565b8383610a42368a90038a018a612c7b565b88611647565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610a7d60208a018a612b25565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610ad057604051633250574960e11b815260006004820152602401610952565b6000610add838333611752565b9050836001600160a01b0316816001600160a01b031614610b2b576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610952565b50505050565b610b3961184b565b6109078282611878565b610b5e83838360405180602001604052806000815250610cfb565b505050565b600360209081526000928352604080842090915290825290208054610b8790612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb390612c47565b8015610c005780601f10610bd557610100808354040283529160200191610c00565b820191906000526020600020905b815481529060010190602001808311610be357829003601f168201915b505050505081565b600061083b826112e8565b610c1b61184b565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610c9c576040516322718ad960e21b815260006004820152602401610952565b506001600160a01b031660009081526008602052604090205490565b610cc061184b565b610cca60006118cd565b565b6001600160a01b03811630145b949350505050565b60606006805461085090612c47565b61090733838361191d565b610d06848484610aa6565b610b2b848484846119bc565b610d1a61184b565b610907610d278284612cad565b611ade565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d6090612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8c90612c47565b8015610dd95780601f10610dae57610100808354040283529160200191610dd9565b820191906000526020600020905b815481529060010190602001808311610dbc57829003601f168201915b505050505090508051600003610e295783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610cd99350505050565b6000839003610e39579050610cd9565b60028310610eb757610e8084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611be592505050565b80610e8e8460028188612d82565b604051602001610ea093929190612dac565b604051602081830303815290604052915050610cd9565b8383604051639a6d49cd60e01b8152600401610952929190612dfd565b60005b81811015610fdd5736838383818110610ef257610ef2612e11565b9050602002810190610f049190612e27565b9050610f37610f166020830183612b25565b602083013563ffffffff919091166000908152600160205260409020541490565b610f415750610fd5565b3063d045a0dc60c08301358360a0810135610f60610100830183612e48565b610f71610100890160e08a0161285e565b610f7f6101208a018a612e48565b6040518963ffffffff1660e01b8152600401610fa19796959493929190612ea3565b6000604051808303818588803b158015610fba57600080fd5b505af1158015610fce573d6000803e3d6000fd5b5050505050505b600101610ed7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa15801561101c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110449190810190612f29565b604051638351eea760e01b81526004016109529190612576565b6040805180820190915260008082526020820152602083013561109457604051631e4ec46b60e01b815260040160405180910390fd5b6000806110a085611529565b90925090506110bd6110b56020870187612b25565b838387611c11565b95945050505050565b60606110d1826112e8565b5060006110e960408051602081019091526000815290565b905060008151116111095760405180602001604052806000815250611134565b8061111384611ce9565b604051602001611124929190612f96565b6040516020818303038152906040525b9392505050565b61114361184b565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b5050505050565b3330146111e15760405163029a949d60e31b815260040160405180910390fd5b6109c2878787878787876109b3565b6111f861184b565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b61127c61184b565b6001600160a01b0381166112a657604051631e4fbdf760e01b815260006004820152602401610952565b6112af816118cd565b50565b60006020820180359060019083906112ca9086612b25565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061083b57604051637e27328960e01b815260048101849052602401610952565b610b5e8383836001611d7b565b63ffffffff81166000908152600160205260408120548061083b5760405163f6ff4fb760e01b815263ffffffff84166004820152602401610952565b600061137c6113798787611e81565b90565b9050600061138a8787611e99565b90506113a3828261139e60208d018d612b25565b611eb6565b60408611156114675760006113dd6113c160608c0160408d01612fc5565b6113ce60208d018d612b25565b6113d88b8b611ec0565b611f0b565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114339086908d906000908790600401612fe2565b600060405180830381600087803b15801561144d57600080fd5b505af1158015611461573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114a060208d018d612b25565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6114d282610c08565b6001600160a01b0316836001600160a01b03161461152057826114f483610c08565b604051634342715b60e11b81526001600160a01b03928316600482015291166024820152604401610952565b610b5e82611f3a565b6060806000611582602085013560408601356115486080880188612e48565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f7592505050565b9093509050600081611595576001611598565b60025b90506115b86115aa6020870187612b25565b826106d76060890189612e48565b6004549093506001600160a01b031615611640576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb916115fd918891889101613013565b602060405180830381865afa15801561161a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163e9190613038565b505b5050915091565b61164f6124ac565b600061165e8460000151611fda565b602085015190915015611678576116788460200151612002565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116c88c61132e565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611704929190613055565b60806040518083038185885af1158015611722573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061174791906130fe565b979650505050505050565b6000828152600760205260408120546001600160a01b039081169083161561177f5761177f8184866120e4565b6001600160a01b038116156117bd5761179c600085600080611d7b565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b038516156117ec576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cca5760405163118cdaa760e01b8152336004820152602401610952565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661194f57604051630b61174360e31b81526001600160a01b0383166004820152602401610952565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b2b57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906119fe903390889087908790600401613148565b6020604051808303816000875af1925050508015611a39575060408051601f3d908101601f19168201909252611a369181019061317b565b60015b611aa2573d808015611a67576040519150601f19603f3d011682016040523d82523d6000602084013e611a6c565b606091505b508051600003611a9a57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ba57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b60005b8151811015611bb557611b10828281518110611aff57611aff612e11565b602002602001015160400151611be5565b818181518110611b2257611b22612e11565b60200260200101516040015160036000848481518110611b4457611b44612e11565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611b7e57611b7e612e11565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611bac91906131e8565b50600101611ae1565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c6591906132a7565b600281015161ffff81166003146109075781604051639a6d49cd60e01b81526004016109529190612576565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611c748961132e565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611ca9929190613055565b6040805180830381865afa158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bd9190613332565b60606000611cf683612148565b60010190506000816001600160401b03811115611d1557611d15612928565b6040519080825280601f01601f191660200182016040528015611d3f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611d4957509392505050565b8080611d8f57506001600160a01b03821615155b15611e51576000611d9f846112e8565b90506001600160a01b03831615801590611dcb5750826001600160a01b0316816001600160a01b031614155b8015611dde5750611ddc8184611246565b155b15611e075760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610952565b8115611e4f5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611e906020828486612d82565b6111349161334e565b6000611ea9604060208486612d82565b8101906111349190612589565b610b5e8383612220565b6060611ecf8260408186612d82565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611f229392919061336c565b60405160208183030381529060405290509392505050565b6000611f496000836000611752565b90506001600160a01b03811661090757604051637e27328960e01b815260048101839052602401610952565b8051606090151580611fa9576040805160208101879052908101859052606001604051602081830303815290604052611fd0565b84843385604051602001611fc094939291906133b6565b6040516020818303038152906040525b9150935093915050565b6000813414611ffe576040516304fb820960e51b8152346004820152602401610952565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612062573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208691906133ea565b90506001600160a01b0381166120af576040516329b99a9560e11b815260040160405180910390fd5b6109076001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612285565b6120ef8383836122df565b610b5e576001600160a01b03831661211d57604051637e27328960e01b815260048101829052602401610952565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610952565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106121875772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106121b3576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106121d157662386f26fc10000830492506010015b6305f5e10083106121e9576305f5e100830492506008015b61271083106121fd57612710830492506004015b6064831061220f576064830492506002015b600a831061083b5760010192915050565b6001600160a01b03821661224a57604051633250574960e11b815260006004820152602401610952565b600061225883836000611752565b90506001600160a01b03811615610b5e576040516339e3563760e11b815260006004820152602401610952565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b2b908590612342565b60006001600160a01b03831615801590610cd95750826001600160a01b0316846001600160a01b0316148061231957506123198484611246565b80610cd95750506000908152600960205260409020546001600160a01b03908116911614919050565b60006123576001600160a01b038416836123a5565b9050805160001415801561237c57508080602001905181019061237a9190613038565b155b15610b5e57604051635274afe760e01b81526001600160a01b0384166004820152602401610952565b60606111348383600084600080856001600160a01b031684866040516123cb9190613407565b60006040518083038185875af1925050503d8060008114612408576040519150601f19603f3d011682016040523d82523d6000602084013e61240d565b606091505b509150915061241d868383612427565b9695505050505050565b60608261243c5761243782612483565b611134565b815115801561245357506001600160a01b0384163b155b1561247c57604051639996b31560e01b81526001600160a01b0385166004820152602401610952565b5080611134565b8051156124935780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b031681526020016124ee604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112af57600080fd5b60006020828403121561251b57600080fd5b8135611134816124f3565b60005b83811015612541578181015183820152602001612529565b50506000910152565b60008151808452612562816020860160208601612526565b601f01601f19169290920160200192915050565b602081526000611134602083018461254a565b60006020828403121561259b57600080fd5b5035919050565b6001600160a01b03811681146112af57600080fd5b600080604083850312156125ca57600080fd5b82356125d5816125a2565b946020939093013593505050565b6000606082840312156125f557600080fd5b50919050565b60008083601f84011261260d57600080fd5b5081356001600160401b0381111561262457600080fd5b60208301915083602082850101111561263c57600080fd5b9250929050565b600080600080600080600060e0888a03121561265e57600080fd5b61266889896125e3565b96506060880135955060808801356001600160401b038082111561268b57600080fd5b6126978b838c016125fb565b909750955060a08a013591506126ac826125a2565b90935060c089013590808211156126c257600080fd5b506126cf8a828b016125fb565b989b979a50959850939692959293505050565b600060c082840312156125f557600080fd5b6000806000838503608081121561270a57600080fd5b84356001600160401b0381111561272057600080fd5b61272c878288016126e2565b9450506040601f198201121561274157600080fd5b506020840191506060840135612756816125a2565b809150509250925092565b6000608082019050825182526001600160401b036020840151166020830152604083015161279c604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127b857600080fd5b83356127c3816125a2565b925060208401356127d3816125a2565b929592945050506040919091013590565b803563ffffffff811681146127f857600080fd5b919050565b6000806040838503121561281057600080fd5b6125d5836127e4565b803561ffff811681146127f857600080fd5b6000806040838503121561283e57600080fd5b612847836127e4565b915061285560208401612819565b90509250929050565b60006020828403121561287057600080fd5b8135611134816125a2565b60008060008060a0858703121561289157600080fd5b61289b86866125e3565b935060608501356001600160401b038111156128b657600080fd5b6128c2878288016125fb565b90945092505060808501356128d6816125a2565b939692955090935050565b80151581146112af57600080fd5b6000806040838503121561290257600080fd5b823561290d816125a2565b9150602083013561291d816128e1565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561296057612960612928565b60405290565b604051606081016001600160401b038111828210171561296057612960612928565b604051601f8201601f191681016001600160401b03811182821017156129b0576129b0612928565b604052919050565b60006001600160401b038211156129d1576129d1612928565b50601f01601f191660200190565b600082601f8301126129f057600080fd5b8135612a036129fe826129b8565b612988565b818152846020838601011115612a1857600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a4b57600080fd5b8435612a56816125a2565b93506020850135612a66816125a2565b92506040850135915060608501356001600160401b03811115612a8857600080fd5b612a94878288016129df565b91505092959194509250565b60008083601f840112612ab257600080fd5b5081356001600160401b03811115612ac957600080fd5b6020830191508360208260051b850101111561263c57600080fd5b60008060208385031215612af757600080fd5b82356001600160401b03811115612b0d57600080fd5b612b1985828601612aa0565b90969095509350505050565b600060208284031215612b3757600080fd5b611134826127e4565b60008060008060608587031215612b5657600080fd5b612b5f856127e4565b9350612b6d60208601612819565b925060408501356001600160401b03811115612b8857600080fd5b612b94878288016125fb565b95989497509550505050565b60008060408385031215612bb357600080fd5b82356001600160401b03811115612bc957600080fd5b612bd5858286016126e2565b925050602083013561291d816128e1565b81518152602080830151908201526040810161083b565b60008060408385031215612c1057600080fd5b8235612c1b816125a2565b9150602083013561291d816125a2565b600060608284031215612c3d57600080fd5b61113483836125e3565b600181811c90821680612c5b57607f821691505b6020821081036125f557634e487b7160e01b600052602260045260246000fd5b600060408284031215612c8d57600080fd5b612c9561293e565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cc757612cc7612928565b8360051b6020612cd8818301612988565b868152918501918181019036841115612cf057600080fd5b865b84811015612d7657803586811115612d0a5760008081fd5b88016060368290031215612d1e5760008081fd5b612d26612966565b612d2f826127e4565b8152612d3c868301612819565b8682015260408083013589811115612d545760008081fd5b612d60368286016129df565b9183019190915250845250918301918301612cf2565b50979650505050505050565b60008085851115612d9257600080fd5b83861115612d9f57600080fd5b5050820193919092039150565b60008451612dbe818460208901612526565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610cd9602083018486612dd4565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e3e57600080fd5b9190910192915050565b6000808335601e19843603018112612e5f57600080fd5b8301803591506001600160401b03821115612e7957600080fd5b60200191503681900382131561263c57600080fd5b6001600160401b03811681146112af57600080fd5b63ffffffff612eb1896127e4565b1681526020880135602082015260006040890135612ece81612e8e565b6001600160401b03811660408401525087606083015260e06080830152612ef960e083018789612dd4565b6001600160a01b03861660a084015282810360c0840152612f1b818587612dd4565b9a9950505050505050505050565b600060208284031215612f3b57600080fd5b81516001600160401b03811115612f5157600080fd5b8201601f81018413612f6257600080fd5b8051612f706129fe826129b8565b818152856020838501011115612f8557600080fd5b6110bd826020830160208601612526565b60008351612fa8818460208801612526565b835190830190612fbc818360208801612526565b01949350505050565b600060208284031215612fd757600080fd5b813561113481612e8e565b60018060a01b038516815283602082015261ffff8316604082015260806060820152600061241d608083018461254a565b604081526000613026604083018561254a565b82810360208401526110bd818561254a565b60006020828403121561304a57600080fd5b8151611134816128e1565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261308b60e084018261254a565b90506060850151603f198483030160a08501526130a8828261254a565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156130e057600080fd5b6130e861293e565b9050815181526020820151602082015292915050565b60006080828403121561311057600080fd5b613118612966565b82518152602083015161312a81612e8e565b602082015261313c84604085016130ce565b60408201529392505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061241d9083018461254a565b60006020828403121561318d57600080fd5b8151611134816124f3565b601f821115610b5e576000816000526020600020601f850160051c810160208610156131c15750805b601f850160051c820191505b818110156131e0578281556001016131cd565b505050505050565b81516001600160401b0381111561320157613201612928565b6132158161320f8454612c47565b84613198565b602080601f83116001811461324a57600084156132325750858301515b600019600386901b1c1916600185901b1785556131e0565b600085815260208120601f198616915b828110156132795788860151825594840194600190910190840161325a565b50858210156132975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561332457888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133108186018361254a565b9689019694505050908601906001016132d0565b509098975050505050505050565b60006040828403121561334457600080fd5b61113483836130ce565b8035602083101561083b57600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133a781600c850160208701612526565b91909101600c01949350505050565b848152836020820152826040820152600082516133da816060850160208701612526565b9190910160600195945050505050565b6000602082840312156133fc57600080fd5b8151611134816125a2565b60008251612e3e81846020870161252656fea2646970667358221220a5cab9b7a86e6c2a579014b67c58bb1f440ee40e66fb506c0dab889c19925efb64736f6c63430008160033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x38FF CODESIZE SUB DUP1 PUSH3 0x38FF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x277 JUMP JUMPDEST DUP4 DUP4 DUP4 DUP4 DUP4 DUP4 DUP4 DUP4 DUP2 DUP2 DUP2 DUP2 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x70 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x7B DUP2 PUSH3 0x142 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x80 MSTORE DUP2 AND PUSH3 0xAA JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D618D81 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x40 MLOAD PUSH4 0xCA5EB5E1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xCA5EB5E1 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x107 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP2 PUSH1 0x5 SWAP1 DUP2 PUSH3 0x122 SWAP2 SWAP1 PUSH3 0x397 JUMP JUMPDEST POP PUSH1 0x6 PUSH3 0x131 DUP3 DUP3 PUSH3 0x397 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP PUSH3 0x463 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x1BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x1D7 JUMPI PUSH3 0x1D7 PUSH3 0x192 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x202 JUMPI PUSH3 0x202 PUSH3 0x192 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x220 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x244 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x225 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x2A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2B4 DUP9 DUP4 DUP10 ADD PUSH3 0x1A8 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x2DA DUP8 DUP3 DUP9 ADD PUSH3 0x1A8 JUMP JUMPDEST SWAP4 POP POP PUSH3 0x2EB PUSH1 0x40 DUP7 ADD PUSH3 0x25A JUMP JUMPDEST SWAP2 POP PUSH3 0x2FB PUSH1 0x60 DUP7 ADD PUSH3 0x25A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x31B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x33C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x392 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x36D JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x38E JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x379 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x3B3 JUMPI PUSH3 0x3B3 PUSH3 0x192 JUMP JUMPDEST PUSH3 0x3CB DUP2 PUSH3 0x3C4 DUP5 SLOAD PUSH3 0x306 JUMP JUMPDEST DUP5 PUSH3 0x342 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x403 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3EA JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x38E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x434 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x413 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x453 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x344F PUSH3 0x4B0 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x48B ADD MSTORE DUP2 DUP2 PUSH2 0x90D ADD MSTORE DUP2 DUP2 PUSH2 0x1162 ADD MSTORE DUP2 DUP2 PUSH2 0x13F7 ADD MSTORE DUP2 DUP2 PUSH2 0x167A ADD MSTORE DUP2 DUP2 PUSH2 0x1C27 ADD MSTORE DUP2 DUP2 PUSH2 0x2006 ADD MSTORE PUSH2 0x20BF ADD MSTORE PUSH2 0x344F PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x25C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x82413EAC GT PUSH2 0x144 JUMPI DUP1 PUSH4 0xBC70B354 GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xD045A0DC GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xD045A0DC EQ PUSH2 0x75C JUMPI DUP1 PUSH4 0xD4243885 EQ PUSH2 0x76F JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x78F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7AF JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x40F JUMPI DUP1 PUSH4 0xFF7BD03D EQ PUSH2 0x7CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBC70B354 EQ PUSH2 0x6BC JUMPI DUP1 PUSH4 0xBD815DB0 EQ PUSH2 0x6DC JUMPI DUP1 PUSH4 0xC6414E7B EQ PUSH2 0x6EF JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x71C JUMPI DUP1 PUSH4 0xCA5EB5E1 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA72F5DD8 GT PUSH2 0x108 JUMPI DUP1 PUSH4 0xA72F5DD8 EQ PUSH2 0x5F2 JUMPI DUP1 PUSH4 0xB21A33E4 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xB731EA0A EQ PUSH2 0x62F JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0xB98BD070 EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0xBB0B6A53 EQ PUSH2 0x68F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x82413EAC EQ PUSH2 0x56B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0x9F68B964 EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x5D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3400288B GT PUSH2 0x1DD JUMPI DUP1 PUSH4 0x5E280F11 GT PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x5E280F11 EQ PUSH2 0x479 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x4AD JUMPI DUP1 PUSH4 0x6FC1B31E EQ PUSH2 0x4CD JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4ED JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x51B JUMPI DUP1 PUSH4 0x7D25A05E EQ PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3400288B EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0x52AE2879 EQ PUSH2 0x40F JUMPI DUP1 PUSH4 0x5535D461 EQ PUSH2 0x422 JUMPI DUP1 PUSH4 0x5A0DFE4D EQ PUSH2 0x442 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13137D65 GT PUSH2 0x224 JUMPI DUP1 PUSH4 0x13137D65 EQ PUSH2 0x332 JUMPI DUP1 PUSH4 0x17442B70 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x1F5E1334 EQ PUSH2 0x367 JUMPI DUP1 PUSH4 0x21EB730B EQ PUSH2 0x38F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x261 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x296 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0x111ECDAD EQ PUSH2 0x312 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x281 PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x2509 JUMP JUMPDEST PUSH2 0x7EF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AB PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x2576 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D8 PUSH2 0x2D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x28D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x30B CALLDATASIZE PUSH1 0x4 PUSH2 0x25B7 JUMP JUMPDEST PUSH2 0x8FC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x2D8 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x310 PUSH2 0x340 CALLDATASIZE PUSH1 0x4 PUSH2 0x2643 JUMP JUMPDEST PUSH2 0x90B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP3 ADD MSTORE ADD PUSH2 0x28D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x28D JUMP JUMPDEST PUSH2 0x3A2 PUSH2 0x39D CALLDATASIZE PUSH1 0x4 PUSH2 0x26F4 JUMP JUMPDEST PUSH2 0x9CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x2761 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x3CA CALLDATASIZE PUSH1 0x4 PUSH2 0x27A3 JUMP JUMPDEST PUSH2 0xAA6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x27FD JUMP JUMPDEST PUSH2 0xB31 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x40A CALLDATASIZE PUSH1 0x4 PUSH2 0x27A3 JUMP JUMPDEST PUSH2 0xB43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP ADDRESS PUSH2 0x2D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AB PUSH2 0x43D CALLDATASIZE PUSH1 0x4 PUSH2 0x282B JUMP JUMPDEST PUSH2 0xB63 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x281 PUSH2 0x45D CALLDATASIZE PUSH1 0x4 PUSH2 0x27FD JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D8 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D8 PUSH2 0x4C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0xC08 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x4E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x285E JUMP JUMPDEST PUSH2 0xC13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50D PUSH2 0x508 CALLDATASIZE PUSH1 0x4 PUSH2 0x285E JUMP JUMPDEST PUSH2 0xC70 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x28D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0xCB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x553 PUSH2 0x54B CALLDATASIZE PUSH1 0x4 PUSH2 0x27FD JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x28D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x577 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x281 PUSH2 0x586 CALLDATASIZE PUSH1 0x4 PUSH2 0x287B JUMP JUMPDEST PUSH2 0xCCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AB PUSH2 0xCE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x281 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x5ED CALLDATASIZE PUSH1 0x4 PUSH2 0x28EF JUMP JUMPDEST PUSH2 0xCF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH4 0x11F0C6D3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP3 ADD MSTORE ADD PUSH2 0x28D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH1 0x2 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x2D8 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x66A CALLDATASIZE PUSH1 0x4 PUSH2 0x2A35 JUMP JUMPDEST PUSH2 0xCFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x68A CALLDATASIZE PUSH1 0x4 PUSH2 0x2AE4 JUMP JUMPDEST PUSH2 0xD12 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50D PUSH2 0x6AA CALLDATASIZE PUSH1 0x4 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AB PUSH2 0x6D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B40 JUMP JUMPDEST PUSH2 0xD2C JUMP JUMPDEST PUSH2 0x310 PUSH2 0x6EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2AE4 JUMP JUMPDEST PUSH2 0xED4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70F PUSH2 0x70A CALLDATASIZE PUSH1 0x4 PUSH2 0x2BA0 JUMP JUMPDEST PUSH2 0x105E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x2BE6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AB PUSH2 0x737 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0x10C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x748 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x757 CALLDATASIZE PUSH1 0x4 PUSH2 0x285E JUMP JUMPDEST PUSH2 0x113B JUMP JUMPDEST PUSH2 0x310 PUSH2 0x76A CALLDATASIZE PUSH1 0x4 PUSH2 0x2643 JUMP JUMPDEST PUSH2 0x11C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x78A CALLDATASIZE PUSH1 0x4 PUSH2 0x285E JUMP JUMPDEST PUSH2 0x11F0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x281 PUSH2 0x7AA CALLDATASIZE PUSH1 0x4 PUSH2 0x2BFD JUMP JUMPDEST PUSH2 0x1246 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x7CA CALLDATASIZE PUSH1 0x4 PUSH2 0x285E JUMP JUMPDEST PUSH2 0x1274 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x281 PUSH2 0x7EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2C2B JUMP JUMPDEST PUSH2 0x12B2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x820 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x83B JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD PUSH2 0x850 SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x87C SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8C9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x89E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8C9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8AC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8DE DUP3 PUSH2 0x12E8 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x83B JUMP JUMPDEST PUSH2 0x907 DUP3 DUP3 CALLER PUSH2 0x1321 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x95B JUMPI PUSH1 0x40 MLOAD PUSH4 0x91AC5E4F PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP8 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x975 SWAP1 PUSH2 0x970 SWAP1 DUP11 PUSH2 0x2B25 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST EQ PUSH2 0x9B3 JUMPI PUSH2 0x987 PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x309AFAF3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x952 JUMP JUMPDEST PUSH2 0x9C2 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x136A JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9D3 PUSH2 0x24AC JUMP JUMPDEST PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4EC46B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA10 CALLER PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0xA0B PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B25 JUMP JUMPDEST PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA1C DUP7 PUSH2 0x1529 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0xA48 PUSH2 0xA31 PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B25 JUMP JUMPDEST DUP4 DUP4 PUSH2 0xA42 CALLDATASIZE DUP11 SWAP1 SUB DUP11 ADD DUP11 PUSH2 0x2C7B JUMP JUMPDEST DUP9 PUSH2 0x1647 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP4 POP CALLER SWAP1 PUSH32 0x986156872B2EE0022B9585231DBBFDE457F87F8A16B6C45E1A81C54C4AD8351F PUSH2 0xA7D PUSH1 0x20 DUP11 ADD DUP11 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE DUP1 DUP12 ADD CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xAD0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xADD DUP4 DUP4 CALLER PUSH2 0x1752 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB2B JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x952 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xB39 PUSH2 0x184B JUMP JUMPDEST PUSH2 0x907 DUP3 DUP3 PUSH2 0x1878 JUMP JUMPDEST PUSH2 0xB5E DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xCFB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xB87 SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xBB3 SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC00 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBD5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC00 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBE3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x83B DUP3 PUSH2 0x12E8 JUMP JUMPDEST PUSH2 0xC1B PUSH2 0x184B JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xF0BE4F1E87349231D80C36B33F9E8639658EEAF474014DEE15A3E6A4D4414197 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCC0 PUSH2 0x184B JUMP JUMPDEST PUSH2 0xCCA PUSH1 0x0 PUSH2 0x18CD JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ADDRESS EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 DUP1 SLOAD PUSH2 0x850 SWAP1 PUSH2 0x2C47 JUMP JUMPDEST PUSH2 0x907 CALLER DUP4 DUP4 PUSH2 0x191D JUMP JUMPDEST PUSH2 0xD06 DUP5 DUP5 DUP5 PUSH2 0xAA6 JUMP JUMPDEST PUSH2 0xB2B DUP5 DUP5 DUP5 DUP5 PUSH2 0x19BC JUMP JUMPDEST PUSH2 0xD1A PUSH2 0x184B JUMP JUMPDEST PUSH2 0x907 PUSH2 0xD27 DUP3 DUP5 PUSH2 0x2CAD JUMP JUMPDEST PUSH2 0x1ADE JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH2 0xFFFF DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0xD60 SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD8C SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDD9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDAE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDD9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xDBC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xE29 JUMPI DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP5 POP PUSH2 0xCD9 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SWAP1 SUB PUSH2 0xE39 JUMPI SWAP1 POP PUSH2 0xCD9 JUMP JUMPDEST PUSH1 0x2 DUP4 LT PUSH2 0xEB7 JUMPI PUSH2 0xE80 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1BE5 SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0xE8E DUP5 PUSH1 0x2 DUP2 DUP9 PUSH2 0x2D82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xEA0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP PUSH2 0xCD9 JUMP JUMPDEST DUP4 DUP4 PUSH1 0x40 MLOAD PUSH4 0x9A6D49CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x952 SWAP3 SWAP2 SWAP1 PUSH2 0x2DFD JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xFDD JUMPI CALLDATASIZE DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0xEF2 JUMPI PUSH2 0xEF2 PUSH2 0x2E11 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xF04 SWAP2 SWAP1 PUSH2 0x2E27 JUMP JUMPDEST SWAP1 POP PUSH2 0xF37 PUSH2 0xF16 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST PUSH2 0xF41 JUMPI POP PUSH2 0xFD5 JUMP JUMPDEST ADDRESS PUSH4 0xD045A0DC PUSH1 0xC0 DUP4 ADD CALLDATALOAD DUP4 PUSH1 0xA0 DUP2 ADD CALLDATALOAD PUSH2 0xF60 PUSH2 0x100 DUP4 ADD DUP4 PUSH2 0x2E48 JUMP JUMPDEST PUSH2 0xF71 PUSH2 0x100 DUP10 ADD PUSH1 0xE0 DUP11 ADD PUSH2 0x285E JUMP JUMPDEST PUSH2 0xF7F PUSH2 0x120 DUP11 ADD DUP11 PUSH2 0x2E48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP10 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFA1 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2EA3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFCE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0xED7 JUMP JUMPDEST POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8E9E7099 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x101C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1044 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8351EEA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x952 SWAP2 SWAP1 PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1094 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4EC46B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10A0 DUP6 PUSH2 0x1529 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x10BD PUSH2 0x10B5 PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x2B25 JUMP JUMPDEST DUP4 DUP4 DUP8 PUSH2 0x1C11 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x10D1 DUP3 PUSH2 0x12E8 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x10E9 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1134 JUMP JUMPDEST DUP1 PUSH2 0x1113 DUP5 PUSH2 0x1CE9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1124 SWAP3 SWAP2 SWAP1 PUSH2 0x2F96 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1143 PUSH2 0x184B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCA5EB5E1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xCA5EB5E1 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x11E1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x29A949D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9C2 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x9B3 JUMP JUMPDEST PUSH2 0x11F8 PUSH2 0x184B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xD48D879CEF83A1C0BDDA516F27B13DDB1B3F8BBAC1C9E1511BB2A659C2427760 SWAP1 PUSH1 0x20 ADD PUSH2 0xC65 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x127C PUSH2 0x184B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH2 0x12AF DUP2 PUSH2 0x18CD JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH2 0x12CA SWAP1 DUP7 PUSH2 0x2B25 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x83B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH2 0xB5E DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1D7B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x83B JUMPI PUSH1 0x40 MLOAD PUSH4 0xF6FF4FB7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x137C PUSH2 0x1379 DUP8 DUP8 PUSH2 0x1E81 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x138A DUP8 DUP8 PUSH2 0x1E99 JUMP JUMPDEST SWAP1 POP PUSH2 0x13A3 DUP3 DUP3 PUSH2 0x139E PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B25 JUMP JUMPDEST PUSH2 0x1EB6 JUMP JUMPDEST PUSH1 0x40 DUP7 GT ISZERO PUSH2 0x1467 JUMPI PUSH1 0x0 PUSH2 0x13DD PUSH2 0x13C1 PUSH1 0x60 DUP13 ADD PUSH1 0x40 DUP14 ADD PUSH2 0x2FC5 JUMP JUMPDEST PUSH2 0x13CE PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B25 JUMP JUMPDEST PUSH2 0x13D8 DUP12 DUP12 PUSH2 0x1EC0 JUMP JUMPDEST PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3E5AC809 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7CB59012 SWAP1 PUSH2 0x1433 SWAP1 DUP7 SWAP1 DUP14 SWAP1 PUSH1 0x0 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2FE2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x144D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1461 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP9 PUSH32 0x7883FA30EA56937810E36990B0BBB8D629D0CF59F68BAF8431FF657CEBE7EEF5 PUSH2 0x14A0 PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP7 SWAP1 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x14D2 DUP3 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1520 JUMPI DUP3 PUSH2 0x14F4 DUP4 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4342715B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x952 JUMP JUMPDEST PUSH2 0xB5E DUP3 PUSH2 0x1F3A JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 PUSH2 0x1582 PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x1548 PUSH1 0x80 DUP9 ADD DUP9 PUSH2 0x2E48 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1F75 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 SWAP4 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x1595 JUMPI PUSH1 0x1 PUSH2 0x1598 JUMP JUMPDEST PUSH1 0x2 JUMPDEST SWAP1 POP PUSH2 0x15B8 PUSH2 0x15AA PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x2B25 JUMP JUMPDEST DUP3 PUSH2 0x6D7 PUSH1 0x60 DUP10 ADD DUP10 PUSH2 0x2E48 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1640 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x43A78EB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x43A78EB SWAP2 PUSH2 0x15FD SWAP2 DUP9 SWAP2 DUP9 SWAP2 ADD PUSH2 0x3013 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x161A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x163E SWAP2 SWAP1 PUSH2 0x3038 JUMP JUMPDEST POP JUMPDEST POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH2 0x164F PUSH2 0x24AC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x165E DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1FDA JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1678 JUMPI PUSH2 0x1678 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2002 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2637A450 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP12 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16C8 DUP13 PUSH2 0x132E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP10 PUSH1 0x20 ADD MLOAD GT ISZERO ISZERO DUP2 MSTORE POP DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1704 SWAP3 SWAP2 SWAP1 PUSH2 0x3055 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1722 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1747 SWAP2 SWAP1 PUSH2 0x30FE JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x177F JUMPI PUSH2 0x177F DUP2 DUP5 DUP7 PUSH2 0x20E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x17BD JUMPI PUSH2 0x179C PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1D7B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x17EC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xCCA JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x238399D427B947898EDB290F5FF0F9109849B1C3BA196A42E35F00C50A54B98B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x194F JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0xB2B JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x19FE SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x3148 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1A39 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1A36 SWAP2 DUP2 ADD SWAP1 PUSH2 0x317B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1AA2 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1A67 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A6C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1A9A JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x11BA JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1BB5 JUMPI PUSH2 0x1B10 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1AFF JUMPI PUSH2 0x1AFF PUSH2 0x2E11 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH2 0x1BE5 JUMP JUMPDEST DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1B22 JUMPI PUSH2 0x1B22 PUSH2 0x2E11 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x3 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B44 JUMPI PUSH2 0x1B44 PUSH2 0x2E11 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B7E JUMPI PUSH2 0x1B7E PUSH2 0x2E11 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x1BAC SWAP2 SWAP1 PUSH2 0x31E8 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1AE1 JUMP JUMPDEST POP PUSH32 0xBE4864A8E820971C0247F5992E2DA559595F7BF076A21CB5928D443D2A13B674 DUP2 PUSH1 0x40 MLOAD PUSH2 0xC65 SWAP2 SWAP1 PUSH2 0x32A7 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD MLOAD PUSH2 0xFFFF DUP2 AND PUSH1 0x3 EQ PUSH2 0x907 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH4 0x9A6D49CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x952 SWAP2 SWAP1 PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDDC28C58 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C74 DUP10 PUSH2 0x132E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 ISZERO ISZERO DUP2 MSTORE POP ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CA9 SWAP3 SWAP2 SWAP1 PUSH2 0x3055 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10BD SWAP2 SWAP1 PUSH2 0x3332 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1CF6 DUP4 PUSH2 0x2148 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1D15 JUMPI PUSH2 0x1D15 PUSH2 0x2928 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1D3F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x1D49 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH2 0x1D8F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x1E51 JUMPI PUSH1 0x0 PUSH2 0x1D9F DUP5 PUSH2 0x12E8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1DCB JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1DDE JUMPI POP PUSH2 0x1DDC DUP2 DUP5 PUSH2 0x1246 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1E07 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1E4F JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E90 PUSH1 0x20 DUP3 DUP5 DUP7 PUSH2 0x2D82 JUMP JUMPDEST PUSH2 0x1134 SWAP2 PUSH2 0x334E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA9 PUSH1 0x40 PUSH1 0x20 DUP5 DUP7 PUSH2 0x2D82 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x1134 SWAP2 SWAP1 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0xB5E DUP4 DUP4 PUSH2 0x2220 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1ECF DUP3 PUSH1 0x40 DUP2 DUP7 PUSH2 0x2D82 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1F22 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x336C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F49 PUSH1 0x0 DUP4 PUSH1 0x0 PUSH2 0x1752 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x907 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 SWAP1 ISZERO ISZERO DUP1 PUSH2 0x1FA9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1FD0 JUMP JUMPDEST DUP5 DUP5 CALLER DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FC0 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLVALUE EQ PUSH2 0x1FFE JUMPI PUSH1 0x40 MLOAD PUSH4 0x4FB8209 PUSH1 0xE5 SHL DUP2 MSTORE CALLVALUE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE4FE1D94 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2062 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2086 SWAP2 SWAP1 PUSH2 0x33EA JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20AF JUMPI PUSH1 0x40 MLOAD PUSH4 0x29B99A95 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x907 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND CALLER PUSH32 0x0 DUP6 PUSH2 0x2285 JUMP JUMPDEST PUSH2 0x20EF DUP4 DUP4 DUP4 PUSH2 0x22DF JUMP JUMPDEST PUSH2 0xB5E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x211D JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x2187 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x21B3 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x21D1 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x21E9 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x21FD JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x220F JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x83B JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x224A JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2258 DUP4 DUP4 PUSH1 0x0 PUSH2 0x1752 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0xB5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0xB2B SWAP1 DUP6 SWAP1 PUSH2 0x2342 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xCD9 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x2319 JUMPI POP PUSH2 0x2319 DUP5 DUP5 PUSH2 0x1246 JUMP JUMPDEST DUP1 PUSH2 0xCD9 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2357 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP4 PUSH2 0x23A5 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO DUP1 ISZERO PUSH2 0x237C JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x237A SWAP2 SWAP1 PUSH2 0x3038 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1134 DUP4 DUP4 PUSH1 0x0 DUP5 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0x23CB SWAP2 SWAP1 PUSH2 0x3407 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2408 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x240D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x241D DUP7 DUP4 DUP4 PUSH2 0x2427 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x243C JUMPI PUSH2 0x2437 DUP3 PUSH2 0x2483 JUMP JUMPDEST PUSH2 0x1134 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x2453 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x247C JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST POP DUP1 PUSH2 0x1134 JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x2493 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24EE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x12AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x251B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1134 DUP2 PUSH2 0x24F3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2541 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2529 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2562 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2526 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1134 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x254A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x259B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x12AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x25D5 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x260D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x263C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x265E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2668 DUP10 DUP10 PUSH2 0x25E3 JUMP JUMPDEST SWAP7 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x268B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2697 DUP12 DUP4 DUP13 ADD PUSH2 0x25FB JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x26AC DUP3 PUSH2 0x25A2 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26CF DUP11 DUP3 DUP12 ADD PUSH2 0x25FB JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP6 SUB PUSH1 0x80 DUP2 SLT ISZERO PUSH2 0x270A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2720 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x272C DUP8 DUP3 DUP9 ADD PUSH2 0x26E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x2741 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 DUP5 ADD SWAP2 POP PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x2756 DUP2 PUSH2 0x25A2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x279C PUSH1 0x40 DUP5 ADD DUP3 DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x27B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x27C3 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x27D3 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x27F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2810 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25D5 DUP4 PUSH2 0x27E4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x27F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x283E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2847 DUP4 PUSH2 0x27E4 JUMP JUMPDEST SWAP2 POP PUSH2 0x2855 PUSH1 0x20 DUP5 ADD PUSH2 0x2819 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1134 DUP2 PUSH2 0x25A2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x289B DUP7 DUP7 PUSH2 0x25E3 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x28B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28C2 DUP8 DUP3 DUP9 ADD PUSH2 0x25FB JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x80 DUP6 ADD CALLDATALOAD PUSH2 0x28D6 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x12AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x290D DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x291D DUP2 PUSH2 0x28E1 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2960 JUMPI PUSH2 0x2960 PUSH2 0x2928 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2960 JUMPI PUSH2 0x2960 PUSH2 0x2928 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x29B0 JUMPI PUSH2 0x29B0 PUSH2 0x2928 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x29D1 JUMPI PUSH2 0x29D1 PUSH2 0x2928 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x29F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A03 PUSH2 0x29FE DUP3 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x2988 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2A18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2A56 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2A66 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A94 DUP8 DUP3 DUP9 ADD PUSH2 0x29DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2AB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2AC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x263C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B19 DUP6 DUP3 DUP7 ADD PUSH2 0x2AA0 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1134 DUP3 PUSH2 0x27E4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B5F DUP6 PUSH2 0x27E4 JUMP JUMPDEST SWAP4 POP PUSH2 0x2B6D PUSH1 0x20 DUP7 ADD PUSH2 0x2819 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B94 DUP8 DUP3 DUP9 ADD PUSH2 0x25FB JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2BC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2BD5 DUP6 DUP3 DUP7 ADD PUSH2 0x26E2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x291D DUP2 PUSH2 0x28E1 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0x83B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2C1B DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x291D DUP2 PUSH2 0x25A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1134 DUP4 DUP4 PUSH2 0x25E3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2C5B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x25F5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C95 PUSH2 0x293E JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP5 GT ISZERO PUSH2 0x2CC7 JUMPI PUSH2 0x2CC7 PUSH2 0x2928 JUMP JUMPDEST DUP4 PUSH1 0x5 SHL PUSH1 0x20 PUSH2 0x2CD8 DUP2 DUP4 ADD PUSH2 0x2988 JUMP JUMPDEST DUP7 DUP2 MSTORE SWAP2 DUP6 ADD SWAP2 DUP2 DUP2 ADD SWAP1 CALLDATASIZE DUP5 GT ISZERO PUSH2 0x2CF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2D76 JUMPI DUP1 CALLDATALOAD DUP7 DUP2 GT ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP9 ADD PUSH1 0x60 CALLDATASIZE DUP3 SWAP1 SUB SLT ISZERO PUSH2 0x2D1E JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2D26 PUSH2 0x2966 JUMP JUMPDEST PUSH2 0x2D2F DUP3 PUSH2 0x27E4 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x2D3C DUP7 DUP4 ADD PUSH2 0x2819 JUMP JUMPDEST DUP7 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD DUP10 DUP2 GT ISZERO PUSH2 0x2D54 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2D60 CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x29DF JUMP JUMPDEST SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2CF2 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x2D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x2D9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP5 MLOAD PUSH2 0x2DBE DUP2 DUP5 PUSH1 0x20 DUP10 ADD PUSH2 0x2526 JUMP JUMPDEST DUP3 ADD DUP4 DUP6 DUP3 CALLDATACOPY PUSH1 0x0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xCD9 PUSH1 0x20 DUP4 ADD DUP5 DUP7 PUSH2 0x2DD4 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH2 0x13E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2E3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2E5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2E79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x263C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x12AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF PUSH2 0x2EB1 DUP10 PUSH2 0x27E4 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH2 0x2ECE DUP2 PUSH2 0x2E8E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH1 0x40 DUP5 ADD MSTORE POP DUP8 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0xE0 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2EF9 PUSH1 0xE0 DUP4 ADD DUP8 DUP10 PUSH2 0x2DD4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0xA0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xC0 DUP5 ADD MSTORE PUSH2 0x2F1B DUP2 DUP6 DUP8 PUSH2 0x2DD4 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2F62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2F70 PUSH2 0x29FE DUP3 PUSH2 0x29B8 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2F85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10BD DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2526 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x2FA8 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x2526 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x2FBC DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x2526 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1134 DUP2 PUSH2 0x2E8E JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xFFFF DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x241D PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x254A JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3026 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x254A JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x10BD DUP2 DUP6 PUSH2 0x254A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x304A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1134 DUP2 PUSH2 0x28E1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP4 MLOAD AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0xA0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x308B PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x254A JUMP JUMPDEST SWAP1 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x30A8 DUP3 DUP3 PUSH2 0x254A JUMP JUMPDEST PUSH1 0x80 SWAP7 SWAP1 SWAP7 ADD MLOAD ISZERO ISZERO PUSH1 0xC0 DUP6 ADD MSTORE POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30E8 PUSH2 0x293E JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3118 PUSH2 0x2966 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x312A DUP2 PUSH2 0x2E8E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x313C DUP5 PUSH1 0x40 DUP6 ADD PUSH2 0x30CE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x241D SWAP1 DUP4 ADD DUP5 PUSH2 0x254A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x318D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1134 DUP2 PUSH2 0x24F3 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xB5E JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x31C1 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x31E0 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x31CD JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3201 JUMPI PUSH2 0x3201 PUSH2 0x2928 JUMP JUMPDEST PUSH2 0x3215 DUP2 PUSH2 0x320F DUP5 SLOAD PUSH2 0x2C47 JUMP JUMPDEST DUP5 PUSH2 0x3198 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x324A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3232 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x31E0 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3279 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x325A JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x3297 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP2 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 SWAP3 POP PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD DUP5 DUP9 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3324 JUMPI DUP9 DUP4 SUB PUSH1 0x3F NOT ADD DUP6 MSTORE DUP2 MLOAD DUP1 MLOAD PUSH4 0xFFFFFFFF AND DUP5 MSTORE DUP8 DUP2 ADD MLOAD PUSH2 0xFFFF AND DUP9 DUP6 ADD MSTORE DUP7 ADD MLOAD PUSH1 0x60 DUP8 DUP6 ADD DUP2 SWAP1 MSTORE PUSH2 0x3310 DUP2 DUP7 ADD DUP4 PUSH2 0x254A JUMP JUMPDEST SWAP7 DUP10 ADD SWAP7 SWAP5 POP POP POP SWAP1 DUP7 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x32D0 JUMP JUMPDEST POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1134 DUP4 DUP4 PUSH2 0x30CE JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x20 DUP4 LT ISZERO PUSH2 0x83B JUMPI PUSH1 0x0 NOT PUSH1 0x20 DUP5 SWAP1 SUB PUSH1 0x3 SHL SHL AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP5 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x8 DUP3 ADD MSTORE DUP2 MLOAD PUSH1 0x0 SWAP1 PUSH2 0x33A7 DUP2 PUSH1 0xC DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2526 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0xC ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x33DA DUP2 PUSH1 0x60 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2526 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0x60 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1134 DUP2 PUSH2 0x25A2 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2E3E DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2526 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xCA 0xB9 0xB7 0xA8 PUSH15 0x6C2A579014B67C58BB1F440EE40E66 0xFB POP PUSH13 0xDAB889C19925EFB64736F6C63 NUMBER STOP ADDMOD AND STOP CALLER ","sourceMap":"147:222:50:-:0;;;183:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;325:5;332:7;341:11;354:9;325:5;332:7;341:11;354:9;341:11;354:9;341:11;354:9;;-1:-1:-1;;;;;1273:26:33;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:33;;1350:1;1322:31;;;2061:51:53;2034:18;;1322:31:33;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:2;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:2;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:2;;-1:-1:-1;;;;;2079:32:53;;;1163:31:2;;;2061:51:53;1163:20:2;;;;;;2034:18:53;;1163:31:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;965:83:1;;1952:102:30;;1455:5:38;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:38;:17;1480:7;1470;:17;:::i;:::-;;1381:113;;673:195:29;;;;183:184:50;;;;147:222;;2912:187:33;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:33;;;-1:-1:-1;;;;;;3020:17:33;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:53:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:53;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:53;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:177::-;1074:13;;-1:-1:-1;;;;;1116:31:53;;1106:42;;1096:70;;1162:1;1159;1152:12;1096:70;995:177;;;:::o;1177:733::-;1294:6;1302;1310;1318;1371:3;1359:9;1350:7;1346:23;1342:33;1339:53;;;1388:1;1385;1378:12;1339:53;1415:16;;-1:-1:-1;;;;;1480:14:53;;;1477:34;;;1507:1;1504;1497:12;1477:34;1530:61;1583:7;1574:6;1563:9;1559:22;1530:61;:::i;:::-;1520:71;;1637:2;1626:9;1622:18;1616:25;1600:41;;1666:2;1656:8;1653:16;1650:36;;;1682:1;1679;1672:12;1650:36;;1705:63;1760:7;1749:8;1738:9;1734:24;1705:63;:::i;:::-;1695:73;;;1787:49;1832:2;1821:9;1817:18;1787:49;:::i;:::-;1777:59;;1855:49;1900:2;1889:9;1885:18;1855:49;:::i;:::-;1845:59;;1177:733;;;;;;;:::o;2123:380::-;2202:1;2198:12;;;;2245;;;2266:61;;2320:4;2312:6;2308:17;2298:27;;2266:61;2373:2;2365:6;2362:14;2342:18;2339:38;2336:161;;2419:10;2414:3;2410:20;2407:1;2400:31;2454:4;2451:1;2444:15;2482:4;2479:1;2472:15;2336:161;;2123:380;;;:::o;2634:543::-;2736:2;2731:3;2728:11;2725:446;;;2772:1;2796:5;2793:1;2786:16;2840:4;2837:1;2827:18;2910:2;2898:10;2894:19;2891:1;2887:27;2881:4;2877:38;2946:4;2934:10;2931:20;2928:47;;;-1:-1:-1;2969:4:53;2928:47;3024:2;3019:3;3015:12;3012:1;3008:20;3002:4;2998:31;2988:41;;3079:82;3097:2;3090:5;3087:13;3079:82;;;3142:17;;;3123:1;3112:13;3079:82;;;3083:3;;;2725:446;2634:543;;;:::o;3353:1345::-;3473:10;;-1:-1:-1;;;;;3495:30:53;;3492:56;;;3528:18;;:::i;:::-;3557:97;3647:6;3607:38;3639:4;3633:11;3607:38;:::i;:::-;3601:4;3557:97;:::i;:::-;3709:4;;3766:2;3755:14;;3783:1;3778:663;;;;4485:1;4502:6;4499:89;;;-1:-1:-1;4554:19:53;;;4548:26;4499:89;-1:-1:-1;;3310:1:53;3306:11;;;3302:24;3298:29;3288:40;3334:1;3330:11;;;3285:57;4601:81;;3748:944;;3778:663;2581:1;2574:14;;;2618:4;2605:18;;-1:-1:-1;;3814:20:53;;;3932:236;3946:7;3943:1;3940:14;3932:236;;;4035:19;;;4029:26;4014:42;;4127:27;;;;4095:1;4083:14;;;;3962:19;;3932:236;;;3936:3;4196:6;4187:7;4184:19;4181:201;;;4257:19;;;4251:26;-1:-1:-1;;4340:1:53;4336:14;;;4352:3;4332:24;4328:37;4324:42;4309:58;4294:74;;4181:201;-1:-1:-1;;;;;4428:1:53;4412:14;;;4408:22;4395:36;;-1:-1:-1;3353:1345:53:o;:::-;147:222:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@SEND_4333":{"entryPoint":null,"id":4333,"parameterSlots":0,"returnSlots":0},"@SEND_AND_COMPOSE_4336":{"entryPoint":null,"id":4336,"parameterSlots":0,"returnSlots":0},"@_approve_6455":{"entryPoint":4897,"id":6455,"parameterSlots":3,"returnSlots":0},"@_approve_6521":{"entryPoint":7547,"id":6521,"parameterSlots":4,"returnSlots":0},"@_assertOptionsType3_1297":{"entryPoint":7141,"id":1297,"parameterSlots":1,"returnSlots":0},"@_baseURI_5848":{"entryPoint":null,"id":5848,"parameterSlots":0,"returnSlots":1},"@_buildMsgAndOptions_4539":{"entryPoint":5417,"id":4539,"parameterSlots":1,"returnSlots":2},"@_burn_6333":{"entryPoint":7994,"id":6333,"parameterSlots":1,"returnSlots":0},"@_callOptionalReturn_5593":{"entryPoint":9026,"id":5593,"parameterSlots":2,"returnSlots":0},"@_checkAuthorized_6103":{"entryPoint":8420,"id":6103,"parameterSlots":3,"returnSlots":0},"@_checkOnERC721Received_6651":{"entryPoint":6588,"id":6651,"parameterSlots":4,"returnSlots":0},"@_checkOwner_5039":{"entryPoint":6219,"id":5039,"parameterSlots":0,"returnSlots":0},"@_credit_4282":{"entryPoint":7862,"id":4282,"parameterSlots":3,"returnSlots":0},"@_debit_4266":{"entryPoint":5321,"id":4266,"parameterSlots":3,"returnSlots":0},"@_getApproved_6030":{"entryPoint":null,"id":6030,"parameterSlots":1,"returnSlots":1},"@_getPeerOrRevert_634":{"entryPoint":4910,"id":634,"parameterSlots":1,"returnSlots":1},"@_isAuthorized_6066":{"entryPoint":8927,"id":6066,"parameterSlots":3,"returnSlots":1},"@_lzReceiveSimulate_4637":{"entryPoint":null,"id":4637,"parameterSlots":7,"returnSlots":0},"@_lzReceive_4612":{"entryPoint":4970,"id":4612,"parameterSlots":7,"returnSlots":0},"@_lzSend_930":{"entryPoint":5703,"id":930,"parameterSlots":5,"returnSlots":1},"@_mint_6259":{"entryPoint":8736,"id":6259,"parameterSlots":2,"returnSlots":0},"@_msgSender_7080":{"entryPoint":null,"id":7080,"parameterSlots":0,"returnSlots":1},"@_ownerOf_6017":{"entryPoint":null,"id":6017,"parameterSlots":1,"returnSlots":1},"@_payLzToken_987":{"entryPoint":8194,"id":987,"parameterSlots":1,"returnSlots":0},"@_payNative_951":{"entryPoint":8154,"id":951,"parameterSlots":1,"returnSlots":1},"@_quote_875":{"entryPoint":7185,"id":875,"parameterSlots":4,"returnSlots":1},"@_requireOwned_6587":{"entryPoint":4840,"id":6587,"parameterSlots":1,"returnSlots":1},"@_revert_7067":{"entryPoint":9347,"id":7067,"parameterSlots":1,"returnSlots":0},"@_setApprovalForAll_6558":{"entryPoint":6429,"id":6558,"parameterSlots":3,"returnSlots":0},"@_setEnforcedOptions_1220":{"entryPoint":6878,"id":1220,"parameterSlots":1,"returnSlots":0},"@_setPeer_606":{"entryPoint":6264,"id":606,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_5101":{"entryPoint":6349,"id":5101,"parameterSlots":1,"returnSlots":0},"@_update_6209":{"entryPoint":5970,"id":6209,"parameterSlots":3,"returnSlots":1},"@addressToBytes32_4931":{"entryPoint":null,"id":4931,"parameterSlots":1,"returnSlots":1},"@allowInitializePath_721":{"entryPoint":4786,"id":721,"parameterSlots":1,"returnSlots":1},"@approvalRequired_4236":{"entryPoint":null,"id":4236,"parameterSlots":0,"returnSlots":1},"@approve_5864":{"entryPoint":2300,"id":5864,"parameterSlots":2,"returnSlots":0},"@balanceOf_5772":{"entryPoint":3184,"id":5772,"parameterSlots":1,"returnSlots":1},"@bytes32ToAddress_4953":{"entryPoint":null,"id":4953,"parameterSlots":1,"returnSlots":1},"@combineOptions_1278":{"entryPoint":3372,"id":1278,"parameterSlots":4,"returnSlots":1},"@composeMsg_4909":{"entryPoint":7872,"id":4909,"parameterSlots":2,"returnSlots":1},"@encode_4060":{"entryPoint":7947,"id":4060,"parameterSlots":3,"returnSlots":1},"@encode_4838":{"entryPoint":8053,"id":4838,"parameterSlots":3,"returnSlots":2},"@endpoint_535":{"entryPoint":null,"id":535,"parameterSlots":0,"returnSlots":0},"@enforcedOptions_1155":{"entryPoint":2915,"id":1155,"parameterSlots":0,"returnSlots":0},"@functionCallWithValue_6935":{"entryPoint":null,"id":6935,"parameterSlots":3,"returnSlots":1},"@functionCall_6889":{"entryPoint":9125,"id":6889,"parameterSlots":2,"returnSlots":1},"@getApproved_5881":{"entryPoint":2259,"id":5881,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_5914":{"entryPoint":4678,"id":5914,"parameterSlots":2,"returnSlots":1},"@isComposeMsgSender_703":{"entryPoint":3276,"id":703,"parameterSlots":4,"returnSlots":1},"@isComposed_4894":{"entryPoint":null,"id":4894,"parameterSlots":2,"returnSlots":1},"@isPeer_4655":{"entryPoint":null,"id":4655,"parameterSlots":2,"returnSlots":1},"@log10_8263":{"entryPoint":8520,"id":8263,"parameterSlots":1,"returnSlots":1},"@lzReceiveAndRevert_1786":{"entryPoint":3796,"id":1786,"parameterSlots":2,"returnSlots":0},"@lzReceiveSimulate_1821":{"entryPoint":4545,"id":1821,"parameterSlots":7,"returnSlots":0},"@lzReceive_786":{"entryPoint":2315,"id":786,"parameterSlots":7,"returnSlots":0},"@msgInspector_4338":{"entryPoint":null,"id":4338,"parameterSlots":0,"returnSlots":0},"@name_5794":{"entryPoint":2113,"id":5794,"parameterSlots":0,"returnSlots":1},"@nextNonce_734":{"entryPoint":null,"id":734,"parameterSlots":2,"returnSlots":1},"@oAppVersion_519":{"entryPoint":null,"id":519,"parameterSlots":0,"returnSlots":2},"@oApp_1702":{"entryPoint":null,"id":1702,"parameterSlots":0,"returnSlots":1},"@onftVersion_4374":{"entryPoint":null,"id":4374,"parameterSlots":0,"returnSlots":2},"@ownerOf_5785":{"entryPoint":3080,"id":5785,"parameterSlots":1,"returnSlots":1},"@owner_5022":{"entryPoint":null,"id":5022,"parameterSlots":0,"returnSlots":1},"@peers_539":{"entryPoint":null,"id":539,"parameterSlots":0,"returnSlots":0},"@preCrime_1690":{"entryPoint":null,"id":1690,"parameterSlots":0,"returnSlots":0},"@quoteSend_4413":{"entryPoint":4190,"id":4413,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_5053":{"entryPoint":3256,"id":5053,"parameterSlots":0,"returnSlots":0},"@safeTransferFrom_5430":{"entryPoint":8837,"id":5430,"parameterSlots":4,"returnSlots":0},"@safeTransferFrom_5978":{"entryPoint":2883,"id":5978,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_6004":{"entryPoint":3323,"id":6004,"parameterSlots":4,"returnSlots":0},"@sendTo_4856":{"entryPoint":7809,"id":4856,"parameterSlots":2,"returnSlots":1},"@send_4478":{"entryPoint":2507,"id":4478,"parameterSlots":3,"returnSlots":1},"@setApprovalForAll_5897":{"entryPoint":3312,"id":5897,"parameterSlots":2,"returnSlots":0},"@setDelegate_649":{"entryPoint":4411,"id":649,"parameterSlots":1,"returnSlots":0},"@setEnforcedOptions_1170":{"entryPoint":3346,"id":1170,"parameterSlots":2,"returnSlots":0},"@setMsgInspector_4672":{"entryPoint":3091,"id":4672,"parameterSlots":1,"returnSlots":0},"@setPeer_586":{"entryPoint":2865,"id":586,"parameterSlots":2,"returnSlots":0},"@setPreCrime_1719":{"entryPoint":4592,"id":1719,"parameterSlots":1,"returnSlots":0},"@supportsInterface_5744":{"entryPoint":2031,"id":5744,"parameterSlots":1,"returnSlots":1},"@supportsInterface_7376":{"entryPoint":null,"id":7376,"parameterSlots":1,"returnSlots":1},"@symbol_5803":{"entryPoint":3297,"id":5803,"parameterSlots":0,"returnSlots":1},"@toString_7166":{"entryPoint":7401,"id":7166,"parameterSlots":1,"returnSlots":1},"@tokenId_4878":{"entryPoint":7833,"id":4878,"parameterSlots":2,"returnSlots":1},"@tokenURI_5839":{"entryPoint":4294,"id":5839,"parameterSlots":1,"returnSlots":1},"@token_4227":{"entryPoint":null,"id":4227,"parameterSlots":0,"returnSlots":1},"@transferFrom_5960":{"entryPoint":2726,"id":5960,"parameterSlots":3,"returnSlots":0},"@transferOwnership_5081":{"entryPoint":4724,"id":5081,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_7027":{"entryPoint":9255,"id":7027,"parameterSlots":3,"returnSlots":1},"abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata":{"entryPoint":10912,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_bytes":{"entryPoint":10719,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":9723,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_struct_MessagingFee_fromMemory":{"entryPoint":12494,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_Origin_calldata":{"entryPoint":9699,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_SendParam_calldata":{"entryPoint":9954,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":10334,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":13290,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":11261,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":10147,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":10805,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":10479,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":9655,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":10980,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_struct$_InboundPacket_$2010_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":12344,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":9481,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":12667,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":12073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr":{"entryPoint":11387,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr_fromMemory":{"entryPoint":13106,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr_fromMemory":{"entryPoint":12542,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptr":{"entryPoint":11307,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr":{"entryPoint":9795,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes_calldata_ptrt_address":{"entryPoint":10363,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_bool":{"entryPoint":11168,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_struct$_MessagingFee_$2169_calldata_ptrt_address":{"entryPoint":9972,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":9609,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint32":{"entryPoint":11045,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint32t_bytes32":{"entryPoint":10237,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint32t_uint16":{"entryPoint":10283,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint32t_uint16t_bytes_calldata_ptr":{"entryPoint":11072,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint64":{"entryPoint":12229,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint16":{"entryPoint":10265,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint32":{"entryPoint":10212,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":11732,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_string":{"entryPoint":9546,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_struct_MessagingFee":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes32_t_uint256__to_t_bytes32_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13238,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13319,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr_slice__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":11692,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":12182,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_uint64_t_uint32_t_bytes_memory_ptr__to_t_uint64_t_uint32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13164,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":12616,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_rational_0_by_1_t_bytes_memory_ptr__to_t_address_t_bytes32_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":12258,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":12967,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4_t_uint64__to_t_bytes4_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11773,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":12307,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$2338__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9590,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_MessagingFee_$2169_memory_ptr__to_t_struct$_MessagingFee_$2169_memory_ptr__fromStack_reversed":{"entryPoint":11238,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_MessagingParams_$2156_memory_ptr_t_address__to_t_struct$_MessagingParams_$2156_memory_ptr_t_address__fromStack_reversed":{"entryPoint":12373,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr__to_t_struct$_MessagingReceipt_$2164_memory_ptr__fromStack_reversed":{"entryPoint":10081,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Origin_$2176_calldata_ptr_t_bytes32_t_bytes_calldata_ptr_t_address_t_bytes_calldata_ptr__to_t_struct$_Origin_$2176_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11939,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint32_t_uint256__to_t_uint32_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":11848,"id":null,"parameterSlots":2,"returnSlots":2},"access_calldata_tail_t_struct$_InboundPacket_$2010_calldata_ptr":{"entryPoint":11815,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":10632,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_3822":{"entryPoint":10558,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_3825":{"entryPoint":10598,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":10680,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"calldata_array_index_range_access_t_bytes_calldata_ptr":{"entryPoint":11650,"id":null,"parameterSlots":4,"returnSlots":2},"clean_up_bytearray_end_slots_bytes_storage":{"entryPoint":12696,"id":null,"parameterSlots":3,"returnSlots":0},"convert_array_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr":{"entryPoint":11437,"id":null,"parameterSlots":2,"returnSlots":1},"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes32":{"entryPoint":13134,"id":null,"parameterSlots":2,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":12776,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":9510,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":11335,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":11793,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":10536,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":9634,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":10465,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":9459,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint64":{"entryPoint":11918,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:34258:53","nodeType":"YulBlock","src":"0:34258:53","statements":[{"nativeSrc":"6:3:53","nodeType":"YulBlock","src":"6:3:53","statements":[]},{"body":{"nativeSrc":"58:87:53","nodeType":"YulBlock","src":"58:87:53","statements":[{"body":{"nativeSrc":"123:16:53","nodeType":"YulBlock","src":"123:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"132:1:53","nodeType":"YulLiteral","src":"132:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"135:1:53","nodeType":"YulLiteral","src":"135:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"125:6:53","nodeType":"YulIdentifier","src":"125:6:53"},"nativeSrc":"125:12:53","nodeType":"YulFunctionCall","src":"125:12:53"},"nativeSrc":"125:12:53","nodeType":"YulExpressionStatement","src":"125:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"81:5:53","nodeType":"YulIdentifier","src":"81:5:53"},{"arguments":[{"name":"value","nativeSrc":"92:5:53","nodeType":"YulIdentifier","src":"92:5:53"},{"arguments":[{"kind":"number","nativeSrc":"103:3:53","nodeType":"YulLiteral","src":"103:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"108:10:53","nodeType":"YulLiteral","src":"108:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"99:3:53","nodeType":"YulIdentifier","src":"99:3:53"},"nativeSrc":"99:20:53","nodeType":"YulFunctionCall","src":"99:20:53"}],"functionName":{"name":"and","nativeSrc":"88:3:53","nodeType":"YulIdentifier","src":"88:3:53"},"nativeSrc":"88:32:53","nodeType":"YulFunctionCall","src":"88:32:53"}],"functionName":{"name":"eq","nativeSrc":"78:2:53","nodeType":"YulIdentifier","src":"78:2:53"},"nativeSrc":"78:43:53","nodeType":"YulFunctionCall","src":"78:43:53"}],"functionName":{"name":"iszero","nativeSrc":"71:6:53","nodeType":"YulIdentifier","src":"71:6:53"},"nativeSrc":"71:51:53","nodeType":"YulFunctionCall","src":"71:51:53"},"nativeSrc":"68:71:53","nodeType":"YulIf","src":"68:71:53"}]},"name":"validator_revert_bytes4","nativeSrc":"14:131:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47:5:53","nodeType":"YulTypedName","src":"47:5:53","type":""}],"src":"14:131:53"},{"body":{"nativeSrc":"219:176:53","nodeType":"YulBlock","src":"219:176:53","statements":[{"body":{"nativeSrc":"265:16:53","nodeType":"YulBlock","src":"265:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"274:1:53","nodeType":"YulLiteral","src":"274:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"277:1:53","nodeType":"YulLiteral","src":"277:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"267:6:53","nodeType":"YulIdentifier","src":"267:6:53"},"nativeSrc":"267:12:53","nodeType":"YulFunctionCall","src":"267:12:53"},"nativeSrc":"267:12:53","nodeType":"YulExpressionStatement","src":"267:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"240:7:53","nodeType":"YulIdentifier","src":"240:7:53"},{"name":"headStart","nativeSrc":"249:9:53","nodeType":"YulIdentifier","src":"249:9:53"}],"functionName":{"name":"sub","nativeSrc":"236:3:53","nodeType":"YulIdentifier","src":"236:3:53"},"nativeSrc":"236:23:53","nodeType":"YulFunctionCall","src":"236:23:53"},{"kind":"number","nativeSrc":"261:2:53","nodeType":"YulLiteral","src":"261:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"232:3:53","nodeType":"YulIdentifier","src":"232:3:53"},"nativeSrc":"232:32:53","nodeType":"YulFunctionCall","src":"232:32:53"},"nativeSrc":"229:52:53","nodeType":"YulIf","src":"229:52:53"},{"nativeSrc":"290:36:53","nodeType":"YulVariableDeclaration","src":"290:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"316:9:53","nodeType":"YulIdentifier","src":"316:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"303:12:53","nodeType":"YulIdentifier","src":"303:12:53"},"nativeSrc":"303:23:53","nodeType":"YulFunctionCall","src":"303:23:53"},"variables":[{"name":"value","nativeSrc":"294:5:53","nodeType":"YulTypedName","src":"294:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"359:5:53","nodeType":"YulIdentifier","src":"359:5:53"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"335:23:53","nodeType":"YulIdentifier","src":"335:23:53"},"nativeSrc":"335:30:53","nodeType":"YulFunctionCall","src":"335:30:53"},"nativeSrc":"335:30:53","nodeType":"YulExpressionStatement","src":"335:30:53"},{"nativeSrc":"374:15:53","nodeType":"YulAssignment","src":"374:15:53","value":{"name":"value","nativeSrc":"384:5:53","nodeType":"YulIdentifier","src":"384:5:53"},"variableNames":[{"name":"value0","nativeSrc":"374:6:53","nodeType":"YulIdentifier","src":"374:6:53"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"150:245:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"185:9:53","nodeType":"YulTypedName","src":"185:9:53","type":""},{"name":"dataEnd","nativeSrc":"196:7:53","nodeType":"YulTypedName","src":"196:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"208:6:53","nodeType":"YulTypedName","src":"208:6:53","type":""}],"src":"150:245:53"},{"body":{"nativeSrc":"495:92:53","nodeType":"YulBlock","src":"495:92:53","statements":[{"nativeSrc":"505:26:53","nodeType":"YulAssignment","src":"505:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"517:9:53","nodeType":"YulIdentifier","src":"517:9:53"},{"kind":"number","nativeSrc":"528:2:53","nodeType":"YulLiteral","src":"528:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"513:3:53","nodeType":"YulIdentifier","src":"513:3:53"},"nativeSrc":"513:18:53","nodeType":"YulFunctionCall","src":"513:18:53"},"variableNames":[{"name":"tail","nativeSrc":"505:4:53","nodeType":"YulIdentifier","src":"505:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"547:9:53","nodeType":"YulIdentifier","src":"547:9:53"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"572:6:53","nodeType":"YulIdentifier","src":"572:6:53"}],"functionName":{"name":"iszero","nativeSrc":"565:6:53","nodeType":"YulIdentifier","src":"565:6:53"},"nativeSrc":"565:14:53","nodeType":"YulFunctionCall","src":"565:14:53"}],"functionName":{"name":"iszero","nativeSrc":"558:6:53","nodeType":"YulIdentifier","src":"558:6:53"},"nativeSrc":"558:22:53","nodeType":"YulFunctionCall","src":"558:22:53"}],"functionName":{"name":"mstore","nativeSrc":"540:6:53","nodeType":"YulIdentifier","src":"540:6:53"},"nativeSrc":"540:41:53","nodeType":"YulFunctionCall","src":"540:41:53"},"nativeSrc":"540:41:53","nodeType":"YulExpressionStatement","src":"540:41:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"400:187:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"464:9:53","nodeType":"YulTypedName","src":"464:9:53","type":""},{"name":"value0","nativeSrc":"475:6:53","nodeType":"YulTypedName","src":"475:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"486:4:53","nodeType":"YulTypedName","src":"486:4:53","type":""}],"src":"400:187:53"},{"body":{"nativeSrc":"658:184:53","nodeType":"YulBlock","src":"658:184:53","statements":[{"nativeSrc":"668:10:53","nodeType":"YulVariableDeclaration","src":"668:10:53","value":{"kind":"number","nativeSrc":"677:1:53","nodeType":"YulLiteral","src":"677:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"672:1:53","nodeType":"YulTypedName","src":"672:1:53","type":""}]},{"body":{"nativeSrc":"737:63:53","nodeType":"YulBlock","src":"737:63:53","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"762:3:53","nodeType":"YulIdentifier","src":"762:3:53"},{"name":"i","nativeSrc":"767:1:53","nodeType":"YulIdentifier","src":"767:1:53"}],"functionName":{"name":"add","nativeSrc":"758:3:53","nodeType":"YulIdentifier","src":"758:3:53"},"nativeSrc":"758:11:53","nodeType":"YulFunctionCall","src":"758:11:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"781:3:53","nodeType":"YulIdentifier","src":"781:3:53"},{"name":"i","nativeSrc":"786:1:53","nodeType":"YulIdentifier","src":"786:1:53"}],"functionName":{"name":"add","nativeSrc":"777:3:53","nodeType":"YulIdentifier","src":"777:3:53"},"nativeSrc":"777:11:53","nodeType":"YulFunctionCall","src":"777:11:53"}],"functionName":{"name":"mload","nativeSrc":"771:5:53","nodeType":"YulIdentifier","src":"771:5:53"},"nativeSrc":"771:18:53","nodeType":"YulFunctionCall","src":"771:18:53"}],"functionName":{"name":"mstore","nativeSrc":"751:6:53","nodeType":"YulIdentifier","src":"751:6:53"},"nativeSrc":"751:39:53","nodeType":"YulFunctionCall","src":"751:39:53"},"nativeSrc":"751:39:53","nodeType":"YulExpressionStatement","src":"751:39:53"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"698:1:53","nodeType":"YulIdentifier","src":"698:1:53"},{"name":"length","nativeSrc":"701:6:53","nodeType":"YulIdentifier","src":"701:6:53"}],"functionName":{"name":"lt","nativeSrc":"695:2:53","nodeType":"YulIdentifier","src":"695:2:53"},"nativeSrc":"695:13:53","nodeType":"YulFunctionCall","src":"695:13:53"},"nativeSrc":"687:113:53","nodeType":"YulForLoop","post":{"nativeSrc":"709:19:53","nodeType":"YulBlock","src":"709:19:53","statements":[{"nativeSrc":"711:15:53","nodeType":"YulAssignment","src":"711:15:53","value":{"arguments":[{"name":"i","nativeSrc":"720:1:53","nodeType":"YulIdentifier","src":"720:1:53"},{"kind":"number","nativeSrc":"723:2:53","nodeType":"YulLiteral","src":"723:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"716:3:53","nodeType":"YulIdentifier","src":"716:3:53"},"nativeSrc":"716:10:53","nodeType":"YulFunctionCall","src":"716:10:53"},"variableNames":[{"name":"i","nativeSrc":"711:1:53","nodeType":"YulIdentifier","src":"711:1:53"}]}]},"pre":{"nativeSrc":"691:3:53","nodeType":"YulBlock","src":"691:3:53","statements":[]},"src":"687:113:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"820:3:53","nodeType":"YulIdentifier","src":"820:3:53"},{"name":"length","nativeSrc":"825:6:53","nodeType":"YulIdentifier","src":"825:6:53"}],"functionName":{"name":"add","nativeSrc":"816:3:53","nodeType":"YulIdentifier","src":"816:3:53"},"nativeSrc":"816:16:53","nodeType":"YulFunctionCall","src":"816:16:53"},{"kind":"number","nativeSrc":"834:1:53","nodeType":"YulLiteral","src":"834:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"809:6:53","nodeType":"YulIdentifier","src":"809:6:53"},"nativeSrc":"809:27:53","nodeType":"YulFunctionCall","src":"809:27:53"},"nativeSrc":"809:27:53","nodeType":"YulExpressionStatement","src":"809:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"592:250:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"636:3:53","nodeType":"YulTypedName","src":"636:3:53","type":""},{"name":"dst","nativeSrc":"641:3:53","nodeType":"YulTypedName","src":"641:3:53","type":""},{"name":"length","nativeSrc":"646:6:53","nodeType":"YulTypedName","src":"646:6:53","type":""}],"src":"592:250:53"},{"body":{"nativeSrc":"897:221:53","nodeType":"YulBlock","src":"897:221:53","statements":[{"nativeSrc":"907:26:53","nodeType":"YulVariableDeclaration","src":"907:26:53","value":{"arguments":[{"name":"value","nativeSrc":"927:5:53","nodeType":"YulIdentifier","src":"927:5:53"}],"functionName":{"name":"mload","nativeSrc":"921:5:53","nodeType":"YulIdentifier","src":"921:5:53"},"nativeSrc":"921:12:53","nodeType":"YulFunctionCall","src":"921:12:53"},"variables":[{"name":"length","nativeSrc":"911:6:53","nodeType":"YulTypedName","src":"911:6:53","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"949:3:53","nodeType":"YulIdentifier","src":"949:3:53"},{"name":"length","nativeSrc":"954:6:53","nodeType":"YulIdentifier","src":"954:6:53"}],"functionName":{"name":"mstore","nativeSrc":"942:6:53","nodeType":"YulIdentifier","src":"942:6:53"},"nativeSrc":"942:19:53","nodeType":"YulFunctionCall","src":"942:19:53"},"nativeSrc":"942:19:53","nodeType":"YulExpressionStatement","src":"942:19:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1009:5:53","nodeType":"YulIdentifier","src":"1009:5:53"},{"kind":"number","nativeSrc":"1016:4:53","nodeType":"YulLiteral","src":"1016:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1005:3:53","nodeType":"YulIdentifier","src":"1005:3:53"},"nativeSrc":"1005:16:53","nodeType":"YulFunctionCall","src":"1005:16:53"},{"arguments":[{"name":"pos","nativeSrc":"1027:3:53","nodeType":"YulIdentifier","src":"1027:3:53"},{"kind":"number","nativeSrc":"1032:4:53","nodeType":"YulLiteral","src":"1032:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1023:3:53","nodeType":"YulIdentifier","src":"1023:3:53"},"nativeSrc":"1023:14:53","nodeType":"YulFunctionCall","src":"1023:14:53"},{"name":"length","nativeSrc":"1039:6:53","nodeType":"YulIdentifier","src":"1039:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"970:34:53","nodeType":"YulIdentifier","src":"970:34:53"},"nativeSrc":"970:76:53","nodeType":"YulFunctionCall","src":"970:76:53"},"nativeSrc":"970:76:53","nodeType":"YulExpressionStatement","src":"970:76:53"},{"nativeSrc":"1055:57:53","nodeType":"YulAssignment","src":"1055:57:53","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"1070:3:53","nodeType":"YulIdentifier","src":"1070:3:53"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1083:6:53","nodeType":"YulIdentifier","src":"1083:6:53"},{"kind":"number","nativeSrc":"1091:2:53","nodeType":"YulLiteral","src":"1091:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1079:3:53","nodeType":"YulIdentifier","src":"1079:3:53"},"nativeSrc":"1079:15:53","nodeType":"YulFunctionCall","src":"1079:15:53"},{"arguments":[{"kind":"number","nativeSrc":"1100:2:53","nodeType":"YulLiteral","src":"1100:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1096:3:53","nodeType":"YulIdentifier","src":"1096:3:53"},"nativeSrc":"1096:7:53","nodeType":"YulFunctionCall","src":"1096:7:53"}],"functionName":{"name":"and","nativeSrc":"1075:3:53","nodeType":"YulIdentifier","src":"1075:3:53"},"nativeSrc":"1075:29:53","nodeType":"YulFunctionCall","src":"1075:29:53"}],"functionName":{"name":"add","nativeSrc":"1066:3:53","nodeType":"YulIdentifier","src":"1066:3:53"},"nativeSrc":"1066:39:53","nodeType":"YulFunctionCall","src":"1066:39:53"},{"kind":"number","nativeSrc":"1107:4:53","nodeType":"YulLiteral","src":"1107:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1062:3:53","nodeType":"YulIdentifier","src":"1062:3:53"},"nativeSrc":"1062:50:53","nodeType":"YulFunctionCall","src":"1062:50:53"},"variableNames":[{"name":"end","nativeSrc":"1055:3:53","nodeType":"YulIdentifier","src":"1055:3:53"}]}]},"name":"abi_encode_string","nativeSrc":"847:271:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"874:5:53","nodeType":"YulTypedName","src":"874:5:53","type":""},{"name":"pos","nativeSrc":"881:3:53","nodeType":"YulTypedName","src":"881:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"889:3:53","nodeType":"YulTypedName","src":"889:3:53","type":""}],"src":"847:271:53"},{"body":{"nativeSrc":"1244:99:53","nodeType":"YulBlock","src":"1244:99:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1261:9:53","nodeType":"YulIdentifier","src":"1261:9:53"},{"kind":"number","nativeSrc":"1272:2:53","nodeType":"YulLiteral","src":"1272:2:53","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1254:6:53","nodeType":"YulIdentifier","src":"1254:6:53"},"nativeSrc":"1254:21:53","nodeType":"YulFunctionCall","src":"1254:21:53"},"nativeSrc":"1254:21:53","nodeType":"YulExpressionStatement","src":"1254:21:53"},{"nativeSrc":"1284:53:53","nodeType":"YulAssignment","src":"1284:53:53","value":{"arguments":[{"name":"value0","nativeSrc":"1310:6:53","nodeType":"YulIdentifier","src":"1310:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1322:9:53","nodeType":"YulIdentifier","src":"1322:9:53"},{"kind":"number","nativeSrc":"1333:2:53","nodeType":"YulLiteral","src":"1333:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1318:3:53","nodeType":"YulIdentifier","src":"1318:3:53"},"nativeSrc":"1318:18:53","nodeType":"YulFunctionCall","src":"1318:18:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"1292:17:53","nodeType":"YulIdentifier","src":"1292:17:53"},"nativeSrc":"1292:45:53","nodeType":"YulFunctionCall","src":"1292:45:53"},"variableNames":[{"name":"tail","nativeSrc":"1284:4:53","nodeType":"YulIdentifier","src":"1284:4:53"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1123:220:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1213:9:53","nodeType":"YulTypedName","src":"1213:9:53","type":""},{"name":"value0","nativeSrc":"1224:6:53","nodeType":"YulTypedName","src":"1224:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1235:4:53","nodeType":"YulTypedName","src":"1235:4:53","type":""}],"src":"1123:220:53"},{"body":{"nativeSrc":"1418:110:53","nodeType":"YulBlock","src":"1418:110:53","statements":[{"body":{"nativeSrc":"1464:16:53","nodeType":"YulBlock","src":"1464:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1473:1:53","nodeType":"YulLiteral","src":"1473:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1476:1:53","nodeType":"YulLiteral","src":"1476:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1466:6:53","nodeType":"YulIdentifier","src":"1466:6:53"},"nativeSrc":"1466:12:53","nodeType":"YulFunctionCall","src":"1466:12:53"},"nativeSrc":"1466:12:53","nodeType":"YulExpressionStatement","src":"1466:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:53","nodeType":"YulIdentifier","src":"1439:7:53"},{"name":"headStart","nativeSrc":"1448:9:53","nodeType":"YulIdentifier","src":"1448:9:53"}],"functionName":{"name":"sub","nativeSrc":"1435:3:53","nodeType":"YulIdentifier","src":"1435:3:53"},"nativeSrc":"1435:23:53","nodeType":"YulFunctionCall","src":"1435:23:53"},{"kind":"number","nativeSrc":"1460:2:53","nodeType":"YulLiteral","src":"1460:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1431:3:53","nodeType":"YulIdentifier","src":"1431:3:53"},"nativeSrc":"1431:32:53","nodeType":"YulFunctionCall","src":"1431:32:53"},"nativeSrc":"1428:52:53","nodeType":"YulIf","src":"1428:52:53"},{"nativeSrc":"1489:33:53","nodeType":"YulAssignment","src":"1489:33:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1512:9:53","nodeType":"YulIdentifier","src":"1512:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"1499:12:53","nodeType":"YulIdentifier","src":"1499:12:53"},"nativeSrc":"1499:23:53","nodeType":"YulFunctionCall","src":"1499:23:53"},"variableNames":[{"name":"value0","nativeSrc":"1489:6:53","nodeType":"YulIdentifier","src":"1489:6:53"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1348:180:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1384:9:53","nodeType":"YulTypedName","src":"1384:9:53","type":""},{"name":"dataEnd","nativeSrc":"1395:7:53","nodeType":"YulTypedName","src":"1395:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1407:6:53","nodeType":"YulTypedName","src":"1407:6:53","type":""}],"src":"1348:180:53"},{"body":{"nativeSrc":"1634:102:53","nodeType":"YulBlock","src":"1634:102:53","statements":[{"nativeSrc":"1644:26:53","nodeType":"YulAssignment","src":"1644:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1656:9:53","nodeType":"YulIdentifier","src":"1656:9:53"},{"kind":"number","nativeSrc":"1667:2:53","nodeType":"YulLiteral","src":"1667:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1652:3:53","nodeType":"YulIdentifier","src":"1652:3:53"},"nativeSrc":"1652:18:53","nodeType":"YulFunctionCall","src":"1652:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1644:4:53","nodeType":"YulIdentifier","src":"1644:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1686:9:53","nodeType":"YulIdentifier","src":"1686:9:53"},{"arguments":[{"name":"value0","nativeSrc":"1701:6:53","nodeType":"YulIdentifier","src":"1701:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1717:3:53","nodeType":"YulLiteral","src":"1717:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"1722:1:53","nodeType":"YulLiteral","src":"1722:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1713:3:53","nodeType":"YulIdentifier","src":"1713:3:53"},"nativeSrc":"1713:11:53","nodeType":"YulFunctionCall","src":"1713:11:53"},{"kind":"number","nativeSrc":"1726:1:53","nodeType":"YulLiteral","src":"1726:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1709:3:53","nodeType":"YulIdentifier","src":"1709:3:53"},"nativeSrc":"1709:19:53","nodeType":"YulFunctionCall","src":"1709:19:53"}],"functionName":{"name":"and","nativeSrc":"1697:3:53","nodeType":"YulIdentifier","src":"1697:3:53"},"nativeSrc":"1697:32:53","nodeType":"YulFunctionCall","src":"1697:32:53"}],"functionName":{"name":"mstore","nativeSrc":"1679:6:53","nodeType":"YulIdentifier","src":"1679:6:53"},"nativeSrc":"1679:51:53","nodeType":"YulFunctionCall","src":"1679:51:53"},"nativeSrc":"1679:51:53","nodeType":"YulExpressionStatement","src":"1679:51:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1533:203:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1603:9:53","nodeType":"YulTypedName","src":"1603:9:53","type":""},{"name":"value0","nativeSrc":"1614:6:53","nodeType":"YulTypedName","src":"1614:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1625:4:53","nodeType":"YulTypedName","src":"1625:4:53","type":""}],"src":"1533:203:53"},{"body":{"nativeSrc":"1786:86:53","nodeType":"YulBlock","src":"1786:86:53","statements":[{"body":{"nativeSrc":"1850:16:53","nodeType":"YulBlock","src":"1850:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1859:1:53","nodeType":"YulLiteral","src":"1859:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1862:1:53","nodeType":"YulLiteral","src":"1862:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1852:6:53","nodeType":"YulIdentifier","src":"1852:6:53"},"nativeSrc":"1852:12:53","nodeType":"YulFunctionCall","src":"1852:12:53"},"nativeSrc":"1852:12:53","nodeType":"YulExpressionStatement","src":"1852:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1809:5:53","nodeType":"YulIdentifier","src":"1809:5:53"},{"arguments":[{"name":"value","nativeSrc":"1820:5:53","nodeType":"YulIdentifier","src":"1820:5:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1835:3:53","nodeType":"YulLiteral","src":"1835:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"1840:1:53","nodeType":"YulLiteral","src":"1840:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1831:3:53","nodeType":"YulIdentifier","src":"1831:3:53"},"nativeSrc":"1831:11:53","nodeType":"YulFunctionCall","src":"1831:11:53"},{"kind":"number","nativeSrc":"1844:1:53","nodeType":"YulLiteral","src":"1844:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1827:3:53","nodeType":"YulIdentifier","src":"1827:3:53"},"nativeSrc":"1827:19:53","nodeType":"YulFunctionCall","src":"1827:19:53"}],"functionName":{"name":"and","nativeSrc":"1816:3:53","nodeType":"YulIdentifier","src":"1816:3:53"},"nativeSrc":"1816:31:53","nodeType":"YulFunctionCall","src":"1816:31:53"}],"functionName":{"name":"eq","nativeSrc":"1806:2:53","nodeType":"YulIdentifier","src":"1806:2:53"},"nativeSrc":"1806:42:53","nodeType":"YulFunctionCall","src":"1806:42:53"}],"functionName":{"name":"iszero","nativeSrc":"1799:6:53","nodeType":"YulIdentifier","src":"1799:6:53"},"nativeSrc":"1799:50:53","nodeType":"YulFunctionCall","src":"1799:50:53"},"nativeSrc":"1796:70:53","nodeType":"YulIf","src":"1796:70:53"}]},"name":"validator_revert_address","nativeSrc":"1741:131:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1775:5:53","nodeType":"YulTypedName","src":"1775:5:53","type":""}],"src":"1741:131:53"},{"body":{"nativeSrc":"1964:228:53","nodeType":"YulBlock","src":"1964:228:53","statements":[{"body":{"nativeSrc":"2010:16:53","nodeType":"YulBlock","src":"2010:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2019:1:53","nodeType":"YulLiteral","src":"2019:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2022:1:53","nodeType":"YulLiteral","src":"2022:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2012:6:53","nodeType":"YulIdentifier","src":"2012:6:53"},"nativeSrc":"2012:12:53","nodeType":"YulFunctionCall","src":"2012:12:53"},"nativeSrc":"2012:12:53","nodeType":"YulExpressionStatement","src":"2012:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1985:7:53","nodeType":"YulIdentifier","src":"1985:7:53"},{"name":"headStart","nativeSrc":"1994:9:53","nodeType":"YulIdentifier","src":"1994:9:53"}],"functionName":{"name":"sub","nativeSrc":"1981:3:53","nodeType":"YulIdentifier","src":"1981:3:53"},"nativeSrc":"1981:23:53","nodeType":"YulFunctionCall","src":"1981:23:53"},{"kind":"number","nativeSrc":"2006:2:53","nodeType":"YulLiteral","src":"2006:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1977:3:53","nodeType":"YulIdentifier","src":"1977:3:53"},"nativeSrc":"1977:32:53","nodeType":"YulFunctionCall","src":"1977:32:53"},"nativeSrc":"1974:52:53","nodeType":"YulIf","src":"1974:52:53"},{"nativeSrc":"2035:36:53","nodeType":"YulVariableDeclaration","src":"2035:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2061:9:53","nodeType":"YulIdentifier","src":"2061:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"2048:12:53","nodeType":"YulIdentifier","src":"2048:12:53"},"nativeSrc":"2048:23:53","nodeType":"YulFunctionCall","src":"2048:23:53"},"variables":[{"name":"value","nativeSrc":"2039:5:53","nodeType":"YulTypedName","src":"2039:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2105:5:53","nodeType":"YulIdentifier","src":"2105:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2080:24:53","nodeType":"YulIdentifier","src":"2080:24:53"},"nativeSrc":"2080:31:53","nodeType":"YulFunctionCall","src":"2080:31:53"},"nativeSrc":"2080:31:53","nodeType":"YulExpressionStatement","src":"2080:31:53"},{"nativeSrc":"2120:15:53","nodeType":"YulAssignment","src":"2120:15:53","value":{"name":"value","nativeSrc":"2130:5:53","nodeType":"YulIdentifier","src":"2130:5:53"},"variableNames":[{"name":"value0","nativeSrc":"2120:6:53","nodeType":"YulIdentifier","src":"2120:6:53"}]},{"nativeSrc":"2144:42:53","nodeType":"YulAssignment","src":"2144:42:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2171:9:53","nodeType":"YulIdentifier","src":"2171:9:53"},{"kind":"number","nativeSrc":"2182:2:53","nodeType":"YulLiteral","src":"2182:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2167:3:53","nodeType":"YulIdentifier","src":"2167:3:53"},"nativeSrc":"2167:18:53","nodeType":"YulFunctionCall","src":"2167:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"2154:12:53","nodeType":"YulIdentifier","src":"2154:12:53"},"nativeSrc":"2154:32:53","nodeType":"YulFunctionCall","src":"2154:32:53"},"variableNames":[{"name":"value1","nativeSrc":"2144:6:53","nodeType":"YulIdentifier","src":"2144:6:53"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1877:315:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1922:9:53","nodeType":"YulTypedName","src":"1922:9:53","type":""},{"name":"dataEnd","nativeSrc":"1933:7:53","nodeType":"YulTypedName","src":"1933:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1945:6:53","nodeType":"YulTypedName","src":"1945:6:53","type":""},{"name":"value1","nativeSrc":"1953:6:53","nodeType":"YulTypedName","src":"1953:6:53","type":""}],"src":"1877:315:53"},{"body":{"nativeSrc":"2266:85:53","nodeType":"YulBlock","src":"2266:85:53","statements":[{"body":{"nativeSrc":"2305:16:53","nodeType":"YulBlock","src":"2305:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2314:1:53","nodeType":"YulLiteral","src":"2314:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2317:1:53","nodeType":"YulLiteral","src":"2317:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2307:6:53","nodeType":"YulIdentifier","src":"2307:6:53"},"nativeSrc":"2307:12:53","nodeType":"YulFunctionCall","src":"2307:12:53"},"nativeSrc":"2307:12:53","nodeType":"YulExpressionStatement","src":"2307:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"2287:3:53","nodeType":"YulIdentifier","src":"2287:3:53"},{"name":"offset","nativeSrc":"2292:6:53","nodeType":"YulIdentifier","src":"2292:6:53"}],"functionName":{"name":"sub","nativeSrc":"2283:3:53","nodeType":"YulIdentifier","src":"2283:3:53"},"nativeSrc":"2283:16:53","nodeType":"YulFunctionCall","src":"2283:16:53"},{"kind":"number","nativeSrc":"2301:2:53","nodeType":"YulLiteral","src":"2301:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2279:3:53","nodeType":"YulIdentifier","src":"2279:3:53"},"nativeSrc":"2279:25:53","nodeType":"YulFunctionCall","src":"2279:25:53"},"nativeSrc":"2276:45:53","nodeType":"YulIf","src":"2276:45:53"},{"nativeSrc":"2330:15:53","nodeType":"YulAssignment","src":"2330:15:53","value":{"name":"offset","nativeSrc":"2339:6:53","nodeType":"YulIdentifier","src":"2339:6:53"},"variableNames":[{"name":"value","nativeSrc":"2330:5:53","nodeType":"YulIdentifier","src":"2330:5:53"}]}]},"name":"abi_decode_struct_Origin_calldata","nativeSrc":"2197:154:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2240:6:53","nodeType":"YulTypedName","src":"2240:6:53","type":""},{"name":"end","nativeSrc":"2248:3:53","nodeType":"YulTypedName","src":"2248:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2256:5:53","nodeType":"YulTypedName","src":"2256:5:53","type":""}],"src":"2197:154:53"},{"body":{"nativeSrc":"2428:275:53","nodeType":"YulBlock","src":"2428:275:53","statements":[{"body":{"nativeSrc":"2477:16:53","nodeType":"YulBlock","src":"2477:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2486:1:53","nodeType":"YulLiteral","src":"2486:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2489:1:53","nodeType":"YulLiteral","src":"2489:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2479:6:53","nodeType":"YulIdentifier","src":"2479:6:53"},"nativeSrc":"2479:12:53","nodeType":"YulFunctionCall","src":"2479:12:53"},"nativeSrc":"2479:12:53","nodeType":"YulExpressionStatement","src":"2479:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2456:6:53","nodeType":"YulIdentifier","src":"2456:6:53"},{"kind":"number","nativeSrc":"2464:4:53","nodeType":"YulLiteral","src":"2464:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2452:3:53","nodeType":"YulIdentifier","src":"2452:3:53"},"nativeSrc":"2452:17:53","nodeType":"YulFunctionCall","src":"2452:17:53"},{"name":"end","nativeSrc":"2471:3:53","nodeType":"YulIdentifier","src":"2471:3:53"}],"functionName":{"name":"slt","nativeSrc":"2448:3:53","nodeType":"YulIdentifier","src":"2448:3:53"},"nativeSrc":"2448:27:53","nodeType":"YulFunctionCall","src":"2448:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2441:6:53","nodeType":"YulIdentifier","src":"2441:6:53"},"nativeSrc":"2441:35:53","nodeType":"YulFunctionCall","src":"2441:35:53"},"nativeSrc":"2438:55:53","nodeType":"YulIf","src":"2438:55:53"},{"nativeSrc":"2502:30:53","nodeType":"YulAssignment","src":"2502:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2525:6:53","nodeType":"YulIdentifier","src":"2525:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2512:12:53","nodeType":"YulIdentifier","src":"2512:12:53"},"nativeSrc":"2512:20:53","nodeType":"YulFunctionCall","src":"2512:20:53"},"variableNames":[{"name":"length","nativeSrc":"2502:6:53","nodeType":"YulIdentifier","src":"2502:6:53"}]},{"body":{"nativeSrc":"2575:16:53","nodeType":"YulBlock","src":"2575:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2584:1:53","nodeType":"YulLiteral","src":"2584:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2587:1:53","nodeType":"YulLiteral","src":"2587:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2577:6:53","nodeType":"YulIdentifier","src":"2577:6:53"},"nativeSrc":"2577:12:53","nodeType":"YulFunctionCall","src":"2577:12:53"},"nativeSrc":"2577:12:53","nodeType":"YulExpressionStatement","src":"2577:12:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2547:6:53","nodeType":"YulIdentifier","src":"2547:6:53"},{"kind":"number","nativeSrc":"2555:18:53","nodeType":"YulLiteral","src":"2555:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2544:2:53","nodeType":"YulIdentifier","src":"2544:2:53"},"nativeSrc":"2544:30:53","nodeType":"YulFunctionCall","src":"2544:30:53"},"nativeSrc":"2541:50:53","nodeType":"YulIf","src":"2541:50:53"},{"nativeSrc":"2600:29:53","nodeType":"YulAssignment","src":"2600:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2616:6:53","nodeType":"YulIdentifier","src":"2616:6:53"},{"kind":"number","nativeSrc":"2624:4:53","nodeType":"YulLiteral","src":"2624:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2612:3:53","nodeType":"YulIdentifier","src":"2612:3:53"},"nativeSrc":"2612:17:53","nodeType":"YulFunctionCall","src":"2612:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2600:8:53","nodeType":"YulIdentifier","src":"2600:8:53"}]},{"body":{"nativeSrc":"2681:16:53","nodeType":"YulBlock","src":"2681:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2690:1:53","nodeType":"YulLiteral","src":"2690:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2693:1:53","nodeType":"YulLiteral","src":"2693:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2683:6:53","nodeType":"YulIdentifier","src":"2683:6:53"},"nativeSrc":"2683:12:53","nodeType":"YulFunctionCall","src":"2683:12:53"},"nativeSrc":"2683:12:53","nodeType":"YulExpressionStatement","src":"2683:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2652:6:53","nodeType":"YulIdentifier","src":"2652:6:53"},{"name":"length","nativeSrc":"2660:6:53","nodeType":"YulIdentifier","src":"2660:6:53"}],"functionName":{"name":"add","nativeSrc":"2648:3:53","nodeType":"YulIdentifier","src":"2648:3:53"},"nativeSrc":"2648:19:53","nodeType":"YulFunctionCall","src":"2648:19:53"},{"kind":"number","nativeSrc":"2669:4:53","nodeType":"YulLiteral","src":"2669:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2644:3:53","nodeType":"YulIdentifier","src":"2644:3:53"},"nativeSrc":"2644:30:53","nodeType":"YulFunctionCall","src":"2644:30:53"},{"name":"end","nativeSrc":"2676:3:53","nodeType":"YulIdentifier","src":"2676:3:53"}],"functionName":{"name":"gt","nativeSrc":"2641:2:53","nodeType":"YulIdentifier","src":"2641:2:53"},"nativeSrc":"2641:39:53","nodeType":"YulFunctionCall","src":"2641:39:53"},"nativeSrc":"2638:59:53","nodeType":"YulIf","src":"2638:59:53"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"2356:347:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2391:6:53","nodeType":"YulTypedName","src":"2391:6:53","type":""},{"name":"end","nativeSrc":"2399:3:53","nodeType":"YulTypedName","src":"2399:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2407:8:53","nodeType":"YulTypedName","src":"2407:8:53","type":""},{"name":"length","nativeSrc":"2417:6:53","nodeType":"YulTypedName","src":"2417:6:53","type":""}],"src":"2356:347:53"},{"body":{"nativeSrc":"2910:846:53","nodeType":"YulBlock","src":"2910:846:53","statements":[{"body":{"nativeSrc":"2957:16:53","nodeType":"YulBlock","src":"2957:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2966:1:53","nodeType":"YulLiteral","src":"2966:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2969:1:53","nodeType":"YulLiteral","src":"2969:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2959:6:53","nodeType":"YulIdentifier","src":"2959:6:53"},"nativeSrc":"2959:12:53","nodeType":"YulFunctionCall","src":"2959:12:53"},"nativeSrc":"2959:12:53","nodeType":"YulExpressionStatement","src":"2959:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2931:7:53","nodeType":"YulIdentifier","src":"2931:7:53"},{"name":"headStart","nativeSrc":"2940:9:53","nodeType":"YulIdentifier","src":"2940:9:53"}],"functionName":{"name":"sub","nativeSrc":"2927:3:53","nodeType":"YulIdentifier","src":"2927:3:53"},"nativeSrc":"2927:23:53","nodeType":"YulFunctionCall","src":"2927:23:53"},{"kind":"number","nativeSrc":"2952:3:53","nodeType":"YulLiteral","src":"2952:3:53","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"2923:3:53","nodeType":"YulIdentifier","src":"2923:3:53"},"nativeSrc":"2923:33:53","nodeType":"YulFunctionCall","src":"2923:33:53"},"nativeSrc":"2920:53:53","nodeType":"YulIf","src":"2920:53:53"},{"nativeSrc":"2982:63:53","nodeType":"YulAssignment","src":"2982:63:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3026:9:53","nodeType":"YulIdentifier","src":"3026:9:53"},{"name":"dataEnd","nativeSrc":"3037:7:53","nodeType":"YulIdentifier","src":"3037:7:53"}],"functionName":{"name":"abi_decode_struct_Origin_calldata","nativeSrc":"2992:33:53","nodeType":"YulIdentifier","src":"2992:33:53"},"nativeSrc":"2992:53:53","nodeType":"YulFunctionCall","src":"2992:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2982:6:53","nodeType":"YulIdentifier","src":"2982:6:53"}]},{"nativeSrc":"3054:42:53","nodeType":"YulAssignment","src":"3054:42:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3081:9:53","nodeType":"YulIdentifier","src":"3081:9:53"},{"kind":"number","nativeSrc":"3092:2:53","nodeType":"YulLiteral","src":"3092:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3077:3:53","nodeType":"YulIdentifier","src":"3077:3:53"},"nativeSrc":"3077:18:53","nodeType":"YulFunctionCall","src":"3077:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"3064:12:53","nodeType":"YulIdentifier","src":"3064:12:53"},"nativeSrc":"3064:32:53","nodeType":"YulFunctionCall","src":"3064:32:53"},"variableNames":[{"name":"value1","nativeSrc":"3054:6:53","nodeType":"YulIdentifier","src":"3054:6:53"}]},{"nativeSrc":"3105:47:53","nodeType":"YulVariableDeclaration","src":"3105:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3136:9:53","nodeType":"YulIdentifier","src":"3136:9:53"},{"kind":"number","nativeSrc":"3147:3:53","nodeType":"YulLiteral","src":"3147:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3132:3:53","nodeType":"YulIdentifier","src":"3132:3:53"},"nativeSrc":"3132:19:53","nodeType":"YulFunctionCall","src":"3132:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"3119:12:53","nodeType":"YulIdentifier","src":"3119:12:53"},"nativeSrc":"3119:33:53","nodeType":"YulFunctionCall","src":"3119:33:53"},"variables":[{"name":"offset","nativeSrc":"3109:6:53","nodeType":"YulTypedName","src":"3109:6:53","type":""}]},{"nativeSrc":"3161:28:53","nodeType":"YulVariableDeclaration","src":"3161:28:53","value":{"kind":"number","nativeSrc":"3171:18:53","nodeType":"YulLiteral","src":"3171:18:53","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"3165:2:53","nodeType":"YulTypedName","src":"3165:2:53","type":""}]},{"body":{"nativeSrc":"3216:16:53","nodeType":"YulBlock","src":"3216:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3225:1:53","nodeType":"YulLiteral","src":"3225:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3228:1:53","nodeType":"YulLiteral","src":"3228:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3218:6:53","nodeType":"YulIdentifier","src":"3218:6:53"},"nativeSrc":"3218:12:53","nodeType":"YulFunctionCall","src":"3218:12:53"},"nativeSrc":"3218:12:53","nodeType":"YulExpressionStatement","src":"3218:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3204:6:53","nodeType":"YulIdentifier","src":"3204:6:53"},{"name":"_1","nativeSrc":"3212:2:53","nodeType":"YulIdentifier","src":"3212:2:53"}],"functionName":{"name":"gt","nativeSrc":"3201:2:53","nodeType":"YulIdentifier","src":"3201:2:53"},"nativeSrc":"3201:14:53","nodeType":"YulFunctionCall","src":"3201:14:53"},"nativeSrc":"3198:34:53","nodeType":"YulIf","src":"3198:34:53"},{"nativeSrc":"3241:84:53","nodeType":"YulVariableDeclaration","src":"3241:84:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3297:9:53","nodeType":"YulIdentifier","src":"3297:9:53"},{"name":"offset","nativeSrc":"3308:6:53","nodeType":"YulIdentifier","src":"3308:6:53"}],"functionName":{"name":"add","nativeSrc":"3293:3:53","nodeType":"YulIdentifier","src":"3293:3:53"},"nativeSrc":"3293:22:53","nodeType":"YulFunctionCall","src":"3293:22:53"},{"name":"dataEnd","nativeSrc":"3317:7:53","nodeType":"YulIdentifier","src":"3317:7:53"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3267:25:53","nodeType":"YulIdentifier","src":"3267:25:53"},"nativeSrc":"3267:58:53","nodeType":"YulFunctionCall","src":"3267:58:53"},"variables":[{"name":"value2_1","nativeSrc":"3245:8:53","nodeType":"YulTypedName","src":"3245:8:53","type":""},{"name":"value3_1","nativeSrc":"3255:8:53","nodeType":"YulTypedName","src":"3255:8:53","type":""}]},{"nativeSrc":"3334:18:53","nodeType":"YulAssignment","src":"3334:18:53","value":{"name":"value2_1","nativeSrc":"3344:8:53","nodeType":"YulIdentifier","src":"3344:8:53"},"variableNames":[{"name":"value2","nativeSrc":"3334:6:53","nodeType":"YulIdentifier","src":"3334:6:53"}]},{"nativeSrc":"3361:18:53","nodeType":"YulAssignment","src":"3361:18:53","value":{"name":"value3_1","nativeSrc":"3371:8:53","nodeType":"YulIdentifier","src":"3371:8:53"},"variableNames":[{"name":"value3","nativeSrc":"3361:6:53","nodeType":"YulIdentifier","src":"3361:6:53"}]},{"nativeSrc":"3388:46:53","nodeType":"YulVariableDeclaration","src":"3388:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3418:9:53","nodeType":"YulIdentifier","src":"3418:9:53"},{"kind":"number","nativeSrc":"3429:3:53","nodeType":"YulLiteral","src":"3429:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3414:3:53","nodeType":"YulIdentifier","src":"3414:3:53"},"nativeSrc":"3414:19:53","nodeType":"YulFunctionCall","src":"3414:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"3401:12:53","nodeType":"YulIdentifier","src":"3401:12:53"},"nativeSrc":"3401:33:53","nodeType":"YulFunctionCall","src":"3401:33:53"},"variables":[{"name":"value","nativeSrc":"3392:5:53","nodeType":"YulTypedName","src":"3392:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3468:5:53","nodeType":"YulIdentifier","src":"3468:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3443:24:53","nodeType":"YulIdentifier","src":"3443:24:53"},"nativeSrc":"3443:31:53","nodeType":"YulFunctionCall","src":"3443:31:53"},"nativeSrc":"3443:31:53","nodeType":"YulExpressionStatement","src":"3443:31:53"},{"nativeSrc":"3483:15:53","nodeType":"YulAssignment","src":"3483:15:53","value":{"name":"value","nativeSrc":"3493:5:53","nodeType":"YulIdentifier","src":"3493:5:53"},"variableNames":[{"name":"value4","nativeSrc":"3483:6:53","nodeType":"YulIdentifier","src":"3483:6:53"}]},{"nativeSrc":"3507:49:53","nodeType":"YulVariableDeclaration","src":"3507:49:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3540:9:53","nodeType":"YulIdentifier","src":"3540:9:53"},{"kind":"number","nativeSrc":"3551:3:53","nodeType":"YulLiteral","src":"3551:3:53","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"3536:3:53","nodeType":"YulIdentifier","src":"3536:3:53"},"nativeSrc":"3536:19:53","nodeType":"YulFunctionCall","src":"3536:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"3523:12:53","nodeType":"YulIdentifier","src":"3523:12:53"},"nativeSrc":"3523:33:53","nodeType":"YulFunctionCall","src":"3523:33:53"},"variables":[{"name":"offset_1","nativeSrc":"3511:8:53","nodeType":"YulTypedName","src":"3511:8:53","type":""}]},{"body":{"nativeSrc":"3585:16:53","nodeType":"YulBlock","src":"3585:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3594:1:53","nodeType":"YulLiteral","src":"3594:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3597:1:53","nodeType":"YulLiteral","src":"3597:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3587:6:53","nodeType":"YulIdentifier","src":"3587:6:53"},"nativeSrc":"3587:12:53","nodeType":"YulFunctionCall","src":"3587:12:53"},"nativeSrc":"3587:12:53","nodeType":"YulExpressionStatement","src":"3587:12:53"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3571:8:53","nodeType":"YulIdentifier","src":"3571:8:53"},{"name":"_1","nativeSrc":"3581:2:53","nodeType":"YulIdentifier","src":"3581:2:53"}],"functionName":{"name":"gt","nativeSrc":"3568:2:53","nodeType":"YulIdentifier","src":"3568:2:53"},"nativeSrc":"3568:16:53","nodeType":"YulFunctionCall","src":"3568:16:53"},"nativeSrc":"3565:36:53","nodeType":"YulIf","src":"3565:36:53"},{"nativeSrc":"3610:86:53","nodeType":"YulVariableDeclaration","src":"3610:86:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3666:9:53","nodeType":"YulIdentifier","src":"3666:9:53"},{"name":"offset_1","nativeSrc":"3677:8:53","nodeType":"YulIdentifier","src":"3677:8:53"}],"functionName":{"name":"add","nativeSrc":"3662:3:53","nodeType":"YulIdentifier","src":"3662:3:53"},"nativeSrc":"3662:24:53","nodeType":"YulFunctionCall","src":"3662:24:53"},{"name":"dataEnd","nativeSrc":"3688:7:53","nodeType":"YulIdentifier","src":"3688:7:53"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3636:25:53","nodeType":"YulIdentifier","src":"3636:25:53"},"nativeSrc":"3636:60:53","nodeType":"YulFunctionCall","src":"3636:60:53"},"variables":[{"name":"value5_1","nativeSrc":"3614:8:53","nodeType":"YulTypedName","src":"3614:8:53","type":""},{"name":"value6_1","nativeSrc":"3624:8:53","nodeType":"YulTypedName","src":"3624:8:53","type":""}]},{"nativeSrc":"3705:18:53","nodeType":"YulAssignment","src":"3705:18:53","value":{"name":"value5_1","nativeSrc":"3715:8:53","nodeType":"YulIdentifier","src":"3715:8:53"},"variableNames":[{"name":"value5","nativeSrc":"3705:6:53","nodeType":"YulIdentifier","src":"3705:6:53"}]},{"nativeSrc":"3732:18:53","nodeType":"YulAssignment","src":"3732:18:53","value":{"name":"value6_1","nativeSrc":"3742:8:53","nodeType":"YulIdentifier","src":"3742:8:53"},"variableNames":[{"name":"value6","nativeSrc":"3732:6:53","nodeType":"YulIdentifier","src":"3732:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr","nativeSrc":"2708:1048:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2828:9:53","nodeType":"YulTypedName","src":"2828:9:53","type":""},{"name":"dataEnd","nativeSrc":"2839:7:53","nodeType":"YulTypedName","src":"2839:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2851:6:53","nodeType":"YulTypedName","src":"2851:6:53","type":""},{"name":"value1","nativeSrc":"2859:6:53","nodeType":"YulTypedName","src":"2859:6:53","type":""},{"name":"value2","nativeSrc":"2867:6:53","nodeType":"YulTypedName","src":"2867:6:53","type":""},{"name":"value3","nativeSrc":"2875:6:53","nodeType":"YulTypedName","src":"2875:6:53","type":""},{"name":"value4","nativeSrc":"2883:6:53","nodeType":"YulTypedName","src":"2883:6:53","type":""},{"name":"value5","nativeSrc":"2891:6:53","nodeType":"YulTypedName","src":"2891:6:53","type":""},{"name":"value6","nativeSrc":"2899:6:53","nodeType":"YulTypedName","src":"2899:6:53","type":""}],"src":"2708:1048:53"},{"body":{"nativeSrc":"3886:174:53","nodeType":"YulBlock","src":"3886:174:53","statements":[{"nativeSrc":"3896:26:53","nodeType":"YulAssignment","src":"3896:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3908:9:53","nodeType":"YulIdentifier","src":"3908:9:53"},{"kind":"number","nativeSrc":"3919:2:53","nodeType":"YulLiteral","src":"3919:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3904:3:53","nodeType":"YulIdentifier","src":"3904:3:53"},"nativeSrc":"3904:18:53","nodeType":"YulFunctionCall","src":"3904:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3896:4:53","nodeType":"YulIdentifier","src":"3896:4:53"}]},{"nativeSrc":"3931:28:53","nodeType":"YulVariableDeclaration","src":"3931:28:53","value":{"kind":"number","nativeSrc":"3941:18:53","nodeType":"YulLiteral","src":"3941:18:53","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"3935:2:53","nodeType":"YulTypedName","src":"3935:2:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3975:9:53","nodeType":"YulIdentifier","src":"3975:9:53"},{"arguments":[{"name":"value0","nativeSrc":"3990:6:53","nodeType":"YulIdentifier","src":"3990:6:53"},{"name":"_1","nativeSrc":"3998:2:53","nodeType":"YulIdentifier","src":"3998:2:53"}],"functionName":{"name":"and","nativeSrc":"3986:3:53","nodeType":"YulIdentifier","src":"3986:3:53"},"nativeSrc":"3986:15:53","nodeType":"YulFunctionCall","src":"3986:15:53"}],"functionName":{"name":"mstore","nativeSrc":"3968:6:53","nodeType":"YulIdentifier","src":"3968:6:53"},"nativeSrc":"3968:34:53","nodeType":"YulFunctionCall","src":"3968:34:53"},"nativeSrc":"3968:34:53","nodeType":"YulExpressionStatement","src":"3968:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4022:9:53","nodeType":"YulIdentifier","src":"4022:9:53"},{"kind":"number","nativeSrc":"4033:2:53","nodeType":"YulLiteral","src":"4033:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4018:3:53","nodeType":"YulIdentifier","src":"4018:3:53"},"nativeSrc":"4018:18:53","nodeType":"YulFunctionCall","src":"4018:18:53"},{"arguments":[{"name":"value1","nativeSrc":"4042:6:53","nodeType":"YulIdentifier","src":"4042:6:53"},{"name":"_1","nativeSrc":"4050:2:53","nodeType":"YulIdentifier","src":"4050:2:53"}],"functionName":{"name":"and","nativeSrc":"4038:3:53","nodeType":"YulIdentifier","src":"4038:3:53"},"nativeSrc":"4038:15:53","nodeType":"YulFunctionCall","src":"4038:15:53"}],"functionName":{"name":"mstore","nativeSrc":"4011:6:53","nodeType":"YulIdentifier","src":"4011:6:53"},"nativeSrc":"4011:43:53","nodeType":"YulFunctionCall","src":"4011:43:53"},"nativeSrc":"4011:43:53","nodeType":"YulExpressionStatement","src":"4011:43:53"}]},"name":"abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed","nativeSrc":"3761:299:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3847:9:53","nodeType":"YulTypedName","src":"3847:9:53","type":""},{"name":"value1","nativeSrc":"3858:6:53","nodeType":"YulTypedName","src":"3858:6:53","type":""},{"name":"value0","nativeSrc":"3866:6:53","nodeType":"YulTypedName","src":"3866:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3877:4:53","nodeType":"YulTypedName","src":"3877:4:53","type":""}],"src":"3761:299:53"},{"body":{"nativeSrc":"4164:89:53","nodeType":"YulBlock","src":"4164:89:53","statements":[{"nativeSrc":"4174:26:53","nodeType":"YulAssignment","src":"4174:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4186:9:53","nodeType":"YulIdentifier","src":"4186:9:53"},{"kind":"number","nativeSrc":"4197:2:53","nodeType":"YulLiteral","src":"4197:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4182:3:53","nodeType":"YulIdentifier","src":"4182:3:53"},"nativeSrc":"4182:18:53","nodeType":"YulFunctionCall","src":"4182:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4174:4:53","nodeType":"YulIdentifier","src":"4174:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4216:9:53","nodeType":"YulIdentifier","src":"4216:9:53"},{"arguments":[{"name":"value0","nativeSrc":"4231:6:53","nodeType":"YulIdentifier","src":"4231:6:53"},{"kind":"number","nativeSrc":"4239:6:53","nodeType":"YulLiteral","src":"4239:6:53","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"4227:3:53","nodeType":"YulIdentifier","src":"4227:3:53"},"nativeSrc":"4227:19:53","nodeType":"YulFunctionCall","src":"4227:19:53"}],"functionName":{"name":"mstore","nativeSrc":"4209:6:53","nodeType":"YulIdentifier","src":"4209:6:53"},"nativeSrc":"4209:38:53","nodeType":"YulFunctionCall","src":"4209:38:53"},"nativeSrc":"4209:38:53","nodeType":"YulExpressionStatement","src":"4209:38:53"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"4065:188:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4133:9:53","nodeType":"YulTypedName","src":"4133:9:53","type":""},{"name":"value0","nativeSrc":"4144:6:53","nodeType":"YulTypedName","src":"4144:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4155:4:53","nodeType":"YulTypedName","src":"4155:4:53","type":""}],"src":"4065:188:53"},{"body":{"nativeSrc":"4330:86:53","nodeType":"YulBlock","src":"4330:86:53","statements":[{"body":{"nativeSrc":"4370:16:53","nodeType":"YulBlock","src":"4370:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4379:1:53","nodeType":"YulLiteral","src":"4379:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4382:1:53","nodeType":"YulLiteral","src":"4382:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4372:6:53","nodeType":"YulIdentifier","src":"4372:6:53"},"nativeSrc":"4372:12:53","nodeType":"YulFunctionCall","src":"4372:12:53"},"nativeSrc":"4372:12:53","nodeType":"YulExpressionStatement","src":"4372:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"4351:3:53","nodeType":"YulIdentifier","src":"4351:3:53"},{"name":"offset","nativeSrc":"4356:6:53","nodeType":"YulIdentifier","src":"4356:6:53"}],"functionName":{"name":"sub","nativeSrc":"4347:3:53","nodeType":"YulIdentifier","src":"4347:3:53"},"nativeSrc":"4347:16:53","nodeType":"YulFunctionCall","src":"4347:16:53"},{"kind":"number","nativeSrc":"4365:3:53","nodeType":"YulLiteral","src":"4365:3:53","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"4343:3:53","nodeType":"YulIdentifier","src":"4343:3:53"},"nativeSrc":"4343:26:53","nodeType":"YulFunctionCall","src":"4343:26:53"},"nativeSrc":"4340:46:53","nodeType":"YulIf","src":"4340:46:53"},{"nativeSrc":"4395:15:53","nodeType":"YulAssignment","src":"4395:15:53","value":{"name":"offset","nativeSrc":"4404:6:53","nodeType":"YulIdentifier","src":"4404:6:53"},"variableNames":[{"name":"value","nativeSrc":"4395:5:53","nodeType":"YulIdentifier","src":"4395:5:53"}]}]},"name":"abi_decode_struct_SendParam_calldata","nativeSrc":"4258:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4304:6:53","nodeType":"YulTypedName","src":"4304:6:53","type":""},{"name":"end","nativeSrc":"4312:3:53","nodeType":"YulTypedName","src":"4312:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4320:5:53","nodeType":"YulTypedName","src":"4320:5:53","type":""}],"src":"4258:158:53"},{"body":{"nativeSrc":"4586:492:53","nodeType":"YulBlock","src":"4586:492:53","statements":[{"nativeSrc":"4596:33:53","nodeType":"YulVariableDeclaration","src":"4596:33:53","value":{"arguments":[{"name":"dataEnd","nativeSrc":"4610:7:53","nodeType":"YulIdentifier","src":"4610:7:53"},{"name":"headStart","nativeSrc":"4619:9:53","nodeType":"YulIdentifier","src":"4619:9:53"}],"functionName":{"name":"sub","nativeSrc":"4606:3:53","nodeType":"YulIdentifier","src":"4606:3:53"},"nativeSrc":"4606:23:53","nodeType":"YulFunctionCall","src":"4606:23:53"},"variables":[{"name":"_1","nativeSrc":"4600:2:53","nodeType":"YulTypedName","src":"4600:2:53","type":""}]},{"body":{"nativeSrc":"4654:16:53","nodeType":"YulBlock","src":"4654:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4663:1:53","nodeType":"YulLiteral","src":"4663:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4666:1:53","nodeType":"YulLiteral","src":"4666:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4656:6:53","nodeType":"YulIdentifier","src":"4656:6:53"},"nativeSrc":"4656:12:53","nodeType":"YulFunctionCall","src":"4656:12:53"},"nativeSrc":"4656:12:53","nodeType":"YulExpressionStatement","src":"4656:12:53"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"4645:2:53","nodeType":"YulIdentifier","src":"4645:2:53"},{"kind":"number","nativeSrc":"4649:3:53","nodeType":"YulLiteral","src":"4649:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"4641:3:53","nodeType":"YulIdentifier","src":"4641:3:53"},"nativeSrc":"4641:12:53","nodeType":"YulFunctionCall","src":"4641:12:53"},"nativeSrc":"4638:32:53","nodeType":"YulIf","src":"4638:32:53"},{"nativeSrc":"4679:37:53","nodeType":"YulVariableDeclaration","src":"4679:37:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4706:9:53","nodeType":"YulIdentifier","src":"4706:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"4693:12:53","nodeType":"YulIdentifier","src":"4693:12:53"},"nativeSrc":"4693:23:53","nodeType":"YulFunctionCall","src":"4693:23:53"},"variables":[{"name":"offset","nativeSrc":"4683:6:53","nodeType":"YulTypedName","src":"4683:6:53","type":""}]},{"body":{"nativeSrc":"4759:16:53","nodeType":"YulBlock","src":"4759:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4768:1:53","nodeType":"YulLiteral","src":"4768:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4771:1:53","nodeType":"YulLiteral","src":"4771:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4761:6:53","nodeType":"YulIdentifier","src":"4761:6:53"},"nativeSrc":"4761:12:53","nodeType":"YulFunctionCall","src":"4761:12:53"},"nativeSrc":"4761:12:53","nodeType":"YulExpressionStatement","src":"4761:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4731:6:53","nodeType":"YulIdentifier","src":"4731:6:53"},{"kind":"number","nativeSrc":"4739:18:53","nodeType":"YulLiteral","src":"4739:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4728:2:53","nodeType":"YulIdentifier","src":"4728:2:53"},"nativeSrc":"4728:30:53","nodeType":"YulFunctionCall","src":"4728:30:53"},"nativeSrc":"4725:50:53","nodeType":"YulIf","src":"4725:50:53"},{"nativeSrc":"4784:79:53","nodeType":"YulAssignment","src":"4784:79:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4835:9:53","nodeType":"YulIdentifier","src":"4835:9:53"},{"name":"offset","nativeSrc":"4846:6:53","nodeType":"YulIdentifier","src":"4846:6:53"}],"functionName":{"name":"add","nativeSrc":"4831:3:53","nodeType":"YulIdentifier","src":"4831:3:53"},"nativeSrc":"4831:22:53","nodeType":"YulFunctionCall","src":"4831:22:53"},{"name":"dataEnd","nativeSrc":"4855:7:53","nodeType":"YulIdentifier","src":"4855:7:53"}],"functionName":{"name":"abi_decode_struct_SendParam_calldata","nativeSrc":"4794:36:53","nodeType":"YulIdentifier","src":"4794:36:53"},"nativeSrc":"4794:69:53","nodeType":"YulFunctionCall","src":"4794:69:53"},"variableNames":[{"name":"value0","nativeSrc":"4784:6:53","nodeType":"YulIdentifier","src":"4784:6:53"}]},{"body":{"nativeSrc":"4901:16:53","nodeType":"YulBlock","src":"4901:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4910:1:53","nodeType":"YulLiteral","src":"4910:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4913:1:53","nodeType":"YulLiteral","src":"4913:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4903:6:53","nodeType":"YulIdentifier","src":"4903:6:53"},"nativeSrc":"4903:12:53","nodeType":"YulFunctionCall","src":"4903:12:53"},"nativeSrc":"4903:12:53","nodeType":"YulExpressionStatement","src":"4903:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4883:2:53","nodeType":"YulIdentifier","src":"4883:2:53"},{"arguments":[{"kind":"number","nativeSrc":"4891:2:53","nodeType":"YulLiteral","src":"4891:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4887:3:53","nodeType":"YulIdentifier","src":"4887:3:53"},"nativeSrc":"4887:7:53","nodeType":"YulFunctionCall","src":"4887:7:53"}],"functionName":{"name":"add","nativeSrc":"4879:3:53","nodeType":"YulIdentifier","src":"4879:3:53"},"nativeSrc":"4879:16:53","nodeType":"YulFunctionCall","src":"4879:16:53"},{"kind":"number","nativeSrc":"4897:2:53","nodeType":"YulLiteral","src":"4897:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4875:3:53","nodeType":"YulIdentifier","src":"4875:3:53"},"nativeSrc":"4875:25:53","nodeType":"YulFunctionCall","src":"4875:25:53"},"nativeSrc":"4872:45:53","nodeType":"YulIf","src":"4872:45:53"},{"nativeSrc":"4926:28:53","nodeType":"YulAssignment","src":"4926:28:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4940:9:53","nodeType":"YulIdentifier","src":"4940:9:53"},{"kind":"number","nativeSrc":"4951:2:53","nodeType":"YulLiteral","src":"4951:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4936:3:53","nodeType":"YulIdentifier","src":"4936:3:53"},"nativeSrc":"4936:18:53","nodeType":"YulFunctionCall","src":"4936:18:53"},"variableNames":[{"name":"value1","nativeSrc":"4926:6:53","nodeType":"YulIdentifier","src":"4926:6:53"}]},{"nativeSrc":"4963:45:53","nodeType":"YulVariableDeclaration","src":"4963:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4993:9:53","nodeType":"YulIdentifier","src":"4993:9:53"},{"kind":"number","nativeSrc":"5004:2:53","nodeType":"YulLiteral","src":"5004:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4989:3:53","nodeType":"YulIdentifier","src":"4989:3:53"},"nativeSrc":"4989:18:53","nodeType":"YulFunctionCall","src":"4989:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"4976:12:53","nodeType":"YulIdentifier","src":"4976:12:53"},"nativeSrc":"4976:32:53","nodeType":"YulFunctionCall","src":"4976:32:53"},"variables":[{"name":"value","nativeSrc":"4967:5:53","nodeType":"YulTypedName","src":"4967:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5042:5:53","nodeType":"YulIdentifier","src":"5042:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5017:24:53","nodeType":"YulIdentifier","src":"5017:24:53"},"nativeSrc":"5017:31:53","nodeType":"YulFunctionCall","src":"5017:31:53"},"nativeSrc":"5017:31:53","nodeType":"YulExpressionStatement","src":"5017:31:53"},{"nativeSrc":"5057:15:53","nodeType":"YulAssignment","src":"5057:15:53","value":{"name":"value","nativeSrc":"5067:5:53","nodeType":"YulIdentifier","src":"5067:5:53"},"variableNames":[{"name":"value2","nativeSrc":"5057:6:53","nodeType":"YulIdentifier","src":"5057:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_struct$_MessagingFee_$2169_calldata_ptrt_address","nativeSrc":"4421:657:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4536:9:53","nodeType":"YulTypedName","src":"4536:9:53","type":""},{"name":"dataEnd","nativeSrc":"4547:7:53","nodeType":"YulTypedName","src":"4547:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4559:6:53","nodeType":"YulTypedName","src":"4559:6:53","type":""},{"name":"value1","nativeSrc":"4567:6:53","nodeType":"YulTypedName","src":"4567:6:53","type":""},{"name":"value2","nativeSrc":"4575:6:53","nodeType":"YulTypedName","src":"4575:6:53","type":""}],"src":"4421:657:53"},{"body":{"nativeSrc":"5139:97:53","nodeType":"YulBlock","src":"5139:97:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5156:3:53","nodeType":"YulIdentifier","src":"5156:3:53"},{"arguments":[{"name":"value","nativeSrc":"5167:5:53","nodeType":"YulIdentifier","src":"5167:5:53"}],"functionName":{"name":"mload","nativeSrc":"5161:5:53","nodeType":"YulIdentifier","src":"5161:5:53"},"nativeSrc":"5161:12:53","nodeType":"YulFunctionCall","src":"5161:12:53"}],"functionName":{"name":"mstore","nativeSrc":"5149:6:53","nodeType":"YulIdentifier","src":"5149:6:53"},"nativeSrc":"5149:25:53","nodeType":"YulFunctionCall","src":"5149:25:53"},"nativeSrc":"5149:25:53","nodeType":"YulExpressionStatement","src":"5149:25:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"5194:3:53","nodeType":"YulIdentifier","src":"5194:3:53"},{"kind":"number","nativeSrc":"5199:4:53","nodeType":"YulLiteral","src":"5199:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5190:3:53","nodeType":"YulIdentifier","src":"5190:3:53"},"nativeSrc":"5190:14:53","nodeType":"YulFunctionCall","src":"5190:14:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5216:5:53","nodeType":"YulIdentifier","src":"5216:5:53"},{"kind":"number","nativeSrc":"5223:4:53","nodeType":"YulLiteral","src":"5223:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5212:3:53","nodeType":"YulIdentifier","src":"5212:3:53"},"nativeSrc":"5212:16:53","nodeType":"YulFunctionCall","src":"5212:16:53"}],"functionName":{"name":"mload","nativeSrc":"5206:5:53","nodeType":"YulIdentifier","src":"5206:5:53"},"nativeSrc":"5206:23:53","nodeType":"YulFunctionCall","src":"5206:23:53"}],"functionName":{"name":"mstore","nativeSrc":"5183:6:53","nodeType":"YulIdentifier","src":"5183:6:53"},"nativeSrc":"5183:47:53","nodeType":"YulFunctionCall","src":"5183:47:53"},"nativeSrc":"5183:47:53","nodeType":"YulExpressionStatement","src":"5183:47:53"}]},"name":"abi_encode_struct_MessagingFee","nativeSrc":"5083:153:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5123:5:53","nodeType":"YulTypedName","src":"5123:5:53","type":""},{"name":"pos","nativeSrc":"5130:3:53","nodeType":"YulTypedName","src":"5130:3:53","type":""}],"src":"5083:153:53"},{"body":{"nativeSrc":"5410:300:53","nodeType":"YulBlock","src":"5410:300:53","statements":[{"nativeSrc":"5420:27:53","nodeType":"YulAssignment","src":"5420:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5432:9:53","nodeType":"YulIdentifier","src":"5432:9:53"},{"kind":"number","nativeSrc":"5443:3:53","nodeType":"YulLiteral","src":"5443:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5428:3:53","nodeType":"YulIdentifier","src":"5428:3:53"},"nativeSrc":"5428:19:53","nodeType":"YulFunctionCall","src":"5428:19:53"},"variableNames":[{"name":"tail","nativeSrc":"5420:4:53","nodeType":"YulIdentifier","src":"5420:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5463:9:53","nodeType":"YulIdentifier","src":"5463:9:53"},{"arguments":[{"name":"value0","nativeSrc":"5480:6:53","nodeType":"YulIdentifier","src":"5480:6:53"}],"functionName":{"name":"mload","nativeSrc":"5474:5:53","nodeType":"YulIdentifier","src":"5474:5:53"},"nativeSrc":"5474:13:53","nodeType":"YulFunctionCall","src":"5474:13:53"}],"functionName":{"name":"mstore","nativeSrc":"5456:6:53","nodeType":"YulIdentifier","src":"5456:6:53"},"nativeSrc":"5456:32:53","nodeType":"YulFunctionCall","src":"5456:32:53"},"nativeSrc":"5456:32:53","nodeType":"YulExpressionStatement","src":"5456:32:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5508:9:53","nodeType":"YulIdentifier","src":"5508:9:53"},{"kind":"number","nativeSrc":"5519:4:53","nodeType":"YulLiteral","src":"5519:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5504:3:53","nodeType":"YulIdentifier","src":"5504:3:53"},"nativeSrc":"5504:20:53","nodeType":"YulFunctionCall","src":"5504:20:53"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5540:6:53","nodeType":"YulIdentifier","src":"5540:6:53"},{"kind":"number","nativeSrc":"5548:4:53","nodeType":"YulLiteral","src":"5548:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5536:3:53","nodeType":"YulIdentifier","src":"5536:3:53"},"nativeSrc":"5536:17:53","nodeType":"YulFunctionCall","src":"5536:17:53"}],"functionName":{"name":"mload","nativeSrc":"5530:5:53","nodeType":"YulIdentifier","src":"5530:5:53"},"nativeSrc":"5530:24:53","nodeType":"YulFunctionCall","src":"5530:24:53"},{"kind":"number","nativeSrc":"5556:18:53","nodeType":"YulLiteral","src":"5556:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5526:3:53","nodeType":"YulIdentifier","src":"5526:3:53"},"nativeSrc":"5526:49:53","nodeType":"YulFunctionCall","src":"5526:49:53"}],"functionName":{"name":"mstore","nativeSrc":"5497:6:53","nodeType":"YulIdentifier","src":"5497:6:53"},"nativeSrc":"5497:79:53","nodeType":"YulFunctionCall","src":"5497:79:53"},"nativeSrc":"5497:79:53","nodeType":"YulExpressionStatement","src":"5497:79:53"},{"nativeSrc":"5585:44:53","nodeType":"YulVariableDeclaration","src":"5585:44:53","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5615:6:53","nodeType":"YulIdentifier","src":"5615:6:53"},{"kind":"number","nativeSrc":"5623:4:53","nodeType":"YulLiteral","src":"5623:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5611:3:53","nodeType":"YulIdentifier","src":"5611:3:53"},"nativeSrc":"5611:17:53","nodeType":"YulFunctionCall","src":"5611:17:53"}],"functionName":{"name":"mload","nativeSrc":"5605:5:53","nodeType":"YulIdentifier","src":"5605:5:53"},"nativeSrc":"5605:24:53","nodeType":"YulFunctionCall","src":"5605:24:53"},"variables":[{"name":"memberValue0","nativeSrc":"5589:12:53","nodeType":"YulTypedName","src":"5589:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5669:12:53","nodeType":"YulIdentifier","src":"5669:12:53"},{"arguments":[{"name":"headStart","nativeSrc":"5687:9:53","nodeType":"YulIdentifier","src":"5687:9:53"},{"kind":"number","nativeSrc":"5698:4:53","nodeType":"YulLiteral","src":"5698:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5683:3:53","nodeType":"YulIdentifier","src":"5683:3:53"},"nativeSrc":"5683:20:53","nodeType":"YulFunctionCall","src":"5683:20:53"}],"functionName":{"name":"abi_encode_struct_MessagingFee","nativeSrc":"5638:30:53","nodeType":"YulIdentifier","src":"5638:30:53"},"nativeSrc":"5638:66:53","nodeType":"YulFunctionCall","src":"5638:66:53"},"nativeSrc":"5638:66:53","nodeType":"YulExpressionStatement","src":"5638:66:53"}]},"name":"abi_encode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr__to_t_struct$_MessagingReceipt_$2164_memory_ptr__fromStack_reversed","nativeSrc":"5241:469:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5379:9:53","nodeType":"YulTypedName","src":"5379:9:53","type":""},{"name":"value0","nativeSrc":"5390:6:53","nodeType":"YulTypedName","src":"5390:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5401:4:53","nodeType":"YulTypedName","src":"5401:4:53","type":""}],"src":"5241:469:53"},{"body":{"nativeSrc":"5819:352:53","nodeType":"YulBlock","src":"5819:352:53","statements":[{"body":{"nativeSrc":"5865:16:53","nodeType":"YulBlock","src":"5865:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5874:1:53","nodeType":"YulLiteral","src":"5874:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5877:1:53","nodeType":"YulLiteral","src":"5877:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5867:6:53","nodeType":"YulIdentifier","src":"5867:6:53"},"nativeSrc":"5867:12:53","nodeType":"YulFunctionCall","src":"5867:12:53"},"nativeSrc":"5867:12:53","nodeType":"YulExpressionStatement","src":"5867:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5840:7:53","nodeType":"YulIdentifier","src":"5840:7:53"},{"name":"headStart","nativeSrc":"5849:9:53","nodeType":"YulIdentifier","src":"5849:9:53"}],"functionName":{"name":"sub","nativeSrc":"5836:3:53","nodeType":"YulIdentifier","src":"5836:3:53"},"nativeSrc":"5836:23:53","nodeType":"YulFunctionCall","src":"5836:23:53"},{"kind":"number","nativeSrc":"5861:2:53","nodeType":"YulLiteral","src":"5861:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5832:3:53","nodeType":"YulIdentifier","src":"5832:3:53"},"nativeSrc":"5832:32:53","nodeType":"YulFunctionCall","src":"5832:32:53"},"nativeSrc":"5829:52:53","nodeType":"YulIf","src":"5829:52:53"},{"nativeSrc":"5890:36:53","nodeType":"YulVariableDeclaration","src":"5890:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5916:9:53","nodeType":"YulIdentifier","src":"5916:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"5903:12:53","nodeType":"YulIdentifier","src":"5903:12:53"},"nativeSrc":"5903:23:53","nodeType":"YulFunctionCall","src":"5903:23:53"},"variables":[{"name":"value","nativeSrc":"5894:5:53","nodeType":"YulTypedName","src":"5894:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5960:5:53","nodeType":"YulIdentifier","src":"5960:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5935:24:53","nodeType":"YulIdentifier","src":"5935:24:53"},"nativeSrc":"5935:31:53","nodeType":"YulFunctionCall","src":"5935:31:53"},"nativeSrc":"5935:31:53","nodeType":"YulExpressionStatement","src":"5935:31:53"},{"nativeSrc":"5975:15:53","nodeType":"YulAssignment","src":"5975:15:53","value":{"name":"value","nativeSrc":"5985:5:53","nodeType":"YulIdentifier","src":"5985:5:53"},"variableNames":[{"name":"value0","nativeSrc":"5975:6:53","nodeType":"YulIdentifier","src":"5975:6:53"}]},{"nativeSrc":"5999:47:53","nodeType":"YulVariableDeclaration","src":"5999:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6031:9:53","nodeType":"YulIdentifier","src":"6031:9:53"},{"kind":"number","nativeSrc":"6042:2:53","nodeType":"YulLiteral","src":"6042:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6027:3:53","nodeType":"YulIdentifier","src":"6027:3:53"},"nativeSrc":"6027:18:53","nodeType":"YulFunctionCall","src":"6027:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"6014:12:53","nodeType":"YulIdentifier","src":"6014:12:53"},"nativeSrc":"6014:32:53","nodeType":"YulFunctionCall","src":"6014:32:53"},"variables":[{"name":"value_1","nativeSrc":"6003:7:53","nodeType":"YulTypedName","src":"6003:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"6080:7:53","nodeType":"YulIdentifier","src":"6080:7:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6055:24:53","nodeType":"YulIdentifier","src":"6055:24:53"},"nativeSrc":"6055:33:53","nodeType":"YulFunctionCall","src":"6055:33:53"},"nativeSrc":"6055:33:53","nodeType":"YulExpressionStatement","src":"6055:33:53"},{"nativeSrc":"6097:17:53","nodeType":"YulAssignment","src":"6097:17:53","value":{"name":"value_1","nativeSrc":"6107:7:53","nodeType":"YulIdentifier","src":"6107:7:53"},"variableNames":[{"name":"value1","nativeSrc":"6097:6:53","nodeType":"YulIdentifier","src":"6097:6:53"}]},{"nativeSrc":"6123:42:53","nodeType":"YulAssignment","src":"6123:42:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6150:9:53","nodeType":"YulIdentifier","src":"6150:9:53"},{"kind":"number","nativeSrc":"6161:2:53","nodeType":"YulLiteral","src":"6161:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6146:3:53","nodeType":"YulIdentifier","src":"6146:3:53"},"nativeSrc":"6146:18:53","nodeType":"YulFunctionCall","src":"6146:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"6133:12:53","nodeType":"YulIdentifier","src":"6133:12:53"},"nativeSrc":"6133:32:53","nodeType":"YulFunctionCall","src":"6133:32:53"},"variableNames":[{"name":"value2","nativeSrc":"6123:6:53","nodeType":"YulIdentifier","src":"6123:6:53"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"5715:456:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5769:9:53","nodeType":"YulTypedName","src":"5769:9:53","type":""},{"name":"dataEnd","nativeSrc":"5780:7:53","nodeType":"YulTypedName","src":"5780:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5792:6:53","nodeType":"YulTypedName","src":"5792:6:53","type":""},{"name":"value1","nativeSrc":"5800:6:53","nodeType":"YulTypedName","src":"5800:6:53","type":""},{"name":"value2","nativeSrc":"5808:6:53","nodeType":"YulTypedName","src":"5808:6:53","type":""}],"src":"5715:456:53"},{"body":{"nativeSrc":"6224:115:53","nodeType":"YulBlock","src":"6224:115:53","statements":[{"nativeSrc":"6234:29:53","nodeType":"YulAssignment","src":"6234:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6256:6:53","nodeType":"YulIdentifier","src":"6256:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6243:12:53","nodeType":"YulIdentifier","src":"6243:12:53"},"nativeSrc":"6243:20:53","nodeType":"YulFunctionCall","src":"6243:20:53"},"variableNames":[{"name":"value","nativeSrc":"6234:5:53","nodeType":"YulIdentifier","src":"6234:5:53"}]},{"body":{"nativeSrc":"6317:16:53","nodeType":"YulBlock","src":"6317:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6326:1:53","nodeType":"YulLiteral","src":"6326:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6329:1:53","nodeType":"YulLiteral","src":"6329:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6319:6:53","nodeType":"YulIdentifier","src":"6319:6:53"},"nativeSrc":"6319:12:53","nodeType":"YulFunctionCall","src":"6319:12:53"},"nativeSrc":"6319:12:53","nodeType":"YulExpressionStatement","src":"6319:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6285:5:53","nodeType":"YulIdentifier","src":"6285:5:53"},{"arguments":[{"name":"value","nativeSrc":"6296:5:53","nodeType":"YulIdentifier","src":"6296:5:53"},{"kind":"number","nativeSrc":"6303:10:53","nodeType":"YulLiteral","src":"6303:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"6292:3:53","nodeType":"YulIdentifier","src":"6292:3:53"},"nativeSrc":"6292:22:53","nodeType":"YulFunctionCall","src":"6292:22:53"}],"functionName":{"name":"eq","nativeSrc":"6282:2:53","nodeType":"YulIdentifier","src":"6282:2:53"},"nativeSrc":"6282:33:53","nodeType":"YulFunctionCall","src":"6282:33:53"}],"functionName":{"name":"iszero","nativeSrc":"6275:6:53","nodeType":"YulIdentifier","src":"6275:6:53"},"nativeSrc":"6275:41:53","nodeType":"YulFunctionCall","src":"6275:41:53"},"nativeSrc":"6272:61:53","nodeType":"YulIf","src":"6272:61:53"}]},"name":"abi_decode_uint32","nativeSrc":"6176:163:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6203:6:53","nodeType":"YulTypedName","src":"6203:6:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6214:5:53","nodeType":"YulTypedName","src":"6214:5:53","type":""}],"src":"6176:163:53"},{"body":{"nativeSrc":"6430:166:53","nodeType":"YulBlock","src":"6430:166:53","statements":[{"body":{"nativeSrc":"6476:16:53","nodeType":"YulBlock","src":"6476:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6485:1:53","nodeType":"YulLiteral","src":"6485:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6488:1:53","nodeType":"YulLiteral","src":"6488:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6478:6:53","nodeType":"YulIdentifier","src":"6478:6:53"},"nativeSrc":"6478:12:53","nodeType":"YulFunctionCall","src":"6478:12:53"},"nativeSrc":"6478:12:53","nodeType":"YulExpressionStatement","src":"6478:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6451:7:53","nodeType":"YulIdentifier","src":"6451:7:53"},{"name":"headStart","nativeSrc":"6460:9:53","nodeType":"YulIdentifier","src":"6460:9:53"}],"functionName":{"name":"sub","nativeSrc":"6447:3:53","nodeType":"YulIdentifier","src":"6447:3:53"},"nativeSrc":"6447:23:53","nodeType":"YulFunctionCall","src":"6447:23:53"},{"kind":"number","nativeSrc":"6472:2:53","nodeType":"YulLiteral","src":"6472:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6443:3:53","nodeType":"YulIdentifier","src":"6443:3:53"},"nativeSrc":"6443:32:53","nodeType":"YulFunctionCall","src":"6443:32:53"},"nativeSrc":"6440:52:53","nodeType":"YulIf","src":"6440:52:53"},{"nativeSrc":"6501:38:53","nodeType":"YulAssignment","src":"6501:38:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6529:9:53","nodeType":"YulIdentifier","src":"6529:9:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"6511:17:53","nodeType":"YulIdentifier","src":"6511:17:53"},"nativeSrc":"6511:28:53","nodeType":"YulFunctionCall","src":"6511:28:53"},"variableNames":[{"name":"value0","nativeSrc":"6501:6:53","nodeType":"YulIdentifier","src":"6501:6:53"}]},{"nativeSrc":"6548:42:53","nodeType":"YulAssignment","src":"6548:42:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6575:9:53","nodeType":"YulIdentifier","src":"6575:9:53"},{"kind":"number","nativeSrc":"6586:2:53","nodeType":"YulLiteral","src":"6586:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6571:3:53","nodeType":"YulIdentifier","src":"6571:3:53"},"nativeSrc":"6571:18:53","nodeType":"YulFunctionCall","src":"6571:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"6558:12:53","nodeType":"YulIdentifier","src":"6558:12:53"},"nativeSrc":"6558:32:53","nodeType":"YulFunctionCall","src":"6558:32:53"},"variableNames":[{"name":"value1","nativeSrc":"6548:6:53","nodeType":"YulIdentifier","src":"6548:6:53"}]}]},"name":"abi_decode_tuple_t_uint32t_bytes32","nativeSrc":"6344:252:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6388:9:53","nodeType":"YulTypedName","src":"6388:9:53","type":""},{"name":"dataEnd","nativeSrc":"6399:7:53","nodeType":"YulTypedName","src":"6399:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6411:6:53","nodeType":"YulTypedName","src":"6411:6:53","type":""},{"name":"value1","nativeSrc":"6419:6:53","nodeType":"YulTypedName","src":"6419:6:53","type":""}],"src":"6344:252:53"},{"body":{"nativeSrc":"6649:111:53","nodeType":"YulBlock","src":"6649:111:53","statements":[{"nativeSrc":"6659:29:53","nodeType":"YulAssignment","src":"6659:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6681:6:53","nodeType":"YulIdentifier","src":"6681:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6668:12:53","nodeType":"YulIdentifier","src":"6668:12:53"},"nativeSrc":"6668:20:53","nodeType":"YulFunctionCall","src":"6668:20:53"},"variableNames":[{"name":"value","nativeSrc":"6659:5:53","nodeType":"YulIdentifier","src":"6659:5:53"}]},{"body":{"nativeSrc":"6738:16:53","nodeType":"YulBlock","src":"6738:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6747:1:53","nodeType":"YulLiteral","src":"6747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6750:1:53","nodeType":"YulLiteral","src":"6750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6740:6:53","nodeType":"YulIdentifier","src":"6740:6:53"},"nativeSrc":"6740:12:53","nodeType":"YulFunctionCall","src":"6740:12:53"},"nativeSrc":"6740:12:53","nodeType":"YulExpressionStatement","src":"6740:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6710:5:53","nodeType":"YulIdentifier","src":"6710:5:53"},{"arguments":[{"name":"value","nativeSrc":"6721:5:53","nodeType":"YulIdentifier","src":"6721:5:53"},{"kind":"number","nativeSrc":"6728:6:53","nodeType":"YulLiteral","src":"6728:6:53","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"6717:3:53","nodeType":"YulIdentifier","src":"6717:3:53"},"nativeSrc":"6717:18:53","nodeType":"YulFunctionCall","src":"6717:18:53"}],"functionName":{"name":"eq","nativeSrc":"6707:2:53","nodeType":"YulIdentifier","src":"6707:2:53"},"nativeSrc":"6707:29:53","nodeType":"YulFunctionCall","src":"6707:29:53"}],"functionName":{"name":"iszero","nativeSrc":"6700:6:53","nodeType":"YulIdentifier","src":"6700:6:53"},"nativeSrc":"6700:37:53","nodeType":"YulFunctionCall","src":"6700:37:53"},"nativeSrc":"6697:57:53","nodeType":"YulIf","src":"6697:57:53"}]},"name":"abi_decode_uint16","nativeSrc":"6601:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6628:6:53","nodeType":"YulTypedName","src":"6628:6:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6639:5:53","nodeType":"YulTypedName","src":"6639:5:53","type":""}],"src":"6601:159:53"},{"body":{"nativeSrc":"6850:171:53","nodeType":"YulBlock","src":"6850:171:53","statements":[{"body":{"nativeSrc":"6896:16:53","nodeType":"YulBlock","src":"6896:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6905:1:53","nodeType":"YulLiteral","src":"6905:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6908:1:53","nodeType":"YulLiteral","src":"6908:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6898:6:53","nodeType":"YulIdentifier","src":"6898:6:53"},"nativeSrc":"6898:12:53","nodeType":"YulFunctionCall","src":"6898:12:53"},"nativeSrc":"6898:12:53","nodeType":"YulExpressionStatement","src":"6898:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6871:7:53","nodeType":"YulIdentifier","src":"6871:7:53"},{"name":"headStart","nativeSrc":"6880:9:53","nodeType":"YulIdentifier","src":"6880:9:53"}],"functionName":{"name":"sub","nativeSrc":"6867:3:53","nodeType":"YulIdentifier","src":"6867:3:53"},"nativeSrc":"6867:23:53","nodeType":"YulFunctionCall","src":"6867:23:53"},{"kind":"number","nativeSrc":"6892:2:53","nodeType":"YulLiteral","src":"6892:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6863:3:53","nodeType":"YulIdentifier","src":"6863:3:53"},"nativeSrc":"6863:32:53","nodeType":"YulFunctionCall","src":"6863:32:53"},"nativeSrc":"6860:52:53","nodeType":"YulIf","src":"6860:52:53"},{"nativeSrc":"6921:38:53","nodeType":"YulAssignment","src":"6921:38:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6949:9:53","nodeType":"YulIdentifier","src":"6949:9:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"6931:17:53","nodeType":"YulIdentifier","src":"6931:17:53"},"nativeSrc":"6931:28:53","nodeType":"YulFunctionCall","src":"6931:28:53"},"variableNames":[{"name":"value0","nativeSrc":"6921:6:53","nodeType":"YulIdentifier","src":"6921:6:53"}]},{"nativeSrc":"6968:47:53","nodeType":"YulAssignment","src":"6968:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7000:9:53","nodeType":"YulIdentifier","src":"7000:9:53"},{"kind":"number","nativeSrc":"7011:2:53","nodeType":"YulLiteral","src":"7011:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6996:3:53","nodeType":"YulIdentifier","src":"6996:3:53"},"nativeSrc":"6996:18:53","nodeType":"YulFunctionCall","src":"6996:18:53"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"6978:17:53","nodeType":"YulIdentifier","src":"6978:17:53"},"nativeSrc":"6978:37:53","nodeType":"YulFunctionCall","src":"6978:37:53"},"variableNames":[{"name":"value1","nativeSrc":"6968:6:53","nodeType":"YulIdentifier","src":"6968:6:53"}]}]},"name":"abi_decode_tuple_t_uint32t_uint16","nativeSrc":"6765:256:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6808:9:53","nodeType":"YulTypedName","src":"6808:9:53","type":""},{"name":"dataEnd","nativeSrc":"6819:7:53","nodeType":"YulTypedName","src":"6819:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6831:6:53","nodeType":"YulTypedName","src":"6831:6:53","type":""},{"name":"value1","nativeSrc":"6839:6:53","nodeType":"YulTypedName","src":"6839:6:53","type":""}],"src":"6765:256:53"},{"body":{"nativeSrc":"7145:99:53","nodeType":"YulBlock","src":"7145:99:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7162:9:53","nodeType":"YulIdentifier","src":"7162:9:53"},{"kind":"number","nativeSrc":"7173:2:53","nodeType":"YulLiteral","src":"7173:2:53","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7155:6:53","nodeType":"YulIdentifier","src":"7155:6:53"},"nativeSrc":"7155:21:53","nodeType":"YulFunctionCall","src":"7155:21:53"},"nativeSrc":"7155:21:53","nodeType":"YulExpressionStatement","src":"7155:21:53"},{"nativeSrc":"7185:53:53","nodeType":"YulAssignment","src":"7185:53:53","value":{"arguments":[{"name":"value0","nativeSrc":"7211:6:53","nodeType":"YulIdentifier","src":"7211:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"7223:9:53","nodeType":"YulIdentifier","src":"7223:9:53"},{"kind":"number","nativeSrc":"7234:2:53","nodeType":"YulLiteral","src":"7234:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7219:3:53","nodeType":"YulIdentifier","src":"7219:3:53"},"nativeSrc":"7219:18:53","nodeType":"YulFunctionCall","src":"7219:18:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"7193:17:53","nodeType":"YulIdentifier","src":"7193:17:53"},"nativeSrc":"7193:45:53","nodeType":"YulFunctionCall","src":"7193:45:53"},"variableNames":[{"name":"tail","nativeSrc":"7185:4:53","nodeType":"YulIdentifier","src":"7185:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"7026:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7114:9:53","nodeType":"YulTypedName","src":"7114:9:53","type":""},{"name":"value0","nativeSrc":"7125:6:53","nodeType":"YulTypedName","src":"7125:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7136:4:53","nodeType":"YulTypedName","src":"7136:4:53","type":""}],"src":"7026:218:53"},{"body":{"nativeSrc":"7379:102:53","nodeType":"YulBlock","src":"7379:102:53","statements":[{"nativeSrc":"7389:26:53","nodeType":"YulAssignment","src":"7389:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7401:9:53","nodeType":"YulIdentifier","src":"7401:9:53"},{"kind":"number","nativeSrc":"7412:2:53","nodeType":"YulLiteral","src":"7412:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7397:3:53","nodeType":"YulIdentifier","src":"7397:3:53"},"nativeSrc":"7397:18:53","nodeType":"YulFunctionCall","src":"7397:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7389:4:53","nodeType":"YulIdentifier","src":"7389:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7431:9:53","nodeType":"YulIdentifier","src":"7431:9:53"},{"arguments":[{"name":"value0","nativeSrc":"7446:6:53","nodeType":"YulIdentifier","src":"7446:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7462:3:53","nodeType":"YulLiteral","src":"7462:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"7467:1:53","nodeType":"YulLiteral","src":"7467:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7458:3:53","nodeType":"YulIdentifier","src":"7458:3:53"},"nativeSrc":"7458:11:53","nodeType":"YulFunctionCall","src":"7458:11:53"},{"kind":"number","nativeSrc":"7471:1:53","nodeType":"YulLiteral","src":"7471:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7454:3:53","nodeType":"YulIdentifier","src":"7454:3:53"},"nativeSrc":"7454:19:53","nodeType":"YulFunctionCall","src":"7454:19:53"}],"functionName":{"name":"and","nativeSrc":"7442:3:53","nodeType":"YulIdentifier","src":"7442:3:53"},"nativeSrc":"7442:32:53","nodeType":"YulFunctionCall","src":"7442:32:53"}],"functionName":{"name":"mstore","nativeSrc":"7424:6:53","nodeType":"YulIdentifier","src":"7424:6:53"},"nativeSrc":"7424:51:53","nodeType":"YulFunctionCall","src":"7424:51:53"},"nativeSrc":"7424:51:53","nodeType":"YulExpressionStatement","src":"7424:51:53"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$2338__to_t_address__fromStack_reversed","nativeSrc":"7249:232:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7348:9:53","nodeType":"YulTypedName","src":"7348:9:53","type":""},{"name":"value0","nativeSrc":"7359:6:53","nodeType":"YulTypedName","src":"7359:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7370:4:53","nodeType":"YulTypedName","src":"7370:4:53","type":""}],"src":"7249:232:53"},{"body":{"nativeSrc":"7556:177:53","nodeType":"YulBlock","src":"7556:177:53","statements":[{"body":{"nativeSrc":"7602:16:53","nodeType":"YulBlock","src":"7602:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7611:1:53","nodeType":"YulLiteral","src":"7611:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7614:1:53","nodeType":"YulLiteral","src":"7614:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7604:6:53","nodeType":"YulIdentifier","src":"7604:6:53"},"nativeSrc":"7604:12:53","nodeType":"YulFunctionCall","src":"7604:12:53"},"nativeSrc":"7604:12:53","nodeType":"YulExpressionStatement","src":"7604:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7577:7:53","nodeType":"YulIdentifier","src":"7577:7:53"},{"name":"headStart","nativeSrc":"7586:9:53","nodeType":"YulIdentifier","src":"7586:9:53"}],"functionName":{"name":"sub","nativeSrc":"7573:3:53","nodeType":"YulIdentifier","src":"7573:3:53"},"nativeSrc":"7573:23:53","nodeType":"YulFunctionCall","src":"7573:23:53"},{"kind":"number","nativeSrc":"7598:2:53","nodeType":"YulLiteral","src":"7598:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7569:3:53","nodeType":"YulIdentifier","src":"7569:3:53"},"nativeSrc":"7569:32:53","nodeType":"YulFunctionCall","src":"7569:32:53"},"nativeSrc":"7566:52:53","nodeType":"YulIf","src":"7566:52:53"},{"nativeSrc":"7627:36:53","nodeType":"YulVariableDeclaration","src":"7627:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7653:9:53","nodeType":"YulIdentifier","src":"7653:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"7640:12:53","nodeType":"YulIdentifier","src":"7640:12:53"},"nativeSrc":"7640:23:53","nodeType":"YulFunctionCall","src":"7640:23:53"},"variables":[{"name":"value","nativeSrc":"7631:5:53","nodeType":"YulTypedName","src":"7631:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7697:5:53","nodeType":"YulIdentifier","src":"7697:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7672:24:53","nodeType":"YulIdentifier","src":"7672:24:53"},"nativeSrc":"7672:31:53","nodeType":"YulFunctionCall","src":"7672:31:53"},"nativeSrc":"7672:31:53","nodeType":"YulExpressionStatement","src":"7672:31:53"},{"nativeSrc":"7712:15:53","nodeType":"YulAssignment","src":"7712:15:53","value":{"name":"value","nativeSrc":"7722:5:53","nodeType":"YulIdentifier","src":"7722:5:53"},"variableNames":[{"name":"value0","nativeSrc":"7712:6:53","nodeType":"YulIdentifier","src":"7712:6:53"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7486:247:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7522:9:53","nodeType":"YulTypedName","src":"7522:9:53","type":""},{"name":"dataEnd","nativeSrc":"7533:7:53","nodeType":"YulTypedName","src":"7533:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7545:6:53","nodeType":"YulTypedName","src":"7545:6:53","type":""}],"src":"7486:247:53"},{"body":{"nativeSrc":"7839:76:53","nodeType":"YulBlock","src":"7839:76:53","statements":[{"nativeSrc":"7849:26:53","nodeType":"YulAssignment","src":"7849:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7861:9:53","nodeType":"YulIdentifier","src":"7861:9:53"},{"kind":"number","nativeSrc":"7872:2:53","nodeType":"YulLiteral","src":"7872:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7857:3:53","nodeType":"YulIdentifier","src":"7857:3:53"},"nativeSrc":"7857:18:53","nodeType":"YulFunctionCall","src":"7857:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7849:4:53","nodeType":"YulIdentifier","src":"7849:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7891:9:53","nodeType":"YulIdentifier","src":"7891:9:53"},{"name":"value0","nativeSrc":"7902:6:53","nodeType":"YulIdentifier","src":"7902:6:53"}],"functionName":{"name":"mstore","nativeSrc":"7884:6:53","nodeType":"YulIdentifier","src":"7884:6:53"},"nativeSrc":"7884:25:53","nodeType":"YulFunctionCall","src":"7884:25:53"},"nativeSrc":"7884:25:53","nodeType":"YulExpressionStatement","src":"7884:25:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"7738:177:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7808:9:53","nodeType":"YulTypedName","src":"7808:9:53","type":""},{"name":"value0","nativeSrc":"7819:6:53","nodeType":"YulTypedName","src":"7819:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7830:4:53","nodeType":"YulTypedName","src":"7830:4:53","type":""}],"src":"7738:177:53"},{"body":{"nativeSrc":"8019:101:53","nodeType":"YulBlock","src":"8019:101:53","statements":[{"nativeSrc":"8029:26:53","nodeType":"YulAssignment","src":"8029:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8041:9:53","nodeType":"YulIdentifier","src":"8041:9:53"},{"kind":"number","nativeSrc":"8052:2:53","nodeType":"YulLiteral","src":"8052:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8037:3:53","nodeType":"YulIdentifier","src":"8037:3:53"},"nativeSrc":"8037:18:53","nodeType":"YulFunctionCall","src":"8037:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8029:4:53","nodeType":"YulIdentifier","src":"8029:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8071:9:53","nodeType":"YulIdentifier","src":"8071:9:53"},{"arguments":[{"name":"value0","nativeSrc":"8086:6:53","nodeType":"YulIdentifier","src":"8086:6:53"},{"kind":"number","nativeSrc":"8094:18:53","nodeType":"YulLiteral","src":"8094:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8082:3:53","nodeType":"YulIdentifier","src":"8082:3:53"},"nativeSrc":"8082:31:53","nodeType":"YulFunctionCall","src":"8082:31:53"}],"functionName":{"name":"mstore","nativeSrc":"8064:6:53","nodeType":"YulIdentifier","src":"8064:6:53"},"nativeSrc":"8064:50:53","nodeType":"YulFunctionCall","src":"8064:50:53"},"nativeSrc":"8064:50:53","nodeType":"YulExpressionStatement","src":"8064:50:53"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"7920:200:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7988:9:53","nodeType":"YulTypedName","src":"7988:9:53","type":""},{"name":"value0","nativeSrc":"7999:6:53","nodeType":"YulTypedName","src":"7999:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8010:4:53","nodeType":"YulTypedName","src":"8010:4:53","type":""}],"src":"7920:200:53"},{"body":{"nativeSrc":"8274:521:53","nodeType":"YulBlock","src":"8274:521:53","statements":[{"body":{"nativeSrc":"8321:16:53","nodeType":"YulBlock","src":"8321:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8330:1:53","nodeType":"YulLiteral","src":"8330:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8333:1:53","nodeType":"YulLiteral","src":"8333:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8323:6:53","nodeType":"YulIdentifier","src":"8323:6:53"},"nativeSrc":"8323:12:53","nodeType":"YulFunctionCall","src":"8323:12:53"},"nativeSrc":"8323:12:53","nodeType":"YulExpressionStatement","src":"8323:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8295:7:53","nodeType":"YulIdentifier","src":"8295:7:53"},{"name":"headStart","nativeSrc":"8304:9:53","nodeType":"YulIdentifier","src":"8304:9:53"}],"functionName":{"name":"sub","nativeSrc":"8291:3:53","nodeType":"YulIdentifier","src":"8291:3:53"},"nativeSrc":"8291:23:53","nodeType":"YulFunctionCall","src":"8291:23:53"},{"kind":"number","nativeSrc":"8316:3:53","nodeType":"YulLiteral","src":"8316:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"8287:3:53","nodeType":"YulIdentifier","src":"8287:3:53"},"nativeSrc":"8287:33:53","nodeType":"YulFunctionCall","src":"8287:33:53"},"nativeSrc":"8284:53:53","nodeType":"YulIf","src":"8284:53:53"},{"nativeSrc":"8346:63:53","nodeType":"YulAssignment","src":"8346:63:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8390:9:53","nodeType":"YulIdentifier","src":"8390:9:53"},{"name":"dataEnd","nativeSrc":"8401:7:53","nodeType":"YulIdentifier","src":"8401:7:53"}],"functionName":{"name":"abi_decode_struct_Origin_calldata","nativeSrc":"8356:33:53","nodeType":"YulIdentifier","src":"8356:33:53"},"nativeSrc":"8356:53:53","nodeType":"YulFunctionCall","src":"8356:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8346:6:53","nodeType":"YulIdentifier","src":"8346:6:53"}]},{"nativeSrc":"8418:46:53","nodeType":"YulVariableDeclaration","src":"8418:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8449:9:53","nodeType":"YulIdentifier","src":"8449:9:53"},{"kind":"number","nativeSrc":"8460:2:53","nodeType":"YulLiteral","src":"8460:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8445:3:53","nodeType":"YulIdentifier","src":"8445:3:53"},"nativeSrc":"8445:18:53","nodeType":"YulFunctionCall","src":"8445:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"8432:12:53","nodeType":"YulIdentifier","src":"8432:12:53"},"nativeSrc":"8432:32:53","nodeType":"YulFunctionCall","src":"8432:32:53"},"variables":[{"name":"offset","nativeSrc":"8422:6:53","nodeType":"YulTypedName","src":"8422:6:53","type":""}]},{"body":{"nativeSrc":"8507:16:53","nodeType":"YulBlock","src":"8507:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8516:1:53","nodeType":"YulLiteral","src":"8516:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8519:1:53","nodeType":"YulLiteral","src":"8519:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8509:6:53","nodeType":"YulIdentifier","src":"8509:6:53"},"nativeSrc":"8509:12:53","nodeType":"YulFunctionCall","src":"8509:12:53"},"nativeSrc":"8509:12:53","nodeType":"YulExpressionStatement","src":"8509:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8479:6:53","nodeType":"YulIdentifier","src":"8479:6:53"},{"kind":"number","nativeSrc":"8487:18:53","nodeType":"YulLiteral","src":"8487:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8476:2:53","nodeType":"YulIdentifier","src":"8476:2:53"},"nativeSrc":"8476:30:53","nodeType":"YulFunctionCall","src":"8476:30:53"},"nativeSrc":"8473:50:53","nodeType":"YulIf","src":"8473:50:53"},{"nativeSrc":"8532:84:53","nodeType":"YulVariableDeclaration","src":"8532:84:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8588:9:53","nodeType":"YulIdentifier","src":"8588:9:53"},{"name":"offset","nativeSrc":"8599:6:53","nodeType":"YulIdentifier","src":"8599:6:53"}],"functionName":{"name":"add","nativeSrc":"8584:3:53","nodeType":"YulIdentifier","src":"8584:3:53"},"nativeSrc":"8584:22:53","nodeType":"YulFunctionCall","src":"8584:22:53"},{"name":"dataEnd","nativeSrc":"8608:7:53","nodeType":"YulIdentifier","src":"8608:7:53"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"8558:25:53","nodeType":"YulIdentifier","src":"8558:25:53"},"nativeSrc":"8558:58:53","nodeType":"YulFunctionCall","src":"8558:58:53"},"variables":[{"name":"value1_1","nativeSrc":"8536:8:53","nodeType":"YulTypedName","src":"8536:8:53","type":""},{"name":"value2_1","nativeSrc":"8546:8:53","nodeType":"YulTypedName","src":"8546:8:53","type":""}]},{"nativeSrc":"8625:18:53","nodeType":"YulAssignment","src":"8625:18:53","value":{"name":"value1_1","nativeSrc":"8635:8:53","nodeType":"YulIdentifier","src":"8635:8:53"},"variableNames":[{"name":"value1","nativeSrc":"8625:6:53","nodeType":"YulIdentifier","src":"8625:6:53"}]},{"nativeSrc":"8652:18:53","nodeType":"YulAssignment","src":"8652:18:53","value":{"name":"value2_1","nativeSrc":"8662:8:53","nodeType":"YulIdentifier","src":"8662:8:53"},"variableNames":[{"name":"value2","nativeSrc":"8652:6:53","nodeType":"YulIdentifier","src":"8652:6:53"}]},{"nativeSrc":"8679:46:53","nodeType":"YulVariableDeclaration","src":"8679:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8709:9:53","nodeType":"YulIdentifier","src":"8709:9:53"},{"kind":"number","nativeSrc":"8720:3:53","nodeType":"YulLiteral","src":"8720:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8705:3:53","nodeType":"YulIdentifier","src":"8705:3:53"},"nativeSrc":"8705:19:53","nodeType":"YulFunctionCall","src":"8705:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"8692:12:53","nodeType":"YulIdentifier","src":"8692:12:53"},"nativeSrc":"8692:33:53","nodeType":"YulFunctionCall","src":"8692:33:53"},"variables":[{"name":"value","nativeSrc":"8683:5:53","nodeType":"YulTypedName","src":"8683:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8759:5:53","nodeType":"YulIdentifier","src":"8759:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8734:24:53","nodeType":"YulIdentifier","src":"8734:24:53"},"nativeSrc":"8734:31:53","nodeType":"YulFunctionCall","src":"8734:31:53"},"nativeSrc":"8734:31:53","nodeType":"YulExpressionStatement","src":"8734:31:53"},{"nativeSrc":"8774:15:53","nodeType":"YulAssignment","src":"8774:15:53","value":{"name":"value","nativeSrc":"8784:5:53","nodeType":"YulIdentifier","src":"8784:5:53"},"variableNames":[{"name":"value3","nativeSrc":"8774:6:53","nodeType":"YulIdentifier","src":"8774:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes_calldata_ptrt_address","nativeSrc":"8125:670:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8216:9:53","nodeType":"YulTypedName","src":"8216:9:53","type":""},{"name":"dataEnd","nativeSrc":"8227:7:53","nodeType":"YulTypedName","src":"8227:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8239:6:53","nodeType":"YulTypedName","src":"8239:6:53","type":""},{"name":"value1","nativeSrc":"8247:6:53","nodeType":"YulTypedName","src":"8247:6:53","type":""},{"name":"value2","nativeSrc":"8255:6:53","nodeType":"YulTypedName","src":"8255:6:53","type":""},{"name":"value3","nativeSrc":"8263:6:53","nodeType":"YulTypedName","src":"8263:6:53","type":""}],"src":"8125:670:53"},{"body":{"nativeSrc":"8842:76:53","nodeType":"YulBlock","src":"8842:76:53","statements":[{"body":{"nativeSrc":"8896:16:53","nodeType":"YulBlock","src":"8896:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8905:1:53","nodeType":"YulLiteral","src":"8905:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8908:1:53","nodeType":"YulLiteral","src":"8908:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8898:6:53","nodeType":"YulIdentifier","src":"8898:6:53"},"nativeSrc":"8898:12:53","nodeType":"YulFunctionCall","src":"8898:12:53"},"nativeSrc":"8898:12:53","nodeType":"YulExpressionStatement","src":"8898:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8865:5:53","nodeType":"YulIdentifier","src":"8865:5:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8886:5:53","nodeType":"YulIdentifier","src":"8886:5:53"}],"functionName":{"name":"iszero","nativeSrc":"8879:6:53","nodeType":"YulIdentifier","src":"8879:6:53"},"nativeSrc":"8879:13:53","nodeType":"YulFunctionCall","src":"8879:13:53"}],"functionName":{"name":"iszero","nativeSrc":"8872:6:53","nodeType":"YulIdentifier","src":"8872:6:53"},"nativeSrc":"8872:21:53","nodeType":"YulFunctionCall","src":"8872:21:53"}],"functionName":{"name":"eq","nativeSrc":"8862:2:53","nodeType":"YulIdentifier","src":"8862:2:53"},"nativeSrc":"8862:32:53","nodeType":"YulFunctionCall","src":"8862:32:53"}],"functionName":{"name":"iszero","nativeSrc":"8855:6:53","nodeType":"YulIdentifier","src":"8855:6:53"},"nativeSrc":"8855:40:53","nodeType":"YulFunctionCall","src":"8855:40:53"},"nativeSrc":"8852:60:53","nodeType":"YulIf","src":"8852:60:53"}]},"name":"validator_revert_bool","nativeSrc":"8800:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8831:5:53","nodeType":"YulTypedName","src":"8831:5:53","type":""}],"src":"8800:118:53"},{"body":{"nativeSrc":"9007:298:53","nodeType":"YulBlock","src":"9007:298:53","statements":[{"body":{"nativeSrc":"9053:16:53","nodeType":"YulBlock","src":"9053:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9062:1:53","nodeType":"YulLiteral","src":"9062:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9065:1:53","nodeType":"YulLiteral","src":"9065:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9055:6:53","nodeType":"YulIdentifier","src":"9055:6:53"},"nativeSrc":"9055:12:53","nodeType":"YulFunctionCall","src":"9055:12:53"},"nativeSrc":"9055:12:53","nodeType":"YulExpressionStatement","src":"9055:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9028:7:53","nodeType":"YulIdentifier","src":"9028:7:53"},{"name":"headStart","nativeSrc":"9037:9:53","nodeType":"YulIdentifier","src":"9037:9:53"}],"functionName":{"name":"sub","nativeSrc":"9024:3:53","nodeType":"YulIdentifier","src":"9024:3:53"},"nativeSrc":"9024:23:53","nodeType":"YulFunctionCall","src":"9024:23:53"},{"kind":"number","nativeSrc":"9049:2:53","nodeType":"YulLiteral","src":"9049:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9020:3:53","nodeType":"YulIdentifier","src":"9020:3:53"},"nativeSrc":"9020:32:53","nodeType":"YulFunctionCall","src":"9020:32:53"},"nativeSrc":"9017:52:53","nodeType":"YulIf","src":"9017:52:53"},{"nativeSrc":"9078:36:53","nodeType":"YulVariableDeclaration","src":"9078:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9104:9:53","nodeType":"YulIdentifier","src":"9104:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"9091:12:53","nodeType":"YulIdentifier","src":"9091:12:53"},"nativeSrc":"9091:23:53","nodeType":"YulFunctionCall","src":"9091:23:53"},"variables":[{"name":"value","nativeSrc":"9082:5:53","nodeType":"YulTypedName","src":"9082:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9148:5:53","nodeType":"YulIdentifier","src":"9148:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9123:24:53","nodeType":"YulIdentifier","src":"9123:24:53"},"nativeSrc":"9123:31:53","nodeType":"YulFunctionCall","src":"9123:31:53"},"nativeSrc":"9123:31:53","nodeType":"YulExpressionStatement","src":"9123:31:53"},{"nativeSrc":"9163:15:53","nodeType":"YulAssignment","src":"9163:15:53","value":{"name":"value","nativeSrc":"9173:5:53","nodeType":"YulIdentifier","src":"9173:5:53"},"variableNames":[{"name":"value0","nativeSrc":"9163:6:53","nodeType":"YulIdentifier","src":"9163:6:53"}]},{"nativeSrc":"9187:47:53","nodeType":"YulVariableDeclaration","src":"9187:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9219:9:53","nodeType":"YulIdentifier","src":"9219:9:53"},{"kind":"number","nativeSrc":"9230:2:53","nodeType":"YulLiteral","src":"9230:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9215:3:53","nodeType":"YulIdentifier","src":"9215:3:53"},"nativeSrc":"9215:18:53","nodeType":"YulFunctionCall","src":"9215:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"9202:12:53","nodeType":"YulIdentifier","src":"9202:12:53"},"nativeSrc":"9202:32:53","nodeType":"YulFunctionCall","src":"9202:32:53"},"variables":[{"name":"value_1","nativeSrc":"9191:7:53","nodeType":"YulTypedName","src":"9191:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"9265:7:53","nodeType":"YulIdentifier","src":"9265:7:53"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"9243:21:53","nodeType":"YulIdentifier","src":"9243:21:53"},"nativeSrc":"9243:30:53","nodeType":"YulFunctionCall","src":"9243:30:53"},"nativeSrc":"9243:30:53","nodeType":"YulExpressionStatement","src":"9243:30:53"},{"nativeSrc":"9282:17:53","nodeType":"YulAssignment","src":"9282:17:53","value":{"name":"value_1","nativeSrc":"9292:7:53","nodeType":"YulIdentifier","src":"9292:7:53"},"variableNames":[{"name":"value1","nativeSrc":"9282:6:53","nodeType":"YulIdentifier","src":"9282:6:53"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"8923:382:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8965:9:53","nodeType":"YulTypedName","src":"8965:9:53","type":""},{"name":"dataEnd","nativeSrc":"8976:7:53","nodeType":"YulTypedName","src":"8976:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8988:6:53","nodeType":"YulTypedName","src":"8988:6:53","type":""},{"name":"value1","nativeSrc":"8996:6:53","nodeType":"YulTypedName","src":"8996:6:53","type":""}],"src":"8923:382:53"},{"body":{"nativeSrc":"9435:171:53","nodeType":"YulBlock","src":"9435:171:53","statements":[{"nativeSrc":"9445:26:53","nodeType":"YulAssignment","src":"9445:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9457:9:53","nodeType":"YulIdentifier","src":"9457:9:53"},{"kind":"number","nativeSrc":"9468:2:53","nodeType":"YulLiteral","src":"9468:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9453:3:53","nodeType":"YulIdentifier","src":"9453:3:53"},"nativeSrc":"9453:18:53","nodeType":"YulFunctionCall","src":"9453:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9445:4:53","nodeType":"YulIdentifier","src":"9445:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9487:9:53","nodeType":"YulIdentifier","src":"9487:9:53"},{"arguments":[{"name":"value0","nativeSrc":"9502:6:53","nodeType":"YulIdentifier","src":"9502:6:53"},{"arguments":[{"kind":"number","nativeSrc":"9514:3:53","nodeType":"YulLiteral","src":"9514:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"9519:10:53","nodeType":"YulLiteral","src":"9519:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"9510:3:53","nodeType":"YulIdentifier","src":"9510:3:53"},"nativeSrc":"9510:20:53","nodeType":"YulFunctionCall","src":"9510:20:53"}],"functionName":{"name":"and","nativeSrc":"9498:3:53","nodeType":"YulIdentifier","src":"9498:3:53"},"nativeSrc":"9498:33:53","nodeType":"YulFunctionCall","src":"9498:33:53"}],"functionName":{"name":"mstore","nativeSrc":"9480:6:53","nodeType":"YulIdentifier","src":"9480:6:53"},"nativeSrc":"9480:52:53","nodeType":"YulFunctionCall","src":"9480:52:53"},"nativeSrc":"9480:52:53","nodeType":"YulExpressionStatement","src":"9480:52:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9552:9:53","nodeType":"YulIdentifier","src":"9552:9:53"},{"kind":"number","nativeSrc":"9563:2:53","nodeType":"YulLiteral","src":"9563:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9548:3:53","nodeType":"YulIdentifier","src":"9548:3:53"},"nativeSrc":"9548:18:53","nodeType":"YulFunctionCall","src":"9548:18:53"},{"arguments":[{"name":"value1","nativeSrc":"9572:6:53","nodeType":"YulIdentifier","src":"9572:6:53"},{"kind":"number","nativeSrc":"9580:18:53","nodeType":"YulLiteral","src":"9580:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"9568:3:53","nodeType":"YulIdentifier","src":"9568:3:53"},"nativeSrc":"9568:31:53","nodeType":"YulFunctionCall","src":"9568:31:53"}],"functionName":{"name":"mstore","nativeSrc":"9541:6:53","nodeType":"YulIdentifier","src":"9541:6:53"},"nativeSrc":"9541:59:53","nodeType":"YulFunctionCall","src":"9541:59:53"},"nativeSrc":"9541:59:53","nodeType":"YulExpressionStatement","src":"9541:59:53"}]},"name":"abi_encode_tuple_t_bytes4_t_uint64__to_t_bytes4_t_uint64__fromStack_reversed","nativeSrc":"9310:296:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9396:9:53","nodeType":"YulTypedName","src":"9396:9:53","type":""},{"name":"value1","nativeSrc":"9407:6:53","nodeType":"YulTypedName","src":"9407:6:53","type":""},{"name":"value0","nativeSrc":"9415:6:53","nodeType":"YulTypedName","src":"9415:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9426:4:53","nodeType":"YulTypedName","src":"9426:4:53","type":""}],"src":"9310:296:53"},{"body":{"nativeSrc":"9643:95:53","nodeType":"YulBlock","src":"9643:95:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9660:1:53","nodeType":"YulLiteral","src":"9660:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"9667:3:53","nodeType":"YulLiteral","src":"9667:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"9672:10:53","nodeType":"YulLiteral","src":"9672:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"9663:3:53","nodeType":"YulIdentifier","src":"9663:3:53"},"nativeSrc":"9663:20:53","nodeType":"YulFunctionCall","src":"9663:20:53"}],"functionName":{"name":"mstore","nativeSrc":"9653:6:53","nodeType":"YulIdentifier","src":"9653:6:53"},"nativeSrc":"9653:31:53","nodeType":"YulFunctionCall","src":"9653:31:53"},"nativeSrc":"9653:31:53","nodeType":"YulExpressionStatement","src":"9653:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9700:1:53","nodeType":"YulLiteral","src":"9700:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"9703:4:53","nodeType":"YulLiteral","src":"9703:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"9693:6:53","nodeType":"YulIdentifier","src":"9693:6:53"},"nativeSrc":"9693:15:53","nodeType":"YulFunctionCall","src":"9693:15:53"},"nativeSrc":"9693:15:53","nodeType":"YulExpressionStatement","src":"9693:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9724:1:53","nodeType":"YulLiteral","src":"9724:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9727:4:53","nodeType":"YulLiteral","src":"9727:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9717:6:53","nodeType":"YulIdentifier","src":"9717:6:53"},"nativeSrc":"9717:15:53","nodeType":"YulFunctionCall","src":"9717:15:53"},"nativeSrc":"9717:15:53","nodeType":"YulExpressionStatement","src":"9717:15:53"}]},"name":"panic_error_0x41","nativeSrc":"9611:127:53","nodeType":"YulFunctionDefinition","src":"9611:127:53"},{"body":{"nativeSrc":"9789:205:53","nodeType":"YulBlock","src":"9789:205:53","statements":[{"nativeSrc":"9799:19:53","nodeType":"YulAssignment","src":"9799:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"9815:2:53","nodeType":"YulLiteral","src":"9815:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"9809:5:53","nodeType":"YulIdentifier","src":"9809:5:53"},"nativeSrc":"9809:9:53","nodeType":"YulFunctionCall","src":"9809:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"9799:6:53","nodeType":"YulIdentifier","src":"9799:6:53"}]},{"nativeSrc":"9827:33:53","nodeType":"YulVariableDeclaration","src":"9827:33:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"9849:6:53","nodeType":"YulIdentifier","src":"9849:6:53"},{"kind":"number","nativeSrc":"9857:2:53","nodeType":"YulLiteral","src":"9857:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9845:3:53","nodeType":"YulIdentifier","src":"9845:3:53"},"nativeSrc":"9845:15:53","nodeType":"YulFunctionCall","src":"9845:15:53"},"variables":[{"name":"newFreePtr","nativeSrc":"9831:10:53","nodeType":"YulTypedName","src":"9831:10:53","type":""}]},{"body":{"nativeSrc":"9935:22:53","nodeType":"YulBlock","src":"9935:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9937:16:53","nodeType":"YulIdentifier","src":"9937:16:53"},"nativeSrc":"9937:18:53","nodeType":"YulFunctionCall","src":"9937:18:53"},"nativeSrc":"9937:18:53","nodeType":"YulExpressionStatement","src":"9937:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"9878:10:53","nodeType":"YulIdentifier","src":"9878:10:53"},{"kind":"number","nativeSrc":"9890:18:53","nodeType":"YulLiteral","src":"9890:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9875:2:53","nodeType":"YulIdentifier","src":"9875:2:53"},"nativeSrc":"9875:34:53","nodeType":"YulFunctionCall","src":"9875:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"9914:10:53","nodeType":"YulIdentifier","src":"9914:10:53"},{"name":"memPtr","nativeSrc":"9926:6:53","nodeType":"YulIdentifier","src":"9926:6:53"}],"functionName":{"name":"lt","nativeSrc":"9911:2:53","nodeType":"YulIdentifier","src":"9911:2:53"},"nativeSrc":"9911:22:53","nodeType":"YulFunctionCall","src":"9911:22:53"}],"functionName":{"name":"or","nativeSrc":"9872:2:53","nodeType":"YulIdentifier","src":"9872:2:53"},"nativeSrc":"9872:62:53","nodeType":"YulFunctionCall","src":"9872:62:53"},"nativeSrc":"9869:88:53","nodeType":"YulIf","src":"9869:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9973:2:53","nodeType":"YulLiteral","src":"9973:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"9977:10:53","nodeType":"YulIdentifier","src":"9977:10:53"}],"functionName":{"name":"mstore","nativeSrc":"9966:6:53","nodeType":"YulIdentifier","src":"9966:6:53"},"nativeSrc":"9966:22:53","nodeType":"YulFunctionCall","src":"9966:22:53"},"nativeSrc":"9966:22:53","nodeType":"YulExpressionStatement","src":"9966:22:53"}]},"name":"allocate_memory_3822","nativeSrc":"9743:251:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"9778:6:53","nodeType":"YulTypedName","src":"9778:6:53","type":""}],"src":"9743:251:53"},{"body":{"nativeSrc":"10045:207:53","nodeType":"YulBlock","src":"10045:207:53","statements":[{"nativeSrc":"10055:19:53","nodeType":"YulAssignment","src":"10055:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"10071:2:53","nodeType":"YulLiteral","src":"10071:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"10065:5:53","nodeType":"YulIdentifier","src":"10065:5:53"},"nativeSrc":"10065:9:53","nodeType":"YulFunctionCall","src":"10065:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"10055:6:53","nodeType":"YulIdentifier","src":"10055:6:53"}]},{"nativeSrc":"10083:35:53","nodeType":"YulVariableDeclaration","src":"10083:35:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"10105:6:53","nodeType":"YulIdentifier","src":"10105:6:53"},{"kind":"number","nativeSrc":"10113:4:53","nodeType":"YulLiteral","src":"10113:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10101:3:53","nodeType":"YulIdentifier","src":"10101:3:53"},"nativeSrc":"10101:17:53","nodeType":"YulFunctionCall","src":"10101:17:53"},"variables":[{"name":"newFreePtr","nativeSrc":"10087:10:53","nodeType":"YulTypedName","src":"10087:10:53","type":""}]},{"body":{"nativeSrc":"10193:22:53","nodeType":"YulBlock","src":"10193:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10195:16:53","nodeType":"YulIdentifier","src":"10195:16:53"},"nativeSrc":"10195:18:53","nodeType":"YulFunctionCall","src":"10195:18:53"},"nativeSrc":"10195:18:53","nodeType":"YulExpressionStatement","src":"10195:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10136:10:53","nodeType":"YulIdentifier","src":"10136:10:53"},{"kind":"number","nativeSrc":"10148:18:53","nodeType":"YulLiteral","src":"10148:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10133:2:53","nodeType":"YulIdentifier","src":"10133:2:53"},"nativeSrc":"10133:34:53","nodeType":"YulFunctionCall","src":"10133:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10172:10:53","nodeType":"YulIdentifier","src":"10172:10:53"},{"name":"memPtr","nativeSrc":"10184:6:53","nodeType":"YulIdentifier","src":"10184:6:53"}],"functionName":{"name":"lt","nativeSrc":"10169:2:53","nodeType":"YulIdentifier","src":"10169:2:53"},"nativeSrc":"10169:22:53","nodeType":"YulFunctionCall","src":"10169:22:53"}],"functionName":{"name":"or","nativeSrc":"10130:2:53","nodeType":"YulIdentifier","src":"10130:2:53"},"nativeSrc":"10130:62:53","nodeType":"YulFunctionCall","src":"10130:62:53"},"nativeSrc":"10127:88:53","nodeType":"YulIf","src":"10127:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10231:2:53","nodeType":"YulLiteral","src":"10231:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10235:10:53","nodeType":"YulIdentifier","src":"10235:10:53"}],"functionName":{"name":"mstore","nativeSrc":"10224:6:53","nodeType":"YulIdentifier","src":"10224:6:53"},"nativeSrc":"10224:22:53","nodeType":"YulFunctionCall","src":"10224:22:53"},"nativeSrc":"10224:22:53","nodeType":"YulExpressionStatement","src":"10224:22:53"}]},"name":"allocate_memory_3825","nativeSrc":"9999:253:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"10034:6:53","nodeType":"YulTypedName","src":"10034:6:53","type":""}],"src":"9999:253:53"},{"body":{"nativeSrc":"10302:230:53","nodeType":"YulBlock","src":"10302:230:53","statements":[{"nativeSrc":"10312:19:53","nodeType":"YulAssignment","src":"10312:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"10328:2:53","nodeType":"YulLiteral","src":"10328:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"10322:5:53","nodeType":"YulIdentifier","src":"10322:5:53"},"nativeSrc":"10322:9:53","nodeType":"YulFunctionCall","src":"10322:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"10312:6:53","nodeType":"YulIdentifier","src":"10312:6:53"}]},{"nativeSrc":"10340:58:53","nodeType":"YulVariableDeclaration","src":"10340:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"10362:6:53","nodeType":"YulIdentifier","src":"10362:6:53"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"10378:4:53","nodeType":"YulIdentifier","src":"10378:4:53"},{"kind":"number","nativeSrc":"10384:2:53","nodeType":"YulLiteral","src":"10384:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10374:3:53","nodeType":"YulIdentifier","src":"10374:3:53"},"nativeSrc":"10374:13:53","nodeType":"YulFunctionCall","src":"10374:13:53"},{"arguments":[{"kind":"number","nativeSrc":"10393:2:53","nodeType":"YulLiteral","src":"10393:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10389:3:53","nodeType":"YulIdentifier","src":"10389:3:53"},"nativeSrc":"10389:7:53","nodeType":"YulFunctionCall","src":"10389:7:53"}],"functionName":{"name":"and","nativeSrc":"10370:3:53","nodeType":"YulIdentifier","src":"10370:3:53"},"nativeSrc":"10370:27:53","nodeType":"YulFunctionCall","src":"10370:27:53"}],"functionName":{"name":"add","nativeSrc":"10358:3:53","nodeType":"YulIdentifier","src":"10358:3:53"},"nativeSrc":"10358:40:53","nodeType":"YulFunctionCall","src":"10358:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"10344:10:53","nodeType":"YulTypedName","src":"10344:10:53","type":""}]},{"body":{"nativeSrc":"10473:22:53","nodeType":"YulBlock","src":"10473:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10475:16:53","nodeType":"YulIdentifier","src":"10475:16:53"},"nativeSrc":"10475:18:53","nodeType":"YulFunctionCall","src":"10475:18:53"},"nativeSrc":"10475:18:53","nodeType":"YulExpressionStatement","src":"10475:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10416:10:53","nodeType":"YulIdentifier","src":"10416:10:53"},{"kind":"number","nativeSrc":"10428:18:53","nodeType":"YulLiteral","src":"10428:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10413:2:53","nodeType":"YulIdentifier","src":"10413:2:53"},"nativeSrc":"10413:34:53","nodeType":"YulFunctionCall","src":"10413:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10452:10:53","nodeType":"YulIdentifier","src":"10452:10:53"},{"name":"memPtr","nativeSrc":"10464:6:53","nodeType":"YulIdentifier","src":"10464:6:53"}],"functionName":{"name":"lt","nativeSrc":"10449:2:53","nodeType":"YulIdentifier","src":"10449:2:53"},"nativeSrc":"10449:22:53","nodeType":"YulFunctionCall","src":"10449:22:53"}],"functionName":{"name":"or","nativeSrc":"10410:2:53","nodeType":"YulIdentifier","src":"10410:2:53"},"nativeSrc":"10410:62:53","nodeType":"YulFunctionCall","src":"10410:62:53"},"nativeSrc":"10407:88:53","nodeType":"YulIf","src":"10407:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10511:2:53","nodeType":"YulLiteral","src":"10511:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10515:10:53","nodeType":"YulIdentifier","src":"10515:10:53"}],"functionName":{"name":"mstore","nativeSrc":"10504:6:53","nodeType":"YulIdentifier","src":"10504:6:53"},"nativeSrc":"10504:22:53","nodeType":"YulFunctionCall","src":"10504:22:53"},"nativeSrc":"10504:22:53","nodeType":"YulExpressionStatement","src":"10504:22:53"}]},"name":"allocate_memory","nativeSrc":"10257:275:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"10282:4:53","nodeType":"YulTypedName","src":"10282:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"10291:6:53","nodeType":"YulTypedName","src":"10291:6:53","type":""}],"src":"10257:275:53"},{"body":{"nativeSrc":"10594:129:53","nodeType":"YulBlock","src":"10594:129:53","statements":[{"body":{"nativeSrc":"10638:22:53","nodeType":"YulBlock","src":"10638:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10640:16:53","nodeType":"YulIdentifier","src":"10640:16:53"},"nativeSrc":"10640:18:53","nodeType":"YulFunctionCall","src":"10640:18:53"},"nativeSrc":"10640:18:53","nodeType":"YulExpressionStatement","src":"10640:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10610:6:53","nodeType":"YulIdentifier","src":"10610:6:53"},{"kind":"number","nativeSrc":"10618:18:53","nodeType":"YulLiteral","src":"10618:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10607:2:53","nodeType":"YulIdentifier","src":"10607:2:53"},"nativeSrc":"10607:30:53","nodeType":"YulFunctionCall","src":"10607:30:53"},"nativeSrc":"10604:56:53","nodeType":"YulIf","src":"10604:56:53"},{"nativeSrc":"10669:48:53","nodeType":"YulAssignment","src":"10669:48:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"10689:6:53","nodeType":"YulIdentifier","src":"10689:6:53"},{"kind":"number","nativeSrc":"10697:2:53","nodeType":"YulLiteral","src":"10697:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10685:3:53","nodeType":"YulIdentifier","src":"10685:3:53"},"nativeSrc":"10685:15:53","nodeType":"YulFunctionCall","src":"10685:15:53"},{"arguments":[{"kind":"number","nativeSrc":"10706:2:53","nodeType":"YulLiteral","src":"10706:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10702:3:53","nodeType":"YulIdentifier","src":"10702:3:53"},"nativeSrc":"10702:7:53","nodeType":"YulFunctionCall","src":"10702:7:53"}],"functionName":{"name":"and","nativeSrc":"10681:3:53","nodeType":"YulIdentifier","src":"10681:3:53"},"nativeSrc":"10681:29:53","nodeType":"YulFunctionCall","src":"10681:29:53"},{"kind":"number","nativeSrc":"10712:4:53","nodeType":"YulLiteral","src":"10712:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10677:3:53","nodeType":"YulIdentifier","src":"10677:3:53"},"nativeSrc":"10677:40:53","nodeType":"YulFunctionCall","src":"10677:40:53"},"variableNames":[{"name":"size","nativeSrc":"10669:4:53","nodeType":"YulIdentifier","src":"10669:4:53"}]}]},"name":"array_allocation_size_bytes","nativeSrc":"10537:186:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10574:6:53","nodeType":"YulTypedName","src":"10574:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10585:4:53","nodeType":"YulTypedName","src":"10585:4:53","type":""}],"src":"10537:186:53"},{"body":{"nativeSrc":"10780:410:53","nodeType":"YulBlock","src":"10780:410:53","statements":[{"body":{"nativeSrc":"10829:16:53","nodeType":"YulBlock","src":"10829:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10838:1:53","nodeType":"YulLiteral","src":"10838:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10841:1:53","nodeType":"YulLiteral","src":"10841:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10831:6:53","nodeType":"YulIdentifier","src":"10831:6:53"},"nativeSrc":"10831:12:53","nodeType":"YulFunctionCall","src":"10831:12:53"},"nativeSrc":"10831:12:53","nodeType":"YulExpressionStatement","src":"10831:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10808:6:53","nodeType":"YulIdentifier","src":"10808:6:53"},{"kind":"number","nativeSrc":"10816:4:53","nodeType":"YulLiteral","src":"10816:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10804:3:53","nodeType":"YulIdentifier","src":"10804:3:53"},"nativeSrc":"10804:17:53","nodeType":"YulFunctionCall","src":"10804:17:53"},{"name":"end","nativeSrc":"10823:3:53","nodeType":"YulIdentifier","src":"10823:3:53"}],"functionName":{"name":"slt","nativeSrc":"10800:3:53","nodeType":"YulIdentifier","src":"10800:3:53"},"nativeSrc":"10800:27:53","nodeType":"YulFunctionCall","src":"10800:27:53"}],"functionName":{"name":"iszero","nativeSrc":"10793:6:53","nodeType":"YulIdentifier","src":"10793:6:53"},"nativeSrc":"10793:35:53","nodeType":"YulFunctionCall","src":"10793:35:53"},"nativeSrc":"10790:55:53","nodeType":"YulIf","src":"10790:55:53"},{"nativeSrc":"10854:30:53","nodeType":"YulVariableDeclaration","src":"10854:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"10877:6:53","nodeType":"YulIdentifier","src":"10877:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10864:12:53","nodeType":"YulIdentifier","src":"10864:12:53"},"nativeSrc":"10864:20:53","nodeType":"YulFunctionCall","src":"10864:20:53"},"variables":[{"name":"_1","nativeSrc":"10858:2:53","nodeType":"YulTypedName","src":"10858:2:53","type":""}]},{"nativeSrc":"10893:63:53","nodeType":"YulVariableDeclaration","src":"10893:63:53","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"10952:2:53","nodeType":"YulIdentifier","src":"10952:2:53"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"10924:27:53","nodeType":"YulIdentifier","src":"10924:27:53"},"nativeSrc":"10924:31:53","nodeType":"YulFunctionCall","src":"10924:31:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"10908:15:53","nodeType":"YulIdentifier","src":"10908:15:53"},"nativeSrc":"10908:48:53","nodeType":"YulFunctionCall","src":"10908:48:53"},"variables":[{"name":"array_1","nativeSrc":"10897:7:53","nodeType":"YulTypedName","src":"10897:7:53","type":""}]},{"expression":{"arguments":[{"name":"array_1","nativeSrc":"10972:7:53","nodeType":"YulIdentifier","src":"10972:7:53"},{"name":"_1","nativeSrc":"10981:2:53","nodeType":"YulIdentifier","src":"10981:2:53"}],"functionName":{"name":"mstore","nativeSrc":"10965:6:53","nodeType":"YulIdentifier","src":"10965:6:53"},"nativeSrc":"10965:19:53","nodeType":"YulFunctionCall","src":"10965:19:53"},"nativeSrc":"10965:19:53","nodeType":"YulExpressionStatement","src":"10965:19:53"},{"body":{"nativeSrc":"11032:16:53","nodeType":"YulBlock","src":"11032:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11041:1:53","nodeType":"YulLiteral","src":"11041:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11044:1:53","nodeType":"YulLiteral","src":"11044:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11034:6:53","nodeType":"YulIdentifier","src":"11034:6:53"},"nativeSrc":"11034:12:53","nodeType":"YulFunctionCall","src":"11034:12:53"},"nativeSrc":"11034:12:53","nodeType":"YulExpressionStatement","src":"11034:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11007:6:53","nodeType":"YulIdentifier","src":"11007:6:53"},{"name":"_1","nativeSrc":"11015:2:53","nodeType":"YulIdentifier","src":"11015:2:53"}],"functionName":{"name":"add","nativeSrc":"11003:3:53","nodeType":"YulIdentifier","src":"11003:3:53"},"nativeSrc":"11003:15:53","nodeType":"YulFunctionCall","src":"11003:15:53"},{"kind":"number","nativeSrc":"11020:4:53","nodeType":"YulLiteral","src":"11020:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10999:3:53","nodeType":"YulIdentifier","src":"10999:3:53"},"nativeSrc":"10999:26:53","nodeType":"YulFunctionCall","src":"10999:26:53"},{"name":"end","nativeSrc":"11027:3:53","nodeType":"YulIdentifier","src":"11027:3:53"}],"functionName":{"name":"gt","nativeSrc":"10996:2:53","nodeType":"YulIdentifier","src":"10996:2:53"},"nativeSrc":"10996:35:53","nodeType":"YulFunctionCall","src":"10996:35:53"},"nativeSrc":"10993:55:53","nodeType":"YulIf","src":"10993:55:53"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"11074:7:53","nodeType":"YulIdentifier","src":"11074:7:53"},{"kind":"number","nativeSrc":"11083:4:53","nodeType":"YulLiteral","src":"11083:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11070:3:53","nodeType":"YulIdentifier","src":"11070:3:53"},"nativeSrc":"11070:18:53","nodeType":"YulFunctionCall","src":"11070:18:53"},{"arguments":[{"name":"offset","nativeSrc":"11094:6:53","nodeType":"YulIdentifier","src":"11094:6:53"},{"kind":"number","nativeSrc":"11102:4:53","nodeType":"YulLiteral","src":"11102:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11090:3:53","nodeType":"YulIdentifier","src":"11090:3:53"},"nativeSrc":"11090:17:53","nodeType":"YulFunctionCall","src":"11090:17:53"},{"name":"_1","nativeSrc":"11109:2:53","nodeType":"YulIdentifier","src":"11109:2:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"11057:12:53","nodeType":"YulIdentifier","src":"11057:12:53"},"nativeSrc":"11057:55:53","nodeType":"YulFunctionCall","src":"11057:55:53"},"nativeSrc":"11057:55:53","nodeType":"YulExpressionStatement","src":"11057:55:53"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"11136:7:53","nodeType":"YulIdentifier","src":"11136:7:53"},{"name":"_1","nativeSrc":"11145:2:53","nodeType":"YulIdentifier","src":"11145:2:53"}],"functionName":{"name":"add","nativeSrc":"11132:3:53","nodeType":"YulIdentifier","src":"11132:3:53"},"nativeSrc":"11132:16:53","nodeType":"YulFunctionCall","src":"11132:16:53"},{"kind":"number","nativeSrc":"11150:4:53","nodeType":"YulLiteral","src":"11150:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11128:3:53","nodeType":"YulIdentifier","src":"11128:3:53"},"nativeSrc":"11128:27:53","nodeType":"YulFunctionCall","src":"11128:27:53"},{"kind":"number","nativeSrc":"11157:1:53","nodeType":"YulLiteral","src":"11157:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11121:6:53","nodeType":"YulIdentifier","src":"11121:6:53"},"nativeSrc":"11121:38:53","nodeType":"YulFunctionCall","src":"11121:38:53"},"nativeSrc":"11121:38:53","nodeType":"YulExpressionStatement","src":"11121:38:53"},{"nativeSrc":"11168:16:53","nodeType":"YulAssignment","src":"11168:16:53","value":{"name":"array_1","nativeSrc":"11177:7:53","nodeType":"YulIdentifier","src":"11177:7:53"},"variableNames":[{"name":"array","nativeSrc":"11168:5:53","nodeType":"YulIdentifier","src":"11168:5:53"}]}]},"name":"abi_decode_bytes","nativeSrc":"10728:462:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10754:6:53","nodeType":"YulTypedName","src":"10754:6:53","type":""},{"name":"end","nativeSrc":"10762:3:53","nodeType":"YulTypedName","src":"10762:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10770:5:53","nodeType":"YulTypedName","src":"10770:5:53","type":""}],"src":"10728:462:53"},{"body":{"nativeSrc":"11325:535:53","nodeType":"YulBlock","src":"11325:535:53","statements":[{"body":{"nativeSrc":"11372:16:53","nodeType":"YulBlock","src":"11372:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11381:1:53","nodeType":"YulLiteral","src":"11381:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11384:1:53","nodeType":"YulLiteral","src":"11384:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11374:6:53","nodeType":"YulIdentifier","src":"11374:6:53"},"nativeSrc":"11374:12:53","nodeType":"YulFunctionCall","src":"11374:12:53"},"nativeSrc":"11374:12:53","nodeType":"YulExpressionStatement","src":"11374:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11346:7:53","nodeType":"YulIdentifier","src":"11346:7:53"},{"name":"headStart","nativeSrc":"11355:9:53","nodeType":"YulIdentifier","src":"11355:9:53"}],"functionName":{"name":"sub","nativeSrc":"11342:3:53","nodeType":"YulIdentifier","src":"11342:3:53"},"nativeSrc":"11342:23:53","nodeType":"YulFunctionCall","src":"11342:23:53"},{"kind":"number","nativeSrc":"11367:3:53","nodeType":"YulLiteral","src":"11367:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"11338:3:53","nodeType":"YulIdentifier","src":"11338:3:53"},"nativeSrc":"11338:33:53","nodeType":"YulFunctionCall","src":"11338:33:53"},"nativeSrc":"11335:53:53","nodeType":"YulIf","src":"11335:53:53"},{"nativeSrc":"11397:36:53","nodeType":"YulVariableDeclaration","src":"11397:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"11423:9:53","nodeType":"YulIdentifier","src":"11423:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"11410:12:53","nodeType":"YulIdentifier","src":"11410:12:53"},"nativeSrc":"11410:23:53","nodeType":"YulFunctionCall","src":"11410:23:53"},"variables":[{"name":"value","nativeSrc":"11401:5:53","nodeType":"YulTypedName","src":"11401:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11467:5:53","nodeType":"YulIdentifier","src":"11467:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11442:24:53","nodeType":"YulIdentifier","src":"11442:24:53"},"nativeSrc":"11442:31:53","nodeType":"YulFunctionCall","src":"11442:31:53"},"nativeSrc":"11442:31:53","nodeType":"YulExpressionStatement","src":"11442:31:53"},{"nativeSrc":"11482:15:53","nodeType":"YulAssignment","src":"11482:15:53","value":{"name":"value","nativeSrc":"11492:5:53","nodeType":"YulIdentifier","src":"11492:5:53"},"variableNames":[{"name":"value0","nativeSrc":"11482:6:53","nodeType":"YulIdentifier","src":"11482:6:53"}]},{"nativeSrc":"11506:47:53","nodeType":"YulVariableDeclaration","src":"11506:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11538:9:53","nodeType":"YulIdentifier","src":"11538:9:53"},{"kind":"number","nativeSrc":"11549:2:53","nodeType":"YulLiteral","src":"11549:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11534:3:53","nodeType":"YulIdentifier","src":"11534:3:53"},"nativeSrc":"11534:18:53","nodeType":"YulFunctionCall","src":"11534:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11521:12:53","nodeType":"YulIdentifier","src":"11521:12:53"},"nativeSrc":"11521:32:53","nodeType":"YulFunctionCall","src":"11521:32:53"},"variables":[{"name":"value_1","nativeSrc":"11510:7:53","nodeType":"YulTypedName","src":"11510:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"11587:7:53","nodeType":"YulIdentifier","src":"11587:7:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11562:24:53","nodeType":"YulIdentifier","src":"11562:24:53"},"nativeSrc":"11562:33:53","nodeType":"YulFunctionCall","src":"11562:33:53"},"nativeSrc":"11562:33:53","nodeType":"YulExpressionStatement","src":"11562:33:53"},{"nativeSrc":"11604:17:53","nodeType":"YulAssignment","src":"11604:17:53","value":{"name":"value_1","nativeSrc":"11614:7:53","nodeType":"YulIdentifier","src":"11614:7:53"},"variableNames":[{"name":"value1","nativeSrc":"11604:6:53","nodeType":"YulIdentifier","src":"11604:6:53"}]},{"nativeSrc":"11630:42:53","nodeType":"YulAssignment","src":"11630:42:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11657:9:53","nodeType":"YulIdentifier","src":"11657:9:53"},{"kind":"number","nativeSrc":"11668:2:53","nodeType":"YulLiteral","src":"11668:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11653:3:53","nodeType":"YulIdentifier","src":"11653:3:53"},"nativeSrc":"11653:18:53","nodeType":"YulFunctionCall","src":"11653:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11640:12:53","nodeType":"YulIdentifier","src":"11640:12:53"},"nativeSrc":"11640:32:53","nodeType":"YulFunctionCall","src":"11640:32:53"},"variableNames":[{"name":"value2","nativeSrc":"11630:6:53","nodeType":"YulIdentifier","src":"11630:6:53"}]},{"nativeSrc":"11681:46:53","nodeType":"YulVariableDeclaration","src":"11681:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11712:9:53","nodeType":"YulIdentifier","src":"11712:9:53"},{"kind":"number","nativeSrc":"11723:2:53","nodeType":"YulLiteral","src":"11723:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11708:3:53","nodeType":"YulIdentifier","src":"11708:3:53"},"nativeSrc":"11708:18:53","nodeType":"YulFunctionCall","src":"11708:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11695:12:53","nodeType":"YulIdentifier","src":"11695:12:53"},"nativeSrc":"11695:32:53","nodeType":"YulFunctionCall","src":"11695:32:53"},"variables":[{"name":"offset","nativeSrc":"11685:6:53","nodeType":"YulTypedName","src":"11685:6:53","type":""}]},{"body":{"nativeSrc":"11770:16:53","nodeType":"YulBlock","src":"11770:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11779:1:53","nodeType":"YulLiteral","src":"11779:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11782:1:53","nodeType":"YulLiteral","src":"11782:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11772:6:53","nodeType":"YulIdentifier","src":"11772:6:53"},"nativeSrc":"11772:12:53","nodeType":"YulFunctionCall","src":"11772:12:53"},"nativeSrc":"11772:12:53","nodeType":"YulExpressionStatement","src":"11772:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11742:6:53","nodeType":"YulIdentifier","src":"11742:6:53"},{"kind":"number","nativeSrc":"11750:18:53","nodeType":"YulLiteral","src":"11750:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11739:2:53","nodeType":"YulIdentifier","src":"11739:2:53"},"nativeSrc":"11739:30:53","nodeType":"YulFunctionCall","src":"11739:30:53"},"nativeSrc":"11736:50:53","nodeType":"YulIf","src":"11736:50:53"},{"nativeSrc":"11795:59:53","nodeType":"YulAssignment","src":"11795:59:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11826:9:53","nodeType":"YulIdentifier","src":"11826:9:53"},{"name":"offset","nativeSrc":"11837:6:53","nodeType":"YulIdentifier","src":"11837:6:53"}],"functionName":{"name":"add","nativeSrc":"11822:3:53","nodeType":"YulIdentifier","src":"11822:3:53"},"nativeSrc":"11822:22:53","nodeType":"YulFunctionCall","src":"11822:22:53"},{"name":"dataEnd","nativeSrc":"11846:7:53","nodeType":"YulIdentifier","src":"11846:7:53"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"11805:16:53","nodeType":"YulIdentifier","src":"11805:16:53"},"nativeSrc":"11805:49:53","nodeType":"YulFunctionCall","src":"11805:49:53"},"variableNames":[{"name":"value3","nativeSrc":"11795:6:53","nodeType":"YulIdentifier","src":"11795:6:53"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nativeSrc":"11195:665:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11267:9:53","nodeType":"YulTypedName","src":"11267:9:53","type":""},{"name":"dataEnd","nativeSrc":"11278:7:53","nodeType":"YulTypedName","src":"11278:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11290:6:53","nodeType":"YulTypedName","src":"11290:6:53","type":""},{"name":"value1","nativeSrc":"11298:6:53","nodeType":"YulTypedName","src":"11298:6:53","type":""},{"name":"value2","nativeSrc":"11306:6:53","nodeType":"YulTypedName","src":"11306:6:53","type":""},{"name":"value3","nativeSrc":"11314:6:53","nodeType":"YulTypedName","src":"11314:6:53","type":""}],"src":"11195:665:53"},{"body":{"nativeSrc":"11977:283:53","nodeType":"YulBlock","src":"11977:283:53","statements":[{"body":{"nativeSrc":"12026:16:53","nodeType":"YulBlock","src":"12026:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12035:1:53","nodeType":"YulLiteral","src":"12035:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12038:1:53","nodeType":"YulLiteral","src":"12038:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12028:6:53","nodeType":"YulIdentifier","src":"12028:6:53"},"nativeSrc":"12028:12:53","nodeType":"YulFunctionCall","src":"12028:12:53"},"nativeSrc":"12028:12:53","nodeType":"YulExpressionStatement","src":"12028:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12005:6:53","nodeType":"YulIdentifier","src":"12005:6:53"},{"kind":"number","nativeSrc":"12013:4:53","nodeType":"YulLiteral","src":"12013:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"12001:3:53","nodeType":"YulIdentifier","src":"12001:3:53"},"nativeSrc":"12001:17:53","nodeType":"YulFunctionCall","src":"12001:17:53"},{"name":"end","nativeSrc":"12020:3:53","nodeType":"YulIdentifier","src":"12020:3:53"}],"functionName":{"name":"slt","nativeSrc":"11997:3:53","nodeType":"YulIdentifier","src":"11997:3:53"},"nativeSrc":"11997:27:53","nodeType":"YulFunctionCall","src":"11997:27:53"}],"functionName":{"name":"iszero","nativeSrc":"11990:6:53","nodeType":"YulIdentifier","src":"11990:6:53"},"nativeSrc":"11990:35:53","nodeType":"YulFunctionCall","src":"11990:35:53"},"nativeSrc":"11987:55:53","nodeType":"YulIf","src":"11987:55:53"},{"nativeSrc":"12051:30:53","nodeType":"YulAssignment","src":"12051:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"12074:6:53","nodeType":"YulIdentifier","src":"12074:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12061:12:53","nodeType":"YulIdentifier","src":"12061:12:53"},"nativeSrc":"12061:20:53","nodeType":"YulFunctionCall","src":"12061:20:53"},"variableNames":[{"name":"length","nativeSrc":"12051:6:53","nodeType":"YulIdentifier","src":"12051:6:53"}]},{"body":{"nativeSrc":"12124:16:53","nodeType":"YulBlock","src":"12124:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12133:1:53","nodeType":"YulLiteral","src":"12133:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12136:1:53","nodeType":"YulLiteral","src":"12136:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12126:6:53","nodeType":"YulIdentifier","src":"12126:6:53"},"nativeSrc":"12126:12:53","nodeType":"YulFunctionCall","src":"12126:12:53"},"nativeSrc":"12126:12:53","nodeType":"YulExpressionStatement","src":"12126:12:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"12096:6:53","nodeType":"YulIdentifier","src":"12096:6:53"},{"kind":"number","nativeSrc":"12104:18:53","nodeType":"YulLiteral","src":"12104:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12093:2:53","nodeType":"YulIdentifier","src":"12093:2:53"},"nativeSrc":"12093:30:53","nodeType":"YulFunctionCall","src":"12093:30:53"},"nativeSrc":"12090:50:53","nodeType":"YulIf","src":"12090:50:53"},{"nativeSrc":"12149:29:53","nodeType":"YulAssignment","src":"12149:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"12165:6:53","nodeType":"YulIdentifier","src":"12165:6:53"},{"kind":"number","nativeSrc":"12173:4:53","nodeType":"YulLiteral","src":"12173:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12161:3:53","nodeType":"YulIdentifier","src":"12161:3:53"},"nativeSrc":"12161:17:53","nodeType":"YulFunctionCall","src":"12161:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"12149:8:53","nodeType":"YulIdentifier","src":"12149:8:53"}]},{"body":{"nativeSrc":"12238:16:53","nodeType":"YulBlock","src":"12238:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12247:1:53","nodeType":"YulLiteral","src":"12247:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12250:1:53","nodeType":"YulLiteral","src":"12250:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12240:6:53","nodeType":"YulIdentifier","src":"12240:6:53"},"nativeSrc":"12240:12:53","nodeType":"YulFunctionCall","src":"12240:12:53"},"nativeSrc":"12240:12:53","nodeType":"YulExpressionStatement","src":"12240:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12201:6:53","nodeType":"YulIdentifier","src":"12201:6:53"},{"arguments":[{"kind":"number","nativeSrc":"12213:1:53","nodeType":"YulLiteral","src":"12213:1:53","type":"","value":"5"},{"name":"length","nativeSrc":"12216:6:53","nodeType":"YulIdentifier","src":"12216:6:53"}],"functionName":{"name":"shl","nativeSrc":"12209:3:53","nodeType":"YulIdentifier","src":"12209:3:53"},"nativeSrc":"12209:14:53","nodeType":"YulFunctionCall","src":"12209:14:53"}],"functionName":{"name":"add","nativeSrc":"12197:3:53","nodeType":"YulIdentifier","src":"12197:3:53"},"nativeSrc":"12197:27:53","nodeType":"YulFunctionCall","src":"12197:27:53"},{"kind":"number","nativeSrc":"12226:4:53","nodeType":"YulLiteral","src":"12226:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12193:3:53","nodeType":"YulIdentifier","src":"12193:3:53"},"nativeSrc":"12193:38:53","nodeType":"YulFunctionCall","src":"12193:38:53"},{"name":"end","nativeSrc":"12233:3:53","nodeType":"YulIdentifier","src":"12233:3:53"}],"functionName":{"name":"gt","nativeSrc":"12190:2:53","nodeType":"YulIdentifier","src":"12190:2:53"},"nativeSrc":"12190:47:53","nodeType":"YulFunctionCall","src":"12190:47:53"},"nativeSrc":"12187:67:53","nodeType":"YulIf","src":"12187:67:53"}]},"name":"abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata","nativeSrc":"11865:395:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11940:6:53","nodeType":"YulTypedName","src":"11940:6:53","type":""},{"name":"end","nativeSrc":"11948:3:53","nodeType":"YulTypedName","src":"11948:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"11956:8:53","nodeType":"YulTypedName","src":"11956:8:53","type":""},{"name":"length","nativeSrc":"11966:6:53","nodeType":"YulTypedName","src":"11966:6:53","type":""}],"src":"11865:395:53"},{"body":{"nativeSrc":"12409:360:53","nodeType":"YulBlock","src":"12409:360:53","statements":[{"body":{"nativeSrc":"12455:16:53","nodeType":"YulBlock","src":"12455:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12464:1:53","nodeType":"YulLiteral","src":"12464:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12467:1:53","nodeType":"YulLiteral","src":"12467:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12457:6:53","nodeType":"YulIdentifier","src":"12457:6:53"},"nativeSrc":"12457:12:53","nodeType":"YulFunctionCall","src":"12457:12:53"},"nativeSrc":"12457:12:53","nodeType":"YulExpressionStatement","src":"12457:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12430:7:53","nodeType":"YulIdentifier","src":"12430:7:53"},{"name":"headStart","nativeSrc":"12439:9:53","nodeType":"YulIdentifier","src":"12439:9:53"}],"functionName":{"name":"sub","nativeSrc":"12426:3:53","nodeType":"YulIdentifier","src":"12426:3:53"},"nativeSrc":"12426:23:53","nodeType":"YulFunctionCall","src":"12426:23:53"},{"kind":"number","nativeSrc":"12451:2:53","nodeType":"YulLiteral","src":"12451:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12422:3:53","nodeType":"YulIdentifier","src":"12422:3:53"},"nativeSrc":"12422:32:53","nodeType":"YulFunctionCall","src":"12422:32:53"},"nativeSrc":"12419:52:53","nodeType":"YulIf","src":"12419:52:53"},{"nativeSrc":"12480:37:53","nodeType":"YulVariableDeclaration","src":"12480:37:53","value":{"arguments":[{"name":"headStart","nativeSrc":"12507:9:53","nodeType":"YulIdentifier","src":"12507:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"12494:12:53","nodeType":"YulIdentifier","src":"12494:12:53"},"nativeSrc":"12494:23:53","nodeType":"YulFunctionCall","src":"12494:23:53"},"variables":[{"name":"offset","nativeSrc":"12484:6:53","nodeType":"YulTypedName","src":"12484:6:53","type":""}]},{"body":{"nativeSrc":"12560:16:53","nodeType":"YulBlock","src":"12560:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12569:1:53","nodeType":"YulLiteral","src":"12569:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12572:1:53","nodeType":"YulLiteral","src":"12572:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12562:6:53","nodeType":"YulIdentifier","src":"12562:6:53"},"nativeSrc":"12562:12:53","nodeType":"YulFunctionCall","src":"12562:12:53"},"nativeSrc":"12562:12:53","nodeType":"YulExpressionStatement","src":"12562:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12532:6:53","nodeType":"YulIdentifier","src":"12532:6:53"},{"kind":"number","nativeSrc":"12540:18:53","nodeType":"YulLiteral","src":"12540:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12529:2:53","nodeType":"YulIdentifier","src":"12529:2:53"},"nativeSrc":"12529:30:53","nodeType":"YulFunctionCall","src":"12529:30:53"},"nativeSrc":"12526:50:53","nodeType":"YulIf","src":"12526:50:53"},{"nativeSrc":"12585:124:53","nodeType":"YulVariableDeclaration","src":"12585:124:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12681:9:53","nodeType":"YulIdentifier","src":"12681:9:53"},{"name":"offset","nativeSrc":"12692:6:53","nodeType":"YulIdentifier","src":"12692:6:53"}],"functionName":{"name":"add","nativeSrc":"12677:3:53","nodeType":"YulIdentifier","src":"12677:3:53"},"nativeSrc":"12677:22:53","nodeType":"YulFunctionCall","src":"12677:22:53"},{"name":"dataEnd","nativeSrc":"12701:7:53","nodeType":"YulIdentifier","src":"12701:7:53"}],"functionName":{"name":"abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata","nativeSrc":"12611:65:53","nodeType":"YulIdentifier","src":"12611:65:53"},"nativeSrc":"12611:98:53","nodeType":"YulFunctionCall","src":"12611:98:53"},"variables":[{"name":"value0_1","nativeSrc":"12589:8:53","nodeType":"YulTypedName","src":"12589:8:53","type":""},{"name":"value1_1","nativeSrc":"12599:8:53","nodeType":"YulTypedName","src":"12599:8:53","type":""}]},{"nativeSrc":"12718:18:53","nodeType":"YulAssignment","src":"12718:18:53","value":{"name":"value0_1","nativeSrc":"12728:8:53","nodeType":"YulIdentifier","src":"12728:8:53"},"variableNames":[{"name":"value0","nativeSrc":"12718:6:53","nodeType":"YulIdentifier","src":"12718:6:53"}]},{"nativeSrc":"12745:18:53","nodeType":"YulAssignment","src":"12745:18:53","value":{"name":"value1_1","nativeSrc":"12755:8:53","nodeType":"YulIdentifier","src":"12755:8:53"},"variableNames":[{"name":"value1","nativeSrc":"12745:6:53","nodeType":"YulIdentifier","src":"12745:6:53"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"12265:504:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12367:9:53","nodeType":"YulTypedName","src":"12367:9:53","type":""},{"name":"dataEnd","nativeSrc":"12378:7:53","nodeType":"YulTypedName","src":"12378:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12390:6:53","nodeType":"YulTypedName","src":"12390:6:53","type":""},{"name":"value1","nativeSrc":"12398:6:53","nodeType":"YulTypedName","src":"12398:6:53","type":""}],"src":"12265:504:53"},{"body":{"nativeSrc":"12843:115:53","nodeType":"YulBlock","src":"12843:115:53","statements":[{"body":{"nativeSrc":"12889:16:53","nodeType":"YulBlock","src":"12889:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12898:1:53","nodeType":"YulLiteral","src":"12898:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12901:1:53","nodeType":"YulLiteral","src":"12901:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12891:6:53","nodeType":"YulIdentifier","src":"12891:6:53"},"nativeSrc":"12891:12:53","nodeType":"YulFunctionCall","src":"12891:12:53"},"nativeSrc":"12891:12:53","nodeType":"YulExpressionStatement","src":"12891:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12864:7:53","nodeType":"YulIdentifier","src":"12864:7:53"},{"name":"headStart","nativeSrc":"12873:9:53","nodeType":"YulIdentifier","src":"12873:9:53"}],"functionName":{"name":"sub","nativeSrc":"12860:3:53","nodeType":"YulIdentifier","src":"12860:3:53"},"nativeSrc":"12860:23:53","nodeType":"YulFunctionCall","src":"12860:23:53"},{"kind":"number","nativeSrc":"12885:2:53","nodeType":"YulLiteral","src":"12885:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12856:3:53","nodeType":"YulIdentifier","src":"12856:3:53"},"nativeSrc":"12856:32:53","nodeType":"YulFunctionCall","src":"12856:32:53"},"nativeSrc":"12853:52:53","nodeType":"YulIf","src":"12853:52:53"},{"nativeSrc":"12914:38:53","nodeType":"YulAssignment","src":"12914:38:53","value":{"arguments":[{"name":"headStart","nativeSrc":"12942:9:53","nodeType":"YulIdentifier","src":"12942:9:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"12924:17:53","nodeType":"YulIdentifier","src":"12924:17:53"},"nativeSrc":"12924:28:53","nodeType":"YulFunctionCall","src":"12924:28:53"},"variableNames":[{"name":"value0","nativeSrc":"12914:6:53","nodeType":"YulIdentifier","src":"12914:6:53"}]}]},"name":"abi_decode_tuple_t_uint32","nativeSrc":"12774:184:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12809:9:53","nodeType":"YulTypedName","src":"12809:9:53","type":""},{"name":"dataEnd","nativeSrc":"12820:7:53","nodeType":"YulTypedName","src":"12820:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12832:6:53","nodeType":"YulTypedName","src":"12832:6:53","type":""}],"src":"12774:184:53"},{"body":{"nativeSrc":"13064:76:53","nodeType":"YulBlock","src":"13064:76:53","statements":[{"nativeSrc":"13074:26:53","nodeType":"YulAssignment","src":"13074:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"13086:9:53","nodeType":"YulIdentifier","src":"13086:9:53"},{"kind":"number","nativeSrc":"13097:2:53","nodeType":"YulLiteral","src":"13097:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13082:3:53","nodeType":"YulIdentifier","src":"13082:3:53"},"nativeSrc":"13082:18:53","nodeType":"YulFunctionCall","src":"13082:18:53"},"variableNames":[{"name":"tail","nativeSrc":"13074:4:53","nodeType":"YulIdentifier","src":"13074:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13116:9:53","nodeType":"YulIdentifier","src":"13116:9:53"},{"name":"value0","nativeSrc":"13127:6:53","nodeType":"YulIdentifier","src":"13127:6:53"}],"functionName":{"name":"mstore","nativeSrc":"13109:6:53","nodeType":"YulIdentifier","src":"13109:6:53"},"nativeSrc":"13109:25:53","nodeType":"YulFunctionCall","src":"13109:25:53"},"nativeSrc":"13109:25:53","nodeType":"YulExpressionStatement","src":"13109:25:53"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"12963:177:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13033:9:53","nodeType":"YulTypedName","src":"13033:9:53","type":""},{"name":"value0","nativeSrc":"13044:6:53","nodeType":"YulTypedName","src":"13044:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13055:4:53","nodeType":"YulTypedName","src":"13055:4:53","type":""}],"src":"12963:177:53"},{"body":{"nativeSrc":"13266:432:53","nodeType":"YulBlock","src":"13266:432:53","statements":[{"body":{"nativeSrc":"13312:16:53","nodeType":"YulBlock","src":"13312:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13321:1:53","nodeType":"YulLiteral","src":"13321:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13324:1:53","nodeType":"YulLiteral","src":"13324:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13314:6:53","nodeType":"YulIdentifier","src":"13314:6:53"},"nativeSrc":"13314:12:53","nodeType":"YulFunctionCall","src":"13314:12:53"},"nativeSrc":"13314:12:53","nodeType":"YulExpressionStatement","src":"13314:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13287:7:53","nodeType":"YulIdentifier","src":"13287:7:53"},{"name":"headStart","nativeSrc":"13296:9:53","nodeType":"YulIdentifier","src":"13296:9:53"}],"functionName":{"name":"sub","nativeSrc":"13283:3:53","nodeType":"YulIdentifier","src":"13283:3:53"},"nativeSrc":"13283:23:53","nodeType":"YulFunctionCall","src":"13283:23:53"},{"kind":"number","nativeSrc":"13308:2:53","nodeType":"YulLiteral","src":"13308:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"13279:3:53","nodeType":"YulIdentifier","src":"13279:3:53"},"nativeSrc":"13279:32:53","nodeType":"YulFunctionCall","src":"13279:32:53"},"nativeSrc":"13276:52:53","nodeType":"YulIf","src":"13276:52:53"},{"nativeSrc":"13337:38:53","nodeType":"YulAssignment","src":"13337:38:53","value":{"arguments":[{"name":"headStart","nativeSrc":"13365:9:53","nodeType":"YulIdentifier","src":"13365:9:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"13347:17:53","nodeType":"YulIdentifier","src":"13347:17:53"},"nativeSrc":"13347:28:53","nodeType":"YulFunctionCall","src":"13347:28:53"},"variableNames":[{"name":"value0","nativeSrc":"13337:6:53","nodeType":"YulIdentifier","src":"13337:6:53"}]},{"nativeSrc":"13384:47:53","nodeType":"YulAssignment","src":"13384:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13416:9:53","nodeType":"YulIdentifier","src":"13416:9:53"},{"kind":"number","nativeSrc":"13427:2:53","nodeType":"YulLiteral","src":"13427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13412:3:53","nodeType":"YulIdentifier","src":"13412:3:53"},"nativeSrc":"13412:18:53","nodeType":"YulFunctionCall","src":"13412:18:53"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"13394:17:53","nodeType":"YulIdentifier","src":"13394:17:53"},"nativeSrc":"13394:37:53","nodeType":"YulFunctionCall","src":"13394:37:53"},"variableNames":[{"name":"value1","nativeSrc":"13384:6:53","nodeType":"YulIdentifier","src":"13384:6:53"}]},{"nativeSrc":"13440:46:53","nodeType":"YulVariableDeclaration","src":"13440:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13471:9:53","nodeType":"YulIdentifier","src":"13471:9:53"},{"kind":"number","nativeSrc":"13482:2:53","nodeType":"YulLiteral","src":"13482:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13467:3:53","nodeType":"YulIdentifier","src":"13467:3:53"},"nativeSrc":"13467:18:53","nodeType":"YulFunctionCall","src":"13467:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"13454:12:53","nodeType":"YulIdentifier","src":"13454:12:53"},"nativeSrc":"13454:32:53","nodeType":"YulFunctionCall","src":"13454:32:53"},"variables":[{"name":"offset","nativeSrc":"13444:6:53","nodeType":"YulTypedName","src":"13444:6:53","type":""}]},{"body":{"nativeSrc":"13529:16:53","nodeType":"YulBlock","src":"13529:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13538:1:53","nodeType":"YulLiteral","src":"13538:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13541:1:53","nodeType":"YulLiteral","src":"13541:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13531:6:53","nodeType":"YulIdentifier","src":"13531:6:53"},"nativeSrc":"13531:12:53","nodeType":"YulFunctionCall","src":"13531:12:53"},"nativeSrc":"13531:12:53","nodeType":"YulExpressionStatement","src":"13531:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13501:6:53","nodeType":"YulIdentifier","src":"13501:6:53"},{"kind":"number","nativeSrc":"13509:18:53","nodeType":"YulLiteral","src":"13509:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13498:2:53","nodeType":"YulIdentifier","src":"13498:2:53"},"nativeSrc":"13498:30:53","nodeType":"YulFunctionCall","src":"13498:30:53"},"nativeSrc":"13495:50:53","nodeType":"YulIf","src":"13495:50:53"},{"nativeSrc":"13554:84:53","nodeType":"YulVariableDeclaration","src":"13554:84:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13610:9:53","nodeType":"YulIdentifier","src":"13610:9:53"},{"name":"offset","nativeSrc":"13621:6:53","nodeType":"YulIdentifier","src":"13621:6:53"}],"functionName":{"name":"add","nativeSrc":"13606:3:53","nodeType":"YulIdentifier","src":"13606:3:53"},"nativeSrc":"13606:22:53","nodeType":"YulFunctionCall","src":"13606:22:53"},{"name":"dataEnd","nativeSrc":"13630:7:53","nodeType":"YulIdentifier","src":"13630:7:53"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"13580:25:53","nodeType":"YulIdentifier","src":"13580:25:53"},"nativeSrc":"13580:58:53","nodeType":"YulFunctionCall","src":"13580:58:53"},"variables":[{"name":"value2_1","nativeSrc":"13558:8:53","nodeType":"YulTypedName","src":"13558:8:53","type":""},{"name":"value3_1","nativeSrc":"13568:8:53","nodeType":"YulTypedName","src":"13568:8:53","type":""}]},{"nativeSrc":"13647:18:53","nodeType":"YulAssignment","src":"13647:18:53","value":{"name":"value2_1","nativeSrc":"13657:8:53","nodeType":"YulIdentifier","src":"13657:8:53"},"variableNames":[{"name":"value2","nativeSrc":"13647:6:53","nodeType":"YulIdentifier","src":"13647:6:53"}]},{"nativeSrc":"13674:18:53","nodeType":"YulAssignment","src":"13674:18:53","value":{"name":"value3_1","nativeSrc":"13684:8:53","nodeType":"YulIdentifier","src":"13684:8:53"},"variableNames":[{"name":"value3","nativeSrc":"13674:6:53","nodeType":"YulIdentifier","src":"13674:6:53"}]}]},"name":"abi_decode_tuple_t_uint32t_uint16t_bytes_calldata_ptr","nativeSrc":"13145:553:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13208:9:53","nodeType":"YulTypedName","src":"13208:9:53","type":""},{"name":"dataEnd","nativeSrc":"13219:7:53","nodeType":"YulTypedName","src":"13219:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13231:6:53","nodeType":"YulTypedName","src":"13231:6:53","type":""},{"name":"value1","nativeSrc":"13239:6:53","nodeType":"YulTypedName","src":"13239:6:53","type":""},{"name":"value2","nativeSrc":"13247:6:53","nodeType":"YulTypedName","src":"13247:6:53","type":""},{"name":"value3","nativeSrc":"13255:6:53","nodeType":"YulTypedName","src":"13255:6:53","type":""}],"src":"13145:553:53"},{"body":{"nativeSrc":"13841:360:53","nodeType":"YulBlock","src":"13841:360:53","statements":[{"body":{"nativeSrc":"13887:16:53","nodeType":"YulBlock","src":"13887:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13896:1:53","nodeType":"YulLiteral","src":"13896:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13899:1:53","nodeType":"YulLiteral","src":"13899:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13889:6:53","nodeType":"YulIdentifier","src":"13889:6:53"},"nativeSrc":"13889:12:53","nodeType":"YulFunctionCall","src":"13889:12:53"},"nativeSrc":"13889:12:53","nodeType":"YulExpressionStatement","src":"13889:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13862:7:53","nodeType":"YulIdentifier","src":"13862:7:53"},{"name":"headStart","nativeSrc":"13871:9:53","nodeType":"YulIdentifier","src":"13871:9:53"}],"functionName":{"name":"sub","nativeSrc":"13858:3:53","nodeType":"YulIdentifier","src":"13858:3:53"},"nativeSrc":"13858:23:53","nodeType":"YulFunctionCall","src":"13858:23:53"},{"kind":"number","nativeSrc":"13883:2:53","nodeType":"YulLiteral","src":"13883:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13854:3:53","nodeType":"YulIdentifier","src":"13854:3:53"},"nativeSrc":"13854:32:53","nodeType":"YulFunctionCall","src":"13854:32:53"},"nativeSrc":"13851:52:53","nodeType":"YulIf","src":"13851:52:53"},{"nativeSrc":"13912:37:53","nodeType":"YulVariableDeclaration","src":"13912:37:53","value":{"arguments":[{"name":"headStart","nativeSrc":"13939:9:53","nodeType":"YulIdentifier","src":"13939:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"13926:12:53","nodeType":"YulIdentifier","src":"13926:12:53"},"nativeSrc":"13926:23:53","nodeType":"YulFunctionCall","src":"13926:23:53"},"variables":[{"name":"offset","nativeSrc":"13916:6:53","nodeType":"YulTypedName","src":"13916:6:53","type":""}]},{"body":{"nativeSrc":"13992:16:53","nodeType":"YulBlock","src":"13992:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14001:1:53","nodeType":"YulLiteral","src":"14001:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14004:1:53","nodeType":"YulLiteral","src":"14004:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13994:6:53","nodeType":"YulIdentifier","src":"13994:6:53"},"nativeSrc":"13994:12:53","nodeType":"YulFunctionCall","src":"13994:12:53"},"nativeSrc":"13994:12:53","nodeType":"YulExpressionStatement","src":"13994:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13964:6:53","nodeType":"YulIdentifier","src":"13964:6:53"},{"kind":"number","nativeSrc":"13972:18:53","nodeType":"YulLiteral","src":"13972:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13961:2:53","nodeType":"YulIdentifier","src":"13961:2:53"},"nativeSrc":"13961:30:53","nodeType":"YulFunctionCall","src":"13961:30:53"},"nativeSrc":"13958:50:53","nodeType":"YulIf","src":"13958:50:53"},{"nativeSrc":"14017:124:53","nodeType":"YulVariableDeclaration","src":"14017:124:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14113:9:53","nodeType":"YulIdentifier","src":"14113:9:53"},{"name":"offset","nativeSrc":"14124:6:53","nodeType":"YulIdentifier","src":"14124:6:53"}],"functionName":{"name":"add","nativeSrc":"14109:3:53","nodeType":"YulIdentifier","src":"14109:3:53"},"nativeSrc":"14109:22:53","nodeType":"YulFunctionCall","src":"14109:22:53"},{"name":"dataEnd","nativeSrc":"14133:7:53","nodeType":"YulIdentifier","src":"14133:7:53"}],"functionName":{"name":"abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata","nativeSrc":"14043:65:53","nodeType":"YulIdentifier","src":"14043:65:53"},"nativeSrc":"14043:98:53","nodeType":"YulFunctionCall","src":"14043:98:53"},"variables":[{"name":"value0_1","nativeSrc":"14021:8:53","nodeType":"YulTypedName","src":"14021:8:53","type":""},{"name":"value1_1","nativeSrc":"14031:8:53","nodeType":"YulTypedName","src":"14031:8:53","type":""}]},{"nativeSrc":"14150:18:53","nodeType":"YulAssignment","src":"14150:18:53","value":{"name":"value0_1","nativeSrc":"14160:8:53","nodeType":"YulIdentifier","src":"14160:8:53"},"variableNames":[{"name":"value0","nativeSrc":"14150:6:53","nodeType":"YulIdentifier","src":"14150:6:53"}]},{"nativeSrc":"14177:18:53","nodeType":"YulAssignment","src":"14177:18:53","value":{"name":"value1_1","nativeSrc":"14187:8:53","nodeType":"YulIdentifier","src":"14187:8:53"},"variableNames":[{"name":"value1","nativeSrc":"14177:6:53","nodeType":"YulIdentifier","src":"14177:6:53"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_InboundPacket_$2010_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"13703:498:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13799:9:53","nodeType":"YulTypedName","src":"13799:9:53","type":""},{"name":"dataEnd","nativeSrc":"13810:7:53","nodeType":"YulTypedName","src":"13810:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13822:6:53","nodeType":"YulTypedName","src":"13822:6:53","type":""},{"name":"value1","nativeSrc":"13830:6:53","nodeType":"YulTypedName","src":"13830:6:53","type":""}],"src":"13703:498:53"},{"body":{"nativeSrc":"14319:376:53","nodeType":"YulBlock","src":"14319:376:53","statements":[{"body":{"nativeSrc":"14365:16:53","nodeType":"YulBlock","src":"14365:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14374:1:53","nodeType":"YulLiteral","src":"14374:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14377:1:53","nodeType":"YulLiteral","src":"14377:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14367:6:53","nodeType":"YulIdentifier","src":"14367:6:53"},"nativeSrc":"14367:12:53","nodeType":"YulFunctionCall","src":"14367:12:53"},"nativeSrc":"14367:12:53","nodeType":"YulExpressionStatement","src":"14367:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14340:7:53","nodeType":"YulIdentifier","src":"14340:7:53"},{"name":"headStart","nativeSrc":"14349:9:53","nodeType":"YulIdentifier","src":"14349:9:53"}],"functionName":{"name":"sub","nativeSrc":"14336:3:53","nodeType":"YulIdentifier","src":"14336:3:53"},"nativeSrc":"14336:23:53","nodeType":"YulFunctionCall","src":"14336:23:53"},{"kind":"number","nativeSrc":"14361:2:53","nodeType":"YulLiteral","src":"14361:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"14332:3:53","nodeType":"YulIdentifier","src":"14332:3:53"},"nativeSrc":"14332:32:53","nodeType":"YulFunctionCall","src":"14332:32:53"},"nativeSrc":"14329:52:53","nodeType":"YulIf","src":"14329:52:53"},{"nativeSrc":"14390:37:53","nodeType":"YulVariableDeclaration","src":"14390:37:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14417:9:53","nodeType":"YulIdentifier","src":"14417:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"14404:12:53","nodeType":"YulIdentifier","src":"14404:12:53"},"nativeSrc":"14404:23:53","nodeType":"YulFunctionCall","src":"14404:23:53"},"variables":[{"name":"offset","nativeSrc":"14394:6:53","nodeType":"YulTypedName","src":"14394:6:53","type":""}]},{"body":{"nativeSrc":"14470:16:53","nodeType":"YulBlock","src":"14470:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14479:1:53","nodeType":"YulLiteral","src":"14479:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14482:1:53","nodeType":"YulLiteral","src":"14482:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14472:6:53","nodeType":"YulIdentifier","src":"14472:6:53"},"nativeSrc":"14472:12:53","nodeType":"YulFunctionCall","src":"14472:12:53"},"nativeSrc":"14472:12:53","nodeType":"YulExpressionStatement","src":"14472:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14442:6:53","nodeType":"YulIdentifier","src":"14442:6:53"},{"kind":"number","nativeSrc":"14450:18:53","nodeType":"YulLiteral","src":"14450:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14439:2:53","nodeType":"YulIdentifier","src":"14439:2:53"},"nativeSrc":"14439:30:53","nodeType":"YulFunctionCall","src":"14439:30:53"},"nativeSrc":"14436:50:53","nodeType":"YulIf","src":"14436:50:53"},{"nativeSrc":"14495:79:53","nodeType":"YulAssignment","src":"14495:79:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14546:9:53","nodeType":"YulIdentifier","src":"14546:9:53"},{"name":"offset","nativeSrc":"14557:6:53","nodeType":"YulIdentifier","src":"14557:6:53"}],"functionName":{"name":"add","nativeSrc":"14542:3:53","nodeType":"YulIdentifier","src":"14542:3:53"},"nativeSrc":"14542:22:53","nodeType":"YulFunctionCall","src":"14542:22:53"},{"name":"dataEnd","nativeSrc":"14566:7:53","nodeType":"YulIdentifier","src":"14566:7:53"}],"functionName":{"name":"abi_decode_struct_SendParam_calldata","nativeSrc":"14505:36:53","nodeType":"YulIdentifier","src":"14505:36:53"},"nativeSrc":"14505:69:53","nodeType":"YulFunctionCall","src":"14505:69:53"},"variableNames":[{"name":"value0","nativeSrc":"14495:6:53","nodeType":"YulIdentifier","src":"14495:6:53"}]},{"nativeSrc":"14583:45:53","nodeType":"YulVariableDeclaration","src":"14583:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14613:9:53","nodeType":"YulIdentifier","src":"14613:9:53"},{"kind":"number","nativeSrc":"14624:2:53","nodeType":"YulLiteral","src":"14624:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14609:3:53","nodeType":"YulIdentifier","src":"14609:3:53"},"nativeSrc":"14609:18:53","nodeType":"YulFunctionCall","src":"14609:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"14596:12:53","nodeType":"YulIdentifier","src":"14596:12:53"},"nativeSrc":"14596:32:53","nodeType":"YulFunctionCall","src":"14596:32:53"},"variables":[{"name":"value","nativeSrc":"14587:5:53","nodeType":"YulTypedName","src":"14587:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14659:5:53","nodeType":"YulIdentifier","src":"14659:5:53"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"14637:21:53","nodeType":"YulIdentifier","src":"14637:21:53"},"nativeSrc":"14637:28:53","nodeType":"YulFunctionCall","src":"14637:28:53"},"nativeSrc":"14637:28:53","nodeType":"YulExpressionStatement","src":"14637:28:53"},{"nativeSrc":"14674:15:53","nodeType":"YulAssignment","src":"14674:15:53","value":{"name":"value","nativeSrc":"14684:5:53","nodeType":"YulIdentifier","src":"14684:5:53"},"variableNames":[{"name":"value1","nativeSrc":"14674:6:53","nodeType":"YulIdentifier","src":"14674:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_bool","nativeSrc":"14206:489:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14277:9:53","nodeType":"YulTypedName","src":"14277:9:53","type":""},{"name":"dataEnd","nativeSrc":"14288:7:53","nodeType":"YulTypedName","src":"14288:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14300:6:53","nodeType":"YulTypedName","src":"14300:6:53","type":""},{"name":"value1","nativeSrc":"14308:6:53","nodeType":"YulTypedName","src":"14308:6:53","type":""}],"src":"14206:489:53"},{"body":{"nativeSrc":"14861:100:53","nodeType":"YulBlock","src":"14861:100:53","statements":[{"nativeSrc":"14871:26:53","nodeType":"YulAssignment","src":"14871:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14883:9:53","nodeType":"YulIdentifier","src":"14883:9:53"},{"kind":"number","nativeSrc":"14894:2:53","nodeType":"YulLiteral","src":"14894:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14879:3:53","nodeType":"YulIdentifier","src":"14879:3:53"},"nativeSrc":"14879:18:53","nodeType":"YulFunctionCall","src":"14879:18:53"},"variableNames":[{"name":"tail","nativeSrc":"14871:4:53","nodeType":"YulIdentifier","src":"14871:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14937:6:53","nodeType":"YulIdentifier","src":"14937:6:53"},{"name":"headStart","nativeSrc":"14945:9:53","nodeType":"YulIdentifier","src":"14945:9:53"}],"functionName":{"name":"abi_encode_struct_MessagingFee","nativeSrc":"14906:30:53","nodeType":"YulIdentifier","src":"14906:30:53"},"nativeSrc":"14906:49:53","nodeType":"YulFunctionCall","src":"14906:49:53"},"nativeSrc":"14906:49:53","nodeType":"YulExpressionStatement","src":"14906:49:53"}]},"name":"abi_encode_tuple_t_struct$_MessagingFee_$2169_memory_ptr__to_t_struct$_MessagingFee_$2169_memory_ptr__fromStack_reversed","nativeSrc":"14700:261:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14830:9:53","nodeType":"YulTypedName","src":"14830:9:53","type":""},{"name":"value0","nativeSrc":"14841:6:53","nodeType":"YulTypedName","src":"14841:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14852:4:53","nodeType":"YulTypedName","src":"14852:4:53","type":""}],"src":"14700:261:53"},{"body":{"nativeSrc":"15053:301:53","nodeType":"YulBlock","src":"15053:301:53","statements":[{"body":{"nativeSrc":"15099:16:53","nodeType":"YulBlock","src":"15099:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15108:1:53","nodeType":"YulLiteral","src":"15108:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15111:1:53","nodeType":"YulLiteral","src":"15111:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15101:6:53","nodeType":"YulIdentifier","src":"15101:6:53"},"nativeSrc":"15101:12:53","nodeType":"YulFunctionCall","src":"15101:12:53"},"nativeSrc":"15101:12:53","nodeType":"YulExpressionStatement","src":"15101:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15074:7:53","nodeType":"YulIdentifier","src":"15074:7:53"},{"name":"headStart","nativeSrc":"15083:9:53","nodeType":"YulIdentifier","src":"15083:9:53"}],"functionName":{"name":"sub","nativeSrc":"15070:3:53","nodeType":"YulIdentifier","src":"15070:3:53"},"nativeSrc":"15070:23:53","nodeType":"YulFunctionCall","src":"15070:23:53"},{"kind":"number","nativeSrc":"15095:2:53","nodeType":"YulLiteral","src":"15095:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15066:3:53","nodeType":"YulIdentifier","src":"15066:3:53"},"nativeSrc":"15066:32:53","nodeType":"YulFunctionCall","src":"15066:32:53"},"nativeSrc":"15063:52:53","nodeType":"YulIf","src":"15063:52:53"},{"nativeSrc":"15124:36:53","nodeType":"YulVariableDeclaration","src":"15124:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"15150:9:53","nodeType":"YulIdentifier","src":"15150:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"15137:12:53","nodeType":"YulIdentifier","src":"15137:12:53"},"nativeSrc":"15137:23:53","nodeType":"YulFunctionCall","src":"15137:23:53"},"variables":[{"name":"value","nativeSrc":"15128:5:53","nodeType":"YulTypedName","src":"15128:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15194:5:53","nodeType":"YulIdentifier","src":"15194:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"15169:24:53","nodeType":"YulIdentifier","src":"15169:24:53"},"nativeSrc":"15169:31:53","nodeType":"YulFunctionCall","src":"15169:31:53"},"nativeSrc":"15169:31:53","nodeType":"YulExpressionStatement","src":"15169:31:53"},{"nativeSrc":"15209:15:53","nodeType":"YulAssignment","src":"15209:15:53","value":{"name":"value","nativeSrc":"15219:5:53","nodeType":"YulIdentifier","src":"15219:5:53"},"variableNames":[{"name":"value0","nativeSrc":"15209:6:53","nodeType":"YulIdentifier","src":"15209:6:53"}]},{"nativeSrc":"15233:47:53","nodeType":"YulVariableDeclaration","src":"15233:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15265:9:53","nodeType":"YulIdentifier","src":"15265:9:53"},{"kind":"number","nativeSrc":"15276:2:53","nodeType":"YulLiteral","src":"15276:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15261:3:53","nodeType":"YulIdentifier","src":"15261:3:53"},"nativeSrc":"15261:18:53","nodeType":"YulFunctionCall","src":"15261:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"15248:12:53","nodeType":"YulIdentifier","src":"15248:12:53"},"nativeSrc":"15248:32:53","nodeType":"YulFunctionCall","src":"15248:32:53"},"variables":[{"name":"value_1","nativeSrc":"15237:7:53","nodeType":"YulTypedName","src":"15237:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"15314:7:53","nodeType":"YulIdentifier","src":"15314:7:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"15289:24:53","nodeType":"YulIdentifier","src":"15289:24:53"},"nativeSrc":"15289:33:53","nodeType":"YulFunctionCall","src":"15289:33:53"},"nativeSrc":"15289:33:53","nodeType":"YulExpressionStatement","src":"15289:33:53"},{"nativeSrc":"15331:17:53","nodeType":"YulAssignment","src":"15331:17:53","value":{"name":"value_1","nativeSrc":"15341:7:53","nodeType":"YulIdentifier","src":"15341:7:53"},"variableNames":[{"name":"value1","nativeSrc":"15331:6:53","nodeType":"YulIdentifier","src":"15331:6:53"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"14966:388:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15011:9:53","nodeType":"YulTypedName","src":"15011:9:53","type":""},{"name":"dataEnd","nativeSrc":"15022:7:53","nodeType":"YulTypedName","src":"15022:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15034:6:53","nodeType":"YulTypedName","src":"15034:6:53","type":""},{"name":"value1","nativeSrc":"15042:6:53","nodeType":"YulTypedName","src":"15042:6:53","type":""}],"src":"14966:388:53"},{"body":{"nativeSrc":"15455:140:53","nodeType":"YulBlock","src":"15455:140:53","statements":[{"body":{"nativeSrc":"15501:16:53","nodeType":"YulBlock","src":"15501:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15510:1:53","nodeType":"YulLiteral","src":"15510:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15513:1:53","nodeType":"YulLiteral","src":"15513:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15503:6:53","nodeType":"YulIdentifier","src":"15503:6:53"},"nativeSrc":"15503:12:53","nodeType":"YulFunctionCall","src":"15503:12:53"},"nativeSrc":"15503:12:53","nodeType":"YulExpressionStatement","src":"15503:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15476:7:53","nodeType":"YulIdentifier","src":"15476:7:53"},{"name":"headStart","nativeSrc":"15485:9:53","nodeType":"YulIdentifier","src":"15485:9:53"}],"functionName":{"name":"sub","nativeSrc":"15472:3:53","nodeType":"YulIdentifier","src":"15472:3:53"},"nativeSrc":"15472:23:53","nodeType":"YulFunctionCall","src":"15472:23:53"},{"kind":"number","nativeSrc":"15497:2:53","nodeType":"YulLiteral","src":"15497:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"15468:3:53","nodeType":"YulIdentifier","src":"15468:3:53"},"nativeSrc":"15468:32:53","nodeType":"YulFunctionCall","src":"15468:32:53"},"nativeSrc":"15465:52:53","nodeType":"YulIf","src":"15465:52:53"},{"nativeSrc":"15526:63:53","nodeType":"YulAssignment","src":"15526:63:53","value":{"arguments":[{"name":"headStart","nativeSrc":"15570:9:53","nodeType":"YulIdentifier","src":"15570:9:53"},{"name":"dataEnd","nativeSrc":"15581:7:53","nodeType":"YulIdentifier","src":"15581:7:53"}],"functionName":{"name":"abi_decode_struct_Origin_calldata","nativeSrc":"15536:33:53","nodeType":"YulIdentifier","src":"15536:33:53"},"nativeSrc":"15536:53:53","nodeType":"YulFunctionCall","src":"15536:53:53"},"variableNames":[{"name":"value0","nativeSrc":"15526:6:53","nodeType":"YulIdentifier","src":"15526:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptr","nativeSrc":"15359:236:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15421:9:53","nodeType":"YulTypedName","src":"15421:9:53","type":""},{"name":"dataEnd","nativeSrc":"15432:7:53","nodeType":"YulTypedName","src":"15432:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15444:6:53","nodeType":"YulTypedName","src":"15444:6:53","type":""}],"src":"15359:236:53"},{"body":{"nativeSrc":"15655:325:53","nodeType":"YulBlock","src":"15655:325:53","statements":[{"nativeSrc":"15665:22:53","nodeType":"YulAssignment","src":"15665:22:53","value":{"arguments":[{"kind":"number","nativeSrc":"15679:1:53","nodeType":"YulLiteral","src":"15679:1:53","type":"","value":"1"},{"name":"data","nativeSrc":"15682:4:53","nodeType":"YulIdentifier","src":"15682:4:53"}],"functionName":{"name":"shr","nativeSrc":"15675:3:53","nodeType":"YulIdentifier","src":"15675:3:53"},"nativeSrc":"15675:12:53","nodeType":"YulFunctionCall","src":"15675:12:53"},"variableNames":[{"name":"length","nativeSrc":"15665:6:53","nodeType":"YulIdentifier","src":"15665:6:53"}]},{"nativeSrc":"15696:38:53","nodeType":"YulVariableDeclaration","src":"15696:38:53","value":{"arguments":[{"name":"data","nativeSrc":"15726:4:53","nodeType":"YulIdentifier","src":"15726:4:53"},{"kind":"number","nativeSrc":"15732:1:53","nodeType":"YulLiteral","src":"15732:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"15722:3:53","nodeType":"YulIdentifier","src":"15722:3:53"},"nativeSrc":"15722:12:53","nodeType":"YulFunctionCall","src":"15722:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"15700:18:53","nodeType":"YulTypedName","src":"15700:18:53","type":""}]},{"body":{"nativeSrc":"15773:31:53","nodeType":"YulBlock","src":"15773:31:53","statements":[{"nativeSrc":"15775:27:53","nodeType":"YulAssignment","src":"15775:27:53","value":{"arguments":[{"name":"length","nativeSrc":"15789:6:53","nodeType":"YulIdentifier","src":"15789:6:53"},{"kind":"number","nativeSrc":"15797:4:53","nodeType":"YulLiteral","src":"15797:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"15785:3:53","nodeType":"YulIdentifier","src":"15785:3:53"},"nativeSrc":"15785:17:53","nodeType":"YulFunctionCall","src":"15785:17:53"},"variableNames":[{"name":"length","nativeSrc":"15775:6:53","nodeType":"YulIdentifier","src":"15775:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"15753:18:53","nodeType":"YulIdentifier","src":"15753:18:53"}],"functionName":{"name":"iszero","nativeSrc":"15746:6:53","nodeType":"YulIdentifier","src":"15746:6:53"},"nativeSrc":"15746:26:53","nodeType":"YulFunctionCall","src":"15746:26:53"},"nativeSrc":"15743:61:53","nodeType":"YulIf","src":"15743:61:53"},{"body":{"nativeSrc":"15863:111:53","nodeType":"YulBlock","src":"15863:111:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15884:1:53","nodeType":"YulLiteral","src":"15884:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"15891:3:53","nodeType":"YulLiteral","src":"15891:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"15896:10:53","nodeType":"YulLiteral","src":"15896:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"15887:3:53","nodeType":"YulIdentifier","src":"15887:3:53"},"nativeSrc":"15887:20:53","nodeType":"YulFunctionCall","src":"15887:20:53"}],"functionName":{"name":"mstore","nativeSrc":"15877:6:53","nodeType":"YulIdentifier","src":"15877:6:53"},"nativeSrc":"15877:31:53","nodeType":"YulFunctionCall","src":"15877:31:53"},"nativeSrc":"15877:31:53","nodeType":"YulExpressionStatement","src":"15877:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15928:1:53","nodeType":"YulLiteral","src":"15928:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"15931:4:53","nodeType":"YulLiteral","src":"15931:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"15921:6:53","nodeType":"YulIdentifier","src":"15921:6:53"},"nativeSrc":"15921:15:53","nodeType":"YulFunctionCall","src":"15921:15:53"},"nativeSrc":"15921:15:53","nodeType":"YulExpressionStatement","src":"15921:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15956:1:53","nodeType":"YulLiteral","src":"15956:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15959:4:53","nodeType":"YulLiteral","src":"15959:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15949:6:53","nodeType":"YulIdentifier","src":"15949:6:53"},"nativeSrc":"15949:15:53","nodeType":"YulFunctionCall","src":"15949:15:53"},"nativeSrc":"15949:15:53","nodeType":"YulExpressionStatement","src":"15949:15:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"15819:18:53","nodeType":"YulIdentifier","src":"15819:18:53"},{"arguments":[{"name":"length","nativeSrc":"15842:6:53","nodeType":"YulIdentifier","src":"15842:6:53"},{"kind":"number","nativeSrc":"15850:2:53","nodeType":"YulLiteral","src":"15850:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"15839:2:53","nodeType":"YulIdentifier","src":"15839:2:53"},"nativeSrc":"15839:14:53","nodeType":"YulFunctionCall","src":"15839:14:53"}],"functionName":{"name":"eq","nativeSrc":"15816:2:53","nodeType":"YulIdentifier","src":"15816:2:53"},"nativeSrc":"15816:38:53","nodeType":"YulFunctionCall","src":"15816:38:53"},"nativeSrc":"15813:161:53","nodeType":"YulIf","src":"15813:161:53"}]},"name":"extract_byte_array_length","nativeSrc":"15600:380:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"15635:4:53","nodeType":"YulTypedName","src":"15635:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"15644:6:53","nodeType":"YulTypedName","src":"15644:6:53","type":""}],"src":"15600:380:53"},{"body":{"nativeSrc":"16112:136:53","nodeType":"YulBlock","src":"16112:136:53","statements":[{"nativeSrc":"16122:26:53","nodeType":"YulAssignment","src":"16122:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16134:9:53","nodeType":"YulIdentifier","src":"16134:9:53"},{"kind":"number","nativeSrc":"16145:2:53","nodeType":"YulLiteral","src":"16145:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16130:3:53","nodeType":"YulIdentifier","src":"16130:3:53"},"nativeSrc":"16130:18:53","nodeType":"YulFunctionCall","src":"16130:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16122:4:53","nodeType":"YulIdentifier","src":"16122:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16164:9:53","nodeType":"YulIdentifier","src":"16164:9:53"},{"arguments":[{"name":"value0","nativeSrc":"16179:6:53","nodeType":"YulIdentifier","src":"16179:6:53"},{"kind":"number","nativeSrc":"16187:10:53","nodeType":"YulLiteral","src":"16187:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"16175:3:53","nodeType":"YulIdentifier","src":"16175:3:53"},"nativeSrc":"16175:23:53","nodeType":"YulFunctionCall","src":"16175:23:53"}],"functionName":{"name":"mstore","nativeSrc":"16157:6:53","nodeType":"YulIdentifier","src":"16157:6:53"},"nativeSrc":"16157:42:53","nodeType":"YulFunctionCall","src":"16157:42:53"},"nativeSrc":"16157:42:53","nodeType":"YulExpressionStatement","src":"16157:42:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16219:9:53","nodeType":"YulIdentifier","src":"16219:9:53"},{"kind":"number","nativeSrc":"16230:2:53","nodeType":"YulLiteral","src":"16230:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16215:3:53","nodeType":"YulIdentifier","src":"16215:3:53"},"nativeSrc":"16215:18:53","nodeType":"YulFunctionCall","src":"16215:18:53"},{"name":"value1","nativeSrc":"16235:6:53","nodeType":"YulIdentifier","src":"16235:6:53"}],"functionName":{"name":"mstore","nativeSrc":"16208:6:53","nodeType":"YulIdentifier","src":"16208:6:53"},"nativeSrc":"16208:34:53","nodeType":"YulFunctionCall","src":"16208:34:53"},"nativeSrc":"16208:34:53","nodeType":"YulExpressionStatement","src":"16208:34:53"}]},"name":"abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed","nativeSrc":"15985:263:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16073:9:53","nodeType":"YulTypedName","src":"16073:9:53","type":""},{"name":"value1","nativeSrc":"16084:6:53","nodeType":"YulTypedName","src":"16084:6:53","type":""},{"name":"value0","nativeSrc":"16092:6:53","nodeType":"YulTypedName","src":"16092:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16103:4:53","nodeType":"YulTypedName","src":"16103:4:53","type":""}],"src":"15985:263:53"},{"body":{"nativeSrc":"16353:248:53","nodeType":"YulBlock","src":"16353:248:53","statements":[{"body":{"nativeSrc":"16399:16:53","nodeType":"YulBlock","src":"16399:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16408:1:53","nodeType":"YulLiteral","src":"16408:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"16411:1:53","nodeType":"YulLiteral","src":"16411:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16401:6:53","nodeType":"YulIdentifier","src":"16401:6:53"},"nativeSrc":"16401:12:53","nodeType":"YulFunctionCall","src":"16401:12:53"},"nativeSrc":"16401:12:53","nodeType":"YulExpressionStatement","src":"16401:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16374:7:53","nodeType":"YulIdentifier","src":"16374:7:53"},{"name":"headStart","nativeSrc":"16383:9:53","nodeType":"YulIdentifier","src":"16383:9:53"}],"functionName":{"name":"sub","nativeSrc":"16370:3:53","nodeType":"YulIdentifier","src":"16370:3:53"},"nativeSrc":"16370:23:53","nodeType":"YulFunctionCall","src":"16370:23:53"},{"kind":"number","nativeSrc":"16395:2:53","nodeType":"YulLiteral","src":"16395:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"16366:3:53","nodeType":"YulIdentifier","src":"16366:3:53"},"nativeSrc":"16366:32:53","nodeType":"YulFunctionCall","src":"16366:32:53"},"nativeSrc":"16363:52:53","nodeType":"YulIf","src":"16363:52:53"},{"nativeSrc":"16424:35:53","nodeType":"YulVariableDeclaration","src":"16424:35:53","value":{"arguments":[],"functionName":{"name":"allocate_memory_3822","nativeSrc":"16437:20:53","nodeType":"YulIdentifier","src":"16437:20:53"},"nativeSrc":"16437:22:53","nodeType":"YulFunctionCall","src":"16437:22:53"},"variables":[{"name":"value","nativeSrc":"16428:5:53","nodeType":"YulTypedName","src":"16428:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"16475:5:53","nodeType":"YulIdentifier","src":"16475:5:53"},{"arguments":[{"name":"headStart","nativeSrc":"16495:9:53","nodeType":"YulIdentifier","src":"16495:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"16482:12:53","nodeType":"YulIdentifier","src":"16482:12:53"},"nativeSrc":"16482:23:53","nodeType":"YulFunctionCall","src":"16482:23:53"}],"functionName":{"name":"mstore","nativeSrc":"16468:6:53","nodeType":"YulIdentifier","src":"16468:6:53"},"nativeSrc":"16468:38:53","nodeType":"YulFunctionCall","src":"16468:38:53"},"nativeSrc":"16468:38:53","nodeType":"YulExpressionStatement","src":"16468:38:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16526:5:53","nodeType":"YulIdentifier","src":"16526:5:53"},{"kind":"number","nativeSrc":"16533:2:53","nodeType":"YulLiteral","src":"16533:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16522:3:53","nodeType":"YulIdentifier","src":"16522:3:53"},"nativeSrc":"16522:14:53","nodeType":"YulFunctionCall","src":"16522:14:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16555:9:53","nodeType":"YulIdentifier","src":"16555:9:53"},{"kind":"number","nativeSrc":"16566:2:53","nodeType":"YulLiteral","src":"16566:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16551:3:53","nodeType":"YulIdentifier","src":"16551:3:53"},"nativeSrc":"16551:18:53","nodeType":"YulFunctionCall","src":"16551:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"16538:12:53","nodeType":"YulIdentifier","src":"16538:12:53"},"nativeSrc":"16538:32:53","nodeType":"YulFunctionCall","src":"16538:32:53"}],"functionName":{"name":"mstore","nativeSrc":"16515:6:53","nodeType":"YulIdentifier","src":"16515:6:53"},"nativeSrc":"16515:56:53","nodeType":"YulFunctionCall","src":"16515:56:53"},"nativeSrc":"16515:56:53","nodeType":"YulExpressionStatement","src":"16515:56:53"},{"nativeSrc":"16580:15:53","nodeType":"YulAssignment","src":"16580:15:53","value":{"name":"value","nativeSrc":"16590:5:53","nodeType":"YulIdentifier","src":"16590:5:53"},"variableNames":[{"name":"value0","nativeSrc":"16580:6:53","nodeType":"YulIdentifier","src":"16580:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr","nativeSrc":"16253:348:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16319:9:53","nodeType":"YulTypedName","src":"16319:9:53","type":""},{"name":"dataEnd","nativeSrc":"16330:7:53","nodeType":"YulTypedName","src":"16330:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16342:6:53","nodeType":"YulTypedName","src":"16342:6:53","type":""}],"src":"16253:348:53"},{"body":{"nativeSrc":"16733:136:53","nodeType":"YulBlock","src":"16733:136:53","statements":[{"nativeSrc":"16743:26:53","nodeType":"YulAssignment","src":"16743:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16755:9:53","nodeType":"YulIdentifier","src":"16755:9:53"},{"kind":"number","nativeSrc":"16766:2:53","nodeType":"YulLiteral","src":"16766:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16751:3:53","nodeType":"YulIdentifier","src":"16751:3:53"},"nativeSrc":"16751:18:53","nodeType":"YulFunctionCall","src":"16751:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16743:4:53","nodeType":"YulIdentifier","src":"16743:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16785:9:53","nodeType":"YulIdentifier","src":"16785:9:53"},{"arguments":[{"name":"value0","nativeSrc":"16800:6:53","nodeType":"YulIdentifier","src":"16800:6:53"},{"kind":"number","nativeSrc":"16808:10:53","nodeType":"YulLiteral","src":"16808:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"16796:3:53","nodeType":"YulIdentifier","src":"16796:3:53"},"nativeSrc":"16796:23:53","nodeType":"YulFunctionCall","src":"16796:23:53"}],"functionName":{"name":"mstore","nativeSrc":"16778:6:53","nodeType":"YulIdentifier","src":"16778:6:53"},"nativeSrc":"16778:42:53","nodeType":"YulFunctionCall","src":"16778:42:53"},"nativeSrc":"16778:42:53","nodeType":"YulExpressionStatement","src":"16778:42:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16840:9:53","nodeType":"YulIdentifier","src":"16840:9:53"},{"kind":"number","nativeSrc":"16851:2:53","nodeType":"YulLiteral","src":"16851:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16836:3:53","nodeType":"YulIdentifier","src":"16836:3:53"},"nativeSrc":"16836:18:53","nodeType":"YulFunctionCall","src":"16836:18:53"},{"name":"value1","nativeSrc":"16856:6:53","nodeType":"YulIdentifier","src":"16856:6:53"}],"functionName":{"name":"mstore","nativeSrc":"16829:6:53","nodeType":"YulIdentifier","src":"16829:6:53"},"nativeSrc":"16829:34:53","nodeType":"YulFunctionCall","src":"16829:34:53"},"nativeSrc":"16829:34:53","nodeType":"YulExpressionStatement","src":"16829:34:53"}]},"name":"abi_encode_tuple_t_uint32_t_uint256__to_t_uint32_t_uint256__fromStack_reversed","nativeSrc":"16606:263:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16694:9:53","nodeType":"YulTypedName","src":"16694:9:53","type":""},{"name":"value1","nativeSrc":"16705:6:53","nodeType":"YulTypedName","src":"16705:6:53","type":""},{"name":"value0","nativeSrc":"16713:6:53","nodeType":"YulTypedName","src":"16713:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16724:4:53","nodeType":"YulTypedName","src":"16724:4:53","type":""}],"src":"16606:263:53"},{"body":{"nativeSrc":"17031:218:53","nodeType":"YulBlock","src":"17031:218:53","statements":[{"nativeSrc":"17041:26:53","nodeType":"YulAssignment","src":"17041:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17053:9:53","nodeType":"YulIdentifier","src":"17053:9:53"},{"kind":"number","nativeSrc":"17064:2:53","nodeType":"YulLiteral","src":"17064:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17049:3:53","nodeType":"YulIdentifier","src":"17049:3:53"},"nativeSrc":"17049:18:53","nodeType":"YulFunctionCall","src":"17049:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17041:4:53","nodeType":"YulIdentifier","src":"17041:4:53"}]},{"nativeSrc":"17076:29:53","nodeType":"YulVariableDeclaration","src":"17076:29:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17094:3:53","nodeType":"YulLiteral","src":"17094:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"17099:1:53","nodeType":"YulLiteral","src":"17099:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"17090:3:53","nodeType":"YulIdentifier","src":"17090:3:53"},"nativeSrc":"17090:11:53","nodeType":"YulFunctionCall","src":"17090:11:53"},{"kind":"number","nativeSrc":"17103:1:53","nodeType":"YulLiteral","src":"17103:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"17086:3:53","nodeType":"YulIdentifier","src":"17086:3:53"},"nativeSrc":"17086:19:53","nodeType":"YulFunctionCall","src":"17086:19:53"},"variables":[{"name":"_1","nativeSrc":"17080:2:53","nodeType":"YulTypedName","src":"17080:2:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17121:9:53","nodeType":"YulIdentifier","src":"17121:9:53"},{"arguments":[{"name":"value0","nativeSrc":"17136:6:53","nodeType":"YulIdentifier","src":"17136:6:53"},{"name":"_1","nativeSrc":"17144:2:53","nodeType":"YulIdentifier","src":"17144:2:53"}],"functionName":{"name":"and","nativeSrc":"17132:3:53","nodeType":"YulIdentifier","src":"17132:3:53"},"nativeSrc":"17132:15:53","nodeType":"YulFunctionCall","src":"17132:15:53"}],"functionName":{"name":"mstore","nativeSrc":"17114:6:53","nodeType":"YulIdentifier","src":"17114:6:53"},"nativeSrc":"17114:34:53","nodeType":"YulFunctionCall","src":"17114:34:53"},"nativeSrc":"17114:34:53","nodeType":"YulExpressionStatement","src":"17114:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17168:9:53","nodeType":"YulIdentifier","src":"17168:9:53"},{"kind":"number","nativeSrc":"17179:2:53","nodeType":"YulLiteral","src":"17179:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17164:3:53","nodeType":"YulIdentifier","src":"17164:3:53"},"nativeSrc":"17164:18:53","nodeType":"YulFunctionCall","src":"17164:18:53"},{"name":"value1","nativeSrc":"17184:6:53","nodeType":"YulIdentifier","src":"17184:6:53"}],"functionName":{"name":"mstore","nativeSrc":"17157:6:53","nodeType":"YulIdentifier","src":"17157:6:53"},"nativeSrc":"17157:34:53","nodeType":"YulFunctionCall","src":"17157:34:53"},"nativeSrc":"17157:34:53","nodeType":"YulExpressionStatement","src":"17157:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17211:9:53","nodeType":"YulIdentifier","src":"17211:9:53"},{"kind":"number","nativeSrc":"17222:2:53","nodeType":"YulLiteral","src":"17222:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17207:3:53","nodeType":"YulIdentifier","src":"17207:3:53"},"nativeSrc":"17207:18:53","nodeType":"YulFunctionCall","src":"17207:18:53"},{"arguments":[{"name":"value2","nativeSrc":"17231:6:53","nodeType":"YulIdentifier","src":"17231:6:53"},{"name":"_1","nativeSrc":"17239:2:53","nodeType":"YulIdentifier","src":"17239:2:53"}],"functionName":{"name":"and","nativeSrc":"17227:3:53","nodeType":"YulIdentifier","src":"17227:3:53"},"nativeSrc":"17227:15:53","nodeType":"YulFunctionCall","src":"17227:15:53"}],"functionName":{"name":"mstore","nativeSrc":"17200:6:53","nodeType":"YulIdentifier","src":"17200:6:53"},"nativeSrc":"17200:43:53","nodeType":"YulFunctionCall","src":"17200:43:53"},"nativeSrc":"17200:43:53","nodeType":"YulExpressionStatement","src":"17200:43:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed","nativeSrc":"16874:375:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16984:9:53","nodeType":"YulTypedName","src":"16984:9:53","type":""},{"name":"value2","nativeSrc":"16995:6:53","nodeType":"YulTypedName","src":"16995:6:53","type":""},{"name":"value1","nativeSrc":"17003:6:53","nodeType":"YulTypedName","src":"17003:6:53","type":""},{"name":"value0","nativeSrc":"17011:6:53","nodeType":"YulTypedName","src":"17011:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17022:4:53","nodeType":"YulTypedName","src":"17022:4:53","type":""}],"src":"16874:375:53"},{"body":{"nativeSrc":"17460:1369:53","nodeType":"YulBlock","src":"17460:1369:53","statements":[{"nativeSrc":"17470:28:53","nodeType":"YulVariableDeclaration","src":"17470:28:53","value":{"kind":"number","nativeSrc":"17480:18:53","nodeType":"YulLiteral","src":"17480:18:53","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"17474:2:53","nodeType":"YulTypedName","src":"17474:2:53","type":""}]},{"body":{"nativeSrc":"17525:22:53","nodeType":"YulBlock","src":"17525:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"17527:16:53","nodeType":"YulIdentifier","src":"17527:16:53"},"nativeSrc":"17527:18:53","nodeType":"YulFunctionCall","src":"17527:18:53"},"nativeSrc":"17527:18:53","nodeType":"YulExpressionStatement","src":"17527:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"17513:6:53","nodeType":"YulIdentifier","src":"17513:6:53"},{"name":"_1","nativeSrc":"17521:2:53","nodeType":"YulIdentifier","src":"17521:2:53"}],"functionName":{"name":"gt","nativeSrc":"17510:2:53","nodeType":"YulIdentifier","src":"17510:2:53"},"nativeSrc":"17510:14:53","nodeType":"YulFunctionCall","src":"17510:14:53"},"nativeSrc":"17507:40:53","nodeType":"YulIf","src":"17507:40:53"},{"nativeSrc":"17556:24:53","nodeType":"YulVariableDeclaration","src":"17556:24:53","value":{"arguments":[{"kind":"number","nativeSrc":"17570:1:53","nodeType":"YulLiteral","src":"17570:1:53","type":"","value":"5"},{"name":"length","nativeSrc":"17573:6:53","nodeType":"YulIdentifier","src":"17573:6:53"}],"functionName":{"name":"shl","nativeSrc":"17566:3:53","nodeType":"YulIdentifier","src":"17566:3:53"},"nativeSrc":"17566:14:53","nodeType":"YulFunctionCall","src":"17566:14:53"},"variables":[{"name":"_2","nativeSrc":"17560:2:53","nodeType":"YulTypedName","src":"17560:2:53","type":""}]},{"nativeSrc":"17589:14:53","nodeType":"YulVariableDeclaration","src":"17589:14:53","value":{"kind":"number","nativeSrc":"17599:4:53","nodeType":"YulLiteral","src":"17599:4:53","type":"","value":"0x20"},"variables":[{"name":"_3","nativeSrc":"17593:2:53","nodeType":"YulTypedName","src":"17593:2:53","type":""}]},{"nativeSrc":"17612:39:53","nodeType":"YulVariableDeclaration","src":"17612:39:53","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"17643:2:53","nodeType":"YulIdentifier","src":"17643:2:53"},{"name":"_3","nativeSrc":"17647:2:53","nodeType":"YulIdentifier","src":"17647:2:53"}],"functionName":{"name":"add","nativeSrc":"17639:3:53","nodeType":"YulIdentifier","src":"17639:3:53"},"nativeSrc":"17639:11:53","nodeType":"YulFunctionCall","src":"17639:11:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"17623:15:53","nodeType":"YulIdentifier","src":"17623:15:53"},"nativeSrc":"17623:28:53","nodeType":"YulFunctionCall","src":"17623:28:53"},"variables":[{"name":"dst","nativeSrc":"17616:3:53","nodeType":"YulTypedName","src":"17616:3:53","type":""}]},{"nativeSrc":"17660:16:53","nodeType":"YulVariableDeclaration","src":"17660:16:53","value":{"name":"dst","nativeSrc":"17673:3:53","nodeType":"YulIdentifier","src":"17673:3:53"},"variables":[{"name":"dst_1","nativeSrc":"17664:5:53","nodeType":"YulTypedName","src":"17664:5:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"17692:3:53","nodeType":"YulIdentifier","src":"17692:3:53"},{"name":"length","nativeSrc":"17697:6:53","nodeType":"YulIdentifier","src":"17697:6:53"}],"functionName":{"name":"mstore","nativeSrc":"17685:6:53","nodeType":"YulIdentifier","src":"17685:6:53"},"nativeSrc":"17685:19:53","nodeType":"YulFunctionCall","src":"17685:19:53"},"nativeSrc":"17685:19:53","nodeType":"YulExpressionStatement","src":"17685:19:53"},{"nativeSrc":"17713:19:53","nodeType":"YulAssignment","src":"17713:19:53","value":{"arguments":[{"name":"dst","nativeSrc":"17724:3:53","nodeType":"YulIdentifier","src":"17724:3:53"},{"name":"_3","nativeSrc":"17729:2:53","nodeType":"YulIdentifier","src":"17729:2:53"}],"functionName":{"name":"add","nativeSrc":"17720:3:53","nodeType":"YulIdentifier","src":"17720:3:53"},"nativeSrc":"17720:12:53","nodeType":"YulFunctionCall","src":"17720:12:53"},"variableNames":[{"name":"dst","nativeSrc":"17713:3:53","nodeType":"YulIdentifier","src":"17713:3:53"}]},{"nativeSrc":"17741:28:53","nodeType":"YulVariableDeclaration","src":"17741:28:53","value":{"arguments":[{"name":"value","nativeSrc":"17759:5:53","nodeType":"YulIdentifier","src":"17759:5:53"},{"name":"_2","nativeSrc":"17766:2:53","nodeType":"YulIdentifier","src":"17766:2:53"}],"functionName":{"name":"add","nativeSrc":"17755:3:53","nodeType":"YulIdentifier","src":"17755:3:53"},"nativeSrc":"17755:14:53","nodeType":"YulFunctionCall","src":"17755:14:53"},"variables":[{"name":"srcEnd","nativeSrc":"17745:6:53","nodeType":"YulTypedName","src":"17745:6:53","type":""}]},{"body":{"nativeSrc":"17808:16:53","nodeType":"YulBlock","src":"17808:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17817:1:53","nodeType":"YulLiteral","src":"17817:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17820:1:53","nodeType":"YulLiteral","src":"17820:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17810:6:53","nodeType":"YulIdentifier","src":"17810:6:53"},"nativeSrc":"17810:12:53","nodeType":"YulFunctionCall","src":"17810:12:53"},"nativeSrc":"17810:12:53","nodeType":"YulExpressionStatement","src":"17810:12:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"17784:6:53","nodeType":"YulIdentifier","src":"17784:6:53"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"17792:12:53","nodeType":"YulIdentifier","src":"17792:12:53"},"nativeSrc":"17792:14:53","nodeType":"YulFunctionCall","src":"17792:14:53"}],"functionName":{"name":"gt","nativeSrc":"17781:2:53","nodeType":"YulIdentifier","src":"17781:2:53"},"nativeSrc":"17781:26:53","nodeType":"YulFunctionCall","src":"17781:26:53"},"nativeSrc":"17778:46:53","nodeType":"YulIf","src":"17778:46:53"},{"nativeSrc":"17833:16:53","nodeType":"YulVariableDeclaration","src":"17833:16:53","value":{"name":"value","nativeSrc":"17844:5:53","nodeType":"YulIdentifier","src":"17844:5:53"},"variables":[{"name":"src","nativeSrc":"17837:3:53","nodeType":"YulTypedName","src":"17837:3:53","type":""}]},{"body":{"nativeSrc":"17914:882:53","nodeType":"YulBlock","src":"17914:882:53","statements":[{"nativeSrc":"17928:36:53","nodeType":"YulVariableDeclaration","src":"17928:36:53","value":{"arguments":[{"name":"src","nativeSrc":"17960:3:53","nodeType":"YulIdentifier","src":"17960:3:53"}],"functionName":{"name":"calldataload","nativeSrc":"17947:12:53","nodeType":"YulIdentifier","src":"17947:12:53"},"nativeSrc":"17947:17:53","nodeType":"YulFunctionCall","src":"17947:17:53"},"variables":[{"name":"innerOffset","nativeSrc":"17932:11:53","nodeType":"YulTypedName","src":"17932:11:53","type":""}]},{"body":{"nativeSrc":"18012:74:53","nodeType":"YulBlock","src":"18012:74:53","statements":[{"nativeSrc":"18030:11:53","nodeType":"YulVariableDeclaration","src":"18030:11:53","value":{"kind":"number","nativeSrc":"18040:1:53","nodeType":"YulLiteral","src":"18040:1:53","type":"","value":"0"},"variables":[{"name":"_4","nativeSrc":"18034:2:53","nodeType":"YulTypedName","src":"18034:2:53","type":""}]},{"expression":{"arguments":[{"name":"_4","nativeSrc":"18065:2:53","nodeType":"YulIdentifier","src":"18065:2:53"},{"name":"_4","nativeSrc":"18069:2:53","nodeType":"YulIdentifier","src":"18069:2:53"}],"functionName":{"name":"revert","nativeSrc":"18058:6:53","nodeType":"YulIdentifier","src":"18058:6:53"},"nativeSrc":"18058:14:53","nodeType":"YulFunctionCall","src":"18058:14:53"},"nativeSrc":"18058:14:53","nodeType":"YulExpressionStatement","src":"18058:14:53"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"17983:11:53","nodeType":"YulIdentifier","src":"17983:11:53"},{"name":"_1","nativeSrc":"17996:2:53","nodeType":"YulIdentifier","src":"17996:2:53"}],"functionName":{"name":"gt","nativeSrc":"17980:2:53","nodeType":"YulIdentifier","src":"17980:2:53"},"nativeSrc":"17980:19:53","nodeType":"YulFunctionCall","src":"17980:19:53"},"nativeSrc":"17977:109:53","nodeType":"YulIf","src":"17977:109:53"},{"nativeSrc":"18099:33:53","nodeType":"YulVariableDeclaration","src":"18099:33:53","value":{"arguments":[{"name":"value","nativeSrc":"18113:5:53","nodeType":"YulIdentifier","src":"18113:5:53"},{"name":"innerOffset","nativeSrc":"18120:11:53","nodeType":"YulIdentifier","src":"18120:11:53"}],"functionName":{"name":"add","nativeSrc":"18109:3:53","nodeType":"YulIdentifier","src":"18109:3:53"},"nativeSrc":"18109:23:53","nodeType":"YulFunctionCall","src":"18109:23:53"},"variables":[{"name":"_5","nativeSrc":"18103:2:53","nodeType":"YulTypedName","src":"18103:2:53","type":""}]},{"body":{"nativeSrc":"18195:74:53","nodeType":"YulBlock","src":"18195:74:53","statements":[{"nativeSrc":"18213:11:53","nodeType":"YulVariableDeclaration","src":"18213:11:53","value":{"kind":"number","nativeSrc":"18223:1:53","nodeType":"YulLiteral","src":"18223:1:53","type":"","value":"0"},"variables":[{"name":"_6","nativeSrc":"18217:2:53","nodeType":"YulTypedName","src":"18217:2:53","type":""}]},{"expression":{"arguments":[{"name":"_6","nativeSrc":"18248:2:53","nodeType":"YulIdentifier","src":"18248:2:53"},{"name":"_6","nativeSrc":"18252:2:53","nodeType":"YulIdentifier","src":"18252:2:53"}],"functionName":{"name":"revert","nativeSrc":"18241:6:53","nodeType":"YulIdentifier","src":"18241:6:53"},"nativeSrc":"18241:14:53","nodeType":"YulFunctionCall","src":"18241:14:53"},"nativeSrc":"18241:14:53","nodeType":"YulExpressionStatement","src":"18241:14:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"18156:12:53","nodeType":"YulIdentifier","src":"18156:12:53"},"nativeSrc":"18156:14:53","nodeType":"YulFunctionCall","src":"18156:14:53"},{"name":"_5","nativeSrc":"18172:2:53","nodeType":"YulIdentifier","src":"18172:2:53"}],"functionName":{"name":"sub","nativeSrc":"18152:3:53","nodeType":"YulIdentifier","src":"18152:3:53"},"nativeSrc":"18152:23:53","nodeType":"YulFunctionCall","src":"18152:23:53"},{"kind":"number","nativeSrc":"18177:4:53","nodeType":"YulLiteral","src":"18177:4:53","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"18148:3:53","nodeType":"YulIdentifier","src":"18148:3:53"},"nativeSrc":"18148:34:53","nodeType":"YulFunctionCall","src":"18148:34:53"},"nativeSrc":"18145:124:53","nodeType":"YulIf","src":"18145:124:53"},{"nativeSrc":"18282:37:53","nodeType":"YulVariableDeclaration","src":"18282:37:53","value":{"arguments":[],"functionName":{"name":"allocate_memory_3825","nativeSrc":"18297:20:53","nodeType":"YulIdentifier","src":"18297:20:53"},"nativeSrc":"18297:22:53","nodeType":"YulFunctionCall","src":"18297:22:53"},"variables":[{"name":"value_1","nativeSrc":"18286:7:53","nodeType":"YulTypedName","src":"18286:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"18339:7:53","nodeType":"YulIdentifier","src":"18339:7:53"},{"arguments":[{"name":"_5","nativeSrc":"18366:2:53","nodeType":"YulIdentifier","src":"18366:2:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"18348:17:53","nodeType":"YulIdentifier","src":"18348:17:53"},"nativeSrc":"18348:21:53","nodeType":"YulFunctionCall","src":"18348:21:53"}],"functionName":{"name":"mstore","nativeSrc":"18332:6:53","nodeType":"YulIdentifier","src":"18332:6:53"},"nativeSrc":"18332:38:53","nodeType":"YulFunctionCall","src":"18332:38:53"},"nativeSrc":"18332:38:53","nodeType":"YulExpressionStatement","src":"18332:38:53"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"18394:7:53","nodeType":"YulIdentifier","src":"18394:7:53"},{"name":"_3","nativeSrc":"18403:2:53","nodeType":"YulIdentifier","src":"18403:2:53"}],"functionName":{"name":"add","nativeSrc":"18390:3:53","nodeType":"YulIdentifier","src":"18390:3:53"},"nativeSrc":"18390:16:53","nodeType":"YulFunctionCall","src":"18390:16:53"},{"arguments":[{"arguments":[{"name":"_5","nativeSrc":"18430:2:53","nodeType":"YulIdentifier","src":"18430:2:53"},{"name":"_3","nativeSrc":"18434:2:53","nodeType":"YulIdentifier","src":"18434:2:53"}],"functionName":{"name":"add","nativeSrc":"18426:3:53","nodeType":"YulIdentifier","src":"18426:3:53"},"nativeSrc":"18426:11:53","nodeType":"YulFunctionCall","src":"18426:11:53"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"18408:17:53","nodeType":"YulIdentifier","src":"18408:17:53"},"nativeSrc":"18408:30:53","nodeType":"YulFunctionCall","src":"18408:30:53"}],"functionName":{"name":"mstore","nativeSrc":"18383:6:53","nodeType":"YulIdentifier","src":"18383:6:53"},"nativeSrc":"18383:56:53","nodeType":"YulFunctionCall","src":"18383:56:53"},"nativeSrc":"18383:56:53","nodeType":"YulExpressionStatement","src":"18383:56:53"},{"nativeSrc":"18452:12:53","nodeType":"YulVariableDeclaration","src":"18452:12:53","value":{"kind":"number","nativeSrc":"18462:2:53","nodeType":"YulLiteral","src":"18462:2:53","type":"","value":"64"},"variables":[{"name":"_7","nativeSrc":"18456:2:53","nodeType":"YulTypedName","src":"18456:2:53","type":""}]},{"nativeSrc":"18477:39:53","nodeType":"YulVariableDeclaration","src":"18477:39:53","value":{"arguments":[{"arguments":[{"name":"_5","nativeSrc":"18508:2:53","nodeType":"YulIdentifier","src":"18508:2:53"},{"name":"_7","nativeSrc":"18512:2:53","nodeType":"YulIdentifier","src":"18512:2:53"}],"functionName":{"name":"add","nativeSrc":"18504:3:53","nodeType":"YulIdentifier","src":"18504:3:53"},"nativeSrc":"18504:11:53","nodeType":"YulFunctionCall","src":"18504:11:53"}],"functionName":{"name":"calldataload","nativeSrc":"18491:12:53","nodeType":"YulIdentifier","src":"18491:12:53"},"nativeSrc":"18491:25:53","nodeType":"YulFunctionCall","src":"18491:25:53"},"variables":[{"name":"offset","nativeSrc":"18481:6:53","nodeType":"YulTypedName","src":"18481:6:53","type":""}]},{"body":{"nativeSrc":"18559:74:53","nodeType":"YulBlock","src":"18559:74:53","statements":[{"nativeSrc":"18577:11:53","nodeType":"YulVariableDeclaration","src":"18577:11:53","value":{"kind":"number","nativeSrc":"18587:1:53","nodeType":"YulLiteral","src":"18587:1:53","type":"","value":"0"},"variables":[{"name":"_8","nativeSrc":"18581:2:53","nodeType":"YulTypedName","src":"18581:2:53","type":""}]},{"expression":{"arguments":[{"name":"_8","nativeSrc":"18612:2:53","nodeType":"YulIdentifier","src":"18612:2:53"},{"name":"_8","nativeSrc":"18616:2:53","nodeType":"YulIdentifier","src":"18616:2:53"}],"functionName":{"name":"revert","nativeSrc":"18605:6:53","nodeType":"YulIdentifier","src":"18605:6:53"},"nativeSrc":"18605:14:53","nodeType":"YulFunctionCall","src":"18605:14:53"},"nativeSrc":"18605:14:53","nodeType":"YulExpressionStatement","src":"18605:14:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"18535:6:53","nodeType":"YulIdentifier","src":"18535:6:53"},{"name":"_1","nativeSrc":"18543:2:53","nodeType":"YulIdentifier","src":"18543:2:53"}],"functionName":{"name":"gt","nativeSrc":"18532:2:53","nodeType":"YulIdentifier","src":"18532:2:53"},"nativeSrc":"18532:14:53","nodeType":"YulFunctionCall","src":"18532:14:53"},"nativeSrc":"18529:104:53","nodeType":"YulIf","src":"18529:104:53"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"18657:7:53","nodeType":"YulIdentifier","src":"18657:7:53"},{"name":"_7","nativeSrc":"18666:2:53","nodeType":"YulIdentifier","src":"18666:2:53"}],"functionName":{"name":"add","nativeSrc":"18653:3:53","nodeType":"YulIdentifier","src":"18653:3:53"},"nativeSrc":"18653:16:53","nodeType":"YulFunctionCall","src":"18653:16:53"},{"arguments":[{"arguments":[{"name":"_5","nativeSrc":"18692:2:53","nodeType":"YulIdentifier","src":"18692:2:53"},{"name":"offset","nativeSrc":"18696:6:53","nodeType":"YulIdentifier","src":"18696:6:53"}],"functionName":{"name":"add","nativeSrc":"18688:3:53","nodeType":"YulIdentifier","src":"18688:3:53"},"nativeSrc":"18688:15:53","nodeType":"YulFunctionCall","src":"18688:15:53"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"18705:12:53","nodeType":"YulIdentifier","src":"18705:12:53"},"nativeSrc":"18705:14:53","nodeType":"YulFunctionCall","src":"18705:14:53"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"18671:16:53","nodeType":"YulIdentifier","src":"18671:16:53"},"nativeSrc":"18671:49:53","nodeType":"YulFunctionCall","src":"18671:49:53"}],"functionName":{"name":"mstore","nativeSrc":"18646:6:53","nodeType":"YulIdentifier","src":"18646:6:53"},"nativeSrc":"18646:75:53","nodeType":"YulFunctionCall","src":"18646:75:53"},"nativeSrc":"18646:75:53","nodeType":"YulExpressionStatement","src":"18646:75:53"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"18741:3:53","nodeType":"YulIdentifier","src":"18741:3:53"},{"name":"value_1","nativeSrc":"18746:7:53","nodeType":"YulIdentifier","src":"18746:7:53"}],"functionName":{"name":"mstore","nativeSrc":"18734:6:53","nodeType":"YulIdentifier","src":"18734:6:53"},"nativeSrc":"18734:20:53","nodeType":"YulFunctionCall","src":"18734:20:53"},"nativeSrc":"18734:20:53","nodeType":"YulExpressionStatement","src":"18734:20:53"},{"nativeSrc":"18767:19:53","nodeType":"YulAssignment","src":"18767:19:53","value":{"arguments":[{"name":"dst","nativeSrc":"18778:3:53","nodeType":"YulIdentifier","src":"18778:3:53"},{"name":"_3","nativeSrc":"18783:2:53","nodeType":"YulIdentifier","src":"18783:2:53"}],"functionName":{"name":"add","nativeSrc":"18774:3:53","nodeType":"YulIdentifier","src":"18774:3:53"},"nativeSrc":"18774:12:53","nodeType":"YulFunctionCall","src":"18774:12:53"},"variableNames":[{"name":"dst","nativeSrc":"18767:3:53","nodeType":"YulIdentifier","src":"18767:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"17869:3:53","nodeType":"YulIdentifier","src":"17869:3:53"},{"name":"srcEnd","nativeSrc":"17874:6:53","nodeType":"YulIdentifier","src":"17874:6:53"}],"functionName":{"name":"lt","nativeSrc":"17866:2:53","nodeType":"YulIdentifier","src":"17866:2:53"},"nativeSrc":"17866:15:53","nodeType":"YulFunctionCall","src":"17866:15:53"},"nativeSrc":"17858:938:53","nodeType":"YulForLoop","post":{"nativeSrc":"17882:23:53","nodeType":"YulBlock","src":"17882:23:53","statements":[{"nativeSrc":"17884:19:53","nodeType":"YulAssignment","src":"17884:19:53","value":{"arguments":[{"name":"src","nativeSrc":"17895:3:53","nodeType":"YulIdentifier","src":"17895:3:53"},{"name":"_3","nativeSrc":"17900:2:53","nodeType":"YulIdentifier","src":"17900:2:53"}],"functionName":{"name":"add","nativeSrc":"17891:3:53","nodeType":"YulIdentifier","src":"17891:3:53"},"nativeSrc":"17891:12:53","nodeType":"YulFunctionCall","src":"17891:12:53"},"variableNames":[{"name":"src","nativeSrc":"17884:3:53","nodeType":"YulIdentifier","src":"17884:3:53"}]}]},"pre":{"nativeSrc":"17862:3:53","nodeType":"YulBlock","src":"17862:3:53","statements":[]},"src":"17858:938:53"},{"nativeSrc":"18805:18:53","nodeType":"YulAssignment","src":"18805:18:53","value":{"name":"dst_1","nativeSrc":"18818:5:53","nodeType":"YulIdentifier","src":"18818:5:53"},"variableNames":[{"name":"converted","nativeSrc":"18805:9:53","nodeType":"YulIdentifier","src":"18805:9:53"}]}]},"name":"convert_array_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr","nativeSrc":"17254:1575:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17428:5:53","nodeType":"YulTypedName","src":"17428:5:53","type":""},{"name":"length","nativeSrc":"17435:6:53","nodeType":"YulTypedName","src":"17435:6:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"17446:9:53","nodeType":"YulTypedName","src":"17446:9:53","type":""}],"src":"17254:1575:53"},{"body":{"nativeSrc":"18964:201:53","nodeType":"YulBlock","src":"18964:201:53","statements":[{"body":{"nativeSrc":"19002:16:53","nodeType":"YulBlock","src":"19002:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19011:1:53","nodeType":"YulLiteral","src":"19011:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19014:1:53","nodeType":"YulLiteral","src":"19014:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19004:6:53","nodeType":"YulIdentifier","src":"19004:6:53"},"nativeSrc":"19004:12:53","nodeType":"YulFunctionCall","src":"19004:12:53"},"nativeSrc":"19004:12:53","nodeType":"YulExpressionStatement","src":"19004:12:53"}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"18980:10:53","nodeType":"YulIdentifier","src":"18980:10:53"},{"name":"endIndex","nativeSrc":"18992:8:53","nodeType":"YulIdentifier","src":"18992:8:53"}],"functionName":{"name":"gt","nativeSrc":"18977:2:53","nodeType":"YulIdentifier","src":"18977:2:53"},"nativeSrc":"18977:24:53","nodeType":"YulFunctionCall","src":"18977:24:53"},"nativeSrc":"18974:44:53","nodeType":"YulIf","src":"18974:44:53"},{"body":{"nativeSrc":"19051:16:53","nodeType":"YulBlock","src":"19051:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19060:1:53","nodeType":"YulLiteral","src":"19060:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19063:1:53","nodeType":"YulLiteral","src":"19063:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19053:6:53","nodeType":"YulIdentifier","src":"19053:6:53"},"nativeSrc":"19053:12:53","nodeType":"YulFunctionCall","src":"19053:12:53"},"nativeSrc":"19053:12:53","nodeType":"YulExpressionStatement","src":"19053:12:53"}]},"condition":{"arguments":[{"name":"endIndex","nativeSrc":"19033:8:53","nodeType":"YulIdentifier","src":"19033:8:53"},{"name":"length","nativeSrc":"19043:6:53","nodeType":"YulIdentifier","src":"19043:6:53"}],"functionName":{"name":"gt","nativeSrc":"19030:2:53","nodeType":"YulIdentifier","src":"19030:2:53"},"nativeSrc":"19030:20:53","nodeType":"YulFunctionCall","src":"19030:20:53"},"nativeSrc":"19027:40:53","nodeType":"YulIf","src":"19027:40:53"},{"nativeSrc":"19076:36:53","nodeType":"YulAssignment","src":"19076:36:53","value":{"arguments":[{"name":"offset","nativeSrc":"19093:6:53","nodeType":"YulIdentifier","src":"19093:6:53"},{"name":"startIndex","nativeSrc":"19101:10:53","nodeType":"YulIdentifier","src":"19101:10:53"}],"functionName":{"name":"add","nativeSrc":"19089:3:53","nodeType":"YulIdentifier","src":"19089:3:53"},"nativeSrc":"19089:23:53","nodeType":"YulFunctionCall","src":"19089:23:53"},"variableNames":[{"name":"offsetOut","nativeSrc":"19076:9:53","nodeType":"YulIdentifier","src":"19076:9:53"}]},{"nativeSrc":"19121:38:53","nodeType":"YulAssignment","src":"19121:38:53","value":{"arguments":[{"name":"endIndex","nativeSrc":"19138:8:53","nodeType":"YulIdentifier","src":"19138:8:53"},{"name":"startIndex","nativeSrc":"19148:10:53","nodeType":"YulIdentifier","src":"19148:10:53"}],"functionName":{"name":"sub","nativeSrc":"19134:3:53","nodeType":"YulIdentifier","src":"19134:3:53"},"nativeSrc":"19134:25:53","nodeType":"YulFunctionCall","src":"19134:25:53"},"variableNames":[{"name":"lengthOut","nativeSrc":"19121:9:53","nodeType":"YulIdentifier","src":"19121:9:53"}]}]},"name":"calldata_array_index_range_access_t_bytes_calldata_ptr","nativeSrc":"18834:331:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18898:6:53","nodeType":"YulTypedName","src":"18898:6:53","type":""},{"name":"length","nativeSrc":"18906:6:53","nodeType":"YulTypedName","src":"18906:6:53","type":""},{"name":"startIndex","nativeSrc":"18914:10:53","nodeType":"YulTypedName","src":"18914:10:53","type":""},{"name":"endIndex","nativeSrc":"18926:8:53","nodeType":"YulTypedName","src":"18926:8:53","type":""}],"returnVariables":[{"name":"offsetOut","nativeSrc":"18939:9:53","nodeType":"YulTypedName","src":"18939:9:53","type":""},{"name":"lengthOut","nativeSrc":"18950:9:53","nodeType":"YulTypedName","src":"18950:9:53","type":""}],"src":"18834:331:53"},{"body":{"nativeSrc":"19369:277:53","nodeType":"YulBlock","src":"19369:277:53","statements":[{"nativeSrc":"19379:27:53","nodeType":"YulVariableDeclaration","src":"19379:27:53","value":{"arguments":[{"name":"value0","nativeSrc":"19399:6:53","nodeType":"YulIdentifier","src":"19399:6:53"}],"functionName":{"name":"mload","nativeSrc":"19393:5:53","nodeType":"YulIdentifier","src":"19393:5:53"},"nativeSrc":"19393:13:53","nodeType":"YulFunctionCall","src":"19393:13:53"},"variables":[{"name":"length","nativeSrc":"19383:6:53","nodeType":"YulTypedName","src":"19383:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"19454:6:53","nodeType":"YulIdentifier","src":"19454:6:53"},{"kind":"number","nativeSrc":"19462:4:53","nodeType":"YulLiteral","src":"19462:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19450:3:53","nodeType":"YulIdentifier","src":"19450:3:53"},"nativeSrc":"19450:17:53","nodeType":"YulFunctionCall","src":"19450:17:53"},{"name":"pos","nativeSrc":"19469:3:53","nodeType":"YulIdentifier","src":"19469:3:53"},{"name":"length","nativeSrc":"19474:6:53","nodeType":"YulIdentifier","src":"19474:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"19415:34:53","nodeType":"YulIdentifier","src":"19415:34:53"},"nativeSrc":"19415:66:53","nodeType":"YulFunctionCall","src":"19415:66:53"},"nativeSrc":"19415:66:53","nodeType":"YulExpressionStatement","src":"19415:66:53"},{"nativeSrc":"19490:29:53","nodeType":"YulVariableDeclaration","src":"19490:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"19507:3:53","nodeType":"YulIdentifier","src":"19507:3:53"},{"name":"length","nativeSrc":"19512:6:53","nodeType":"YulIdentifier","src":"19512:6:53"}],"functionName":{"name":"add","nativeSrc":"19503:3:53","nodeType":"YulIdentifier","src":"19503:3:53"},"nativeSrc":"19503:16:53","nodeType":"YulFunctionCall","src":"19503:16:53"},"variables":[{"name":"end_1","nativeSrc":"19494:5:53","nodeType":"YulTypedName","src":"19494:5:53","type":""}]},{"expression":{"arguments":[{"name":"end_1","nativeSrc":"19541:5:53","nodeType":"YulIdentifier","src":"19541:5:53"},{"name":"value1","nativeSrc":"19548:6:53","nodeType":"YulIdentifier","src":"19548:6:53"},{"name":"value2","nativeSrc":"19556:6:53","nodeType":"YulIdentifier","src":"19556:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"19528:12:53","nodeType":"YulIdentifier","src":"19528:12:53"},"nativeSrc":"19528:35:53","nodeType":"YulFunctionCall","src":"19528:35:53"},"nativeSrc":"19528:35:53","nodeType":"YulExpressionStatement","src":"19528:35:53"},{"nativeSrc":"19572:28:53","nodeType":"YulVariableDeclaration","src":"19572:28:53","value":{"arguments":[{"name":"end_1","nativeSrc":"19586:5:53","nodeType":"YulIdentifier","src":"19586:5:53"},{"name":"value2","nativeSrc":"19593:6:53","nodeType":"YulIdentifier","src":"19593:6:53"}],"functionName":{"name":"add","nativeSrc":"19582:3:53","nodeType":"YulIdentifier","src":"19582:3:53"},"nativeSrc":"19582:18:53","nodeType":"YulFunctionCall","src":"19582:18:53"},"variables":[{"name":"_1","nativeSrc":"19576:2:53","nodeType":"YulTypedName","src":"19576:2:53","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"19616:2:53","nodeType":"YulIdentifier","src":"19616:2:53"},{"kind":"number","nativeSrc":"19620:1:53","nodeType":"YulLiteral","src":"19620:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19609:6:53","nodeType":"YulIdentifier","src":"19609:6:53"},"nativeSrc":"19609:13:53","nodeType":"YulFunctionCall","src":"19609:13:53"},"nativeSrc":"19609:13:53","nodeType":"YulExpressionStatement","src":"19609:13:53"},{"nativeSrc":"19631:9:53","nodeType":"YulAssignment","src":"19631:9:53","value":{"name":"_1","nativeSrc":"19638:2:53","nodeType":"YulIdentifier","src":"19638:2:53"},"variableNames":[{"name":"end","nativeSrc":"19631:3:53","nodeType":"YulIdentifier","src":"19631:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr_slice__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"19170:476:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19329:3:53","nodeType":"YulTypedName","src":"19329:3:53","type":""},{"name":"value2","nativeSrc":"19334:6:53","nodeType":"YulTypedName","src":"19334:6:53","type":""},{"name":"value1","nativeSrc":"19342:6:53","nodeType":"YulTypedName","src":"19342:6:53","type":""},{"name":"value0","nativeSrc":"19350:6:53","nodeType":"YulTypedName","src":"19350:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19361:3:53","nodeType":"YulTypedName","src":"19361:3:53","type":""}],"src":"19170:476:53"},{"body":{"nativeSrc":"19717:200:53","nodeType":"YulBlock","src":"19717:200:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"19734:3:53","nodeType":"YulIdentifier","src":"19734:3:53"},{"name":"length","nativeSrc":"19739:6:53","nodeType":"YulIdentifier","src":"19739:6:53"}],"functionName":{"name":"mstore","nativeSrc":"19727:6:53","nodeType":"YulIdentifier","src":"19727:6:53"},"nativeSrc":"19727:19:53","nodeType":"YulFunctionCall","src":"19727:19:53"},"nativeSrc":"19727:19:53","nodeType":"YulExpressionStatement","src":"19727:19:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19772:3:53","nodeType":"YulIdentifier","src":"19772:3:53"},{"kind":"number","nativeSrc":"19777:4:53","nodeType":"YulLiteral","src":"19777:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19768:3:53","nodeType":"YulIdentifier","src":"19768:3:53"},"nativeSrc":"19768:14:53","nodeType":"YulFunctionCall","src":"19768:14:53"},{"name":"start","nativeSrc":"19784:5:53","nodeType":"YulIdentifier","src":"19784:5:53"},{"name":"length","nativeSrc":"19791:6:53","nodeType":"YulIdentifier","src":"19791:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"19755:12:53","nodeType":"YulIdentifier","src":"19755:12:53"},"nativeSrc":"19755:43:53","nodeType":"YulFunctionCall","src":"19755:43:53"},"nativeSrc":"19755:43:53","nodeType":"YulExpressionStatement","src":"19755:43:53"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19822:3:53","nodeType":"YulIdentifier","src":"19822:3:53"},{"name":"length","nativeSrc":"19827:6:53","nodeType":"YulIdentifier","src":"19827:6:53"}],"functionName":{"name":"add","nativeSrc":"19818:3:53","nodeType":"YulIdentifier","src":"19818:3:53"},"nativeSrc":"19818:16:53","nodeType":"YulFunctionCall","src":"19818:16:53"},{"kind":"number","nativeSrc":"19836:4:53","nodeType":"YulLiteral","src":"19836:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19814:3:53","nodeType":"YulIdentifier","src":"19814:3:53"},"nativeSrc":"19814:27:53","nodeType":"YulFunctionCall","src":"19814:27:53"},{"kind":"number","nativeSrc":"19843:1:53","nodeType":"YulLiteral","src":"19843:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19807:6:53","nodeType":"YulIdentifier","src":"19807:6:53"},"nativeSrc":"19807:38:53","nodeType":"YulFunctionCall","src":"19807:38:53"},"nativeSrc":"19807:38:53","nodeType":"YulExpressionStatement","src":"19807:38:53"},{"nativeSrc":"19854:57:53","nodeType":"YulAssignment","src":"19854:57:53","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19869:3:53","nodeType":"YulIdentifier","src":"19869:3:53"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"19882:6:53","nodeType":"YulIdentifier","src":"19882:6:53"},{"kind":"number","nativeSrc":"19890:2:53","nodeType":"YulLiteral","src":"19890:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19878:3:53","nodeType":"YulIdentifier","src":"19878:3:53"},"nativeSrc":"19878:15:53","nodeType":"YulFunctionCall","src":"19878:15:53"},{"arguments":[{"kind":"number","nativeSrc":"19899:2:53","nodeType":"YulLiteral","src":"19899:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"19895:3:53","nodeType":"YulIdentifier","src":"19895:3:53"},"nativeSrc":"19895:7:53","nodeType":"YulFunctionCall","src":"19895:7:53"}],"functionName":{"name":"and","nativeSrc":"19874:3:53","nodeType":"YulIdentifier","src":"19874:3:53"},"nativeSrc":"19874:29:53","nodeType":"YulFunctionCall","src":"19874:29:53"}],"functionName":{"name":"add","nativeSrc":"19865:3:53","nodeType":"YulIdentifier","src":"19865:3:53"},"nativeSrc":"19865:39:53","nodeType":"YulFunctionCall","src":"19865:39:53"},{"kind":"number","nativeSrc":"19906:4:53","nodeType":"YulLiteral","src":"19906:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19861:3:53","nodeType":"YulIdentifier","src":"19861:3:53"},"nativeSrc":"19861:50:53","nodeType":"YulFunctionCall","src":"19861:50:53"},"variableNames":[{"name":"end","nativeSrc":"19854:3:53","nodeType":"YulIdentifier","src":"19854:3:53"}]}]},"name":"abi_encode_bytes_calldata","nativeSrc":"19651:266:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"19686:5:53","nodeType":"YulTypedName","src":"19686:5:53","type":""},{"name":"length","nativeSrc":"19693:6:53","nodeType":"YulTypedName","src":"19693:6:53","type":""},{"name":"pos","nativeSrc":"19701:3:53","nodeType":"YulTypedName","src":"19701:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19709:3:53","nodeType":"YulTypedName","src":"19709:3:53","type":""}],"src":"19651:266:53"},{"body":{"nativeSrc":"20051:115:53","nodeType":"YulBlock","src":"20051:115:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20068:9:53","nodeType":"YulIdentifier","src":"20068:9:53"},{"kind":"number","nativeSrc":"20079:2:53","nodeType":"YulLiteral","src":"20079:2:53","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20061:6:53","nodeType":"YulIdentifier","src":"20061:6:53"},"nativeSrc":"20061:21:53","nodeType":"YulFunctionCall","src":"20061:21:53"},"nativeSrc":"20061:21:53","nodeType":"YulExpressionStatement","src":"20061:21:53"},{"nativeSrc":"20091:69:53","nodeType":"YulAssignment","src":"20091:69:53","value":{"arguments":[{"name":"value0","nativeSrc":"20125:6:53","nodeType":"YulIdentifier","src":"20125:6:53"},{"name":"value1","nativeSrc":"20133:6:53","nodeType":"YulIdentifier","src":"20133:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"20145:9:53","nodeType":"YulIdentifier","src":"20145:9:53"},{"kind":"number","nativeSrc":"20156:2:53","nodeType":"YulLiteral","src":"20156:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20141:3:53","nodeType":"YulIdentifier","src":"20141:3:53"},"nativeSrc":"20141:18:53","nodeType":"YulFunctionCall","src":"20141:18:53"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"20099:25:53","nodeType":"YulIdentifier","src":"20099:25:53"},"nativeSrc":"20099:61:53","nodeType":"YulFunctionCall","src":"20099:61:53"},"variableNames":[{"name":"tail","nativeSrc":"20091:4:53","nodeType":"YulIdentifier","src":"20091:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"19922:244:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20012:9:53","nodeType":"YulTypedName","src":"20012:9:53","type":""},{"name":"value1","nativeSrc":"20023:6:53","nodeType":"YulTypedName","src":"20023:6:53","type":""},{"name":"value0","nativeSrc":"20031:6:53","nodeType":"YulTypedName","src":"20031:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20042:4:53","nodeType":"YulTypedName","src":"20042:4:53","type":""}],"src":"19922:244:53"},{"body":{"nativeSrc":"20203:95:53","nodeType":"YulBlock","src":"20203:95:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20220:1:53","nodeType":"YulLiteral","src":"20220:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"20227:3:53","nodeType":"YulLiteral","src":"20227:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"20232:10:53","nodeType":"YulLiteral","src":"20232:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"20223:3:53","nodeType":"YulIdentifier","src":"20223:3:53"},"nativeSrc":"20223:20:53","nodeType":"YulFunctionCall","src":"20223:20:53"}],"functionName":{"name":"mstore","nativeSrc":"20213:6:53","nodeType":"YulIdentifier","src":"20213:6:53"},"nativeSrc":"20213:31:53","nodeType":"YulFunctionCall","src":"20213:31:53"},"nativeSrc":"20213:31:53","nodeType":"YulExpressionStatement","src":"20213:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20260:1:53","nodeType":"YulLiteral","src":"20260:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"20263:4:53","nodeType":"YulLiteral","src":"20263:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"20253:6:53","nodeType":"YulIdentifier","src":"20253:6:53"},"nativeSrc":"20253:15:53","nodeType":"YulFunctionCall","src":"20253:15:53"},"nativeSrc":"20253:15:53","nodeType":"YulExpressionStatement","src":"20253:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20284:1:53","nodeType":"YulLiteral","src":"20284:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20287:4:53","nodeType":"YulLiteral","src":"20287:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"20277:6:53","nodeType":"YulIdentifier","src":"20277:6:53"},"nativeSrc":"20277:15:53","nodeType":"YulFunctionCall","src":"20277:15:53"},"nativeSrc":"20277:15:53","nodeType":"YulExpressionStatement","src":"20277:15:53"}]},"name":"panic_error_0x32","nativeSrc":"20171:127:53","nodeType":"YulFunctionDefinition","src":"20171:127:53"},{"body":{"nativeSrc":"20411:223:53","nodeType":"YulBlock","src":"20411:223:53","statements":[{"nativeSrc":"20421:51:53","nodeType":"YulVariableDeclaration","src":"20421:51:53","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"20460:11:53","nodeType":"YulIdentifier","src":"20460:11:53"}],"functionName":{"name":"calldataload","nativeSrc":"20447:12:53","nodeType":"YulIdentifier","src":"20447:12:53"},"nativeSrc":"20447:25:53","nodeType":"YulFunctionCall","src":"20447:25:53"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"20425:18:53","nodeType":"YulTypedName","src":"20425:18:53","type":""}]},{"body":{"nativeSrc":"20562:16:53","nodeType":"YulBlock","src":"20562:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20571:1:53","nodeType":"YulLiteral","src":"20571:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20574:1:53","nodeType":"YulLiteral","src":"20574:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20564:6:53","nodeType":"YulIdentifier","src":"20564:6:53"},"nativeSrc":"20564:12:53","nodeType":"YulFunctionCall","src":"20564:12:53"},"nativeSrc":"20564:12:53","nodeType":"YulExpressionStatement","src":"20564:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"20495:18:53","nodeType":"YulIdentifier","src":"20495:18:53"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"20523:12:53","nodeType":"YulIdentifier","src":"20523:12:53"},"nativeSrc":"20523:14:53","nodeType":"YulFunctionCall","src":"20523:14:53"},{"name":"base_ref","nativeSrc":"20539:8:53","nodeType":"YulIdentifier","src":"20539:8:53"}],"functionName":{"name":"sub","nativeSrc":"20519:3:53","nodeType":"YulIdentifier","src":"20519:3:53"},"nativeSrc":"20519:29:53","nodeType":"YulFunctionCall","src":"20519:29:53"},{"arguments":[{"kind":"number","nativeSrc":"20554:3:53","nodeType":"YulLiteral","src":"20554:3:53","type":"","value":"318"}],"functionName":{"name":"not","nativeSrc":"20550:3:53","nodeType":"YulIdentifier","src":"20550:3:53"},"nativeSrc":"20550:8:53","nodeType":"YulFunctionCall","src":"20550:8:53"}],"functionName":{"name":"add","nativeSrc":"20515:3:53","nodeType":"YulIdentifier","src":"20515:3:53"},"nativeSrc":"20515:44:53","nodeType":"YulFunctionCall","src":"20515:44:53"}],"functionName":{"name":"slt","nativeSrc":"20491:3:53","nodeType":"YulIdentifier","src":"20491:3:53"},"nativeSrc":"20491:69:53","nodeType":"YulFunctionCall","src":"20491:69:53"}],"functionName":{"name":"iszero","nativeSrc":"20484:6:53","nodeType":"YulIdentifier","src":"20484:6:53"},"nativeSrc":"20484:77:53","nodeType":"YulFunctionCall","src":"20484:77:53"},"nativeSrc":"20481:97:53","nodeType":"YulIf","src":"20481:97:53"},{"nativeSrc":"20587:41:53","nodeType":"YulAssignment","src":"20587:41:53","value":{"arguments":[{"name":"base_ref","nativeSrc":"20599:8:53","nodeType":"YulIdentifier","src":"20599:8:53"},{"name":"rel_offset_of_tail","nativeSrc":"20609:18:53","nodeType":"YulIdentifier","src":"20609:18:53"}],"functionName":{"name":"add","nativeSrc":"20595:3:53","nodeType":"YulIdentifier","src":"20595:3:53"},"nativeSrc":"20595:33:53","nodeType":"YulFunctionCall","src":"20595:33:53"},"variableNames":[{"name":"addr","nativeSrc":"20587:4:53","nodeType":"YulIdentifier","src":"20587:4:53"}]}]},"name":"access_calldata_tail_t_struct$_InboundPacket_$2010_calldata_ptr","nativeSrc":"20303:331:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"20376:8:53","nodeType":"YulTypedName","src":"20376:8:53","type":""},{"name":"ptr_to_tail","nativeSrc":"20386:11:53","nodeType":"YulTypedName","src":"20386:11:53","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"20402:4:53","nodeType":"YulTypedName","src":"20402:4:53","type":""}],"src":"20303:331:53"},{"body":{"nativeSrc":"20733:427:53","nodeType":"YulBlock","src":"20733:427:53","statements":[{"nativeSrc":"20743:51:53","nodeType":"YulVariableDeclaration","src":"20743:51:53","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"20782:11:53","nodeType":"YulIdentifier","src":"20782:11:53"}],"functionName":{"name":"calldataload","nativeSrc":"20769:12:53","nodeType":"YulIdentifier","src":"20769:12:53"},"nativeSrc":"20769:25:53","nodeType":"YulFunctionCall","src":"20769:25:53"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"20747:18:53","nodeType":"YulTypedName","src":"20747:18:53","type":""}]},{"body":{"nativeSrc":"20883:16:53","nodeType":"YulBlock","src":"20883:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20892:1:53","nodeType":"YulLiteral","src":"20892:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20895:1:53","nodeType":"YulLiteral","src":"20895:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20885:6:53","nodeType":"YulIdentifier","src":"20885:6:53"},"nativeSrc":"20885:12:53","nodeType":"YulFunctionCall","src":"20885:12:53"},"nativeSrc":"20885:12:53","nodeType":"YulExpressionStatement","src":"20885:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"20817:18:53","nodeType":"YulIdentifier","src":"20817:18:53"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"20845:12:53","nodeType":"YulIdentifier","src":"20845:12:53"},"nativeSrc":"20845:14:53","nodeType":"YulFunctionCall","src":"20845:14:53"},{"name":"base_ref","nativeSrc":"20861:8:53","nodeType":"YulIdentifier","src":"20861:8:53"}],"functionName":{"name":"sub","nativeSrc":"20841:3:53","nodeType":"YulIdentifier","src":"20841:3:53"},"nativeSrc":"20841:29:53","nodeType":"YulFunctionCall","src":"20841:29:53"},{"arguments":[{"kind":"number","nativeSrc":"20876:2:53","nodeType":"YulLiteral","src":"20876:2:53","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"20872:3:53","nodeType":"YulIdentifier","src":"20872:3:53"},"nativeSrc":"20872:7:53","nodeType":"YulFunctionCall","src":"20872:7:53"}],"functionName":{"name":"add","nativeSrc":"20837:3:53","nodeType":"YulIdentifier","src":"20837:3:53"},"nativeSrc":"20837:43:53","nodeType":"YulFunctionCall","src":"20837:43:53"}],"functionName":{"name":"slt","nativeSrc":"20813:3:53","nodeType":"YulIdentifier","src":"20813:3:53"},"nativeSrc":"20813:68:53","nodeType":"YulFunctionCall","src":"20813:68:53"}],"functionName":{"name":"iszero","nativeSrc":"20806:6:53","nodeType":"YulIdentifier","src":"20806:6:53"},"nativeSrc":"20806:76:53","nodeType":"YulFunctionCall","src":"20806:76:53"},"nativeSrc":"20803:96:53","nodeType":"YulIf","src":"20803:96:53"},{"nativeSrc":"20908:47:53","nodeType":"YulVariableDeclaration","src":"20908:47:53","value":{"arguments":[{"name":"base_ref","nativeSrc":"20926:8:53","nodeType":"YulIdentifier","src":"20926:8:53"},{"name":"rel_offset_of_tail","nativeSrc":"20936:18:53","nodeType":"YulIdentifier","src":"20936:18:53"}],"functionName":{"name":"add","nativeSrc":"20922:3:53","nodeType":"YulIdentifier","src":"20922:3:53"},"nativeSrc":"20922:33:53","nodeType":"YulFunctionCall","src":"20922:33:53"},"variables":[{"name":"addr_1","nativeSrc":"20912:6:53","nodeType":"YulTypedName","src":"20912:6:53","type":""}]},{"nativeSrc":"20964:30:53","nodeType":"YulAssignment","src":"20964:30:53","value":{"arguments":[{"name":"addr_1","nativeSrc":"20987:6:53","nodeType":"YulIdentifier","src":"20987:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"20974:12:53","nodeType":"YulIdentifier","src":"20974:12:53"},"nativeSrc":"20974:20:53","nodeType":"YulFunctionCall","src":"20974:20:53"},"variableNames":[{"name":"length","nativeSrc":"20964:6:53","nodeType":"YulIdentifier","src":"20964:6:53"}]},{"body":{"nativeSrc":"21037:16:53","nodeType":"YulBlock","src":"21037:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21046:1:53","nodeType":"YulLiteral","src":"21046:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"21049:1:53","nodeType":"YulLiteral","src":"21049:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"21039:6:53","nodeType":"YulIdentifier","src":"21039:6:53"},"nativeSrc":"21039:12:53","nodeType":"YulFunctionCall","src":"21039:12:53"},"nativeSrc":"21039:12:53","nodeType":"YulExpressionStatement","src":"21039:12:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"21009:6:53","nodeType":"YulIdentifier","src":"21009:6:53"},{"kind":"number","nativeSrc":"21017:18:53","nodeType":"YulLiteral","src":"21017:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21006:2:53","nodeType":"YulIdentifier","src":"21006:2:53"},"nativeSrc":"21006:30:53","nodeType":"YulFunctionCall","src":"21006:30:53"},"nativeSrc":"21003:50:53","nodeType":"YulIf","src":"21003:50:53"},{"nativeSrc":"21062:25:53","nodeType":"YulAssignment","src":"21062:25:53","value":{"arguments":[{"name":"addr_1","nativeSrc":"21074:6:53","nodeType":"YulIdentifier","src":"21074:6:53"},{"kind":"number","nativeSrc":"21082:4:53","nodeType":"YulLiteral","src":"21082:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21070:3:53","nodeType":"YulIdentifier","src":"21070:3:53"},"nativeSrc":"21070:17:53","nodeType":"YulFunctionCall","src":"21070:17:53"},"variableNames":[{"name":"addr","nativeSrc":"21062:4:53","nodeType":"YulIdentifier","src":"21062:4:53"}]},{"body":{"nativeSrc":"21138:16:53","nodeType":"YulBlock","src":"21138:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21147:1:53","nodeType":"YulLiteral","src":"21147:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"21150:1:53","nodeType":"YulLiteral","src":"21150:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"21140:6:53","nodeType":"YulIdentifier","src":"21140:6:53"},"nativeSrc":"21140:12:53","nodeType":"YulFunctionCall","src":"21140:12:53"},"nativeSrc":"21140:12:53","nodeType":"YulExpressionStatement","src":"21140:12:53"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"21103:4:53","nodeType":"YulIdentifier","src":"21103:4:53"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"21113:12:53","nodeType":"YulIdentifier","src":"21113:12:53"},"nativeSrc":"21113:14:53","nodeType":"YulFunctionCall","src":"21113:14:53"},{"name":"length","nativeSrc":"21129:6:53","nodeType":"YulIdentifier","src":"21129:6:53"}],"functionName":{"name":"sub","nativeSrc":"21109:3:53","nodeType":"YulIdentifier","src":"21109:3:53"},"nativeSrc":"21109:27:53","nodeType":"YulFunctionCall","src":"21109:27:53"}],"functionName":{"name":"sgt","nativeSrc":"21099:3:53","nodeType":"YulIdentifier","src":"21099:3:53"},"nativeSrc":"21099:38:53","nodeType":"YulFunctionCall","src":"21099:38:53"},"nativeSrc":"21096:58:53","nodeType":"YulIf","src":"21096:58:53"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"20639:521:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"20690:8:53","nodeType":"YulTypedName","src":"20690:8:53","type":""},{"name":"ptr_to_tail","nativeSrc":"20700:11:53","nodeType":"YulTypedName","src":"20700:11:53","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"20716:4:53","nodeType":"YulTypedName","src":"20716:4:53","type":""},{"name":"length","nativeSrc":"20722:6:53","nodeType":"YulTypedName","src":"20722:6:53","type":""}],"src":"20639:521:53"},{"body":{"nativeSrc":"21209:85:53","nodeType":"YulBlock","src":"21209:85:53","statements":[{"body":{"nativeSrc":"21272:16:53","nodeType":"YulBlock","src":"21272:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21281:1:53","nodeType":"YulLiteral","src":"21281:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"21284:1:53","nodeType":"YulLiteral","src":"21284:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"21274:6:53","nodeType":"YulIdentifier","src":"21274:6:53"},"nativeSrc":"21274:12:53","nodeType":"YulFunctionCall","src":"21274:12:53"},"nativeSrc":"21274:12:53","nodeType":"YulExpressionStatement","src":"21274:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21232:5:53","nodeType":"YulIdentifier","src":"21232:5:53"},{"arguments":[{"name":"value","nativeSrc":"21243:5:53","nodeType":"YulIdentifier","src":"21243:5:53"},{"kind":"number","nativeSrc":"21250:18:53","nodeType":"YulLiteral","src":"21250:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"21239:3:53","nodeType":"YulIdentifier","src":"21239:3:53"},"nativeSrc":"21239:30:53","nodeType":"YulFunctionCall","src":"21239:30:53"}],"functionName":{"name":"eq","nativeSrc":"21229:2:53","nodeType":"YulIdentifier","src":"21229:2:53"},"nativeSrc":"21229:41:53","nodeType":"YulFunctionCall","src":"21229:41:53"}],"functionName":{"name":"iszero","nativeSrc":"21222:6:53","nodeType":"YulIdentifier","src":"21222:6:53"},"nativeSrc":"21222:49:53","nodeType":"YulFunctionCall","src":"21222:49:53"},"nativeSrc":"21219:69:53","nodeType":"YulIf","src":"21219:69:53"}]},"name":"validator_revert_uint64","nativeSrc":"21165:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21198:5:53","nodeType":"YulTypedName","src":"21198:5:53","type":""}],"src":"21165:129:53"},{"body":{"nativeSrc":"21618:673:53","nodeType":"YulBlock","src":"21618:673:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21635:9:53","nodeType":"YulIdentifier","src":"21635:9:53"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21668:6:53","nodeType":"YulIdentifier","src":"21668:6:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"21650:17:53","nodeType":"YulIdentifier","src":"21650:17:53"},"nativeSrc":"21650:25:53","nodeType":"YulFunctionCall","src":"21650:25:53"},{"kind":"number","nativeSrc":"21677:10:53","nodeType":"YulLiteral","src":"21677:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"21646:3:53","nodeType":"YulIdentifier","src":"21646:3:53"},"nativeSrc":"21646:42:53","nodeType":"YulFunctionCall","src":"21646:42:53"}],"functionName":{"name":"mstore","nativeSrc":"21628:6:53","nodeType":"YulIdentifier","src":"21628:6:53"},"nativeSrc":"21628:61:53","nodeType":"YulFunctionCall","src":"21628:61:53"},"nativeSrc":"21628:61:53","nodeType":"YulExpressionStatement","src":"21628:61:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21709:9:53","nodeType":"YulIdentifier","src":"21709:9:53"},{"kind":"number","nativeSrc":"21720:4:53","nodeType":"YulLiteral","src":"21720:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21705:3:53","nodeType":"YulIdentifier","src":"21705:3:53"},"nativeSrc":"21705:20:53","nodeType":"YulFunctionCall","src":"21705:20:53"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21744:6:53","nodeType":"YulIdentifier","src":"21744:6:53"},{"kind":"number","nativeSrc":"21752:4:53","nodeType":"YulLiteral","src":"21752:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21740:3:53","nodeType":"YulIdentifier","src":"21740:3:53"},"nativeSrc":"21740:17:53","nodeType":"YulFunctionCall","src":"21740:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"21727:12:53","nodeType":"YulIdentifier","src":"21727:12:53"},"nativeSrc":"21727:31:53","nodeType":"YulFunctionCall","src":"21727:31:53"}],"functionName":{"name":"mstore","nativeSrc":"21698:6:53","nodeType":"YulIdentifier","src":"21698:6:53"},"nativeSrc":"21698:61:53","nodeType":"YulFunctionCall","src":"21698:61:53"},"nativeSrc":"21698:61:53","nodeType":"YulExpressionStatement","src":"21698:61:53"},{"nativeSrc":"21768:44:53","nodeType":"YulVariableDeclaration","src":"21768:44:53","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21798:6:53","nodeType":"YulIdentifier","src":"21798:6:53"},{"kind":"number","nativeSrc":"21806:4:53","nodeType":"YulLiteral","src":"21806:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21794:3:53","nodeType":"YulIdentifier","src":"21794:3:53"},"nativeSrc":"21794:17:53","nodeType":"YulFunctionCall","src":"21794:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"21781:12:53","nodeType":"YulIdentifier","src":"21781:12:53"},"nativeSrc":"21781:31:53","nodeType":"YulFunctionCall","src":"21781:31:53"},"variables":[{"name":"value","nativeSrc":"21772:5:53","nodeType":"YulTypedName","src":"21772:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"21845:5:53","nodeType":"YulIdentifier","src":"21845:5:53"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"21821:23:53","nodeType":"YulIdentifier","src":"21821:23:53"},"nativeSrc":"21821:30:53","nodeType":"YulFunctionCall","src":"21821:30:53"},"nativeSrc":"21821:30:53","nodeType":"YulExpressionStatement","src":"21821:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21871:9:53","nodeType":"YulIdentifier","src":"21871:9:53"},{"kind":"number","nativeSrc":"21882:4:53","nodeType":"YulLiteral","src":"21882:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21867:3:53","nodeType":"YulIdentifier","src":"21867:3:53"},"nativeSrc":"21867:20:53","nodeType":"YulFunctionCall","src":"21867:20:53"},{"arguments":[{"name":"value","nativeSrc":"21893:5:53","nodeType":"YulIdentifier","src":"21893:5:53"},{"kind":"number","nativeSrc":"21900:18:53","nodeType":"YulLiteral","src":"21900:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"21889:3:53","nodeType":"YulIdentifier","src":"21889:3:53"},"nativeSrc":"21889:30:53","nodeType":"YulFunctionCall","src":"21889:30:53"}],"functionName":{"name":"mstore","nativeSrc":"21860:6:53","nodeType":"YulIdentifier","src":"21860:6:53"},"nativeSrc":"21860:60:53","nodeType":"YulFunctionCall","src":"21860:60:53"},"nativeSrc":"21860:60:53","nodeType":"YulExpressionStatement","src":"21860:60:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21940:9:53","nodeType":"YulIdentifier","src":"21940:9:53"},{"kind":"number","nativeSrc":"21951:2:53","nodeType":"YulLiteral","src":"21951:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21936:3:53","nodeType":"YulIdentifier","src":"21936:3:53"},"nativeSrc":"21936:18:53","nodeType":"YulFunctionCall","src":"21936:18:53"},{"name":"value1","nativeSrc":"21956:6:53","nodeType":"YulIdentifier","src":"21956:6:53"}],"functionName":{"name":"mstore","nativeSrc":"21929:6:53","nodeType":"YulIdentifier","src":"21929:6:53"},"nativeSrc":"21929:34:53","nodeType":"YulFunctionCall","src":"21929:34:53"},"nativeSrc":"21929:34:53","nodeType":"YulExpressionStatement","src":"21929:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21983:9:53","nodeType":"YulIdentifier","src":"21983:9:53"},{"kind":"number","nativeSrc":"21994:3:53","nodeType":"YulLiteral","src":"21994:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21979:3:53","nodeType":"YulIdentifier","src":"21979:3:53"},"nativeSrc":"21979:19:53","nodeType":"YulFunctionCall","src":"21979:19:53"},{"kind":"number","nativeSrc":"22000:3:53","nodeType":"YulLiteral","src":"22000:3:53","type":"","value":"224"}],"functionName":{"name":"mstore","nativeSrc":"21972:6:53","nodeType":"YulIdentifier","src":"21972:6:53"},"nativeSrc":"21972:32:53","nodeType":"YulFunctionCall","src":"21972:32:53"},"nativeSrc":"21972:32:53","nodeType":"YulExpressionStatement","src":"21972:32:53"},{"nativeSrc":"22013:76:53","nodeType":"YulVariableDeclaration","src":"22013:76:53","value":{"arguments":[{"name":"value2","nativeSrc":"22053:6:53","nodeType":"YulIdentifier","src":"22053:6:53"},{"name":"value3","nativeSrc":"22061:6:53","nodeType":"YulIdentifier","src":"22061:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"22073:9:53","nodeType":"YulIdentifier","src":"22073:9:53"},{"kind":"number","nativeSrc":"22084:3:53","nodeType":"YulLiteral","src":"22084:3:53","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"22069:3:53","nodeType":"YulIdentifier","src":"22069:3:53"},"nativeSrc":"22069:19:53","nodeType":"YulFunctionCall","src":"22069:19:53"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"22027:25:53","nodeType":"YulIdentifier","src":"22027:25:53"},"nativeSrc":"22027:62:53","nodeType":"YulFunctionCall","src":"22027:62:53"},"variables":[{"name":"tail_1","nativeSrc":"22017:6:53","nodeType":"YulTypedName","src":"22017:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22109:9:53","nodeType":"YulIdentifier","src":"22109:9:53"},{"kind":"number","nativeSrc":"22120:3:53","nodeType":"YulLiteral","src":"22120:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"22105:3:53","nodeType":"YulIdentifier","src":"22105:3:53"},"nativeSrc":"22105:19:53","nodeType":"YulFunctionCall","src":"22105:19:53"},{"arguments":[{"name":"value4","nativeSrc":"22130:6:53","nodeType":"YulIdentifier","src":"22130:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22146:3:53","nodeType":"YulLiteral","src":"22146:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"22151:1:53","nodeType":"YulLiteral","src":"22151:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"22142:3:53","nodeType":"YulIdentifier","src":"22142:3:53"},"nativeSrc":"22142:11:53","nodeType":"YulFunctionCall","src":"22142:11:53"},{"kind":"number","nativeSrc":"22155:1:53","nodeType":"YulLiteral","src":"22155:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"22138:3:53","nodeType":"YulIdentifier","src":"22138:3:53"},"nativeSrc":"22138:19:53","nodeType":"YulFunctionCall","src":"22138:19:53"}],"functionName":{"name":"and","nativeSrc":"22126:3:53","nodeType":"YulIdentifier","src":"22126:3:53"},"nativeSrc":"22126:32:53","nodeType":"YulFunctionCall","src":"22126:32:53"}],"functionName":{"name":"mstore","nativeSrc":"22098:6:53","nodeType":"YulIdentifier","src":"22098:6:53"},"nativeSrc":"22098:61:53","nodeType":"YulFunctionCall","src":"22098:61:53"},"nativeSrc":"22098:61:53","nodeType":"YulExpressionStatement","src":"22098:61:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22179:9:53","nodeType":"YulIdentifier","src":"22179:9:53"},{"kind":"number","nativeSrc":"22190:3:53","nodeType":"YulLiteral","src":"22190:3:53","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"22175:3:53","nodeType":"YulIdentifier","src":"22175:3:53"},"nativeSrc":"22175:19:53","nodeType":"YulFunctionCall","src":"22175:19:53"},{"arguments":[{"name":"tail_1","nativeSrc":"22200:6:53","nodeType":"YulIdentifier","src":"22200:6:53"},{"name":"headStart","nativeSrc":"22208:9:53","nodeType":"YulIdentifier","src":"22208:9:53"}],"functionName":{"name":"sub","nativeSrc":"22196:3:53","nodeType":"YulIdentifier","src":"22196:3:53"},"nativeSrc":"22196:22:53","nodeType":"YulFunctionCall","src":"22196:22:53"}],"functionName":{"name":"mstore","nativeSrc":"22168:6:53","nodeType":"YulIdentifier","src":"22168:6:53"},"nativeSrc":"22168:51:53","nodeType":"YulFunctionCall","src":"22168:51:53"},"nativeSrc":"22168:51:53","nodeType":"YulExpressionStatement","src":"22168:51:53"},{"nativeSrc":"22228:57:53","nodeType":"YulAssignment","src":"22228:57:53","value":{"arguments":[{"name":"value5","nativeSrc":"22262:6:53","nodeType":"YulIdentifier","src":"22262:6:53"},{"name":"value6","nativeSrc":"22270:6:53","nodeType":"YulIdentifier","src":"22270:6:53"},{"name":"tail_1","nativeSrc":"22278:6:53","nodeType":"YulIdentifier","src":"22278:6:53"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"22236:25:53","nodeType":"YulIdentifier","src":"22236:25:53"},"nativeSrc":"22236:49:53","nodeType":"YulFunctionCall","src":"22236:49:53"},"variableNames":[{"name":"tail","nativeSrc":"22228:4:53","nodeType":"YulIdentifier","src":"22228:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Origin_$2176_calldata_ptr_t_bytes32_t_bytes_calldata_ptr_t_address_t_bytes_calldata_ptr__to_t_struct$_Origin_$2176_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"21299:992:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21539:9:53","nodeType":"YulTypedName","src":"21539:9:53","type":""},{"name":"value6","nativeSrc":"21550:6:53","nodeType":"YulTypedName","src":"21550:6:53","type":""},{"name":"value5","nativeSrc":"21558:6:53","nodeType":"YulTypedName","src":"21558:6:53","type":""},{"name":"value4","nativeSrc":"21566:6:53","nodeType":"YulTypedName","src":"21566:6:53","type":""},{"name":"value3","nativeSrc":"21574:6:53","nodeType":"YulTypedName","src":"21574:6:53","type":""},{"name":"value2","nativeSrc":"21582:6:53","nodeType":"YulTypedName","src":"21582:6:53","type":""},{"name":"value1","nativeSrc":"21590:6:53","nodeType":"YulTypedName","src":"21590:6:53","type":""},{"name":"value0","nativeSrc":"21598:6:53","nodeType":"YulTypedName","src":"21598:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21609:4:53","nodeType":"YulTypedName","src":"21609:4:53","type":""}],"src":"21299:992:53"},{"body":{"nativeSrc":"22386:557:53","nodeType":"YulBlock","src":"22386:557:53","statements":[{"body":{"nativeSrc":"22432:16:53","nodeType":"YulBlock","src":"22432:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22441:1:53","nodeType":"YulLiteral","src":"22441:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22444:1:53","nodeType":"YulLiteral","src":"22444:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22434:6:53","nodeType":"YulIdentifier","src":"22434:6:53"},"nativeSrc":"22434:12:53","nodeType":"YulFunctionCall","src":"22434:12:53"},"nativeSrc":"22434:12:53","nodeType":"YulExpressionStatement","src":"22434:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22407:7:53","nodeType":"YulIdentifier","src":"22407:7:53"},{"name":"headStart","nativeSrc":"22416:9:53","nodeType":"YulIdentifier","src":"22416:9:53"}],"functionName":{"name":"sub","nativeSrc":"22403:3:53","nodeType":"YulIdentifier","src":"22403:3:53"},"nativeSrc":"22403:23:53","nodeType":"YulFunctionCall","src":"22403:23:53"},{"kind":"number","nativeSrc":"22428:2:53","nodeType":"YulLiteral","src":"22428:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"22399:3:53","nodeType":"YulIdentifier","src":"22399:3:53"},"nativeSrc":"22399:32:53","nodeType":"YulFunctionCall","src":"22399:32:53"},"nativeSrc":"22396:52:53","nodeType":"YulIf","src":"22396:52:53"},{"nativeSrc":"22457:30:53","nodeType":"YulVariableDeclaration","src":"22457:30:53","value":{"arguments":[{"name":"headStart","nativeSrc":"22477:9:53","nodeType":"YulIdentifier","src":"22477:9:53"}],"functionName":{"name":"mload","nativeSrc":"22471:5:53","nodeType":"YulIdentifier","src":"22471:5:53"},"nativeSrc":"22471:16:53","nodeType":"YulFunctionCall","src":"22471:16:53"},"variables":[{"name":"offset","nativeSrc":"22461:6:53","nodeType":"YulTypedName","src":"22461:6:53","type":""}]},{"body":{"nativeSrc":"22530:16:53","nodeType":"YulBlock","src":"22530:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22539:1:53","nodeType":"YulLiteral","src":"22539:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22542:1:53","nodeType":"YulLiteral","src":"22542:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22532:6:53","nodeType":"YulIdentifier","src":"22532:6:53"},"nativeSrc":"22532:12:53","nodeType":"YulFunctionCall","src":"22532:12:53"},"nativeSrc":"22532:12:53","nodeType":"YulExpressionStatement","src":"22532:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"22502:6:53","nodeType":"YulIdentifier","src":"22502:6:53"},{"kind":"number","nativeSrc":"22510:18:53","nodeType":"YulLiteral","src":"22510:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22499:2:53","nodeType":"YulIdentifier","src":"22499:2:53"},"nativeSrc":"22499:30:53","nodeType":"YulFunctionCall","src":"22499:30:53"},"nativeSrc":"22496:50:53","nodeType":"YulIf","src":"22496:50:53"},{"nativeSrc":"22555:32:53","nodeType":"YulVariableDeclaration","src":"22555:32:53","value":{"arguments":[{"name":"headStart","nativeSrc":"22569:9:53","nodeType":"YulIdentifier","src":"22569:9:53"},{"name":"offset","nativeSrc":"22580:6:53","nodeType":"YulIdentifier","src":"22580:6:53"}],"functionName":{"name":"add","nativeSrc":"22565:3:53","nodeType":"YulIdentifier","src":"22565:3:53"},"nativeSrc":"22565:22:53","nodeType":"YulFunctionCall","src":"22565:22:53"},"variables":[{"name":"_1","nativeSrc":"22559:2:53","nodeType":"YulTypedName","src":"22559:2:53","type":""}]},{"body":{"nativeSrc":"22635:16:53","nodeType":"YulBlock","src":"22635:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22644:1:53","nodeType":"YulLiteral","src":"22644:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22647:1:53","nodeType":"YulLiteral","src":"22647:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22637:6:53","nodeType":"YulIdentifier","src":"22637:6:53"},"nativeSrc":"22637:12:53","nodeType":"YulFunctionCall","src":"22637:12:53"},"nativeSrc":"22637:12:53","nodeType":"YulExpressionStatement","src":"22637:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"22614:2:53","nodeType":"YulIdentifier","src":"22614:2:53"},{"kind":"number","nativeSrc":"22618:4:53","nodeType":"YulLiteral","src":"22618:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"22610:3:53","nodeType":"YulIdentifier","src":"22610:3:53"},"nativeSrc":"22610:13:53","nodeType":"YulFunctionCall","src":"22610:13:53"},{"name":"dataEnd","nativeSrc":"22625:7:53","nodeType":"YulIdentifier","src":"22625:7:53"}],"functionName":{"name":"slt","nativeSrc":"22606:3:53","nodeType":"YulIdentifier","src":"22606:3:53"},"nativeSrc":"22606:27:53","nodeType":"YulFunctionCall","src":"22606:27:53"}],"functionName":{"name":"iszero","nativeSrc":"22599:6:53","nodeType":"YulIdentifier","src":"22599:6:53"},"nativeSrc":"22599:35:53","nodeType":"YulFunctionCall","src":"22599:35:53"},"nativeSrc":"22596:55:53","nodeType":"YulIf","src":"22596:55:53"},{"nativeSrc":"22660:19:53","nodeType":"YulVariableDeclaration","src":"22660:19:53","value":{"arguments":[{"name":"_1","nativeSrc":"22676:2:53","nodeType":"YulIdentifier","src":"22676:2:53"}],"functionName":{"name":"mload","nativeSrc":"22670:5:53","nodeType":"YulIdentifier","src":"22670:5:53"},"nativeSrc":"22670:9:53","nodeType":"YulFunctionCall","src":"22670:9:53"},"variables":[{"name":"_2","nativeSrc":"22664:2:53","nodeType":"YulTypedName","src":"22664:2:53","type":""}]},{"nativeSrc":"22688:61:53","nodeType":"YulVariableDeclaration","src":"22688:61:53","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"22745:2:53","nodeType":"YulIdentifier","src":"22745:2:53"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"22717:27:53","nodeType":"YulIdentifier","src":"22717:27:53"},"nativeSrc":"22717:31:53","nodeType":"YulFunctionCall","src":"22717:31:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"22701:15:53","nodeType":"YulIdentifier","src":"22701:15:53"},"nativeSrc":"22701:48:53","nodeType":"YulFunctionCall","src":"22701:48:53"},"variables":[{"name":"array","nativeSrc":"22692:5:53","nodeType":"YulTypedName","src":"22692:5:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"22765:5:53","nodeType":"YulIdentifier","src":"22765:5:53"},{"name":"_2","nativeSrc":"22772:2:53","nodeType":"YulIdentifier","src":"22772:2:53"}],"functionName":{"name":"mstore","nativeSrc":"22758:6:53","nodeType":"YulIdentifier","src":"22758:6:53"},"nativeSrc":"22758:17:53","nodeType":"YulFunctionCall","src":"22758:17:53"},"nativeSrc":"22758:17:53","nodeType":"YulExpressionStatement","src":"22758:17:53"},{"body":{"nativeSrc":"22821:16:53","nodeType":"YulBlock","src":"22821:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22830:1:53","nodeType":"YulLiteral","src":"22830:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22833:1:53","nodeType":"YulLiteral","src":"22833:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22823:6:53","nodeType":"YulIdentifier","src":"22823:6:53"},"nativeSrc":"22823:12:53","nodeType":"YulFunctionCall","src":"22823:12:53"},"nativeSrc":"22823:12:53","nodeType":"YulExpressionStatement","src":"22823:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"22798:2:53","nodeType":"YulIdentifier","src":"22798:2:53"},{"name":"_2","nativeSrc":"22802:2:53","nodeType":"YulIdentifier","src":"22802:2:53"}],"functionName":{"name":"add","nativeSrc":"22794:3:53","nodeType":"YulIdentifier","src":"22794:3:53"},"nativeSrc":"22794:11:53","nodeType":"YulFunctionCall","src":"22794:11:53"},{"kind":"number","nativeSrc":"22807:2:53","nodeType":"YulLiteral","src":"22807:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22790:3:53","nodeType":"YulIdentifier","src":"22790:3:53"},"nativeSrc":"22790:20:53","nodeType":"YulFunctionCall","src":"22790:20:53"},{"name":"dataEnd","nativeSrc":"22812:7:53","nodeType":"YulIdentifier","src":"22812:7:53"}],"functionName":{"name":"gt","nativeSrc":"22787:2:53","nodeType":"YulIdentifier","src":"22787:2:53"},"nativeSrc":"22787:33:53","nodeType":"YulFunctionCall","src":"22787:33:53"},"nativeSrc":"22784:53:53","nodeType":"YulIf","src":"22784:53:53"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"22885:2:53","nodeType":"YulIdentifier","src":"22885:2:53"},{"kind":"number","nativeSrc":"22889:2:53","nodeType":"YulLiteral","src":"22889:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22881:3:53","nodeType":"YulIdentifier","src":"22881:3:53"},"nativeSrc":"22881:11:53","nodeType":"YulFunctionCall","src":"22881:11:53"},{"arguments":[{"name":"array","nativeSrc":"22898:5:53","nodeType":"YulIdentifier","src":"22898:5:53"},{"kind":"number","nativeSrc":"22905:2:53","nodeType":"YulLiteral","src":"22905:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22894:3:53","nodeType":"YulIdentifier","src":"22894:3:53"},"nativeSrc":"22894:14:53","nodeType":"YulFunctionCall","src":"22894:14:53"},{"name":"_2","nativeSrc":"22910:2:53","nodeType":"YulIdentifier","src":"22910:2:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"22846:34:53","nodeType":"YulIdentifier","src":"22846:34:53"},"nativeSrc":"22846:67:53","nodeType":"YulFunctionCall","src":"22846:67:53"},"nativeSrc":"22846:67:53","nodeType":"YulExpressionStatement","src":"22846:67:53"},{"nativeSrc":"22922:15:53","nodeType":"YulAssignment","src":"22922:15:53","value":{"name":"array","nativeSrc":"22932:5:53","nodeType":"YulIdentifier","src":"22932:5:53"},"variableNames":[{"name":"value0","nativeSrc":"22922:6:53","nodeType":"YulIdentifier","src":"22922:6:53"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"22296:647:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22352:9:53","nodeType":"YulTypedName","src":"22352:9:53","type":""},{"name":"dataEnd","nativeSrc":"22363:7:53","nodeType":"YulTypedName","src":"22363:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22375:6:53","nodeType":"YulTypedName","src":"22375:6:53","type":""}],"src":"22296:647:53"},{"body":{"nativeSrc":"23135:309:53","nodeType":"YulBlock","src":"23135:309:53","statements":[{"nativeSrc":"23145:27:53","nodeType":"YulVariableDeclaration","src":"23145:27:53","value":{"arguments":[{"name":"value0","nativeSrc":"23165:6:53","nodeType":"YulIdentifier","src":"23165:6:53"}],"functionName":{"name":"mload","nativeSrc":"23159:5:53","nodeType":"YulIdentifier","src":"23159:5:53"},"nativeSrc":"23159:13:53","nodeType":"YulFunctionCall","src":"23159:13:53"},"variables":[{"name":"length","nativeSrc":"23149:6:53","nodeType":"YulTypedName","src":"23149:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"23220:6:53","nodeType":"YulIdentifier","src":"23220:6:53"},{"kind":"number","nativeSrc":"23228:4:53","nodeType":"YulLiteral","src":"23228:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23216:3:53","nodeType":"YulIdentifier","src":"23216:3:53"},"nativeSrc":"23216:17:53","nodeType":"YulFunctionCall","src":"23216:17:53"},{"name":"pos","nativeSrc":"23235:3:53","nodeType":"YulIdentifier","src":"23235:3:53"},{"name":"length","nativeSrc":"23240:6:53","nodeType":"YulIdentifier","src":"23240:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"23181:34:53","nodeType":"YulIdentifier","src":"23181:34:53"},"nativeSrc":"23181:66:53","nodeType":"YulFunctionCall","src":"23181:66:53"},"nativeSrc":"23181:66:53","nodeType":"YulExpressionStatement","src":"23181:66:53"},{"nativeSrc":"23256:29:53","nodeType":"YulVariableDeclaration","src":"23256:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"23273:3:53","nodeType":"YulIdentifier","src":"23273:3:53"},{"name":"length","nativeSrc":"23278:6:53","nodeType":"YulIdentifier","src":"23278:6:53"}],"functionName":{"name":"add","nativeSrc":"23269:3:53","nodeType":"YulIdentifier","src":"23269:3:53"},"nativeSrc":"23269:16:53","nodeType":"YulFunctionCall","src":"23269:16:53"},"variables":[{"name":"end_1","nativeSrc":"23260:5:53","nodeType":"YulTypedName","src":"23260:5:53","type":""}]},{"nativeSrc":"23294:29:53","nodeType":"YulVariableDeclaration","src":"23294:29:53","value":{"arguments":[{"name":"value1","nativeSrc":"23316:6:53","nodeType":"YulIdentifier","src":"23316:6:53"}],"functionName":{"name":"mload","nativeSrc":"23310:5:53","nodeType":"YulIdentifier","src":"23310:5:53"},"nativeSrc":"23310:13:53","nodeType":"YulFunctionCall","src":"23310:13:53"},"variables":[{"name":"length_1","nativeSrc":"23298:8:53","nodeType":"YulTypedName","src":"23298:8:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"23371:6:53","nodeType":"YulIdentifier","src":"23371:6:53"},{"kind":"number","nativeSrc":"23379:4:53","nodeType":"YulLiteral","src":"23379:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23367:3:53","nodeType":"YulIdentifier","src":"23367:3:53"},"nativeSrc":"23367:17:53","nodeType":"YulFunctionCall","src":"23367:17:53"},{"name":"end_1","nativeSrc":"23386:5:53","nodeType":"YulIdentifier","src":"23386:5:53"},{"name":"length_1","nativeSrc":"23393:8:53","nodeType":"YulIdentifier","src":"23393:8:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"23332:34:53","nodeType":"YulIdentifier","src":"23332:34:53"},"nativeSrc":"23332:70:53","nodeType":"YulFunctionCall","src":"23332:70:53"},"nativeSrc":"23332:70:53","nodeType":"YulExpressionStatement","src":"23332:70:53"},{"nativeSrc":"23411:27:53","nodeType":"YulAssignment","src":"23411:27:53","value":{"arguments":[{"name":"end_1","nativeSrc":"23422:5:53","nodeType":"YulIdentifier","src":"23422:5:53"},{"name":"length_1","nativeSrc":"23429:8:53","nodeType":"YulIdentifier","src":"23429:8:53"}],"functionName":{"name":"add","nativeSrc":"23418:3:53","nodeType":"YulIdentifier","src":"23418:3:53"},"nativeSrc":"23418:20:53","nodeType":"YulFunctionCall","src":"23418:20:53"},"variableNames":[{"name":"end","nativeSrc":"23411:3:53","nodeType":"YulIdentifier","src":"23411:3:53"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"22948:496:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"23103:3:53","nodeType":"YulTypedName","src":"23103:3:53","type":""},{"name":"value1","nativeSrc":"23108:6:53","nodeType":"YulTypedName","src":"23108:6:53","type":""},{"name":"value0","nativeSrc":"23116:6:53","nodeType":"YulTypedName","src":"23116:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"23127:3:53","nodeType":"YulTypedName","src":"23127:3:53","type":""}],"src":"22948:496:53"},{"body":{"nativeSrc":"23548:93:53","nodeType":"YulBlock","src":"23548:93:53","statements":[{"nativeSrc":"23558:26:53","nodeType":"YulAssignment","src":"23558:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"23570:9:53","nodeType":"YulIdentifier","src":"23570:9:53"},{"kind":"number","nativeSrc":"23581:2:53","nodeType":"YulLiteral","src":"23581:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23566:3:53","nodeType":"YulIdentifier","src":"23566:3:53"},"nativeSrc":"23566:18:53","nodeType":"YulFunctionCall","src":"23566:18:53"},"variableNames":[{"name":"tail","nativeSrc":"23558:4:53","nodeType":"YulIdentifier","src":"23558:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23600:9:53","nodeType":"YulIdentifier","src":"23600:9:53"},{"arguments":[{"name":"value0","nativeSrc":"23615:6:53","nodeType":"YulIdentifier","src":"23615:6:53"},{"kind":"number","nativeSrc":"23623:10:53","nodeType":"YulLiteral","src":"23623:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"23611:3:53","nodeType":"YulIdentifier","src":"23611:3:53"},"nativeSrc":"23611:23:53","nodeType":"YulFunctionCall","src":"23611:23:53"}],"functionName":{"name":"mstore","nativeSrc":"23593:6:53","nodeType":"YulIdentifier","src":"23593:6:53"},"nativeSrc":"23593:42:53","nodeType":"YulFunctionCall","src":"23593:42:53"},"nativeSrc":"23593:42:53","nodeType":"YulExpressionStatement","src":"23593:42:53"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nativeSrc":"23449:192:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23517:9:53","nodeType":"YulTypedName","src":"23517:9:53","type":""},{"name":"value0","nativeSrc":"23528:6:53","nodeType":"YulTypedName","src":"23528:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23539:4:53","nodeType":"YulTypedName","src":"23539:4:53","type":""}],"src":"23449:192:53"},{"body":{"nativeSrc":"23715:176:53","nodeType":"YulBlock","src":"23715:176:53","statements":[{"body":{"nativeSrc":"23761:16:53","nodeType":"YulBlock","src":"23761:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23770:1:53","nodeType":"YulLiteral","src":"23770:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"23773:1:53","nodeType":"YulLiteral","src":"23773:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23763:6:53","nodeType":"YulIdentifier","src":"23763:6:53"},"nativeSrc":"23763:12:53","nodeType":"YulFunctionCall","src":"23763:12:53"},"nativeSrc":"23763:12:53","nodeType":"YulExpressionStatement","src":"23763:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23736:7:53","nodeType":"YulIdentifier","src":"23736:7:53"},{"name":"headStart","nativeSrc":"23745:9:53","nodeType":"YulIdentifier","src":"23745:9:53"}],"functionName":{"name":"sub","nativeSrc":"23732:3:53","nodeType":"YulIdentifier","src":"23732:3:53"},"nativeSrc":"23732:23:53","nodeType":"YulFunctionCall","src":"23732:23:53"},{"kind":"number","nativeSrc":"23757:2:53","nodeType":"YulLiteral","src":"23757:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23728:3:53","nodeType":"YulIdentifier","src":"23728:3:53"},"nativeSrc":"23728:32:53","nodeType":"YulFunctionCall","src":"23728:32:53"},"nativeSrc":"23725:52:53","nodeType":"YulIf","src":"23725:52:53"},{"nativeSrc":"23786:36:53","nodeType":"YulVariableDeclaration","src":"23786:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"23812:9:53","nodeType":"YulIdentifier","src":"23812:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"23799:12:53","nodeType":"YulIdentifier","src":"23799:12:53"},"nativeSrc":"23799:23:53","nodeType":"YulFunctionCall","src":"23799:23:53"},"variables":[{"name":"value","nativeSrc":"23790:5:53","nodeType":"YulTypedName","src":"23790:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"23855:5:53","nodeType":"YulIdentifier","src":"23855:5:53"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"23831:23:53","nodeType":"YulIdentifier","src":"23831:23:53"},"nativeSrc":"23831:30:53","nodeType":"YulFunctionCall","src":"23831:30:53"},"nativeSrc":"23831:30:53","nodeType":"YulExpressionStatement","src":"23831:30:53"},{"nativeSrc":"23870:15:53","nodeType":"YulAssignment","src":"23870:15:53","value":{"name":"value","nativeSrc":"23880:5:53","nodeType":"YulIdentifier","src":"23880:5:53"},"variableNames":[{"name":"value0","nativeSrc":"23870:6:53","nodeType":"YulIdentifier","src":"23870:6:53"}]}]},"name":"abi_decode_tuple_t_uint64","nativeSrc":"23646:245:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23681:9:53","nodeType":"YulTypedName","src":"23681:9:53","type":""},{"name":"dataEnd","nativeSrc":"23692:7:53","nodeType":"YulTypedName","src":"23692:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23704:6:53","nodeType":"YulTypedName","src":"23704:6:53","type":""}],"src":"23646:245:53"},{"body":{"nativeSrc":"24106:269:53","nodeType":"YulBlock","src":"24106:269:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24123:9:53","nodeType":"YulIdentifier","src":"24123:9:53"},{"arguments":[{"name":"value0","nativeSrc":"24138:6:53","nodeType":"YulIdentifier","src":"24138:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24154:3:53","nodeType":"YulLiteral","src":"24154:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"24159:1:53","nodeType":"YulLiteral","src":"24159:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"24150:3:53","nodeType":"YulIdentifier","src":"24150:3:53"},"nativeSrc":"24150:11:53","nodeType":"YulFunctionCall","src":"24150:11:53"},{"kind":"number","nativeSrc":"24163:1:53","nodeType":"YulLiteral","src":"24163:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"24146:3:53","nodeType":"YulIdentifier","src":"24146:3:53"},"nativeSrc":"24146:19:53","nodeType":"YulFunctionCall","src":"24146:19:53"}],"functionName":{"name":"and","nativeSrc":"24134:3:53","nodeType":"YulIdentifier","src":"24134:3:53"},"nativeSrc":"24134:32:53","nodeType":"YulFunctionCall","src":"24134:32:53"}],"functionName":{"name":"mstore","nativeSrc":"24116:6:53","nodeType":"YulIdentifier","src":"24116:6:53"},"nativeSrc":"24116:51:53","nodeType":"YulFunctionCall","src":"24116:51:53"},"nativeSrc":"24116:51:53","nodeType":"YulExpressionStatement","src":"24116:51:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24187:9:53","nodeType":"YulIdentifier","src":"24187:9:53"},{"kind":"number","nativeSrc":"24198:2:53","nodeType":"YulLiteral","src":"24198:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24183:3:53","nodeType":"YulIdentifier","src":"24183:3:53"},"nativeSrc":"24183:18:53","nodeType":"YulFunctionCall","src":"24183:18:53"},{"name":"value1","nativeSrc":"24203:6:53","nodeType":"YulIdentifier","src":"24203:6:53"}],"functionName":{"name":"mstore","nativeSrc":"24176:6:53","nodeType":"YulIdentifier","src":"24176:6:53"},"nativeSrc":"24176:34:53","nodeType":"YulFunctionCall","src":"24176:34:53"},"nativeSrc":"24176:34:53","nodeType":"YulExpressionStatement","src":"24176:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24230:9:53","nodeType":"YulIdentifier","src":"24230:9:53"},{"kind":"number","nativeSrc":"24241:2:53","nodeType":"YulLiteral","src":"24241:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24226:3:53","nodeType":"YulIdentifier","src":"24226:3:53"},"nativeSrc":"24226:18:53","nodeType":"YulFunctionCall","src":"24226:18:53"},{"arguments":[{"name":"value2","nativeSrc":"24250:6:53","nodeType":"YulIdentifier","src":"24250:6:53"},{"kind":"number","nativeSrc":"24258:6:53","nodeType":"YulLiteral","src":"24258:6:53","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"24246:3:53","nodeType":"YulIdentifier","src":"24246:3:53"},"nativeSrc":"24246:19:53","nodeType":"YulFunctionCall","src":"24246:19:53"}],"functionName":{"name":"mstore","nativeSrc":"24219:6:53","nodeType":"YulIdentifier","src":"24219:6:53"},"nativeSrc":"24219:47:53","nodeType":"YulFunctionCall","src":"24219:47:53"},"nativeSrc":"24219:47:53","nodeType":"YulExpressionStatement","src":"24219:47:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24286:9:53","nodeType":"YulIdentifier","src":"24286:9:53"},{"kind":"number","nativeSrc":"24297:2:53","nodeType":"YulLiteral","src":"24297:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24282:3:53","nodeType":"YulIdentifier","src":"24282:3:53"},"nativeSrc":"24282:18:53","nodeType":"YulFunctionCall","src":"24282:18:53"},{"kind":"number","nativeSrc":"24302:3:53","nodeType":"YulLiteral","src":"24302:3:53","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"24275:6:53","nodeType":"YulIdentifier","src":"24275:6:53"},"nativeSrc":"24275:31:53","nodeType":"YulFunctionCall","src":"24275:31:53"},"nativeSrc":"24275:31:53","nodeType":"YulExpressionStatement","src":"24275:31:53"},{"nativeSrc":"24315:54:53","nodeType":"YulAssignment","src":"24315:54:53","value":{"arguments":[{"name":"value3","nativeSrc":"24341:6:53","nodeType":"YulIdentifier","src":"24341:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"24353:9:53","nodeType":"YulIdentifier","src":"24353:9:53"},{"kind":"number","nativeSrc":"24364:3:53","nodeType":"YulLiteral","src":"24364:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24349:3:53","nodeType":"YulIdentifier","src":"24349:3:53"},"nativeSrc":"24349:19:53","nodeType":"YulFunctionCall","src":"24349:19:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"24323:17:53","nodeType":"YulIdentifier","src":"24323:17:53"},"nativeSrc":"24323:46:53","nodeType":"YulFunctionCall","src":"24323:46:53"},"variableNames":[{"name":"tail","nativeSrc":"24315:4:53","nodeType":"YulIdentifier","src":"24315:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_rational_0_by_1_t_bytes_memory_ptr__to_t_address_t_bytes32_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"23896:479:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24051:9:53","nodeType":"YulTypedName","src":"24051:9:53","type":""},{"name":"value3","nativeSrc":"24062:6:53","nodeType":"YulTypedName","src":"24062:6:53","type":""},{"name":"value2","nativeSrc":"24070:6:53","nodeType":"YulTypedName","src":"24070:6:53","type":""},{"name":"value1","nativeSrc":"24078:6:53","nodeType":"YulTypedName","src":"24078:6:53","type":""},{"name":"value0","nativeSrc":"24086:6:53","nodeType":"YulTypedName","src":"24086:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24097:4:53","nodeType":"YulTypedName","src":"24097:4:53","type":""}],"src":"23896:479:53"},{"body":{"nativeSrc":"24509:175:53","nodeType":"YulBlock","src":"24509:175:53","statements":[{"nativeSrc":"24519:26:53","nodeType":"YulAssignment","src":"24519:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"24531:9:53","nodeType":"YulIdentifier","src":"24531:9:53"},{"kind":"number","nativeSrc":"24542:2:53","nodeType":"YulLiteral","src":"24542:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24527:3:53","nodeType":"YulIdentifier","src":"24527:3:53"},"nativeSrc":"24527:18:53","nodeType":"YulFunctionCall","src":"24527:18:53"},"variableNames":[{"name":"tail","nativeSrc":"24519:4:53","nodeType":"YulIdentifier","src":"24519:4:53"}]},{"nativeSrc":"24554:29:53","nodeType":"YulVariableDeclaration","src":"24554:29:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24572:3:53","nodeType":"YulLiteral","src":"24572:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"24577:1:53","nodeType":"YulLiteral","src":"24577:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"24568:3:53","nodeType":"YulIdentifier","src":"24568:3:53"},"nativeSrc":"24568:11:53","nodeType":"YulFunctionCall","src":"24568:11:53"},{"kind":"number","nativeSrc":"24581:1:53","nodeType":"YulLiteral","src":"24581:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"24564:3:53","nodeType":"YulIdentifier","src":"24564:3:53"},"nativeSrc":"24564:19:53","nodeType":"YulFunctionCall","src":"24564:19:53"},"variables":[{"name":"_1","nativeSrc":"24558:2:53","nodeType":"YulTypedName","src":"24558:2:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24599:9:53","nodeType":"YulIdentifier","src":"24599:9:53"},{"arguments":[{"name":"value0","nativeSrc":"24614:6:53","nodeType":"YulIdentifier","src":"24614:6:53"},{"name":"_1","nativeSrc":"24622:2:53","nodeType":"YulIdentifier","src":"24622:2:53"}],"functionName":{"name":"and","nativeSrc":"24610:3:53","nodeType":"YulIdentifier","src":"24610:3:53"},"nativeSrc":"24610:15:53","nodeType":"YulFunctionCall","src":"24610:15:53"}],"functionName":{"name":"mstore","nativeSrc":"24592:6:53","nodeType":"YulIdentifier","src":"24592:6:53"},"nativeSrc":"24592:34:53","nodeType":"YulFunctionCall","src":"24592:34:53"},"nativeSrc":"24592:34:53","nodeType":"YulExpressionStatement","src":"24592:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24646:9:53","nodeType":"YulIdentifier","src":"24646:9:53"},{"kind":"number","nativeSrc":"24657:2:53","nodeType":"YulLiteral","src":"24657:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24642:3:53","nodeType":"YulIdentifier","src":"24642:3:53"},"nativeSrc":"24642:18:53","nodeType":"YulFunctionCall","src":"24642:18:53"},{"arguments":[{"name":"value1","nativeSrc":"24666:6:53","nodeType":"YulIdentifier","src":"24666:6:53"},{"name":"_1","nativeSrc":"24674:2:53","nodeType":"YulIdentifier","src":"24674:2:53"}],"functionName":{"name":"and","nativeSrc":"24662:3:53","nodeType":"YulIdentifier","src":"24662:3:53"},"nativeSrc":"24662:15:53","nodeType":"YulFunctionCall","src":"24662:15:53"}],"functionName":{"name":"mstore","nativeSrc":"24635:6:53","nodeType":"YulIdentifier","src":"24635:6:53"},"nativeSrc":"24635:43:53","nodeType":"YulFunctionCall","src":"24635:43:53"},"nativeSrc":"24635:43:53","nodeType":"YulExpressionStatement","src":"24635:43:53"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"24380:304:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24470:9:53","nodeType":"YulTypedName","src":"24470:9:53","type":""},{"name":"value1","nativeSrc":"24481:6:53","nodeType":"YulTypedName","src":"24481:6:53","type":""},{"name":"value0","nativeSrc":"24489:6:53","nodeType":"YulTypedName","src":"24489:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24500:4:53","nodeType":"YulTypedName","src":"24500:4:53","type":""}],"src":"24380:304:53"},{"body":{"nativeSrc":"24854:214:53","nodeType":"YulBlock","src":"24854:214:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24871:9:53","nodeType":"YulIdentifier","src":"24871:9:53"},{"kind":"number","nativeSrc":"24882:2:53","nodeType":"YulLiteral","src":"24882:2:53","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"24864:6:53","nodeType":"YulIdentifier","src":"24864:6:53"},"nativeSrc":"24864:21:53","nodeType":"YulFunctionCall","src":"24864:21:53"},"nativeSrc":"24864:21:53","nodeType":"YulExpressionStatement","src":"24864:21:53"},{"nativeSrc":"24894:59:53","nodeType":"YulVariableDeclaration","src":"24894:59:53","value":{"arguments":[{"name":"value0","nativeSrc":"24926:6:53","nodeType":"YulIdentifier","src":"24926:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"24938:9:53","nodeType":"YulIdentifier","src":"24938:9:53"},{"kind":"number","nativeSrc":"24949:2:53","nodeType":"YulLiteral","src":"24949:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24934:3:53","nodeType":"YulIdentifier","src":"24934:3:53"},"nativeSrc":"24934:18:53","nodeType":"YulFunctionCall","src":"24934:18:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"24908:17:53","nodeType":"YulIdentifier","src":"24908:17:53"},"nativeSrc":"24908:45:53","nodeType":"YulFunctionCall","src":"24908:45:53"},"variables":[{"name":"tail_1","nativeSrc":"24898:6:53","nodeType":"YulTypedName","src":"24898:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24973:9:53","nodeType":"YulIdentifier","src":"24973:9:53"},{"kind":"number","nativeSrc":"24984:2:53","nodeType":"YulLiteral","src":"24984:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24969:3:53","nodeType":"YulIdentifier","src":"24969:3:53"},"nativeSrc":"24969:18:53","nodeType":"YulFunctionCall","src":"24969:18:53"},{"arguments":[{"name":"tail_1","nativeSrc":"24993:6:53","nodeType":"YulIdentifier","src":"24993:6:53"},{"name":"headStart","nativeSrc":"25001:9:53","nodeType":"YulIdentifier","src":"25001:9:53"}],"functionName":{"name":"sub","nativeSrc":"24989:3:53","nodeType":"YulIdentifier","src":"24989:3:53"},"nativeSrc":"24989:22:53","nodeType":"YulFunctionCall","src":"24989:22:53"}],"functionName":{"name":"mstore","nativeSrc":"24962:6:53","nodeType":"YulIdentifier","src":"24962:6:53"},"nativeSrc":"24962:50:53","nodeType":"YulFunctionCall","src":"24962:50:53"},"nativeSrc":"24962:50:53","nodeType":"YulExpressionStatement","src":"24962:50:53"},{"nativeSrc":"25021:41:53","nodeType":"YulAssignment","src":"25021:41:53","value":{"arguments":[{"name":"value1","nativeSrc":"25047:6:53","nodeType":"YulIdentifier","src":"25047:6:53"},{"name":"tail_1","nativeSrc":"25055:6:53","nodeType":"YulIdentifier","src":"25055:6:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"25029:17:53","nodeType":"YulIdentifier","src":"25029:17:53"},"nativeSrc":"25029:33:53","nodeType":"YulFunctionCall","src":"25029:33:53"},"variableNames":[{"name":"tail","nativeSrc":"25021:4:53","nodeType":"YulIdentifier","src":"25021:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"24689:379:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24815:9:53","nodeType":"YulTypedName","src":"24815:9:53","type":""},{"name":"value1","nativeSrc":"24826:6:53","nodeType":"YulTypedName","src":"24826:6:53","type":""},{"name":"value0","nativeSrc":"24834:6:53","nodeType":"YulTypedName","src":"24834:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24845:4:53","nodeType":"YulTypedName","src":"24845:4:53","type":""}],"src":"24689:379:53"},{"body":{"nativeSrc":"25151:167:53","nodeType":"YulBlock","src":"25151:167:53","statements":[{"body":{"nativeSrc":"25197:16:53","nodeType":"YulBlock","src":"25197:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25206:1:53","nodeType":"YulLiteral","src":"25206:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"25209:1:53","nodeType":"YulLiteral","src":"25209:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"25199:6:53","nodeType":"YulIdentifier","src":"25199:6:53"},"nativeSrc":"25199:12:53","nodeType":"YulFunctionCall","src":"25199:12:53"},"nativeSrc":"25199:12:53","nodeType":"YulExpressionStatement","src":"25199:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"25172:7:53","nodeType":"YulIdentifier","src":"25172:7:53"},{"name":"headStart","nativeSrc":"25181:9:53","nodeType":"YulIdentifier","src":"25181:9:53"}],"functionName":{"name":"sub","nativeSrc":"25168:3:53","nodeType":"YulIdentifier","src":"25168:3:53"},"nativeSrc":"25168:23:53","nodeType":"YulFunctionCall","src":"25168:23:53"},{"kind":"number","nativeSrc":"25193:2:53","nodeType":"YulLiteral","src":"25193:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"25164:3:53","nodeType":"YulIdentifier","src":"25164:3:53"},"nativeSrc":"25164:32:53","nodeType":"YulFunctionCall","src":"25164:32:53"},"nativeSrc":"25161:52:53","nodeType":"YulIf","src":"25161:52:53"},{"nativeSrc":"25222:29:53","nodeType":"YulVariableDeclaration","src":"25222:29:53","value":{"arguments":[{"name":"headStart","nativeSrc":"25241:9:53","nodeType":"YulIdentifier","src":"25241:9:53"}],"functionName":{"name":"mload","nativeSrc":"25235:5:53","nodeType":"YulIdentifier","src":"25235:5:53"},"nativeSrc":"25235:16:53","nodeType":"YulFunctionCall","src":"25235:16:53"},"variables":[{"name":"value","nativeSrc":"25226:5:53","nodeType":"YulTypedName","src":"25226:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"25282:5:53","nodeType":"YulIdentifier","src":"25282:5:53"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"25260:21:53","nodeType":"YulIdentifier","src":"25260:21:53"},"nativeSrc":"25260:28:53","nodeType":"YulFunctionCall","src":"25260:28:53"},"nativeSrc":"25260:28:53","nodeType":"YulExpressionStatement","src":"25260:28:53"},{"nativeSrc":"25297:15:53","nodeType":"YulAssignment","src":"25297:15:53","value":{"name":"value","nativeSrc":"25307:5:53","nodeType":"YulIdentifier","src":"25307:5:53"},"variableNames":[{"name":"value0","nativeSrc":"25297:6:53","nodeType":"YulIdentifier","src":"25297:6:53"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"25073:245:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25117:9:53","nodeType":"YulTypedName","src":"25117:9:53","type":""},{"name":"dataEnd","nativeSrc":"25128:7:53","nodeType":"YulTypedName","src":"25128:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"25140:6:53","nodeType":"YulTypedName","src":"25140:6:53","type":""}],"src":"25073:245:53"},{"body":{"nativeSrc":"25518:696:53","nodeType":"YulBlock","src":"25518:696:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25535:9:53","nodeType":"YulIdentifier","src":"25535:9:53"},{"kind":"number","nativeSrc":"25546:2:53","nodeType":"YulLiteral","src":"25546:2:53","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"25528:6:53","nodeType":"YulIdentifier","src":"25528:6:53"},"nativeSrc":"25528:21:53","nodeType":"YulFunctionCall","src":"25528:21:53"},"nativeSrc":"25528:21:53","nodeType":"YulExpressionStatement","src":"25528:21:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25569:9:53","nodeType":"YulIdentifier","src":"25569:9:53"},{"kind":"number","nativeSrc":"25580:2:53","nodeType":"YulLiteral","src":"25580:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25565:3:53","nodeType":"YulIdentifier","src":"25565:3:53"},"nativeSrc":"25565:18:53","nodeType":"YulFunctionCall","src":"25565:18:53"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"25595:6:53","nodeType":"YulIdentifier","src":"25595:6:53"}],"functionName":{"name":"mload","nativeSrc":"25589:5:53","nodeType":"YulIdentifier","src":"25589:5:53"},"nativeSrc":"25589:13:53","nodeType":"YulFunctionCall","src":"25589:13:53"},{"kind":"number","nativeSrc":"25604:10:53","nodeType":"YulLiteral","src":"25604:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"25585:3:53","nodeType":"YulIdentifier","src":"25585:3:53"},"nativeSrc":"25585:30:53","nodeType":"YulFunctionCall","src":"25585:30:53"}],"functionName":{"name":"mstore","nativeSrc":"25558:6:53","nodeType":"YulIdentifier","src":"25558:6:53"},"nativeSrc":"25558:58:53","nodeType":"YulFunctionCall","src":"25558:58:53"},"nativeSrc":"25558:58:53","nodeType":"YulExpressionStatement","src":"25558:58:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25636:9:53","nodeType":"YulIdentifier","src":"25636:9:53"},{"kind":"number","nativeSrc":"25647:2:53","nodeType":"YulLiteral","src":"25647:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25632:3:53","nodeType":"YulIdentifier","src":"25632:3:53"},"nativeSrc":"25632:18:53","nodeType":"YulFunctionCall","src":"25632:18:53"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"25662:6:53","nodeType":"YulIdentifier","src":"25662:6:53"},{"kind":"number","nativeSrc":"25670:4:53","nodeType":"YulLiteral","src":"25670:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25658:3:53","nodeType":"YulIdentifier","src":"25658:3:53"},"nativeSrc":"25658:17:53","nodeType":"YulFunctionCall","src":"25658:17:53"}],"functionName":{"name":"mload","nativeSrc":"25652:5:53","nodeType":"YulIdentifier","src":"25652:5:53"},"nativeSrc":"25652:24:53","nodeType":"YulFunctionCall","src":"25652:24:53"}],"functionName":{"name":"mstore","nativeSrc":"25625:6:53","nodeType":"YulIdentifier","src":"25625:6:53"},"nativeSrc":"25625:52:53","nodeType":"YulFunctionCall","src":"25625:52:53"},"nativeSrc":"25625:52:53","nodeType":"YulExpressionStatement","src":"25625:52:53"},{"nativeSrc":"25686:42:53","nodeType":"YulVariableDeclaration","src":"25686:42:53","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"25716:6:53","nodeType":"YulIdentifier","src":"25716:6:53"},{"kind":"number","nativeSrc":"25724:2:53","nodeType":"YulLiteral","src":"25724:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25712:3:53","nodeType":"YulIdentifier","src":"25712:3:53"},"nativeSrc":"25712:15:53","nodeType":"YulFunctionCall","src":"25712:15:53"}],"functionName":{"name":"mload","nativeSrc":"25706:5:53","nodeType":"YulIdentifier","src":"25706:5:53"},"nativeSrc":"25706:22:53","nodeType":"YulFunctionCall","src":"25706:22:53"},"variables":[{"name":"memberValue0","nativeSrc":"25690:12:53","nodeType":"YulTypedName","src":"25690:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25748:9:53","nodeType":"YulIdentifier","src":"25748:9:53"},{"kind":"number","nativeSrc":"25759:3:53","nodeType":"YulLiteral","src":"25759:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25744:3:53","nodeType":"YulIdentifier","src":"25744:3:53"},"nativeSrc":"25744:19:53","nodeType":"YulFunctionCall","src":"25744:19:53"},{"kind":"number","nativeSrc":"25765:4:53","nodeType":"YulLiteral","src":"25765:4:53","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"25737:6:53","nodeType":"YulIdentifier","src":"25737:6:53"},"nativeSrc":"25737:33:53","nodeType":"YulFunctionCall","src":"25737:33:53"},"nativeSrc":"25737:33:53","nodeType":"YulExpressionStatement","src":"25737:33:53"},{"nativeSrc":"25779:66:53","nodeType":"YulVariableDeclaration","src":"25779:66:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"25811:12:53","nodeType":"YulIdentifier","src":"25811:12:53"},{"arguments":[{"name":"headStart","nativeSrc":"25829:9:53","nodeType":"YulIdentifier","src":"25829:9:53"},{"kind":"number","nativeSrc":"25840:3:53","nodeType":"YulLiteral","src":"25840:3:53","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"25825:3:53","nodeType":"YulIdentifier","src":"25825:3:53"},"nativeSrc":"25825:19:53","nodeType":"YulFunctionCall","src":"25825:19:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"25793:17:53","nodeType":"YulIdentifier","src":"25793:17:53"},"nativeSrc":"25793:52:53","nodeType":"YulFunctionCall","src":"25793:52:53"},"variables":[{"name":"tail_1","nativeSrc":"25783:6:53","nodeType":"YulTypedName","src":"25783:6:53","type":""}]},{"nativeSrc":"25854:44:53","nodeType":"YulVariableDeclaration","src":"25854:44:53","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"25886:6:53","nodeType":"YulIdentifier","src":"25886:6:53"},{"kind":"number","nativeSrc":"25894:2:53","nodeType":"YulLiteral","src":"25894:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25882:3:53","nodeType":"YulIdentifier","src":"25882:3:53"},"nativeSrc":"25882:15:53","nodeType":"YulFunctionCall","src":"25882:15:53"}],"functionName":{"name":"mload","nativeSrc":"25876:5:53","nodeType":"YulIdentifier","src":"25876:5:53"},"nativeSrc":"25876:22:53","nodeType":"YulFunctionCall","src":"25876:22:53"},"variables":[{"name":"memberValue0_1","nativeSrc":"25858:14:53","nodeType":"YulTypedName","src":"25858:14:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25918:9:53","nodeType":"YulIdentifier","src":"25918:9:53"},{"kind":"number","nativeSrc":"25929:4:53","nodeType":"YulLiteral","src":"25929:4:53","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"25914:3:53","nodeType":"YulIdentifier","src":"25914:3:53"},"nativeSrc":"25914:20:53","nodeType":"YulFunctionCall","src":"25914:20:53"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"25944:6:53","nodeType":"YulIdentifier","src":"25944:6:53"},{"name":"headStart","nativeSrc":"25952:9:53","nodeType":"YulIdentifier","src":"25952:9:53"}],"functionName":{"name":"sub","nativeSrc":"25940:3:53","nodeType":"YulIdentifier","src":"25940:3:53"},"nativeSrc":"25940:22:53","nodeType":"YulFunctionCall","src":"25940:22:53"},{"arguments":[{"kind":"number","nativeSrc":"25968:2:53","nodeType":"YulLiteral","src":"25968:2:53","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"25964:3:53","nodeType":"YulIdentifier","src":"25964:3:53"},"nativeSrc":"25964:7:53","nodeType":"YulFunctionCall","src":"25964:7:53"}],"functionName":{"name":"add","nativeSrc":"25936:3:53","nodeType":"YulIdentifier","src":"25936:3:53"},"nativeSrc":"25936:36:53","nodeType":"YulFunctionCall","src":"25936:36:53"}],"functionName":{"name":"mstore","nativeSrc":"25907:6:53","nodeType":"YulIdentifier","src":"25907:6:53"},"nativeSrc":"25907:66:53","nodeType":"YulFunctionCall","src":"25907:66:53"},"nativeSrc":"25907:66:53","nodeType":"YulExpressionStatement","src":"25907:66:53"},{"nativeSrc":"25982:55:53","nodeType":"YulVariableDeclaration","src":"25982:55:53","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"26014:14:53","nodeType":"YulIdentifier","src":"26014:14:53"},{"name":"tail_1","nativeSrc":"26030:6:53","nodeType":"YulIdentifier","src":"26030:6:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"25996:17:53","nodeType":"YulIdentifier","src":"25996:17:53"},"nativeSrc":"25996:41:53","nodeType":"YulFunctionCall","src":"25996:41:53"},"variables":[{"name":"tail_2","nativeSrc":"25986:6:53","nodeType":"YulTypedName","src":"25986:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26057:9:53","nodeType":"YulIdentifier","src":"26057:9:53"},{"kind":"number","nativeSrc":"26068:3:53","nodeType":"YulLiteral","src":"26068:3:53","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"26053:3:53","nodeType":"YulIdentifier","src":"26053:3:53"},"nativeSrc":"26053:19:53","nodeType":"YulFunctionCall","src":"26053:19:53"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"26098:6:53","nodeType":"YulIdentifier","src":"26098:6:53"},{"kind":"number","nativeSrc":"26106:3:53","nodeType":"YulLiteral","src":"26106:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26094:3:53","nodeType":"YulIdentifier","src":"26094:3:53"},"nativeSrc":"26094:16:53","nodeType":"YulFunctionCall","src":"26094:16:53"}],"functionName":{"name":"mload","nativeSrc":"26088:5:53","nodeType":"YulIdentifier","src":"26088:5:53"},"nativeSrc":"26088:23:53","nodeType":"YulFunctionCall","src":"26088:23:53"}],"functionName":{"name":"iszero","nativeSrc":"26081:6:53","nodeType":"YulIdentifier","src":"26081:6:53"},"nativeSrc":"26081:31:53","nodeType":"YulFunctionCall","src":"26081:31:53"}],"functionName":{"name":"iszero","nativeSrc":"26074:6:53","nodeType":"YulIdentifier","src":"26074:6:53"},"nativeSrc":"26074:39:53","nodeType":"YulFunctionCall","src":"26074:39:53"}],"functionName":{"name":"mstore","nativeSrc":"26046:6:53","nodeType":"YulIdentifier","src":"26046:6:53"},"nativeSrc":"26046:68:53","nodeType":"YulFunctionCall","src":"26046:68:53"},"nativeSrc":"26046:68:53","nodeType":"YulExpressionStatement","src":"26046:68:53"},{"nativeSrc":"26123:14:53","nodeType":"YulAssignment","src":"26123:14:53","value":{"name":"tail_2","nativeSrc":"26131:6:53","nodeType":"YulIdentifier","src":"26131:6:53"},"variableNames":[{"name":"tail","nativeSrc":"26123:4:53","nodeType":"YulIdentifier","src":"26123:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26157:9:53","nodeType":"YulIdentifier","src":"26157:9:53"},{"kind":"number","nativeSrc":"26168:4:53","nodeType":"YulLiteral","src":"26168:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26153:3:53","nodeType":"YulIdentifier","src":"26153:3:53"},"nativeSrc":"26153:20:53","nodeType":"YulFunctionCall","src":"26153:20:53"},{"arguments":[{"name":"value1","nativeSrc":"26179:6:53","nodeType":"YulIdentifier","src":"26179:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26195:3:53","nodeType":"YulLiteral","src":"26195:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"26200:1:53","nodeType":"YulLiteral","src":"26200:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"26191:3:53","nodeType":"YulIdentifier","src":"26191:3:53"},"nativeSrc":"26191:11:53","nodeType":"YulFunctionCall","src":"26191:11:53"},{"kind":"number","nativeSrc":"26204:1:53","nodeType":"YulLiteral","src":"26204:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"26187:3:53","nodeType":"YulIdentifier","src":"26187:3:53"},"nativeSrc":"26187:19:53","nodeType":"YulFunctionCall","src":"26187:19:53"}],"functionName":{"name":"and","nativeSrc":"26175:3:53","nodeType":"YulIdentifier","src":"26175:3:53"},"nativeSrc":"26175:32:53","nodeType":"YulFunctionCall","src":"26175:32:53"}],"functionName":{"name":"mstore","nativeSrc":"26146:6:53","nodeType":"YulIdentifier","src":"26146:6:53"},"nativeSrc":"26146:62:53","nodeType":"YulFunctionCall","src":"26146:62:53"},"nativeSrc":"26146:62:53","nodeType":"YulExpressionStatement","src":"26146:62:53"}]},"name":"abi_encode_tuple_t_struct$_MessagingParams_$2156_memory_ptr_t_address__to_t_struct$_MessagingParams_$2156_memory_ptr_t_address__fromStack_reversed","nativeSrc":"25323:891:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25479:9:53","nodeType":"YulTypedName","src":"25479:9:53","type":""},{"name":"value1","nativeSrc":"25490:6:53","nodeType":"YulTypedName","src":"25490:6:53","type":""},{"name":"value0","nativeSrc":"25498:6:53","nodeType":"YulTypedName","src":"25498:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25509:4:53","nodeType":"YulTypedName","src":"25509:4:53","type":""}],"src":"25323:891:53"},{"body":{"nativeSrc":"26299:204:53","nodeType":"YulBlock","src":"26299:204:53","statements":[{"body":{"nativeSrc":"26343:16:53","nodeType":"YulBlock","src":"26343:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26352:1:53","nodeType":"YulLiteral","src":"26352:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"26355:1:53","nodeType":"YulLiteral","src":"26355:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26345:6:53","nodeType":"YulIdentifier","src":"26345:6:53"},"nativeSrc":"26345:12:53","nodeType":"YulFunctionCall","src":"26345:12:53"},"nativeSrc":"26345:12:53","nodeType":"YulExpressionStatement","src":"26345:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"26320:3:53","nodeType":"YulIdentifier","src":"26320:3:53"},{"name":"headStart","nativeSrc":"26325:9:53","nodeType":"YulIdentifier","src":"26325:9:53"}],"functionName":{"name":"sub","nativeSrc":"26316:3:53","nodeType":"YulIdentifier","src":"26316:3:53"},"nativeSrc":"26316:19:53","nodeType":"YulFunctionCall","src":"26316:19:53"},{"kind":"number","nativeSrc":"26337:4:53","nodeType":"YulLiteral","src":"26337:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"26312:3:53","nodeType":"YulIdentifier","src":"26312:3:53"},"nativeSrc":"26312:30:53","nodeType":"YulFunctionCall","src":"26312:30:53"},"nativeSrc":"26309:50:53","nodeType":"YulIf","src":"26309:50:53"},{"nativeSrc":"26368:31:53","nodeType":"YulAssignment","src":"26368:31:53","value":{"arguments":[],"functionName":{"name":"allocate_memory_3822","nativeSrc":"26377:20:53","nodeType":"YulIdentifier","src":"26377:20:53"},"nativeSrc":"26377:22:53","nodeType":"YulFunctionCall","src":"26377:22:53"},"variableNames":[{"name":"value","nativeSrc":"26368:5:53","nodeType":"YulIdentifier","src":"26368:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"26415:5:53","nodeType":"YulIdentifier","src":"26415:5:53"},{"arguments":[{"name":"headStart","nativeSrc":"26428:9:53","nodeType":"YulIdentifier","src":"26428:9:53"}],"functionName":{"name":"mload","nativeSrc":"26422:5:53","nodeType":"YulIdentifier","src":"26422:5:53"},"nativeSrc":"26422:16:53","nodeType":"YulFunctionCall","src":"26422:16:53"}],"functionName":{"name":"mstore","nativeSrc":"26408:6:53","nodeType":"YulIdentifier","src":"26408:6:53"},"nativeSrc":"26408:31:53","nodeType":"YulFunctionCall","src":"26408:31:53"},"nativeSrc":"26408:31:53","nodeType":"YulExpressionStatement","src":"26408:31:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26459:5:53","nodeType":"YulIdentifier","src":"26459:5:53"},{"kind":"number","nativeSrc":"26466:2:53","nodeType":"YulLiteral","src":"26466:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26455:3:53","nodeType":"YulIdentifier","src":"26455:3:53"},"nativeSrc":"26455:14:53","nodeType":"YulFunctionCall","src":"26455:14:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26481:9:53","nodeType":"YulIdentifier","src":"26481:9:53"},{"kind":"number","nativeSrc":"26492:2:53","nodeType":"YulLiteral","src":"26492:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26477:3:53","nodeType":"YulIdentifier","src":"26477:3:53"},"nativeSrc":"26477:18:53","nodeType":"YulFunctionCall","src":"26477:18:53"}],"functionName":{"name":"mload","nativeSrc":"26471:5:53","nodeType":"YulIdentifier","src":"26471:5:53"},"nativeSrc":"26471:25:53","nodeType":"YulFunctionCall","src":"26471:25:53"}],"functionName":{"name":"mstore","nativeSrc":"26448:6:53","nodeType":"YulIdentifier","src":"26448:6:53"},"nativeSrc":"26448:49:53","nodeType":"YulFunctionCall","src":"26448:49:53"},"nativeSrc":"26448:49:53","nodeType":"YulExpressionStatement","src":"26448:49:53"}]},"name":"abi_decode_struct_MessagingFee_fromMemory","nativeSrc":"26219:284:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26270:9:53","nodeType":"YulTypedName","src":"26270:9:53","type":""},{"name":"end","nativeSrc":"26281:3:53","nodeType":"YulTypedName","src":"26281:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"26289:5:53","nodeType":"YulTypedName","src":"26289:5:53","type":""}],"src":"26219:284:53"},{"body":{"nativeSrc":"26623:410:53","nodeType":"YulBlock","src":"26623:410:53","statements":[{"body":{"nativeSrc":"26670:16:53","nodeType":"YulBlock","src":"26670:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26679:1:53","nodeType":"YulLiteral","src":"26679:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"26682:1:53","nodeType":"YulLiteral","src":"26682:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26672:6:53","nodeType":"YulIdentifier","src":"26672:6:53"},"nativeSrc":"26672:12:53","nodeType":"YulFunctionCall","src":"26672:12:53"},"nativeSrc":"26672:12:53","nodeType":"YulExpressionStatement","src":"26672:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26644:7:53","nodeType":"YulIdentifier","src":"26644:7:53"},{"name":"headStart","nativeSrc":"26653:9:53","nodeType":"YulIdentifier","src":"26653:9:53"}],"functionName":{"name":"sub","nativeSrc":"26640:3:53","nodeType":"YulIdentifier","src":"26640:3:53"},"nativeSrc":"26640:23:53","nodeType":"YulFunctionCall","src":"26640:23:53"},{"kind":"number","nativeSrc":"26665:3:53","nodeType":"YulLiteral","src":"26665:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"26636:3:53","nodeType":"YulIdentifier","src":"26636:3:53"},"nativeSrc":"26636:33:53","nodeType":"YulFunctionCall","src":"26636:33:53"},"nativeSrc":"26633:53:53","nodeType":"YulIf","src":"26633:53:53"},{"nativeSrc":"26695:35:53","nodeType":"YulVariableDeclaration","src":"26695:35:53","value":{"arguments":[],"functionName":{"name":"allocate_memory_3825","nativeSrc":"26708:20:53","nodeType":"YulIdentifier","src":"26708:20:53"},"nativeSrc":"26708:22:53","nodeType":"YulFunctionCall","src":"26708:22:53"},"variables":[{"name":"value","nativeSrc":"26699:5:53","nodeType":"YulTypedName","src":"26699:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"26746:5:53","nodeType":"YulIdentifier","src":"26746:5:53"},{"arguments":[{"name":"headStart","nativeSrc":"26759:9:53","nodeType":"YulIdentifier","src":"26759:9:53"}],"functionName":{"name":"mload","nativeSrc":"26753:5:53","nodeType":"YulIdentifier","src":"26753:5:53"},"nativeSrc":"26753:16:53","nodeType":"YulFunctionCall","src":"26753:16:53"}],"functionName":{"name":"mstore","nativeSrc":"26739:6:53","nodeType":"YulIdentifier","src":"26739:6:53"},"nativeSrc":"26739:31:53","nodeType":"YulFunctionCall","src":"26739:31:53"},"nativeSrc":"26739:31:53","nodeType":"YulExpressionStatement","src":"26739:31:53"},{"nativeSrc":"26779:40:53","nodeType":"YulVariableDeclaration","src":"26779:40:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26804:9:53","nodeType":"YulIdentifier","src":"26804:9:53"},{"kind":"number","nativeSrc":"26815:2:53","nodeType":"YulLiteral","src":"26815:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26800:3:53","nodeType":"YulIdentifier","src":"26800:3:53"},"nativeSrc":"26800:18:53","nodeType":"YulFunctionCall","src":"26800:18:53"}],"functionName":{"name":"mload","nativeSrc":"26794:5:53","nodeType":"YulIdentifier","src":"26794:5:53"},"nativeSrc":"26794:25:53","nodeType":"YulFunctionCall","src":"26794:25:53"},"variables":[{"name":"value_1","nativeSrc":"26783:7:53","nodeType":"YulTypedName","src":"26783:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"26852:7:53","nodeType":"YulIdentifier","src":"26852:7:53"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"26828:23:53","nodeType":"YulIdentifier","src":"26828:23:53"},"nativeSrc":"26828:32:53","nodeType":"YulFunctionCall","src":"26828:32:53"},"nativeSrc":"26828:32:53","nodeType":"YulExpressionStatement","src":"26828:32:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26880:5:53","nodeType":"YulIdentifier","src":"26880:5:53"},{"kind":"number","nativeSrc":"26887:2:53","nodeType":"YulLiteral","src":"26887:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26876:3:53","nodeType":"YulIdentifier","src":"26876:3:53"},"nativeSrc":"26876:14:53","nodeType":"YulFunctionCall","src":"26876:14:53"},{"name":"value_1","nativeSrc":"26892:7:53","nodeType":"YulIdentifier","src":"26892:7:53"}],"functionName":{"name":"mstore","nativeSrc":"26869:6:53","nodeType":"YulIdentifier","src":"26869:6:53"},"nativeSrc":"26869:31:53","nodeType":"YulFunctionCall","src":"26869:31:53"},"nativeSrc":"26869:31:53","nodeType":"YulExpressionStatement","src":"26869:31:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26920:5:53","nodeType":"YulIdentifier","src":"26920:5:53"},{"kind":"number","nativeSrc":"26927:2:53","nodeType":"YulLiteral","src":"26927:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26916:3:53","nodeType":"YulIdentifier","src":"26916:3:53"},"nativeSrc":"26916:14:53","nodeType":"YulFunctionCall","src":"26916:14:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26978:9:53","nodeType":"YulIdentifier","src":"26978:9:53"},{"kind":"number","nativeSrc":"26989:2:53","nodeType":"YulLiteral","src":"26989:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26974:3:53","nodeType":"YulIdentifier","src":"26974:3:53"},"nativeSrc":"26974:18:53","nodeType":"YulFunctionCall","src":"26974:18:53"},{"name":"dataEnd","nativeSrc":"26994:7:53","nodeType":"YulIdentifier","src":"26994:7:53"}],"functionName":{"name":"abi_decode_struct_MessagingFee_fromMemory","nativeSrc":"26932:41:53","nodeType":"YulIdentifier","src":"26932:41:53"},"nativeSrc":"26932:70:53","nodeType":"YulFunctionCall","src":"26932:70:53"}],"functionName":{"name":"mstore","nativeSrc":"26909:6:53","nodeType":"YulIdentifier","src":"26909:6:53"},"nativeSrc":"26909:94:53","nodeType":"YulFunctionCall","src":"26909:94:53"},"nativeSrc":"26909:94:53","nodeType":"YulExpressionStatement","src":"26909:94:53"},{"nativeSrc":"27012:15:53","nodeType":"YulAssignment","src":"27012:15:53","value":{"name":"value","nativeSrc":"27022:5:53","nodeType":"YulIdentifier","src":"27022:5:53"},"variableNames":[{"name":"value0","nativeSrc":"27012:6:53","nodeType":"YulIdentifier","src":"27012:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr_fromMemory","nativeSrc":"26508:525:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26589:9:53","nodeType":"YulTypedName","src":"26589:9:53","type":""},{"name":"dataEnd","nativeSrc":"26600:7:53","nodeType":"YulTypedName","src":"26600:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26612:6:53","nodeType":"YulTypedName","src":"26612:6:53","type":""}],"src":"26508:525:53"},{"body":{"nativeSrc":"27241:286:53","nodeType":"YulBlock","src":"27241:286:53","statements":[{"nativeSrc":"27251:29:53","nodeType":"YulVariableDeclaration","src":"27251:29:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27269:3:53","nodeType":"YulLiteral","src":"27269:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"27274:1:53","nodeType":"YulLiteral","src":"27274:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"27265:3:53","nodeType":"YulIdentifier","src":"27265:3:53"},"nativeSrc":"27265:11:53","nodeType":"YulFunctionCall","src":"27265:11:53"},{"kind":"number","nativeSrc":"27278:1:53","nodeType":"YulLiteral","src":"27278:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"27261:3:53","nodeType":"YulIdentifier","src":"27261:3:53"},"nativeSrc":"27261:19:53","nodeType":"YulFunctionCall","src":"27261:19:53"},"variables":[{"name":"_1","nativeSrc":"27255:2:53","nodeType":"YulTypedName","src":"27255:2:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27296:9:53","nodeType":"YulIdentifier","src":"27296:9:53"},{"arguments":[{"name":"value0","nativeSrc":"27311:6:53","nodeType":"YulIdentifier","src":"27311:6:53"},{"name":"_1","nativeSrc":"27319:2:53","nodeType":"YulIdentifier","src":"27319:2:53"}],"functionName":{"name":"and","nativeSrc":"27307:3:53","nodeType":"YulIdentifier","src":"27307:3:53"},"nativeSrc":"27307:15:53","nodeType":"YulFunctionCall","src":"27307:15:53"}],"functionName":{"name":"mstore","nativeSrc":"27289:6:53","nodeType":"YulIdentifier","src":"27289:6:53"},"nativeSrc":"27289:34:53","nodeType":"YulFunctionCall","src":"27289:34:53"},"nativeSrc":"27289:34:53","nodeType":"YulExpressionStatement","src":"27289:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27343:9:53","nodeType":"YulIdentifier","src":"27343:9:53"},{"kind":"number","nativeSrc":"27354:2:53","nodeType":"YulLiteral","src":"27354:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27339:3:53","nodeType":"YulIdentifier","src":"27339:3:53"},"nativeSrc":"27339:18:53","nodeType":"YulFunctionCall","src":"27339:18:53"},{"arguments":[{"name":"value1","nativeSrc":"27363:6:53","nodeType":"YulIdentifier","src":"27363:6:53"},{"name":"_1","nativeSrc":"27371:2:53","nodeType":"YulIdentifier","src":"27371:2:53"}],"functionName":{"name":"and","nativeSrc":"27359:3:53","nodeType":"YulIdentifier","src":"27359:3:53"},"nativeSrc":"27359:15:53","nodeType":"YulFunctionCall","src":"27359:15:53"}],"functionName":{"name":"mstore","nativeSrc":"27332:6:53","nodeType":"YulIdentifier","src":"27332:6:53"},"nativeSrc":"27332:43:53","nodeType":"YulFunctionCall","src":"27332:43:53"},"nativeSrc":"27332:43:53","nodeType":"YulExpressionStatement","src":"27332:43:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27395:9:53","nodeType":"YulIdentifier","src":"27395:9:53"},{"kind":"number","nativeSrc":"27406:2:53","nodeType":"YulLiteral","src":"27406:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27391:3:53","nodeType":"YulIdentifier","src":"27391:3:53"},"nativeSrc":"27391:18:53","nodeType":"YulFunctionCall","src":"27391:18:53"},{"name":"value2","nativeSrc":"27411:6:53","nodeType":"YulIdentifier","src":"27411:6:53"}],"functionName":{"name":"mstore","nativeSrc":"27384:6:53","nodeType":"YulIdentifier","src":"27384:6:53"},"nativeSrc":"27384:34:53","nodeType":"YulFunctionCall","src":"27384:34:53"},"nativeSrc":"27384:34:53","nodeType":"YulExpressionStatement","src":"27384:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27438:9:53","nodeType":"YulIdentifier","src":"27438:9:53"},{"kind":"number","nativeSrc":"27449:2:53","nodeType":"YulLiteral","src":"27449:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27434:3:53","nodeType":"YulIdentifier","src":"27434:3:53"},"nativeSrc":"27434:18:53","nodeType":"YulFunctionCall","src":"27434:18:53"},{"kind":"number","nativeSrc":"27454:3:53","nodeType":"YulLiteral","src":"27454:3:53","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"27427:6:53","nodeType":"YulIdentifier","src":"27427:6:53"},"nativeSrc":"27427:31:53","nodeType":"YulFunctionCall","src":"27427:31:53"},"nativeSrc":"27427:31:53","nodeType":"YulExpressionStatement","src":"27427:31:53"},{"nativeSrc":"27467:54:53","nodeType":"YulAssignment","src":"27467:54:53","value":{"arguments":[{"name":"value3","nativeSrc":"27493:6:53","nodeType":"YulIdentifier","src":"27493:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"27505:9:53","nodeType":"YulIdentifier","src":"27505:9:53"},{"kind":"number","nativeSrc":"27516:3:53","nodeType":"YulLiteral","src":"27516:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27501:3:53","nodeType":"YulIdentifier","src":"27501:3:53"},"nativeSrc":"27501:19:53","nodeType":"YulFunctionCall","src":"27501:19:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"27475:17:53","nodeType":"YulIdentifier","src":"27475:17:53"},"nativeSrc":"27475:46:53","nodeType":"YulFunctionCall","src":"27475:46:53"},"variableNames":[{"name":"tail","nativeSrc":"27467:4:53","nodeType":"YulIdentifier","src":"27467:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"27038:489:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27186:9:53","nodeType":"YulTypedName","src":"27186:9:53","type":""},{"name":"value3","nativeSrc":"27197:6:53","nodeType":"YulTypedName","src":"27197:6:53","type":""},{"name":"value2","nativeSrc":"27205:6:53","nodeType":"YulTypedName","src":"27205:6:53","type":""},{"name":"value1","nativeSrc":"27213:6:53","nodeType":"YulTypedName","src":"27213:6:53","type":""},{"name":"value0","nativeSrc":"27221:6:53","nodeType":"YulTypedName","src":"27221:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27232:4:53","nodeType":"YulTypedName","src":"27232:4:53","type":""}],"src":"27038:489:53"},{"body":{"nativeSrc":"27612:169:53","nodeType":"YulBlock","src":"27612:169:53","statements":[{"body":{"nativeSrc":"27658:16:53","nodeType":"YulBlock","src":"27658:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27667:1:53","nodeType":"YulLiteral","src":"27667:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27670:1:53","nodeType":"YulLiteral","src":"27670:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27660:6:53","nodeType":"YulIdentifier","src":"27660:6:53"},"nativeSrc":"27660:12:53","nodeType":"YulFunctionCall","src":"27660:12:53"},"nativeSrc":"27660:12:53","nodeType":"YulExpressionStatement","src":"27660:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27633:7:53","nodeType":"YulIdentifier","src":"27633:7:53"},{"name":"headStart","nativeSrc":"27642:9:53","nodeType":"YulIdentifier","src":"27642:9:53"}],"functionName":{"name":"sub","nativeSrc":"27629:3:53","nodeType":"YulIdentifier","src":"27629:3:53"},"nativeSrc":"27629:23:53","nodeType":"YulFunctionCall","src":"27629:23:53"},{"kind":"number","nativeSrc":"27654:2:53","nodeType":"YulLiteral","src":"27654:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"27625:3:53","nodeType":"YulIdentifier","src":"27625:3:53"},"nativeSrc":"27625:32:53","nodeType":"YulFunctionCall","src":"27625:32:53"},"nativeSrc":"27622:52:53","nodeType":"YulIf","src":"27622:52:53"},{"nativeSrc":"27683:29:53","nodeType":"YulVariableDeclaration","src":"27683:29:53","value":{"arguments":[{"name":"headStart","nativeSrc":"27702:9:53","nodeType":"YulIdentifier","src":"27702:9:53"}],"functionName":{"name":"mload","nativeSrc":"27696:5:53","nodeType":"YulIdentifier","src":"27696:5:53"},"nativeSrc":"27696:16:53","nodeType":"YulFunctionCall","src":"27696:16:53"},"variables":[{"name":"value","nativeSrc":"27687:5:53","nodeType":"YulTypedName","src":"27687:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"27745:5:53","nodeType":"YulIdentifier","src":"27745:5:53"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"27721:23:53","nodeType":"YulIdentifier","src":"27721:23:53"},"nativeSrc":"27721:30:53","nodeType":"YulFunctionCall","src":"27721:30:53"},"nativeSrc":"27721:30:53","nodeType":"YulExpressionStatement","src":"27721:30:53"},{"nativeSrc":"27760:15:53","nodeType":"YulAssignment","src":"27760:15:53","value":{"name":"value","nativeSrc":"27770:5:53","nodeType":"YulIdentifier","src":"27770:5:53"},"variableNames":[{"name":"value0","nativeSrc":"27760:6:53","nodeType":"YulIdentifier","src":"27760:6:53"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"27532:249:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27578:9:53","nodeType":"YulTypedName","src":"27578:9:53","type":""},{"name":"dataEnd","nativeSrc":"27589:7:53","nodeType":"YulTypedName","src":"27589:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27601:6:53","nodeType":"YulTypedName","src":"27601:6:53","type":""}],"src":"27532:249:53"},{"body":{"nativeSrc":"27841:65:53","nodeType":"YulBlock","src":"27841:65:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27858:1:53","nodeType":"YulLiteral","src":"27858:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"27861:3:53","nodeType":"YulIdentifier","src":"27861:3:53"}],"functionName":{"name":"mstore","nativeSrc":"27851:6:53","nodeType":"YulIdentifier","src":"27851:6:53"},"nativeSrc":"27851:14:53","nodeType":"YulFunctionCall","src":"27851:14:53"},"nativeSrc":"27851:14:53","nodeType":"YulExpressionStatement","src":"27851:14:53"},{"nativeSrc":"27874:26:53","nodeType":"YulAssignment","src":"27874:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"27892:1:53","nodeType":"YulLiteral","src":"27892:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27895:4:53","nodeType":"YulLiteral","src":"27895:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"27882:9:53","nodeType":"YulIdentifier","src":"27882:9:53"},"nativeSrc":"27882:18:53","nodeType":"YulFunctionCall","src":"27882:18:53"},"variableNames":[{"name":"data","nativeSrc":"27874:4:53","nodeType":"YulIdentifier","src":"27874:4:53"}]}]},"name":"array_dataslot_bytes_storage","nativeSrc":"27786:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"27824:3:53","nodeType":"YulTypedName","src":"27824:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"27832:4:53","nodeType":"YulTypedName","src":"27832:4:53","type":""}],"src":"27786:120:53"},{"body":{"nativeSrc":"27991:462:53","nodeType":"YulBlock","src":"27991:462:53","statements":[{"body":{"nativeSrc":"28024:423:53","nodeType":"YulBlock","src":"28024:423:53","statements":[{"nativeSrc":"28038:11:53","nodeType":"YulVariableDeclaration","src":"28038:11:53","value":{"kind":"number","nativeSrc":"28048:1:53","nodeType":"YulLiteral","src":"28048:1:53","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"28042:2:53","nodeType":"YulTypedName","src":"28042:2:53","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28069:1:53","nodeType":"YulLiteral","src":"28069:1:53","type":"","value":"0"},{"name":"array","nativeSrc":"28072:5:53","nodeType":"YulIdentifier","src":"28072:5:53"}],"functionName":{"name":"mstore","nativeSrc":"28062:6:53","nodeType":"YulIdentifier","src":"28062:6:53"},"nativeSrc":"28062:16:53","nodeType":"YulFunctionCall","src":"28062:16:53"},"nativeSrc":"28062:16:53","nodeType":"YulExpressionStatement","src":"28062:16:53"},{"nativeSrc":"28091:30:53","nodeType":"YulVariableDeclaration","src":"28091:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"28113:1:53","nodeType":"YulLiteral","src":"28113:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"28116:4:53","nodeType":"YulLiteral","src":"28116:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"28103:9:53","nodeType":"YulIdentifier","src":"28103:9:53"},"nativeSrc":"28103:18:53","nodeType":"YulFunctionCall","src":"28103:18:53"},"variables":[{"name":"data","nativeSrc":"28095:4:53","nodeType":"YulTypedName","src":"28095:4:53","type":""}]},{"nativeSrc":"28134:57:53","nodeType":"YulVariableDeclaration","src":"28134:57:53","value":{"arguments":[{"name":"data","nativeSrc":"28157:4:53","nodeType":"YulIdentifier","src":"28157:4:53"},{"arguments":[{"kind":"number","nativeSrc":"28167:1:53","nodeType":"YulLiteral","src":"28167:1:53","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"28174:10:53","nodeType":"YulIdentifier","src":"28174:10:53"},{"kind":"number","nativeSrc":"28186:2:53","nodeType":"YulLiteral","src":"28186:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"28170:3:53","nodeType":"YulIdentifier","src":"28170:3:53"},"nativeSrc":"28170:19:53","nodeType":"YulFunctionCall","src":"28170:19:53"}],"functionName":{"name":"shr","nativeSrc":"28163:3:53","nodeType":"YulIdentifier","src":"28163:3:53"},"nativeSrc":"28163:27:53","nodeType":"YulFunctionCall","src":"28163:27:53"}],"functionName":{"name":"add","nativeSrc":"28153:3:53","nodeType":"YulIdentifier","src":"28153:3:53"},"nativeSrc":"28153:38:53","nodeType":"YulFunctionCall","src":"28153:38:53"},"variables":[{"name":"deleteStart","nativeSrc":"28138:11:53","nodeType":"YulTypedName","src":"28138:11:53","type":""}]},{"body":{"nativeSrc":"28228:23:53","nodeType":"YulBlock","src":"28228:23:53","statements":[{"nativeSrc":"28230:19:53","nodeType":"YulAssignment","src":"28230:19:53","value":{"name":"data","nativeSrc":"28245:4:53","nodeType":"YulIdentifier","src":"28245:4:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"28230:11:53","nodeType":"YulIdentifier","src":"28230:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"28210:10:53","nodeType":"YulIdentifier","src":"28210:10:53"},{"kind":"number","nativeSrc":"28222:4:53","nodeType":"YulLiteral","src":"28222:4:53","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"28207:2:53","nodeType":"YulIdentifier","src":"28207:2:53"},"nativeSrc":"28207:20:53","nodeType":"YulFunctionCall","src":"28207:20:53"},"nativeSrc":"28204:47:53","nodeType":"YulIf","src":"28204:47:53"},{"nativeSrc":"28264:41:53","nodeType":"YulVariableDeclaration","src":"28264:41:53","value":{"arguments":[{"name":"data","nativeSrc":"28278:4:53","nodeType":"YulIdentifier","src":"28278:4:53"},{"arguments":[{"kind":"number","nativeSrc":"28288:1:53","nodeType":"YulLiteral","src":"28288:1:53","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"28295:3:53","nodeType":"YulIdentifier","src":"28295:3:53"},{"kind":"number","nativeSrc":"28300:2:53","nodeType":"YulLiteral","src":"28300:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"28291:3:53","nodeType":"YulIdentifier","src":"28291:3:53"},"nativeSrc":"28291:12:53","nodeType":"YulFunctionCall","src":"28291:12:53"}],"functionName":{"name":"shr","nativeSrc":"28284:3:53","nodeType":"YulIdentifier","src":"28284:3:53"},"nativeSrc":"28284:20:53","nodeType":"YulFunctionCall","src":"28284:20:53"}],"functionName":{"name":"add","nativeSrc":"28274:3:53","nodeType":"YulIdentifier","src":"28274:3:53"},"nativeSrc":"28274:31:53","nodeType":"YulFunctionCall","src":"28274:31:53"},"variables":[{"name":"_2","nativeSrc":"28268:2:53","nodeType":"YulTypedName","src":"28268:2:53","type":""}]},{"nativeSrc":"28318:24:53","nodeType":"YulVariableDeclaration","src":"28318:24:53","value":{"name":"deleteStart","nativeSrc":"28331:11:53","nodeType":"YulIdentifier","src":"28331:11:53"},"variables":[{"name":"start","nativeSrc":"28322:5:53","nodeType":"YulTypedName","src":"28322:5:53","type":""}]},{"body":{"nativeSrc":"28416:21:53","nodeType":"YulBlock","src":"28416:21:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"28425:5:53","nodeType":"YulIdentifier","src":"28425:5:53"},{"name":"_1","nativeSrc":"28432:2:53","nodeType":"YulIdentifier","src":"28432:2:53"}],"functionName":{"name":"sstore","nativeSrc":"28418:6:53","nodeType":"YulIdentifier","src":"28418:6:53"},"nativeSrc":"28418:17:53","nodeType":"YulFunctionCall","src":"28418:17:53"},"nativeSrc":"28418:17:53","nodeType":"YulExpressionStatement","src":"28418:17:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"28366:5:53","nodeType":"YulIdentifier","src":"28366:5:53"},{"name":"_2","nativeSrc":"28373:2:53","nodeType":"YulIdentifier","src":"28373:2:53"}],"functionName":{"name":"lt","nativeSrc":"28363:2:53","nodeType":"YulIdentifier","src":"28363:2:53"},"nativeSrc":"28363:13:53","nodeType":"YulFunctionCall","src":"28363:13:53"},"nativeSrc":"28355:82:53","nodeType":"YulForLoop","post":{"nativeSrc":"28377:26:53","nodeType":"YulBlock","src":"28377:26:53","statements":[{"nativeSrc":"28379:22:53","nodeType":"YulAssignment","src":"28379:22:53","value":{"arguments":[{"name":"start","nativeSrc":"28392:5:53","nodeType":"YulIdentifier","src":"28392:5:53"},{"kind":"number","nativeSrc":"28399:1:53","nodeType":"YulLiteral","src":"28399:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28388:3:53","nodeType":"YulIdentifier","src":"28388:3:53"},"nativeSrc":"28388:13:53","nodeType":"YulFunctionCall","src":"28388:13:53"},"variableNames":[{"name":"start","nativeSrc":"28379:5:53","nodeType":"YulIdentifier","src":"28379:5:53"}]}]},"pre":{"nativeSrc":"28359:3:53","nodeType":"YulBlock","src":"28359:3:53","statements":[]},"src":"28355:82:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"28007:3:53","nodeType":"YulIdentifier","src":"28007:3:53"},{"kind":"number","nativeSrc":"28012:2:53","nodeType":"YulLiteral","src":"28012:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"28004:2:53","nodeType":"YulIdentifier","src":"28004:2:53"},"nativeSrc":"28004:11:53","nodeType":"YulFunctionCall","src":"28004:11:53"},"nativeSrc":"28001:446:53","nodeType":"YulIf","src":"28001:446:53"}]},"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"27911:542:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"27963:5:53","nodeType":"YulTypedName","src":"27963:5:53","type":""},{"name":"len","nativeSrc":"27970:3:53","nodeType":"YulTypedName","src":"27970:3:53","type":""},{"name":"startIndex","nativeSrc":"27975:10:53","nodeType":"YulTypedName","src":"27975:10:53","type":""}],"src":"27911:542:53"},{"body":{"nativeSrc":"28543:81:53","nodeType":"YulBlock","src":"28543:81:53","statements":[{"nativeSrc":"28553:65:53","nodeType":"YulAssignment","src":"28553:65:53","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"28568:4:53","nodeType":"YulIdentifier","src":"28568:4:53"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28586:1:53","nodeType":"YulLiteral","src":"28586:1:53","type":"","value":"3"},{"name":"len","nativeSrc":"28589:3:53","nodeType":"YulIdentifier","src":"28589:3:53"}],"functionName":{"name":"shl","nativeSrc":"28582:3:53","nodeType":"YulIdentifier","src":"28582:3:53"},"nativeSrc":"28582:11:53","nodeType":"YulFunctionCall","src":"28582:11:53"},{"arguments":[{"kind":"number","nativeSrc":"28599:1:53","nodeType":"YulLiteral","src":"28599:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"28595:3:53","nodeType":"YulIdentifier","src":"28595:3:53"},"nativeSrc":"28595:6:53","nodeType":"YulFunctionCall","src":"28595:6:53"}],"functionName":{"name":"shr","nativeSrc":"28578:3:53","nodeType":"YulIdentifier","src":"28578:3:53"},"nativeSrc":"28578:24:53","nodeType":"YulFunctionCall","src":"28578:24:53"}],"functionName":{"name":"not","nativeSrc":"28574:3:53","nodeType":"YulIdentifier","src":"28574:3:53"},"nativeSrc":"28574:29:53","nodeType":"YulFunctionCall","src":"28574:29:53"}],"functionName":{"name":"and","nativeSrc":"28564:3:53","nodeType":"YulIdentifier","src":"28564:3:53"},"nativeSrc":"28564:40:53","nodeType":"YulFunctionCall","src":"28564:40:53"},{"arguments":[{"kind":"number","nativeSrc":"28610:1:53","nodeType":"YulLiteral","src":"28610:1:53","type":"","value":"1"},{"name":"len","nativeSrc":"28613:3:53","nodeType":"YulIdentifier","src":"28613:3:53"}],"functionName":{"name":"shl","nativeSrc":"28606:3:53","nodeType":"YulIdentifier","src":"28606:3:53"},"nativeSrc":"28606:11:53","nodeType":"YulFunctionCall","src":"28606:11:53"}],"functionName":{"name":"or","nativeSrc":"28561:2:53","nodeType":"YulIdentifier","src":"28561:2:53"},"nativeSrc":"28561:57:53","nodeType":"YulFunctionCall","src":"28561:57:53"},"variableNames":[{"name":"used","nativeSrc":"28553:4:53","nodeType":"YulIdentifier","src":"28553:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"28458:166:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"28520:4:53","nodeType":"YulTypedName","src":"28520:4:53","type":""},{"name":"len","nativeSrc":"28526:3:53","nodeType":"YulTypedName","src":"28526:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"28534:4:53","nodeType":"YulTypedName","src":"28534:4:53","type":""}],"src":"28458:166:53"},{"body":{"nativeSrc":"28723:1247:53","nodeType":"YulBlock","src":"28723:1247:53","statements":[{"nativeSrc":"28733:24:53","nodeType":"YulVariableDeclaration","src":"28733:24:53","value":{"arguments":[{"name":"src","nativeSrc":"28753:3:53","nodeType":"YulIdentifier","src":"28753:3:53"}],"functionName":{"name":"mload","nativeSrc":"28747:5:53","nodeType":"YulIdentifier","src":"28747:5:53"},"nativeSrc":"28747:10:53","nodeType":"YulFunctionCall","src":"28747:10:53"},"variables":[{"name":"newLen","nativeSrc":"28737:6:53","nodeType":"YulTypedName","src":"28737:6:53","type":""}]},{"body":{"nativeSrc":"28800:22:53","nodeType":"YulBlock","src":"28800:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"28802:16:53","nodeType":"YulIdentifier","src":"28802:16:53"},"nativeSrc":"28802:18:53","nodeType":"YulFunctionCall","src":"28802:18:53"},"nativeSrc":"28802:18:53","nodeType":"YulExpressionStatement","src":"28802:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"28772:6:53","nodeType":"YulIdentifier","src":"28772:6:53"},{"kind":"number","nativeSrc":"28780:18:53","nodeType":"YulLiteral","src":"28780:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"28769:2:53","nodeType":"YulIdentifier","src":"28769:2:53"},"nativeSrc":"28769:30:53","nodeType":"YulFunctionCall","src":"28769:30:53"},"nativeSrc":"28766:56:53","nodeType":"YulIf","src":"28766:56:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"28874:4:53","nodeType":"YulIdentifier","src":"28874:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"28912:4:53","nodeType":"YulIdentifier","src":"28912:4:53"}],"functionName":{"name":"sload","nativeSrc":"28906:5:53","nodeType":"YulIdentifier","src":"28906:5:53"},"nativeSrc":"28906:11:53","nodeType":"YulFunctionCall","src":"28906:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"28880:25:53","nodeType":"YulIdentifier","src":"28880:25:53"},"nativeSrc":"28880:38:53","nodeType":"YulFunctionCall","src":"28880:38:53"},{"name":"newLen","nativeSrc":"28920:6:53","nodeType":"YulIdentifier","src":"28920:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"28831:42:53","nodeType":"YulIdentifier","src":"28831:42:53"},"nativeSrc":"28831:96:53","nodeType":"YulFunctionCall","src":"28831:96:53"},"nativeSrc":"28831:96:53","nodeType":"YulExpressionStatement","src":"28831:96:53"},{"nativeSrc":"28936:18:53","nodeType":"YulVariableDeclaration","src":"28936:18:53","value":{"kind":"number","nativeSrc":"28953:1:53","nodeType":"YulLiteral","src":"28953:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"28940:9:53","nodeType":"YulTypedName","src":"28940:9:53","type":""}]},{"nativeSrc":"28963:23:53","nodeType":"YulVariableDeclaration","src":"28963:23:53","value":{"kind":"number","nativeSrc":"28982:4:53","nodeType":"YulLiteral","src":"28982:4:53","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"28967:11:53","nodeType":"YulTypedName","src":"28967:11:53","type":""}]},{"nativeSrc":"28995:17:53","nodeType":"YulAssignment","src":"28995:17:53","value":{"kind":"number","nativeSrc":"29008:4:53","nodeType":"YulLiteral","src":"29008:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"28995:9:53","nodeType":"YulIdentifier","src":"28995:9:53"}]},{"cases":[{"body":{"nativeSrc":"29058:655:53","nodeType":"YulBlock","src":"29058:655:53","statements":[{"nativeSrc":"29072:35:53","nodeType":"YulVariableDeclaration","src":"29072:35:53","value":{"arguments":[{"name":"newLen","nativeSrc":"29091:6:53","nodeType":"YulIdentifier","src":"29091:6:53"},{"arguments":[{"kind":"number","nativeSrc":"29103:2:53","nodeType":"YulLiteral","src":"29103:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"29099:3:53","nodeType":"YulIdentifier","src":"29099:3:53"},"nativeSrc":"29099:7:53","nodeType":"YulFunctionCall","src":"29099:7:53"}],"functionName":{"name":"and","nativeSrc":"29087:3:53","nodeType":"YulIdentifier","src":"29087:3:53"},"nativeSrc":"29087:20:53","nodeType":"YulFunctionCall","src":"29087:20:53"},"variables":[{"name":"loopEnd","nativeSrc":"29076:7:53","nodeType":"YulTypedName","src":"29076:7:53","type":""}]},{"nativeSrc":"29120:48:53","nodeType":"YulVariableDeclaration","src":"29120:48:53","value":{"arguments":[{"name":"slot","nativeSrc":"29163:4:53","nodeType":"YulIdentifier","src":"29163:4:53"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"29134:28:53","nodeType":"YulIdentifier","src":"29134:28:53"},"nativeSrc":"29134:34:53","nodeType":"YulFunctionCall","src":"29134:34:53"},"variables":[{"name":"dstPtr","nativeSrc":"29124:6:53","nodeType":"YulTypedName","src":"29124:6:53","type":""}]},{"nativeSrc":"29181:10:53","nodeType":"YulVariableDeclaration","src":"29181:10:53","value":{"kind":"number","nativeSrc":"29190:1:53","nodeType":"YulLiteral","src":"29190:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"29185:1:53","nodeType":"YulTypedName","src":"29185:1:53","type":""}]},{"body":{"nativeSrc":"29268:172:53","nodeType":"YulBlock","src":"29268:172:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"29293:6:53","nodeType":"YulIdentifier","src":"29293:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"29311:3:53","nodeType":"YulIdentifier","src":"29311:3:53"},{"name":"srcOffset","nativeSrc":"29316:9:53","nodeType":"YulIdentifier","src":"29316:9:53"}],"functionName":{"name":"add","nativeSrc":"29307:3:53","nodeType":"YulIdentifier","src":"29307:3:53"},"nativeSrc":"29307:19:53","nodeType":"YulFunctionCall","src":"29307:19:53"}],"functionName":{"name":"mload","nativeSrc":"29301:5:53","nodeType":"YulIdentifier","src":"29301:5:53"},"nativeSrc":"29301:26:53","nodeType":"YulFunctionCall","src":"29301:26:53"}],"functionName":{"name":"sstore","nativeSrc":"29286:6:53","nodeType":"YulIdentifier","src":"29286:6:53"},"nativeSrc":"29286:42:53","nodeType":"YulFunctionCall","src":"29286:42:53"},"nativeSrc":"29286:42:53","nodeType":"YulExpressionStatement","src":"29286:42:53"},{"nativeSrc":"29345:24:53","nodeType":"YulAssignment","src":"29345:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"29359:6:53","nodeType":"YulIdentifier","src":"29359:6:53"},{"kind":"number","nativeSrc":"29367:1:53","nodeType":"YulLiteral","src":"29367:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"29355:3:53","nodeType":"YulIdentifier","src":"29355:3:53"},"nativeSrc":"29355:14:53","nodeType":"YulFunctionCall","src":"29355:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"29345:6:53","nodeType":"YulIdentifier","src":"29345:6:53"}]},{"nativeSrc":"29386:40:53","nodeType":"YulAssignment","src":"29386:40:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"29403:9:53","nodeType":"YulIdentifier","src":"29403:9:53"},{"name":"srcOffset_1","nativeSrc":"29414:11:53","nodeType":"YulIdentifier","src":"29414:11:53"}],"functionName":{"name":"add","nativeSrc":"29399:3:53","nodeType":"YulIdentifier","src":"29399:3:53"},"nativeSrc":"29399:27:53","nodeType":"YulFunctionCall","src":"29399:27:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"29386:9:53","nodeType":"YulIdentifier","src":"29386:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"29215:1:53","nodeType":"YulIdentifier","src":"29215:1:53"},{"name":"loopEnd","nativeSrc":"29218:7:53","nodeType":"YulIdentifier","src":"29218:7:53"}],"functionName":{"name":"lt","nativeSrc":"29212:2:53","nodeType":"YulIdentifier","src":"29212:2:53"},"nativeSrc":"29212:14:53","nodeType":"YulFunctionCall","src":"29212:14:53"},"nativeSrc":"29204:236:53","nodeType":"YulForLoop","post":{"nativeSrc":"29227:28:53","nodeType":"YulBlock","src":"29227:28:53","statements":[{"nativeSrc":"29229:24:53","nodeType":"YulAssignment","src":"29229:24:53","value":{"arguments":[{"name":"i","nativeSrc":"29238:1:53","nodeType":"YulIdentifier","src":"29238:1:53"},{"name":"srcOffset_1","nativeSrc":"29241:11:53","nodeType":"YulIdentifier","src":"29241:11:53"}],"functionName":{"name":"add","nativeSrc":"29234:3:53","nodeType":"YulIdentifier","src":"29234:3:53"},"nativeSrc":"29234:19:53","nodeType":"YulFunctionCall","src":"29234:19:53"},"variableNames":[{"name":"i","nativeSrc":"29229:1:53","nodeType":"YulIdentifier","src":"29229:1:53"}]}]},"pre":{"nativeSrc":"29208:3:53","nodeType":"YulBlock","src":"29208:3:53","statements":[]},"src":"29204:236:53"},{"body":{"nativeSrc":"29488:166:53","nodeType":"YulBlock","src":"29488:166:53","statements":[{"nativeSrc":"29506:43:53","nodeType":"YulVariableDeclaration","src":"29506:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"29533:3:53","nodeType":"YulIdentifier","src":"29533:3:53"},{"name":"srcOffset","nativeSrc":"29538:9:53","nodeType":"YulIdentifier","src":"29538:9:53"}],"functionName":{"name":"add","nativeSrc":"29529:3:53","nodeType":"YulIdentifier","src":"29529:3:53"},"nativeSrc":"29529:19:53","nodeType":"YulFunctionCall","src":"29529:19:53"}],"functionName":{"name":"mload","nativeSrc":"29523:5:53","nodeType":"YulIdentifier","src":"29523:5:53"},"nativeSrc":"29523:26:53","nodeType":"YulFunctionCall","src":"29523:26:53"},"variables":[{"name":"lastValue","nativeSrc":"29510:9:53","nodeType":"YulTypedName","src":"29510:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"29573:6:53","nodeType":"YulIdentifier","src":"29573:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"29585:9:53","nodeType":"YulIdentifier","src":"29585:9:53"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"29612:1:53","nodeType":"YulLiteral","src":"29612:1:53","type":"","value":"3"},{"name":"newLen","nativeSrc":"29615:6:53","nodeType":"YulIdentifier","src":"29615:6:53"}],"functionName":{"name":"shl","nativeSrc":"29608:3:53","nodeType":"YulIdentifier","src":"29608:3:53"},"nativeSrc":"29608:14:53","nodeType":"YulFunctionCall","src":"29608:14:53"},{"kind":"number","nativeSrc":"29624:3:53","nodeType":"YulLiteral","src":"29624:3:53","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"29604:3:53","nodeType":"YulIdentifier","src":"29604:3:53"},"nativeSrc":"29604:24:53","nodeType":"YulFunctionCall","src":"29604:24:53"},{"arguments":[{"kind":"number","nativeSrc":"29634:1:53","nodeType":"YulLiteral","src":"29634:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"29630:3:53","nodeType":"YulIdentifier","src":"29630:3:53"},"nativeSrc":"29630:6:53","nodeType":"YulFunctionCall","src":"29630:6:53"}],"functionName":{"name":"shr","nativeSrc":"29600:3:53","nodeType":"YulIdentifier","src":"29600:3:53"},"nativeSrc":"29600:37:53","nodeType":"YulFunctionCall","src":"29600:37:53"}],"functionName":{"name":"not","nativeSrc":"29596:3:53","nodeType":"YulIdentifier","src":"29596:3:53"},"nativeSrc":"29596:42:53","nodeType":"YulFunctionCall","src":"29596:42:53"}],"functionName":{"name":"and","nativeSrc":"29581:3:53","nodeType":"YulIdentifier","src":"29581:3:53"},"nativeSrc":"29581:58:53","nodeType":"YulFunctionCall","src":"29581:58:53"}],"functionName":{"name":"sstore","nativeSrc":"29566:6:53","nodeType":"YulIdentifier","src":"29566:6:53"},"nativeSrc":"29566:74:53","nodeType":"YulFunctionCall","src":"29566:74:53"},"nativeSrc":"29566:74:53","nodeType":"YulExpressionStatement","src":"29566:74:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"29459:7:53","nodeType":"YulIdentifier","src":"29459:7:53"},{"name":"newLen","nativeSrc":"29468:6:53","nodeType":"YulIdentifier","src":"29468:6:53"}],"functionName":{"name":"lt","nativeSrc":"29456:2:53","nodeType":"YulIdentifier","src":"29456:2:53"},"nativeSrc":"29456:19:53","nodeType":"YulFunctionCall","src":"29456:19:53"},"nativeSrc":"29453:201:53","nodeType":"YulIf","src":"29453:201:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"29674:4:53","nodeType":"YulIdentifier","src":"29674:4:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"29688:1:53","nodeType":"YulLiteral","src":"29688:1:53","type":"","value":"1"},{"name":"newLen","nativeSrc":"29691:6:53","nodeType":"YulIdentifier","src":"29691:6:53"}],"functionName":{"name":"shl","nativeSrc":"29684:3:53","nodeType":"YulIdentifier","src":"29684:3:53"},"nativeSrc":"29684:14:53","nodeType":"YulFunctionCall","src":"29684:14:53"},{"kind":"number","nativeSrc":"29700:1:53","nodeType":"YulLiteral","src":"29700:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"29680:3:53","nodeType":"YulIdentifier","src":"29680:3:53"},"nativeSrc":"29680:22:53","nodeType":"YulFunctionCall","src":"29680:22:53"}],"functionName":{"name":"sstore","nativeSrc":"29667:6:53","nodeType":"YulIdentifier","src":"29667:6:53"},"nativeSrc":"29667:36:53","nodeType":"YulFunctionCall","src":"29667:36:53"},"nativeSrc":"29667:36:53","nodeType":"YulExpressionStatement","src":"29667:36:53"}]},"nativeSrc":"29051:662:53","nodeType":"YulCase","src":"29051:662:53","value":{"kind":"number","nativeSrc":"29056:1:53","nodeType":"YulLiteral","src":"29056:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"29730:234:53","nodeType":"YulBlock","src":"29730:234:53","statements":[{"nativeSrc":"29744:14:53","nodeType":"YulVariableDeclaration","src":"29744:14:53","value":{"kind":"number","nativeSrc":"29757:1:53","nodeType":"YulLiteral","src":"29757:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"29748:5:53","nodeType":"YulTypedName","src":"29748:5:53","type":""}]},{"body":{"nativeSrc":"29793:67:53","nodeType":"YulBlock","src":"29793:67:53","statements":[{"nativeSrc":"29811:35:53","nodeType":"YulAssignment","src":"29811:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"29830:3:53","nodeType":"YulIdentifier","src":"29830:3:53"},{"name":"srcOffset","nativeSrc":"29835:9:53","nodeType":"YulIdentifier","src":"29835:9:53"}],"functionName":{"name":"add","nativeSrc":"29826:3:53","nodeType":"YulIdentifier","src":"29826:3:53"},"nativeSrc":"29826:19:53","nodeType":"YulFunctionCall","src":"29826:19:53"}],"functionName":{"name":"mload","nativeSrc":"29820:5:53","nodeType":"YulIdentifier","src":"29820:5:53"},"nativeSrc":"29820:26:53","nodeType":"YulFunctionCall","src":"29820:26:53"},"variableNames":[{"name":"value","nativeSrc":"29811:5:53","nodeType":"YulIdentifier","src":"29811:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"29774:6:53","nodeType":"YulIdentifier","src":"29774:6:53"},"nativeSrc":"29771:89:53","nodeType":"YulIf","src":"29771:89:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"29880:4:53","nodeType":"YulIdentifier","src":"29880:4:53"},{"arguments":[{"name":"value","nativeSrc":"29939:5:53","nodeType":"YulIdentifier","src":"29939:5:53"},{"name":"newLen","nativeSrc":"29946:6:53","nodeType":"YulIdentifier","src":"29946:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"29886:52:53","nodeType":"YulIdentifier","src":"29886:52:53"},"nativeSrc":"29886:67:53","nodeType":"YulFunctionCall","src":"29886:67:53"}],"functionName":{"name":"sstore","nativeSrc":"29873:6:53","nodeType":"YulIdentifier","src":"29873:6:53"},"nativeSrc":"29873:81:53","nodeType":"YulFunctionCall","src":"29873:81:53"},"nativeSrc":"29873:81:53","nodeType":"YulExpressionStatement","src":"29873:81:53"}]},"nativeSrc":"29722:242:53","nodeType":"YulCase","src":"29722:242:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"29031:6:53","nodeType":"YulIdentifier","src":"29031:6:53"},{"kind":"number","nativeSrc":"29039:2:53","nodeType":"YulLiteral","src":"29039:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"29028:2:53","nodeType":"YulIdentifier","src":"29028:2:53"},"nativeSrc":"29028:14:53","nodeType":"YulFunctionCall","src":"29028:14:53"},"nativeSrc":"29021:943:53","nodeType":"YulSwitch","src":"29021:943:53"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"28629:1341:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"28708:4:53","nodeType":"YulTypedName","src":"28708:4:53","type":""},{"name":"src","nativeSrc":"28714:3:53","nodeType":"YulTypedName","src":"28714:3:53","type":""}],"src":"28629:1341:53"},{"body":{"nativeSrc":"30200:939:53","nodeType":"YulBlock","src":"30200:939:53","statements":[{"nativeSrc":"30210:12:53","nodeType":"YulVariableDeclaration","src":"30210:12:53","value":{"kind":"number","nativeSrc":"30220:2:53","nodeType":"YulLiteral","src":"30220:2:53","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"30214:2:53","nodeType":"YulTypedName","src":"30214:2:53","type":""}]},{"nativeSrc":"30231:32:53","nodeType":"YulVariableDeclaration","src":"30231:32:53","value":{"arguments":[{"name":"headStart","nativeSrc":"30249:9:53","nodeType":"YulIdentifier","src":"30249:9:53"},{"name":"_1","nativeSrc":"30260:2:53","nodeType":"YulIdentifier","src":"30260:2:53"}],"functionName":{"name":"add","nativeSrc":"30245:3:53","nodeType":"YulIdentifier","src":"30245:3:53"},"nativeSrc":"30245:18:53","nodeType":"YulFunctionCall","src":"30245:18:53"},"variables":[{"name":"tail_1","nativeSrc":"30235:6:53","nodeType":"YulTypedName","src":"30235:6:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30279:9:53","nodeType":"YulIdentifier","src":"30279:9:53"},{"name":"_1","nativeSrc":"30290:2:53","nodeType":"YulIdentifier","src":"30290:2:53"}],"functionName":{"name":"mstore","nativeSrc":"30272:6:53","nodeType":"YulIdentifier","src":"30272:6:53"},"nativeSrc":"30272:21:53","nodeType":"YulFunctionCall","src":"30272:21:53"},"nativeSrc":"30272:21:53","nodeType":"YulExpressionStatement","src":"30272:21:53"},{"nativeSrc":"30302:17:53","nodeType":"YulVariableDeclaration","src":"30302:17:53","value":{"name":"tail_1","nativeSrc":"30313:6:53","nodeType":"YulIdentifier","src":"30313:6:53"},"variables":[{"name":"pos","nativeSrc":"30306:3:53","nodeType":"YulTypedName","src":"30306:3:53","type":""}]},{"nativeSrc":"30328:27:53","nodeType":"YulVariableDeclaration","src":"30328:27:53","value":{"arguments":[{"name":"value0","nativeSrc":"30348:6:53","nodeType":"YulIdentifier","src":"30348:6:53"}],"functionName":{"name":"mload","nativeSrc":"30342:5:53","nodeType":"YulIdentifier","src":"30342:5:53"},"nativeSrc":"30342:13:53","nodeType":"YulFunctionCall","src":"30342:13:53"},"variables":[{"name":"length","nativeSrc":"30332:6:53","nodeType":"YulTypedName","src":"30332:6:53","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"30371:6:53","nodeType":"YulIdentifier","src":"30371:6:53"},{"name":"length","nativeSrc":"30379:6:53","nodeType":"YulIdentifier","src":"30379:6:53"}],"functionName":{"name":"mstore","nativeSrc":"30364:6:53","nodeType":"YulIdentifier","src":"30364:6:53"},"nativeSrc":"30364:22:53","nodeType":"YulFunctionCall","src":"30364:22:53"},"nativeSrc":"30364:22:53","nodeType":"YulExpressionStatement","src":"30364:22:53"},{"nativeSrc":"30395:12:53","nodeType":"YulVariableDeclaration","src":"30395:12:53","value":{"kind":"number","nativeSrc":"30405:2:53","nodeType":"YulLiteral","src":"30405:2:53","type":"","value":"64"},"variables":[{"name":"_2","nativeSrc":"30399:2:53","nodeType":"YulTypedName","src":"30399:2:53","type":""}]},{"nativeSrc":"30416:25:53","nodeType":"YulAssignment","src":"30416:25:53","value":{"arguments":[{"name":"headStart","nativeSrc":"30427:9:53","nodeType":"YulIdentifier","src":"30427:9:53"},{"kind":"number","nativeSrc":"30438:2:53","nodeType":"YulLiteral","src":"30438:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30423:3:53","nodeType":"YulIdentifier","src":"30423:3:53"},"nativeSrc":"30423:18:53","nodeType":"YulFunctionCall","src":"30423:18:53"},"variableNames":[{"name":"pos","nativeSrc":"30416:3:53","nodeType":"YulIdentifier","src":"30416:3:53"}]},{"nativeSrc":"30450:53:53","nodeType":"YulVariableDeclaration","src":"30450:53:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30472:9:53","nodeType":"YulIdentifier","src":"30472:9:53"},{"arguments":[{"kind":"number","nativeSrc":"30487:1:53","nodeType":"YulLiteral","src":"30487:1:53","type":"","value":"5"},{"name":"length","nativeSrc":"30490:6:53","nodeType":"YulIdentifier","src":"30490:6:53"}],"functionName":{"name":"shl","nativeSrc":"30483:3:53","nodeType":"YulIdentifier","src":"30483:3:53"},"nativeSrc":"30483:14:53","nodeType":"YulFunctionCall","src":"30483:14:53"}],"functionName":{"name":"add","nativeSrc":"30468:3:53","nodeType":"YulIdentifier","src":"30468:3:53"},"nativeSrc":"30468:30:53","nodeType":"YulFunctionCall","src":"30468:30:53"},{"kind":"number","nativeSrc":"30500:2:53","nodeType":"YulLiteral","src":"30500:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30464:3:53","nodeType":"YulIdentifier","src":"30464:3:53"},"nativeSrc":"30464:39:53","nodeType":"YulFunctionCall","src":"30464:39:53"},"variables":[{"name":"tail_2","nativeSrc":"30454:6:53","nodeType":"YulTypedName","src":"30454:6:53","type":""}]},{"nativeSrc":"30512:29:53","nodeType":"YulVariableDeclaration","src":"30512:29:53","value":{"arguments":[{"name":"value0","nativeSrc":"30530:6:53","nodeType":"YulIdentifier","src":"30530:6:53"},{"name":"_1","nativeSrc":"30538:2:53","nodeType":"YulIdentifier","src":"30538:2:53"}],"functionName":{"name":"add","nativeSrc":"30526:3:53","nodeType":"YulIdentifier","src":"30526:3:53"},"nativeSrc":"30526:15:53","nodeType":"YulFunctionCall","src":"30526:15:53"},"variables":[{"name":"srcPtr","nativeSrc":"30516:6:53","nodeType":"YulTypedName","src":"30516:6:53","type":""}]},{"nativeSrc":"30550:10:53","nodeType":"YulVariableDeclaration","src":"30550:10:53","value":{"kind":"number","nativeSrc":"30559:1:53","nodeType":"YulLiteral","src":"30559:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"30554:1:53","nodeType":"YulTypedName","src":"30554:1:53","type":""}]},{"body":{"nativeSrc":"30618:492:53","nodeType":"YulBlock","src":"30618:492:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30639:3:53","nodeType":"YulIdentifier","src":"30639:3:53"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"30652:6:53","nodeType":"YulIdentifier","src":"30652:6:53"},{"name":"headStart","nativeSrc":"30660:9:53","nodeType":"YulIdentifier","src":"30660:9:53"}],"functionName":{"name":"sub","nativeSrc":"30648:3:53","nodeType":"YulIdentifier","src":"30648:3:53"},"nativeSrc":"30648:22:53","nodeType":"YulFunctionCall","src":"30648:22:53"},{"arguments":[{"kind":"number","nativeSrc":"30676:2:53","nodeType":"YulLiteral","src":"30676:2:53","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"30672:3:53","nodeType":"YulIdentifier","src":"30672:3:53"},"nativeSrc":"30672:7:53","nodeType":"YulFunctionCall","src":"30672:7:53"}],"functionName":{"name":"add","nativeSrc":"30644:3:53","nodeType":"YulIdentifier","src":"30644:3:53"},"nativeSrc":"30644:36:53","nodeType":"YulFunctionCall","src":"30644:36:53"}],"functionName":{"name":"mstore","nativeSrc":"30632:6:53","nodeType":"YulIdentifier","src":"30632:6:53"},"nativeSrc":"30632:49:53","nodeType":"YulFunctionCall","src":"30632:49:53"},"nativeSrc":"30632:49:53","nodeType":"YulExpressionStatement","src":"30632:49:53"},{"nativeSrc":"30694:23:53","nodeType":"YulVariableDeclaration","src":"30694:23:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"30710:6:53","nodeType":"YulIdentifier","src":"30710:6:53"}],"functionName":{"name":"mload","nativeSrc":"30704:5:53","nodeType":"YulIdentifier","src":"30704:5:53"},"nativeSrc":"30704:13:53","nodeType":"YulFunctionCall","src":"30704:13:53"},"variables":[{"name":"_3","nativeSrc":"30698:2:53","nodeType":"YulTypedName","src":"30698:2:53","type":""}]},{"nativeSrc":"30730:14:53","nodeType":"YulVariableDeclaration","src":"30730:14:53","value":{"kind":"number","nativeSrc":"30740:4:53","nodeType":"YulLiteral","src":"30740:4:53","type":"","value":"0x60"},"variables":[{"name":"_4","nativeSrc":"30734:2:53","nodeType":"YulTypedName","src":"30734:2:53","type":""}]},{"expression":{"arguments":[{"name":"tail_2","nativeSrc":"30764:6:53","nodeType":"YulIdentifier","src":"30764:6:53"},{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"30782:2:53","nodeType":"YulIdentifier","src":"30782:2:53"}],"functionName":{"name":"mload","nativeSrc":"30776:5:53","nodeType":"YulIdentifier","src":"30776:5:53"},"nativeSrc":"30776:9:53","nodeType":"YulFunctionCall","src":"30776:9:53"},{"kind":"number","nativeSrc":"30787:10:53","nodeType":"YulLiteral","src":"30787:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"30772:3:53","nodeType":"YulIdentifier","src":"30772:3:53"},"nativeSrc":"30772:26:53","nodeType":"YulFunctionCall","src":"30772:26:53"}],"functionName":{"name":"mstore","nativeSrc":"30757:6:53","nodeType":"YulIdentifier","src":"30757:6:53"},"nativeSrc":"30757:42:53","nodeType":"YulFunctionCall","src":"30757:42:53"},"nativeSrc":"30757:42:53","nodeType":"YulExpressionStatement","src":"30757:42:53"},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"30823:6:53","nodeType":"YulIdentifier","src":"30823:6:53"},{"name":"_1","nativeSrc":"30831:2:53","nodeType":"YulIdentifier","src":"30831:2:53"}],"functionName":{"name":"add","nativeSrc":"30819:3:53","nodeType":"YulIdentifier","src":"30819:3:53"},"nativeSrc":"30819:15:53","nodeType":"YulFunctionCall","src":"30819:15:53"},{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"30850:2:53","nodeType":"YulIdentifier","src":"30850:2:53"},{"name":"_1","nativeSrc":"30854:2:53","nodeType":"YulIdentifier","src":"30854:2:53"}],"functionName":{"name":"add","nativeSrc":"30846:3:53","nodeType":"YulIdentifier","src":"30846:3:53"},"nativeSrc":"30846:11:53","nodeType":"YulFunctionCall","src":"30846:11:53"}],"functionName":{"name":"mload","nativeSrc":"30840:5:53","nodeType":"YulIdentifier","src":"30840:5:53"},"nativeSrc":"30840:18:53","nodeType":"YulFunctionCall","src":"30840:18:53"},{"kind":"number","nativeSrc":"30860:6:53","nodeType":"YulLiteral","src":"30860:6:53","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"30836:3:53","nodeType":"YulIdentifier","src":"30836:3:53"},"nativeSrc":"30836:31:53","nodeType":"YulFunctionCall","src":"30836:31:53"}],"functionName":{"name":"mstore","nativeSrc":"30812:6:53","nodeType":"YulIdentifier","src":"30812:6:53"},"nativeSrc":"30812:56:53","nodeType":"YulFunctionCall","src":"30812:56:53"},"nativeSrc":"30812:56:53","nodeType":"YulExpressionStatement","src":"30812:56:53"},{"nativeSrc":"30881:38:53","nodeType":"YulVariableDeclaration","src":"30881:38:53","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"30911:2:53","nodeType":"YulIdentifier","src":"30911:2:53"},{"name":"_2","nativeSrc":"30915:2:53","nodeType":"YulIdentifier","src":"30915:2:53"}],"functionName":{"name":"add","nativeSrc":"30907:3:53","nodeType":"YulIdentifier","src":"30907:3:53"},"nativeSrc":"30907:11:53","nodeType":"YulFunctionCall","src":"30907:11:53"}],"functionName":{"name":"mload","nativeSrc":"30901:5:53","nodeType":"YulIdentifier","src":"30901:5:53"},"nativeSrc":"30901:18:53","nodeType":"YulFunctionCall","src":"30901:18:53"},"variables":[{"name":"memberValue0","nativeSrc":"30885:12:53","nodeType":"YulTypedName","src":"30885:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"30943:6:53","nodeType":"YulIdentifier","src":"30943:6:53"},{"name":"_2","nativeSrc":"30951:2:53","nodeType":"YulIdentifier","src":"30951:2:53"}],"functionName":{"name":"add","nativeSrc":"30939:3:53","nodeType":"YulIdentifier","src":"30939:3:53"},"nativeSrc":"30939:15:53","nodeType":"YulFunctionCall","src":"30939:15:53"},{"name":"_4","nativeSrc":"30956:2:53","nodeType":"YulIdentifier","src":"30956:2:53"}],"functionName":{"name":"mstore","nativeSrc":"30932:6:53","nodeType":"YulIdentifier","src":"30932:6:53"},"nativeSrc":"30932:27:53","nodeType":"YulFunctionCall","src":"30932:27:53"},"nativeSrc":"30932:27:53","nodeType":"YulExpressionStatement","src":"30932:27:53"},{"nativeSrc":"30972:58:53","nodeType":"YulAssignment","src":"30972:58:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"31000:12:53","nodeType":"YulIdentifier","src":"31000:12:53"},{"arguments":[{"name":"tail_2","nativeSrc":"31018:6:53","nodeType":"YulIdentifier","src":"31018:6:53"},{"name":"_4","nativeSrc":"31026:2:53","nodeType":"YulIdentifier","src":"31026:2:53"}],"functionName":{"name":"add","nativeSrc":"31014:3:53","nodeType":"YulIdentifier","src":"31014:3:53"},"nativeSrc":"31014:15:53","nodeType":"YulFunctionCall","src":"31014:15:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"30982:17:53","nodeType":"YulIdentifier","src":"30982:17:53"},"nativeSrc":"30982:48:53","nodeType":"YulFunctionCall","src":"30982:48:53"},"variableNames":[{"name":"tail_2","nativeSrc":"30972:6:53","nodeType":"YulIdentifier","src":"30972:6:53"}]},{"nativeSrc":"31043:25:53","nodeType":"YulAssignment","src":"31043:25:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"31057:6:53","nodeType":"YulIdentifier","src":"31057:6:53"},{"name":"_1","nativeSrc":"31065:2:53","nodeType":"YulIdentifier","src":"31065:2:53"}],"functionName":{"name":"add","nativeSrc":"31053:3:53","nodeType":"YulIdentifier","src":"31053:3:53"},"nativeSrc":"31053:15:53","nodeType":"YulFunctionCall","src":"31053:15:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"31043:6:53","nodeType":"YulIdentifier","src":"31043:6:53"}]},{"nativeSrc":"31081:19:53","nodeType":"YulAssignment","src":"31081:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"31092:3:53","nodeType":"YulIdentifier","src":"31092:3:53"},{"name":"_1","nativeSrc":"31097:2:53","nodeType":"YulIdentifier","src":"31097:2:53"}],"functionName":{"name":"add","nativeSrc":"31088:3:53","nodeType":"YulIdentifier","src":"31088:3:53"},"nativeSrc":"31088:12:53","nodeType":"YulFunctionCall","src":"31088:12:53"},"variableNames":[{"name":"pos","nativeSrc":"31081:3:53","nodeType":"YulIdentifier","src":"31081:3:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"30580:1:53","nodeType":"YulIdentifier","src":"30580:1:53"},{"name":"length","nativeSrc":"30583:6:53","nodeType":"YulIdentifier","src":"30583:6:53"}],"functionName":{"name":"lt","nativeSrc":"30577:2:53","nodeType":"YulIdentifier","src":"30577:2:53"},"nativeSrc":"30577:13:53","nodeType":"YulFunctionCall","src":"30577:13:53"},"nativeSrc":"30569:541:53","nodeType":"YulForLoop","post":{"nativeSrc":"30591:18:53","nodeType":"YulBlock","src":"30591:18:53","statements":[{"nativeSrc":"30593:14:53","nodeType":"YulAssignment","src":"30593:14:53","value":{"arguments":[{"name":"i","nativeSrc":"30602:1:53","nodeType":"YulIdentifier","src":"30602:1:53"},{"kind":"number","nativeSrc":"30605:1:53","nodeType":"YulLiteral","src":"30605:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"30598:3:53","nodeType":"YulIdentifier","src":"30598:3:53"},"nativeSrc":"30598:9:53","nodeType":"YulFunctionCall","src":"30598:9:53"},"variableNames":[{"name":"i","nativeSrc":"30593:1:53","nodeType":"YulIdentifier","src":"30593:1:53"}]}]},"pre":{"nativeSrc":"30573:3:53","nodeType":"YulBlock","src":"30573:3:53","statements":[]},"src":"30569:541:53"},{"nativeSrc":"31119:14:53","nodeType":"YulAssignment","src":"31119:14:53","value":{"name":"tail_2","nativeSrc":"31127:6:53","nodeType":"YulIdentifier","src":"31127:6:53"},"variableNames":[{"name":"tail","nativeSrc":"31119:4:53","nodeType":"YulIdentifier","src":"31119:4:53"}]}]},"name":"abi_encode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"29975:1164:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30169:9:53","nodeType":"YulTypedName","src":"30169:9:53","type":""},{"name":"value0","nativeSrc":"30180:6:53","nodeType":"YulTypedName","src":"30180:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30191:4:53","nodeType":"YulTypedName","src":"30191:4:53","type":""}],"src":"29975:1164:53"},{"body":{"nativeSrc":"31255:148:53","nodeType":"YulBlock","src":"31255:148:53","statements":[{"body":{"nativeSrc":"31301:16:53","nodeType":"YulBlock","src":"31301:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31310:1:53","nodeType":"YulLiteral","src":"31310:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"31313:1:53","nodeType":"YulLiteral","src":"31313:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31303:6:53","nodeType":"YulIdentifier","src":"31303:6:53"},"nativeSrc":"31303:12:53","nodeType":"YulFunctionCall","src":"31303:12:53"},"nativeSrc":"31303:12:53","nodeType":"YulExpressionStatement","src":"31303:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"31276:7:53","nodeType":"YulIdentifier","src":"31276:7:53"},{"name":"headStart","nativeSrc":"31285:9:53","nodeType":"YulIdentifier","src":"31285:9:53"}],"functionName":{"name":"sub","nativeSrc":"31272:3:53","nodeType":"YulIdentifier","src":"31272:3:53"},"nativeSrc":"31272:23:53","nodeType":"YulFunctionCall","src":"31272:23:53"},{"kind":"number","nativeSrc":"31297:2:53","nodeType":"YulLiteral","src":"31297:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"31268:3:53","nodeType":"YulIdentifier","src":"31268:3:53"},"nativeSrc":"31268:32:53","nodeType":"YulFunctionCall","src":"31268:32:53"},"nativeSrc":"31265:52:53","nodeType":"YulIf","src":"31265:52:53"},{"nativeSrc":"31326:71:53","nodeType":"YulAssignment","src":"31326:71:53","value":{"arguments":[{"name":"headStart","nativeSrc":"31378:9:53","nodeType":"YulIdentifier","src":"31378:9:53"},{"name":"dataEnd","nativeSrc":"31389:7:53","nodeType":"YulIdentifier","src":"31389:7:53"}],"functionName":{"name":"abi_decode_struct_MessagingFee_fromMemory","nativeSrc":"31336:41:53","nodeType":"YulIdentifier","src":"31336:41:53"},"nativeSrc":"31336:61:53","nodeType":"YulFunctionCall","src":"31336:61:53"},"variableNames":[{"name":"value0","nativeSrc":"31326:6:53","nodeType":"YulIdentifier","src":"31326:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr_fromMemory","nativeSrc":"31144:259:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31221:9:53","nodeType":"YulTypedName","src":"31221:9:53","type":""},{"name":"dataEnd","nativeSrc":"31232:7:53","nodeType":"YulTypedName","src":"31232:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"31244:6:53","nodeType":"YulTypedName","src":"31244:6:53","type":""}],"src":"31144:259:53"},{"body":{"nativeSrc":"31440:95:53","nodeType":"YulBlock","src":"31440:95:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31457:1:53","nodeType":"YulLiteral","src":"31457:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"31464:3:53","nodeType":"YulLiteral","src":"31464:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"31469:10:53","nodeType":"YulLiteral","src":"31469:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"31460:3:53","nodeType":"YulIdentifier","src":"31460:3:53"},"nativeSrc":"31460:20:53","nodeType":"YulFunctionCall","src":"31460:20:53"}],"functionName":{"name":"mstore","nativeSrc":"31450:6:53","nodeType":"YulIdentifier","src":"31450:6:53"},"nativeSrc":"31450:31:53","nodeType":"YulFunctionCall","src":"31450:31:53"},"nativeSrc":"31450:31:53","nodeType":"YulExpressionStatement","src":"31450:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31497:1:53","nodeType":"YulLiteral","src":"31497:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"31500:4:53","nodeType":"YulLiteral","src":"31500:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"31490:6:53","nodeType":"YulIdentifier","src":"31490:6:53"},"nativeSrc":"31490:15:53","nodeType":"YulFunctionCall","src":"31490:15:53"},"nativeSrc":"31490:15:53","nodeType":"YulExpressionStatement","src":"31490:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31521:1:53","nodeType":"YulLiteral","src":"31521:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"31524:4:53","nodeType":"YulLiteral","src":"31524:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"31514:6:53","nodeType":"YulIdentifier","src":"31514:6:53"},"nativeSrc":"31514:15:53","nodeType":"YulFunctionCall","src":"31514:15:53"},"nativeSrc":"31514:15:53","nodeType":"YulExpressionStatement","src":"31514:15:53"}]},"name":"panic_error_0x12","nativeSrc":"31408:127:53","nodeType":"YulFunctionDefinition","src":"31408:127:53"},{"body":{"nativeSrc":"31641:154:53","nodeType":"YulBlock","src":"31641:154:53","statements":[{"nativeSrc":"31651:28:53","nodeType":"YulAssignment","src":"31651:28:53","value":{"arguments":[{"name":"array","nativeSrc":"31673:5:53","nodeType":"YulIdentifier","src":"31673:5:53"}],"functionName":{"name":"calldataload","nativeSrc":"31660:12:53","nodeType":"YulIdentifier","src":"31660:12:53"},"nativeSrc":"31660:19:53","nodeType":"YulFunctionCall","src":"31660:19:53"},"variableNames":[{"name":"value","nativeSrc":"31651:5:53","nodeType":"YulIdentifier","src":"31651:5:53"}]},{"body":{"nativeSrc":"31711:78:53","nodeType":"YulBlock","src":"31711:78:53","statements":[{"nativeSrc":"31725:54:53","nodeType":"YulAssignment","src":"31725:54:53","value":{"arguments":[{"name":"value","nativeSrc":"31738:5:53","nodeType":"YulIdentifier","src":"31738:5:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"31753:1:53","nodeType":"YulLiteral","src":"31753:1:53","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"31760:2:53","nodeType":"YulLiteral","src":"31760:2:53","type":"","value":"32"},{"name":"len","nativeSrc":"31764:3:53","nodeType":"YulIdentifier","src":"31764:3:53"}],"functionName":{"name":"sub","nativeSrc":"31756:3:53","nodeType":"YulIdentifier","src":"31756:3:53"},"nativeSrc":"31756:12:53","nodeType":"YulFunctionCall","src":"31756:12:53"}],"functionName":{"name":"shl","nativeSrc":"31749:3:53","nodeType":"YulIdentifier","src":"31749:3:53"},"nativeSrc":"31749:20:53","nodeType":"YulFunctionCall","src":"31749:20:53"},{"arguments":[{"kind":"number","nativeSrc":"31775:1:53","nodeType":"YulLiteral","src":"31775:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"31771:3:53","nodeType":"YulIdentifier","src":"31771:3:53"},"nativeSrc":"31771:6:53","nodeType":"YulFunctionCall","src":"31771:6:53"}],"functionName":{"name":"shl","nativeSrc":"31745:3:53","nodeType":"YulIdentifier","src":"31745:3:53"},"nativeSrc":"31745:33:53","nodeType":"YulFunctionCall","src":"31745:33:53"}],"functionName":{"name":"and","nativeSrc":"31734:3:53","nodeType":"YulIdentifier","src":"31734:3:53"},"nativeSrc":"31734:45:53","nodeType":"YulFunctionCall","src":"31734:45:53"},"variableNames":[{"name":"value","nativeSrc":"31725:5:53","nodeType":"YulIdentifier","src":"31725:5:53"}]}]},"condition":{"arguments":[{"name":"len","nativeSrc":"31694:3:53","nodeType":"YulIdentifier","src":"31694:3:53"},{"kind":"number","nativeSrc":"31699:2:53","nodeType":"YulLiteral","src":"31699:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"31691:2:53","nodeType":"YulIdentifier","src":"31691:2:53"},"nativeSrc":"31691:11:53","nodeType":"YulFunctionCall","src":"31691:11:53"},"nativeSrc":"31688:101:53","nodeType":"YulIf","src":"31688:101:53"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes32","nativeSrc":"31540:255:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"31616:5:53","nodeType":"YulTypedName","src":"31616:5:53","type":""},{"name":"len","nativeSrc":"31623:3:53","nodeType":"YulTypedName","src":"31623:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"31631:5:53","nodeType":"YulTypedName","src":"31631:5:53","type":""}],"src":"31540:255:53"},{"body":{"nativeSrc":"31989:314:53","nodeType":"YulBlock","src":"31989:314:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"32006:3:53","nodeType":"YulIdentifier","src":"32006:3:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32019:3:53","nodeType":"YulLiteral","src":"32019:3:53","type":"","value":"192"},{"name":"value0","nativeSrc":"32024:6:53","nodeType":"YulIdentifier","src":"32024:6:53"}],"functionName":{"name":"shl","nativeSrc":"32015:3:53","nodeType":"YulIdentifier","src":"32015:3:53"},"nativeSrc":"32015:16:53","nodeType":"YulFunctionCall","src":"32015:16:53"},{"arguments":[{"kind":"number","nativeSrc":"32037:3:53","nodeType":"YulLiteral","src":"32037:3:53","type":"","value":"192"},{"kind":"number","nativeSrc":"32042:18:53","nodeType":"YulLiteral","src":"32042:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"shl","nativeSrc":"32033:3:53","nodeType":"YulIdentifier","src":"32033:3:53"},"nativeSrc":"32033:28:53","nodeType":"YulFunctionCall","src":"32033:28:53"}],"functionName":{"name":"and","nativeSrc":"32011:3:53","nodeType":"YulIdentifier","src":"32011:3:53"},"nativeSrc":"32011:51:53","nodeType":"YulFunctionCall","src":"32011:51:53"}],"functionName":{"name":"mstore","nativeSrc":"31999:6:53","nodeType":"YulIdentifier","src":"31999:6:53"},"nativeSrc":"31999:64:53","nodeType":"YulFunctionCall","src":"31999:64:53"},"nativeSrc":"31999:64:53","nodeType":"YulExpressionStatement","src":"31999:64:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32083:3:53","nodeType":"YulIdentifier","src":"32083:3:53"},{"kind":"number","nativeSrc":"32088:1:53","nodeType":"YulLiteral","src":"32088:1:53","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"32079:3:53","nodeType":"YulIdentifier","src":"32079:3:53"},"nativeSrc":"32079:11:53","nodeType":"YulFunctionCall","src":"32079:11:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32100:3:53","nodeType":"YulLiteral","src":"32100:3:53","type":"","value":"224"},{"name":"value1","nativeSrc":"32105:6:53","nodeType":"YulIdentifier","src":"32105:6:53"}],"functionName":{"name":"shl","nativeSrc":"32096:3:53","nodeType":"YulIdentifier","src":"32096:3:53"},"nativeSrc":"32096:16:53","nodeType":"YulFunctionCall","src":"32096:16:53"},{"arguments":[{"kind":"number","nativeSrc":"32118:3:53","nodeType":"YulLiteral","src":"32118:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"32123:10:53","nodeType":"YulLiteral","src":"32123:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"32114:3:53","nodeType":"YulIdentifier","src":"32114:3:53"},"nativeSrc":"32114:20:53","nodeType":"YulFunctionCall","src":"32114:20:53"}],"functionName":{"name":"and","nativeSrc":"32092:3:53","nodeType":"YulIdentifier","src":"32092:3:53"},"nativeSrc":"32092:43:53","nodeType":"YulFunctionCall","src":"32092:43:53"}],"functionName":{"name":"mstore","nativeSrc":"32072:6:53","nodeType":"YulIdentifier","src":"32072:6:53"},"nativeSrc":"32072:64:53","nodeType":"YulFunctionCall","src":"32072:64:53"},"nativeSrc":"32072:64:53","nodeType":"YulExpressionStatement","src":"32072:64:53"},{"nativeSrc":"32145:27:53","nodeType":"YulVariableDeclaration","src":"32145:27:53","value":{"arguments":[{"name":"value2","nativeSrc":"32165:6:53","nodeType":"YulIdentifier","src":"32165:6:53"}],"functionName":{"name":"mload","nativeSrc":"32159:5:53","nodeType":"YulIdentifier","src":"32159:5:53"},"nativeSrc":"32159:13:53","nodeType":"YulFunctionCall","src":"32159:13:53"},"variables":[{"name":"length","nativeSrc":"32149:6:53","nodeType":"YulTypedName","src":"32149:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nativeSrc":"32220:6:53","nodeType":"YulIdentifier","src":"32220:6:53"},{"kind":"number","nativeSrc":"32228:4:53","nodeType":"YulLiteral","src":"32228:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32216:3:53","nodeType":"YulIdentifier","src":"32216:3:53"},"nativeSrc":"32216:17:53","nodeType":"YulFunctionCall","src":"32216:17:53"},{"arguments":[{"name":"pos","nativeSrc":"32239:3:53","nodeType":"YulIdentifier","src":"32239:3:53"},{"kind":"number","nativeSrc":"32244:2:53","nodeType":"YulLiteral","src":"32244:2:53","type":"","value":"12"}],"functionName":{"name":"add","nativeSrc":"32235:3:53","nodeType":"YulIdentifier","src":"32235:3:53"},"nativeSrc":"32235:12:53","nodeType":"YulFunctionCall","src":"32235:12:53"},{"name":"length","nativeSrc":"32249:6:53","nodeType":"YulIdentifier","src":"32249:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"32181:34:53","nodeType":"YulIdentifier","src":"32181:34:53"},"nativeSrc":"32181:75:53","nodeType":"YulFunctionCall","src":"32181:75:53"},"nativeSrc":"32181:75:53","nodeType":"YulExpressionStatement","src":"32181:75:53"},{"nativeSrc":"32265:32:53","nodeType":"YulAssignment","src":"32265:32:53","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32280:3:53","nodeType":"YulIdentifier","src":"32280:3:53"},{"name":"length","nativeSrc":"32285:6:53","nodeType":"YulIdentifier","src":"32285:6:53"}],"functionName":{"name":"add","nativeSrc":"32276:3:53","nodeType":"YulIdentifier","src":"32276:3:53"},"nativeSrc":"32276:16:53","nodeType":"YulFunctionCall","src":"32276:16:53"},{"kind":"number","nativeSrc":"32294:2:53","nodeType":"YulLiteral","src":"32294:2:53","type":"","value":"12"}],"functionName":{"name":"add","nativeSrc":"32272:3:53","nodeType":"YulIdentifier","src":"32272:3:53"},"nativeSrc":"32272:25:53","nodeType":"YulFunctionCall","src":"32272:25:53"},"variableNames":[{"name":"end","nativeSrc":"32265:3:53","nodeType":"YulIdentifier","src":"32265:3:53"}]}]},"name":"abi_encode_tuple_packed_t_uint64_t_uint32_t_bytes_memory_ptr__to_t_uint64_t_uint32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"31800:503:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31949:3:53","nodeType":"YulTypedName","src":"31949:3:53","type":""},{"name":"value2","nativeSrc":"31954:6:53","nodeType":"YulTypedName","src":"31954:6:53","type":""},{"name":"value1","nativeSrc":"31962:6:53","nodeType":"YulTypedName","src":"31962:6:53","type":""},{"name":"value0","nativeSrc":"31970:6:53","nodeType":"YulTypedName","src":"31970:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31981:3:53","nodeType":"YulTypedName","src":"31981:3:53","type":""}],"src":"31800:503:53"},{"body":{"nativeSrc":"32455:100:53","nodeType":"YulBlock","src":"32455:100:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"32472:3:53","nodeType":"YulIdentifier","src":"32472:3:53"},{"name":"value0","nativeSrc":"32477:6:53","nodeType":"YulIdentifier","src":"32477:6:53"}],"functionName":{"name":"mstore","nativeSrc":"32465:6:53","nodeType":"YulIdentifier","src":"32465:6:53"},"nativeSrc":"32465:19:53","nodeType":"YulFunctionCall","src":"32465:19:53"},"nativeSrc":"32465:19:53","nodeType":"YulExpressionStatement","src":"32465:19:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32504:3:53","nodeType":"YulIdentifier","src":"32504:3:53"},{"kind":"number","nativeSrc":"32509:2:53","nodeType":"YulLiteral","src":"32509:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32500:3:53","nodeType":"YulIdentifier","src":"32500:3:53"},"nativeSrc":"32500:12:53","nodeType":"YulFunctionCall","src":"32500:12:53"},{"name":"value1","nativeSrc":"32514:6:53","nodeType":"YulIdentifier","src":"32514:6:53"}],"functionName":{"name":"mstore","nativeSrc":"32493:6:53","nodeType":"YulIdentifier","src":"32493:6:53"},"nativeSrc":"32493:28:53","nodeType":"YulFunctionCall","src":"32493:28:53"},"nativeSrc":"32493:28:53","nodeType":"YulExpressionStatement","src":"32493:28:53"},{"nativeSrc":"32530:19:53","nodeType":"YulAssignment","src":"32530:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"32541:3:53","nodeType":"YulIdentifier","src":"32541:3:53"},{"kind":"number","nativeSrc":"32546:2:53","nodeType":"YulLiteral","src":"32546:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32537:3:53","nodeType":"YulIdentifier","src":"32537:3:53"},"nativeSrc":"32537:12:53","nodeType":"YulFunctionCall","src":"32537:12:53"},"variableNames":[{"name":"end","nativeSrc":"32530:3:53","nodeType":"YulIdentifier","src":"32530:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes32_t_uint256__to_t_bytes32_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"32308:247:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"32423:3:53","nodeType":"YulTypedName","src":"32423:3:53","type":""},{"name":"value1","nativeSrc":"32428:6:53","nodeType":"YulTypedName","src":"32428:6:53","type":""},{"name":"value0","nativeSrc":"32436:6:53","nodeType":"YulTypedName","src":"32436:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"32447:3:53","nodeType":"YulTypedName","src":"32447:3:53","type":""}],"src":"32308:247:53"},{"body":{"nativeSrc":"32781:268:53","nodeType":"YulBlock","src":"32781:268:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"32798:3:53","nodeType":"YulIdentifier","src":"32798:3:53"},{"name":"value0","nativeSrc":"32803:6:53","nodeType":"YulIdentifier","src":"32803:6:53"}],"functionName":{"name":"mstore","nativeSrc":"32791:6:53","nodeType":"YulIdentifier","src":"32791:6:53"},"nativeSrc":"32791:19:53","nodeType":"YulFunctionCall","src":"32791:19:53"},"nativeSrc":"32791:19:53","nodeType":"YulExpressionStatement","src":"32791:19:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32830:3:53","nodeType":"YulIdentifier","src":"32830:3:53"},{"kind":"number","nativeSrc":"32835:2:53","nodeType":"YulLiteral","src":"32835:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32826:3:53","nodeType":"YulIdentifier","src":"32826:3:53"},"nativeSrc":"32826:12:53","nodeType":"YulFunctionCall","src":"32826:12:53"},{"name":"value1","nativeSrc":"32840:6:53","nodeType":"YulIdentifier","src":"32840:6:53"}],"functionName":{"name":"mstore","nativeSrc":"32819:6:53","nodeType":"YulIdentifier","src":"32819:6:53"},"nativeSrc":"32819:28:53","nodeType":"YulFunctionCall","src":"32819:28:53"},"nativeSrc":"32819:28:53","nodeType":"YulExpressionStatement","src":"32819:28:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32867:3:53","nodeType":"YulIdentifier","src":"32867:3:53"},{"kind":"number","nativeSrc":"32872:2:53","nodeType":"YulLiteral","src":"32872:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32863:3:53","nodeType":"YulIdentifier","src":"32863:3:53"},"nativeSrc":"32863:12:53","nodeType":"YulFunctionCall","src":"32863:12:53"},{"name":"value2","nativeSrc":"32877:6:53","nodeType":"YulIdentifier","src":"32877:6:53"}],"functionName":{"name":"mstore","nativeSrc":"32856:6:53","nodeType":"YulIdentifier","src":"32856:6:53"},"nativeSrc":"32856:28:53","nodeType":"YulFunctionCall","src":"32856:28:53"},"nativeSrc":"32856:28:53","nodeType":"YulExpressionStatement","src":"32856:28:53"},{"nativeSrc":"32893:27:53","nodeType":"YulVariableDeclaration","src":"32893:27:53","value":{"arguments":[{"name":"value3","nativeSrc":"32913:6:53","nodeType":"YulIdentifier","src":"32913:6:53"}],"functionName":{"name":"mload","nativeSrc":"32907:5:53","nodeType":"YulIdentifier","src":"32907:5:53"},"nativeSrc":"32907:13:53","nodeType":"YulFunctionCall","src":"32907:13:53"},"variables":[{"name":"length","nativeSrc":"32897:6:53","nodeType":"YulTypedName","src":"32897:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"32968:6:53","nodeType":"YulIdentifier","src":"32968:6:53"},{"kind":"number","nativeSrc":"32976:2:53","nodeType":"YulLiteral","src":"32976:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32964:3:53","nodeType":"YulIdentifier","src":"32964:3:53"},"nativeSrc":"32964:15:53","nodeType":"YulFunctionCall","src":"32964:15:53"},{"arguments":[{"name":"pos","nativeSrc":"32985:3:53","nodeType":"YulIdentifier","src":"32985:3:53"},{"kind":"number","nativeSrc":"32990:2:53","nodeType":"YulLiteral","src":"32990:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32981:3:53","nodeType":"YulIdentifier","src":"32981:3:53"},"nativeSrc":"32981:12:53","nodeType":"YulFunctionCall","src":"32981:12:53"},{"name":"length","nativeSrc":"32995:6:53","nodeType":"YulIdentifier","src":"32995:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"32929:34:53","nodeType":"YulIdentifier","src":"32929:34:53"},"nativeSrc":"32929:73:53","nodeType":"YulFunctionCall","src":"32929:73:53"},"nativeSrc":"32929:73:53","nodeType":"YulExpressionStatement","src":"32929:73:53"},{"nativeSrc":"33011:32:53","nodeType":"YulAssignment","src":"33011:32:53","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"33026:3:53","nodeType":"YulIdentifier","src":"33026:3:53"},{"name":"length","nativeSrc":"33031:6:53","nodeType":"YulIdentifier","src":"33031:6:53"}],"functionName":{"name":"add","nativeSrc":"33022:3:53","nodeType":"YulIdentifier","src":"33022:3:53"},"nativeSrc":"33022:16:53","nodeType":"YulFunctionCall","src":"33022:16:53"},{"kind":"number","nativeSrc":"33040:2:53","nodeType":"YulLiteral","src":"33040:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33018:3:53","nodeType":"YulIdentifier","src":"33018:3:53"},"nativeSrc":"33018:25:53","nodeType":"YulFunctionCall","src":"33018:25:53"},"variableNames":[{"name":"end","nativeSrc":"33011:3:53","nodeType":"YulIdentifier","src":"33011:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"32560:489:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"32733:3:53","nodeType":"YulTypedName","src":"32733:3:53","type":""},{"name":"value3","nativeSrc":"32738:6:53","nodeType":"YulTypedName","src":"32738:6:53","type":""},{"name":"value2","nativeSrc":"32746:6:53","nodeType":"YulTypedName","src":"32746:6:53","type":""},{"name":"value1","nativeSrc":"32754:6:53","nodeType":"YulTypedName","src":"32754:6:53","type":""},{"name":"value0","nativeSrc":"32762:6:53","nodeType":"YulTypedName","src":"32762:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"32773:3:53","nodeType":"YulTypedName","src":"32773:3:53","type":""}],"src":"32560:489:53"},{"body":{"nativeSrc":"33135:170:53","nodeType":"YulBlock","src":"33135:170:53","statements":[{"body":{"nativeSrc":"33181:16:53","nodeType":"YulBlock","src":"33181:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33190:1:53","nodeType":"YulLiteral","src":"33190:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"33193:1:53","nodeType":"YulLiteral","src":"33193:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33183:6:53","nodeType":"YulIdentifier","src":"33183:6:53"},"nativeSrc":"33183:12:53","nodeType":"YulFunctionCall","src":"33183:12:53"},"nativeSrc":"33183:12:53","nodeType":"YulExpressionStatement","src":"33183:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33156:7:53","nodeType":"YulIdentifier","src":"33156:7:53"},{"name":"headStart","nativeSrc":"33165:9:53","nodeType":"YulIdentifier","src":"33165:9:53"}],"functionName":{"name":"sub","nativeSrc":"33152:3:53","nodeType":"YulIdentifier","src":"33152:3:53"},"nativeSrc":"33152:23:53","nodeType":"YulFunctionCall","src":"33152:23:53"},{"kind":"number","nativeSrc":"33177:2:53","nodeType":"YulLiteral","src":"33177:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"33148:3:53","nodeType":"YulIdentifier","src":"33148:3:53"},"nativeSrc":"33148:32:53","nodeType":"YulFunctionCall","src":"33148:32:53"},"nativeSrc":"33145:52:53","nodeType":"YulIf","src":"33145:52:53"},{"nativeSrc":"33206:29:53","nodeType":"YulVariableDeclaration","src":"33206:29:53","value":{"arguments":[{"name":"headStart","nativeSrc":"33225:9:53","nodeType":"YulIdentifier","src":"33225:9:53"}],"functionName":{"name":"mload","nativeSrc":"33219:5:53","nodeType":"YulIdentifier","src":"33219:5:53"},"nativeSrc":"33219:16:53","nodeType":"YulFunctionCall","src":"33219:16:53"},"variables":[{"name":"value","nativeSrc":"33210:5:53","nodeType":"YulTypedName","src":"33210:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"33269:5:53","nodeType":"YulIdentifier","src":"33269:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"33244:24:53","nodeType":"YulIdentifier","src":"33244:24:53"},"nativeSrc":"33244:31:53","nodeType":"YulFunctionCall","src":"33244:31:53"},"nativeSrc":"33244:31:53","nodeType":"YulExpressionStatement","src":"33244:31:53"},{"nativeSrc":"33284:15:53","nodeType":"YulAssignment","src":"33284:15:53","value":{"name":"value","nativeSrc":"33294:5:53","nodeType":"YulIdentifier","src":"33294:5:53"},"variableNames":[{"name":"value0","nativeSrc":"33284:6:53","nodeType":"YulIdentifier","src":"33284:6:53"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"33054:251:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33101:9:53","nodeType":"YulTypedName","src":"33101:9:53","type":""},{"name":"dataEnd","nativeSrc":"33112:7:53","nodeType":"YulTypedName","src":"33112:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"33124:6:53","nodeType":"YulTypedName","src":"33124:6:53","type":""}],"src":"33054:251:53"},{"body":{"nativeSrc":"33439:145:53","nodeType":"YulBlock","src":"33439:145:53","statements":[{"nativeSrc":"33449:26:53","nodeType":"YulAssignment","src":"33449:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"33461:9:53","nodeType":"YulIdentifier","src":"33461:9:53"},{"kind":"number","nativeSrc":"33472:2:53","nodeType":"YulLiteral","src":"33472:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33457:3:53","nodeType":"YulIdentifier","src":"33457:3:53"},"nativeSrc":"33457:18:53","nodeType":"YulFunctionCall","src":"33457:18:53"},"variableNames":[{"name":"tail","nativeSrc":"33449:4:53","nodeType":"YulIdentifier","src":"33449:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33491:9:53","nodeType":"YulIdentifier","src":"33491:9:53"},{"arguments":[{"name":"value0","nativeSrc":"33506:6:53","nodeType":"YulIdentifier","src":"33506:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33522:3:53","nodeType":"YulLiteral","src":"33522:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"33527:1:53","nodeType":"YulLiteral","src":"33527:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"33518:3:53","nodeType":"YulIdentifier","src":"33518:3:53"},"nativeSrc":"33518:11:53","nodeType":"YulFunctionCall","src":"33518:11:53"},{"kind":"number","nativeSrc":"33531:1:53","nodeType":"YulLiteral","src":"33531:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"33514:3:53","nodeType":"YulIdentifier","src":"33514:3:53"},"nativeSrc":"33514:19:53","nodeType":"YulFunctionCall","src":"33514:19:53"}],"functionName":{"name":"and","nativeSrc":"33502:3:53","nodeType":"YulIdentifier","src":"33502:3:53"},"nativeSrc":"33502:32:53","nodeType":"YulFunctionCall","src":"33502:32:53"}],"functionName":{"name":"mstore","nativeSrc":"33484:6:53","nodeType":"YulIdentifier","src":"33484:6:53"},"nativeSrc":"33484:51:53","nodeType":"YulFunctionCall","src":"33484:51:53"},"nativeSrc":"33484:51:53","nodeType":"YulExpressionStatement","src":"33484:51:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33555:9:53","nodeType":"YulIdentifier","src":"33555:9:53"},{"kind":"number","nativeSrc":"33566:2:53","nodeType":"YulLiteral","src":"33566:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33551:3:53","nodeType":"YulIdentifier","src":"33551:3:53"},"nativeSrc":"33551:18:53","nodeType":"YulFunctionCall","src":"33551:18:53"},{"name":"value1","nativeSrc":"33571:6:53","nodeType":"YulIdentifier","src":"33571:6:53"}],"functionName":{"name":"mstore","nativeSrc":"33544:6:53","nodeType":"YulIdentifier","src":"33544:6:53"},"nativeSrc":"33544:34:53","nodeType":"YulFunctionCall","src":"33544:34:53"},"nativeSrc":"33544:34:53","nodeType":"YulExpressionStatement","src":"33544:34:53"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"33310:274:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33400:9:53","nodeType":"YulTypedName","src":"33400:9:53","type":""},{"name":"value1","nativeSrc":"33411:6:53","nodeType":"YulTypedName","src":"33411:6:53","type":""},{"name":"value0","nativeSrc":"33419:6:53","nodeType":"YulTypedName","src":"33419:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33430:4:53","nodeType":"YulTypedName","src":"33430:4:53","type":""}],"src":"33310:274:53"},{"body":{"nativeSrc":"33746:218:53","nodeType":"YulBlock","src":"33746:218:53","statements":[{"nativeSrc":"33756:26:53","nodeType":"YulAssignment","src":"33756:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"33768:9:53","nodeType":"YulIdentifier","src":"33768:9:53"},{"kind":"number","nativeSrc":"33779:2:53","nodeType":"YulLiteral","src":"33779:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33764:3:53","nodeType":"YulIdentifier","src":"33764:3:53"},"nativeSrc":"33764:18:53","nodeType":"YulFunctionCall","src":"33764:18:53"},"variableNames":[{"name":"tail","nativeSrc":"33756:4:53","nodeType":"YulIdentifier","src":"33756:4:53"}]},{"nativeSrc":"33791:29:53","nodeType":"YulVariableDeclaration","src":"33791:29:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33809:3:53","nodeType":"YulLiteral","src":"33809:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"33814:1:53","nodeType":"YulLiteral","src":"33814:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"33805:3:53","nodeType":"YulIdentifier","src":"33805:3:53"},"nativeSrc":"33805:11:53","nodeType":"YulFunctionCall","src":"33805:11:53"},{"kind":"number","nativeSrc":"33818:1:53","nodeType":"YulLiteral","src":"33818:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"33801:3:53","nodeType":"YulIdentifier","src":"33801:3:53"},"nativeSrc":"33801:19:53","nodeType":"YulFunctionCall","src":"33801:19:53"},"variables":[{"name":"_1","nativeSrc":"33795:2:53","nodeType":"YulTypedName","src":"33795:2:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33836:9:53","nodeType":"YulIdentifier","src":"33836:9:53"},{"arguments":[{"name":"value0","nativeSrc":"33851:6:53","nodeType":"YulIdentifier","src":"33851:6:53"},{"name":"_1","nativeSrc":"33859:2:53","nodeType":"YulIdentifier","src":"33859:2:53"}],"functionName":{"name":"and","nativeSrc":"33847:3:53","nodeType":"YulIdentifier","src":"33847:3:53"},"nativeSrc":"33847:15:53","nodeType":"YulFunctionCall","src":"33847:15:53"}],"functionName":{"name":"mstore","nativeSrc":"33829:6:53","nodeType":"YulIdentifier","src":"33829:6:53"},"nativeSrc":"33829:34:53","nodeType":"YulFunctionCall","src":"33829:34:53"},"nativeSrc":"33829:34:53","nodeType":"YulExpressionStatement","src":"33829:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33883:9:53","nodeType":"YulIdentifier","src":"33883:9:53"},{"kind":"number","nativeSrc":"33894:2:53","nodeType":"YulLiteral","src":"33894:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33879:3:53","nodeType":"YulIdentifier","src":"33879:3:53"},"nativeSrc":"33879:18:53","nodeType":"YulFunctionCall","src":"33879:18:53"},{"arguments":[{"name":"value1","nativeSrc":"33903:6:53","nodeType":"YulIdentifier","src":"33903:6:53"},{"name":"_1","nativeSrc":"33911:2:53","nodeType":"YulIdentifier","src":"33911:2:53"}],"functionName":{"name":"and","nativeSrc":"33899:3:53","nodeType":"YulIdentifier","src":"33899:3:53"},"nativeSrc":"33899:15:53","nodeType":"YulFunctionCall","src":"33899:15:53"}],"functionName":{"name":"mstore","nativeSrc":"33872:6:53","nodeType":"YulIdentifier","src":"33872:6:53"},"nativeSrc":"33872:43:53","nodeType":"YulFunctionCall","src":"33872:43:53"},"nativeSrc":"33872:43:53","nodeType":"YulExpressionStatement","src":"33872:43:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33935:9:53","nodeType":"YulIdentifier","src":"33935:9:53"},{"kind":"number","nativeSrc":"33946:2:53","nodeType":"YulLiteral","src":"33946:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33931:3:53","nodeType":"YulIdentifier","src":"33931:3:53"},"nativeSrc":"33931:18:53","nodeType":"YulFunctionCall","src":"33931:18:53"},{"name":"value2","nativeSrc":"33951:6:53","nodeType":"YulIdentifier","src":"33951:6:53"}],"functionName":{"name":"mstore","nativeSrc":"33924:6:53","nodeType":"YulIdentifier","src":"33924:6:53"},"nativeSrc":"33924:34:53","nodeType":"YulFunctionCall","src":"33924:34:53"},"nativeSrc":"33924:34:53","nodeType":"YulExpressionStatement","src":"33924:34:53"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"33589:375:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33699:9:53","nodeType":"YulTypedName","src":"33699:9:53","type":""},{"name":"value2","nativeSrc":"33710:6:53","nodeType":"YulTypedName","src":"33710:6:53","type":""},{"name":"value1","nativeSrc":"33718:6:53","nodeType":"YulTypedName","src":"33718:6:53","type":""},{"name":"value0","nativeSrc":"33726:6:53","nodeType":"YulTypedName","src":"33726:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33737:4:53","nodeType":"YulTypedName","src":"33737:4:53","type":""}],"src":"33589:375:53"},{"body":{"nativeSrc":"34106:150:53","nodeType":"YulBlock","src":"34106:150:53","statements":[{"nativeSrc":"34116:27:53","nodeType":"YulVariableDeclaration","src":"34116:27:53","value":{"arguments":[{"name":"value0","nativeSrc":"34136:6:53","nodeType":"YulIdentifier","src":"34136:6:53"}],"functionName":{"name":"mload","nativeSrc":"34130:5:53","nodeType":"YulIdentifier","src":"34130:5:53"},"nativeSrc":"34130:13:53","nodeType":"YulFunctionCall","src":"34130:13:53"},"variables":[{"name":"length","nativeSrc":"34120:6:53","nodeType":"YulTypedName","src":"34120:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"34191:6:53","nodeType":"YulIdentifier","src":"34191:6:53"},{"kind":"number","nativeSrc":"34199:4:53","nodeType":"YulLiteral","src":"34199:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34187:3:53","nodeType":"YulIdentifier","src":"34187:3:53"},"nativeSrc":"34187:17:53","nodeType":"YulFunctionCall","src":"34187:17:53"},{"name":"pos","nativeSrc":"34206:3:53","nodeType":"YulIdentifier","src":"34206:3:53"},{"name":"length","nativeSrc":"34211:6:53","nodeType":"YulIdentifier","src":"34211:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"34152:34:53","nodeType":"YulIdentifier","src":"34152:34:53"},"nativeSrc":"34152:66:53","nodeType":"YulFunctionCall","src":"34152:66:53"},"nativeSrc":"34152:66:53","nodeType":"YulExpressionStatement","src":"34152:66:53"},{"nativeSrc":"34227:23:53","nodeType":"YulAssignment","src":"34227:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"34238:3:53","nodeType":"YulIdentifier","src":"34238:3:53"},{"name":"length","nativeSrc":"34243:6:53","nodeType":"YulIdentifier","src":"34243:6:53"}],"functionName":{"name":"add","nativeSrc":"34234:3:53","nodeType":"YulIdentifier","src":"34234:3:53"},"nativeSrc":"34234:16:53","nodeType":"YulFunctionCall","src":"34234:16:53"},"variableNames":[{"name":"end","nativeSrc":"34227:3:53","nodeType":"YulIdentifier","src":"34227:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"33969:287:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"34082:3:53","nodeType":"YulTypedName","src":"34082:3:53","type":""},{"name":"value0","nativeSrc":"34087:6:53","nodeType":"YulTypedName","src":"34087:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"34098:3:53","nodeType":"YulTypedName","src":"34098:3:53","type":""}],"src":"33969:287:53"}]},"contents":"{\n { }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_struct_Origin_calldata(offset, end) -> value\n {\n if slt(sub(end, offset), 96) { revert(0, 0) }\n value := offset\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n value0 := abi_decode_struct_Origin_calldata(headStart, dataEnd)\n value1 := calldataload(add(headStart, 96))\n let offset := calldataload(add(headStart, 128))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let value := calldataload(add(headStart, 160))\n validator_revert_address(value)\n value4 := value\n let offset_1 := calldataload(add(headStart, 192))\n if gt(offset_1, _1) { revert(0, 0) }\n let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value5 := value5_1\n value6 := value6_1\n }\n function abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := 0xffffffffffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_decode_struct_SendParam_calldata(offset, end) -> value\n {\n if slt(sub(end, offset), 192) { revert(0, 0) }\n value := offset\n }\n function abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_struct$_MessagingFee_$2169_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2\n {\n let _1 := sub(dataEnd, headStart)\n if slt(_1, 128) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_SendParam_calldata(add(headStart, offset), dataEnd)\n if slt(add(_1, not(31)), 64) { revert(0, 0) }\n value1 := add(headStart, 32)\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value2 := value\n }\n function abi_encode_struct_MessagingFee(value, pos)\n {\n mstore(pos, mload(value))\n mstore(add(pos, 0x20), mload(add(value, 0x20)))\n }\n function abi_encode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr__to_t_struct$_MessagingReceipt_$2164_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, mload(value0))\n mstore(add(headStart, 0x20), and(mload(add(value0, 0x20)), 0xffffffffffffffff))\n let memberValue0 := mload(add(value0, 0x40))\n abi_encode_struct_MessagingFee(memberValue0, add(headStart, 0x40))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_uint32(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint32t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint32(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint32t_uint16(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint32(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$2338__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_struct_Origin_calldata(headStart, dataEnd)\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let value := calldataload(add(headStart, 128))\n validator_revert_address(value)\n value3 := value\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_bool(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_bytes4_t_uint64__to_t_bytes4_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory_3822() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 64)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory_3825() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x60)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_decode_tuple_t_uint32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint32(headStart)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_uint32t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint32(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_array$_t_struct$_InboundPacket_$2010_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_SendParam_calldata(add(headStart, offset), dataEnd)\n let value := calldataload(add(headStart, 32))\n validator_revert_bool(value)\n value1 := value\n }\n function abi_encode_tuple_t_struct$_MessagingFee_$2169_memory_ptr__to_t_struct$_MessagingFee_$2169_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n abi_encode_struct_MessagingFee(value0, headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_struct_Origin_calldata(headStart, dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xffffffff))\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := allocate_memory_3822()\n mstore(value, calldataload(headStart))\n mstore(add(value, 32), calldataload(add(headStart, 32)))\n value0 := value\n }\n function abi_encode_tuple_t_uint32_t_uint256__to_t_uint32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xffffffff))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, _1))\n }\n function convert_array_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr(value, length) -> converted\n {\n let _1 := 0xffffffffffffffff\n if gt(length, _1) { panic_error_0x41() }\n let _2 := shl(5, length)\n let _3 := 0x20\n let dst := allocate_memory(add(_2, _3))\n let dst_1 := dst\n mstore(dst, length)\n dst := add(dst, _3)\n let srcEnd := add(value, _2)\n if gt(srcEnd, calldatasize()) { revert(0, 0) }\n let src := value\n for { } lt(src, srcEnd) { src := add(src, _3) }\n {\n let innerOffset := calldataload(src)\n if gt(innerOffset, _1)\n {\n let _4 := 0\n revert(_4, _4)\n }\n let _5 := add(value, innerOffset)\n if slt(sub(calldatasize(), _5), 0x60)\n {\n let _6 := 0\n revert(_6, _6)\n }\n let value_1 := allocate_memory_3825()\n mstore(value_1, abi_decode_uint32(_5))\n mstore(add(value_1, _3), abi_decode_uint16(add(_5, _3)))\n let _7 := 64\n let offset := calldataload(add(_5, _7))\n if gt(offset, _1)\n {\n let _8 := 0\n revert(_8, _8)\n }\n mstore(add(value_1, _7), abi_decode_bytes(add(_5, offset), calldatasize()))\n mstore(dst, value_1)\n dst := add(dst, _3)\n }\n converted := dst_1\n }\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n {\n if gt(startIndex, endIndex) { revert(0, 0) }\n if gt(endIndex, length) { revert(0, 0) }\n offsetOut := add(offset, startIndex)\n lengthOut := sub(endIndex, startIndex)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr_slice__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n calldatacopy(end_1, value1, value2)\n let _1 := add(end_1, value2)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes_calldata(value0, value1, add(headStart, 32))\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function access_calldata_tail_t_struct$_InboundPacket_$2010_calldata_ptr(base_ref, ptr_to_tail) -> addr\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(318)))) { revert(0, 0) }\n addr := add(base_ref, rel_offset_of_tail)\n }\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function validator_revert_uint64(value)\n {\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_encode_tuple_t_struct$_Origin_$2176_calldata_ptr_t_bytes32_t_bytes_calldata_ptr_t_address_t_bytes_calldata_ptr__to_t_struct$_Origin_$2176_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(abi_decode_uint32(value0), 0xffffffff))\n mstore(add(headStart, 0x20), calldataload(add(value0, 0x20)))\n let value := calldataload(add(value0, 0x40))\n validator_revert_uint64(value)\n mstore(add(headStart, 0x40), and(value, 0xffffffffffffffff))\n mstore(add(headStart, 96), value1)\n mstore(add(headStart, 128), 224)\n let tail_1 := abi_encode_bytes_calldata(value2, value3, add(headStart, 224))\n mstore(add(headStart, 160), and(value4, sub(shl(160, 1), 1)))\n mstore(add(headStart, 192), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value5, value6, tail_1)\n }\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffff))\n }\n function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint64(value)\n value0 := value\n }\n function abi_encode_tuple_t_address_t_bytes32_t_rational_0_by_1_t_bytes_memory_ptr__to_t_address_t_bytes32_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, 0xffff))\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n let tail_1 := abi_encode_string(value0, add(headStart, 64))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_encode_tuple_t_struct$_MessagingParams_$2156_memory_ptr_t_address__to_t_struct$_MessagingParams_$2156_memory_ptr_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n mstore(add(headStart, 64), and(mload(value0), 0xffffffff))\n mstore(add(headStart, 96), mload(add(value0, 0x20)))\n let memberValue0 := mload(add(value0, 64))\n mstore(add(headStart, 128), 0xa0)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 224))\n let memberValue0_1 := mload(add(value0, 96))\n mstore(add(headStart, 0xa0), add(sub(tail_1, headStart), not(63)))\n let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n mstore(add(headStart, 192), iszero(iszero(mload(add(value0, 128)))))\n tail := tail_2\n mstore(add(headStart, 0x20), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_decode_struct_MessagingFee_fromMemory(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0x40) { revert(0, 0) }\n value := allocate_memory_3822()\n mstore(value, mload(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n }\n function abi_decode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := allocate_memory_3825()\n mstore(value, mload(headStart))\n let value_1 := mload(add(headStart, 32))\n validator_revert_uint64(value_1)\n mstore(add(value, 32), value_1)\n mstore(add(value, 64), abi_decode_struct_MessagingFee_fromMemory(add(headStart, 64), dataEnd))\n value0 := value\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string(value3, add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function array_dataslot_bytes_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_bytes_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(0, array)\n let data := keccak256(0, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := 0x20\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_bytes_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n let _2 := 64\n pos := add(headStart, 64)\n let tail_2 := add(add(headStart, shl(5, length)), 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, add(sub(tail_2, headStart), not(63)))\n let _3 := mload(srcPtr)\n let _4 := 0x60\n mstore(tail_2, and(mload(_3), 0xffffffff))\n mstore(add(tail_2, _1), and(mload(add(_3, _1)), 0xffff))\n let memberValue0 := mload(add(_3, _2))\n mstore(add(tail_2, _2), _4)\n tail_2 := abi_encode_string(memberValue0, add(tail_2, _4))\n srcPtr := add(srcPtr, _1)\n pos := add(pos, _1)\n }\n tail := tail_2\n }\n function abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_struct_MessagingFee_fromMemory(headStart, dataEnd)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes32(array, len) -> value\n {\n value := calldataload(array)\n if lt(len, 32)\n {\n value := and(value, shl(shl(3, sub(32, len)), not(0)))\n }\n }\n function abi_encode_tuple_packed_t_uint64_t_uint32_t_bytes_memory_ptr__to_t_uint64_t_uint32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, and(shl(192, value0), shl(192, 0xffffffffffffffff)))\n mstore(add(pos, 8), and(shl(224, value1), shl(224, 0xffffffff)))\n let length := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), add(pos, 12), length)\n end := add(add(pos, length), 12)\n }\n function abi_encode_tuple_packed_t_bytes32_t_uint256__to_t_bytes32_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n end := add(pos, 64)\n }\n function abi_encode_tuple_packed_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n let length := mload(value3)\n copy_memory_to_memory_with_cleanup(add(value3, 32), add(pos, 96), length)\n end := add(add(pos, length), 96)\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n}","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"535":[{"length":32,"start":1163},{"length":32,"start":2317},{"length":32,"start":4450},{"length":32,"start":5111},{"length":32,"start":5754},{"length":32,"start":7207},{"length":32,"start":8198},{"length":32,"start":8383}]},"linkReferences":{},"object":"60806040526004361061025c5760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc1461075c578063d42438851461076f578063e985e9c51461078f578063f2fde38b146107af578063fc0c546a1461040f578063ff7bd03d146107cf57600080fd5b8063bc70b354146106bc578063bd815db0146106dc578063c6414e7b146106ef578063c87b56dd1461071c578063ca5eb5e11461073c57600080fd5b8063a72f5dd811610108578063a72f5dd8146105f2578063b21a33e41461061a578063b731ea0a1461062f578063b88d4fde1461064f578063b98bd0701461066f578063bb0b6a531461068f57600080fd5b806382413eac1461056b5780638da5cb5b1461058b57806395d89b41146105a95780639f68b964146105be578063a22cb465146105d257600080fd5b80633400288b116101dd5780635e280f11116101a15780635e280f11146104795780636352211e146104ad5780636fc1b31e146104cd57806370a08231146104ed578063715018a61461051b5780637d25a05e1461053057600080fd5b80633400288b146103cf57806342842e0e146103ef57806352ae28791461040f5780635535d461146104225780635a0dfe4d1461044257600080fd5b806313137d651161022457806313137d651461033257806317442b70146103455780631f5e13341461036757806321eb730b1461038f57806323b872dd146103af57600080fd5b806301ffc9a71461026157806306fdde0314610296578063081812fc146102b8578063095ea7b3146102f0578063111ecdad14610312575b600080fd5b34801561026d57600080fd5b5061028161027c366004612509565b6107ef565b60405190151581526020015b60405180910390f35b3480156102a257600080fd5b506102ab610841565b60405161028d9190612576565b3480156102c457600080fd5b506102d86102d3366004612589565b6108d3565b6040516001600160a01b03909116815260200161028d565b3480156102fc57600080fd5b5061031061030b3660046125b7565b6108fc565b005b34801561031e57600080fd5b506004546102d8906001600160a01b031681565b610310610340366004612643565b61090b565b34801561035157600080fd5b506040805160018152600260208201520161028d565b34801561037357600080fd5b5061037c600181565b60405161ffff909116815260200161028d565b6103a261039d3660046126f4565b6109cb565b60405161028d9190612761565b3480156103bb57600080fd5b506103106103ca3660046127a3565b610aa6565b3480156103db57600080fd5b506103106103ea3660046127fd565b610b31565b3480156103fb57600080fd5b5061031061040a3660046127a3565b610b43565b34801561041b57600080fd5b50306102d8565b34801561042e57600080fd5b506102ab61043d36600461282b565b610b63565b34801561044e57600080fd5b5061028161045d3660046127fd565b63ffffffff919091166000908152600160205260409020541490565b34801561048557600080fd5b506102d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b957600080fd5b506102d86104c8366004612589565b610c08565b3480156104d957600080fd5b506103106104e836600461285e565b610c13565b3480156104f957600080fd5b5061050d61050836600461285e565b610c70565b60405190815260200161028d565b34801561052757600080fd5b50610310610cb8565b34801561053c57600080fd5b5061055361054b3660046127fd565b600092915050565b6040516001600160401b03909116815260200161028d565b34801561057757600080fd5b5061028161058636600461287b565b610ccc565b34801561059757600080fd5b506000546001600160a01b03166102d8565b3480156105b557600080fd5b506102ab610ce1565b3480156105ca57600080fd5b506000610281565b3480156105de57600080fd5b506103106105ed3660046128ef565b610cf0565b3480156105fe57600080fd5b50604080516311f0c6d360e11b8152600160208201520161028d565b34801561062657600080fd5b5061037c600281565b34801561063b57600080fd5b506002546102d8906001600160a01b031681565b34801561065b57600080fd5b5061031061066a366004612a35565b610cfb565b34801561067b57600080fd5b5061031061068a366004612ae4565b610d12565b34801561069b57600080fd5b5061050d6106aa366004612b25565b60016020526000908152604090205481565b3480156106c857600080fd5b506102ab6106d7366004612b40565b610d2c565b6103106106ea366004612ae4565b610ed4565b3480156106fb57600080fd5b5061070f61070a366004612ba0565b61105e565b60405161028d9190612be6565b34801561072857600080fd5b506102ab610737366004612589565b6110c6565b34801561074857600080fd5b5061031061075736600461285e565b61113b565b61031061076a366004612643565b6111c1565b34801561077b57600080fd5b5061031061078a36600461285e565b6111f0565b34801561079b57600080fd5b506102816107aa366004612bfd565b611246565b3480156107bb57600080fd5b506103106107ca36600461285e565b611274565b3480156107db57600080fd5b506102816107ea366004612c2b565b6112b2565b60006001600160e01b031982166380ac58cd60e01b148061082057506001600160e01b03198216635b5e139f60e01b145b8061083b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461085090612c47565b80601f016020809104026020016040519081016040528092919081815260200182805461087c90612c47565b80156108c95780601f1061089e576101008083540402835291602001916108c9565b820191906000526020600020905b8154815290600101906020018083116108ac57829003601f168201915b5050505050905090565b60006108de826112e8565b506000828152600960205260409020546001600160a01b031661083b565b610907828233611321565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461095b576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061097590610970908a612b25565b61132e565b146109b3576109876020880188612b25565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610952565b6109c28787878787878761136a565b50505050505050565b6109d36124ac565b60208401356109f557604051631e4ec46b60e01b815260040160405180910390fd5b610a10336040860135610a0b6020880188612b25565b6114c9565b600080610a1c86611529565b9092509050610a48610a316020880188612b25565b8383610a42368a90038a018a612c7b565b88611647565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610a7d60208a018a612b25565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610ad057604051633250574960e11b815260006004820152602401610952565b6000610add838333611752565b9050836001600160a01b0316816001600160a01b031614610b2b576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610952565b50505050565b610b3961184b565b6109078282611878565b610b5e83838360405180602001604052806000815250610cfb565b505050565b600360209081526000928352604080842090915290825290208054610b8790612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb390612c47565b8015610c005780601f10610bd557610100808354040283529160200191610c00565b820191906000526020600020905b815481529060010190602001808311610be357829003601f168201915b505050505081565b600061083b826112e8565b610c1b61184b565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610c9c576040516322718ad960e21b815260006004820152602401610952565b506001600160a01b031660009081526008602052604090205490565b610cc061184b565b610cca60006118cd565b565b6001600160a01b03811630145b949350505050565b60606006805461085090612c47565b61090733838361191d565b610d06848484610aa6565b610b2b848484846119bc565b610d1a61184b565b610907610d278284612cad565b611ade565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d6090612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8c90612c47565b8015610dd95780601f10610dae57610100808354040283529160200191610dd9565b820191906000526020600020905b815481529060010190602001808311610dbc57829003601f168201915b505050505090508051600003610e295783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610cd99350505050565b6000839003610e39579050610cd9565b60028310610eb757610e8084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611be592505050565b80610e8e8460028188612d82565b604051602001610ea093929190612dac565b604051602081830303815290604052915050610cd9565b8383604051639a6d49cd60e01b8152600401610952929190612dfd565b60005b81811015610fdd5736838383818110610ef257610ef2612e11565b9050602002810190610f049190612e27565b9050610f37610f166020830183612b25565b602083013563ffffffff919091166000908152600160205260409020541490565b610f415750610fd5565b3063d045a0dc60c08301358360a0810135610f60610100830183612e48565b610f71610100890160e08a0161285e565b610f7f6101208a018a612e48565b6040518963ffffffff1660e01b8152600401610fa19796959493929190612ea3565b6000604051808303818588803b158015610fba57600080fd5b505af1158015610fce573d6000803e3d6000fd5b5050505050505b600101610ed7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa15801561101c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110449190810190612f29565b604051638351eea760e01b81526004016109529190612576565b6040805180820190915260008082526020820152602083013561109457604051631e4ec46b60e01b815260040160405180910390fd5b6000806110a085611529565b90925090506110bd6110b56020870187612b25565b838387611c11565b95945050505050565b60606110d1826112e8565b5060006110e960408051602081019091526000815290565b905060008151116111095760405180602001604052806000815250611134565b8061111384611ce9565b604051602001611124929190612f96565b6040516020818303038152906040525b9392505050565b61114361184b565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b5050505050565b3330146111e15760405163029a949d60e31b815260040160405180910390fd5b6109c2878787878787876109b3565b6111f861184b565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b61127c61184b565b6001600160a01b0381166112a657604051631e4fbdf760e01b815260006004820152602401610952565b6112af816118cd565b50565b60006020820180359060019083906112ca9086612b25565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061083b57604051637e27328960e01b815260048101849052602401610952565b610b5e8383836001611d7b565b63ffffffff81166000908152600160205260408120548061083b5760405163f6ff4fb760e01b815263ffffffff84166004820152602401610952565b600061137c6113798787611e81565b90565b9050600061138a8787611e99565b90506113a3828261139e60208d018d612b25565b611eb6565b60408611156114675760006113dd6113c160608c0160408d01612fc5565b6113ce60208d018d612b25565b6113d88b8b611ec0565b611f0b565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114339086908d906000908790600401612fe2565b600060405180830381600087803b15801561144d57600080fd5b505af1158015611461573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114a060208d018d612b25565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6114d282610c08565b6001600160a01b0316836001600160a01b03161461152057826114f483610c08565b604051634342715b60e11b81526001600160a01b03928316600482015291166024820152604401610952565b610b5e82611f3a565b6060806000611582602085013560408601356115486080880188612e48565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f7592505050565b9093509050600081611595576001611598565b60025b90506115b86115aa6020870187612b25565b826106d76060890189612e48565b6004549093506001600160a01b031615611640576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb916115fd918891889101613013565b602060405180830381865afa15801561161a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163e9190613038565b505b5050915091565b61164f6124ac565b600061165e8460000151611fda565b602085015190915015611678576116788460200151612002565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116c88c61132e565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611704929190613055565b60806040518083038185885af1158015611722573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061174791906130fe565b979650505050505050565b6000828152600760205260408120546001600160a01b039081169083161561177f5761177f8184866120e4565b6001600160a01b038116156117bd5761179c600085600080611d7b565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b038516156117ec576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cca5760405163118cdaa760e01b8152336004820152602401610952565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661194f57604051630b61174360e31b81526001600160a01b0383166004820152602401610952565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b2b57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906119fe903390889087908790600401613148565b6020604051808303816000875af1925050508015611a39575060408051601f3d908101601f19168201909252611a369181019061317b565b60015b611aa2573d808015611a67576040519150601f19603f3d011682016040523d82523d6000602084013e611a6c565b606091505b508051600003611a9a57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ba57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b60005b8151811015611bb557611b10828281518110611aff57611aff612e11565b602002602001015160400151611be5565b818181518110611b2257611b22612e11565b60200260200101516040015160036000848481518110611b4457611b44612e11565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611b7e57611b7e612e11565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611bac91906131e8565b50600101611ae1565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c6591906132a7565b600281015161ffff81166003146109075781604051639a6d49cd60e01b81526004016109529190612576565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611c748961132e565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611ca9929190613055565b6040805180830381865afa158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bd9190613332565b60606000611cf683612148565b60010190506000816001600160401b03811115611d1557611d15612928565b6040519080825280601f01601f191660200182016040528015611d3f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611d4957509392505050565b8080611d8f57506001600160a01b03821615155b15611e51576000611d9f846112e8565b90506001600160a01b03831615801590611dcb5750826001600160a01b0316816001600160a01b031614155b8015611dde5750611ddc8184611246565b155b15611e075760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610952565b8115611e4f5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611e906020828486612d82565b6111349161334e565b6000611ea9604060208486612d82565b8101906111349190612589565b610b5e8383612220565b6060611ecf8260408186612d82565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611f229392919061336c565b60405160208183030381529060405290509392505050565b6000611f496000836000611752565b90506001600160a01b03811661090757604051637e27328960e01b815260048101839052602401610952565b8051606090151580611fa9576040805160208101879052908101859052606001604051602081830303815290604052611fd0565b84843385604051602001611fc094939291906133b6565b6040516020818303038152906040525b9150935093915050565b6000813414611ffe576040516304fb820960e51b8152346004820152602401610952565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612062573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208691906133ea565b90506001600160a01b0381166120af576040516329b99a9560e11b815260040160405180910390fd5b6109076001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612285565b6120ef8383836122df565b610b5e576001600160a01b03831661211d57604051637e27328960e01b815260048101829052602401610952565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610952565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106121875772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106121b3576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106121d157662386f26fc10000830492506010015b6305f5e10083106121e9576305f5e100830492506008015b61271083106121fd57612710830492506004015b6064831061220f576064830492506002015b600a831061083b5760010192915050565b6001600160a01b03821661224a57604051633250574960e11b815260006004820152602401610952565b600061225883836000611752565b90506001600160a01b03811615610b5e576040516339e3563760e11b815260006004820152602401610952565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b2b908590612342565b60006001600160a01b03831615801590610cd95750826001600160a01b0316846001600160a01b0316148061231957506123198484611246565b80610cd95750506000908152600960205260409020546001600160a01b03908116911614919050565b60006123576001600160a01b038416836123a5565b9050805160001415801561237c57508080602001905181019061237a9190613038565b155b15610b5e57604051635274afe760e01b81526001600160a01b0384166004820152602401610952565b60606111348383600084600080856001600160a01b031684866040516123cb9190613407565b60006040518083038185875af1925050503d8060008114612408576040519150601f19603f3d011682016040523d82523d6000602084013e61240d565b606091505b509150915061241d868383612427565b9695505050505050565b60608261243c5761243782612483565b611134565b815115801561245357506001600160a01b0384163b155b1561247c57604051639996b31560e01b81526001600160a01b0385166004820152602401610952565b5080611134565b8051156124935780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b031681526020016124ee604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112af57600080fd5b60006020828403121561251b57600080fd5b8135611134816124f3565b60005b83811015612541578181015183820152602001612529565b50506000910152565b60008151808452612562816020860160208601612526565b601f01601f19169290920160200192915050565b602081526000611134602083018461254a565b60006020828403121561259b57600080fd5b5035919050565b6001600160a01b03811681146112af57600080fd5b600080604083850312156125ca57600080fd5b82356125d5816125a2565b946020939093013593505050565b6000606082840312156125f557600080fd5b50919050565b60008083601f84011261260d57600080fd5b5081356001600160401b0381111561262457600080fd5b60208301915083602082850101111561263c57600080fd5b9250929050565b600080600080600080600060e0888a03121561265e57600080fd5b61266889896125e3565b96506060880135955060808801356001600160401b038082111561268b57600080fd5b6126978b838c016125fb565b909750955060a08a013591506126ac826125a2565b90935060c089013590808211156126c257600080fd5b506126cf8a828b016125fb565b989b979a50959850939692959293505050565b600060c082840312156125f557600080fd5b6000806000838503608081121561270a57600080fd5b84356001600160401b0381111561272057600080fd5b61272c878288016126e2565b9450506040601f198201121561274157600080fd5b506020840191506060840135612756816125a2565b809150509250925092565b6000608082019050825182526001600160401b036020840151166020830152604083015161279c604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127b857600080fd5b83356127c3816125a2565b925060208401356127d3816125a2565b929592945050506040919091013590565b803563ffffffff811681146127f857600080fd5b919050565b6000806040838503121561281057600080fd5b6125d5836127e4565b803561ffff811681146127f857600080fd5b6000806040838503121561283e57600080fd5b612847836127e4565b915061285560208401612819565b90509250929050565b60006020828403121561287057600080fd5b8135611134816125a2565b60008060008060a0858703121561289157600080fd5b61289b86866125e3565b935060608501356001600160401b038111156128b657600080fd5b6128c2878288016125fb565b90945092505060808501356128d6816125a2565b939692955090935050565b80151581146112af57600080fd5b6000806040838503121561290257600080fd5b823561290d816125a2565b9150602083013561291d816128e1565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561296057612960612928565b60405290565b604051606081016001600160401b038111828210171561296057612960612928565b604051601f8201601f191681016001600160401b03811182821017156129b0576129b0612928565b604052919050565b60006001600160401b038211156129d1576129d1612928565b50601f01601f191660200190565b600082601f8301126129f057600080fd5b8135612a036129fe826129b8565b612988565b818152846020838601011115612a1857600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a4b57600080fd5b8435612a56816125a2565b93506020850135612a66816125a2565b92506040850135915060608501356001600160401b03811115612a8857600080fd5b612a94878288016129df565b91505092959194509250565b60008083601f840112612ab257600080fd5b5081356001600160401b03811115612ac957600080fd5b6020830191508360208260051b850101111561263c57600080fd5b60008060208385031215612af757600080fd5b82356001600160401b03811115612b0d57600080fd5b612b1985828601612aa0565b90969095509350505050565b600060208284031215612b3757600080fd5b611134826127e4565b60008060008060608587031215612b5657600080fd5b612b5f856127e4565b9350612b6d60208601612819565b925060408501356001600160401b03811115612b8857600080fd5b612b94878288016125fb565b95989497509550505050565b60008060408385031215612bb357600080fd5b82356001600160401b03811115612bc957600080fd5b612bd5858286016126e2565b925050602083013561291d816128e1565b81518152602080830151908201526040810161083b565b60008060408385031215612c1057600080fd5b8235612c1b816125a2565b9150602083013561291d816125a2565b600060608284031215612c3d57600080fd5b61113483836125e3565b600181811c90821680612c5b57607f821691505b6020821081036125f557634e487b7160e01b600052602260045260246000fd5b600060408284031215612c8d57600080fd5b612c9561293e565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cc757612cc7612928565b8360051b6020612cd8818301612988565b868152918501918181019036841115612cf057600080fd5b865b84811015612d7657803586811115612d0a5760008081fd5b88016060368290031215612d1e5760008081fd5b612d26612966565b612d2f826127e4565b8152612d3c868301612819565b8682015260408083013589811115612d545760008081fd5b612d60368286016129df565b9183019190915250845250918301918301612cf2565b50979650505050505050565b60008085851115612d9257600080fd5b83861115612d9f57600080fd5b5050820193919092039150565b60008451612dbe818460208901612526565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610cd9602083018486612dd4565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e3e57600080fd5b9190910192915050565b6000808335601e19843603018112612e5f57600080fd5b8301803591506001600160401b03821115612e7957600080fd5b60200191503681900382131561263c57600080fd5b6001600160401b03811681146112af57600080fd5b63ffffffff612eb1896127e4565b1681526020880135602082015260006040890135612ece81612e8e565b6001600160401b03811660408401525087606083015260e06080830152612ef960e083018789612dd4565b6001600160a01b03861660a084015282810360c0840152612f1b818587612dd4565b9a9950505050505050505050565b600060208284031215612f3b57600080fd5b81516001600160401b03811115612f5157600080fd5b8201601f81018413612f6257600080fd5b8051612f706129fe826129b8565b818152856020838501011115612f8557600080fd5b6110bd826020830160208601612526565b60008351612fa8818460208801612526565b835190830190612fbc818360208801612526565b01949350505050565b600060208284031215612fd757600080fd5b813561113481612e8e565b60018060a01b038516815283602082015261ffff8316604082015260806060820152600061241d608083018461254a565b604081526000613026604083018561254a565b82810360208401526110bd818561254a565b60006020828403121561304a57600080fd5b8151611134816128e1565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261308b60e084018261254a565b90506060850151603f198483030160a08501526130a8828261254a565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156130e057600080fd5b6130e861293e565b9050815181526020820151602082015292915050565b60006080828403121561311057600080fd5b613118612966565b82518152602083015161312a81612e8e565b602082015261313c84604085016130ce565b60408201529392505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061241d9083018461254a565b60006020828403121561318d57600080fd5b8151611134816124f3565b601f821115610b5e576000816000526020600020601f850160051c810160208610156131c15750805b601f850160051c820191505b818110156131e0578281556001016131cd565b505050505050565b81516001600160401b0381111561320157613201612928565b6132158161320f8454612c47565b84613198565b602080601f83116001811461324a57600084156132325750858301515b600019600386901b1c1916600185901b1785556131e0565b600085815260208120601f198616915b828110156132795788860151825594840194600190910190840161325a565b50858210156132975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561332457888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133108186018361254a565b9689019694505050908601906001016132d0565b509098975050505050505050565b60006040828403121561334457600080fd5b61113483836130ce565b8035602083101561083b57600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133a781600c850160208701612526565b91909101600c01949350505050565b848152836020820152826040820152600082516133da816060850160208701612526565b9190910160600195945050505050565b6000602082840312156133fc57600080fd5b8151611134816125a2565b60008251612e3e81846020870161252656fea2646970667358221220a5cab9b7a86e6c2a579014b67c58bb1f440ee40e66fb506c0dab889c19925efb64736f6c63430008160033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x25C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x82413EAC GT PUSH2 0x144 JUMPI DUP1 PUSH4 0xBC70B354 GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xD045A0DC GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xD045A0DC EQ PUSH2 0x75C JUMPI DUP1 PUSH4 0xD4243885 EQ PUSH2 0x76F JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x78F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7AF JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x40F JUMPI DUP1 PUSH4 0xFF7BD03D EQ PUSH2 0x7CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBC70B354 EQ PUSH2 0x6BC JUMPI DUP1 PUSH4 0xBD815DB0 EQ PUSH2 0x6DC JUMPI DUP1 PUSH4 0xC6414E7B EQ PUSH2 0x6EF JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x71C JUMPI DUP1 PUSH4 0xCA5EB5E1 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA72F5DD8 GT PUSH2 0x108 JUMPI DUP1 PUSH4 0xA72F5DD8 EQ PUSH2 0x5F2 JUMPI DUP1 PUSH4 0xB21A33E4 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xB731EA0A EQ PUSH2 0x62F JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0xB98BD070 EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0xBB0B6A53 EQ PUSH2 0x68F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x82413EAC EQ PUSH2 0x56B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0x9F68B964 EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x5D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3400288B GT PUSH2 0x1DD JUMPI DUP1 PUSH4 0x5E280F11 GT PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x5E280F11 EQ PUSH2 0x479 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x4AD JUMPI DUP1 PUSH4 0x6FC1B31E EQ PUSH2 0x4CD JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4ED JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x51B JUMPI DUP1 PUSH4 0x7D25A05E EQ PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3400288B EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0x52AE2879 EQ PUSH2 0x40F JUMPI DUP1 PUSH4 0x5535D461 EQ PUSH2 0x422 JUMPI DUP1 PUSH4 0x5A0DFE4D EQ PUSH2 0x442 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13137D65 GT PUSH2 0x224 JUMPI DUP1 PUSH4 0x13137D65 EQ PUSH2 0x332 JUMPI DUP1 PUSH4 0x17442B70 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x1F5E1334 EQ PUSH2 0x367 JUMPI DUP1 PUSH4 0x21EB730B EQ PUSH2 0x38F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x261 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x296 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0x111ECDAD EQ PUSH2 0x312 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x281 PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x2509 JUMP JUMPDEST PUSH2 0x7EF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AB PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x2576 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D8 PUSH2 0x2D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x28D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x30B CALLDATASIZE PUSH1 0x4 PUSH2 0x25B7 JUMP JUMPDEST PUSH2 0x8FC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x2D8 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x310 PUSH2 0x340 CALLDATASIZE PUSH1 0x4 PUSH2 0x2643 JUMP JUMPDEST PUSH2 0x90B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP3 ADD MSTORE ADD PUSH2 0x28D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x28D JUMP JUMPDEST PUSH2 0x3A2 PUSH2 0x39D CALLDATASIZE PUSH1 0x4 PUSH2 0x26F4 JUMP JUMPDEST PUSH2 0x9CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x2761 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x3CA CALLDATASIZE PUSH1 0x4 PUSH2 0x27A3 JUMP JUMPDEST PUSH2 0xAA6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x27FD JUMP JUMPDEST PUSH2 0xB31 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x40A CALLDATASIZE PUSH1 0x4 PUSH2 0x27A3 JUMP JUMPDEST PUSH2 0xB43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP ADDRESS PUSH2 0x2D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AB PUSH2 0x43D CALLDATASIZE PUSH1 0x4 PUSH2 0x282B JUMP JUMPDEST PUSH2 0xB63 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x281 PUSH2 0x45D CALLDATASIZE PUSH1 0x4 PUSH2 0x27FD JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D8 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D8 PUSH2 0x4C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0xC08 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x4E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x285E JUMP JUMPDEST PUSH2 0xC13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50D PUSH2 0x508 CALLDATASIZE PUSH1 0x4 PUSH2 0x285E JUMP JUMPDEST PUSH2 0xC70 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x28D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0xCB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x553 PUSH2 0x54B CALLDATASIZE PUSH1 0x4 PUSH2 0x27FD JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x28D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x577 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x281 PUSH2 0x586 CALLDATASIZE PUSH1 0x4 PUSH2 0x287B JUMP JUMPDEST PUSH2 0xCCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2D8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AB PUSH2 0xCE1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x281 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x5ED CALLDATASIZE PUSH1 0x4 PUSH2 0x28EF JUMP JUMPDEST PUSH2 0xCF0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH4 0x11F0C6D3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP3 ADD MSTORE ADD PUSH2 0x28D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH1 0x2 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x2D8 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x66A CALLDATASIZE PUSH1 0x4 PUSH2 0x2A35 JUMP JUMPDEST PUSH2 0xCFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x68A CALLDATASIZE PUSH1 0x4 PUSH2 0x2AE4 JUMP JUMPDEST PUSH2 0xD12 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50D PUSH2 0x6AA CALLDATASIZE PUSH1 0x4 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AB PUSH2 0x6D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B40 JUMP JUMPDEST PUSH2 0xD2C JUMP JUMPDEST PUSH2 0x310 PUSH2 0x6EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2AE4 JUMP JUMPDEST PUSH2 0xED4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x70F PUSH2 0x70A CALLDATASIZE PUSH1 0x4 PUSH2 0x2BA0 JUMP JUMPDEST PUSH2 0x105E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x2BE6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2AB PUSH2 0x737 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0x10C6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x748 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x757 CALLDATASIZE PUSH1 0x4 PUSH2 0x285E JUMP JUMPDEST PUSH2 0x113B JUMP JUMPDEST PUSH2 0x310 PUSH2 0x76A CALLDATASIZE PUSH1 0x4 PUSH2 0x2643 JUMP JUMPDEST PUSH2 0x11C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x78A CALLDATASIZE PUSH1 0x4 PUSH2 0x285E JUMP JUMPDEST PUSH2 0x11F0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x281 PUSH2 0x7AA CALLDATASIZE PUSH1 0x4 PUSH2 0x2BFD JUMP JUMPDEST PUSH2 0x1246 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH2 0x7CA CALLDATASIZE PUSH1 0x4 PUSH2 0x285E JUMP JUMPDEST PUSH2 0x1274 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x281 PUSH2 0x7EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2C2B JUMP JUMPDEST PUSH2 0x12B2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x820 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x83B JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD PUSH2 0x850 SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x87C SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8C9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x89E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8C9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8AC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8DE DUP3 PUSH2 0x12E8 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x83B JUMP JUMPDEST PUSH2 0x907 DUP3 DUP3 CALLER PUSH2 0x1321 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x95B JUMPI PUSH1 0x40 MLOAD PUSH4 0x91AC5E4F PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP8 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x975 SWAP1 PUSH2 0x970 SWAP1 DUP11 PUSH2 0x2B25 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST EQ PUSH2 0x9B3 JUMPI PUSH2 0x987 PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x309AFAF3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x952 JUMP JUMPDEST PUSH2 0x9C2 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x136A JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9D3 PUSH2 0x24AC JUMP JUMPDEST PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4EC46B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA10 CALLER PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0xA0B PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B25 JUMP JUMPDEST PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA1C DUP7 PUSH2 0x1529 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0xA48 PUSH2 0xA31 PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B25 JUMP JUMPDEST DUP4 DUP4 PUSH2 0xA42 CALLDATASIZE DUP11 SWAP1 SUB DUP11 ADD DUP11 PUSH2 0x2C7B JUMP JUMPDEST DUP9 PUSH2 0x1647 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP4 POP CALLER SWAP1 PUSH32 0x986156872B2EE0022B9585231DBBFDE457F87F8A16B6C45E1A81C54C4AD8351F PUSH2 0xA7D PUSH1 0x20 DUP11 ADD DUP11 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE DUP1 DUP12 ADD CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xAD0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xADD DUP4 DUP4 CALLER PUSH2 0x1752 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB2B JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x952 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xB39 PUSH2 0x184B JUMP JUMPDEST PUSH2 0x907 DUP3 DUP3 PUSH2 0x1878 JUMP JUMPDEST PUSH2 0xB5E DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xCFB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xB87 SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xBB3 SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC00 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBD5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC00 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xBE3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x83B DUP3 PUSH2 0x12E8 JUMP JUMPDEST PUSH2 0xC1B PUSH2 0x184B JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xF0BE4F1E87349231D80C36B33F9E8639658EEAF474014DEE15A3E6A4D4414197 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC9C JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCC0 PUSH2 0x184B JUMP JUMPDEST PUSH2 0xCCA PUSH1 0x0 PUSH2 0x18CD JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ADDRESS EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 DUP1 SLOAD PUSH2 0x850 SWAP1 PUSH2 0x2C47 JUMP JUMPDEST PUSH2 0x907 CALLER DUP4 DUP4 PUSH2 0x191D JUMP JUMPDEST PUSH2 0xD06 DUP5 DUP5 DUP5 PUSH2 0xAA6 JUMP JUMPDEST PUSH2 0xB2B DUP5 DUP5 DUP5 DUP5 PUSH2 0x19BC JUMP JUMPDEST PUSH2 0xD1A PUSH2 0x184B JUMP JUMPDEST PUSH2 0x907 PUSH2 0xD27 DUP3 DUP5 PUSH2 0x2CAD JUMP JUMPDEST PUSH2 0x1ADE JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH2 0xFFFF DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0xD60 SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD8C SWAP1 PUSH2 0x2C47 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDD9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDAE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDD9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xDBC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xE29 JUMPI DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP5 POP PUSH2 0xCD9 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SWAP1 SUB PUSH2 0xE39 JUMPI SWAP1 POP PUSH2 0xCD9 JUMP JUMPDEST PUSH1 0x2 DUP4 LT PUSH2 0xEB7 JUMPI PUSH2 0xE80 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1BE5 SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0xE8E DUP5 PUSH1 0x2 DUP2 DUP9 PUSH2 0x2D82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xEA0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP PUSH2 0xCD9 JUMP JUMPDEST DUP4 DUP4 PUSH1 0x40 MLOAD PUSH4 0x9A6D49CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x952 SWAP3 SWAP2 SWAP1 PUSH2 0x2DFD JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xFDD JUMPI CALLDATASIZE DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0xEF2 JUMPI PUSH2 0xEF2 PUSH2 0x2E11 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xF04 SWAP2 SWAP1 PUSH2 0x2E27 JUMP JUMPDEST SWAP1 POP PUSH2 0xF37 PUSH2 0xF16 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST PUSH2 0xF41 JUMPI POP PUSH2 0xFD5 JUMP JUMPDEST ADDRESS PUSH4 0xD045A0DC PUSH1 0xC0 DUP4 ADD CALLDATALOAD DUP4 PUSH1 0xA0 DUP2 ADD CALLDATALOAD PUSH2 0xF60 PUSH2 0x100 DUP4 ADD DUP4 PUSH2 0x2E48 JUMP JUMPDEST PUSH2 0xF71 PUSH2 0x100 DUP10 ADD PUSH1 0xE0 DUP11 ADD PUSH2 0x285E JUMP JUMPDEST PUSH2 0xF7F PUSH2 0x120 DUP11 ADD DUP11 PUSH2 0x2E48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP10 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFA1 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2EA3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFCE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0xED7 JUMP JUMPDEST POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8E9E7099 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x101C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1044 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8351EEA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x952 SWAP2 SWAP1 PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1094 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4EC46B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10A0 DUP6 PUSH2 0x1529 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x10BD PUSH2 0x10B5 PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x2B25 JUMP JUMPDEST DUP4 DUP4 DUP8 PUSH2 0x1C11 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x10D1 DUP3 PUSH2 0x12E8 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x10E9 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1134 JUMP JUMPDEST DUP1 PUSH2 0x1113 DUP5 PUSH2 0x1CE9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1124 SWAP3 SWAP2 SWAP1 PUSH2 0x2F96 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1143 PUSH2 0x184B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCA5EB5E1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xCA5EB5E1 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x11E1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x29A949D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9C2 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x9B3 JUMP JUMPDEST PUSH2 0x11F8 PUSH2 0x184B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xD48D879CEF83A1C0BDDA516F27B13DDB1B3F8BBAC1C9E1511BB2A659C2427760 SWAP1 PUSH1 0x20 ADD PUSH2 0xC65 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x127C PUSH2 0x184B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH2 0x12AF DUP2 PUSH2 0x18CD JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH2 0x12CA SWAP1 DUP7 PUSH2 0x2B25 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x83B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH2 0xB5E DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1D7B JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x83B JUMPI PUSH1 0x40 MLOAD PUSH4 0xF6FF4FB7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x137C PUSH2 0x1379 DUP8 DUP8 PUSH2 0x1E81 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x138A DUP8 DUP8 PUSH2 0x1E99 JUMP JUMPDEST SWAP1 POP PUSH2 0x13A3 DUP3 DUP3 PUSH2 0x139E PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B25 JUMP JUMPDEST PUSH2 0x1EB6 JUMP JUMPDEST PUSH1 0x40 DUP7 GT ISZERO PUSH2 0x1467 JUMPI PUSH1 0x0 PUSH2 0x13DD PUSH2 0x13C1 PUSH1 0x60 DUP13 ADD PUSH1 0x40 DUP14 ADD PUSH2 0x2FC5 JUMP JUMPDEST PUSH2 0x13CE PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B25 JUMP JUMPDEST PUSH2 0x13D8 DUP12 DUP12 PUSH2 0x1EC0 JUMP JUMPDEST PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3E5AC809 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7CB59012 SWAP1 PUSH2 0x1433 SWAP1 DUP7 SWAP1 DUP14 SWAP1 PUSH1 0x0 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2FE2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x144D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1461 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP9 PUSH32 0x7883FA30EA56937810E36990B0BBB8D629D0CF59F68BAF8431FF657CEBE7EEF5 PUSH2 0x14A0 PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B25 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP7 SWAP1 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x14D2 DUP3 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1520 JUMPI DUP3 PUSH2 0x14F4 DUP4 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4342715B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x952 JUMP JUMPDEST PUSH2 0xB5E DUP3 PUSH2 0x1F3A JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 PUSH2 0x1582 PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x1548 PUSH1 0x80 DUP9 ADD DUP9 PUSH2 0x2E48 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1F75 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 SWAP4 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x1595 JUMPI PUSH1 0x1 PUSH2 0x1598 JUMP JUMPDEST PUSH1 0x2 JUMPDEST SWAP1 POP PUSH2 0x15B8 PUSH2 0x15AA PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x2B25 JUMP JUMPDEST DUP3 PUSH2 0x6D7 PUSH1 0x60 DUP10 ADD DUP10 PUSH2 0x2E48 JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1640 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x43A78EB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x43A78EB SWAP2 PUSH2 0x15FD SWAP2 DUP9 SWAP2 DUP9 SWAP2 ADD PUSH2 0x3013 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x161A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x163E SWAP2 SWAP1 PUSH2 0x3038 JUMP JUMPDEST POP JUMPDEST POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH2 0x164F PUSH2 0x24AC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x165E DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x1FDA JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1678 JUMPI PUSH2 0x1678 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2002 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2637A450 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP12 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16C8 DUP13 PUSH2 0x132E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP10 PUSH1 0x20 ADD MLOAD GT ISZERO ISZERO DUP2 MSTORE POP DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1704 SWAP3 SWAP2 SWAP1 PUSH2 0x3055 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1722 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1747 SWAP2 SWAP1 PUSH2 0x30FE JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x177F JUMPI PUSH2 0x177F DUP2 DUP5 DUP7 PUSH2 0x20E4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x17BD JUMPI PUSH2 0x179C PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1D7B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x17EC JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xCCA JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x238399D427B947898EDB290F5FF0F9109849B1C3BA196A42E35F00C50A54B98B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x194F JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0xB2B JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x19FE SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x3148 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1A39 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1A36 SWAP2 DUP2 ADD SWAP1 PUSH2 0x317B JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1AA2 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1A67 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1A6C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1A9A JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x11BA JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1BB5 JUMPI PUSH2 0x1B10 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1AFF JUMPI PUSH2 0x1AFF PUSH2 0x2E11 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH2 0x1BE5 JUMP JUMPDEST DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1B22 JUMPI PUSH2 0x1B22 PUSH2 0x2E11 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x3 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B44 JUMPI PUSH2 0x1B44 PUSH2 0x2E11 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1B7E JUMPI PUSH2 0x1B7E PUSH2 0x2E11 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x1BAC SWAP2 SWAP1 PUSH2 0x31E8 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1AE1 JUMP JUMPDEST POP PUSH32 0xBE4864A8E820971C0247F5992E2DA559595F7BF076A21CB5928D443D2A13B674 DUP2 PUSH1 0x40 MLOAD PUSH2 0xC65 SWAP2 SWAP1 PUSH2 0x32A7 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD MLOAD PUSH2 0xFFFF DUP2 AND PUSH1 0x3 EQ PUSH2 0x907 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH4 0x9A6D49CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x952 SWAP2 SWAP1 PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDDC28C58 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C74 DUP10 PUSH2 0x132E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 ISZERO ISZERO DUP2 MSTORE POP ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CA9 SWAP3 SWAP2 SWAP1 PUSH2 0x3055 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10BD SWAP2 SWAP1 PUSH2 0x3332 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1CF6 DUP4 PUSH2 0x2148 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1D15 JUMPI PUSH2 0x1D15 PUSH2 0x2928 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1D3F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x1D49 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH2 0x1D8F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x1E51 JUMPI PUSH1 0x0 PUSH2 0x1D9F DUP5 PUSH2 0x12E8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1DCB JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1DDE JUMPI POP PUSH2 0x1DDC DUP2 DUP5 PUSH2 0x1246 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1E07 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1E4F JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E90 PUSH1 0x20 DUP3 DUP5 DUP7 PUSH2 0x2D82 JUMP JUMPDEST PUSH2 0x1134 SWAP2 PUSH2 0x334E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EA9 PUSH1 0x40 PUSH1 0x20 DUP5 DUP7 PUSH2 0x2D82 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x1134 SWAP2 SWAP1 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0xB5E DUP4 DUP4 PUSH2 0x2220 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1ECF DUP3 PUSH1 0x40 DUP2 DUP7 PUSH2 0x2D82 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1F22 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x336C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F49 PUSH1 0x0 DUP4 PUSH1 0x0 PUSH2 0x1752 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x907 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 SWAP1 ISZERO ISZERO DUP1 PUSH2 0x1FA9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1FD0 JUMP JUMPDEST DUP5 DUP5 CALLER DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FC0 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLVALUE EQ PUSH2 0x1FFE JUMPI PUSH1 0x40 MLOAD PUSH4 0x4FB8209 PUSH1 0xE5 SHL DUP2 MSTORE CALLVALUE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE4FE1D94 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2062 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2086 SWAP2 SWAP1 PUSH2 0x33EA JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20AF JUMPI PUSH1 0x40 MLOAD PUSH4 0x29B99A95 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x907 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND CALLER PUSH32 0x0 DUP6 PUSH2 0x2285 JUMP JUMPDEST PUSH2 0x20EF DUP4 DUP4 DUP4 PUSH2 0x22DF JUMP JUMPDEST PUSH2 0xB5E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x211D JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x2187 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x21B3 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x21D1 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x21E9 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x21FD JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x220F JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x83B JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x224A JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2258 DUP4 DUP4 PUSH1 0x0 PUSH2 0x1752 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0xB5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0xB2B SWAP1 DUP6 SWAP1 PUSH2 0x2342 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xCD9 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x2319 JUMPI POP PUSH2 0x2319 DUP5 DUP5 PUSH2 0x1246 JUMP JUMPDEST DUP1 PUSH2 0xCD9 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2357 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP4 PUSH2 0x23A5 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO DUP1 ISZERO PUSH2 0x237C JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x237A SWAP2 SWAP1 PUSH2 0x3038 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1134 DUP4 DUP4 PUSH1 0x0 DUP5 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0x23CB SWAP2 SWAP1 PUSH2 0x3407 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2408 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x240D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x241D DUP7 DUP4 DUP4 PUSH2 0x2427 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x243C JUMPI PUSH2 0x2437 DUP3 PUSH2 0x2483 JUMP JUMPDEST PUSH2 0x1134 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x2453 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x247C JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x952 JUMP JUMPDEST POP DUP1 PUSH2 0x1134 JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x2493 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x24EE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x12AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x251B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1134 DUP2 PUSH2 0x24F3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2541 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2529 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2562 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2526 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1134 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x254A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x259B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x12AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x25D5 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x260D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x263C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x265E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2668 DUP10 DUP10 PUSH2 0x25E3 JUMP JUMPDEST SWAP7 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x268B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2697 DUP12 DUP4 DUP13 ADD PUSH2 0x25FB JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x26AC DUP3 PUSH2 0x25A2 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26CF DUP11 DUP3 DUP12 ADD PUSH2 0x25FB JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP6 SUB PUSH1 0x80 DUP2 SLT ISZERO PUSH2 0x270A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2720 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x272C DUP8 DUP3 DUP9 ADD PUSH2 0x26E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x2741 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 DUP5 ADD SWAP2 POP PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x2756 DUP2 PUSH2 0x25A2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x279C PUSH1 0x40 DUP5 ADD DUP3 DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x27B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x27C3 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x27D3 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x27F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2810 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25D5 DUP4 PUSH2 0x27E4 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x27F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x283E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2847 DUP4 PUSH2 0x27E4 JUMP JUMPDEST SWAP2 POP PUSH2 0x2855 PUSH1 0x20 DUP5 ADD PUSH2 0x2819 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1134 DUP2 PUSH2 0x25A2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x289B DUP7 DUP7 PUSH2 0x25E3 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x28B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28C2 DUP8 DUP3 DUP9 ADD PUSH2 0x25FB JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x80 DUP6 ADD CALLDATALOAD PUSH2 0x28D6 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x12AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x290D DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x291D DUP2 PUSH2 0x28E1 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2960 JUMPI PUSH2 0x2960 PUSH2 0x2928 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2960 JUMPI PUSH2 0x2960 PUSH2 0x2928 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x29B0 JUMPI PUSH2 0x29B0 PUSH2 0x2928 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x29D1 JUMPI PUSH2 0x29D1 PUSH2 0x2928 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x29F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A03 PUSH2 0x29FE DUP3 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x2988 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2A18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2A56 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2A66 DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A94 DUP8 DUP3 DUP9 ADD PUSH2 0x29DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2AB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2AC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x263C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B19 DUP6 DUP3 DUP7 ADD PUSH2 0x2AA0 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1134 DUP3 PUSH2 0x27E4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B5F DUP6 PUSH2 0x27E4 JUMP JUMPDEST SWAP4 POP PUSH2 0x2B6D PUSH1 0x20 DUP7 ADD PUSH2 0x2819 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B94 DUP8 DUP3 DUP9 ADD PUSH2 0x25FB JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2BC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2BD5 DUP6 DUP3 DUP7 ADD PUSH2 0x26E2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x291D DUP2 PUSH2 0x28E1 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0x83B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2C1B DUP2 PUSH2 0x25A2 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x291D DUP2 PUSH2 0x25A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1134 DUP4 DUP4 PUSH2 0x25E3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2C5B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x25F5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C95 PUSH2 0x293E JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP5 GT ISZERO PUSH2 0x2CC7 JUMPI PUSH2 0x2CC7 PUSH2 0x2928 JUMP JUMPDEST DUP4 PUSH1 0x5 SHL PUSH1 0x20 PUSH2 0x2CD8 DUP2 DUP4 ADD PUSH2 0x2988 JUMP JUMPDEST DUP7 DUP2 MSTORE SWAP2 DUP6 ADD SWAP2 DUP2 DUP2 ADD SWAP1 CALLDATASIZE DUP5 GT ISZERO PUSH2 0x2CF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2D76 JUMPI DUP1 CALLDATALOAD DUP7 DUP2 GT ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP9 ADD PUSH1 0x60 CALLDATASIZE DUP3 SWAP1 SUB SLT ISZERO PUSH2 0x2D1E JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2D26 PUSH2 0x2966 JUMP JUMPDEST PUSH2 0x2D2F DUP3 PUSH2 0x27E4 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x2D3C DUP7 DUP4 ADD PUSH2 0x2819 JUMP JUMPDEST DUP7 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD DUP10 DUP2 GT ISZERO PUSH2 0x2D54 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2D60 CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x29DF JUMP JUMPDEST SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2CF2 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x2D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x2D9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP5 MLOAD PUSH2 0x2DBE DUP2 DUP5 PUSH1 0x20 DUP10 ADD PUSH2 0x2526 JUMP JUMPDEST DUP3 ADD DUP4 DUP6 DUP3 CALLDATACOPY PUSH1 0x0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xCD9 PUSH1 0x20 DUP4 ADD DUP5 DUP7 PUSH2 0x2DD4 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH2 0x13E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2E3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2E5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2E79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x263C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x12AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF PUSH2 0x2EB1 DUP10 PUSH2 0x27E4 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH2 0x2ECE DUP2 PUSH2 0x2E8E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH1 0x40 DUP5 ADD MSTORE POP DUP8 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0xE0 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2EF9 PUSH1 0xE0 DUP4 ADD DUP8 DUP10 PUSH2 0x2DD4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0xA0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xC0 DUP5 ADD MSTORE PUSH2 0x2F1B DUP2 DUP6 DUP8 PUSH2 0x2DD4 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2F62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2F70 PUSH2 0x29FE DUP3 PUSH2 0x29B8 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2F85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10BD DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2526 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x2FA8 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x2526 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x2FBC DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x2526 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1134 DUP2 PUSH2 0x2E8E JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xFFFF DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x241D PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x254A JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3026 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x254A JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x10BD DUP2 DUP6 PUSH2 0x254A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x304A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1134 DUP2 PUSH2 0x28E1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP4 MLOAD AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0xA0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x308B PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x254A JUMP JUMPDEST SWAP1 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x30A8 DUP3 DUP3 PUSH2 0x254A JUMP JUMPDEST PUSH1 0x80 SWAP7 SWAP1 SWAP7 ADD MLOAD ISZERO ISZERO PUSH1 0xC0 DUP6 ADD MSTORE POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30E8 PUSH2 0x293E JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3118 PUSH2 0x2966 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x312A DUP2 PUSH2 0x2E8E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x313C DUP5 PUSH1 0x40 DUP6 ADD PUSH2 0x30CE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x241D SWAP1 DUP4 ADD DUP5 PUSH2 0x254A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x318D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1134 DUP2 PUSH2 0x24F3 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xB5E JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x31C1 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x31E0 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x31CD JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3201 JUMPI PUSH2 0x3201 PUSH2 0x2928 JUMP JUMPDEST PUSH2 0x3215 DUP2 PUSH2 0x320F DUP5 SLOAD PUSH2 0x2C47 JUMP JUMPDEST DUP5 PUSH2 0x3198 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x324A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3232 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x31E0 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3279 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x325A JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x3297 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP2 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 SWAP3 POP PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD DUP5 DUP9 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3324 JUMPI DUP9 DUP4 SUB PUSH1 0x3F NOT ADD DUP6 MSTORE DUP2 MLOAD DUP1 MLOAD PUSH4 0xFFFFFFFF AND DUP5 MSTORE DUP8 DUP2 ADD MLOAD PUSH2 0xFFFF AND DUP9 DUP6 ADD MSTORE DUP7 ADD MLOAD PUSH1 0x60 DUP8 DUP6 ADD DUP2 SWAP1 MSTORE PUSH2 0x3310 DUP2 DUP7 ADD DUP4 PUSH2 0x254A JUMP JUMPDEST SWAP7 DUP10 ADD SWAP7 SWAP5 POP POP POP SWAP1 DUP7 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x32D0 JUMP JUMPDEST POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1134 DUP4 DUP4 PUSH2 0x30CE JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x20 DUP4 LT ISZERO PUSH2 0x83B JUMPI PUSH1 0x0 NOT PUSH1 0x20 DUP5 SWAP1 SUB PUSH1 0x3 SHL SHL AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP5 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x8 DUP3 ADD MSTORE DUP2 MLOAD PUSH1 0x0 SWAP1 PUSH2 0x33A7 DUP2 PUSH1 0xC DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2526 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0xC ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x33DA DUP2 PUSH1 0x60 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2526 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0x60 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1134 DUP2 PUSH2 0x25A2 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2E3E DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2526 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xCA 0xB9 0xB7 0xA8 PUSH15 0x6C2A579014B67C58BB1F440EE40E66 0xFB POP PUSH13 0xDAB889C19925EFB64736F6C63 NUMBER STOP ADDMOD AND STOP CALLER ","sourceMap":"147:222:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1561:300:38;;;;;;;;;;-1:-1:-1;1561:300:38;;;;;:::i;:::-;;:::i;:::-;;;565:14:53;;558:22;540:41;;528:2;513:18;1561:300:38;;;;;;;;2365:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3497:154::-;;;;;;;;;;-1:-1:-1;3497:154:38;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:53;;;1679:51;;1667:2;1652:18;3497:154:38;1533:203:53;3323:113:38;;;;;;;;;;-1:-1:-1;3323:113:38;;;;;:::i;:::-;;:::i;:::-;;1705:27:30;;;;;;;;;;-1:-1:-1;1705:27:30;;;;-1:-1:-1;;;;;1705:27:30;;;4368:708:3;;;;;;:::i;:::-;;:::i;1287:235:1:-;;;;;;;;;;-1:-1:-1;1287:235:1;;;843:1:4;3968:34:53;;678:1:3;4033:2:53;4018:18;;4011:43;3904:18;1287:235:1;3761:299:53;1539:31:30;;;;;;;;;;;;1569:1;1539:31;;;;;4239:6:53;4227:19;;;4209:38;;4197:2;4182:18;1539:31:30;4065:188:53;3051:701:30;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4143:578:38:-;;;;;;;;;;-1:-1:-1;4143:578:38;;;;;:::i;:::-;;:::i;1724:108:2:-;;;;;;;;;;-1:-1:-1;1724:108:2;;;;;:::i;:::-;;:::i;4787:132:38:-;;;;;;;;;;-1:-1:-1;4787:132:38;;;;;:::i;:::-;;:::i;875:93:11:-;;;;;;;;;;-1:-1:-1;956:4:11;875:93;;538::9;;;;;;;;;;-1:-1:-1;538:93:9;;;;;:::i;:::-;;:::i;7452:132:30:-;;;;;;;;;;-1:-1:-1;7452:132:30;;;;;:::i;:::-;7557:11;;;;;7534:4;7557:11;;;:5;:11;;;;;;:20;;7452:132;446:46:2;;;;;;;;;;;;;;;2185:118:38;;;;;;;;;;-1:-1:-1;2185:118:38;;;;;:::i;:::-;;:::i;7916:163:30:-;;;;;;;;;;-1:-1:-1;7916:163:30;;;;;:::i;:::-;;:::i;1920:208:38:-;;;;;;;;;;-1:-1:-1;1920:208:38;;;;;:::i;:::-;;:::i;:::-;;;7884:25:53;;;7872:2;7857:18;1920:208:38;7738:177:53;2293:101:33;;;;;;;;;;;;;:::i;3507:128:3:-;;;;;;;;;;-1:-1:-1;3507:128:3;;;;;:::i;:::-;3596:12;3507:128;;;;;;;;-1:-1:-1;;;;;8082:31:53;;;8064:50;;8052:2;8037:18;3507:128:3;7920:200:53;2013:216:3;;;;;;;;;;-1:-1:-1;2013:216:3;;;;;:::i;:::-;;:::i;1638:85:33:-;;;;;;;;;;-1:-1:-1;1684:7:33;1710:6;-1:-1:-1;;;;;1710:6:33;1638:85;;2518:93:38;;;;;;;;;;;;;:::i;1344:94:29:-;;;;;;;;;;-1:-1:-1;1403:4:29;1344:94;;3718:144:38;;;;;;;;;;-1:-1:-1;3718:144:38;;;;;:::i;:::-;;:::i;2506:145:30:-;;;;;;;;;;-1:-1:-1;2506:145:30;;;-1:-1:-1;;;9480:52:53;;2642:1:30;9563:2:53;9548:18;;9541:59;9453:18;2506:145:30;9310:296:53;1576:43:30;;;;;;;;;;;;1618:1;1576:43;;559:23:11;;;;;;;;;;-1:-1:-1;559:23:11;;;;-1:-1:-1;;;;;559:23:11;;;4985:208:38;;;;;;;;;;-1:-1:-1;4985:208:38;;;;;:::i;:::-;;:::i;1391:156:9:-;;;;;;;;;;-1:-1:-1;1391:156:9;;;;;:::i;:::-;;:::i;569:48:2:-;;;;;;;;;;-1:-1:-1;569:48:2;;;;;:::i;:::-;;;;;;;;;;;;;;3510:981:9;;;;;;;;;;-1:-1:-1;3510:981:9;;;;;:::i;:::-;;:::i;1698:1333:11:-;;;;;;:::i;:::-;;:::i;2657:388:30:-;;;;;;;;;;-1:-1:-1;2657:388:30;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2677:255:38:-;;;;;;;;;;-1:-1:-1;2677:255:38;;;;;:::i;:::-;;:::i;3252:105:2:-;;;;;;;;;;-1:-1:-1;3252:105:2;;;;;:::i;:::-;;:::i;3679:409:11:-;;;;;;:::i;:::-;;:::i;1100:139::-;;;;;;;;;;-1:-1:-1;1100:139:11;;;;;:::i;:::-;;:::i;3928:153:38:-;;;;;;;;;;-1:-1:-1;3928:153:38;;;;;:::i;:::-;;:::i;2543:215:33:-;;;;;;;;;;-1:-1:-1;2543:215:33;;;;;:::i;:::-;;:::i;2771:149:3:-;;;;;;;;;;-1:-1:-1;2771:149:3;;;;;:::i;:::-;;:::i;1561:300:38:-;1663:4;-1:-1:-1;;;;;;1698:40:38;;-1:-1:-1;;;1698:40:38;;:104;;-1:-1:-1;;;;;;;1754:48:38;;-1:-1:-1;;;1754:48:38;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:45;;;1818:36:38;1679:175;1561:300;-1:-1:-1;;1561:300:38:o;2365:89::-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:38;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:38;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:43;3394:8:38;:35::i;:::-;3323:113;;:::o;4368:708:3:-;4681:8;-1:-1:-1;;;;;4673:31:3;4694:10;4673:31;4669:68;;4713:24;;-1:-1:-1;;;4713:24:3;;4726:10;4713:24;;;1679:51:53;1652:18;;4713:24:3;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;-1:-1:-1;;;4896:40:3;;16187:10:53;16175:23;;;4896:40:3;;;16157:42:53;4921:14:3;;;;16215:18:53;;;16208:34;16130:18;;4896:40:3;15985:263:53;4833:103:3;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;3051:701:30:-;3212:34;;:::i;:::-;3262:13;;;;3258:57;;3298:17;;-1:-1:-1;;;3298:17:30;;;;;;;;;;;3258:57;3325;3332:10;3344:18;;;;3364:17;;;;3344:10;3364:17;:::i;:::-;3325:6;:57::i;:::-;3394:20;3416;3440:31;3460:10;3440:19;:31::i;:::-;3393:78;;-1:-1:-1;3393:78:30;-1:-1:-1;3588:66:30;3596:17;;;;:10;:17;:::i;:::-;3615:7;3624;3588:66;;;;;;;3633:4;3588:66;:::i;:::-;3639:14;3588:7;:66::i;:::-;3678:15;;3575:79;;-1:-1:-1;3714:10:30;;3669:76;3695:17;;;;:10;:17;:::i;:::-;3726:18;3669:76;;16187:10:53;16175:23;;;16157:42;;3726:18:30;;;;16230:2:53;16215:18;;16208:34;16130:18;3669:76:30;;;;;;;3248:504;;3051:701;;;;;:::o;4143:578:38:-;-1:-1:-1;;;;;4237:16:38;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:38;;4306:1;4276:33;;;1679:51:53;1652:18;;4276:33:38;1533:203:53;4233:87:38;4538:21;4562:34;4570:2;4574:7;735:10:43;4562:7:38;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:38;:13;-1:-1:-1;;;;;4610:21:38;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:38;;-1:-1:-1;;;;;17132:15:53;;;4654:50:38;;;17114:34:53;17164:18;;;17157:34;;;17227:15;;17207:18;;;17200:43;17049:18;;4654:50:38;16874:375:53;4606:109:38;4223:498;4143:578;;;:::o;1724:108:2:-;1531:13:33;:11;:13::i;:::-;1804:21:2::1;1813:4;1819:5;1804:8;:21::i;4787:132:38:-:0;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;538:93:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2185:118:38:-;2248:7;2274:22;2288:7;2274:13;:22::i;7916:163:30:-;1531:13:33;:11;:13::i;:::-;7999:12:30::1;:28:::0;;-1:-1:-1;;;;;;7999:28:30::1;-1:-1:-1::0;;;;;7999:28:30;::::1;::::0;;::::1;::::0;;;8042:30:::1;::::0;1679:51:53;;;8042:30:30::1;::::0;1667:2:53;1652:18;8042:30:30::1;;;;;;;;7916:163:::0;:::o;1920:208:38:-;1983:7;-1:-1:-1;;;;;2006:19:38;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:38;;2075:1;2048:30;;;1679:51:53;1652:18;;2048:30:38;1533:203:53;2002:87:38;-1:-1:-1;;;;;;2105:16:38;;;;;:9;:16;;;;;;;1920:208::o;2293:101:33:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2013:216:3:-;-1:-1:-1;;;;;2198:24:3;;2217:4;2198:24;2013:216;;;;;;;:::o;2518:93:38:-;2565:13;2597:7;2590:14;;;;;:::i;3718:144::-;3803:52;735:10:43;3836:8:38;3846;3803:18;:52::i;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;1391:156:9:-;1531:13:33;:11;:13::i;:::-;1503:37:9::1;;1523:16:::0;;1503:37:::1;:::i;:::-;:19;:37::i;3510:981::-:0;3701:21;;;3677;3701;;;:15;:21;;;;;;;;:31;;;;;;;;;;3677:55;;3653:12;;3677:21;3701:31;3677:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:8;:15;3880:1;3861:20;3857:46;;3890:13;;3883:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:20:9;;-1:-1:-1;3883:20:9;;-1:-1:-1;;;;3883:20:9;3857:46;3988:1;3964:25;;;3960:46;;3998:8;-1:-1:-1;3991:15:9;;3960:46;4153:1;4129:25;;4125:267;;4170:34;4190:13;;4170:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4170:19:9;;-1:-1:-1;;;4170:34:9:i;:::-;4353:8;4363:17;:13;4377:1;4363:13;;:17;:::i;:::-;4340:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:48;;;;;4125:267;4470:13;;4455:29;;-1:-1:-1;;;4455:29:9;;;;;;;;;:::i;1698:1333:11:-;1799:9;1794:1037;1814:19;;;1794:1037;;;1854:29;1886:8;;1895:1;1886:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1854:43;-1:-1:-1;1980:50:11;1987:20;;;;1854:43;1987:20;:::i;:::-;2009;;;;7557:11:30;;;;;7534:4;7557:11;;;:5;:11;;;;;;:20;;7452:132;1980:50:11;1975:65;;2032:8;;;1975:65;2602:4;:22;2633:12;;;;:6;2696:11;;;;2725:14;;;;2633:6;2725:14;:::i;:::-;2757:15;;;;;;;;:::i;:::-;2790:16;;;;:6;:16;:::i;:::-;2602:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:991;1794:1037;1835:3;;1794:1037;;;;2988:10;-1:-1:-1;;;;;2978:43:11;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2978:45:11;;;;;;;;;;;;:::i;:::-;2961:63;;-1:-1:-1;;;2961:63:11;;;;;;;;:::i;2657:388:30:-;-1:-1:-1;;;;;;;;;;;;;;;;;2822:13:30;;;;2818:57;;2858:17;;-1:-1:-1;;;2858:17:30;;;;;;;;;;;2818:57;2886:20;2908;2932:31;2952:10;2932:19;:31::i;:::-;2885:78;;-1:-1:-1;2885:78:30;-1:-1:-1;2980:58:30;2987:17;;;;:10;:17;:::i;:::-;3006:7;3015;3024:13;2980:6;:58::i;:::-;2973:65;2657:388;-1:-1:-1;;;;;2657:388:30:o;2677:255:38:-;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;3250:9;;;;;;;;;-1:-1:-1;3250:9:38;;;3174:92;2823:10;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;2677:255;-1:-1:-1;;;2677:255:38:o;3252:105:2:-;1531:13:33;:11;:13::i;:::-;3319:31:2::1;::::0;-1:-1:-1;;;3319:31:2;;-1:-1:-1;;;;;1697:32:53;;;3319:31:2::1;::::0;::::1;1679:51:53::0;3319:8:2::1;:20;::::0;::::1;::::0;1652:18:53;;3319:31:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;3679:409:11:-;3958:10;3980:4;3958:27;3954:50;;3994:10;;-1:-1:-1;;;3994:10:11;;;;;;;;;;;3954:50;4014:67;4033:7;4042:5;4049:8;;4059:9;4070:10;;4014:18;:67::i;1100:139::-;1531:13:33;:11;:13::i;:::-;1175:8:11::1;:20:::0;;-1:-1:-1;;;;;;1175:20:11::1;-1:-1:-1::0;;;;;1175:20:11;::::1;::::0;;::::1;::::0;;;1210:22:::1;::::0;1679:51:53;;;1210:22:11::1;::::0;1667:2:53;1652:18;1210:22:11::1;1533:203:53::0;3928:153:38;-1:-1:-1;;;;;4039:25:38;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;2543:215:33:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:33;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:33;;2700:1:::1;2672:31;::::0;::::1;1679:51:53::0;1652:18;;2672:31:33::1;1533:203:53::0;2623:91:33::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2771:149:3:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:3;;:37;;2771:149;-1:-1:-1;;2771:149:3:o;16138:241:38:-;16201:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:38;;16263:88;;16309:31;;-1:-1:-1;;;16309:31:38;;;;;7884:25:53;;;7857:18;;16309:31:38;7738:177:53;14418:120:38;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;2718:196:2:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;-1:-1:-1;;;2874:12:2;;23623:10:53;23611:23;;2874:12:2;;;23593:42:53;23566:18;;2874:12:2;23449:192:53;5264:817:30;5577:17;5597:36;:17;:8;;:15;:17::i;:::-;2954:2:32;2824:142;5597:36:30;5577:56;;5643:15;5661:18;:8;;:16;:18::i;:::-;5643:36;-1:-1:-1;5690:43:30;5698:9;5643:36;5718:14;;;;:7;:14;:::i;:::-;5690:7;:43::i;:::-;279:2:32;-1:-1:-1;;5744:260:30;;;5785:23;5811:80;5838:13;;;;;;;;:::i;:::-;5853:14;;;;:7;:14;:::i;:::-;5869:21;:8;;:19;:21::i;:::-;5811:26;:80::i;:::-;5905:88;;-1:-1:-1;;;5905:88:30;;5785:106;;-1:-1:-1;;;;;;5905:8:30;:20;;;;:88;;5926:9;;5937:5;;5944:1;;5785:106;;5905:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:233;5744:260;-1:-1:-1;;;;;6019:55:30;;6032:5;6019:55;6039:14;;;;:7;:14;:::i;:::-;6019:55;;;16187:10:53;16175:23;;;16157:42;;16230:2;16215:18;;16208:34;;;16130:18;6019:55:30;;;;;;;5567:514;;5264:817;;;;;;;:::o;1444:228:29:-;1562:24;1577:8;1562:14;:24::i;:::-;-1:-1:-1;;;;;1553:33:29;:5;-1:-1:-1;;;;;1553:33:29;;1549:91;;1608:5;1615:24;1630:8;1615:14;:24::i;:::-;1595:45;;-1:-1:-1;;;1595:45:29;;-1:-1:-1;;;;;24610:15:53;;;1595:45:29;;;24592:34:53;24662:15;;24642:18;;;24635:43;24527:18;;1595:45:29;24380:304:53;1549:91:29;1650:15;1656:8;1650:5;:15::i;3980:773:30:-;4085:20;;4139:15;4188:80;4211:13;;;;4226:18;;;;4246:21;;;;4211:10;4246:21;:::i;:::-;4188:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4188:22:30;;-1:-1:-1;;;4188:80:30:i;:::-;4164:104;;-1:-1:-1;4164:104:30;-1:-1:-1;4278:14:30;4164:104;4295:36;;1569:1;4295:36;;;1618:1;4295:36;4278:53;-1:-1:-1;4352:67:30;4367:17;;;;:10;:17;:::i;:::-;4386:7;4395:23;;;;:10;:23;:::i;4352:67::-;4661:12;;4342:77;;-1:-1:-1;;;;;;4661:12:30;:26;4657:89;;4707:12;;;4689:57;;-1:-1:-1;;;4689:57:30;;-1:-1:-1;;;;;4707:12:30;;;;4689:39;;:57;;4729:7;;4738;;4689:57;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4657:89;4129:624;;3980:773;;;:::o;3188:766:4:-;3389:31;;:::i;:::-;3554:20;3577:26;3588:4;:14;;;3577:10;:26::i;:::-;3617:15;;;;3554:49;;-1:-1:-1;3617:19:4;3613:53;;3638:28;3650:4;:15;;;3638:11;:28::i;:::-;3755:8;-1:-1:-1;;;;;3755:13:4;;3777:12;3809:92;;;;;;;;3825:7;3809:92;;;;;;3834:25;3851:7;3834:16;:25::i;:::-;3809:92;;;;3861:8;3809:92;;;;3871:8;3809:92;;;;3899:1;3881:4;:15;;;:19;3809:92;;;;;3919:14;3755:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3677:270;3188:766;-1:-1:-1;;;;;;;3188:766:4:o;8838:795:38:-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:38;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:38;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:38;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:38;;;9157:256;-1:-1:-1;;;;;9427:16:38;;;9423:107;;-1:-1:-1;;;;;9487:13:38;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:38;-1:-1:-1;;;;;9540:21:38;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:38:o;1796:162:33:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:33;735:10:43;1855:23:33;1851:101;;1901:40;;-1:-1:-1;;;1901:40:33;;735:10:43;1901:40:33;;;1679:51:53;1652:18;;1901:40:33;1533:203:53;2286:134:2;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;16157:42:53;;;16215:18;;16208:34;;;2393:20:2;;16130:18:53;2393:20:2;;;;;;;2286:134;;:::o;2912:187:33:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:33;;;-1:-1:-1;;;;;;3020:17:33;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;15591:312:38:-;-1:-1:-1;;;;;15698:22:38;;15694:91;;15743:31;;-1:-1:-1;;;15743:31:38;;-1:-1:-1;;;;;1697:32:53;;15743:31:38;;;1679:51:53;1652:18;;15743:31:38;1533:203:53;15694:91:38;-1:-1:-1;;;;;15794:25:38;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15794:46:38;;;;;;;;;;15855:41;;540::53;;;15855::38;;513:18:53;15855:41:38;;;;;;;15591:312;;;:::o;16918:782::-;-1:-1:-1;;;;;17034:14:38;;;:18;17030:664;;17072:71;;-1:-1:-1;;;17072:71:38;;-1:-1:-1;;;;;17072:36:38;;;;;:71;;735:10:43;;17123:4:38;;17129:7;;17138:4;;17072:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17072:71:38;;;;;;;;-1:-1:-1;;17072:71:38;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:6;:13;17398:1;17381:18;17377:293;;17430:25;;-1:-1:-1;;;17430:25:38;;-1:-1:-1;;;;;1697:32:53;;17430:25:38;;;1679:51:53;1652:18;;17430:25:38;1533:203:53;17377:293:38;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;-1:-1:-1;;;;;;17190:51:38;;-1:-1:-1;;;17190:51:38;17186:130;;17272:25;;-1:-1:-1;;;17272:25:38;;-1:-1:-1;;;;;1697:32:53;;17272:25:38;;;1679:51:53;1652:18;;17272:25:38;1533:203:53;2237:514:9;2345:9;2340:354;2364:16;:23;2360:1;:27;2340:354;;;2522:48;2542:16;2559:1;2542:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2522:19;:48::i;:::-;2656:16;2673:1;2656:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:15;:40;2600:16;2617:1;2600:19;;;;;;;;:::i;:::-;;;;;;;:23;;;2584:40;;;;;;;;;;;;;;;:69;2625:16;2642:1;2625:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:69;;;;;;;;;;;;;;;:99;;;;;;:::i;:::-;-1:-1:-1;2389:3:9;;2340:354;;;;2709:35;2727:16;2709:35;;;;;;:::i;4631:264::-;4801:1;4787:16;;4781:23;4827:28;;;463:1;4827:28;4823:65;;4879:8;4864:24;;-1:-1:-1;;;4864:24:9;;;;;;;;:::i;2038:391:4:-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:4;-1:-1:-1;;;;;2259:14:4;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;637:698:44:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;-1:-1:-1;;;;;817:18:44;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:44;-1:-1:-1;794:41:44;-1:-1:-1;955:28:44;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:44;-1:-1:-1;;;1175:2:44;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:44;1010:282;1256:21;-1:-1:-1;1312:6:44;637:698;-1:-1:-1;;;637:698:44:o;14720:662:38:-;14880:9;:31;;;-1:-1:-1;;;;;;14893:18:38;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;-1:-1:-1;;;;;;15093:18:38;;;;;;:35;;;15124:4;-1:-1:-1;;;;;15115:13:38;:5;-1:-1:-1;;;;;15115:13:38;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15189:27;;-1:-1:-1;;;15189:27:38;;-1:-1:-1;;;;;1697:32:53;;15189:27:38;;;1679:51:53;1652:18;;15189:27:38;1533:203:53;15089:142:38;15249:9;15245:81;;;15303:7;15299:2;-1:-1:-1;;;;;15283:28:38;15292:5;-1:-1:-1;;;;;15283:28:38;;;;;;;;;;;15245:81;14913:423;14876:460;-1:-1:-1;;15346:24:38;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15346:29:38;-1:-1:-1;;;;;15346:29:38;;;;;;;;;;14720:662::o;1221:144:32:-;1281:20;1336:21;230:2;1281:20;1336:4;;:21;:::i;:::-;1328:30;;;:::i;1530:176::-;1591:21;1651:36;279:2;230;1651:4;;:36;:::i;:::-;1640:59;;;;;;;:::i;1678:131:29:-;1782:20;1788:3;1793:8;1782:5;:20::i;2190:153:32:-;2254:29;2314:22;:4;279:2;2314:4;;:22;:::i;:::-;2295:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2295:41:32;;2190:153;-1:-1:-1;;;;;;2190:153:32:o;675:252:28:-;832:20;891:6;899:7;908:11;874:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;864:56;;675:252;;;;;:::o;11462:227:38:-;11513:21;11537:40;11553:1;11557:7;11574:1;11537:7;:40::i;:::-;11513:64;-1:-1:-1;;;;;;11591:27:38;;11587:96;;11641:31;;-1:-1:-1;;;11641:31:38;;;;;7884:25:53;;;7857:18;;11641:31:38;7738:177:53;657:394:32;849:18;;787:20;;849:22;;;891:153;;1009:35;;;;;;32465:19:53;;;32500:12;;;32493:28;;;32537:12;;1009:35:32;;;;;;;;;;;;891:153;;;933:7;942:8;969:10;982:11;916:78;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;891:153;881:163;;657:394;;;;;;:::o;4650:191:4:-;4716:17;4762:10;4749:9;:23;4745:62;;4781:26;;-1:-1:-1;;;4781:26:4;;4797:9;4781:26;;;7884:25:53;7857:18;;4781:26:4;7738:177:53;4745:62:4;-1:-1:-1;4824:10:4;4650:191::o;5218:410::-;5371:15;5389:8;-1:-1:-1;;;;;5389:16:4;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;;;;;;5421:21:4;;5417:54;;5451:20;;-1:-1:-1;;;5451:20:4;;;;;;;;;;;5417:54;5545:76;-1:-1:-1;;;;;5545:32:4;;5578:10;5598:8;5609:11;5545:32;:76::i;7082:368:38:-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:38;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:38;;;;;7884:25:53;;;7857:18;;7298:31:38;7738:177:53;7248:186:38;7375:44;;-1:-1:-1;;;7375:44:38;;-1:-1:-1;;;;;33502:32:53;;7375:44:38;;;33484:51:53;33551:18;;;33544:34;;;33457:18;;7375:44:38;33310:274:53;12214:916:47;12267:7;;-1:-1:-1;;;12342:17:47;;12338:103;;-1:-1:-1;;;12379:17:47;;;-1:-1:-1;12424:2:47;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:47;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:47;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:47;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:47;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:47;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:47:o;9955:327:38:-;-1:-1:-1;;;;;10022:16:38;;10018:87;;10061:33;;-1:-1:-1;;;10061:33:38;;10091:1;10061:33;;;1679:51:53;1652:18;;10061:33:38;1533:203:53;10018:87:38;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;-1:-1:-1;;;;;;10184:27:38;;;10180:96;;10234:31;;-1:-1:-1;;;10234:31:38;;10262:1;10234:31;;;1679:51:53;1652:18;;10234:31:38;1533:203:53;1702:188:37;1829:53;;;-1:-1:-1;;;;;33847:15:53;;;1829:53:37;;;33829:34:53;33899:15;;33879:18;;;33872:43;33931:18;;;;33924:34;;;1829:53:37;;;;;;;;;;33764:18:53;;;;1829:53:37;;;;;;;;-1:-1:-1;;;;;1829:53:37;-1:-1:-1;;;1829:53:37;;;1802:81;;1822:5;;1802:19;:81::i;6376:272:38:-;6479:4;-1:-1:-1;;;;;6514:21:38;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:38;:5;-1:-1:-1;;;;;6552:16:38;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;;6008:7:38;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:38;;;6608:32;;;;6495:146;-1:-1:-1;6376:272:38:o;4059:629:37:-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:37;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:37;;-1:-1:-1;;;;;1697:32:53;;4631:40:37;;;1679:51:53;1652:18;;4631:40:37;1533:203:53;2705:151:42;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:42;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:42:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:42;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:42;;-1:-1:-1;;;;;1697:32:53;;5121:24:42;;;1679:51:53;1652:18;;5121:24:42;1533:203:53;5041:119:42;-1:-1:-1;5180:10:42;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:42;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:53:-;-1:-1:-1;;;;;;88:32:53;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:53;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:53;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:53:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:53;;1348:180;-1:-1:-1;1348:180:53:o;1741:131::-;-1:-1:-1;;;;;1816:31:53;;1806:42;;1796:70;;1862:1;1859;1852:12;1877:315;1945:6;1953;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2061:9;2048:23;2080:31;2105:5;2080:31;:::i;:::-;2130:5;2182:2;2167:18;;;;2154:32;;-1:-1:-1;;;1877:315:53:o;2197:154::-;2256:5;2301:2;2292:6;2287:3;2283:16;2279:25;2276:45;;;2317:1;2314;2307:12;2276:45;-1:-1:-1;2339:6:53;2197:154;-1:-1:-1;2197:154:53:o;2356:347::-;2407:8;2417:6;2471:3;2464:4;2456:6;2452:17;2448:27;2438:55;;2489:1;2486;2479:12;2438:55;-1:-1:-1;2512:20:53;;-1:-1:-1;;;;;2544:30:53;;2541:50;;;2587:1;2584;2577:12;2541:50;2624:4;2616:6;2612:17;2600:29;;2676:3;2669:4;2660:6;2652;2648:19;2644:30;2641:39;2638:59;;;2693:1;2690;2683:12;2638:59;2356:347;;;;;:::o;2708:1048::-;2851:6;2859;2867;2875;2883;2891;2899;2952:3;2940:9;2931:7;2927:23;2923:33;2920:53;;;2969:1;2966;2959:12;2920:53;2992;3037:7;3026:9;2992:53;:::i;:::-;2982:63;;3092:2;3081:9;3077:18;3064:32;3054:42;;3147:3;3136:9;3132:19;3119:33;-1:-1:-1;;;;;3212:2:53;3204:6;3201:14;3198:34;;;3228:1;3225;3218:12;3198:34;3267:58;3317:7;3308:6;3297:9;3293:22;3267:58;:::i;:::-;3344:8;;-1:-1:-1;3241:84:53;-1:-1:-1;3429:3:53;3414:19;;3401:33;;-1:-1:-1;3443:31:53;3401:33;3443:31;:::i;:::-;3493:5;;-1:-1:-1;3551:3:53;3536:19;;3523:33;;3568:16;;;3565:36;;;3597:1;3594;3587:12;3565:36;;3636:60;3688:7;3677:8;3666:9;3662:24;3636:60;:::i;:::-;2708:1048;;;;-1:-1:-1;2708:1048:53;;-1:-1:-1;2708:1048:53;;;;3610:86;;-1:-1:-1;;;2708:1048:53:o;4258:158::-;4320:5;4365:3;4356:6;4351:3;4347:16;4343:26;4340:46;;;4382:1;4379;4372:12;4421:657;4559:6;4567;4575;4619:9;4610:7;4606:23;4649:3;4645:2;4641:12;4638:32;;;4666:1;4663;4656:12;4638:32;4706:9;4693:23;-1:-1:-1;;;;;4731:6:53;4728:30;4725:50;;;4771:1;4768;4761:12;4725:50;4794:69;4855:7;4846:6;4835:9;4831:22;4794:69;:::i;:::-;4784:79;-1:-1:-1;;4897:2:53;-1:-1:-1;;4879:16:53;;4875:25;4872:45;;;4913:1;4910;4903:12;4872:45;;4951:2;4940:9;4936:18;4926:28;;5004:2;4993:9;4989:18;4976:32;5017:31;5042:5;5017:31;:::i;:::-;5067:5;5057:15;;;4421:657;;;;;:::o;5241:469::-;5401:4;5443:3;5432:9;5428:19;5420:27;;5480:6;5474:13;5463:9;5456:32;-1:-1:-1;;;;;5548:4:53;5540:6;5536:17;5530:24;5526:49;5519:4;5508:9;5504:20;5497:79;5623:4;5615:6;5611:17;5605:24;5638:66;5698:4;5687:9;5683:20;5669:12;5161;;5149:25;;5223:4;5212:16;;;5206:23;5190:14;;5183:47;5083:153;5638:66;;5241:469;;;;:::o;5715:456::-;5792:6;5800;5808;5861:2;5849:9;5840:7;5836:23;5832:32;5829:52;;;5877:1;5874;5867:12;5829:52;5916:9;5903:23;5935:31;5960:5;5935:31;:::i;:::-;5985:5;-1:-1:-1;6042:2:53;6027:18;;6014:32;6055:33;6014:32;6055:33;:::i;:::-;5715:456;;6107:7;;-1:-1:-1;;;6161:2:53;6146:18;;;;6133:32;;5715:456::o;6176:163::-;6243:20;;6303:10;6292:22;;6282:33;;6272:61;;6329:1;6326;6319:12;6272:61;6176:163;;;:::o;6344:252::-;6411:6;6419;6472:2;6460:9;6451:7;6447:23;6443:32;6440:52;;;6488:1;6485;6478:12;6440:52;6511:28;6529:9;6511:28;:::i;6601:159::-;6668:20;;6728:6;6717:18;;6707:29;;6697:57;;6750:1;6747;6740:12;6765:256;6831:6;6839;6892:2;6880:9;6871:7;6867:23;6863:32;6860:52;;;6908:1;6905;6898:12;6860:52;6931:28;6949:9;6931:28;:::i;:::-;6921:38;;6978:37;7011:2;7000:9;6996:18;6978:37;:::i;:::-;6968:47;;6765:256;;;;;:::o;7486:247::-;7545:6;7598:2;7586:9;7577:7;7573:23;7569:32;7566:52;;;7614:1;7611;7604:12;7566:52;7653:9;7640:23;7672:31;7697:5;7672:31;:::i;8125:670::-;8239:6;8247;8255;8263;8316:3;8304:9;8295:7;8291:23;8287:33;8284:53;;;8333:1;8330;8323:12;8284:53;8356;8401:7;8390:9;8356:53;:::i;:::-;8346:63;;8460:2;8449:9;8445:18;8432:32;-1:-1:-1;;;;;8479:6:53;8476:30;8473:50;;;8519:1;8516;8509:12;8473:50;8558:58;8608:7;8599:6;8588:9;8584:22;8558:58;:::i;:::-;8635:8;;-1:-1:-1;8532:84:53;-1:-1:-1;;8720:3:53;8705:19;;8692:33;8734:31;8692:33;8734:31;:::i;:::-;8125:670;;;;-1:-1:-1;8125:670:53;;-1:-1:-1;;8125:670:53:o;8800:118::-;8886:5;8879:13;8872:21;8865:5;8862:32;8852:60;;8908:1;8905;8898:12;8923:382;8988:6;8996;9049:2;9037:9;9028:7;9024:23;9020:32;9017:52;;;9065:1;9062;9055:12;9017:52;9104:9;9091:23;9123:31;9148:5;9123:31;:::i;:::-;9173:5;-1:-1:-1;9230:2:53;9215:18;;9202:32;9243:30;9202:32;9243:30;:::i;:::-;9292:7;9282:17;;;8923:382;;;;;:::o;9611:127::-;9672:10;9667:3;9663:20;9660:1;9653:31;9703:4;9700:1;9693:15;9727:4;9724:1;9717:15;9743:251;9815:2;9809:9;;;9845:15;;-1:-1:-1;;;;;9875:34:53;;9911:22;;;9872:62;9869:88;;;9937:18;;:::i;:::-;9973:2;9966:22;9743:251;:::o;9999:253::-;10071:2;10065:9;10113:4;10101:17;;-1:-1:-1;;;;;10133:34:53;;10169:22;;;10130:62;10127:88;;;10195:18;;:::i;10257:275::-;10328:2;10322:9;10393:2;10374:13;;-1:-1:-1;;10370:27:53;10358:40;;-1:-1:-1;;;;;10413:34:53;;10449:22;;;10410:62;10407:88;;;10475:18;;:::i;:::-;10511:2;10504:22;10257:275;;-1:-1:-1;10257:275:53:o;10537:186::-;10585:4;-1:-1:-1;;;;;10610:6:53;10607:30;10604:56;;;10640:18;;:::i;:::-;-1:-1:-1;10706:2:53;10685:15;-1:-1:-1;;10681:29:53;10712:4;10677:40;;10537:186::o;10728:462::-;10770:5;10823:3;10816:4;10808:6;10804:17;10800:27;10790:55;;10841:1;10838;10831:12;10790:55;10877:6;10864:20;10908:48;10924:31;10952:2;10924:31;:::i;:::-;10908:48;:::i;:::-;10981:2;10972:7;10965:19;11027:3;11020:4;11015:2;11007:6;11003:15;10999:26;10996:35;10993:55;;;11044:1;11041;11034:12;10993:55;11109:2;11102:4;11094:6;11090:17;11083:4;11074:7;11070:18;11057:55;11157:1;11132:16;;;11150:4;11128:27;11121:38;;;;11136:7;10728:462;-1:-1:-1;;;10728:462:53:o;11195:665::-;11290:6;11298;11306;11314;11367:3;11355:9;11346:7;11342:23;11338:33;11335:53;;;11384:1;11381;11374:12;11335:53;11423:9;11410:23;11442:31;11467:5;11442:31;:::i;:::-;11492:5;-1:-1:-1;11549:2:53;11534:18;;11521:32;11562:33;11521:32;11562:33;:::i;:::-;11614:7;-1:-1:-1;11668:2:53;11653:18;;11640:32;;-1:-1:-1;11723:2:53;11708:18;;11695:32;-1:-1:-1;;;;;11739:30:53;;11736:50;;;11782:1;11779;11772:12;11736:50;11805:49;11846:7;11837:6;11826:9;11822:22;11805:49;:::i;:::-;11795:59;;;11195:665;;;;;;;:::o;11865:395::-;11956:8;11966:6;12020:3;12013:4;12005:6;12001:17;11997:27;11987:55;;12038:1;12035;12028:12;11987:55;-1:-1:-1;12061:20:53;;-1:-1:-1;;;;;12093:30:53;;12090:50;;;12136:1;12133;12126:12;12090:50;12173:4;12165:6;12161:17;12149:29;;12233:3;12226:4;12216:6;12213:1;12209:14;12201:6;12197:27;12193:38;12190:47;12187:67;;;12250:1;12247;12240:12;12265:504;12390:6;12398;12451:2;12439:9;12430:7;12426:23;12422:32;12419:52;;;12467:1;12464;12457:12;12419:52;12507:9;12494:23;-1:-1:-1;;;;;12532:6:53;12529:30;12526:50;;;12572:1;12569;12562:12;12526:50;12611:98;12701:7;12692:6;12681:9;12677:22;12611:98;:::i;:::-;12728:8;;12585:124;;-1:-1:-1;12265:504:53;-1:-1:-1;;;;12265:504:53:o;12774:184::-;12832:6;12885:2;12873:9;12864:7;12860:23;12856:32;12853:52;;;12901:1;12898;12891:12;12853:52;12924:28;12942:9;12924:28;:::i;13145:553::-;13231:6;13239;13247;13255;13308:2;13296:9;13287:7;13283:23;13279:32;13276:52;;;13324:1;13321;13314:12;13276:52;13347:28;13365:9;13347:28;:::i;:::-;13337:38;;13394:37;13427:2;13416:9;13412:18;13394:37;:::i;:::-;13384:47;;13482:2;13471:9;13467:18;13454:32;-1:-1:-1;;;;;13501:6:53;13498:30;13495:50;;;13541:1;13538;13531:12;13495:50;13580:58;13630:7;13621:6;13610:9;13606:22;13580:58;:::i;:::-;13145:553;;;;-1:-1:-1;13657:8:53;-1:-1:-1;;;;13145:553:53:o;14206:489::-;14300:6;14308;14361:2;14349:9;14340:7;14336:23;14332:32;14329:52;;;14377:1;14374;14367:12;14329:52;14417:9;14404:23;-1:-1:-1;;;;;14442:6:53;14439:30;14436:50;;;14482:1;14479;14472:12;14436:50;14505:69;14566:7;14557:6;14546:9;14542:22;14505:69;:::i;:::-;14495:79;;;14624:2;14613:9;14609:18;14596:32;14637:28;14659:5;14637:28;:::i;14700:261::-;5161:12;;5149:25;;5223:4;5212:16;;;5206:23;5190:14;;;5183:47;14894:2;14879:18;;14906:49;5083:153;14966:388;15034:6;15042;15095:2;15083:9;15074:7;15070:23;15066:32;15063:52;;;15111:1;15108;15101:12;15063:52;15150:9;15137:23;15169:31;15194:5;15169:31;:::i;:::-;15219:5;-1:-1:-1;15276:2:53;15261:18;;15248:32;15289:33;15248:32;15289:33;:::i;15359:236::-;15444:6;15497:2;15485:9;15476:7;15472:23;15468:32;15465:52;;;15513:1;15510;15503:12;15465:52;15536:53;15581:7;15570:9;15536:53;:::i;15600:380::-;15679:1;15675:12;;;;15722;;;15743:61;;15797:4;15789:6;15785:17;15775:27;;15743:61;15850:2;15842:6;15839:14;15819:18;15816:38;15813:161;;15896:10;15891:3;15887:20;15884:1;15877:31;15931:4;15928:1;15921:15;15959:4;15956:1;15949:15;16253:348;16342:6;16395:2;16383:9;16374:7;16370:23;16366:32;16363:52;;;16411:1;16408;16401:12;16363:52;16437:22;;:::i;:::-;16495:9;16482:23;16475:5;16468:38;16566:2;16555:9;16551:18;16538:32;16533:2;16526:5;16522:14;16515:56;16590:5;16580:15;;;16253:348;;;;:::o;17254:1575::-;17446:9;-1:-1:-1;;;;;17521:2:53;17513:6;17510:14;17507:40;;;17527:18;;:::i;:::-;17573:6;17570:1;17566:14;17599:4;17623:28;17647:2;17643;17639:11;17623:28;:::i;:::-;17685:19;;;17755:14;;;;17720:12;;;;17792:14;17781:26;;17778:46;;;17820:1;17817;17810:12;17778:46;17844:5;17858:938;17874:6;17869:3;17866:15;17858:938;;;17960:3;17947:17;17996:2;17983:11;17980:19;17977:109;;;18040:1;18069:2;18065;18058:14;17977:109;18109:23;;18177:4;18156:14;18152:23;;;18148:34;18145:124;;;18223:1;18252:2;18248;18241:14;18145:124;18297:22;;:::i;:::-;18348:21;18366:2;18348:21;:::i;:::-;18339:7;18332:38;18408:30;18434:2;18430;18426:11;18408:30;:::i;:::-;18403:2;18394:7;18390:16;18383:56;18462:2;18512;18508;18504:11;18491:25;18543:2;18535:6;18532:14;18529:104;;;18587:1;18616:2;18612;18605:14;18529:104;18671:49;18705:14;18696:6;18692:2;18688:15;18671:49;:::i;:::-;18653:16;;;18646:75;;;;-1:-1:-1;18734:20:53;;-1:-1:-1;18774:12:53;;;;17891;;17858:938;;;-1:-1:-1;18818:5:53;17254:1575;-1:-1:-1;;;;;;;17254:1575:53:o;18834:331::-;18939:9;18950;18992:8;18980:10;18977:24;18974:44;;;19014:1;19011;19004:12;18974:44;19043:6;19033:8;19030:20;19027:40;;;19063:1;19060;19053:12;19027:40;-1:-1:-1;;19089:23:53;;;19134:25;;;;;-1:-1:-1;18834:331:53:o;19170:476::-;19361:3;19399:6;19393:13;19415:66;19474:6;19469:3;19462:4;19454:6;19450:17;19415:66;:::i;:::-;19503:16;;19556:6;19548;19503:16;19528:35;19620:1;19582:18;;19609:13;;;-1:-1:-1;19582:18:53;;19170:476;-1:-1:-1;;;19170:476:53:o;19651:266::-;19739:6;19734:3;19727:19;19791:6;19784:5;19777:4;19772:3;19768:14;19755:43;-1:-1:-1;19843:1:53;19818:16;;;19836:4;19814:27;;;19807:38;;;;19899:2;19878:15;;;-1:-1:-1;;19874:29:53;19865:39;;;19861:50;;19651:266::o;19922:244::-;20079:2;20068:9;20061:21;20042:4;20099:61;20156:2;20145:9;20141:18;20133:6;20125;20099:61;:::i;20171:127::-;20232:10;20227:3;20223:20;20220:1;20213:31;20263:4;20260:1;20253:15;20287:4;20284:1;20277:15;20303:331;20402:4;20460:11;20447:25;20554:3;20550:8;20539;20523:14;20519:29;20515:44;20495:18;20491:69;20481:97;;20574:1;20571;20564:12;20481:97;20595:33;;;;;20303:331;-1:-1:-1;;20303:331:53:o;20639:521::-;20716:4;20722:6;20782:11;20769:25;20876:2;20872:7;20861:8;20845:14;20841:29;20837:43;20817:18;20813:68;20803:96;;20895:1;20892;20885:12;20803:96;20922:33;;20974:20;;;-1:-1:-1;;;;;;21006:30:53;;21003:50;;;21049:1;21046;21039:12;21003:50;21082:4;21070:17;;-1:-1:-1;21113:14:53;21109:27;;;21099:38;;21096:58;;;21150:1;21147;21140:12;21165:129;-1:-1:-1;;;;;21243:5:53;21239:30;21232:5;21229:41;21219:69;;21284:1;21281;21274:12;21299:992;21677:10;21650:25;21668:6;21650:25;:::i;:::-;21646:42;21635:9;21628:61;21752:4;21744:6;21740:17;21727:31;21720:4;21709:9;21705:20;21698:61;21609:4;21806;21798:6;21794:17;21781:31;21821:30;21845:5;21821:30;:::i;:::-;-1:-1:-1;;;;;21893:5:53;21889:30;21882:4;21871:9;21867:20;21860:60;;21956:6;21951:2;21940:9;21936:18;21929:34;22000:3;21994;21983:9;21979:19;21972:32;22027:62;22084:3;22073:9;22069:19;22061:6;22053;22027:62;:::i;:::-;-1:-1:-1;;;;;22126:32:53;;22146:3;22105:19;;22098:61;22196:22;;;22190:3;22175:19;;22168:51;22236:49;22200:6;22270;22262;22236:49;:::i;:::-;22228:57;21299:992;-1:-1:-1;;;;;;;;;;21299:992:53:o;22296:647::-;22375:6;22428:2;22416:9;22407:7;22403:23;22399:32;22396:52;;;22444:1;22441;22434:12;22396:52;22477:9;22471:16;-1:-1:-1;;;;;22502:6:53;22499:30;22496:50;;;22542:1;22539;22532:12;22496:50;22565:22;;22618:4;22610:13;;22606:27;-1:-1:-1;22596:55:53;;22647:1;22644;22637:12;22596:55;22676:2;22670:9;22701:48;22717:31;22745:2;22717:31;:::i;22701:48::-;22772:2;22765:5;22758:17;22812:7;22807:2;22802;22798;22794:11;22790:20;22787:33;22784:53;;;22833:1;22830;22823:12;22784:53;22846:67;22910:2;22905;22898:5;22894:14;22889:2;22885;22881:11;22846:67;:::i;22948:496::-;23127:3;23165:6;23159:13;23181:66;23240:6;23235:3;23228:4;23220:6;23216:17;23181:66;:::i;:::-;23310:13;;23269:16;;;;23332:70;23310:13;23269:16;23379:4;23367:17;;23332:70;:::i;:::-;23418:20;;22948:496;-1:-1:-1;;;;22948:496:53:o;23646:245::-;23704:6;23757:2;23745:9;23736:7;23732:23;23728:32;23725:52;;;23773:1;23770;23763:12;23725:52;23812:9;23799:23;23831:30;23855:5;23831:30;:::i;23896:479::-;24163:1;24159;24154:3;24150:11;24146:19;24138:6;24134:32;24123:9;24116:51;24203:6;24198:2;24187:9;24183:18;24176:34;24258:6;24250;24246:19;24241:2;24230:9;24226:18;24219:47;24302:3;24297:2;24286:9;24282:18;24275:31;24097:4;24323:46;24364:3;24353:9;24349:19;24341:6;24323:46;:::i;24689:379::-;24882:2;24871:9;24864:21;24845:4;24908:45;24949:2;24938:9;24934:18;24926:6;24908:45;:::i;:::-;25001:9;24993:6;24989:22;24984:2;24973:9;24969:18;24962:50;25029:33;25055:6;25047;25029:33;:::i;25073:245::-;25140:6;25193:2;25181:9;25172:7;25168:23;25164:32;25161:52;;;25209:1;25206;25199:12;25161:52;25241:9;25235:16;25260:28;25282:5;25260:28;:::i;25323:891::-;25546:2;25535:9;25528:21;25604:10;25595:6;25589:13;25585:30;25580:2;25569:9;25565:18;25558:58;25670:4;25662:6;25658:17;25652:24;25647:2;25636:9;25632:18;25625:52;25509:4;25724:2;25716:6;25712:15;25706:22;25765:4;25759:3;25748:9;25744:19;25737:33;25793:52;25840:3;25829:9;25825:19;25811:12;25793:52;:::i;:::-;25779:66;;25894:2;25886:6;25882:15;25876:22;25968:2;25964:7;25952:9;25944:6;25940:22;25936:36;25929:4;25918:9;25914:20;25907:66;25996:41;26030:6;26014:14;25996:41;:::i;:::-;26106:3;26094:16;;;;26088:23;26081:31;26074:39;26068:3;26053:19;;26046:68;-1:-1:-1;;;;;;;;26175:32:53;;;;26168:4;26153:20;;;26146:62;25982:55;25323:891::o;26219:284::-;26289:5;26337:4;26325:9;26320:3;26316:19;26312:30;26309:50;;;26355:1;26352;26345:12;26309:50;26377:22;;:::i;:::-;26368:31;;26428:9;26422:16;26415:5;26408:31;26492:2;26481:9;26477:18;26471:25;26466:2;26459:5;26455:14;26448:49;26219:284;;;;:::o;26508:525::-;26612:6;26665:3;26653:9;26644:7;26640:23;26636:33;26633:53;;;26682:1;26679;26672:12;26633:53;26708:22;;:::i;:::-;26759:9;26753:16;26746:5;26739:31;26815:2;26804:9;26800:18;26794:25;26828:32;26852:7;26828:32;:::i;:::-;26887:2;26876:14;;26869:31;26932:70;26994:7;26989:2;26974:18;;26932:70;:::i;:::-;26927:2;26916:14;;26909:94;26920:5;26508:525;-1:-1:-1;;;26508:525:53:o;27038:489::-;-1:-1:-1;;;;;27307:15:53;;;27289:34;;27359:15;;27354:2;27339:18;;27332:43;27406:2;27391:18;;27384:34;;;27454:3;27449:2;27434:18;;27427:31;;;27232:4;;27475:46;;27501:19;;27493:6;27475:46;:::i;27532:249::-;27601:6;27654:2;27642:9;27633:7;27629:23;27625:32;27622:52;;;27670:1;27667;27660:12;27622:52;27702:9;27696:16;27721:30;27745:5;27721:30;:::i;27911:542::-;28012:2;28007:3;28004:11;28001:446;;;28048:1;28072:5;28069:1;28062:16;28116:4;28113:1;28103:18;28186:2;28174:10;28170:19;28167:1;28163:27;28157:4;28153:38;28222:4;28210:10;28207:20;28204:47;;;-1:-1:-1;28245:4:53;28204:47;28300:2;28295:3;28291:12;28288:1;28284:20;28278:4;28274:31;28264:41;;28355:82;28373:2;28366:5;28363:13;28355:82;;;28418:17;;;28399:1;28388:13;28355:82;;;28359:3;;;27911:542;;;:::o;28629:1341::-;28753:3;28747:10;-1:-1:-1;;;;;28772:6:53;28769:30;28766:56;;;28802:18;;:::i;:::-;28831:96;28920:6;28880:38;28912:4;28906:11;28880:38;:::i;:::-;28874:4;28831:96;:::i;:::-;28982:4;;29039:2;29028:14;;29056:1;29051:662;;;;29757:1;29774:6;29771:89;;;-1:-1:-1;29826:19:53;;;29820:26;29771:89;-1:-1:-1;;28586:1:53;28582:11;;;28578:24;28574:29;28564:40;28610:1;28606:11;;;28561:57;29873:81;;29021:943;;29051:662;27858:1;27851:14;;;27895:4;27882:18;;-1:-1:-1;;29087:20:53;;;29204:236;29218:7;29215:1;29212:14;29204:236;;;29307:19;;;29301:26;29286:42;;29399:27;;;;29367:1;29355:14;;;;29234:19;;29204:236;;;29208:3;29468:6;29459:7;29456:19;29453:201;;;29529:19;;;29523:26;-1:-1:-1;;29612:1:53;29608:14;;;29624:3;29604:24;29600:37;29596:42;29581:58;29566:74;;29453:201;-1:-1:-1;;;;;29700:1:53;29684:14;;;29680:22;29667:36;;-1:-1:-1;28629:1341:53:o;29975:1164::-;30191:4;30220:2;30260;30249:9;30245:18;30290:2;30279:9;30272:21;30313:6;30348;30342:13;30379:6;30371;30364:22;30405:2;30395:12;;30438:2;30427:9;30423:18;30416:25;;30500:2;30490:6;30487:1;30483:14;30472:9;30468:30;30464:39;30538:2;30530:6;30526:15;30559:1;30569:541;30583:6;30580:1;30577:13;30569:541;;;30648:22;;;-1:-1:-1;;30644:36:53;30632:49;;30704:13;;30776:9;;30787:10;30772:26;30757:42;;30846:11;;;30840:18;30860:6;30836:31;30819:15;;;30812:56;30907:11;;30901:18;30740:4;30939:15;;;30932:27;;;30982:48;31014:15;;;30901:18;30982:48;:::i;:::-;31088:12;;;;30972:58;-1:-1:-1;;;31053:15:53;;;;30605:1;30598:9;30569:541;;;-1:-1:-1;31127:6:53;;29975:1164;-1:-1:-1;;;;;;;;29975:1164:53:o;31144:259::-;31244:6;31297:2;31285:9;31276:7;31272:23;31268:32;31265:52;;;31313:1;31310;31303:12;31265:52;31336:61;31389:7;31378:9;31336:61;:::i;31540:255::-;31660:19;;31699:2;31691:11;;31688:101;;;-1:-1:-1;;31760:2:53;31756:12;;;31753:1;31749:20;31745:33;31734:45;31540:255;;;;:::o;31800:503::-;32037:3;32015:16;;;-1:-1:-1;;;;;;32011:51:53;31999:64;;32118:3;32096:16;;;-1:-1:-1;;;;;;32092:43:53;32088:1;32079:11;;32072:64;32159:13;;-1:-1:-1;;32181:75:53;32159:13;32244:2;32235:12;;32228:4;32216:17;;32181:75;:::i;:::-;32276:16;;;;32294:2;32272:25;;31800:503;-1:-1:-1;;;;31800:503:53:o;32560:489::-;32803:6;32798:3;32791:19;32840:6;32835:2;32830:3;32826:12;32819:28;32877:6;32872:2;32867:3;32863:12;32856:28;32773:3;32913:6;32907:13;32929:73;32995:6;32990:2;32985:3;32981:12;32976:2;32968:6;32964:15;32929:73;:::i;:::-;33022:16;;;;33040:2;33018:25;;32560:489;-1:-1:-1;;;;;32560:489:53:o;33054:251::-;33124:6;33177:2;33165:9;33156:7;33152:23;33148:32;33145:52;;;33193:1;33190;33183:12;33145:52;33225:9;33219:16;33244:31;33269:5;33244:31;:::i;33969:287::-;34098:3;34136:6;34130:13;34152:66;34211:6;34206:3;34199:4;34191:6;34187:17;34152:66;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"2678200","executionCost":"infinite","totalCost":"infinite"},"external":{"SEND()":"294","SEND_AND_COMPOSE()":"271","allowInitializePath((uint32,bytes32,uint64))":"infinite","approvalRequired()":"299","approve(address,uint256)":"31554","balanceOf(address)":"2694","combineOptions(uint32,uint16,bytes)":"infinite","endpoint()":"infinite","enforcedOptions(uint32,uint16)":"infinite","getApproved(uint256)":"infinite","isApprovedForAll(address,address)":"infinite","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"789","isPeer(uint32,bytes32)":"2675","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"infinite","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"infinite","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"infinite","msgInspector()":"2472","name()":"infinite","nextNonce(uint32,bytes32)":"545","oApp()":"302","oAppVersion()":"263","onftVersion()":"246","owner()":"2399","ownerOf(uint256)":"infinite","peers(uint32)":"2662","preCrime()":"2426","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"infinite","renounceOwnership()":"infinite","safeTransferFrom(address,address,uint256)":"infinite","safeTransferFrom(address,address,uint256,bytes)":"infinite","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"infinite","setApprovalForAll(address,bool)":"infinite","setDelegate(address)":"infinite","setEnforcedOptions((uint32,uint16,bytes)[])":"infinite","setMsgInspector(address)":"27872","setPeer(uint32,bytes32)":"26083","setPreCrime(address)":"27860","supportsInterface(bytes4)":"557","symbol()":"infinite","token()":"344","tokenURI(uint256)":"infinite","transferFrom(address,address,uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","name()":"06fdde03","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setApprovalForAll(address,bool)":"a22cb465","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","token()":"fc0c546a","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"In the case of ONFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the underlying ERC721 implementation (ie. this contract).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MyONFT721.sol\":\"MyONFT721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\n\\nimport { BitMap256 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\\\";\\nimport { CalldataBytesLib } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary DVNOptions {\\n using CalldataBytesLib for bytes;\\n using BytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 2;\\n uint8 internal constant OPTION_TYPE_PRECRIME = 1;\\n\\n error DVN_InvalidDVNIdx();\\n error DVN_InvalidDVNOptions(uint256 cursor);\\n\\n /// @dev group dvn options by its idx\\n /// @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\\n /// dvn_option = [option_size][dvn_idx][option_type][option]\\n /// option_size = len(dvn_idx) + len(option_type) + len(option)\\n /// dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @return dvnOptions the grouped options, still share the same format of _options\\n /// @return dvnIndices the dvn indices\\n function groupDVNOptionsByIdx(\\n bytes memory _options\\n ) internal pure returns (bytes[] memory dvnOptions, uint8[] memory dvnIndices) {\\n if (_options.length == 0) return (dvnOptions, dvnIndices);\\n\\n uint8 numDVNs = getNumDVNs(_options);\\n\\n // if there is only 1 dvn, we can just return the whole options\\n if (numDVNs == 1) {\\n dvnOptions = new bytes[](1);\\n dvnOptions[0] = _options;\\n\\n dvnIndices = new uint8[](1);\\n dvnIndices[0] = _options.toUint8(3); // dvn idx\\n return (dvnOptions, dvnIndices);\\n }\\n\\n // otherwise, we need to group the options by dvn_idx\\n dvnIndices = new uint8[](numDVNs);\\n dvnOptions = new bytes[](numDVNs);\\n unchecked {\\n uint256 cursor = 0;\\n uint256 start = 0;\\n uint8 lastDVNIdx = 255; // 255 is an invalid dvn_idx\\n\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n // optionLength asserted in getNumDVNs (skip check)\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n\\n // dvnIdx asserted in getNumDVNs (skip check)\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // dvnIdx must equal to the lastDVNIdx for the first option\\n // so it is always skipped in the first option\\n // this operation slices out options whenever the scan finds a different lastDVNIdx\\n if (lastDVNIdx == 255) {\\n lastDVNIdx = dvnIdx;\\n } else if (dvnIdx != lastDVNIdx) {\\n uint256 len = cursor - start - 3; // 3 is for worker_id and option_length\\n bytes memory opt = _options.slice(start, len);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, opt);\\n\\n // reset the start and lastDVNIdx\\n start += len;\\n lastDVNIdx = dvnIdx;\\n }\\n\\n cursor += optionLength;\\n }\\n\\n // skip check the cursor here because the cursor is asserted in getNumDVNs\\n // if we have reached the end of the options, we need to process the last dvn\\n uint256 size = cursor - start;\\n bytes memory op = _options.slice(start, size);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, op);\\n\\n // revert dvnIndices to start from 0\\n for (uint8 i = 0; i < numDVNs; ++i) {\\n --dvnIndices[i];\\n }\\n }\\n }\\n\\n function _insertDVNOptions(\\n bytes[] memory _dvnOptions,\\n uint8[] memory _dvnIndices,\\n uint8 _dvnIdx,\\n bytes memory _newOptions\\n ) internal pure {\\n // dvnIdx starts from 0 but default value of dvnIndices is 0,\\n // so we tell if the slot is empty by adding 1 to dvnIdx\\n if (_dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n uint8 dvnIdxAdj = _dvnIdx + 1;\\n\\n for (uint256 j = 0; j < _dvnIndices.length; ++j) {\\n uint8 index = _dvnIndices[j];\\n if (dvnIdxAdj == index) {\\n _dvnOptions[j] = abi.encodePacked(_dvnOptions[j], _newOptions);\\n break;\\n } else if (index == 0) {\\n // empty slot, that means it is the first time we see this dvn\\n _dvnIndices[j] = dvnIdxAdj;\\n _dvnOptions[j] = _newOptions;\\n break;\\n }\\n }\\n }\\n\\n /// @dev get the number of unique dvns\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n function getNumDVNs(bytes memory _options) internal pure returns (uint8 numDVNs) {\\n uint256 cursor = 0;\\n BitMap256 bitmap;\\n\\n // find number of unique dvn_idx\\n unchecked {\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n if (optionLength < 2) revert DVN_InvalidDVNOptions(cursor); // at least 1 byte for dvn_idx and 1 byte for option_type\\n\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // if dvnIdx is not set, increment numDVNs\\n // max num of dvns is 255, 255 is an invalid dvn_idx\\n // The order of the dvnIdx is not required to be sequential, as enforcing the order may weaken\\n // the composability of the options. e.g. if we refrain from enforcing the order, an OApp that has\\n // already enforced certain options can append additional options to the end of the enforced\\n // ones without restrictions.\\n if (dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n if (!bitmap.get(dvnIdx)) {\\n ++numDVNs;\\n bitmap = bitmap.set(dvnIdx);\\n }\\n\\n cursor += optionLength;\\n }\\n }\\n if (cursor != _options.length) revert DVN_InvalidDVNOptions(cursor);\\n }\\n\\n /// @dev decode the next dvn option from _options starting from the specified cursor\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n /// @param _cursor the cursor to start decoding\\n /// @return optionType the type of the option\\n /// @return option the option\\n /// @return cursor the cursor to start decoding the next option\\n function nextDVNOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor + 1); // skip dvn_idx\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 2; // skip option type and dvn_idx\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n}\\n\",\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the 'MessagingFee' and 'MessagingReceipt' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppSender, MessagingFee, MessagingReceipt } from \\\"./OAppSender.sol\\\";\\n// @dev Import the 'Origin' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppReceiver, Origin } from \\\"./OAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OApp\\n * @dev Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality.\\n */\\nabstract contract OApp is OAppSender, OAppReceiver {\\n /**\\n * @dev Constructor to initialize the OApp with the provided endpoint and owner.\\n * @param _endpoint The address of the LOCAL LayerZero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n */\\n constructor(address _endpoint, address _delegate) OAppCore(_endpoint, _delegate) {}\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol implementation.\\n * @return receiverVersion The version of the OAppReceiver.sol implementation.\\n */\\n function oAppVersion()\\n public\\n pure\\n virtual\\n override(OAppSender, OAppReceiver)\\n returns (uint64 senderVersion, uint64 receiverVersion)\\n {\\n return (SENDER_VERSION, RECEIVER_VERSION);\\n }\\n}\\n\",\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"./interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCore is IOAppCore, Ownable {\\n // The LayerZero endpoint associated with the given OApp\\n ILayerZeroEndpointV2 public immutable endpoint;\\n\\n // Mapping to store peers associated with corresponding endpoints\\n mapping(uint32 eid => bytes32 peer) public peers;\\n\\n /**\\n * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n *\\n * @dev The delegate typically should be set as the owner of the contract.\\n */\\n constructor(address _endpoint, address _delegate) {\\n endpoint = ILayerZeroEndpointV2(_endpoint);\\n\\n if (_delegate == address(0)) revert InvalidDelegate();\\n endpoint.setDelegate(_delegate);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n _setPeer(_eid, _peer);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function _setPeer(uint32 _eid, bytes32 _peer) internal virtual {\\n peers[_eid] = _peer;\\n emit PeerSet(_eid, _peer);\\n }\\n\\n /**\\n * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n * ie. the peer is set to bytes32(0).\\n * @param _eid The endpoint ID.\\n * @return peer The address of the peer associated with the specified endpoint.\\n */\\n function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n bytes32 peer = peers[_eid];\\n if (peer == bytes32(0)) revert NoPeer(_eid);\\n return peer;\\n }\\n\\n /**\\n * @notice Sets the delegate address for the OApp.\\n * @param _delegate The address of the delegate to be set.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n */\\n function setDelegate(address _delegate) public onlyOwner {\\n endpoint.setDelegate(_delegate);\\n }\\n}\\n\",\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { IOAppReceiver, Origin } from \\\"./interfaces/IOAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppReceiver\\n * @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\\n */\\nabstract contract OAppReceiver is IOAppReceiver, OAppCore {\\n // Custom error message for when the caller is not the registered endpoint/\\n error OnlyEndpoint(address addr);\\n\\n // @dev The version of the OAppReceiver implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant RECEIVER_VERSION = 2;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\\n * ie. this is a RECEIVE only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (0, RECEIVER_VERSION);\\n }\\n\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @dev _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @dev _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata /*_origin*/,\\n bytes calldata /*_message*/,\\n address _sender\\n ) public view virtual returns (bool) {\\n return _sender == address(this);\\n }\\n\\n /**\\n * @notice Checks if the path initialization is allowed based on the provided origin.\\n * @param origin The origin information containing the source endpoint and sender address.\\n * @return Whether the path has been initialized.\\n *\\n * @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\\n * @dev This defaults to assuming if a peer has been set, its initialized.\\n * Can be overridden by the OApp if there is other logic to determine this.\\n */\\n function allowInitializePath(Origin calldata origin) public view virtual returns (bool) {\\n return peers[origin.srcEid] == origin.sender;\\n }\\n\\n /**\\n * @notice Retrieves the next nonce for a given source endpoint and sender address.\\n * @dev _srcEid The source endpoint ID.\\n * @dev _sender The sender address.\\n * @return nonce The next nonce.\\n *\\n * @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\\n * @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\\n * @dev This is also enforced by the OApp.\\n * @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\\n */\\n function nextNonce(uint32 /*_srcEid*/, bytes32 /*_sender*/) public view virtual returns (uint64 nonce) {\\n return 0;\\n }\\n\\n /**\\n * @dev Entry point for receiving messages or packets from the endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier for the received LayerZero message.\\n * @param _message The payload of the received message.\\n * @param _executor The address of the executor for the received message.\\n * @param _extraData Additional arbitrary data provided by the corresponding executor.\\n *\\n * @dev Entry point for receiving msg/packet from the LayerZero endpoint.\\n */\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) public payable virtual {\\n // Ensures that only the endpoint can attempt to lzReceive() messages to this OApp.\\n if (address(endpoint) != msg.sender) revert OnlyEndpoint(msg.sender);\\n\\n // Ensure that the sender matches the expected peer for the source endpoint.\\n if (_getPeerOrRevert(_origin.srcEid) != _origin.sender) revert OnlyPeer(_origin.srcEid, _origin.sender);\\n\\n // Call the internal OApp implementation of lzReceive.\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation.\\n */\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n}\\n\",\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppSender\\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\\n */\\nabstract contract OAppSender is OAppCore {\\n using SafeERC20 for IERC20;\\n\\n // Custom error messages\\n error NotEnoughNative(uint256 msgValue);\\n error LzTokenUnavailable();\\n\\n // @dev The version of the OAppSender implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant SENDER_VERSION = 1;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\\n * ie. this is a SEND only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (SENDER_VERSION, 0);\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\\n * @return fee The calculated MessagingFee for the message.\\n * - nativeFee: The native fee for the message.\\n * - lzTokenFee: The LZ token fee for the message.\\n */\\n function _quote(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n bool _payInLzToken\\n ) internal view virtual returns (MessagingFee memory fee) {\\n return\\n endpoint.quote(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\\n address(this)\\n );\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _fee The calculated LayerZero fee for the message.\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\\n * @return receipt The receipt for the sent message.\\n * - guid: The unique identifier for the sent message.\\n * - nonce: The nonce of the sent message.\\n * - fee: The LayerZero fee incurred for the message.\\n */\\n function _lzSend(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n MessagingFee memory _fee,\\n address _refundAddress\\n ) internal virtual returns (MessagingReceipt memory receipt) {\\n // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\\n uint256 messageValue = _payNative(_fee.nativeFee);\\n if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\\n\\n return\\n // solhint-disable-next-line check-send-result\\n endpoint.send{ value: messageValue }(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\\n _refundAddress\\n );\\n }\\n\\n /**\\n * @dev Internal function to pay the native fee associated with the message.\\n * @param _nativeFee The native fee to be paid.\\n * @return nativeFee The amount of native currency paid.\\n *\\n * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\\n * this will need to be overridden because msg.value would contain multiple lzFees.\\n * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\\n * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\\n * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\\n */\\n function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\\n if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\\n return _nativeFee;\\n }\\n\\n /**\\n * @dev Internal function to pay the LZ token fee associated with the message.\\n * @param _lzTokenFee The LZ token fee to be paid.\\n *\\n * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\\n * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\\n */\\n function _payLzToken(uint256 _lzTokenFee) internal virtual {\\n // @dev Cannot cache the token because it is not immutable in the endpoint.\\n address lzToken = endpoint.lzToken();\\n if (lzToken == address(0)) revert LzTokenUnavailable();\\n\\n // Pay LZ token fee by sending tokens to the endpoint.\\n IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\\n }\\n}\\n\",\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n // Custom error messages\\n error OnlyPeer(uint32 eid, bytes32 sender);\\n error NoPeer(uint32 eid);\\n error InvalidEndpointCall();\\n error InvalidDelegate();\\n\\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n event PeerSet(uint32 eid, bytes32 peer);\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n */\\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n /**\\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n * @return iEndpoint The LayerZero endpoint as an interface.\\n */\\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n /**\\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n */\\n function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n /**\\n * @notice Sets the delegate address for the OApp Core.\\n * @param _delegate The address of the delegate to be set.\\n */\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @title IOAppMsgInspector\\n * @dev Interface for the OApp Message Inspector, allowing examination of message and options contents.\\n */\\ninterface IOAppMsgInspector {\\n // Custom error message for inspection failure\\n error InspectionFailed(bytes message, bytes options);\\n\\n /**\\n * @notice Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\\n * @param _message The message payload to be inspected.\\n * @param _options Additional options or parameters for inspection.\\n * @return valid A boolean indicating whether the inspection passed (true) or failed (false).\\n *\\n * @dev Optionally done as a revert, OR use the boolean provided to handle the failure.\\n */\\n function inspect(bytes calldata _message, bytes calldata _options) external view returns (bool valid);\\n}\\n\",\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Struct representing enforced option parameters.\\n */\\nstruct EnforcedOptionParam {\\n uint32 eid; // Endpoint ID\\n uint16 msgType; // Message Type\\n bytes options; // Additional options\\n}\\n\\n/**\\n * @title IOAppOptionsType3\\n * @dev Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.\\n */\\ninterface IOAppOptionsType3 {\\n // Custom error message for invalid options\\n error InvalidOptions(bytes options);\\n\\n // Event emitted when enforced options are set\\n event EnforcedOptionSet(EnforcedOptionParam[] _enforcedOptions);\\n\\n /**\\n * @notice Sets enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) external;\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OApp message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) external view returns (bytes memory options);\\n}\\n\",\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroReceiver, Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\\\";\\n\\ninterface IOAppReceiver is ILayerZeroReceiver {\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata _origin,\\n bytes calldata _message,\\n address _sender\\n ) external view returns (bool isSender);\\n}\\n\",\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppOptionsType3, EnforcedOptionParam } from \\\"../interfaces/IOAppOptionsType3.sol\\\";\\n\\n/**\\n * @title OAppOptionsType3\\n * @dev Abstract contract implementing the IOAppOptionsType3 interface with type 3 options.\\n */\\nabstract contract OAppOptionsType3 is IOAppOptionsType3, Ownable {\\n uint16 internal constant OPTION_TYPE_3 = 3;\\n\\n // @dev The \\\"msgType\\\" should be defined in the child contract.\\n mapping(uint32 eid => mapping(uint16 msgType => bytes enforcedOption)) public enforcedOptions;\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) public virtual onlyOwner {\\n _setEnforcedOptions(_enforcedOptions);\\n }\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function _setEnforcedOptions(EnforcedOptionParam[] memory _enforcedOptions) internal virtual {\\n for (uint256 i = 0; i < _enforcedOptions.length; i++) {\\n // @dev Enforced options are only available for optionType 3, as type 1 and 2 dont support combining.\\n _assertOptionsType3(_enforcedOptions[i].options);\\n enforcedOptions[_enforcedOptions[i].eid][_enforcedOptions[i].msgType] = _enforcedOptions[i].options;\\n }\\n\\n emit EnforcedOptionSet(_enforcedOptions);\\n }\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OAPP message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n *\\n * @dev If there is an enforced lzReceive option:\\n * - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether}\\n * - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.\\n * @dev This presence of duplicated options is handled off-chain in the verifier/executor.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) public view virtual returns (bytes memory) {\\n bytes memory enforced = enforcedOptions[_eid][_msgType];\\n\\n // No enforced options, pass whatever the caller supplied, even if it's empty or legacy type 1/2 options.\\n if (enforced.length == 0) return _extraOptions;\\n\\n // No caller options, return enforced\\n if (_extraOptions.length == 0) return enforced;\\n\\n // @dev If caller provided _extraOptions, must be type 3 as its the ONLY type that can be combined.\\n if (_extraOptions.length >= 2) {\\n _assertOptionsType3(_extraOptions);\\n // @dev Remove the first 2 bytes containing the type from the _extraOptions and combine with enforced.\\n return bytes.concat(enforced, _extraOptions[2:]);\\n }\\n\\n // No valid set of options was found.\\n revert InvalidOptions(_extraOptions);\\n }\\n\\n /**\\n * @dev Internal function to assert that options are of type 3.\\n * @param _options The options to be checked.\\n */\\n function _assertOptionsType3(bytes memory _options) internal pure virtual {\\n uint16 optionsType;\\n assembly {\\n optionsType := mload(add(_options, 2))\\n }\\n if (optionsType != OPTION_TYPE_3) revert InvalidOptions(_options);\\n }\\n}\\n\",\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\nimport { SafeCast } from \\\"@openzeppelin/contracts/utils/math/SafeCast.sol\\\";\\n\\nimport { ExecutorOptions } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\\\";\\nimport { DVNOptions } from \\\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\\\";\\n\\n/**\\n * @title OptionsBuilder\\n * @dev Library for building and encoding various message options.\\n */\\nlibrary OptionsBuilder {\\n using SafeCast for uint256;\\n using BytesLib for bytes;\\n\\n // Constants for options types\\n uint16 internal constant TYPE_1 = 1; // legacy options type 1\\n uint16 internal constant TYPE_2 = 2; // legacy options type 2\\n uint16 internal constant TYPE_3 = 3;\\n\\n // Custom error message\\n error InvalidSize(uint256 max, uint256 actual);\\n error InvalidOptionType(uint16 optionType);\\n\\n // Modifier to ensure only options of type 3 are used\\n modifier onlyType3(bytes memory _options) {\\n if (_options.toUint16(0) != TYPE_3) revert InvalidOptionType(_options.toUint16(0));\\n _;\\n }\\n\\n /**\\n * @dev Creates a new options container with type 3.\\n * @return options The newly created options container.\\n */\\n function newOptions() internal pure returns (bytes memory) {\\n return abi.encodePacked(TYPE_3);\\n }\\n\\n /**\\n * @dev Adds an executor LZ receive option to the existing options.\\n * @param _options The existing options container.\\n * @param _gas The gasLimit used on the lzReceive() function in the OApp.\\n * @param _value The msg.value passed to the lzReceive() function in the OApp.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed by the executor\\n * eg. if (_gas: 200k, and _value: 1 ether) AND (_gas: 100k, _value: 0.5 ether) are sent in an option to the LayerZeroEndpoint,\\n * that becomes (300k, 1.5 ether) when the message is executed on the remote lzReceive() function.\\n */\\n function addExecutorLzReceiveOption(\\n bytes memory _options,\\n uint128 _gas,\\n uint128 _value\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeLzReceiveOption(_gas, _value);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZRECEIVE, option);\\n }\\n\\n /**\\n * @dev Adds an executor native drop option to the existing options.\\n * @param _options The existing options container.\\n * @param _amount The amount for the native value that is airdropped to the 'receiver'.\\n * @param _receiver The receiver address for the native drop option.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\\n */\\n function addExecutorNativeDropOption(\\n bytes memory _options,\\n uint128 _amount,\\n bytes32 _receiver\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeNativeDropOption(_amount, _receiver);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_NATIVE_DROP, option);\\n }\\n\\n /**\\n * @dev Adds an executor LZ compose option to the existing options.\\n * @param _options The existing options container.\\n * @param _index The index for the lzCompose() function call.\\n * @param _gas The gasLimit for the lzCompose() function call.\\n * @param _value The msg.value for the lzCompose() function call.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed PER index by the executor on the remote chain.\\n * @dev If the OApp sends N lzCompose calls on the remote, you must provide N incremented indexes starting with 0.\\n * ie. When your remote OApp composes (N = 3) messages, you must set this option for index 0,1,2\\n */\\n function addExecutorLzComposeOption(\\n bytes memory _options,\\n uint16 _index,\\n uint128 _gas,\\n uint128 _value\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeLzComposeOption(_index, _gas, _value);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZCOMPOSE, option);\\n }\\n\\n /**\\n * @dev Adds an executor ordered execution option to the existing options.\\n * @param _options The existing options container.\\n * @return options The updated options container.\\n */\\n function addExecutorOrderedExecutionOption(\\n bytes memory _options\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_ORDERED_EXECUTION, bytes(\\\"\\\"));\\n }\\n\\n /**\\n * @dev Adds a DVN pre-crime option to the existing options.\\n * @param _options The existing options container.\\n * @param _dvnIdx The DVN index for the pre-crime option.\\n * @return options The updated options container.\\n */\\n function addDVNPreCrimeOption(\\n bytes memory _options,\\n uint8 _dvnIdx\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return addDVNOption(_options, _dvnIdx, DVNOptions.OPTION_TYPE_PRECRIME, bytes(\\\"\\\"));\\n }\\n\\n /**\\n * @dev Adds an executor option to the existing options.\\n * @param _options The existing options container.\\n * @param _optionType The type of the executor option.\\n * @param _option The encoded data for the executor option.\\n * @return options The updated options container.\\n */\\n function addExecutorOption(\\n bytes memory _options,\\n uint8 _optionType,\\n bytes memory _option\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return\\n abi.encodePacked(\\n _options,\\n ExecutorOptions.WORKER_ID,\\n _option.length.toUint16() + 1, // +1 for optionType\\n _optionType,\\n _option\\n );\\n }\\n\\n /**\\n * @dev Adds a DVN option to the existing options.\\n * @param _options The existing options container.\\n * @param _dvnIdx The DVN index for the DVN option.\\n * @param _optionType The type of the DVN option.\\n * @param _option The encoded data for the DVN option.\\n * @return options The updated options container.\\n */\\n function addDVNOption(\\n bytes memory _options,\\n uint8 _dvnIdx,\\n uint8 _optionType,\\n bytes memory _option\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return\\n abi.encodePacked(\\n _options,\\n DVNOptions.WORKER_ID,\\n _option.length.toUint16() + 2, // +2 for optionType and dvnIdx\\n _dvnIdx,\\n _optionType,\\n _option\\n );\\n }\\n\\n /**\\n * @dev Encodes legacy options of type 1.\\n * @param _executionGas The gasLimit value passed to lzReceive().\\n * @return legacyOptions The encoded legacy options.\\n */\\n function encodeLegacyOptionsType1(uint256 _executionGas) internal pure returns (bytes memory) {\\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n return abi.encodePacked(TYPE_1, _executionGas);\\n }\\n\\n /**\\n * @dev Encodes legacy options of type 2.\\n * @param _executionGas The gasLimit value passed to lzReceive().\\n * @param _nativeForDst The amount of native air dropped to the receiver.\\n * @param _receiver The _nativeForDst receiver address.\\n * @return legacyOptions The encoded legacy options of type 2.\\n */\\n function encodeLegacyOptionsType2(\\n uint256 _executionGas,\\n uint256 _nativeForDst,\\n bytes memory _receiver // @dev Use bytes instead of bytes32 in legacy type 2 for _receiver.\\n ) internal pure returns (bytes memory) {\\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n if (_nativeForDst > type(uint128).max) revert InvalidSize(type(uint128).max, _nativeForDst);\\n if (_receiver.length > 32) revert InvalidSize(32, _receiver.length);\\n return abi.encodePacked(TYPE_2, _executionGas, _nativeForDst, _receiver);\\n }\\n}\\n\",\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IPreCrime } from \\\"./interfaces/IPreCrime.sol\\\";\\nimport { IOAppPreCrimeSimulator, InboundPacket, Origin } from \\\"./interfaces/IOAppPreCrimeSimulator.sol\\\";\\n\\n/**\\n * @title OAppPreCrimeSimulator\\n * @dev Abstract contract serving as the base for preCrime simulation functionality in an OApp.\\n */\\nabstract contract OAppPreCrimeSimulator is IOAppPreCrimeSimulator, Ownable {\\n // The address of the preCrime implementation.\\n address public preCrime;\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n *\\n * @dev The simulator contract is the base contract for the OApp by default.\\n * @dev If the simulator is a separate contract, override this function.\\n */\\n function oApp() external view virtual returns (address) {\\n return address(this);\\n }\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) public virtual onlyOwner {\\n preCrime = _preCrime;\\n emit PreCrimeSet(_preCrime);\\n }\\n\\n /**\\n * @dev Interface for pre-crime simulations. Always reverts at the end with the simulation results.\\n * @param _packets An array of InboundPacket objects representing received packets to be delivered.\\n *\\n * @dev WARNING: MUST revert at the end with the simulation results.\\n * @dev Gives the preCrime implementation the ability to mock sending packets to the lzReceive function,\\n * WITHOUT actually executing them.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) public payable virtual {\\n for (uint256 i = 0; i < _packets.length; i++) {\\n InboundPacket calldata packet = _packets[i];\\n\\n // Ignore packets that are not from trusted peers.\\n if (!isPeer(packet.origin.srcEid, packet.origin.sender)) continue;\\n\\n // @dev Because a verifier is calling this function, it doesnt have access to executor params:\\n // - address _executor\\n // - bytes calldata _extraData\\n // preCrime will NOT work for OApps that rely on these two parameters inside of their _lzReceive().\\n // They are instead stubbed to default values, address(0) and bytes(\\\"\\\")\\n // @dev Calling this.lzReceiveSimulate removes ability for assembly return 0 callstack exit,\\n // which would cause the revert to be ignored.\\n this.lzReceiveSimulate{ value: packet.value }(\\n packet.origin,\\n packet.guid,\\n packet.message,\\n packet.executor,\\n packet.extraData\\n );\\n }\\n\\n // @dev Revert with the simulation results. msg.sender must implement IPreCrime.buildSimulationResult().\\n revert SimulationResult(IPreCrime(msg.sender).buildSimulationResult());\\n }\\n\\n /**\\n * @dev Is effectively an internal function because msg.sender must be address(this).\\n * Allows resetting the call stack for 'internal' calls.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier of the packet.\\n * @param _message The message payload of the packet.\\n * @param _executor The executor address for the packet.\\n * @param _extraData Additional data for the packet.\\n */\\n function lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable virtual {\\n // @dev Ensure ONLY can be called 'internally'.\\n if (msg.sender != address(this)) revert OnlySelf();\\n _lzReceiveSimulate(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\\n * @param _origin The origin information.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address from the src chain.\\n * - nonce: The nonce of the LayerZero message.\\n * @param _guid The GUID of the LayerZero message.\\n * @param _message The LayerZero message.\\n * @param _executor The address of the off-chain executor.\\n * @param _extraData Arbitrary data passed by the msg executor.\\n *\\n * @dev Enables the preCrime simulator to mock sending lzReceive() messages,\\n * routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\\n */\\n function _lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual returns (bool);\\n}\\n\",\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the Origin so it's exposed to OAppPreCrimeSimulator implementers.\\n// solhint-disable-next-line no-unused-import\\nimport { InboundPacket, Origin } from \\\"../libs/Packet.sol\\\";\\n\\n/**\\n * @title IOAppPreCrimeSimulator Interface\\n * @dev Interface for the preCrime simulation functionality in an OApp.\\n */\\ninterface IOAppPreCrimeSimulator {\\n // @dev simulation result used in PreCrime implementation\\n error SimulationResult(bytes result);\\n error OnlySelf();\\n\\n /**\\n * @dev Emitted when the preCrime contract address is set.\\n * @param preCrimeAddress The address of the preCrime contract.\\n */\\n event PreCrimeSet(address preCrimeAddress);\\n\\n /**\\n * @dev Retrieves the address of the preCrime contract implementation.\\n * @return The address of the preCrime contract.\\n */\\n function preCrime() external view returns (address);\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n */\\n function oApp() external view returns (address);\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) external;\\n\\n /**\\n * @dev Mocks receiving a packet, then reverts with a series of data to infer the state/result.\\n * @param _packets An array of LayerZero InboundPacket objects representing received packets.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) external payable;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\nstruct PreCrimePeer {\\n uint32 eid;\\n bytes32 preCrime;\\n bytes32 oApp;\\n}\\n\\n// TODO not done yet\\ninterface IPreCrime {\\n error OnlyOffChain();\\n\\n // for simulate()\\n error PacketOversize(uint256 max, uint256 actual);\\n error PacketUnsorted();\\n error SimulationFailed(bytes reason);\\n\\n // for preCrime()\\n error SimulationResultNotFound(uint32 eid);\\n error InvalidSimulationResult(uint32 eid, bytes reason);\\n error CrimeFound(bytes crime);\\n\\n function getConfig(bytes[] calldata _packets, uint256[] calldata _packetMsgValues) external returns (bytes memory);\\n\\n function simulate(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues\\n ) external payable returns (bytes memory);\\n\\n function buildSimulationResult() external view returns (bytes memory);\\n\\n function preCrime(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues,\\n bytes[] calldata _simulations\\n ) external;\\n\\n function version() external view returns (uint64 major, uint8 minor);\\n}\\n\",\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { PacketV1Codec } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\\\";\\n\\n/**\\n * @title InboundPacket\\n * @dev Structure representing an inbound packet received by the contract.\\n */\\nstruct InboundPacket {\\n Origin origin; // Origin information of the packet.\\n uint32 dstEid; // Destination endpointId of the packet.\\n address receiver; // Receiver address for the packet.\\n bytes32 guid; // Unique identifier of the packet.\\n uint256 value; // msg.value of the packet.\\n address executor; // Executor address for the packet.\\n bytes message; // Message payload of the packet.\\n bytes extraData; // Additional arbitrary data for the packet.\\n}\\n\\n/**\\n * @title PacketDecoder\\n * @dev Library for decoding LayerZero packets.\\n */\\nlibrary PacketDecoder {\\n using PacketV1Codec for bytes;\\n\\n /**\\n * @dev Decode an inbound packet from the given packet data.\\n * @param _packet The packet data to decode.\\n * @return packet An InboundPacket struct representing the decoded packet.\\n */\\n function decode(bytes calldata _packet) internal pure returns (InboundPacket memory packet) {\\n packet.origin = Origin(_packet.srcEid(), _packet.sender(), _packet.nonce());\\n packet.dstEid = _packet.dstEid();\\n packet.receiver = _packet.receiverB20();\\n packet.guid = _packet.guid();\\n packet.message = _packet.message();\\n }\\n\\n /**\\n * @dev Decode multiple inbound packets from the given packet data and associated message values.\\n * @param _packets An array of packet data to decode.\\n * @param _packetMsgValues An array of associated message values for each packet.\\n * @return packets An array of InboundPacket structs representing the decoded packets.\\n */\\n function decode(\\n bytes[] calldata _packets,\\n uint256[] memory _packetMsgValues\\n ) internal pure returns (InboundPacket[] memory packets) {\\n packets = new InboundPacket[](_packets.length);\\n for (uint256 i = 0; i < _packets.length; i++) {\\n bytes calldata packet = _packets[i];\\n packets[i] = PacketDecoder.decode(packet);\\n // @dev Allows the verifier to specify the msg.value that gets passed in lzReceive.\\n packets[i].value = _packetMsgValues[i];\\n }\\n }\\n}\\n\",\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\nimport { SetConfigParam } from \\\"./IMessageLibManager.sol\\\";\\n\\nenum MessageLibType {\\n Send,\\n Receive,\\n SendAndReceive\\n}\\n\\ninterface IMessageLib is IERC165 {\\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\\n\\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n // message libs of same major version are compatible\\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\\n\\n function messageLibType() external view returns (MessageLibType);\\n}\\n\",\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { MessagingFee } from \\\"./ILayerZeroEndpointV2.sol\\\";\\nimport { IMessageLib } from \\\"./IMessageLib.sol\\\";\\n\\nstruct Packet {\\n uint64 nonce;\\n uint32 srcEid;\\n address sender;\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes32 guid;\\n bytes message;\\n}\\n\\ninterface ISendLib is IMessageLib {\\n function send(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external returns (MessagingFee memory, bytes memory encodedPacket);\\n\\n function quote(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external view returns (MessagingFee memory);\\n\\n function setTreasury(address _treasury) external;\\n\\n function withdrawFee(address _to, uint256 _amount) external;\\n\\n function withdrawLzTokenFee(address _lzToken, address _to, uint256 _amount) external;\\n}\\n\",\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary AddressCast {\\n error AddressCast_InvalidSizeForAddress();\\n error AddressCast_InvalidAddress();\\n\\n function toBytes32(bytes calldata _addressBytes) internal pure returns (bytes32 result) {\\n if (_addressBytes.length > 32) revert AddressCast_InvalidAddress();\\n result = bytes32(_addressBytes);\\n unchecked {\\n uint256 offset = 32 - _addressBytes.length;\\n result = result >> (offset * 8);\\n }\\n }\\n\\n function toBytes32(address _address) internal pure returns (bytes32 result) {\\n result = bytes32(uint256(uint160(_address)));\\n }\\n\\n function toBytes(bytes32 _addressBytes32, uint256 _size) internal pure returns (bytes memory result) {\\n if (_size == 0 || _size > 32) revert AddressCast_InvalidSizeForAddress();\\n result = new bytes(_size);\\n unchecked {\\n uint256 offset = 256 - _size * 8;\\n assembly {\\n mstore(add(result, 32), shl(offset, _addressBytes32))\\n }\\n }\\n }\\n\\n function toAddress(bytes32 _addressBytes32) internal pure returns (address result) {\\n result = address(uint160(uint256(_addressBytes32)));\\n }\\n\\n function toAddress(bytes calldata _addressBytes) internal pure returns (address result) {\\n if (_addressBytes.length != 20) revert AddressCast_InvalidAddress();\\n result = address(bytes20(_addressBytes));\\n }\\n}\\n\",\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n return uint8(_bytes[_start]);\\n }\\n\\n function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n unchecked {\\n uint256 end = _start + 2;\\n return uint16(bytes2(_bytes[_start:end]));\\n }\\n }\\n\\n function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n unchecked {\\n uint256 end = _start + 4;\\n return uint32(bytes4(_bytes[_start:end]));\\n }\\n }\\n\\n function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n unchecked {\\n uint256 end = _start + 8;\\n return uint64(bytes8(_bytes[_start:end]));\\n }\\n }\\n\\n function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n unchecked {\\n uint256 end = _start + 16;\\n return uint128(bytes16(_bytes[_start:end]));\\n }\\n }\\n\\n function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n unchecked {\\n uint256 end = _start + 32;\\n return uint256(bytes32(_bytes[_start:end]));\\n }\\n }\\n\\n function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n unchecked {\\n uint256 end = _start + 20;\\n return address(bytes20(_bytes[_start:end]));\\n }\\n }\\n\\n function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n unchecked {\\n uint256 end = _start + 32;\\n return bytes32(_bytes[_start:end]);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\\npragma solidity ^0.8.20;\\n\\ntype BitMap256 is uint256;\\n\\nusing BitMaps for BitMap256 global;\\n\\nlibrary BitMaps {\\n /**\\n * @dev Returns whether the bit at `index` is set.\\n */\\n function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\\n uint256 mask = 1 << index;\\n return BitMap256.unwrap(bitmap) & mask != 0;\\n }\\n\\n /**\\n * @dev Sets the bit at `index`.\\n */\\n function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\\n uint256 mask = 1 << index;\\n return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\\n }\\n}\\n\",\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { CalldataBytesLib } from \\\"../../libs/CalldataBytesLib.sol\\\";\\n\\nlibrary ExecutorOptions {\\n using CalldataBytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 1;\\n\\n uint8 internal constant OPTION_TYPE_LZRECEIVE = 1;\\n uint8 internal constant OPTION_TYPE_NATIVE_DROP = 2;\\n uint8 internal constant OPTION_TYPE_LZCOMPOSE = 3;\\n uint8 internal constant OPTION_TYPE_ORDERED_EXECUTION = 4;\\n\\n error Executor_InvalidLzReceiveOption();\\n error Executor_InvalidNativeDropOption();\\n error Executor_InvalidLzComposeOption();\\n\\n /// @dev decode the next executor option from the options starting from the specified cursor\\n /// @param _options [executor_id][executor_option][executor_id][executor_option]...\\n /// executor_option = [option_size][option_type][option]\\n /// option_size = len(option_type) + len(option)\\n /// executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @param _cursor the cursor to start decoding from\\n /// @return optionType the type of the option\\n /// @return option the option of the executor\\n /// @return cursor the cursor to start decoding the next executor option\\n function nextExecutorOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor);\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 1; // skip option type\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n\\n function decodeLzReceiveOption(bytes calldata _option) internal pure returns (uint128 gas, uint128 value) {\\n if (_option.length != 16 && _option.length != 32) revert Executor_InvalidLzReceiveOption();\\n gas = _option.toU128(0);\\n value = _option.length == 32 ? _option.toU128(16) : 0;\\n }\\n\\n function decodeNativeDropOption(bytes calldata _option) internal pure returns (uint128 amount, bytes32 receiver) {\\n if (_option.length != 48) revert Executor_InvalidNativeDropOption();\\n amount = _option.toU128(0);\\n receiver = _option.toB32(16);\\n }\\n\\n function decodeLzComposeOption(\\n bytes calldata _option\\n ) internal pure returns (uint16 index, uint128 gas, uint128 value) {\\n if (_option.length != 18 && _option.length != 34) revert Executor_InvalidLzComposeOption();\\n index = _option.toU16(0);\\n gas = _option.toU128(2);\\n value = _option.length == 34 ? _option.toU128(18) : 0;\\n }\\n\\n function encodeLzReceiveOption(uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_gas) : abi.encodePacked(_gas, _value);\\n }\\n\\n function encodeNativeDropOption(uint128 _amount, bytes32 _receiver) internal pure returns (bytes memory) {\\n return abi.encodePacked(_amount, _receiver);\\n }\\n\\n function encodeLzComposeOption(uint16 _index, uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_index, _gas) : abi.encodePacked(_index, _gas, _value);\\n }\\n}\\n\",\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { Packet } from \\\"../../interfaces/ISendLib.sol\\\";\\nimport { AddressCast } from \\\"../../libs/AddressCast.sol\\\";\\n\\nlibrary PacketV1Codec {\\n using AddressCast for address;\\n using AddressCast for bytes32;\\n\\n uint8 internal constant PACKET_VERSION = 1;\\n\\n // header (version + nonce + path)\\n // version\\n uint256 private constant PACKET_VERSION_OFFSET = 0;\\n // nonce\\n uint256 private constant NONCE_OFFSET = 1;\\n // path\\n uint256 private constant SRC_EID_OFFSET = 9;\\n uint256 private constant SENDER_OFFSET = 13;\\n uint256 private constant DST_EID_OFFSET = 45;\\n uint256 private constant RECEIVER_OFFSET = 49;\\n // payload (guid + message)\\n uint256 private constant GUID_OFFSET = 81; // keccak256(nonce + path)\\n uint256 private constant MESSAGE_OFFSET = 113;\\n\\n function encode(Packet memory _packet) internal pure returns (bytes memory encodedPacket) {\\n encodedPacket = abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver,\\n _packet.guid,\\n _packet.message\\n );\\n }\\n\\n function encodePacketHeader(Packet memory _packet) internal pure returns (bytes memory) {\\n return\\n abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver\\n );\\n }\\n\\n function encodePayload(Packet memory _packet) internal pure returns (bytes memory) {\\n return abi.encodePacked(_packet.guid, _packet.message);\\n }\\n\\n function header(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return _packet[0:GUID_OFFSET];\\n }\\n\\n function version(bytes calldata _packet) internal pure returns (uint8) {\\n return uint8(bytes1(_packet[PACKET_VERSION_OFFSET:NONCE_OFFSET]));\\n }\\n\\n function nonce(bytes calldata _packet) internal pure returns (uint64) {\\n return uint64(bytes8(_packet[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n function srcEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[SRC_EID_OFFSET:SENDER_OFFSET]));\\n }\\n\\n function sender(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[SENDER_OFFSET:DST_EID_OFFSET]);\\n }\\n\\n function senderAddressB20(bytes calldata _packet) internal pure returns (address) {\\n return sender(_packet).toAddress();\\n }\\n\\n function dstEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[DST_EID_OFFSET:RECEIVER_OFFSET]));\\n }\\n\\n function receiver(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[RECEIVER_OFFSET:GUID_OFFSET]);\\n }\\n\\n function receiverB20(bytes calldata _packet) internal pure returns (address) {\\n return receiver(_packet).toAddress();\\n }\\n\\n function guid(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[GUID_OFFSET:MESSAGE_OFFSET]);\\n }\\n\\n function message(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[MESSAGE_OFFSET:]);\\n }\\n\\n function payload(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[GUID_OFFSET:]);\\n }\\n\\n function payloadHash(bytes calldata _packet) internal pure returns (bytes32) {\\n return keccak256(payload(_packet));\\n }\\n}\\n\",\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\n/// @title ONFT Composed Message Codec\\n/// @notice Library for encoding and decoding ONFT composed messages.\\nlibrary ONFTComposeMsgCodec {\\n // Offset constants for decoding composed messages\\n uint8 private constant NONCE_OFFSET = 8;\\n uint8 private constant SRC_EID_OFFSET = 12;\\n uint8 private constant COMPOSE_FROM_OFFSET = 44;\\n\\n /// @dev Encodes a ONFT721 composed message.\\n /// @param _nonce The nonce value.\\n /// @param _srcEid The source LayerZero endpoint ID.\\n /// @param _composeMsg The composed message.\\n /// @return payload The encoded payload, including the composed message.\\n function encode(\\n uint64 _nonce,\\n uint32 _srcEid,\\n bytes memory _composeMsg // 0x[composeFrom][composeMsg]\\n ) internal pure returns (bytes memory payload) {\\n payload = abi.encodePacked(_nonce, _srcEid, _composeMsg);\\n }\\n\\n /// @dev Retrieves the nonce from the composed message.\\n /// @param _msg The message.\\n /// @return parsedNonce The nonce value.\\n function nonce(bytes calldata _msg) internal pure returns (uint64 parsedNonce) {\\n parsedNonce = uint64(bytes8(_msg[:NONCE_OFFSET]));\\n }\\n\\n /// @dev Retrieves the source LayerZero endpoint ID from the composed message.\\n /// @param _msg The message.\\n /// @return parsedSrcEid The source LayerZero endpoint ID.\\n function srcEid(bytes calldata _msg) internal pure returns (uint32 parsedSrcEid) {\\n parsedSrcEid = uint32(bytes4(_msg[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n /// @dev Retrieves the composeFrom value from the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeFrom The composeFrom value as bytes32.\\n function composeFrom(bytes calldata _msg) internal pure returns (bytes32 parsedComposeFrom) {\\n parsedComposeFrom = bytes32(_msg[SRC_EID_OFFSET:COMPOSE_FROM_OFFSET]);\\n }\\n\\n /// @dev Retrieves the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeMsg The composed message.\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\\n parsedComposeMsg = _msg[COMPOSE_FROM_OFFSET:];\\n }\\n\\n /// @dev Converts an address to bytes32.\\n /// @param _addr The address to convert.\\n /// @return bytes32Repr The bytes32 representation of the address.\\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\\n bytes32Repr = bytes32(uint256(uint160(_addr)));\\n }\\n\\n /// @dev Converts bytes32 to an address.\\n /// @param _b The bytes32 value to convert.\\n /// @return addressRepr The address representation of bytes32.\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\\n addressRepr = address(uint160(uint256(_b)));\\n }\\n}\\n\",\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { ERC721 } from \\\"@openzeppelin/contracts/token/ERC721/ERC721.sol\\\";\\nimport { IONFT721, ONFT721Core } from \\\"./ONFT721Core.sol\\\";\\n\\n/// @title ONFT721 Contract\\n/// @dev ONFT721 is an ERC-721 token that extends the functionality of the ONFT721Core contract.\\nabstract contract ONFT721 is ONFT721Core, ERC721 {\\n /// @dev Constructor for the ONFT721 contract.\\n /// @param _name The name of the ONFT.\\n /// @param _symbol The symbol of the ONFT.\\n /// @param _lzEndpoint The LayerZero endpoint address.\\n /// @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n constructor(\\n string memory _name,\\n string memory _symbol,\\n address _lzEndpoint,\\n address _delegate\\n ) ERC721(_name, _symbol) ONFT721Core(_lzEndpoint, _delegate) {}\\n\\n /// @notice Retrieves the address of the underlying ERC721 implementation (ie. this contract).\\n function token() external view returns (address) {\\n return address(this);\\n }\\n\\n /// @notice Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\\n /// @dev In the case of ONFT where the contract IS the token, approval is NOT required.\\n /// @return requiresApproval Needs approval of the underlying token implementation.\\n function approvalRequired() external pure virtual returns (bool) {\\n return false;\\n }\\n\\n function _debit(address _from, uint256 _tokenId, uint32 /*_dstEid*/) internal virtual override {\\n if (_from != ERC721.ownerOf(_tokenId)) revert OnlyNFTOwner(_from, ERC721.ownerOf(_tokenId));\\n _burn(_tokenId);\\n }\\n\\n function _credit(address _to, uint256 _tokenId, uint32 /*_srcEid*/) internal virtual override {\\n _mint(_to, _tokenId);\\n }\\n}\\n\",\"keccak256\":\"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { OApp, Origin } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\\\";\\nimport { IOAppMsgInspector } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\\\";\\nimport { OAppOptionsType3 } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\\\";\\n\\nimport { OAppPreCrimeSimulator } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\\\";\\n\\nimport { IONFT721, MessagingFee, MessagingReceipt, SendParam } from \\\"./interfaces/IONFT721.sol\\\";\\nimport { ONFT721MsgCodec } from \\\"./libs/ONFT721MsgCodec.sol\\\";\\nimport { ONFTComposeMsgCodec } from \\\"../libs/ONFTComposeMsgCodec.sol\\\";\\nimport { OptionsBuilder } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\\\";\\n\\nimport { SafeCast } from \\\"@openzeppelin/contracts/utils/math/SafeCast.sol\\\";\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\n/// @title ONFT721Core\\n/// @dev Abstract contract for an ONFT721 token.\\nabstract contract ONFT721Core is IONFT721, OApp, OAppPreCrimeSimulator, OAppOptionsType3 {\\n using ONFT721MsgCodec for bytes;\\n using ONFT721MsgCodec for bytes32;\\n using ONFT721MsgCodec for uint256;\\n using OptionsBuilder for bytes;\\n\\n // @notice Msg types that are used to identify the various OFT operations.\\n // @dev This can be extended in child contracts for non-default oft operations\\n // @dev These values are used in things like combineOptions() in OAppOptionsType3.sol.\\n uint16 public constant SEND = 1;\\n uint16 public constant SEND_AND_COMPOSE = 2;\\n\\n // Address of an optional contract to inspect both 'message' and 'options'\\n address public msgInspector;\\n\\n event MsgInspectorSet(address inspector);\\n\\n /// @param _lzEndpoint The address of the LayerZero endpoint.\\n /// @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n constructor(address _lzEndpoint, address _delegate) Ownable(_delegate) OApp(_lzEndpoint, _delegate) {}\\n\\n /// @notice Retrieves interfaceID and the version of the ONFT.\\n /// @return interfaceId The interface ID (0x94642228).\\n /// @return version The version.\\n /// @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\\n /// @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\\n /// @dev ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\\n function onftVersion() external pure virtual returns (bytes4 interfaceId, uint64 version) {\\n return (type(IONFT721).interfaceId, 1);\\n }\\n\\n function quoteSend(\\n SendParam calldata _sendParam,\\n bool _payInLzToken\\n ) external view virtual returns (MessagingFee memory msgFee) {\\n if (_sendParam.to == bytes32(0)) revert InvalidReceiver();\\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam);\\n return _quote(_sendParam.dstEid, message, options, _payInLzToken);\\n }\\n\\n function send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) external payable virtual returns (MessagingReceipt memory msgReceipt) {\\n if (_sendParam.to == bytes32(0)) revert InvalidReceiver();\\n _debit(msg.sender, _sendParam.tokenId, _sendParam.dstEid);\\n\\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam);\\n\\n // @dev Sends the message to the LayerZero Endpoint, returning the MessagingReceipt.\\n msgReceipt = _lzSend(_sendParam.dstEid, message, options, _fee, _refundAddress);\\n emit ONFTSent(msgReceipt.guid, _sendParam.dstEid, msg.sender, _sendParam.tokenId);\\n }\\n\\n /// @dev Internal function to build the message and options.\\n /// @param _sendParam The parameters for the send() operation.\\n /// @return message The encoded message.\\n /// @return options The encoded options.\\n function _buildMsgAndOptions(\\n SendParam calldata _sendParam\\n ) internal view virtual returns (bytes memory message, bytes memory options) {\\n bool hasCompose;\\n (message, hasCompose) = ONFT721MsgCodec.encode(_sendParam.to, _sendParam.tokenId, _sendParam.composeMsg);\\n uint16 msgType = hasCompose ? SEND_AND_COMPOSE : SEND;\\n\\n options = combineOptions(_sendParam.dstEid, msgType, _sendParam.extraOptions);\\n\\n // @dev Optionally inspect the message and options depending if the OApp owner has set a msg inspector.\\n // @dev If it fails inspection, needs to revert in the implementation. ie. does not rely on return boolean\\n if (msgInspector != address(0)) IOAppMsgInspector(msgInspector).inspect(message, options);\\n }\\n\\n /// @dev Internal function to handle the receive on the LayerZero endpoint.\\n /// @param _origin The origin information.\\n /// - srcEid: The source chain endpoint ID.\\n /// - sender: The sender address from the src chain.\\n /// - nonce: The nonce of the LayerZero message.\\n /// @param _guid The unique identifier for the received LayerZero message.\\n /// @param _message The encoded message.\\n /// @dev _executor The address of the executor.\\n /// @dev _extraData Additional data.\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address /*_executor*/, // @dev unused in the default implementation.\\n bytes calldata /*_extraData*/ // @dev unused in the default implementation.\\n ) internal virtual override {\\n address toAddress = _message.sendTo().bytes32ToAddress();\\n uint256 tokenId = _message.tokenId();\\n\\n _credit(toAddress, tokenId, _origin.srcEid);\\n\\n if (_message.isComposed()) {\\n bytes memory composeMsg = ONFTComposeMsgCodec.encode(_origin.nonce, _origin.srcEid, _message.composeMsg());\\n endpoint.sendCompose(toAddress, _guid, 0 /* the index of composed message*/, composeMsg);\\n }\\n\\n emit ONFTReceived(_guid, _origin.srcEid, toAddress, tokenId);\\n }\\n\\n /// @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\\n /// @param _origin The origin information.\\n /// - srcEid: The source chain endpoint ID.\\n /// - sender: The sender address from the src chain.\\n /// - nonce: The nonce of the LayerZero message.\\n /// @param _guid The unique identifier for the received LayerZero message.\\n /// @param _message The LayerZero message.\\n /// @param _executor The address of the off-chain executor.\\n /// @param _extraData Arbitrary data passed by the msg executor.\\n /// @dev Enables the preCrime simulator to mock sending lzReceive() messages,\\n /// routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\\n function _lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual override {\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /// @dev Check if the peer is considered 'trusted' by the OApp.\\n /// @param _eid The endpoint ID to check.\\n /// @param _peer The peer to check.\\n /// @return Whether the peer passed is considered 'trusted' by the OApp.\\n /// @dev Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual override returns (bool) {\\n return peers[_eid] == _peer;\\n }\\n\\n /// @notice Sets the message inspector address for the OFT.\\n /// @param _msgInspector The address of the message inspector.\\n /// @dev This is an optional contract that can be used to inspect both 'message' and 'options'.\\n /// @dev Set it to address(0) to disable it, or set it to a contract address to enable it.\\n function setMsgInspector(address _msgInspector) public virtual onlyOwner {\\n msgInspector = _msgInspector;\\n emit MsgInspectorSet(_msgInspector);\\n }\\n\\n function _debit(address /*_from*/, uint256 /*_tokenId*/, uint32 /*_dstEid*/) internal virtual;\\n\\n function _credit(address /*_to*/, uint256 /*_tokenId*/, uint32 /*_srcEid*/) internal virtual;\\n}\\n\",\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\\\";\\n\\n/// @dev Struct representing token parameters for the ONFT send() operation.\\nstruct SendParam {\\n uint32 dstEid; // Destination LayerZero EndpointV2 ID.\\n bytes32 to; // Recipient address.\\n uint256 tokenId;\\n bytes extraOptions; // Additional options supplied by the caller to be used in the LayerZero message.\\n bytes composeMsg; // The composed message for the send() operation.\\n bytes onftCmd; // The ONFT command to be executed, unused in default ONFT implementations.\\n}\\n\\n/// @title IONFT\\n/// @dev Interface for the ONFT721 token.\\n/// @dev Does not inherit ERC721 to accommodate usage by OFT721Adapter.\\ninterface IONFT721 {\\n // Custom error messages\\n error InvalidReceiver();\\n error OnlyNFTOwner(address caller, address owner);\\n\\n // Events\\n event ONFTSent(\\n bytes32 indexed guid, // GUID of the ONFT message.\\n uint32 dstEid, // Destination Endpoint ID.\\n address indexed fromAddress, // Address of the sender on the src chain.\\n uint256 tokenId // ONFT ID sent.\\n );\\n\\n event ONFTReceived(\\n bytes32 indexed guid, // GUID of the ONFT message.\\n uint32 srcEid, // Source Endpoint ID.\\n address indexed toAddress, // Address of the recipient on the dst chain.\\n uint256 tokenId // ONFT ID received.\\n );\\n\\n /// @notice Retrieves interfaceID and the version of the ONFT.\\n /// @return interfaceId The interface ID.\\n /// @return version The version.\\n /// @dev interfaceId: This specific interface ID is '0x94642228'.\\n /// @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\\n /// @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\\n /// ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\\n function onftVersion() external view returns (bytes4 interfaceId, uint64 version);\\n\\n /// @notice Retrieves the address of the token associated with the ONFT.\\n /// @return token The address of the ERC721 token implementation.\\n function token() external view returns (address);\\n\\n /// @notice Indicates whether the OFT contract requires approval of the 'token()' to send.\\n /// @return requiresApproval Needs approval of the underlying token implementation.\\n /// @dev Allows things like wallet implementers to determine integration requirements,\\n /// without understanding the underlying token implementation.\\n function approvalRequired() external view returns (bool);\\n\\n /// @notice Provides a quote for the send() operation.\\n /// @param _sendParam The parameters for the send() operation.\\n /// @param _payInLzToken Flag indicating whether the caller is paying in the LZ token.\\n /// @return fee The calculated LayerZero messaging fee from the send() operation.\\n /// @dev MessagingFee: LayerZero msg fee\\n /// - nativeFee: The native fee.\\n /// - lzTokenFee: The lzToken fee.\\n function quoteSend(SendParam calldata _sendParam, bool _payInLzToken) external view returns (MessagingFee memory);\\n\\n /// @notice Executes the send() operation.\\n /// @param _sendParam The parameters for the send operation.\\n /// @param _fee The fee information supplied by the caller.\\n /// - nativeFee: The native fee.\\n /// - lzTokenFee: The lzToken fee.\\n /// @param _refundAddress The address to receive any excess funds from fees etc. on the src.\\n /// @return receipt The LayerZero messaging receipt from the send() operation.\\n /// @dev MessagingReceipt: LayerZero msg receipt\\n /// - guid: The unique identifier for the sent message.\\n /// - nonce: The nonce of the sent message.\\n /// - fee: The LayerZero fee incurred for the message.\\n function send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n}\\n\",\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\n/// @title ONFT721MsgCodec\\n/// @notice Library for encoding and decoding ONFT721 LayerZero messages.\\nlibrary ONFT721MsgCodec {\\n uint8 private constant SEND_TO_OFFSET = 32;\\n uint8 private constant TOKEN_ID_OFFSET = 64;\\n\\n /// @dev Encodes an ONFT721 LayerZero message payload.\\n /// @param _sendTo The recipient address.\\n /// @param _tokenId The ID of the token to transfer.\\n /// @param _composeMsg The composed payload.\\n /// @return payload The encoded message payload.\\n /// @return hasCompose A boolean indicating whether the message payload contains a composed payload.\\n function encode(\\n bytes32 _sendTo,\\n uint256 _tokenId,\\n bytes memory _composeMsg\\n ) internal view returns (bytes memory payload, bool hasCompose) {\\n hasCompose = _composeMsg.length > 0;\\n payload = hasCompose\\n ? abi.encodePacked(_sendTo, _tokenId, addressToBytes32(msg.sender), _composeMsg)\\n : abi.encodePacked(_sendTo, _tokenId);\\n }\\n\\n /// @dev Decodes sendTo from the ONFT LayerZero message.\\n /// @param _msg The message.\\n /// @return parsedSendTo The recipient address in bytes32 format.\\n function sendTo(bytes calldata _msg) internal pure returns (bytes32 parsedSendTo) {\\n parsedSendTo = bytes32(_msg[:SEND_TO_OFFSET]);\\n }\\n\\n /// @dev Decodes tokenId from the ONFT LayerZero message.\\n /// @param _msg The message.\\n /// @return parsedTokenId The ID of the tokens to transfer.\\n function tokenId(bytes calldata _msg) internal pure returns (uint256 parsedTokenId) {\\n parsedTokenId = abi.decode(_msg[SEND_TO_OFFSET:TOKEN_ID_OFFSET], (uint256));\\n }\\n\\n /// @dev Decodes whether there is a composed payload.\\n /// @param _msg The message.\\n /// @return parsedIsComposed A boolean indicating whether the message has a composed payload.\\n function isComposed(bytes calldata _msg) internal pure returns (bool parsedIsComposed) {\\n parsedIsComposed = _msg.length > TOKEN_ID_OFFSET;\\n }\\n\\n /// @dev Decodes the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeMsg The composed message.\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\\n parsedComposeMsg = _msg[TOKEN_ID_OFFSET:];\\n }\\n\\n /// @dev Converts an address to bytes32.\\n /// @param _addr The address to convert.\\n /// @return bytes32Repr The bytes32 representation of the address.\\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\\n bytes32Repr = bytes32(uint256(uint160(_addr)));\\n }\\n\\n /// @dev Converts bytes32 to an address.\\n /// @param _b The bytes32 value to convert.\\n /// @return addressRepr The address representation of bytes32.\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\\n addressRepr = address(uint160(uint256(_b)));\\n }\\n}\\n\",\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard ERC20 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\\n */\\ninterface IERC20Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC20InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC20InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC20InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC20InvalidSpender(address spender);\\n}\\n\\n/**\\n * @dev Standard ERC721 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\\n */\\ninterface IERC721Errors {\\n /**\\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\\n * Used in balance queries.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721InvalidOwner(address owner);\\n\\n /**\\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721NonexistentToken(uint256 tokenId);\\n\\n /**\\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param tokenId Identifier number of a token.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC721InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC721InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC721InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC721InvalidOperator(address operator);\\n}\\n\\n/**\\n * @dev Standard ERC1155 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\\n */\\ninterface IERC1155Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC1155InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC1155InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC1155MissingApprovalForAll(address operator, address owner);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC1155InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC1155InvalidOperator(address operator);\\n\\n /**\\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\\n * Used in batch transfers.\\n * @param idsLength Length of the array of token identifiers\\n * @param valuesLength Length of the array of token amounts\\n */\\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\\n}\\n\",\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the value of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the value of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\\n * allowance mechanism. `value` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 value) external returns (bool);\\n}\\n\",\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n * doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n * token.safeTransferFrom(msg.sender, address(this), value);\\n * ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n /**\\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n * given ``owner``'s signed approval.\\n *\\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n * ordering also apply here.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `deadline` must be a timestamp in the future.\\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n * over the EIP712-formatted function arguments.\\n * - the signature must use ``owner``'s current nonce (see {nonces}).\\n *\\n * For more information on the signature format, see the\\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n * section].\\n *\\n * CAUTION: See Security Considerations above.\\n */\\n function permit(\\n address owner,\\n address spender,\\n uint256 value,\\n uint256 deadline,\\n uint8 v,\\n bytes32 r,\\n bytes32 s\\n ) external;\\n\\n /**\\n * @dev Returns the current nonce for `owner`. This value must be\\n * included whenever a signature is generated for {permit}.\\n *\\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n * prevents a signature from being used multiple times.\\n */\\n function nonces(address owner) external view returns (uint256);\\n\\n /**\\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n */\\n // solhint-disable-next-line func-name-mixedcase\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"../IERC20.sol\\\";\\nimport {IERC20Permit} from \\\"../extensions/IERC20Permit.sol\\\";\\nimport {Address} from \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n using Address for address;\\n\\n /**\\n * @dev An operation with an ERC20 token failed.\\n */\\n error SafeERC20FailedOperation(address token);\\n\\n /**\\n * @dev Indicates a failed `decreaseAllowance` request.\\n */\\n error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\\n\\n /**\\n * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\\n }\\n\\n /**\\n * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n */\\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\\n }\\n\\n /**\\n * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n uint256 oldAllowance = token.allowance(address(this), spender);\\n forceApprove(token, spender, oldAllowance + value);\\n }\\n\\n /**\\n * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\\n * value, non-reverting calls are assumed to be successful.\\n */\\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\\n unchecked {\\n uint256 currentAllowance = token.allowance(address(this), spender);\\n if (currentAllowance < requestedDecrease) {\\n revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\\n }\\n forceApprove(token, spender, currentAllowance - requestedDecrease);\\n }\\n }\\n\\n /**\\n * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n * to be set to zero before setting it to a non-zero value, such as USDT.\\n */\\n function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\\n\\n if (!_callOptionalReturnBool(token, approvalCall)) {\\n _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\\n _callOptionalReturn(token, approvalCall);\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n */\\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n // the target address contains contract code and also asserts for success in the low-level call.\\n\\n bytes memory returndata = address(token).functionCall(data);\\n if (returndata.length != 0 && !abi.decode(returndata, (bool))) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n *\\n * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n */\\n function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n // and not revert is the subcall reverts.\\n\\n (bool success, bytes memory returndata) = address(token).call(data);\\n return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && address(token).code.length > 0;\\n }\\n}\\n\",\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC721} from \\\"./IERC721.sol\\\";\\nimport {IERC721Receiver} from \\\"./IERC721Receiver.sol\\\";\\nimport {IERC721Metadata} from \\\"./extensions/IERC721Metadata.sol\\\";\\nimport {Context} from \\\"../../utils/Context.sol\\\";\\nimport {Strings} from \\\"../../utils/Strings.sol\\\";\\nimport {IERC165, ERC165} from \\\"../../utils/introspection/ERC165.sol\\\";\\nimport {IERC721Errors} from \\\"../../interfaces/draft-IERC6093.sol\\\";\\n\\n/**\\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\\n * {ERC721Enumerable}.\\n */\\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\\n using Strings for uint256;\\n\\n // Token name\\n string private _name;\\n\\n // Token symbol\\n string private _symbol;\\n\\n mapping(uint256 tokenId => address) private _owners;\\n\\n mapping(address owner => uint256) private _balances;\\n\\n mapping(uint256 tokenId => address) private _tokenApprovals;\\n\\n mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\\n\\n /**\\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\n return\\n interfaceId == type(IERC721).interfaceId ||\\n interfaceId == type(IERC721Metadata).interfaceId ||\\n super.supportsInterface(interfaceId);\\n }\\n\\n /**\\n * @dev See {IERC721-balanceOf}.\\n */\\n function balanceOf(address owner) public view virtual returns (uint256) {\\n if (owner == address(0)) {\\n revert ERC721InvalidOwner(address(0));\\n }\\n return _balances[owner];\\n }\\n\\n /**\\n * @dev See {IERC721-ownerOf}.\\n */\\n function ownerOf(uint256 tokenId) public view virtual returns (address) {\\n return _requireOwned(tokenId);\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-name}.\\n */\\n function name() public view virtual returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-symbol}.\\n */\\n function symbol() public view virtual returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-tokenURI}.\\n */\\n function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\\n _requireOwned(tokenId);\\n\\n string memory baseURI = _baseURI();\\n return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \\\"\\\";\\n }\\n\\n /**\\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\\n * by default, can be overridden in child contracts.\\n */\\n function _baseURI() internal view virtual returns (string memory) {\\n return \\\"\\\";\\n }\\n\\n /**\\n * @dev See {IERC721-approve}.\\n */\\n function approve(address to, uint256 tokenId) public virtual {\\n _approve(to, tokenId, _msgSender());\\n }\\n\\n /**\\n * @dev See {IERC721-getApproved}.\\n */\\n function getApproved(uint256 tokenId) public view virtual returns (address) {\\n _requireOwned(tokenId);\\n\\n return _getApproved(tokenId);\\n }\\n\\n /**\\n * @dev See {IERC721-setApprovalForAll}.\\n */\\n function setApprovalForAll(address operator, bool approved) public virtual {\\n _setApprovalForAll(_msgSender(), operator, approved);\\n }\\n\\n /**\\n * @dev See {IERC721-isApprovedForAll}.\\n */\\n function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\\n return _operatorApprovals[owner][operator];\\n }\\n\\n /**\\n * @dev See {IERC721-transferFrom}.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) public virtual {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n // Setting an \\\"auth\\\" arguments enables the `_isAuthorized` check which verifies that the token exists\\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\\n address previousOwner = _update(to, tokenId, _msgSender());\\n if (previousOwner != from) {\\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\\n }\\n }\\n\\n /**\\n * @dev See {IERC721-safeTransferFrom}.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\\n safeTransferFrom(from, to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev See {IERC721-safeTransferFrom}.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\\n transferFrom(from, to, tokenId);\\n _checkOnERC721Received(from, to, tokenId, data);\\n }\\n\\n /**\\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\\n *\\n * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\\n * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\\n * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\\n * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\\n */\\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\\n return _owners[tokenId];\\n }\\n\\n /**\\n * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\\n */\\n function _getApproved(uint256 tokenId) internal view virtual returns (address) {\\n return _tokenApprovals[tokenId];\\n }\\n\\n /**\\n * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\\n * particular (ignoring whether it is owned by `owner`).\\n *\\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\\n * assumption.\\n */\\n function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\\n return\\n spender != address(0) &&\\n (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\\n }\\n\\n /**\\n * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\\n * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\\n * the `spender` for the specific `tokenId`.\\n *\\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\\n * assumption.\\n */\\n function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\\n if (!_isAuthorized(owner, spender, tokenId)) {\\n if (owner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n } else {\\n revert ERC721InsufficientApproval(spender, tokenId);\\n }\\n }\\n }\\n\\n /**\\n * @dev Unsafe write access to the balances, used by extensions that \\\"mint\\\" tokens using an {ownerOf} override.\\n *\\n * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\\n * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\\n *\\n * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\\n * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\\n * remain consistent with one another.\\n */\\n function _increaseBalance(address account, uint128 value) internal virtual {\\n unchecked {\\n _balances[account] += value;\\n }\\n }\\n\\n /**\\n * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\\n * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\\n *\\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that\\n * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\\n *\\n * Emits a {Transfer} event.\\n *\\n * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\\n */\\n function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\\n address from = _ownerOf(tokenId);\\n\\n // Perform (optional) operator check\\n if (auth != address(0)) {\\n _checkAuthorized(from, auth, tokenId);\\n }\\n\\n // Execute the update\\n if (from != address(0)) {\\n // Clear approval. No need to re-authorize or emit the Approval event\\n _approve(address(0), tokenId, address(0), false);\\n\\n unchecked {\\n _balances[from] -= 1;\\n }\\n }\\n\\n if (to != address(0)) {\\n unchecked {\\n _balances[to] += 1;\\n }\\n }\\n\\n _owners[tokenId] = to;\\n\\n emit Transfer(from, to, tokenId);\\n\\n return from;\\n }\\n\\n /**\\n * @dev Mints `tokenId` and transfers it to `to`.\\n *\\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\\n *\\n * Requirements:\\n *\\n * - `tokenId` must not exist.\\n * - `to` cannot be the zero address.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _mint(address to, uint256 tokenId) internal {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n address previousOwner = _update(to, tokenId, address(0));\\n if (previousOwner != address(0)) {\\n revert ERC721InvalidSender(address(0));\\n }\\n }\\n\\n /**\\n * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must not exist.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _safeMint(address to, uint256 tokenId) internal {\\n _safeMint(to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\n */\\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\\n _mint(to, tokenId);\\n _checkOnERC721Received(address(0), to, tokenId, data);\\n }\\n\\n /**\\n * @dev Destroys `tokenId`.\\n * The approval is cleared when the token is burned.\\n * This is an internal function that does not check if the sender is authorized to operate on the token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _burn(uint256 tokenId) internal {\\n address previousOwner = _update(address(0), tokenId, address(0));\\n if (previousOwner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n }\\n }\\n\\n /**\\n * @dev Transfers `tokenId` from `from` to `to`.\\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _transfer(address from, address to, uint256 tokenId) internal {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n address previousOwner = _update(to, tokenId, address(0));\\n if (previousOwner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n } else if (previousOwner != from) {\\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\\n }\\n }\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\\n * are aware of the ERC721 standard to prevent tokens from being forever locked.\\n *\\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\\n *\\n * This internal function is like {safeTransferFrom} in the sense that it invokes\\n * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\\n * implement alternative mechanisms to perform token transfer, such as signature-based.\\n *\\n * Requirements:\\n *\\n * - `tokenId` token must exist and be owned by `from`.\\n * - `to` cannot be the zero address.\\n * - `from` cannot be the zero address.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _safeTransfer(address from, address to, uint256 tokenId) internal {\\n _safeTransfer(from, to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\n */\\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\\n _transfer(from, to, tokenId);\\n _checkOnERC721Received(from, to, tokenId, data);\\n }\\n\\n /**\\n * @dev Approve `to` to operate on `tokenId`\\n *\\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\\n * either the owner of the token, or approved to operate on all tokens held by this owner.\\n *\\n * Emits an {Approval} event.\\n *\\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\\n */\\n function _approve(address to, uint256 tokenId, address auth) internal {\\n _approve(to, tokenId, auth, true);\\n }\\n\\n /**\\n * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\\n * emitted in the context of transfers.\\n */\\n function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\\n // Avoid reading the owner unless necessary\\n if (emitEvent || auth != address(0)) {\\n address owner = _requireOwned(tokenId);\\n\\n // We do not use _isAuthorized because single-token approvals should not be able to call approve\\n if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\\n revert ERC721InvalidApprover(auth);\\n }\\n\\n if (emitEvent) {\\n emit Approval(owner, to, tokenId);\\n }\\n }\\n\\n _tokenApprovals[tokenId] = to;\\n }\\n\\n /**\\n * @dev Approve `operator` to operate on all of `owner` tokens\\n *\\n * Requirements:\\n * - operator can't be the address zero.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\\n if (operator == address(0)) {\\n revert ERC721InvalidOperator(operator);\\n }\\n _operatorApprovals[owner][operator] = approved;\\n emit ApprovalForAll(owner, operator, approved);\\n }\\n\\n /**\\n * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\\n * Returns the owner.\\n *\\n * Overrides to ownership logic should be done to {_ownerOf}.\\n */\\n function _requireOwned(uint256 tokenId) internal view returns (address) {\\n address owner = _ownerOf(tokenId);\\n if (owner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n }\\n return owner;\\n }\\n\\n /**\\n * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\\n * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\\n *\\n * @param from address representing the previous owner of the given token ID\\n * @param to target address that will receive the tokens\\n * @param tokenId uint256 ID of the token to be transferred\\n * @param data bytes optional data to send along with the call\\n */\\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {\\n if (to.code.length > 0) {\\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\\n if (retval != IERC721Receiver.onERC721Received.selector) {\\n revert ERC721InvalidReceiver(to);\\n }\\n } catch (bytes memory reason) {\\n if (reason.length == 0) {\\n revert ERC721InvalidReceiver(to);\\n } else {\\n /// @solidity memory-safe-assembly\\n assembly {\\n revert(add(32, reason), mload(reason))\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"../../utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Required interface of an ERC721 compliant contract.\\n */\\ninterface IERC721 is IERC165 {\\n /**\\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\\n */\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\\n */\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\n\\n /**\\n * @dev Returns the number of tokens in ``owner``'s account.\\n */\\n function balanceOf(address owner) external view returns (uint256 balance);\\n\\n /**\\n * @dev Returns the owner of the `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\\n * {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Transfers `tokenId` token from `from` to `to`.\\n *\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\\n * The approval is cleared when the token is transferred.\\n *\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\n *\\n * Requirements:\\n *\\n * - The caller must own the token or be an approved operator.\\n * - `tokenId` must exist.\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Approve or remove `operator` as an operator for the caller.\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\n *\\n * Requirements:\\n *\\n * - The `operator` cannot be the address zero.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function setApprovalForAll(address operator, bool approved) external;\\n\\n /**\\n * @dev Returns the account approved for `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function getApproved(uint256 tokenId) external view returns (address operator);\\n\\n /**\\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\\n *\\n * See {setApprovalForAll}\\n */\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @title ERC721 token receiver interface\\n * @dev Interface for any contract that wants to support safeTransfers\\n * from ERC721 asset contracts.\\n */\\ninterface IERC721Receiver {\\n /**\\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\\n * by `operator` from `from`, this function is called.\\n *\\n * It must return its Solidity selector to confirm the token transfer.\\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\\n * reverted.\\n *\\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\\n */\\n function onERC721Received(\\n address operator,\\n address from,\\n uint256 tokenId,\\n bytes calldata data\\n ) external returns (bytes4);\\n}\\n\",\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC721} from \\\"../IERC721.sol\\\";\\n\\n/**\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\n */\\ninterface IERC721Metadata is IERC721 {\\n /**\\n * @dev Returns the token collection name.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the token collection symbol.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\\n */\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev The ETH balance of the account is not enough to perform the operation.\\n */\\n error AddressInsufficientBalance(address account);\\n\\n /**\\n * @dev There's no code at `target` (it is not a contract).\\n */\\n error AddressEmptyCode(address target);\\n\\n /**\\n * @dev A call to an address target failed. The target may have reverted.\\n */\\n error FailedInnerCall();\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n if (address(this).balance < amount) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n if (!success) {\\n revert FailedInnerCall();\\n }\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason or custom error, it is bubbled\\n * up by this function (like regular Solidity function calls). However, if\\n * the call reverted with no returned reason, this function reverts with a\\n * {FailedInnerCall} error.\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n if (address(this).balance < value) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\\n * unsuccessful call.\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata\\n ) internal view returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n // only check if target is a contract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n if (returndata.length == 0 && target.code.length == 0) {\\n revert AddressEmptyCode(target);\\n }\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\\n * revert reason or with a default {FailedInnerCall} error.\\n */\\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\\n */\\n function _revert(bytes memory returndata) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert FailedInnerCall();\\n }\\n }\\n}\\n\",\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Math} from \\\"./math/Math.sol\\\";\\nimport {SignedMath} from \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n bytes16 private constant HEX_DIGITS = \\\"0123456789abcdef\\\";\\n uint8 private constant ADDRESS_LENGTH = 20;\\n\\n /**\\n * @dev The `value` string doesn't fit in the specified `length`.\\n */\\n error StringsInsufficientHexLength(uint256 value, uint256 length);\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n */\\n function toString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n uint256 length = Math.log10(value) + 1;\\n string memory buffer = new string(length);\\n uint256 ptr;\\n /// @solidity memory-safe-assembly\\n assembly {\\n ptr := add(buffer, add(32, length))\\n }\\n while (true) {\\n ptr--;\\n /// @solidity memory-safe-assembly\\n assembly {\\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\\n }\\n value /= 10;\\n if (value == 0) break;\\n }\\n return buffer;\\n }\\n }\\n\\n /**\\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n */\\n function toStringSigned(int256 value) internal pure returns (string memory) {\\n return string.concat(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value)));\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n */\\n function toHexString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n return toHexString(value, Math.log256(value) + 1);\\n }\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n */\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n uint256 localValue = value;\\n bytes memory buffer = new bytes(2 * length + 2);\\n buffer[0] = \\\"0\\\";\\n buffer[1] = \\\"x\\\";\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\n buffer[i] = HEX_DIGITS[localValue & 0xf];\\n localValue >>= 4;\\n }\\n if (localValue != 0) {\\n revert StringsInsufficientHexLength(value, length);\\n }\\n return string(buffer);\\n }\\n\\n /**\\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\\n * representation.\\n */\\n function toHexString(address addr) internal pure returns (string memory) {\\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\\n }\\n\\n /**\\n * @dev Returns true if the two strings are equal.\\n */\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\\n }\\n}\\n\",\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n */\\nabstract contract ERC165 is IERC165 {\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\\n return interfaceId == type(IERC165).interfaceId;\\n }\\n}\\n\",\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n /**\\n * @dev Muldiv operation overflow.\\n */\\n error MathOverflowedMulDiv();\\n\\n enum Rounding {\\n Floor, // Toward negative infinity\\n Ceil, // Toward positive infinity\\n Trunc, // Toward zero\\n Expand // Away from zero\\n }\\n\\n /**\\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\\n */\\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n uint256 c = a + b;\\n if (c < a) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\\n */\\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b > a) return (false, 0);\\n return (true, a - b);\\n }\\n }\\n\\n /**\\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\\n */\\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\\n // benefit is lost if 'b' is also tested.\\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\\n if (a == 0) return (true, 0);\\n uint256 c = a * b;\\n if (c / a != b) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\\n */\\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a / b);\\n }\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\\n */\\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a % b);\\n }\\n }\\n\\n /**\\n * @dev Returns the largest of two numbers.\\n */\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two numbers.\\n */\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two numbers. The result is rounded towards\\n * zero.\\n */\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b) / 2 can overflow.\\n return (a & b) + (a ^ b) / 2;\\n }\\n\\n /**\\n * @dev Returns the ceiling of the division of two numbers.\\n *\\n * This differs from standard division with `/` in that it rounds towards infinity instead\\n * of rounding towards zero.\\n */\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n if (b == 0) {\\n // Guarantee the same behavior as in a regular Solidity division.\\n return a / b;\\n }\\n\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\n return a == 0 ? 0 : (a - 1) / b + 1;\\n }\\n\\n /**\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\\n * denominator == 0.\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\\n * Uniswap Labs also under MIT license.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n unchecked {\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n // variables such that product = prod1 * 2^256 + prod0.\\n uint256 prod0 = x * y; // Least significant 256 bits of the product\\n uint256 prod1; // Most significant 256 bits of the product\\n assembly {\\n let mm := mulmod(x, y, not(0))\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n }\\n\\n // Handle non-overflow cases, 256 by 256 division.\\n if (prod1 == 0) {\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n // The surrounding unchecked block does not change this fact.\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n return prod0 / denominator;\\n }\\n\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n if (denominator <= prod1) {\\n revert MathOverflowedMulDiv();\\n }\\n\\n ///////////////////////////////////////////////\\n // 512 by 256 division.\\n ///////////////////////////////////////////////\\n\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\n uint256 remainder;\\n assembly {\\n // Compute remainder using mulmod.\\n remainder := mulmod(x, y, denominator)\\n\\n // Subtract 256 bit number from 512 bit number.\\n prod1 := sub(prod1, gt(remainder, prod0))\\n prod0 := sub(prod0, remainder)\\n }\\n\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\\n\\n uint256 twos = denominator & (0 - denominator);\\n assembly {\\n // Divide denominator by twos.\\n denominator := div(denominator, twos)\\n\\n // Divide [prod1 prod0] by twos.\\n prod0 := div(prod0, twos)\\n\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n twos := add(div(sub(0, twos), twos), 1)\\n }\\n\\n // Shift in bits from prod1 into prod0.\\n prod0 |= prod1 * twos;\\n\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\n uint256 inverse = (3 * denominator) ^ 2;\\n\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\\n // works in modular arithmetic, doubling the correct bits in each step.\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n // is no longer required.\\n result = prod0 * inverse;\\n return result;\\n }\\n }\\n\\n /**\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n uint256 result = mulDiv(x, y, denominator);\\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\\n result += 1;\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\\n * towards zero.\\n *\\n * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n */\\n function sqrt(uint256 a) internal pure returns (uint256) {\\n if (a == 0) {\\n return 0;\\n }\\n\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n //\\n // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n //\\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n //\\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n uint256 result = 1 << (log2(a) >> 1);\\n\\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n // into the expected uint128 result.\\n unchecked {\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n return min(result, a / result);\\n }\\n }\\n\\n /**\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\n */\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = sqrt(a);\\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 2 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 128;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 64;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 32;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 16;\\n }\\n if (value >> 8 > 0) {\\n value >>= 8;\\n result += 8;\\n }\\n if (value >> 4 > 0) {\\n value >>= 4;\\n result += 4;\\n }\\n if (value >> 2 > 0) {\\n value >>= 2;\\n result += 2;\\n }\\n if (value >> 1 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log2(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 10 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >= 10 ** 64) {\\n value /= 10 ** 64;\\n result += 64;\\n }\\n if (value >= 10 ** 32) {\\n value /= 10 ** 32;\\n result += 32;\\n }\\n if (value >= 10 ** 16) {\\n value /= 10 ** 16;\\n result += 16;\\n }\\n if (value >= 10 ** 8) {\\n value /= 10 ** 8;\\n result += 8;\\n }\\n if (value >= 10 ** 4) {\\n value /= 10 ** 4;\\n result += 4;\\n }\\n if (value >= 10 ** 2) {\\n value /= 10 ** 2;\\n result += 2;\\n }\\n if (value >= 10 ** 1) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log10(value);\\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 256 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n *\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n */\\n function log256(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 16;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 8;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 4;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 2;\\n }\\n if (value >> 8 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log256(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\\n */\\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\\n return uint8(rounding) % 2 == 1;\\n }\\n}\\n\",\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SafeCast.sol)\\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\\n * checks.\\n *\\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\\n * easily result in undesired exploitation or bugs, since developers usually\\n * assume that overflows raise errors. `SafeCast` restores this intuition by\\n * reverting the transaction when such an operation overflows.\\n *\\n * Using this library instead of the unchecked operations eliminates an entire\\n * class of bugs, so it's recommended to use it always.\\n */\\nlibrary SafeCast {\\n /**\\n * @dev Value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\\n\\n /**\\n * @dev An int value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedIntToUint(int256 value);\\n\\n /**\\n * @dev Value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\\n\\n /**\\n * @dev An uint value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedUintToInt(uint256 value);\\n\\n /**\\n * @dev Returns the downcasted uint248 from uint256, reverting on\\n * overflow (when the input is greater than largest uint248).\\n *\\n * Counterpart to Solidity's `uint248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toUint248(uint256 value) internal pure returns (uint248) {\\n if (value > type(uint248).max) {\\n revert SafeCastOverflowedUintDowncast(248, value);\\n }\\n return uint248(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint240 from uint256, reverting on\\n * overflow (when the input is greater than largest uint240).\\n *\\n * Counterpart to Solidity's `uint240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toUint240(uint256 value) internal pure returns (uint240) {\\n if (value > type(uint240).max) {\\n revert SafeCastOverflowedUintDowncast(240, value);\\n }\\n return uint240(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint232 from uint256, reverting on\\n * overflow (when the input is greater than largest uint232).\\n *\\n * Counterpart to Solidity's `uint232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toUint232(uint256 value) internal pure returns (uint232) {\\n if (value > type(uint232).max) {\\n revert SafeCastOverflowedUintDowncast(232, value);\\n }\\n return uint232(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint224 from uint256, reverting on\\n * overflow (when the input is greater than largest uint224).\\n *\\n * Counterpart to Solidity's `uint224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toUint224(uint256 value) internal pure returns (uint224) {\\n if (value > type(uint224).max) {\\n revert SafeCastOverflowedUintDowncast(224, value);\\n }\\n return uint224(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint216 from uint256, reverting on\\n * overflow (when the input is greater than largest uint216).\\n *\\n * Counterpart to Solidity's `uint216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toUint216(uint256 value) internal pure returns (uint216) {\\n if (value > type(uint216).max) {\\n revert SafeCastOverflowedUintDowncast(216, value);\\n }\\n return uint216(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint208 from uint256, reverting on\\n * overflow (when the input is greater than largest uint208).\\n *\\n * Counterpart to Solidity's `uint208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toUint208(uint256 value) internal pure returns (uint208) {\\n if (value > type(uint208).max) {\\n revert SafeCastOverflowedUintDowncast(208, value);\\n }\\n return uint208(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint200 from uint256, reverting on\\n * overflow (when the input is greater than largest uint200).\\n *\\n * Counterpart to Solidity's `uint200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toUint200(uint256 value) internal pure returns (uint200) {\\n if (value > type(uint200).max) {\\n revert SafeCastOverflowedUintDowncast(200, value);\\n }\\n return uint200(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint192 from uint256, reverting on\\n * overflow (when the input is greater than largest uint192).\\n *\\n * Counterpart to Solidity's `uint192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toUint192(uint256 value) internal pure returns (uint192) {\\n if (value > type(uint192).max) {\\n revert SafeCastOverflowedUintDowncast(192, value);\\n }\\n return uint192(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint184 from uint256, reverting on\\n * overflow (when the input is greater than largest uint184).\\n *\\n * Counterpart to Solidity's `uint184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toUint184(uint256 value) internal pure returns (uint184) {\\n if (value > type(uint184).max) {\\n revert SafeCastOverflowedUintDowncast(184, value);\\n }\\n return uint184(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint176 from uint256, reverting on\\n * overflow (when the input is greater than largest uint176).\\n *\\n * Counterpart to Solidity's `uint176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toUint176(uint256 value) internal pure returns (uint176) {\\n if (value > type(uint176).max) {\\n revert SafeCastOverflowedUintDowncast(176, value);\\n }\\n return uint176(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint168 from uint256, reverting on\\n * overflow (when the input is greater than largest uint168).\\n *\\n * Counterpart to Solidity's `uint168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toUint168(uint256 value) internal pure returns (uint168) {\\n if (value > type(uint168).max) {\\n revert SafeCastOverflowedUintDowncast(168, value);\\n }\\n return uint168(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint160 from uint256, reverting on\\n * overflow (when the input is greater than largest uint160).\\n *\\n * Counterpart to Solidity's `uint160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toUint160(uint256 value) internal pure returns (uint160) {\\n if (value > type(uint160).max) {\\n revert SafeCastOverflowedUintDowncast(160, value);\\n }\\n return uint160(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint152 from uint256, reverting on\\n * overflow (when the input is greater than largest uint152).\\n *\\n * Counterpart to Solidity's `uint152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toUint152(uint256 value) internal pure returns (uint152) {\\n if (value > type(uint152).max) {\\n revert SafeCastOverflowedUintDowncast(152, value);\\n }\\n return uint152(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint144 from uint256, reverting on\\n * overflow (when the input is greater than largest uint144).\\n *\\n * Counterpart to Solidity's `uint144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toUint144(uint256 value) internal pure returns (uint144) {\\n if (value > type(uint144).max) {\\n revert SafeCastOverflowedUintDowncast(144, value);\\n }\\n return uint144(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint136 from uint256, reverting on\\n * overflow (when the input is greater than largest uint136).\\n *\\n * Counterpart to Solidity's `uint136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toUint136(uint256 value) internal pure returns (uint136) {\\n if (value > type(uint136).max) {\\n revert SafeCastOverflowedUintDowncast(136, value);\\n }\\n return uint136(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint128 from uint256, reverting on\\n * overflow (when the input is greater than largest uint128).\\n *\\n * Counterpart to Solidity's `uint128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toUint128(uint256 value) internal pure returns (uint128) {\\n if (value > type(uint128).max) {\\n revert SafeCastOverflowedUintDowncast(128, value);\\n }\\n return uint128(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint120 from uint256, reverting on\\n * overflow (when the input is greater than largest uint120).\\n *\\n * Counterpart to Solidity's `uint120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toUint120(uint256 value) internal pure returns (uint120) {\\n if (value > type(uint120).max) {\\n revert SafeCastOverflowedUintDowncast(120, value);\\n }\\n return uint120(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint112 from uint256, reverting on\\n * overflow (when the input is greater than largest uint112).\\n *\\n * Counterpart to Solidity's `uint112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toUint112(uint256 value) internal pure returns (uint112) {\\n if (value > type(uint112).max) {\\n revert SafeCastOverflowedUintDowncast(112, value);\\n }\\n return uint112(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint104 from uint256, reverting on\\n * overflow (when the input is greater than largest uint104).\\n *\\n * Counterpart to Solidity's `uint104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toUint104(uint256 value) internal pure returns (uint104) {\\n if (value > type(uint104).max) {\\n revert SafeCastOverflowedUintDowncast(104, value);\\n }\\n return uint104(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint96 from uint256, reverting on\\n * overflow (when the input is greater than largest uint96).\\n *\\n * Counterpart to Solidity's `uint96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toUint96(uint256 value) internal pure returns (uint96) {\\n if (value > type(uint96).max) {\\n revert SafeCastOverflowedUintDowncast(96, value);\\n }\\n return uint96(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint88 from uint256, reverting on\\n * overflow (when the input is greater than largest uint88).\\n *\\n * Counterpart to Solidity's `uint88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toUint88(uint256 value) internal pure returns (uint88) {\\n if (value > type(uint88).max) {\\n revert SafeCastOverflowedUintDowncast(88, value);\\n }\\n return uint88(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint80 from uint256, reverting on\\n * overflow (when the input is greater than largest uint80).\\n *\\n * Counterpart to Solidity's `uint80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toUint80(uint256 value) internal pure returns (uint80) {\\n if (value > type(uint80).max) {\\n revert SafeCastOverflowedUintDowncast(80, value);\\n }\\n return uint80(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint72 from uint256, reverting on\\n * overflow (when the input is greater than largest uint72).\\n *\\n * Counterpart to Solidity's `uint72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toUint72(uint256 value) internal pure returns (uint72) {\\n if (value > type(uint72).max) {\\n revert SafeCastOverflowedUintDowncast(72, value);\\n }\\n return uint72(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint64 from uint256, reverting on\\n * overflow (when the input is greater than largest uint64).\\n *\\n * Counterpart to Solidity's `uint64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toUint64(uint256 value) internal pure returns (uint64) {\\n if (value > type(uint64).max) {\\n revert SafeCastOverflowedUintDowncast(64, value);\\n }\\n return uint64(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint56 from uint256, reverting on\\n * overflow (when the input is greater than largest uint56).\\n *\\n * Counterpart to Solidity's `uint56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toUint56(uint256 value) internal pure returns (uint56) {\\n if (value > type(uint56).max) {\\n revert SafeCastOverflowedUintDowncast(56, value);\\n }\\n return uint56(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint48 from uint256, reverting on\\n * overflow (when the input is greater than largest uint48).\\n *\\n * Counterpart to Solidity's `uint48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toUint48(uint256 value) internal pure returns (uint48) {\\n if (value > type(uint48).max) {\\n revert SafeCastOverflowedUintDowncast(48, value);\\n }\\n return uint48(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint40 from uint256, reverting on\\n * overflow (when the input is greater than largest uint40).\\n *\\n * Counterpart to Solidity's `uint40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toUint40(uint256 value) internal pure returns (uint40) {\\n if (value > type(uint40).max) {\\n revert SafeCastOverflowedUintDowncast(40, value);\\n }\\n return uint40(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint32 from uint256, reverting on\\n * overflow (when the input is greater than largest uint32).\\n *\\n * Counterpart to Solidity's `uint32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toUint32(uint256 value) internal pure returns (uint32) {\\n if (value > type(uint32).max) {\\n revert SafeCastOverflowedUintDowncast(32, value);\\n }\\n return uint32(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint24 from uint256, reverting on\\n * overflow (when the input is greater than largest uint24).\\n *\\n * Counterpart to Solidity's `uint24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toUint24(uint256 value) internal pure returns (uint24) {\\n if (value > type(uint24).max) {\\n revert SafeCastOverflowedUintDowncast(24, value);\\n }\\n return uint24(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint16 from uint256, reverting on\\n * overflow (when the input is greater than largest uint16).\\n *\\n * Counterpart to Solidity's `uint16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toUint16(uint256 value) internal pure returns (uint16) {\\n if (value > type(uint16).max) {\\n revert SafeCastOverflowedUintDowncast(16, value);\\n }\\n return uint16(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint8 from uint256, reverting on\\n * overflow (when the input is greater than largest uint8).\\n *\\n * Counterpart to Solidity's `uint8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toUint8(uint256 value) internal pure returns (uint8) {\\n if (value > type(uint8).max) {\\n revert SafeCastOverflowedUintDowncast(8, value);\\n }\\n return uint8(value);\\n }\\n\\n /**\\n * @dev Converts a signed int256 into an unsigned uint256.\\n *\\n * Requirements:\\n *\\n * - input must be greater than or equal to 0.\\n */\\n function toUint256(int256 value) internal pure returns (uint256) {\\n if (value < 0) {\\n revert SafeCastOverflowedIntToUint(value);\\n }\\n return uint256(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted int248 from int256, reverting on\\n * overflow (when the input is less than smallest int248 or\\n * greater than largest int248).\\n *\\n * Counterpart to Solidity's `int248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\\n downcasted = int248(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(248, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int240 from int256, reverting on\\n * overflow (when the input is less than smallest int240 or\\n * greater than largest int240).\\n *\\n * Counterpart to Solidity's `int240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\\n downcasted = int240(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(240, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int232 from int256, reverting on\\n * overflow (when the input is less than smallest int232 or\\n * greater than largest int232).\\n *\\n * Counterpart to Solidity's `int232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\\n downcasted = int232(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(232, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int224 from int256, reverting on\\n * overflow (when the input is less than smallest int224 or\\n * greater than largest int224).\\n *\\n * Counterpart to Solidity's `int224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\\n downcasted = int224(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(224, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int216 from int256, reverting on\\n * overflow (when the input is less than smallest int216 or\\n * greater than largest int216).\\n *\\n * Counterpart to Solidity's `int216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\\n downcasted = int216(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(216, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int208 from int256, reverting on\\n * overflow (when the input is less than smallest int208 or\\n * greater than largest int208).\\n *\\n * Counterpart to Solidity's `int208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\\n downcasted = int208(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(208, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int200 from int256, reverting on\\n * overflow (when the input is less than smallest int200 or\\n * greater than largest int200).\\n *\\n * Counterpart to Solidity's `int200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\\n downcasted = int200(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(200, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int192 from int256, reverting on\\n * overflow (when the input is less than smallest int192 or\\n * greater than largest int192).\\n *\\n * Counterpart to Solidity's `int192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\\n downcasted = int192(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(192, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int184 from int256, reverting on\\n * overflow (when the input is less than smallest int184 or\\n * greater than largest int184).\\n *\\n * Counterpart to Solidity's `int184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\\n downcasted = int184(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(184, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int176 from int256, reverting on\\n * overflow (when the input is less than smallest int176 or\\n * greater than largest int176).\\n *\\n * Counterpart to Solidity's `int176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\\n downcasted = int176(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(176, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int168 from int256, reverting on\\n * overflow (when the input is less than smallest int168 or\\n * greater than largest int168).\\n *\\n * Counterpart to Solidity's `int168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\\n downcasted = int168(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(168, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int160 from int256, reverting on\\n * overflow (when the input is less than smallest int160 or\\n * greater than largest int160).\\n *\\n * Counterpart to Solidity's `int160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\\n downcasted = int160(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(160, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int152 from int256, reverting on\\n * overflow (when the input is less than smallest int152 or\\n * greater than largest int152).\\n *\\n * Counterpart to Solidity's `int152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\\n downcasted = int152(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(152, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int144 from int256, reverting on\\n * overflow (when the input is less than smallest int144 or\\n * greater than largest int144).\\n *\\n * Counterpart to Solidity's `int144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\\n downcasted = int144(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(144, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int136 from int256, reverting on\\n * overflow (when the input is less than smallest int136 or\\n * greater than largest int136).\\n *\\n * Counterpart to Solidity's `int136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\\n downcasted = int136(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(136, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int128 from int256, reverting on\\n * overflow (when the input is less than smallest int128 or\\n * greater than largest int128).\\n *\\n * Counterpart to Solidity's `int128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\\n downcasted = int128(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(128, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int120 from int256, reverting on\\n * overflow (when the input is less than smallest int120 or\\n * greater than largest int120).\\n *\\n * Counterpart to Solidity's `int120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\\n downcasted = int120(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(120, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int112 from int256, reverting on\\n * overflow (when the input is less than smallest int112 or\\n * greater than largest int112).\\n *\\n * Counterpart to Solidity's `int112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\\n downcasted = int112(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(112, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int104 from int256, reverting on\\n * overflow (when the input is less than smallest int104 or\\n * greater than largest int104).\\n *\\n * Counterpart to Solidity's `int104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\\n downcasted = int104(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(104, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int96 from int256, reverting on\\n * overflow (when the input is less than smallest int96 or\\n * greater than largest int96).\\n *\\n * Counterpart to Solidity's `int96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\\n downcasted = int96(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(96, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int88 from int256, reverting on\\n * overflow (when the input is less than smallest int88 or\\n * greater than largest int88).\\n *\\n * Counterpart to Solidity's `int88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\\n downcasted = int88(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(88, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int80 from int256, reverting on\\n * overflow (when the input is less than smallest int80 or\\n * greater than largest int80).\\n *\\n * Counterpart to Solidity's `int80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\\n downcasted = int80(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(80, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int72 from int256, reverting on\\n * overflow (when the input is less than smallest int72 or\\n * greater than largest int72).\\n *\\n * Counterpart to Solidity's `int72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\\n downcasted = int72(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(72, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int64 from int256, reverting on\\n * overflow (when the input is less than smallest int64 or\\n * greater than largest int64).\\n *\\n * Counterpart to Solidity's `int64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\\n downcasted = int64(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(64, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int56 from int256, reverting on\\n * overflow (when the input is less than smallest int56 or\\n * greater than largest int56).\\n *\\n * Counterpart to Solidity's `int56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\\n downcasted = int56(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(56, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int48 from int256, reverting on\\n * overflow (when the input is less than smallest int48 or\\n * greater than largest int48).\\n *\\n * Counterpart to Solidity's `int48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\\n downcasted = int48(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(48, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int40 from int256, reverting on\\n * overflow (when the input is less than smallest int40 or\\n * greater than largest int40).\\n *\\n * Counterpart to Solidity's `int40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\\n downcasted = int40(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(40, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int32 from int256, reverting on\\n * overflow (when the input is less than smallest int32 or\\n * greater than largest int32).\\n *\\n * Counterpart to Solidity's `int32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\\n downcasted = int32(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(32, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int24 from int256, reverting on\\n * overflow (when the input is less than smallest int24 or\\n * greater than largest int24).\\n *\\n * Counterpart to Solidity's `int24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\\n downcasted = int24(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(24, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int16 from int256, reverting on\\n * overflow (when the input is less than smallest int16 or\\n * greater than largest int16).\\n *\\n * Counterpart to Solidity's `int16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\\n downcasted = int16(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(16, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int8 from int256, reverting on\\n * overflow (when the input is less than smallest int8 or\\n * greater than largest int8).\\n *\\n * Counterpart to Solidity's `int8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\\n downcasted = int8(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(8, value);\\n }\\n }\\n\\n /**\\n * @dev Converts an unsigned uint256 into a signed int256.\\n *\\n * Requirements:\\n *\\n * - input must be less than or equal to maxInt256.\\n */\\n function toInt256(uint256 value) internal pure returns (int256) {\\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\\n if (value > uint256(type(int256).max)) {\\n revert SafeCastOverflowedUintToInt(value);\\n }\\n return int256(value);\\n }\\n}\\n\",\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n /**\\n * @dev Returns the largest of two signed numbers.\\n */\\n function max(int256 a, int256 b) internal pure returns (int256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two signed numbers.\\n */\\n function min(int256 a, int256 b) internal pure returns (int256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two signed numbers without overflow.\\n * The result is rounded towards zero.\\n */\\n function average(int256 a, int256 b) internal pure returns (int256) {\\n // Formula from the book \\\"Hacker's Delight\\\"\\n int256 x = (a & b) + ((a ^ b) >> 1);\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\n }\\n\\n /**\\n * @dev Returns the absolute unsigned value of a signed value.\\n */\\n function abs(int256 n) internal pure returns (uint256) {\\n unchecked {\\n // must be unchecked in order to support `n = type(int256).min`\\n return uint256(n >= 0 ? n : -n);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\"},\"contracts/MyONFT721.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\npragma solidity ^0.8.22;\\n\\nimport { ONFT721 } from \\\"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol\\\";\\n\\ncontract MyONFT721 is ONFT721 {\\n constructor(\\n string memory _name,\\n string memory _symbol,\\n address _lzEndpoint,\\n address _delegate\\n ) ONFT721(_name, _symbol, _lzEndpoint, _delegate) {}\\n}\\n\",\"keccak256\":\"0x3549a204810fa418d927e6e7425fd95b63907766d5e8717958f9fa317ef64dd1\",\"license\":\"UNLICENSED\"},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equal_nonAligned(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let endMinusWord := add(_preBytes, length)\\n let mc := add(_preBytes, 0x20)\\n let cc := add(_postBytes, 0x20)\\n\\n for {\\n // the next line is the loop condition:\\n // while(uint256(mc < endWord) + cb == 2)\\n } eq(add(lt(mc, endMinusWord), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n\\n // Only if still successful\\n // For <1 word tail bytes\\n if gt(success, 0) {\\n // Get the remainder of length/32\\n // length % 32 = AND(length, 32 - 1)\\n let numTailBytes := and(length, 0x1f)\\n let mcRem := mload(mc)\\n let ccRem := mload(cc)\\n for {\\n let i := 0\\n // the next line is the loop condition:\\n // while(uint256(i < numTailBytes) + cb == 2)\\n } eq(add(lt(i, numTailBytes), cb), 2) {\\n i := add(i, 1)\\n } {\\n if iszero(eq(byte(i, mcRem), byte(i, ccRem))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4963,"contract":"contracts/MyONFT721.sol:MyONFT721","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":539,"contract":"contracts/MyONFT721.sol:MyONFT721","label":"peers","offset":0,"slot":"1","type":"t_mapping(t_uint32,t_bytes32)"},{"astId":1690,"contract":"contracts/MyONFT721.sol:MyONFT721","label":"preCrime","offset":0,"slot":"2","type":"t_address"},{"astId":1155,"contract":"contracts/MyONFT721.sol:MyONFT721","label":"enforcedOptions","offset":0,"slot":"3","type":"t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))"},{"astId":4338,"contract":"contracts/MyONFT721.sol:MyONFT721","label":"msgInspector","offset":0,"slot":"4","type":"t_address"},{"astId":5676,"contract":"contracts/MyONFT721.sol:MyONFT721","label":"_name","offset":0,"slot":"5","type":"t_string_storage"},{"astId":5678,"contract":"contracts/MyONFT721.sol:MyONFT721","label":"_symbol","offset":0,"slot":"6","type":"t_string_storage"},{"astId":5682,"contract":"contracts/MyONFT721.sol:MyONFT721","label":"_owners","offset":0,"slot":"7","type":"t_mapping(t_uint256,t_address)"},{"astId":5686,"contract":"contracts/MyONFT721.sol:MyONFT721","label":"_balances","offset":0,"slot":"8","type":"t_mapping(t_address,t_uint256)"},{"astId":5690,"contract":"contracts/MyONFT721.sol:MyONFT721","label":"_tokenApprovals","offset":0,"slot":"9","type":"t_mapping(t_uint256,t_address)"},{"astId":5696,"contract":"contracts/MyONFT721.sol:MyONFT721","label":"_operatorApprovals","offset":0,"slot":"10","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint32,t_bytes32)":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => mapping(uint16 => bytes))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_bytes_storage)"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the ONFT721 contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the underlying ERC721 implementation (ie. this contract)."}},"version":1}}},"contracts/mocks/MyONFT721Mock.sol":{"MyONFT721Mock":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"name":"InvalidOptions","type":"error"},{"inputs":[],"name":"InvalidReceiver","type":"error"},{"inputs":[],"name":"LzTokenUnavailable","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"name":"NotEnoughNative","type":"error"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"OnlyEndpoint","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"OnlyNFTOwner","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"inputs":[],"name":"OnlySelf","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"name":"SimulationResult","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false,"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"EnforcedOptionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"inspector","type":"address"}],"name":"MsgInspectorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ONFTReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"dstEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ONFTSent","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":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"preCrimeAddress","type":"address"}],"name":"PreCrimeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]"}],"name":"lzReceiveAndRevert","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceiveSimulate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"name":"quoteSend","outputs":[{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"msgFee","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"_fee","type":"tuple"},{"internalType":"address","name":"_refundAddress","type":"address"}],"name":"send","outputs":[{"components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"fee","type":"tuple"}],"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"setEnforcedOptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"name":"setMsgInspector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"name":"setPreCrime","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"errors":{"AddressEmptyCode(address)":[{"details":"There's no code at `target` (it is not a contract)."}],"AddressInsufficientBalance(address)":[{"details":"The ETH balance of the account is not enough to perform the operation."}],"ERC721IncorrectOwner(address,uint256,address)":[{"details":"Indicates an error related to the ownership over a particular token. Used in transfers.","params":{"owner":"Address of the current owner of a token.","sender":"Address whose tokens are being transferred.","tokenId":"Identifier number of a token."}}],"ERC721InsufficientApproval(address,uint256)":[{"details":"Indicates a failure with the `operator`’s approval. Used in transfers.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner.","tokenId":"Identifier number of a token."}}],"ERC721InvalidApprover(address)":[{"details":"Indicates a failure with the `approver` of a token to be approved. Used in approvals.","params":{"approver":"Address initiating an approval operation."}}],"ERC721InvalidOperator(address)":[{"details":"Indicates a failure with the `operator` to be approved. Used in approvals.","params":{"operator":"Address that may be allowed to operate on tokens without being their owner."}}],"ERC721InvalidOwner(address)":[{"details":"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.","params":{"owner":"Address of the current owner of a token."}}],"ERC721InvalidReceiver(address)":[{"details":"Indicates a failure with the token `receiver`. Used in transfers.","params":{"receiver":"Address to which tokens are being transferred."}}],"ERC721InvalidSender(address)":[{"details":"Indicates a failure with the token `sender`. Used in transfers.","params":{"sender":"Address whose tokens are being transferred."}}],"ERC721NonexistentToken(uint256)":[{"details":"Indicates a `tokenId` whose `owner` is the zero address.","params":{"tokenId":"Identifier number of a token."}}],"FailedInnerCall()":[{"details":"A call to an address target failed. The target may have reverted."}],"OwnableInvalidOwner(address)":[{"details":"The owner is not a valid owner account. (eg. `address(0)`)"}],"OwnableUnauthorizedAccount(address)":[{"details":"The caller account is not authorized to perform an operation."}],"SafeERC20FailedOperation(address)":[{"details":"An operation with an ERC20 token failed."}]},"events":{"Approval(address,address,uint256)":{"details":"Emitted when `owner` enables `approved` to manage the `tokenId` token."},"ApprovalForAll(address,address,bool)":{"details":"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"PreCrimeSet(address)":{"details":"Emitted when the preCrime contract address is set.","params":{"preCrimeAddress":"The address of the preCrime contract."}},"Transfer(address,address,uint256)":{"details":"Emitted when `tokenId` token is transferred from `from` to `to`."}},"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"In the case of ONFT where the contract IS the token, approval is NOT required.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"name()":{"details":"See {IERC721Metadata-name}."},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_10327":{"entryPoint":null,"id":10327,"parameterSlots":4,"returnSlots":0},"@_10352":{"entryPoint":null,"id":10352,"parameterSlots":4,"returnSlots":0},"@_4215":{"entryPoint":null,"id":4215,"parameterSlots":4,"returnSlots":0},"@_4358":{"entryPoint":null,"id":4358,"parameterSlots":2,"returnSlots":0},"@_5005":{"entryPoint":null,"id":5005,"parameterSlots":1,"returnSlots":0},"@_503":{"entryPoint":null,"id":503,"parameterSlots":2,"returnSlots":0},"@_570":{"entryPoint":null,"id":570,"parameterSlots":2,"returnSlots":0},"@_5713":{"entryPoint":null,"id":5713,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_5101":{"entryPoint":330,"id":5101,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":610,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_fromMemory":{"entryPoint":432,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_addresst_address_fromMemory":{"entryPoint":639,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":842,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":927,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":782,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":410,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4700:53","nodeType":"YulBlock","src":"0:4700:53","statements":[{"nativeSrc":"6:3:53","nodeType":"YulBlock","src":"6:3:53","statements":[]},{"body":{"nativeSrc":"46:95:53","nodeType":"YulBlock","src":"46:95:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:53","nodeType":"YulLiteral","src":"63:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:53","nodeType":"YulLiteral","src":"70:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:53","nodeType":"YulLiteral","src":"75:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:53","nodeType":"YulIdentifier","src":"66:3:53"},"nativeSrc":"66:20:53","nodeType":"YulFunctionCall","src":"66:20:53"}],"functionName":{"name":"mstore","nativeSrc":"56:6:53","nodeType":"YulIdentifier","src":"56:6:53"},"nativeSrc":"56:31:53","nodeType":"YulFunctionCall","src":"56:31:53"},"nativeSrc":"56:31:53","nodeType":"YulExpressionStatement","src":"56:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:53","nodeType":"YulLiteral","src":"103:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:53","nodeType":"YulLiteral","src":"106:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:53","nodeType":"YulIdentifier","src":"96:6:53"},"nativeSrc":"96:15:53","nodeType":"YulFunctionCall","src":"96:15:53"},"nativeSrc":"96:15:53","nodeType":"YulExpressionStatement","src":"96:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:53","nodeType":"YulLiteral","src":"127:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:53","nodeType":"YulLiteral","src":"130:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:53","nodeType":"YulIdentifier","src":"120:6:53"},"nativeSrc":"120:15:53","nodeType":"YulFunctionCall","src":"120:15:53"},"nativeSrc":"120:15:53","nodeType":"YulExpressionStatement","src":"120:15:53"}]},"name":"panic_error_0x41","nativeSrc":"14:127:53","nodeType":"YulFunctionDefinition","src":"14:127:53"},{"body":{"nativeSrc":"210:780:53","nodeType":"YulBlock","src":"210:780:53","statements":[{"body":{"nativeSrc":"259:16:53","nodeType":"YulBlock","src":"259:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"268:1:53","nodeType":"YulLiteral","src":"268:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"271:1:53","nodeType":"YulLiteral","src":"271:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"261:6:53","nodeType":"YulIdentifier","src":"261:6:53"},"nativeSrc":"261:12:53","nodeType":"YulFunctionCall","src":"261:12:53"},"nativeSrc":"261:12:53","nodeType":"YulExpressionStatement","src":"261:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"238:6:53","nodeType":"YulIdentifier","src":"238:6:53"},{"kind":"number","nativeSrc":"246:4:53","nodeType":"YulLiteral","src":"246:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"234:3:53","nodeType":"YulIdentifier","src":"234:3:53"},"nativeSrc":"234:17:53","nodeType":"YulFunctionCall","src":"234:17:53"},{"name":"end","nativeSrc":"253:3:53","nodeType":"YulIdentifier","src":"253:3:53"}],"functionName":{"name":"slt","nativeSrc":"230:3:53","nodeType":"YulIdentifier","src":"230:3:53"},"nativeSrc":"230:27:53","nodeType":"YulFunctionCall","src":"230:27:53"}],"functionName":{"name":"iszero","nativeSrc":"223:6:53","nodeType":"YulIdentifier","src":"223:6:53"},"nativeSrc":"223:35:53","nodeType":"YulFunctionCall","src":"223:35:53"},"nativeSrc":"220:55:53","nodeType":"YulIf","src":"220:55:53"},{"nativeSrc":"284:23:53","nodeType":"YulVariableDeclaration","src":"284:23:53","value":{"arguments":[{"name":"offset","nativeSrc":"300:6:53","nodeType":"YulIdentifier","src":"300:6:53"}],"functionName":{"name":"mload","nativeSrc":"294:5:53","nodeType":"YulIdentifier","src":"294:5:53"},"nativeSrc":"294:13:53","nodeType":"YulFunctionCall","src":"294:13:53"},"variables":[{"name":"_1","nativeSrc":"288:2:53","nodeType":"YulTypedName","src":"288:2:53","type":""}]},{"nativeSrc":"316:28:53","nodeType":"YulVariableDeclaration","src":"316:28:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"334:2:53","nodeType":"YulLiteral","src":"334:2:53","type":"","value":"64"},{"kind":"number","nativeSrc":"338:1:53","nodeType":"YulLiteral","src":"338:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"330:3:53","nodeType":"YulIdentifier","src":"330:3:53"},"nativeSrc":"330:10:53","nodeType":"YulFunctionCall","src":"330:10:53"},{"kind":"number","nativeSrc":"342:1:53","nodeType":"YulLiteral","src":"342:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"326:3:53","nodeType":"YulIdentifier","src":"326:3:53"},"nativeSrc":"326:18:53","nodeType":"YulFunctionCall","src":"326:18:53"},"variables":[{"name":"_2","nativeSrc":"320:2:53","nodeType":"YulTypedName","src":"320:2:53","type":""}]},{"body":{"nativeSrc":"367:22:53","nodeType":"YulBlock","src":"367:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"369:16:53","nodeType":"YulIdentifier","src":"369:16:53"},"nativeSrc":"369:18:53","nodeType":"YulFunctionCall","src":"369:18:53"},"nativeSrc":"369:18:53","nodeType":"YulExpressionStatement","src":"369:18:53"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"359:2:53","nodeType":"YulIdentifier","src":"359:2:53"},{"name":"_2","nativeSrc":"363:2:53","nodeType":"YulIdentifier","src":"363:2:53"}],"functionName":{"name":"gt","nativeSrc":"356:2:53","nodeType":"YulIdentifier","src":"356:2:53"},"nativeSrc":"356:10:53","nodeType":"YulFunctionCall","src":"356:10:53"},"nativeSrc":"353:36:53","nodeType":"YulIf","src":"353:36:53"},{"nativeSrc":"398:17:53","nodeType":"YulVariableDeclaration","src":"398:17:53","value":{"arguments":[{"kind":"number","nativeSrc":"412:2:53","nodeType":"YulLiteral","src":"412:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"408:3:53","nodeType":"YulIdentifier","src":"408:3:53"},"nativeSrc":"408:7:53","nodeType":"YulFunctionCall","src":"408:7:53"},"variables":[{"name":"_3","nativeSrc":"402:2:53","nodeType":"YulTypedName","src":"402:2:53","type":""}]},{"nativeSrc":"424:23:53","nodeType":"YulVariableDeclaration","src":"424:23:53","value":{"arguments":[{"kind":"number","nativeSrc":"444:2:53","nodeType":"YulLiteral","src":"444:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"438:5:53","nodeType":"YulIdentifier","src":"438:5:53"},"nativeSrc":"438:9:53","nodeType":"YulFunctionCall","src":"438:9:53"},"variables":[{"name":"memPtr","nativeSrc":"428:6:53","nodeType":"YulTypedName","src":"428:6:53","type":""}]},{"nativeSrc":"456:71:53","nodeType":"YulVariableDeclaration","src":"456:71:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"478:6:53","nodeType":"YulIdentifier","src":"478:6:53"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"502:2:53","nodeType":"YulIdentifier","src":"502:2:53"},{"kind":"number","nativeSrc":"506:4:53","nodeType":"YulLiteral","src":"506:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"498:3:53","nodeType":"YulIdentifier","src":"498:3:53"},"nativeSrc":"498:13:53","nodeType":"YulFunctionCall","src":"498:13:53"},{"name":"_3","nativeSrc":"513:2:53","nodeType":"YulIdentifier","src":"513:2:53"}],"functionName":{"name":"and","nativeSrc":"494:3:53","nodeType":"YulIdentifier","src":"494:3:53"},"nativeSrc":"494:22:53","nodeType":"YulFunctionCall","src":"494:22:53"},{"kind":"number","nativeSrc":"518:2:53","nodeType":"YulLiteral","src":"518:2:53","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"490:3:53","nodeType":"YulIdentifier","src":"490:3:53"},"nativeSrc":"490:31:53","nodeType":"YulFunctionCall","src":"490:31:53"},{"name":"_3","nativeSrc":"523:2:53","nodeType":"YulIdentifier","src":"523:2:53"}],"functionName":{"name":"and","nativeSrc":"486:3:53","nodeType":"YulIdentifier","src":"486:3:53"},"nativeSrc":"486:40:53","nodeType":"YulFunctionCall","src":"486:40:53"}],"functionName":{"name":"add","nativeSrc":"474:3:53","nodeType":"YulIdentifier","src":"474:3:53"},"nativeSrc":"474:53:53","nodeType":"YulFunctionCall","src":"474:53:53"},"variables":[{"name":"newFreePtr","nativeSrc":"460:10:53","nodeType":"YulTypedName","src":"460:10:53","type":""}]},{"body":{"nativeSrc":"586:22:53","nodeType":"YulBlock","src":"586:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"588:16:53","nodeType":"YulIdentifier","src":"588:16:53"},"nativeSrc":"588:18:53","nodeType":"YulFunctionCall","src":"588:18:53"},"nativeSrc":"588:18:53","nodeType":"YulExpressionStatement","src":"588:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"545:10:53","nodeType":"YulIdentifier","src":"545:10:53"},{"name":"_2","nativeSrc":"557:2:53","nodeType":"YulIdentifier","src":"557:2:53"}],"functionName":{"name":"gt","nativeSrc":"542:2:53","nodeType":"YulIdentifier","src":"542:2:53"},"nativeSrc":"542:18:53","nodeType":"YulFunctionCall","src":"542:18:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"565:10:53","nodeType":"YulIdentifier","src":"565:10:53"},{"name":"memPtr","nativeSrc":"577:6:53","nodeType":"YulIdentifier","src":"577:6:53"}],"functionName":{"name":"lt","nativeSrc":"562:2:53","nodeType":"YulIdentifier","src":"562:2:53"},"nativeSrc":"562:22:53","nodeType":"YulFunctionCall","src":"562:22:53"}],"functionName":{"name":"or","nativeSrc":"539:2:53","nodeType":"YulIdentifier","src":"539:2:53"},"nativeSrc":"539:46:53","nodeType":"YulFunctionCall","src":"539:46:53"},"nativeSrc":"536:72:53","nodeType":"YulIf","src":"536:72:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"624:2:53","nodeType":"YulLiteral","src":"624:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"628:10:53","nodeType":"YulIdentifier","src":"628:10:53"}],"functionName":{"name":"mstore","nativeSrc":"617:6:53","nodeType":"YulIdentifier","src":"617:6:53"},"nativeSrc":"617:22:53","nodeType":"YulFunctionCall","src":"617:22:53"},"nativeSrc":"617:22:53","nodeType":"YulExpressionStatement","src":"617:22:53"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"655:6:53","nodeType":"YulIdentifier","src":"655:6:53"},{"name":"_1","nativeSrc":"663:2:53","nodeType":"YulIdentifier","src":"663:2:53"}],"functionName":{"name":"mstore","nativeSrc":"648:6:53","nodeType":"YulIdentifier","src":"648:6:53"},"nativeSrc":"648:18:53","nodeType":"YulFunctionCall","src":"648:18:53"},"nativeSrc":"648:18:53","nodeType":"YulExpressionStatement","src":"648:18:53"},{"nativeSrc":"675:14:53","nodeType":"YulVariableDeclaration","src":"675:14:53","value":{"kind":"number","nativeSrc":"685:4:53","nodeType":"YulLiteral","src":"685:4:53","type":"","value":"0x20"},"variables":[{"name":"_4","nativeSrc":"679:2:53","nodeType":"YulTypedName","src":"679:2:53","type":""}]},{"body":{"nativeSrc":"737:16:53","nodeType":"YulBlock","src":"737:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"746:1:53","nodeType":"YulLiteral","src":"746:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"749:1:53","nodeType":"YulLiteral","src":"749:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"739:6:53","nodeType":"YulIdentifier","src":"739:6:53"},"nativeSrc":"739:12:53","nodeType":"YulFunctionCall","src":"739:12:53"},"nativeSrc":"739:12:53","nodeType":"YulExpressionStatement","src":"739:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"712:6:53","nodeType":"YulIdentifier","src":"712:6:53"},{"name":"_1","nativeSrc":"720:2:53","nodeType":"YulIdentifier","src":"720:2:53"}],"functionName":{"name":"add","nativeSrc":"708:3:53","nodeType":"YulIdentifier","src":"708:3:53"},"nativeSrc":"708:15:53","nodeType":"YulFunctionCall","src":"708:15:53"},{"kind":"number","nativeSrc":"725:4:53","nodeType":"YulLiteral","src":"725:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"704:3:53","nodeType":"YulIdentifier","src":"704:3:53"},"nativeSrc":"704:26:53","nodeType":"YulFunctionCall","src":"704:26:53"},{"name":"end","nativeSrc":"732:3:53","nodeType":"YulIdentifier","src":"732:3:53"}],"functionName":{"name":"gt","nativeSrc":"701:2:53","nodeType":"YulIdentifier","src":"701:2:53"},"nativeSrc":"701:35:53","nodeType":"YulFunctionCall","src":"701:35:53"},"nativeSrc":"698:55:53","nodeType":"YulIf","src":"698:55:53"},{"nativeSrc":"762:10:53","nodeType":"YulVariableDeclaration","src":"762:10:53","value":{"kind":"number","nativeSrc":"771:1:53","nodeType":"YulLiteral","src":"771:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"766:1:53","nodeType":"YulTypedName","src":"766:1:53","type":""}]},{"body":{"nativeSrc":"827:87:53","nodeType":"YulBlock","src":"827:87:53","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"856:6:53","nodeType":"YulIdentifier","src":"856:6:53"},{"name":"i","nativeSrc":"864:1:53","nodeType":"YulIdentifier","src":"864:1:53"}],"functionName":{"name":"add","nativeSrc":"852:3:53","nodeType":"YulIdentifier","src":"852:3:53"},"nativeSrc":"852:14:53","nodeType":"YulFunctionCall","src":"852:14:53"},{"name":"_4","nativeSrc":"868:2:53","nodeType":"YulIdentifier","src":"868:2:53"}],"functionName":{"name":"add","nativeSrc":"848:3:53","nodeType":"YulIdentifier","src":"848:3:53"},"nativeSrc":"848:23:53","nodeType":"YulFunctionCall","src":"848:23:53"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"887:6:53","nodeType":"YulIdentifier","src":"887:6:53"},{"name":"i","nativeSrc":"895:1:53","nodeType":"YulIdentifier","src":"895:1:53"}],"functionName":{"name":"add","nativeSrc":"883:3:53","nodeType":"YulIdentifier","src":"883:3:53"},"nativeSrc":"883:14:53","nodeType":"YulFunctionCall","src":"883:14:53"},{"name":"_4","nativeSrc":"899:2:53","nodeType":"YulIdentifier","src":"899:2:53"}],"functionName":{"name":"add","nativeSrc":"879:3:53","nodeType":"YulIdentifier","src":"879:3:53"},"nativeSrc":"879:23:53","nodeType":"YulFunctionCall","src":"879:23:53"}],"functionName":{"name":"mload","nativeSrc":"873:5:53","nodeType":"YulIdentifier","src":"873:5:53"},"nativeSrc":"873:30:53","nodeType":"YulFunctionCall","src":"873:30:53"}],"functionName":{"name":"mstore","nativeSrc":"841:6:53","nodeType":"YulIdentifier","src":"841:6:53"},"nativeSrc":"841:63:53","nodeType":"YulFunctionCall","src":"841:63:53"},"nativeSrc":"841:63:53","nodeType":"YulExpressionStatement","src":"841:63:53"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"792:1:53","nodeType":"YulIdentifier","src":"792:1:53"},{"name":"_1","nativeSrc":"795:2:53","nodeType":"YulIdentifier","src":"795:2:53"}],"functionName":{"name":"lt","nativeSrc":"789:2:53","nodeType":"YulIdentifier","src":"789:2:53"},"nativeSrc":"789:9:53","nodeType":"YulFunctionCall","src":"789:9:53"},"nativeSrc":"781:133:53","nodeType":"YulForLoop","post":{"nativeSrc":"799:19:53","nodeType":"YulBlock","src":"799:19:53","statements":[{"nativeSrc":"801:15:53","nodeType":"YulAssignment","src":"801:15:53","value":{"arguments":[{"name":"i","nativeSrc":"810:1:53","nodeType":"YulIdentifier","src":"810:1:53"},{"name":"_4","nativeSrc":"813:2:53","nodeType":"YulIdentifier","src":"813:2:53"}],"functionName":{"name":"add","nativeSrc":"806:3:53","nodeType":"YulIdentifier","src":"806:3:53"},"nativeSrc":"806:10:53","nodeType":"YulFunctionCall","src":"806:10:53"},"variableNames":[{"name":"i","nativeSrc":"801:1:53","nodeType":"YulIdentifier","src":"801:1:53"}]}]},"pre":{"nativeSrc":"785:3:53","nodeType":"YulBlock","src":"785:3:53","statements":[]},"src":"781:133:53"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"938:6:53","nodeType":"YulIdentifier","src":"938:6:53"},{"name":"_1","nativeSrc":"946:2:53","nodeType":"YulIdentifier","src":"946:2:53"}],"functionName":{"name":"add","nativeSrc":"934:3:53","nodeType":"YulIdentifier","src":"934:3:53"},"nativeSrc":"934:15:53","nodeType":"YulFunctionCall","src":"934:15:53"},{"kind":"number","nativeSrc":"951:4:53","nodeType":"YulLiteral","src":"951:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"930:3:53","nodeType":"YulIdentifier","src":"930:3:53"},"nativeSrc":"930:26:53","nodeType":"YulFunctionCall","src":"930:26:53"},{"kind":"number","nativeSrc":"958:1:53","nodeType":"YulLiteral","src":"958:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"923:6:53","nodeType":"YulIdentifier","src":"923:6:53"},"nativeSrc":"923:37:53","nodeType":"YulFunctionCall","src":"923:37:53"},"nativeSrc":"923:37:53","nodeType":"YulExpressionStatement","src":"923:37:53"},{"nativeSrc":"969:15:53","nodeType":"YulAssignment","src":"969:15:53","value":{"name":"memPtr","nativeSrc":"978:6:53","nodeType":"YulIdentifier","src":"978:6:53"},"variableNames":[{"name":"array","nativeSrc":"969:5:53","nodeType":"YulIdentifier","src":"969:5:53"}]}]},"name":"abi_decode_string_fromMemory","nativeSrc":"146:844:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"184:6:53","nodeType":"YulTypedName","src":"184:6:53","type":""},{"name":"end","nativeSrc":"192:3:53","nodeType":"YulTypedName","src":"192:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"200:5:53","nodeType":"YulTypedName","src":"200:5:53","type":""}],"src":"146:844:53"},{"body":{"nativeSrc":"1055:117:53","nodeType":"YulBlock","src":"1055:117:53","statements":[{"nativeSrc":"1065:22:53","nodeType":"YulAssignment","src":"1065:22:53","value":{"arguments":[{"name":"offset","nativeSrc":"1080:6:53","nodeType":"YulIdentifier","src":"1080:6:53"}],"functionName":{"name":"mload","nativeSrc":"1074:5:53","nodeType":"YulIdentifier","src":"1074:5:53"},"nativeSrc":"1074:13:53","nodeType":"YulFunctionCall","src":"1074:13:53"},"variableNames":[{"name":"value","nativeSrc":"1065:5:53","nodeType":"YulIdentifier","src":"1065:5:53"}]},{"body":{"nativeSrc":"1150:16:53","nodeType":"YulBlock","src":"1150:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1159:1:53","nodeType":"YulLiteral","src":"1159:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1162:1:53","nodeType":"YulLiteral","src":"1162:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1152:6:53","nodeType":"YulIdentifier","src":"1152:6:53"},"nativeSrc":"1152:12:53","nodeType":"YulFunctionCall","src":"1152:12:53"},"nativeSrc":"1152:12:53","nodeType":"YulExpressionStatement","src":"1152:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1109:5:53","nodeType":"YulIdentifier","src":"1109:5:53"},{"arguments":[{"name":"value","nativeSrc":"1120:5:53","nodeType":"YulIdentifier","src":"1120:5:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1135:3:53","nodeType":"YulLiteral","src":"1135:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"1140:1:53","nodeType":"YulLiteral","src":"1140:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1131:3:53","nodeType":"YulIdentifier","src":"1131:3:53"},"nativeSrc":"1131:11:53","nodeType":"YulFunctionCall","src":"1131:11:53"},{"kind":"number","nativeSrc":"1144:1:53","nodeType":"YulLiteral","src":"1144:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1127:3:53","nodeType":"YulIdentifier","src":"1127:3:53"},"nativeSrc":"1127:19:53","nodeType":"YulFunctionCall","src":"1127:19:53"}],"functionName":{"name":"and","nativeSrc":"1116:3:53","nodeType":"YulIdentifier","src":"1116:3:53"},"nativeSrc":"1116:31:53","nodeType":"YulFunctionCall","src":"1116:31:53"}],"functionName":{"name":"eq","nativeSrc":"1106:2:53","nodeType":"YulIdentifier","src":"1106:2:53"},"nativeSrc":"1106:42:53","nodeType":"YulFunctionCall","src":"1106:42:53"}],"functionName":{"name":"iszero","nativeSrc":"1099:6:53","nodeType":"YulIdentifier","src":"1099:6:53"},"nativeSrc":"1099:50:53","nodeType":"YulFunctionCall","src":"1099:50:53"},"nativeSrc":"1096:70:53","nodeType":"YulIf","src":"1096:70:53"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"995:177:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1034:6:53","nodeType":"YulTypedName","src":"1034:6:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1045:5:53","nodeType":"YulTypedName","src":"1045:5:53","type":""}],"src":"995:177:53"},{"body":{"nativeSrc":"1329:581:53","nodeType":"YulBlock","src":"1329:581:53","statements":[{"body":{"nativeSrc":"1376:16:53","nodeType":"YulBlock","src":"1376:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1385:1:53","nodeType":"YulLiteral","src":"1385:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1388:1:53","nodeType":"YulLiteral","src":"1388:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1378:6:53","nodeType":"YulIdentifier","src":"1378:6:53"},"nativeSrc":"1378:12:53","nodeType":"YulFunctionCall","src":"1378:12:53"},"nativeSrc":"1378:12:53","nodeType":"YulExpressionStatement","src":"1378:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1350:7:53","nodeType":"YulIdentifier","src":"1350:7:53"},{"name":"headStart","nativeSrc":"1359:9:53","nodeType":"YulIdentifier","src":"1359:9:53"}],"functionName":{"name":"sub","nativeSrc":"1346:3:53","nodeType":"YulIdentifier","src":"1346:3:53"},"nativeSrc":"1346:23:53","nodeType":"YulFunctionCall","src":"1346:23:53"},{"kind":"number","nativeSrc":"1371:3:53","nodeType":"YulLiteral","src":"1371:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"1342:3:53","nodeType":"YulIdentifier","src":"1342:3:53"},"nativeSrc":"1342:33:53","nodeType":"YulFunctionCall","src":"1342:33:53"},"nativeSrc":"1339:53:53","nodeType":"YulIf","src":"1339:53:53"},{"nativeSrc":"1401:30:53","nodeType":"YulVariableDeclaration","src":"1401:30:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1421:9:53","nodeType":"YulIdentifier","src":"1421:9:53"}],"functionName":{"name":"mload","nativeSrc":"1415:5:53","nodeType":"YulIdentifier","src":"1415:5:53"},"nativeSrc":"1415:16:53","nodeType":"YulFunctionCall","src":"1415:16:53"},"variables":[{"name":"offset","nativeSrc":"1405:6:53","nodeType":"YulTypedName","src":"1405:6:53","type":""}]},{"nativeSrc":"1440:28:53","nodeType":"YulVariableDeclaration","src":"1440:28:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1458:2:53","nodeType":"YulLiteral","src":"1458:2:53","type":"","value":"64"},{"kind":"number","nativeSrc":"1462:1:53","nodeType":"YulLiteral","src":"1462:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1454:3:53","nodeType":"YulIdentifier","src":"1454:3:53"},"nativeSrc":"1454:10:53","nodeType":"YulFunctionCall","src":"1454:10:53"},{"kind":"number","nativeSrc":"1466:1:53","nodeType":"YulLiteral","src":"1466:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1450:3:53","nodeType":"YulIdentifier","src":"1450:3:53"},"nativeSrc":"1450:18:53","nodeType":"YulFunctionCall","src":"1450:18:53"},"variables":[{"name":"_1","nativeSrc":"1444:2:53","nodeType":"YulTypedName","src":"1444:2:53","type":""}]},{"body":{"nativeSrc":"1495:16:53","nodeType":"YulBlock","src":"1495:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1504:1:53","nodeType":"YulLiteral","src":"1504:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1507:1:53","nodeType":"YulLiteral","src":"1507:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1497:6:53","nodeType":"YulIdentifier","src":"1497:6:53"},"nativeSrc":"1497:12:53","nodeType":"YulFunctionCall","src":"1497:12:53"},"nativeSrc":"1497:12:53","nodeType":"YulExpressionStatement","src":"1497:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1483:6:53","nodeType":"YulIdentifier","src":"1483:6:53"},{"name":"_1","nativeSrc":"1491:2:53","nodeType":"YulIdentifier","src":"1491:2:53"}],"functionName":{"name":"gt","nativeSrc":"1480:2:53","nodeType":"YulIdentifier","src":"1480:2:53"},"nativeSrc":"1480:14:53","nodeType":"YulFunctionCall","src":"1480:14:53"},"nativeSrc":"1477:34:53","nodeType":"YulIf","src":"1477:34:53"},{"nativeSrc":"1520:71:53","nodeType":"YulAssignment","src":"1520:71:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1563:9:53","nodeType":"YulIdentifier","src":"1563:9:53"},{"name":"offset","nativeSrc":"1574:6:53","nodeType":"YulIdentifier","src":"1574:6:53"}],"functionName":{"name":"add","nativeSrc":"1559:3:53","nodeType":"YulIdentifier","src":"1559:3:53"},"nativeSrc":"1559:22:53","nodeType":"YulFunctionCall","src":"1559:22:53"},{"name":"dataEnd","nativeSrc":"1583:7:53","nodeType":"YulIdentifier","src":"1583:7:53"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1530:28:53","nodeType":"YulIdentifier","src":"1530:28:53"},"nativeSrc":"1530:61:53","nodeType":"YulFunctionCall","src":"1530:61:53"},"variableNames":[{"name":"value0","nativeSrc":"1520:6:53","nodeType":"YulIdentifier","src":"1520:6:53"}]},{"nativeSrc":"1600:41:53","nodeType":"YulVariableDeclaration","src":"1600:41:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1626:9:53","nodeType":"YulIdentifier","src":"1626:9:53"},{"kind":"number","nativeSrc":"1637:2:53","nodeType":"YulLiteral","src":"1637:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1622:3:53","nodeType":"YulIdentifier","src":"1622:3:53"},"nativeSrc":"1622:18:53","nodeType":"YulFunctionCall","src":"1622:18:53"}],"functionName":{"name":"mload","nativeSrc":"1616:5:53","nodeType":"YulIdentifier","src":"1616:5:53"},"nativeSrc":"1616:25:53","nodeType":"YulFunctionCall","src":"1616:25:53"},"variables":[{"name":"offset_1","nativeSrc":"1604:8:53","nodeType":"YulTypedName","src":"1604:8:53","type":""}]},{"body":{"nativeSrc":"1670:16:53","nodeType":"YulBlock","src":"1670:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1679:1:53","nodeType":"YulLiteral","src":"1679:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1682:1:53","nodeType":"YulLiteral","src":"1682:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1672:6:53","nodeType":"YulIdentifier","src":"1672:6:53"},"nativeSrc":"1672:12:53","nodeType":"YulFunctionCall","src":"1672:12:53"},"nativeSrc":"1672:12:53","nodeType":"YulExpressionStatement","src":"1672:12:53"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1656:8:53","nodeType":"YulIdentifier","src":"1656:8:53"},{"name":"_1","nativeSrc":"1666:2:53","nodeType":"YulIdentifier","src":"1666:2:53"}],"functionName":{"name":"gt","nativeSrc":"1653:2:53","nodeType":"YulIdentifier","src":"1653:2:53"},"nativeSrc":"1653:16:53","nodeType":"YulFunctionCall","src":"1653:16:53"},"nativeSrc":"1650:36:53","nodeType":"YulIf","src":"1650:36:53"},{"nativeSrc":"1695:73:53","nodeType":"YulAssignment","src":"1695:73:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1738:9:53","nodeType":"YulIdentifier","src":"1738:9:53"},{"name":"offset_1","nativeSrc":"1749:8:53","nodeType":"YulIdentifier","src":"1749:8:53"}],"functionName":{"name":"add","nativeSrc":"1734:3:53","nodeType":"YulIdentifier","src":"1734:3:53"},"nativeSrc":"1734:24:53","nodeType":"YulFunctionCall","src":"1734:24:53"},{"name":"dataEnd","nativeSrc":"1760:7:53","nodeType":"YulIdentifier","src":"1760:7:53"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1705:28:53","nodeType":"YulIdentifier","src":"1705:28:53"},"nativeSrc":"1705:63:53","nodeType":"YulFunctionCall","src":"1705:63:53"},"variableNames":[{"name":"value1","nativeSrc":"1695:6:53","nodeType":"YulIdentifier","src":"1695:6:53"}]},{"nativeSrc":"1777:59:53","nodeType":"YulAssignment","src":"1777:59:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1821:9:53","nodeType":"YulIdentifier","src":"1821:9:53"},{"kind":"number","nativeSrc":"1832:2:53","nodeType":"YulLiteral","src":"1832:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1817:3:53","nodeType":"YulIdentifier","src":"1817:3:53"},"nativeSrc":"1817:18:53","nodeType":"YulFunctionCall","src":"1817:18:53"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"1787:29:53","nodeType":"YulIdentifier","src":"1787:29:53"},"nativeSrc":"1787:49:53","nodeType":"YulFunctionCall","src":"1787:49:53"},"variableNames":[{"name":"value2","nativeSrc":"1777:6:53","nodeType":"YulIdentifier","src":"1777:6:53"}]},{"nativeSrc":"1845:59:53","nodeType":"YulAssignment","src":"1845:59:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1889:9:53","nodeType":"YulIdentifier","src":"1889:9:53"},{"kind":"number","nativeSrc":"1900:2:53","nodeType":"YulLiteral","src":"1900:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1885:3:53","nodeType":"YulIdentifier","src":"1885:3:53"},"nativeSrc":"1885:18:53","nodeType":"YulFunctionCall","src":"1885:18:53"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"1855:29:53","nodeType":"YulIdentifier","src":"1855:29:53"},"nativeSrc":"1855:49:53","nodeType":"YulFunctionCall","src":"1855:49:53"},"variableNames":[{"name":"value3","nativeSrc":"1845:6:53","nodeType":"YulIdentifier","src":"1845:6:53"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_addresst_address_fromMemory","nativeSrc":"1177:733:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1271:9:53","nodeType":"YulTypedName","src":"1271:9:53","type":""},{"name":"dataEnd","nativeSrc":"1282:7:53","nodeType":"YulTypedName","src":"1282:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1294:6:53","nodeType":"YulTypedName","src":"1294:6:53","type":""},{"name":"value1","nativeSrc":"1302:6:53","nodeType":"YulTypedName","src":"1302:6:53","type":""},{"name":"value2","nativeSrc":"1310:6:53","nodeType":"YulTypedName","src":"1310:6:53","type":""},{"name":"value3","nativeSrc":"1318:6:53","nodeType":"YulTypedName","src":"1318:6:53","type":""}],"src":"1177:733:53"},{"body":{"nativeSrc":"2016:102:53","nodeType":"YulBlock","src":"2016:102:53","statements":[{"nativeSrc":"2026:26:53","nodeType":"YulAssignment","src":"2026:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2038:9:53","nodeType":"YulIdentifier","src":"2038:9:53"},{"kind":"number","nativeSrc":"2049:2:53","nodeType":"YulLiteral","src":"2049:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2034:3:53","nodeType":"YulIdentifier","src":"2034:3:53"},"nativeSrc":"2034:18:53","nodeType":"YulFunctionCall","src":"2034:18:53"},"variableNames":[{"name":"tail","nativeSrc":"2026:4:53","nodeType":"YulIdentifier","src":"2026:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2068:9:53","nodeType":"YulIdentifier","src":"2068:9:53"},{"arguments":[{"name":"value0","nativeSrc":"2083:6:53","nodeType":"YulIdentifier","src":"2083:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2099:3:53","nodeType":"YulLiteral","src":"2099:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"2104:1:53","nodeType":"YulLiteral","src":"2104:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2095:3:53","nodeType":"YulIdentifier","src":"2095:3:53"},"nativeSrc":"2095:11:53","nodeType":"YulFunctionCall","src":"2095:11:53"},{"kind":"number","nativeSrc":"2108:1:53","nodeType":"YulLiteral","src":"2108:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2091:3:53","nodeType":"YulIdentifier","src":"2091:3:53"},"nativeSrc":"2091:19:53","nodeType":"YulFunctionCall","src":"2091:19:53"}],"functionName":{"name":"and","nativeSrc":"2079:3:53","nodeType":"YulIdentifier","src":"2079:3:53"},"nativeSrc":"2079:32:53","nodeType":"YulFunctionCall","src":"2079:32:53"}],"functionName":{"name":"mstore","nativeSrc":"2061:6:53","nodeType":"YulIdentifier","src":"2061:6:53"},"nativeSrc":"2061:51:53","nodeType":"YulFunctionCall","src":"2061:51:53"},"nativeSrc":"2061:51:53","nodeType":"YulExpressionStatement","src":"2061:51:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1915:203:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1985:9:53","nodeType":"YulTypedName","src":"1985:9:53","type":""},{"name":"value0","nativeSrc":"1996:6:53","nodeType":"YulTypedName","src":"1996:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2007:4:53","nodeType":"YulTypedName","src":"2007:4:53","type":""}],"src":"1915:203:53"},{"body":{"nativeSrc":"2178:325:53","nodeType":"YulBlock","src":"2178:325:53","statements":[{"nativeSrc":"2188:22:53","nodeType":"YulAssignment","src":"2188:22:53","value":{"arguments":[{"kind":"number","nativeSrc":"2202:1:53","nodeType":"YulLiteral","src":"2202:1:53","type":"","value":"1"},{"name":"data","nativeSrc":"2205:4:53","nodeType":"YulIdentifier","src":"2205:4:53"}],"functionName":{"name":"shr","nativeSrc":"2198:3:53","nodeType":"YulIdentifier","src":"2198:3:53"},"nativeSrc":"2198:12:53","nodeType":"YulFunctionCall","src":"2198:12:53"},"variableNames":[{"name":"length","nativeSrc":"2188:6:53","nodeType":"YulIdentifier","src":"2188:6:53"}]},{"nativeSrc":"2219:38:53","nodeType":"YulVariableDeclaration","src":"2219:38:53","value":{"arguments":[{"name":"data","nativeSrc":"2249:4:53","nodeType":"YulIdentifier","src":"2249:4:53"},{"kind":"number","nativeSrc":"2255:1:53","nodeType":"YulLiteral","src":"2255:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"2245:3:53","nodeType":"YulIdentifier","src":"2245:3:53"},"nativeSrc":"2245:12:53","nodeType":"YulFunctionCall","src":"2245:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"2223:18:53","nodeType":"YulTypedName","src":"2223:18:53","type":""}]},{"body":{"nativeSrc":"2296:31:53","nodeType":"YulBlock","src":"2296:31:53","statements":[{"nativeSrc":"2298:27:53","nodeType":"YulAssignment","src":"2298:27:53","value":{"arguments":[{"name":"length","nativeSrc":"2312:6:53","nodeType":"YulIdentifier","src":"2312:6:53"},{"kind":"number","nativeSrc":"2320:4:53","nodeType":"YulLiteral","src":"2320:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"2308:3:53","nodeType":"YulIdentifier","src":"2308:3:53"},"nativeSrc":"2308:17:53","nodeType":"YulFunctionCall","src":"2308:17:53"},"variableNames":[{"name":"length","nativeSrc":"2298:6:53","nodeType":"YulIdentifier","src":"2298:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2276:18:53","nodeType":"YulIdentifier","src":"2276:18:53"}],"functionName":{"name":"iszero","nativeSrc":"2269:6:53","nodeType":"YulIdentifier","src":"2269:6:53"},"nativeSrc":"2269:26:53","nodeType":"YulFunctionCall","src":"2269:26:53"},"nativeSrc":"2266:61:53","nodeType":"YulIf","src":"2266:61:53"},{"body":{"nativeSrc":"2386:111:53","nodeType":"YulBlock","src":"2386:111:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2407:1:53","nodeType":"YulLiteral","src":"2407:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2414:3:53","nodeType":"YulLiteral","src":"2414:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"2419:10:53","nodeType":"YulLiteral","src":"2419:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2410:3:53","nodeType":"YulIdentifier","src":"2410:3:53"},"nativeSrc":"2410:20:53","nodeType":"YulFunctionCall","src":"2410:20:53"}],"functionName":{"name":"mstore","nativeSrc":"2400:6:53","nodeType":"YulIdentifier","src":"2400:6:53"},"nativeSrc":"2400:31:53","nodeType":"YulFunctionCall","src":"2400:31:53"},"nativeSrc":"2400:31:53","nodeType":"YulExpressionStatement","src":"2400:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2451:1:53","nodeType":"YulLiteral","src":"2451:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"2454:4:53","nodeType":"YulLiteral","src":"2454:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"2444:6:53","nodeType":"YulIdentifier","src":"2444:6:53"},"nativeSrc":"2444:15:53","nodeType":"YulFunctionCall","src":"2444:15:53"},"nativeSrc":"2444:15:53","nodeType":"YulExpressionStatement","src":"2444:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2479:1:53","nodeType":"YulLiteral","src":"2479:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2482:4:53","nodeType":"YulLiteral","src":"2482:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2472:6:53","nodeType":"YulIdentifier","src":"2472:6:53"},"nativeSrc":"2472:15:53","nodeType":"YulFunctionCall","src":"2472:15:53"},"nativeSrc":"2472:15:53","nodeType":"YulExpressionStatement","src":"2472:15:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2342:18:53","nodeType":"YulIdentifier","src":"2342:18:53"},{"arguments":[{"name":"length","nativeSrc":"2365:6:53","nodeType":"YulIdentifier","src":"2365:6:53"},{"kind":"number","nativeSrc":"2373:2:53","nodeType":"YulLiteral","src":"2373:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"2362:2:53","nodeType":"YulIdentifier","src":"2362:2:53"},"nativeSrc":"2362:14:53","nodeType":"YulFunctionCall","src":"2362:14:53"}],"functionName":{"name":"eq","nativeSrc":"2339:2:53","nodeType":"YulIdentifier","src":"2339:2:53"},"nativeSrc":"2339:38:53","nodeType":"YulFunctionCall","src":"2339:38:53"},"nativeSrc":"2336:161:53","nodeType":"YulIf","src":"2336:161:53"}]},"name":"extract_byte_array_length","nativeSrc":"2123:380:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2158:4:53","nodeType":"YulTypedName","src":"2158:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"2167:6:53","nodeType":"YulTypedName","src":"2167:6:53","type":""}],"src":"2123:380:53"},{"body":{"nativeSrc":"2564:65:53","nodeType":"YulBlock","src":"2564:65:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2581:1:53","nodeType":"YulLiteral","src":"2581:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"2584:3:53","nodeType":"YulIdentifier","src":"2584:3:53"}],"functionName":{"name":"mstore","nativeSrc":"2574:6:53","nodeType":"YulIdentifier","src":"2574:6:53"},"nativeSrc":"2574:14:53","nodeType":"YulFunctionCall","src":"2574:14:53"},"nativeSrc":"2574:14:53","nodeType":"YulExpressionStatement","src":"2574:14:53"},{"nativeSrc":"2597:26:53","nodeType":"YulAssignment","src":"2597:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"2615:1:53","nodeType":"YulLiteral","src":"2615:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2618:4:53","nodeType":"YulLiteral","src":"2618:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2605:9:53","nodeType":"YulIdentifier","src":"2605:9:53"},"nativeSrc":"2605:18:53","nodeType":"YulFunctionCall","src":"2605:18:53"},"variableNames":[{"name":"data","nativeSrc":"2597:4:53","nodeType":"YulIdentifier","src":"2597:4:53"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"2508:121:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"2547:3:53","nodeType":"YulTypedName","src":"2547:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"2555:4:53","nodeType":"YulTypedName","src":"2555:4:53","type":""}],"src":"2508:121:53"},{"body":{"nativeSrc":"2715:462:53","nodeType":"YulBlock","src":"2715:462:53","statements":[{"body":{"nativeSrc":"2748:423:53","nodeType":"YulBlock","src":"2748:423:53","statements":[{"nativeSrc":"2762:11:53","nodeType":"YulVariableDeclaration","src":"2762:11:53","value":{"kind":"number","nativeSrc":"2772:1:53","nodeType":"YulLiteral","src":"2772:1:53","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"2766:2:53","nodeType":"YulTypedName","src":"2766:2:53","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2793:1:53","nodeType":"YulLiteral","src":"2793:1:53","type":"","value":"0"},{"name":"array","nativeSrc":"2796:5:53","nodeType":"YulIdentifier","src":"2796:5:53"}],"functionName":{"name":"mstore","nativeSrc":"2786:6:53","nodeType":"YulIdentifier","src":"2786:6:53"},"nativeSrc":"2786:16:53","nodeType":"YulFunctionCall","src":"2786:16:53"},"nativeSrc":"2786:16:53","nodeType":"YulExpressionStatement","src":"2786:16:53"},{"nativeSrc":"2815:30:53","nodeType":"YulVariableDeclaration","src":"2815:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"2837:1:53","nodeType":"YulLiteral","src":"2837:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2840:4:53","nodeType":"YulLiteral","src":"2840:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2827:9:53","nodeType":"YulIdentifier","src":"2827:9:53"},"nativeSrc":"2827:18:53","nodeType":"YulFunctionCall","src":"2827:18:53"},"variables":[{"name":"data","nativeSrc":"2819:4:53","nodeType":"YulTypedName","src":"2819:4:53","type":""}]},{"nativeSrc":"2858:57:53","nodeType":"YulVariableDeclaration","src":"2858:57:53","value":{"arguments":[{"name":"data","nativeSrc":"2881:4:53","nodeType":"YulIdentifier","src":"2881:4:53"},{"arguments":[{"kind":"number","nativeSrc":"2891:1:53","nodeType":"YulLiteral","src":"2891:1:53","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"2898:10:53","nodeType":"YulIdentifier","src":"2898:10:53"},{"kind":"number","nativeSrc":"2910:2:53","nodeType":"YulLiteral","src":"2910:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2894:3:53","nodeType":"YulIdentifier","src":"2894:3:53"},"nativeSrc":"2894:19:53","nodeType":"YulFunctionCall","src":"2894:19:53"}],"functionName":{"name":"shr","nativeSrc":"2887:3:53","nodeType":"YulIdentifier","src":"2887:3:53"},"nativeSrc":"2887:27:53","nodeType":"YulFunctionCall","src":"2887:27:53"}],"functionName":{"name":"add","nativeSrc":"2877:3:53","nodeType":"YulIdentifier","src":"2877:3:53"},"nativeSrc":"2877:38:53","nodeType":"YulFunctionCall","src":"2877:38:53"},"variables":[{"name":"deleteStart","nativeSrc":"2862:11:53","nodeType":"YulTypedName","src":"2862:11:53","type":""}]},{"body":{"nativeSrc":"2952:23:53","nodeType":"YulBlock","src":"2952:23:53","statements":[{"nativeSrc":"2954:19:53","nodeType":"YulAssignment","src":"2954:19:53","value":{"name":"data","nativeSrc":"2969:4:53","nodeType":"YulIdentifier","src":"2969:4:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"2954:11:53","nodeType":"YulIdentifier","src":"2954:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"2934:10:53","nodeType":"YulIdentifier","src":"2934:10:53"},{"kind":"number","nativeSrc":"2946:4:53","nodeType":"YulLiteral","src":"2946:4:53","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"2931:2:53","nodeType":"YulIdentifier","src":"2931:2:53"},"nativeSrc":"2931:20:53","nodeType":"YulFunctionCall","src":"2931:20:53"},"nativeSrc":"2928:47:53","nodeType":"YulIf","src":"2928:47:53"},{"nativeSrc":"2988:41:53","nodeType":"YulVariableDeclaration","src":"2988:41:53","value":{"arguments":[{"name":"data","nativeSrc":"3002:4:53","nodeType":"YulIdentifier","src":"3002:4:53"},{"arguments":[{"kind":"number","nativeSrc":"3012:1:53","nodeType":"YulLiteral","src":"3012:1:53","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"3019:3:53","nodeType":"YulIdentifier","src":"3019:3:53"},{"kind":"number","nativeSrc":"3024:2:53","nodeType":"YulLiteral","src":"3024:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3015:3:53","nodeType":"YulIdentifier","src":"3015:3:53"},"nativeSrc":"3015:12:53","nodeType":"YulFunctionCall","src":"3015:12:53"}],"functionName":{"name":"shr","nativeSrc":"3008:3:53","nodeType":"YulIdentifier","src":"3008:3:53"},"nativeSrc":"3008:20:53","nodeType":"YulFunctionCall","src":"3008:20:53"}],"functionName":{"name":"add","nativeSrc":"2998:3:53","nodeType":"YulIdentifier","src":"2998:3:53"},"nativeSrc":"2998:31:53","nodeType":"YulFunctionCall","src":"2998:31:53"},"variables":[{"name":"_2","nativeSrc":"2992:2:53","nodeType":"YulTypedName","src":"2992:2:53","type":""}]},{"nativeSrc":"3042:24:53","nodeType":"YulVariableDeclaration","src":"3042:24:53","value":{"name":"deleteStart","nativeSrc":"3055:11:53","nodeType":"YulIdentifier","src":"3055:11:53"},"variables":[{"name":"start","nativeSrc":"3046:5:53","nodeType":"YulTypedName","src":"3046:5:53","type":""}]},{"body":{"nativeSrc":"3140:21:53","nodeType":"YulBlock","src":"3140:21:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"3149:5:53","nodeType":"YulIdentifier","src":"3149:5:53"},{"name":"_1","nativeSrc":"3156:2:53","nodeType":"YulIdentifier","src":"3156:2:53"}],"functionName":{"name":"sstore","nativeSrc":"3142:6:53","nodeType":"YulIdentifier","src":"3142:6:53"},"nativeSrc":"3142:17:53","nodeType":"YulFunctionCall","src":"3142:17:53"},"nativeSrc":"3142:17:53","nodeType":"YulExpressionStatement","src":"3142:17:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"3090:5:53","nodeType":"YulIdentifier","src":"3090:5:53"},{"name":"_2","nativeSrc":"3097:2:53","nodeType":"YulIdentifier","src":"3097:2:53"}],"functionName":{"name":"lt","nativeSrc":"3087:2:53","nodeType":"YulIdentifier","src":"3087:2:53"},"nativeSrc":"3087:13:53","nodeType":"YulFunctionCall","src":"3087:13:53"},"nativeSrc":"3079:82:53","nodeType":"YulForLoop","post":{"nativeSrc":"3101:26:53","nodeType":"YulBlock","src":"3101:26:53","statements":[{"nativeSrc":"3103:22:53","nodeType":"YulAssignment","src":"3103:22:53","value":{"arguments":[{"name":"start","nativeSrc":"3116:5:53","nodeType":"YulIdentifier","src":"3116:5:53"},{"kind":"number","nativeSrc":"3123:1:53","nodeType":"YulLiteral","src":"3123:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3112:3:53","nodeType":"YulIdentifier","src":"3112:3:53"},"nativeSrc":"3112:13:53","nodeType":"YulFunctionCall","src":"3112:13:53"},"variableNames":[{"name":"start","nativeSrc":"3103:5:53","nodeType":"YulIdentifier","src":"3103:5:53"}]}]},"pre":{"nativeSrc":"3083:3:53","nodeType":"YulBlock","src":"3083:3:53","statements":[]},"src":"3079:82:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2731:3:53","nodeType":"YulIdentifier","src":"2731:3:53"},{"kind":"number","nativeSrc":"2736:2:53","nodeType":"YulLiteral","src":"2736:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2728:2:53","nodeType":"YulIdentifier","src":"2728:2:53"},"nativeSrc":"2728:11:53","nodeType":"YulFunctionCall","src":"2728:11:53"},"nativeSrc":"2725:446:53","nodeType":"YulIf","src":"2725:446:53"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"2634:543:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2687:5:53","nodeType":"YulTypedName","src":"2687:5:53","type":""},{"name":"len","nativeSrc":"2694:3:53","nodeType":"YulTypedName","src":"2694:3:53","type":""},{"name":"startIndex","nativeSrc":"2699:10:53","nodeType":"YulTypedName","src":"2699:10:53","type":""}],"src":"2634:543:53"},{"body":{"nativeSrc":"3267:81:53","nodeType":"YulBlock","src":"3267:81:53","statements":[{"nativeSrc":"3277:65:53","nodeType":"YulAssignment","src":"3277:65:53","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"3292:4:53","nodeType":"YulIdentifier","src":"3292:4:53"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3310:1:53","nodeType":"YulLiteral","src":"3310:1:53","type":"","value":"3"},{"name":"len","nativeSrc":"3313:3:53","nodeType":"YulIdentifier","src":"3313:3:53"}],"functionName":{"name":"shl","nativeSrc":"3306:3:53","nodeType":"YulIdentifier","src":"3306:3:53"},"nativeSrc":"3306:11:53","nodeType":"YulFunctionCall","src":"3306:11:53"},{"arguments":[{"kind":"number","nativeSrc":"3323:1:53","nodeType":"YulLiteral","src":"3323:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3319:3:53","nodeType":"YulIdentifier","src":"3319:3:53"},"nativeSrc":"3319:6:53","nodeType":"YulFunctionCall","src":"3319:6:53"}],"functionName":{"name":"shr","nativeSrc":"3302:3:53","nodeType":"YulIdentifier","src":"3302:3:53"},"nativeSrc":"3302:24:53","nodeType":"YulFunctionCall","src":"3302:24:53"}],"functionName":{"name":"not","nativeSrc":"3298:3:53","nodeType":"YulIdentifier","src":"3298:3:53"},"nativeSrc":"3298:29:53","nodeType":"YulFunctionCall","src":"3298:29:53"}],"functionName":{"name":"and","nativeSrc":"3288:3:53","nodeType":"YulIdentifier","src":"3288:3:53"},"nativeSrc":"3288:40:53","nodeType":"YulFunctionCall","src":"3288:40:53"},{"arguments":[{"kind":"number","nativeSrc":"3334:1:53","nodeType":"YulLiteral","src":"3334:1:53","type":"","value":"1"},{"name":"len","nativeSrc":"3337:3:53","nodeType":"YulIdentifier","src":"3337:3:53"}],"functionName":{"name":"shl","nativeSrc":"3330:3:53","nodeType":"YulIdentifier","src":"3330:3:53"},"nativeSrc":"3330:11:53","nodeType":"YulFunctionCall","src":"3330:11:53"}],"functionName":{"name":"or","nativeSrc":"3285:2:53","nodeType":"YulIdentifier","src":"3285:2:53"},"nativeSrc":"3285:57:53","nodeType":"YulFunctionCall","src":"3285:57:53"},"variableNames":[{"name":"used","nativeSrc":"3277:4:53","nodeType":"YulIdentifier","src":"3277:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"3182:166:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3244:4:53","nodeType":"YulTypedName","src":"3244:4:53","type":""},{"name":"len","nativeSrc":"3250:3:53","nodeType":"YulTypedName","src":"3250:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"3258:4:53","nodeType":"YulTypedName","src":"3258:4:53","type":""}],"src":"3182:166:53"},{"body":{"nativeSrc":"3449:1249:53","nodeType":"YulBlock","src":"3449:1249:53","statements":[{"nativeSrc":"3459:24:53","nodeType":"YulVariableDeclaration","src":"3459:24:53","value":{"arguments":[{"name":"src","nativeSrc":"3479:3:53","nodeType":"YulIdentifier","src":"3479:3:53"}],"functionName":{"name":"mload","nativeSrc":"3473:5:53","nodeType":"YulIdentifier","src":"3473:5:53"},"nativeSrc":"3473:10:53","nodeType":"YulFunctionCall","src":"3473:10:53"},"variables":[{"name":"newLen","nativeSrc":"3463:6:53","nodeType":"YulTypedName","src":"3463:6:53","type":""}]},{"body":{"nativeSrc":"3526:22:53","nodeType":"YulBlock","src":"3526:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3528:16:53","nodeType":"YulIdentifier","src":"3528:16:53"},"nativeSrc":"3528:18:53","nodeType":"YulFunctionCall","src":"3528:18:53"},"nativeSrc":"3528:18:53","nodeType":"YulExpressionStatement","src":"3528:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"3498:6:53","nodeType":"YulIdentifier","src":"3498:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3514:2:53","nodeType":"YulLiteral","src":"3514:2:53","type":"","value":"64"},{"kind":"number","nativeSrc":"3518:1:53","nodeType":"YulLiteral","src":"3518:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3510:3:53","nodeType":"YulIdentifier","src":"3510:3:53"},"nativeSrc":"3510:10:53","nodeType":"YulFunctionCall","src":"3510:10:53"},{"kind":"number","nativeSrc":"3522:1:53","nodeType":"YulLiteral","src":"3522:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3506:3:53","nodeType":"YulIdentifier","src":"3506:3:53"},"nativeSrc":"3506:18:53","nodeType":"YulFunctionCall","src":"3506:18:53"}],"functionName":{"name":"gt","nativeSrc":"3495:2:53","nodeType":"YulIdentifier","src":"3495:2:53"},"nativeSrc":"3495:30:53","nodeType":"YulFunctionCall","src":"3495:30:53"},"nativeSrc":"3492:56:53","nodeType":"YulIf","src":"3492:56:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3601:4:53","nodeType":"YulIdentifier","src":"3601:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"3639:4:53","nodeType":"YulIdentifier","src":"3639:4:53"}],"functionName":{"name":"sload","nativeSrc":"3633:5:53","nodeType":"YulIdentifier","src":"3633:5:53"},"nativeSrc":"3633:11:53","nodeType":"YulFunctionCall","src":"3633:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"3607:25:53","nodeType":"YulIdentifier","src":"3607:25:53"},"nativeSrc":"3607:38:53","nodeType":"YulFunctionCall","src":"3607:38:53"},{"name":"newLen","nativeSrc":"3647:6:53","nodeType":"YulIdentifier","src":"3647:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"3557:43:53","nodeType":"YulIdentifier","src":"3557:43:53"},"nativeSrc":"3557:97:53","nodeType":"YulFunctionCall","src":"3557:97:53"},"nativeSrc":"3557:97:53","nodeType":"YulExpressionStatement","src":"3557:97:53"},{"nativeSrc":"3663:18:53","nodeType":"YulVariableDeclaration","src":"3663:18:53","value":{"kind":"number","nativeSrc":"3680:1:53","nodeType":"YulLiteral","src":"3680:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"3667:9:53","nodeType":"YulTypedName","src":"3667:9:53","type":""}]},{"nativeSrc":"3690:23:53","nodeType":"YulVariableDeclaration","src":"3690:23:53","value":{"kind":"number","nativeSrc":"3709:4:53","nodeType":"YulLiteral","src":"3709:4:53","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"3694:11:53","nodeType":"YulTypedName","src":"3694:11:53","type":""}]},{"nativeSrc":"3722:17:53","nodeType":"YulAssignment","src":"3722:17:53","value":{"kind":"number","nativeSrc":"3735:4:53","nodeType":"YulLiteral","src":"3735:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"3722:9:53","nodeType":"YulIdentifier","src":"3722:9:53"}]},{"cases":[{"body":{"nativeSrc":"3785:656:53","nodeType":"YulBlock","src":"3785:656:53","statements":[{"nativeSrc":"3799:35:53","nodeType":"YulVariableDeclaration","src":"3799:35:53","value":{"arguments":[{"name":"newLen","nativeSrc":"3818:6:53","nodeType":"YulIdentifier","src":"3818:6:53"},{"arguments":[{"kind":"number","nativeSrc":"3830:2:53","nodeType":"YulLiteral","src":"3830:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3826:3:53","nodeType":"YulIdentifier","src":"3826:3:53"},"nativeSrc":"3826:7:53","nodeType":"YulFunctionCall","src":"3826:7:53"}],"functionName":{"name":"and","nativeSrc":"3814:3:53","nodeType":"YulIdentifier","src":"3814:3:53"},"nativeSrc":"3814:20:53","nodeType":"YulFunctionCall","src":"3814:20:53"},"variables":[{"name":"loopEnd","nativeSrc":"3803:7:53","nodeType":"YulTypedName","src":"3803:7:53","type":""}]},{"nativeSrc":"3847:49:53","nodeType":"YulVariableDeclaration","src":"3847:49:53","value":{"arguments":[{"name":"slot","nativeSrc":"3891:4:53","nodeType":"YulIdentifier","src":"3891:4:53"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"3861:29:53","nodeType":"YulIdentifier","src":"3861:29:53"},"nativeSrc":"3861:35:53","nodeType":"YulFunctionCall","src":"3861:35:53"},"variables":[{"name":"dstPtr","nativeSrc":"3851:6:53","nodeType":"YulTypedName","src":"3851:6:53","type":""}]},{"nativeSrc":"3909:10:53","nodeType":"YulVariableDeclaration","src":"3909:10:53","value":{"kind":"number","nativeSrc":"3918:1:53","nodeType":"YulLiteral","src":"3918:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3913:1:53","nodeType":"YulTypedName","src":"3913:1:53","type":""}]},{"body":{"nativeSrc":"3996:172:53","nodeType":"YulBlock","src":"3996:172:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4021:6:53","nodeType":"YulIdentifier","src":"4021:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4039:3:53","nodeType":"YulIdentifier","src":"4039:3:53"},{"name":"srcOffset","nativeSrc":"4044:9:53","nodeType":"YulIdentifier","src":"4044:9:53"}],"functionName":{"name":"add","nativeSrc":"4035:3:53","nodeType":"YulIdentifier","src":"4035:3:53"},"nativeSrc":"4035:19:53","nodeType":"YulFunctionCall","src":"4035:19:53"}],"functionName":{"name":"mload","nativeSrc":"4029:5:53","nodeType":"YulIdentifier","src":"4029:5:53"},"nativeSrc":"4029:26:53","nodeType":"YulFunctionCall","src":"4029:26:53"}],"functionName":{"name":"sstore","nativeSrc":"4014:6:53","nodeType":"YulIdentifier","src":"4014:6:53"},"nativeSrc":"4014:42:53","nodeType":"YulFunctionCall","src":"4014:42:53"},"nativeSrc":"4014:42:53","nodeType":"YulExpressionStatement","src":"4014:42:53"},{"nativeSrc":"4073:24:53","nodeType":"YulAssignment","src":"4073:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"4087:6:53","nodeType":"YulIdentifier","src":"4087:6:53"},{"kind":"number","nativeSrc":"4095:1:53","nodeType":"YulLiteral","src":"4095:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4083:3:53","nodeType":"YulIdentifier","src":"4083:3:53"},"nativeSrc":"4083:14:53","nodeType":"YulFunctionCall","src":"4083:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"4073:6:53","nodeType":"YulIdentifier","src":"4073:6:53"}]},{"nativeSrc":"4114:40:53","nodeType":"YulAssignment","src":"4114:40:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"4131:9:53","nodeType":"YulIdentifier","src":"4131:9:53"},{"name":"srcOffset_1","nativeSrc":"4142:11:53","nodeType":"YulIdentifier","src":"4142:11:53"}],"functionName":{"name":"add","nativeSrc":"4127:3:53","nodeType":"YulIdentifier","src":"4127:3:53"},"nativeSrc":"4127:27:53","nodeType":"YulFunctionCall","src":"4127:27:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"4114:9:53","nodeType":"YulIdentifier","src":"4114:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3943:1:53","nodeType":"YulIdentifier","src":"3943:1:53"},{"name":"loopEnd","nativeSrc":"3946:7:53","nodeType":"YulIdentifier","src":"3946:7:53"}],"functionName":{"name":"lt","nativeSrc":"3940:2:53","nodeType":"YulIdentifier","src":"3940:2:53"},"nativeSrc":"3940:14:53","nodeType":"YulFunctionCall","src":"3940:14:53"},"nativeSrc":"3932:236:53","nodeType":"YulForLoop","post":{"nativeSrc":"3955:28:53","nodeType":"YulBlock","src":"3955:28:53","statements":[{"nativeSrc":"3957:24:53","nodeType":"YulAssignment","src":"3957:24:53","value":{"arguments":[{"name":"i","nativeSrc":"3966:1:53","nodeType":"YulIdentifier","src":"3966:1:53"},{"name":"srcOffset_1","nativeSrc":"3969:11:53","nodeType":"YulIdentifier","src":"3969:11:53"}],"functionName":{"name":"add","nativeSrc":"3962:3:53","nodeType":"YulIdentifier","src":"3962:3:53"},"nativeSrc":"3962:19:53","nodeType":"YulFunctionCall","src":"3962:19:53"},"variableNames":[{"name":"i","nativeSrc":"3957:1:53","nodeType":"YulIdentifier","src":"3957:1:53"}]}]},"pre":{"nativeSrc":"3936:3:53","nodeType":"YulBlock","src":"3936:3:53","statements":[]},"src":"3932:236:53"},{"body":{"nativeSrc":"4216:166:53","nodeType":"YulBlock","src":"4216:166:53","statements":[{"nativeSrc":"4234:43:53","nodeType":"YulVariableDeclaration","src":"4234:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4261:3:53","nodeType":"YulIdentifier","src":"4261:3:53"},{"name":"srcOffset","nativeSrc":"4266:9:53","nodeType":"YulIdentifier","src":"4266:9:53"}],"functionName":{"name":"add","nativeSrc":"4257:3:53","nodeType":"YulIdentifier","src":"4257:3:53"},"nativeSrc":"4257:19:53","nodeType":"YulFunctionCall","src":"4257:19:53"}],"functionName":{"name":"mload","nativeSrc":"4251:5:53","nodeType":"YulIdentifier","src":"4251:5:53"},"nativeSrc":"4251:26:53","nodeType":"YulFunctionCall","src":"4251:26:53"},"variables":[{"name":"lastValue","nativeSrc":"4238:9:53","nodeType":"YulTypedName","src":"4238:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4301:6:53","nodeType":"YulIdentifier","src":"4301:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"4313:9:53","nodeType":"YulIdentifier","src":"4313:9:53"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4340:1:53","nodeType":"YulLiteral","src":"4340:1:53","type":"","value":"3"},{"name":"newLen","nativeSrc":"4343:6:53","nodeType":"YulIdentifier","src":"4343:6:53"}],"functionName":{"name":"shl","nativeSrc":"4336:3:53","nodeType":"YulIdentifier","src":"4336:3:53"},"nativeSrc":"4336:14:53","nodeType":"YulFunctionCall","src":"4336:14:53"},{"kind":"number","nativeSrc":"4352:3:53","nodeType":"YulLiteral","src":"4352:3:53","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"4332:3:53","nodeType":"YulIdentifier","src":"4332:3:53"},"nativeSrc":"4332:24:53","nodeType":"YulFunctionCall","src":"4332:24:53"},{"arguments":[{"kind":"number","nativeSrc":"4362:1:53","nodeType":"YulLiteral","src":"4362:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"4358:3:53","nodeType":"YulIdentifier","src":"4358:3:53"},"nativeSrc":"4358:6:53","nodeType":"YulFunctionCall","src":"4358:6:53"}],"functionName":{"name":"shr","nativeSrc":"4328:3:53","nodeType":"YulIdentifier","src":"4328:3:53"},"nativeSrc":"4328:37:53","nodeType":"YulFunctionCall","src":"4328:37:53"}],"functionName":{"name":"not","nativeSrc":"4324:3:53","nodeType":"YulIdentifier","src":"4324:3:53"},"nativeSrc":"4324:42:53","nodeType":"YulFunctionCall","src":"4324:42:53"}],"functionName":{"name":"and","nativeSrc":"4309:3:53","nodeType":"YulIdentifier","src":"4309:3:53"},"nativeSrc":"4309:58:53","nodeType":"YulFunctionCall","src":"4309:58:53"}],"functionName":{"name":"sstore","nativeSrc":"4294:6:53","nodeType":"YulIdentifier","src":"4294:6:53"},"nativeSrc":"4294:74:53","nodeType":"YulFunctionCall","src":"4294:74:53"},"nativeSrc":"4294:74:53","nodeType":"YulExpressionStatement","src":"4294:74:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"4187:7:53","nodeType":"YulIdentifier","src":"4187:7:53"},{"name":"newLen","nativeSrc":"4196:6:53","nodeType":"YulIdentifier","src":"4196:6:53"}],"functionName":{"name":"lt","nativeSrc":"4184:2:53","nodeType":"YulIdentifier","src":"4184:2:53"},"nativeSrc":"4184:19:53","nodeType":"YulFunctionCall","src":"4184:19:53"},"nativeSrc":"4181:201:53","nodeType":"YulIf","src":"4181:201:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4402:4:53","nodeType":"YulIdentifier","src":"4402:4:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4416:1:53","nodeType":"YulLiteral","src":"4416:1:53","type":"","value":"1"},{"name":"newLen","nativeSrc":"4419:6:53","nodeType":"YulIdentifier","src":"4419:6:53"}],"functionName":{"name":"shl","nativeSrc":"4412:3:53","nodeType":"YulIdentifier","src":"4412:3:53"},"nativeSrc":"4412:14:53","nodeType":"YulFunctionCall","src":"4412:14:53"},{"kind":"number","nativeSrc":"4428:1:53","nodeType":"YulLiteral","src":"4428:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4408:3:53","nodeType":"YulIdentifier","src":"4408:3:53"},"nativeSrc":"4408:22:53","nodeType":"YulFunctionCall","src":"4408:22:53"}],"functionName":{"name":"sstore","nativeSrc":"4395:6:53","nodeType":"YulIdentifier","src":"4395:6:53"},"nativeSrc":"4395:36:53","nodeType":"YulFunctionCall","src":"4395:36:53"},"nativeSrc":"4395:36:53","nodeType":"YulExpressionStatement","src":"4395:36:53"}]},"nativeSrc":"3778:663:53","nodeType":"YulCase","src":"3778:663:53","value":{"kind":"number","nativeSrc":"3783:1:53","nodeType":"YulLiteral","src":"3783:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"4458:234:53","nodeType":"YulBlock","src":"4458:234:53","statements":[{"nativeSrc":"4472:14:53","nodeType":"YulVariableDeclaration","src":"4472:14:53","value":{"kind":"number","nativeSrc":"4485:1:53","nodeType":"YulLiteral","src":"4485:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4476:5:53","nodeType":"YulTypedName","src":"4476:5:53","type":""}]},{"body":{"nativeSrc":"4521:67:53","nodeType":"YulBlock","src":"4521:67:53","statements":[{"nativeSrc":"4539:35:53","nodeType":"YulAssignment","src":"4539:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4558:3:53","nodeType":"YulIdentifier","src":"4558:3:53"},{"name":"srcOffset","nativeSrc":"4563:9:53","nodeType":"YulIdentifier","src":"4563:9:53"}],"functionName":{"name":"add","nativeSrc":"4554:3:53","nodeType":"YulIdentifier","src":"4554:3:53"},"nativeSrc":"4554:19:53","nodeType":"YulFunctionCall","src":"4554:19:53"}],"functionName":{"name":"mload","nativeSrc":"4548:5:53","nodeType":"YulIdentifier","src":"4548:5:53"},"nativeSrc":"4548:26:53","nodeType":"YulFunctionCall","src":"4548:26:53"},"variableNames":[{"name":"value","nativeSrc":"4539:5:53","nodeType":"YulIdentifier","src":"4539:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"4502:6:53","nodeType":"YulIdentifier","src":"4502:6:53"},"nativeSrc":"4499:89:53","nodeType":"YulIf","src":"4499:89:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4608:4:53","nodeType":"YulIdentifier","src":"4608:4:53"},{"arguments":[{"name":"value","nativeSrc":"4667:5:53","nodeType":"YulIdentifier","src":"4667:5:53"},{"name":"newLen","nativeSrc":"4674:6:53","nodeType":"YulIdentifier","src":"4674:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"4614:52:53","nodeType":"YulIdentifier","src":"4614:52:53"},"nativeSrc":"4614:67:53","nodeType":"YulFunctionCall","src":"4614:67:53"}],"functionName":{"name":"sstore","nativeSrc":"4601:6:53","nodeType":"YulIdentifier","src":"4601:6:53"},"nativeSrc":"4601:81:53","nodeType":"YulFunctionCall","src":"4601:81:53"},"nativeSrc":"4601:81:53","nodeType":"YulExpressionStatement","src":"4601:81:53"}]},"nativeSrc":"4450:242:53","nodeType":"YulCase","src":"4450:242:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"3758:6:53","nodeType":"YulIdentifier","src":"3758:6:53"},{"kind":"number","nativeSrc":"3766:2:53","nodeType":"YulLiteral","src":"3766:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3755:2:53","nodeType":"YulIdentifier","src":"3755:2:53"},"nativeSrc":"3755:14:53","nodeType":"YulFunctionCall","src":"3755:14:53"},"nativeSrc":"3748:944:53","nodeType":"YulSwitch","src":"3748:944:53"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"3353:1345:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3434:4:53","nodeType":"YulTypedName","src":"3434:4:53","type":""},{"name":"src","nativeSrc":"3440:3:53","nodeType":"YulTypedName","src":"3440:3:53","type":""}],"src":"3353:1345:53"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n mstore(add(add(memPtr, _1), 0x20), 0)\n array := memPtr\n }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := abi_decode_address_fromMemory(add(headStart, 96))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(0, array)\n let data := keccak256(0, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := 0x20\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n}","id":53,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b506040516200393c3803806200393c83398101604081905262000034916200027f565b83838383838383838383838381818181806001600160a01b0381166200007457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007f816200014a565b506001600160a01b038083166080528116620000ae57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000f657600080fd5b505af11580156200010b573d6000803e3d6000fd5b5050505050505050505081600590816200012691906200039f565b5060066200013582826200039f565b5050505050505050505050505050506200046b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001c257600080fd5b81516001600160401b0380821115620001df57620001df6200019a565b604051601f8301601f19908116603f011681019082821181831017156200020a576200020a6200019a565b81604052838152602092508660208588010111156200022857600080fd5b600091505b838210156200024c57858201830151818301840152908201906200022d565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200027a57600080fd5b919050565b600080600080608085870312156200029657600080fd5b84516001600160401b0380821115620002ae57600080fd5b620002bc88838901620001b0565b95506020870151915080821115620002d357600080fd5b50620002e287828801620001b0565b935050620002f36040860162000262565b9150620003036060860162000262565b905092959194509250565b600181811c908216806200032357607f821691505b6020821081036200034457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200039a576000816000526020600020601f850160051c81016020861015620003755750805b601f850160051c820191505b81811015620003965782815560010162000381565b5050505b505050565b81516001600160401b03811115620003bb57620003bb6200019a565b620003d381620003cc84546200030e565b846200034a565b602080601f8311600181146200040b5760008415620003f25750858301515b600019600386901b1c1916600185901b17855562000396565b600085815260208120601f198616915b828110156200043c578886015182559484019460019091019084016200041b565b50858210156200045b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051613484620004b8600039600081816104b601528181610938015281816111970152818161142c015281816116af01528181611cc1015281816120a0015261215901526134846000f3fe6080604052600436106102675760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc14610787578063d42438851461079a578063e985e9c5146107ba578063f2fde38b146107da578063fc0c546a1461043a578063ff7bd03d146107fa57600080fd5b8063bc70b354146106e7578063bd815db014610707578063c6414e7b1461071a578063c87b56dd14610747578063ca5eb5e11461076757600080fd5b8063a72f5dd811610108578063a72f5dd81461061d578063b21a33e414610645578063b731ea0a1461065a578063b88d4fde1461067a578063b98bd0701461069a578063bb0b6a53146106ba57600080fd5b806382413eac146105965780638da5cb5b146105b657806395d89b41146105d45780639f68b964146105e9578063a22cb465146105fd57600080fd5b806340c10f19116101dd5780635e280f11116101a15780635e280f11146104a45780636352211e146104d85780636fc1b31e146104f857806370a0823114610518578063715018a6146105465780637d25a05e1461055b57600080fd5b806340c10f19146103fa57806342842e0e1461041a57806352ae28791461043a5780635535d4611461044d5780635a0dfe4d1461046d57600080fd5b806313137d651161022f57806313137d651461033d57806317442b70146103505780631f5e13341461037257806321eb730b1461039a57806323b872dd146103ba5780633400288b146103da57600080fd5b806301ffc9a71461026c57806306fdde03146102a1578063081812fc146102c3578063095ea7b3146102fb578063111ecdad1461031d575b600080fd5b34801561027857600080fd5b5061028c61028736600461253e565b61081a565b60405190151581526020015b60405180910390f35b3480156102ad57600080fd5b506102b661086c565b60405161029891906125ab565b3480156102cf57600080fd5b506102e36102de3660046125be565b6108fe565b6040516001600160a01b039091168152602001610298565b34801561030757600080fd5b5061031b6103163660046125ec565b610927565b005b34801561032957600080fd5b506004546102e3906001600160a01b031681565b61031b61034b366004612678565b610936565b34801561035c57600080fd5b5060408051600181526002602082015201610298565b34801561037e57600080fd5b50610387600181565b60405161ffff9091168152602001610298565b6103ad6103a8366004612729565b6109f6565b6040516102989190612796565b3480156103c657600080fd5b5061031b6103d53660046127d8565b610ad1565b3480156103e657600080fd5b5061031b6103f5366004612832565b610b5c565b34801561040657600080fd5b5061031b6104153660046125ec565b610b6e565b34801561042657600080fd5b5061031b6104353660046127d8565b610b78565b34801561044657600080fd5b50306102e3565b34801561045957600080fd5b506102b6610468366004612860565b610b98565b34801561047957600080fd5b5061028c610488366004612832565b63ffffffff919091166000908152600160205260409020541490565b3480156104b057600080fd5b506102e37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e457600080fd5b506102e36104f33660046125be565b610c3d565b34801561050457600080fd5b5061031b610513366004612893565b610c48565b34801561052457600080fd5b50610538610533366004612893565b610ca5565b604051908152602001610298565b34801561055257600080fd5b5061031b610ced565b34801561056757600080fd5b5061057e610576366004612832565b600092915050565b6040516001600160401b039091168152602001610298565b3480156105a257600080fd5b5061028c6105b13660046128b0565b610d01565b3480156105c257600080fd5b506000546001600160a01b03166102e3565b3480156105e057600080fd5b506102b6610d16565b3480156105f557600080fd5b50600061028c565b34801561060957600080fd5b5061031b610618366004612924565b610d25565b34801561062957600080fd5b50604080516311f0c6d360e11b81526001602082015201610298565b34801561065157600080fd5b50610387600281565b34801561066657600080fd5b506002546102e3906001600160a01b031681565b34801561068657600080fd5b5061031b610695366004612a6a565b610d30565b3480156106a657600080fd5b5061031b6106b5366004612b19565b610d47565b3480156106c657600080fd5b506105386106d5366004612b5a565b60016020526000908152604090205481565b3480156106f357600080fd5b506102b6610702366004612b75565b610d61565b61031b610715366004612b19565b610f09565b34801561072657600080fd5b5061073a610735366004612bd5565b611093565b6040516102989190612c1b565b34801561075357600080fd5b506102b66107623660046125be565b6110fb565b34801561077357600080fd5b5061031b610782366004612893565b611170565b61031b610795366004612678565b6111f6565b3480156107a657600080fd5b5061031b6107b5366004612893565b611225565b3480156107c657600080fd5b5061028c6107d5366004612c32565b61127b565b3480156107e657600080fd5b5061031b6107f5366004612893565b6112a9565b34801561080657600080fd5b5061028c610815366004612c60565b6112e7565b60006001600160e01b031982166380ac58cd60e01b148061084b57506001600160e01b03198216635b5e139f60e01b145b8061086657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461087b90612c7c565b80601f01602080910402602001604051908101604052809291908181526020018280546108a790612c7c565b80156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b60006109098261131d565b506000828152600960205260409020546001600160a01b0316610866565b610932828233611356565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610986576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b602087018035906109a09061099b908a612b5a565b611363565b146109de576109b26020880188612b5a565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161097d565b6109ed8787878787878761139f565b50505050505050565b6109fe6124e1565b6020840135610a2057604051631e4ec46b60e01b815260040160405180910390fd5b610a3b336040860135610a366020880188612b5a565b6114fe565b600080610a478661155e565b9092509050610a73610a5c6020880188612b5a565b8383610a6d368a90038a018a612cb0565b8861167c565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610aa860208a018a612b5a565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610afb57604051633250574960e11b81526000600482015260240161097d565b6000610b08838333611787565b9050836001600160a01b0316816001600160a01b031614610b56576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161097d565b50505050565b610b64611880565b61093282826118ad565b6109328282611902565b610b9383838360405180602001604052806000815250610d30565b505050565b600360209081526000928352604080842090915290825290208054610bbc90612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610be890612c7c565b8015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b60006108668261131d565b610c50611880565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610cd1576040516322718ad960e21b81526000600482015260240161097d565b506001600160a01b031660009081526008602052604090205490565b610cf5611880565b610cff6000611967565b565b6001600160a01b03811630145b949350505050565b60606006805461087b90612c7c565b6109323383836119b7565b610d3b848484610ad1565b610b5684848484611a56565b610d4f611880565b610932610d5c8284612ce2565b611b78565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d9590612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc190612c7c565b8015610e0e5780601f10610de357610100808354040283529160200191610e0e565b820191906000526020600020905b815481529060010190602001808311610df157829003601f168201915b505050505090508051600003610e5e5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610d0e9350505050565b6000839003610e6e579050610d0e565b60028310610eec57610eb584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c7f92505050565b80610ec38460028188612db7565b604051602001610ed593929190612de1565b604051602081830303815290604052915050610d0e565b8383604051639a6d49cd60e01b815260040161097d929190612e32565b60005b818110156110125736838383818110610f2757610f27612e46565b9050602002810190610f399190612e5c565b9050610f6c610f4b6020830183612b5a565b602083013563ffffffff919091166000908152600160205260409020541490565b610f76575061100a565b3063d045a0dc60c08301358360a0810135610f95610100830183612e7d565b610fa6610100890160e08a01612893565b610fb46101208a018a612e7d565b6040518963ffffffff1660e01b8152600401610fd69796959493929190612ed8565b6000604051808303818588803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b5050505050505b600101610f0c565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110799190810190612f5e565b604051638351eea760e01b815260040161097d91906125ab565b604080518082019091526000808252602082015260208301356110c957604051631e4ec46b60e01b815260040160405180910390fd5b6000806110d58561155e565b90925090506110f26110ea6020870187612b5a565b838387611cab565b95945050505050565b60606111068261131d565b50600061111e60408051602081019091526000815290565b9050600081511161113e5760405180602001604052806000815250611169565b8061114884611d83565b604051602001611159929190612fcb565b6040516020818303038152906040525b9392505050565b611178611880565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111db57600080fd5b505af11580156111ef573d6000803e3d6000fd5b5050505050565b3330146112165760405163029a949d60e31b815260040160405180910390fd5b6109ed878787878787876109de565b61122d611880565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c9a565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6112b1611880565b6001600160a01b0381166112db57604051631e4fbdf760e01b81526000600482015260240161097d565b6112e481611967565b50565b60006020820180359060019083906112ff9086612b5a565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061086657604051637e27328960e01b81526004810184905260240161097d565b610b938383836001611e15565b63ffffffff8116600090815260016020526040812054806108665760405163f6ff4fb760e01b815263ffffffff8416600482015260240161097d565b60006113b16113ae8787611f1b565b90565b905060006113bf8787611f33565b90506113d882826113d360208d018d612b5a565b611f50565b604086111561149c5760006114126113f660608c0160408d01612ffa565b61140360208d018d612b5a565b61140d8b8b611f5a565b611fa5565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114689086908d906000908790600401613017565b600060405180830381600087803b15801561148257600080fd5b505af1158015611496573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114d560208d018d612b5a565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b61150782610c3d565b6001600160a01b0316836001600160a01b031614611555578261152983610c3d565b604051634342715b60e11b81526001600160a01b0392831660048201529116602482015260440161097d565b610b9382611fd4565b60608060006115b76020850135604086013561157d6080880188612e7d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061200f92505050565b90935090506000816115ca5760016115cd565b60025b90506115ed6115df6020870187612b5a565b826107026060890189612e7d565b6004549093506001600160a01b031615611675576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb91611632918891889101613048565b602060405180830381865afa15801561164f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611673919061306d565b505b5050915091565b6116846124e1565b60006116938460000151612074565b6020850151909150156116ad576116ad846020015161209c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116fd8c611363565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161173992919061308a565b60806040518083038185885af1158015611757573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061177c9190613133565b979650505050505050565b6000828152600760205260408120546001600160a01b03908116908316156117b4576117b481848661217e565b6001600160a01b038116156117f2576117d1600085600080611e15565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b03851615611821576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cff5760405163118cdaa760e01b815233600482015260240161097d565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6001600160a01b03821661192c57604051633250574960e11b81526000600482015260240161097d565b600061193a83836000611787565b90506001600160a01b03811615610b93576040516339e3563760e11b81526000600482015260240161097d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166119e957604051630b61174360e31b81526001600160a01b038316600482015260240161097d565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b5657604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611a9890339088908790879060040161317d565b6020604051808303816000875af1925050508015611ad3575060408051601f3d908101601f19168201909252611ad0918101906131b0565b60015b611b3c573d808015611b01576040519150601f19603f3d011682016040523d82523d6000602084013e611b06565b606091505b508051600003611b3457604051633250574960e11b81526001600160a01b038516600482015260240161097d565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ef57604051633250574960e11b81526001600160a01b038516600482015260240161097d565b60005b8151811015611c4f57611baa828281518110611b9957611b99612e46565b602002602001015160400151611c7f565b818181518110611bbc57611bbc612e46565b60200260200101516040015160036000848481518110611bde57611bde612e46565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611c1857611c18612e46565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611c46919061321d565b50600101611b7b565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c9a91906132dc565b600281015161ffff81166003146109325781604051639a6d49cd60e01b815260040161097d91906125ab565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611d0e89611363565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611d4392919061308a565b6040805180830381865afa158015611d5f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190613367565b60606000611d90836121e2565b60010190506000816001600160401b03811115611daf57611daf61295d565b6040519080825280601f01601f191660200182016040528015611dd9576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611de357509392505050565b8080611e2957506001600160a01b03821615155b15611eeb576000611e398461131d565b90506001600160a01b03831615801590611e655750826001600160a01b0316816001600160a01b031614155b8015611e785750611e76818461127b565b155b15611ea15760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161097d565b8115611ee95783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611f2a6020828486612db7565b61116991613383565b6000611f43604060208486612db7565b81019061116991906125be565b610b938383611902565b6060611f698260408186612db7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611fbc939291906133a1565b60405160208183030381529060405290509392505050565b6000611fe36000836000611787565b90506001600160a01b03811661093257604051637e27328960e01b81526004810183905260240161097d565b805160609015158061204357604080516020810187905290810185905260600160405160208183030381529060405261206a565b8484338560405160200161205a94939291906133eb565b6040516020818303038152906040525b9150935093915050565b6000813414612098576040516304fb820960e51b815234600482015260240161097d565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612120919061341f565b90506001600160a01b038116612149576040516329b99a9560e11b815260040160405180910390fd5b6109326001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856122ba565b612189838383612314565b610b93576001600160a01b0383166121b757604051637e27328960e01b81526004810182905260240161097d565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161097d565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106122215772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061224d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061226b57662386f26fc10000830492506010015b6305f5e1008310612283576305f5e100830492506008015b612710831061229757612710830492506004015b606483106122a9576064830492506002015b600a83106108665760010192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b56908590612377565b60006001600160a01b03831615801590610d0e5750826001600160a01b0316846001600160a01b0316148061234e575061234e848461127b565b80610d0e5750506000908152600960205260409020546001600160a01b03908116911614919050565b600061238c6001600160a01b038416836123da565b905080516000141580156123b15750808060200190518101906123af919061306d565b155b15610b9357604051635274afe760e01b81526001600160a01b038416600482015260240161097d565b60606111698383600084600080856001600160a01b03168486604051612400919061343c565b60006040518083038185875af1925050503d806000811461243d576040519150601f19603f3d011682016040523d82523d6000602084013e612442565b606091505b509150915061245286838361245c565b9695505050505050565b6060826124715761246c826124b8565b611169565b815115801561248857506001600160a01b0384163b155b156124b157604051639996b31560e01b81526001600160a01b038516600482015260240161097d565b5080611169565b8051156124c85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001612523604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112e457600080fd5b60006020828403121561255057600080fd5b813561116981612528565b60005b8381101561257657818101518382015260200161255e565b50506000910152565b6000815180845261259781602086016020860161255b565b601f01601f19169290920160200192915050565b602081526000611169602083018461257f565b6000602082840312156125d057600080fd5b5035919050565b6001600160a01b03811681146112e457600080fd5b600080604083850312156125ff57600080fd5b823561260a816125d7565b946020939093013593505050565b60006060828403121561262a57600080fd5b50919050565b60008083601f84011261264257600080fd5b5081356001600160401b0381111561265957600080fd5b60208301915083602082850101111561267157600080fd5b9250929050565b600080600080600080600060e0888a03121561269357600080fd5b61269d8989612618565b96506060880135955060808801356001600160401b03808211156126c057600080fd5b6126cc8b838c01612630565b909750955060a08a013591506126e1826125d7565b90935060c089013590808211156126f757600080fd5b506127048a828b01612630565b989b979a50959850939692959293505050565b600060c0828403121561262a57600080fd5b6000806000838503608081121561273f57600080fd5b84356001600160401b0381111561275557600080fd5b61276187828801612717565b9450506040601f198201121561277657600080fd5b50602084019150606084013561278b816125d7565b809150509250925092565b6000608082019050825182526001600160401b03602084015116602083015260408301516127d1604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127ed57600080fd5b83356127f8816125d7565b92506020840135612808816125d7565b929592945050506040919091013590565b803563ffffffff8116811461282d57600080fd5b919050565b6000806040838503121561284557600080fd5b61260a83612819565b803561ffff8116811461282d57600080fd5b6000806040838503121561287357600080fd5b61287c83612819565b915061288a6020840161284e565b90509250929050565b6000602082840312156128a557600080fd5b8135611169816125d7565b60008060008060a085870312156128c657600080fd5b6128d08686612618565b935060608501356001600160401b038111156128eb57600080fd5b6128f787828801612630565b909450925050608085013561290b816125d7565b939692955090935050565b80151581146112e457600080fd5b6000806040838503121561293757600080fd5b8235612942816125d7565b9150602083013561295281612916565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156129955761299561295d565b60405290565b604051606081016001600160401b03811182821017156129955761299561295d565b604051601f8201601f191681016001600160401b03811182821017156129e5576129e561295d565b604052919050565b60006001600160401b03821115612a0657612a0661295d565b50601f01601f191660200190565b600082601f830112612a2557600080fd5b8135612a38612a33826129ed565b6129bd565b818152846020838601011115612a4d57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a8057600080fd5b8435612a8b816125d7565b93506020850135612a9b816125d7565b92506040850135915060608501356001600160401b03811115612abd57600080fd5b612ac987828801612a14565b91505092959194509250565b60008083601f840112612ae757600080fd5b5081356001600160401b03811115612afe57600080fd5b6020830191508360208260051b850101111561267157600080fd5b60008060208385031215612b2c57600080fd5b82356001600160401b03811115612b4257600080fd5b612b4e85828601612ad5565b90969095509350505050565b600060208284031215612b6c57600080fd5b61116982612819565b60008060008060608587031215612b8b57600080fd5b612b9485612819565b9350612ba26020860161284e565b925060408501356001600160401b03811115612bbd57600080fd5b612bc987828801612630565b95989497509550505050565b60008060408385031215612be857600080fd5b82356001600160401b03811115612bfe57600080fd5b612c0a85828601612717565b925050602083013561295281612916565b815181526020808301519082015260408101610866565b60008060408385031215612c4557600080fd5b8235612c50816125d7565b91506020830135612952816125d7565b600060608284031215612c7257600080fd5b6111698383612618565b600181811c90821680612c9057607f821691505b60208210810361262a57634e487b7160e01b600052602260045260246000fd5b600060408284031215612cc257600080fd5b612cca612973565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cfc57612cfc61295d565b8360051b6020612d0d8183016129bd565b868152918501918181019036841115612d2557600080fd5b865b84811015612dab57803586811115612d3f5760008081fd5b88016060368290031215612d535760008081fd5b612d5b61299b565b612d6482612819565b8152612d7186830161284e565b8682015260408083013589811115612d895760008081fd5b612d9536828601612a14565b9183019190915250845250918301918301612d27565b50979650505050505050565b60008085851115612dc757600080fd5b83861115612dd457600080fd5b5050820193919092039150565b60008451612df381846020890161255b565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610d0e602083018486612e09565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e7357600080fd5b9190910192915050565b6000808335601e19843603018112612e9457600080fd5b8301803591506001600160401b03821115612eae57600080fd5b60200191503681900382131561267157600080fd5b6001600160401b03811681146112e457600080fd5b63ffffffff612ee689612819565b1681526020880135602082015260006040890135612f0381612ec3565b6001600160401b03811660408401525087606083015260e06080830152612f2e60e083018789612e09565b6001600160a01b03861660a084015282810360c0840152612f50818587612e09565b9a9950505050505050505050565b600060208284031215612f7057600080fd5b81516001600160401b03811115612f8657600080fd5b8201601f81018413612f9757600080fd5b8051612fa5612a33826129ed565b818152856020838501011115612fba57600080fd5b6110f282602083016020860161255b565b60008351612fdd81846020880161255b565b835190830190612ff181836020880161255b565b01949350505050565b60006020828403121561300c57600080fd5b813561116981612ec3565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000612452608083018461257f565b60408152600061305b604083018561257f565b82810360208401526110f2818561257f565b60006020828403121561307f57600080fd5b815161116981612916565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526130c060e084018261257f565b90506060850151603f198483030160a08501526130dd828261257f565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561311557600080fd5b61311d612973565b9050815181526020820151602082015292915050565b60006080828403121561314557600080fd5b61314d61299b565b82518152602083015161315f81612ec3565b60208201526131718460408501613103565b60408201529392505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906124529083018461257f565b6000602082840312156131c257600080fd5b815161116981612528565b601f821115610b93576000816000526020600020601f850160051c810160208610156131f65750805b601f850160051c820191505b8181101561321557828155600101613202565b505050505050565b81516001600160401b038111156132365761323661295d565b61324a816132448454612c7c565b846131cd565b602080601f83116001811461327f57600084156132675750858301515b600019600386901b1c1916600185901b178555613215565b600085815260208120601f198616915b828110156132ae5788860151825594840194600190910190840161328f565b50858210156132cc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561335957888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133458186018361257f565b968901969450505090860190600101613305565b509098975050505050505050565b60006040828403121561337957600080fd5b6111698383613103565b8035602083101561086657600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133dc81600c85016020870161255b565b91909101600c01949350505050565b8481528360208201528260408201526000825161340f81606085016020870161255b565b9190910160600195945050505050565b60006020828403121561343157600080fd5b8151611169816125d7565b60008251612e7381846020870161255b56fea26469706673582212202ed9e0490b65660a264f1838a28a7c9b2643e0a7034d006e204af0872d53709164736f6c63430008160033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x393C CODESIZE SUB DUP1 PUSH3 0x393C DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x27F JUMP JUMPDEST DUP4 DUP4 DUP4 DUP4 DUP4 DUP4 DUP4 DUP4 DUP4 DUP4 DUP4 DUP4 DUP2 DUP2 DUP2 DUP2 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x74 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x7F DUP2 PUSH3 0x14A JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x80 MSTORE DUP2 AND PUSH3 0xAE JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D618D81 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x40 MLOAD PUSH4 0xCA5EB5E1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xCA5EB5E1 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0xF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x10B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP2 PUSH1 0x5 SWAP1 DUP2 PUSH3 0x126 SWAP2 SWAP1 PUSH3 0x39F JUMP JUMPDEST POP PUSH1 0x6 PUSH3 0x135 DUP3 DUP3 PUSH3 0x39F JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP PUSH3 0x46B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x1DF JUMPI PUSH3 0x1DF PUSH3 0x19A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x20A JUMPI PUSH3 0x20A PUSH3 0x19A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x228 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x24C JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x22D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x27A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x296 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x2AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2BC DUP9 DUP4 DUP10 ADD PUSH3 0x1B0 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x2E2 DUP8 DUP3 DUP9 ADD PUSH3 0x1B0 JUMP JUMPDEST SWAP4 POP POP PUSH3 0x2F3 PUSH1 0x40 DUP7 ADD PUSH3 0x262 JUMP JUMPDEST SWAP2 POP PUSH3 0x303 PUSH1 0x60 DUP7 ADD PUSH3 0x262 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x323 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x344 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x39A JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x375 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x396 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x381 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x3BB JUMPI PUSH3 0x3BB PUSH3 0x19A JUMP JUMPDEST PUSH3 0x3D3 DUP2 PUSH3 0x3CC DUP5 SLOAD PUSH3 0x30E JUMP JUMPDEST DUP5 PUSH3 0x34A JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x40B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3F2 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x396 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x43C JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x41B JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x45B JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x3484 PUSH3 0x4B8 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x4B6 ADD MSTORE DUP2 DUP2 PUSH2 0x938 ADD MSTORE DUP2 DUP2 PUSH2 0x1197 ADD MSTORE DUP2 DUP2 PUSH2 0x142C ADD MSTORE DUP2 DUP2 PUSH2 0x16AF ADD MSTORE DUP2 DUP2 PUSH2 0x1CC1 ADD MSTORE DUP2 DUP2 PUSH2 0x20A0 ADD MSTORE PUSH2 0x2159 ADD MSTORE PUSH2 0x3484 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x267 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x82413EAC GT PUSH2 0x144 JUMPI DUP1 PUSH4 0xBC70B354 GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xD045A0DC GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xD045A0DC EQ PUSH2 0x787 JUMPI DUP1 PUSH4 0xD4243885 EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7DA JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x43A JUMPI DUP1 PUSH4 0xFF7BD03D EQ PUSH2 0x7FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBC70B354 EQ PUSH2 0x6E7 JUMPI DUP1 PUSH4 0xBD815DB0 EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0xC6414E7B EQ PUSH2 0x71A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x747 JUMPI DUP1 PUSH4 0xCA5EB5E1 EQ PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA72F5DD8 GT PUSH2 0x108 JUMPI DUP1 PUSH4 0xA72F5DD8 EQ PUSH2 0x61D JUMPI DUP1 PUSH4 0xB21A33E4 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0xB731EA0A EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x67A JUMPI DUP1 PUSH4 0xB98BD070 EQ PUSH2 0x69A JUMPI DUP1 PUSH4 0xBB0B6A53 EQ PUSH2 0x6BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x82413EAC EQ PUSH2 0x596 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x5B6 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x5D4 JUMPI DUP1 PUSH4 0x9F68B964 EQ PUSH2 0x5E9 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x40C10F19 GT PUSH2 0x1DD JUMPI DUP1 PUSH4 0x5E280F11 GT PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x5E280F11 EQ PUSH2 0x4A4 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x6FC1B31E EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x518 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x7D25A05E EQ PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x3FA JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0x52AE2879 EQ PUSH2 0x43A JUMPI DUP1 PUSH4 0x5535D461 EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x5A0DFE4D EQ PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13137D65 GT PUSH2 0x22F JUMPI DUP1 PUSH4 0x13137D65 EQ PUSH2 0x33D JUMPI DUP1 PUSH4 0x17442B70 EQ PUSH2 0x350 JUMPI DUP1 PUSH4 0x1F5E1334 EQ PUSH2 0x372 JUMPI DUP1 PUSH4 0x21EB730B EQ PUSH2 0x39A JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0x3400288B EQ PUSH2 0x3DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x2C3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0x111ECDAD EQ PUSH2 0x31D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x278 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28C PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x253E JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x86C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x25AB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH2 0x2DE CALLDATASIZE PUSH1 0x4 PUSH2 0x25BE JUMP JUMPDEST PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x316 CALLDATASIZE PUSH1 0x4 PUSH2 0x25EC JUMP JUMPDEST PUSH2 0x927 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x2E3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x31B PUSH2 0x34B CALLDATASIZE PUSH1 0x4 PUSH2 0x2678 JUMP JUMPDEST PUSH2 0x936 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP3 ADD MSTORE ADD PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x387 PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x298 JUMP JUMPDEST PUSH2 0x3AD PUSH2 0x3A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2729 JUMP JUMPDEST PUSH2 0x9F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x2796 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x27D8 JUMP JUMPDEST PUSH2 0xAD1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x3F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2832 JUMP JUMPDEST PUSH2 0xB5C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x415 CALLDATASIZE PUSH1 0x4 PUSH2 0x25EC JUMP JUMPDEST PUSH2 0xB6E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x435 CALLDATASIZE PUSH1 0x4 PUSH2 0x27D8 JUMP JUMPDEST PUSH2 0xB78 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x446 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP ADDRESS PUSH2 0x2E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x468 CALLDATASIZE PUSH1 0x4 PUSH2 0x2860 JUMP JUMPDEST PUSH2 0xB98 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28C PUSH2 0x488 CALLDATASIZE PUSH1 0x4 PUSH2 0x2832 JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH2 0x4F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25BE JUMP JUMPDEST PUSH2 0xC3D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x513 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0xC48 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x538 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0xCA5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0xCED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57E PUSH2 0x576 CALLDATASIZE PUSH1 0x4 PUSH2 0x2832 JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28C PUSH2 0x5B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x28B0 JUMP JUMPDEST PUSH2 0xD01 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0xD16 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x28C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x609 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x618 CALLDATASIZE PUSH1 0x4 PUSH2 0x2924 JUMP JUMPDEST PUSH2 0xD25 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x629 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH4 0x11F0C6D3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP3 ADD MSTORE ADD PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x387 PUSH1 0x2 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x2E3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x695 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A6A JUMP JUMPDEST PUSH2 0xD30 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x6B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B19 JUMP JUMPDEST PUSH2 0xD47 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x538 PUSH2 0x6D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x702 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B75 JUMP JUMPDEST PUSH2 0xD61 JUMP JUMPDEST PUSH2 0x31B PUSH2 0x715 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B19 JUMP JUMPDEST PUSH2 0xF09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x73A PUSH2 0x735 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BD5 JUMP JUMPDEST PUSH2 0x1093 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x2C1B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x753 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x762 CALLDATASIZE PUSH1 0x4 PUSH2 0x25BE JUMP JUMPDEST PUSH2 0x10FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x773 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x782 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0x1170 JUMP JUMPDEST PUSH2 0x31B PUSH2 0x795 CALLDATASIZE PUSH1 0x4 PUSH2 0x2678 JUMP JUMPDEST PUSH2 0x11F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x7B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0x1225 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28C PUSH2 0x7D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C32 JUMP JUMPDEST PUSH2 0x127B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x7F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0x12A9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x806 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28C PUSH2 0x815 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C60 JUMP JUMPDEST PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x84B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x866 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD PUSH2 0x87B SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x8A7 SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8F4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8C9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8F4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8D7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x909 DUP3 PUSH2 0x131D JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x866 JUMP JUMPDEST PUSH2 0x932 DUP3 DUP3 CALLER PUSH2 0x1356 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x986 JUMPI PUSH1 0x40 MLOAD PUSH4 0x91AC5E4F PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP8 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x9A0 SWAP1 PUSH2 0x99B SWAP1 DUP11 PUSH2 0x2B5A JUMP JUMPDEST PUSH2 0x1363 JUMP JUMPDEST EQ PUSH2 0x9DE JUMPI PUSH2 0x9B2 PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x309AFAF3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x97D JUMP JUMPDEST PUSH2 0x9ED DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x139F JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9FE PUSH2 0x24E1 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0xA20 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4EC46B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA3B CALLER PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0xA36 PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B5A JUMP JUMPDEST PUSH2 0x14FE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA47 DUP7 PUSH2 0x155E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0xA73 PUSH2 0xA5C PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B5A JUMP JUMPDEST DUP4 DUP4 PUSH2 0xA6D CALLDATASIZE DUP11 SWAP1 SUB DUP11 ADD DUP11 PUSH2 0x2CB0 JUMP JUMPDEST DUP9 PUSH2 0x167C JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP4 POP CALLER SWAP1 PUSH32 0x986156872B2EE0022B9585231DBBFDE457F87F8A16B6C45E1A81C54C4AD8351F PUSH2 0xAA8 PUSH1 0x20 DUP11 ADD DUP11 PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE DUP1 DUP12 ADD CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xAFB JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB08 DUP4 DUP4 CALLER PUSH2 0x1787 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB56 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x97D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xB64 PUSH2 0x1880 JUMP JUMPDEST PUSH2 0x932 DUP3 DUP3 PUSH2 0x18AD JUMP JUMPDEST PUSH2 0x932 DUP3 DUP3 PUSH2 0x1902 JUMP JUMPDEST PUSH2 0xB93 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xD30 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xBBC SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xBE8 SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC35 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC0A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC35 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC18 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x866 DUP3 PUSH2 0x131D JUMP JUMPDEST PUSH2 0xC50 PUSH2 0x1880 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xF0BE4F1E87349231D80C36B33F9E8639658EEAF474014DEE15A3E6A4D4414197 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCF5 PUSH2 0x1880 JUMP JUMPDEST PUSH2 0xCFF PUSH1 0x0 PUSH2 0x1967 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ADDRESS EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 DUP1 SLOAD PUSH2 0x87B SWAP1 PUSH2 0x2C7C JUMP JUMPDEST PUSH2 0x932 CALLER DUP4 DUP4 PUSH2 0x19B7 JUMP JUMPDEST PUSH2 0xD3B DUP5 DUP5 DUP5 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0xB56 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0xD4F PUSH2 0x1880 JUMP JUMPDEST PUSH2 0x932 PUSH2 0xD5C DUP3 DUP5 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x1B78 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH2 0xFFFF DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0xD95 SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xDC1 SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE0E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDE3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE0E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xDF1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xE5E JUMPI DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP5 POP PUSH2 0xD0E SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SWAP1 SUB PUSH2 0xE6E JUMPI SWAP1 POP PUSH2 0xD0E JUMP JUMPDEST PUSH1 0x2 DUP4 LT PUSH2 0xEEC JUMPI PUSH2 0xEB5 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1C7F SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0xEC3 DUP5 PUSH1 0x2 DUP2 DUP9 PUSH2 0x2DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xED5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DE1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP PUSH2 0xD0E JUMP JUMPDEST DUP4 DUP4 PUSH1 0x40 MLOAD PUSH4 0x9A6D49CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97D SWAP3 SWAP2 SWAP1 PUSH2 0x2E32 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1012 JUMPI CALLDATASIZE DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0xF27 JUMPI PUSH2 0xF27 PUSH2 0x2E46 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xF39 SWAP2 SWAP1 PUSH2 0x2E5C JUMP JUMPDEST SWAP1 POP PUSH2 0xF6C PUSH2 0xF4B PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST PUSH2 0xF76 JUMPI POP PUSH2 0x100A JUMP JUMPDEST ADDRESS PUSH4 0xD045A0DC PUSH1 0xC0 DUP4 ADD CALLDATALOAD DUP4 PUSH1 0xA0 DUP2 ADD CALLDATALOAD PUSH2 0xF95 PUSH2 0x100 DUP4 ADD DUP4 PUSH2 0x2E7D JUMP JUMPDEST PUSH2 0xFA6 PUSH2 0x100 DUP10 ADD PUSH1 0xE0 DUP11 ADD PUSH2 0x2893 JUMP JUMPDEST PUSH2 0xFB4 PUSH2 0x120 DUP11 ADD DUP11 PUSH2 0x2E7D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP10 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFD6 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2ED8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1003 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0xF0C JUMP JUMPDEST POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8E9E7099 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1051 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1079 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8351EEA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97D SWAP2 SWAP1 PUSH2 0x25AB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x10C9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4EC46B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10D5 DUP6 PUSH2 0x155E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x10F2 PUSH2 0x10EA PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x2B5A JUMP JUMPDEST DUP4 DUP4 DUP8 PUSH2 0x1CAB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1106 DUP3 PUSH2 0x131D JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x111E PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x113E JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1169 JUMP JUMPDEST DUP1 PUSH2 0x1148 DUP5 PUSH2 0x1D83 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1159 SWAP3 SWAP2 SWAP1 PUSH2 0x2FCB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1178 PUSH2 0x1880 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCA5EB5E1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xCA5EB5E1 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1216 JUMPI PUSH1 0x40 MLOAD PUSH4 0x29A949D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9ED DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x9DE JUMP JUMPDEST PUSH2 0x122D PUSH2 0x1880 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xD48D879CEF83A1C0BDDA516F27B13DDB1B3F8BBAC1C9E1511BB2A659C2427760 SWAP1 PUSH1 0x20 ADD PUSH2 0xC9A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x12B1 PUSH2 0x1880 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12DB JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH2 0x12E4 DUP2 PUSH2 0x1967 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH2 0x12FF SWAP1 DUP7 PUSH2 0x2B5A JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x866 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH2 0xB93 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1E15 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x866 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF6FF4FB7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13B1 PUSH2 0x13AE DUP8 DUP8 PUSH2 0x1F1B JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13BF DUP8 DUP8 PUSH2 0x1F33 JUMP JUMPDEST SWAP1 POP PUSH2 0x13D8 DUP3 DUP3 PUSH2 0x13D3 PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B5A JUMP JUMPDEST PUSH2 0x1F50 JUMP JUMPDEST PUSH1 0x40 DUP7 GT ISZERO PUSH2 0x149C JUMPI PUSH1 0x0 PUSH2 0x1412 PUSH2 0x13F6 PUSH1 0x60 DUP13 ADD PUSH1 0x40 DUP14 ADD PUSH2 0x2FFA JUMP JUMPDEST PUSH2 0x1403 PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B5A JUMP JUMPDEST PUSH2 0x140D DUP12 DUP12 PUSH2 0x1F5A JUMP JUMPDEST PUSH2 0x1FA5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3E5AC809 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7CB59012 SWAP1 PUSH2 0x1468 SWAP1 DUP7 SWAP1 DUP14 SWAP1 PUSH1 0x0 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1496 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP9 PUSH32 0x7883FA30EA56937810E36990B0BBB8D629D0CF59F68BAF8431FF657CEBE7EEF5 PUSH2 0x14D5 PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP7 SWAP1 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1507 DUP3 PUSH2 0xC3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1555 JUMPI DUP3 PUSH2 0x1529 DUP4 PUSH2 0xC3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4342715B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x97D JUMP JUMPDEST PUSH2 0xB93 DUP3 PUSH2 0x1FD4 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 PUSH2 0x15B7 PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x157D PUSH1 0x80 DUP9 ADD DUP9 PUSH2 0x2E7D JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x200F SWAP3 POP POP POP JUMP JUMPDEST SWAP1 SWAP4 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x15CA JUMPI PUSH1 0x1 PUSH2 0x15CD JUMP JUMPDEST PUSH1 0x2 JUMPDEST SWAP1 POP PUSH2 0x15ED PUSH2 0x15DF PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x2B5A JUMP JUMPDEST DUP3 PUSH2 0x702 PUSH1 0x60 DUP10 ADD DUP10 PUSH2 0x2E7D JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1675 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x43A78EB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x43A78EB SWAP2 PUSH2 0x1632 SWAP2 DUP9 SWAP2 DUP9 SWAP2 ADD PUSH2 0x3048 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x164F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1673 SWAP2 SWAP1 PUSH2 0x306D JUMP JUMPDEST POP JUMPDEST POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH2 0x1684 PUSH2 0x24E1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1693 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2074 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x16AD JUMPI PUSH2 0x16AD DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x209C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2637A450 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP12 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16FD DUP13 PUSH2 0x1363 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP10 PUSH1 0x20 ADD MLOAD GT ISZERO ISZERO DUP2 MSTORE POP DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1739 SWAP3 SWAP2 SWAP1 PUSH2 0x308A JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x177C SWAP2 SWAP1 PUSH2 0x3133 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x17B4 JUMPI PUSH2 0x17B4 DUP2 DUP5 DUP7 PUSH2 0x217E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x17F2 JUMPI PUSH2 0x17D1 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1E15 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x1821 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xCFF JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x238399D427B947898EDB290F5FF0F9109849B1C3BA196A42E35F00C50A54B98B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x192C JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x193A DUP4 DUP4 PUSH1 0x0 PUSH2 0x1787 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0xB93 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x19E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0xB56 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x1A98 SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x317D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1AD3 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1AD0 SWAP2 DUP2 ADD SWAP1 PUSH2 0x31B0 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1B3C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1B01 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1B06 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1B34 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x11EF JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1C4F JUMPI PUSH2 0x1BAA DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1B99 JUMPI PUSH2 0x1B99 PUSH2 0x2E46 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH2 0x1C7F JUMP JUMPDEST DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1BBC JUMPI PUSH2 0x1BBC PUSH2 0x2E46 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x3 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1BDE JUMPI PUSH2 0x1BDE PUSH2 0x2E46 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1C18 JUMPI PUSH2 0x1C18 PUSH2 0x2E46 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x1C46 SWAP2 SWAP1 PUSH2 0x321D JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1B7B JUMP JUMPDEST POP PUSH32 0xBE4864A8E820971C0247F5992E2DA559595F7BF076A21CB5928D443D2A13B674 DUP2 PUSH1 0x40 MLOAD PUSH2 0xC9A SWAP2 SWAP1 PUSH2 0x32DC JUMP JUMPDEST PUSH1 0x2 DUP2 ADD MLOAD PUSH2 0xFFFF DUP2 AND PUSH1 0x3 EQ PUSH2 0x932 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH4 0x9A6D49CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97D SWAP2 SWAP1 PUSH2 0x25AB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDDC28C58 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1D0E DUP10 PUSH2 0x1363 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 ISZERO ISZERO DUP2 MSTORE POP ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D43 SWAP3 SWAP2 SWAP1 PUSH2 0x308A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10F2 SWAP2 SWAP1 PUSH2 0x3367 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1D90 DUP4 PUSH2 0x21E2 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1DAF JUMPI PUSH2 0x1DAF PUSH2 0x295D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1DD9 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x1DE3 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH2 0x1E29 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x1EEB JUMPI PUSH1 0x0 PUSH2 0x1E39 DUP5 PUSH2 0x131D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1E65 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1E78 JUMPI POP PUSH2 0x1E76 DUP2 DUP5 PUSH2 0x127B JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1EA1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1EE9 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F2A PUSH1 0x20 DUP3 DUP5 DUP7 PUSH2 0x2DB7 JUMP JUMPDEST PUSH2 0x1169 SWAP2 PUSH2 0x3383 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F43 PUSH1 0x40 PUSH1 0x20 DUP5 DUP7 PUSH2 0x2DB7 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x1169 SWAP2 SWAP1 PUSH2 0x25BE JUMP JUMPDEST PUSH2 0xB93 DUP4 DUP4 PUSH2 0x1902 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1F69 DUP3 PUSH1 0x40 DUP2 DUP7 PUSH2 0x2DB7 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FBC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FE3 PUSH1 0x0 DUP4 PUSH1 0x0 PUSH2 0x1787 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x932 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 SWAP1 ISZERO ISZERO DUP1 PUSH2 0x2043 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x206A JUMP JUMPDEST DUP5 DUP5 CALLER DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x205A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLVALUE EQ PUSH2 0x2098 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4FB8209 PUSH1 0xE5 SHL DUP2 MSTORE CALLVALUE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE4FE1D94 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2120 SWAP2 SWAP1 PUSH2 0x341F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2149 JUMPI PUSH1 0x40 MLOAD PUSH4 0x29B99A95 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x932 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND CALLER PUSH32 0x0 DUP6 PUSH2 0x22BA JUMP JUMPDEST PUSH2 0x2189 DUP4 DUP4 DUP4 PUSH2 0x2314 JUMP JUMPDEST PUSH2 0xB93 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x21B7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x2221 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x224D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x226B JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x2283 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x2297 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x22A9 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x866 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0xB56 SWAP1 DUP6 SWAP1 PUSH2 0x2377 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xD0E JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x234E JUMPI POP PUSH2 0x234E DUP5 DUP5 PUSH2 0x127B JUMP JUMPDEST DUP1 PUSH2 0xD0E JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238C PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP4 PUSH2 0x23DA JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO DUP1 ISZERO PUSH2 0x23B1 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x23AF SWAP2 SWAP1 PUSH2 0x306D JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB93 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1169 DUP4 DUP4 PUSH1 0x0 DUP5 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2400 SWAP2 SWAP1 PUSH2 0x343C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x243D JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2442 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2452 DUP7 DUP4 DUP4 PUSH2 0x245C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x2471 JUMPI PUSH2 0x246C DUP3 PUSH2 0x24B8 JUMP JUMPDEST PUSH2 0x1169 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x2488 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x24B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST POP DUP1 PUSH2 0x1169 JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x24C8 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2523 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x12E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2550 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1169 DUP2 PUSH2 0x2528 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2576 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x255E JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2597 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x255B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1169 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x257F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x12E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x260A DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x262A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2642 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2659 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269D DUP10 DUP10 PUSH2 0x2618 JUMP JUMPDEST SWAP7 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x26C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26CC DUP12 DUP4 DUP13 ADD PUSH2 0x2630 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x26E1 DUP3 PUSH2 0x25D7 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2704 DUP11 DUP3 DUP12 ADD PUSH2 0x2630 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x262A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP6 SUB PUSH1 0x80 DUP2 SLT ISZERO PUSH2 0x273F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2755 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2761 DUP8 DUP3 DUP9 ADD PUSH2 0x2717 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x2776 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 DUP5 ADD SWAP2 POP PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x278B DUP2 PUSH2 0x25D7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x27D1 PUSH1 0x40 DUP5 ADD DUP3 DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x27ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x27F8 DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2808 DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x282D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2845 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x260A DUP4 PUSH2 0x2819 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x282D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2873 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x287C DUP4 PUSH2 0x2819 JUMP JUMPDEST SWAP2 POP PUSH2 0x288A PUSH1 0x20 DUP5 ADD PUSH2 0x284E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1169 DUP2 PUSH2 0x25D7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x28C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28D0 DUP7 DUP7 PUSH2 0x2618 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x28EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F7 DUP8 DUP3 DUP9 ADD PUSH2 0x2630 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x80 DUP6 ADD CALLDATALOAD PUSH2 0x290B DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x12E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2937 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2942 DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2952 DUP2 PUSH2 0x2916 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2995 JUMPI PUSH2 0x2995 PUSH2 0x295D JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2995 JUMPI PUSH2 0x2995 PUSH2 0x295D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x29E5 JUMPI PUSH2 0x29E5 PUSH2 0x295D JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2A06 JUMPI PUSH2 0x2A06 PUSH2 0x295D JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A38 PUSH2 0x2A33 DUP3 PUSH2 0x29ED JUMP JUMPDEST PUSH2 0x29BD JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2A4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2A8B DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2A9B DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2ABD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AC9 DUP8 DUP3 DUP9 ADD PUSH2 0x2A14 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2AE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B4E DUP6 DUP3 DUP7 ADD PUSH2 0x2AD5 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1169 DUP3 PUSH2 0x2819 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2B8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B94 DUP6 PUSH2 0x2819 JUMP JUMPDEST SWAP4 POP PUSH2 0x2BA2 PUSH1 0x20 DUP7 ADD PUSH2 0x284E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2BBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2BC9 DUP8 DUP3 DUP9 ADD PUSH2 0x2630 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2BFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C0A DUP6 DUP3 DUP7 ADD PUSH2 0x2717 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2952 DUP2 PUSH2 0x2916 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0x866 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2C50 DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2952 DUP2 PUSH2 0x25D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1169 DUP4 DUP4 PUSH2 0x2618 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2C90 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x262A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CCA PUSH2 0x2973 JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP5 GT ISZERO PUSH2 0x2CFC JUMPI PUSH2 0x2CFC PUSH2 0x295D JUMP JUMPDEST DUP4 PUSH1 0x5 SHL PUSH1 0x20 PUSH2 0x2D0D DUP2 DUP4 ADD PUSH2 0x29BD JUMP JUMPDEST DUP7 DUP2 MSTORE SWAP2 DUP6 ADD SWAP2 DUP2 DUP2 ADD SWAP1 CALLDATASIZE DUP5 GT ISZERO PUSH2 0x2D25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2DAB JUMPI DUP1 CALLDATALOAD DUP7 DUP2 GT ISZERO PUSH2 0x2D3F JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP9 ADD PUSH1 0x60 CALLDATASIZE DUP3 SWAP1 SUB SLT ISZERO PUSH2 0x2D53 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2D5B PUSH2 0x299B JUMP JUMPDEST PUSH2 0x2D64 DUP3 PUSH2 0x2819 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x2D71 DUP7 DUP4 ADD PUSH2 0x284E JUMP JUMPDEST DUP7 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD DUP10 DUP2 GT ISZERO PUSH2 0x2D89 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2D95 CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x2A14 JUMP JUMPDEST SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2D27 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x2DC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x2DD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP5 MLOAD PUSH2 0x2DF3 DUP2 DUP5 PUSH1 0x20 DUP10 ADD PUSH2 0x255B JUMP JUMPDEST DUP3 ADD DUP4 DUP6 DUP3 CALLDATACOPY PUSH1 0x0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD0E PUSH1 0x20 DUP4 ADD DUP5 DUP7 PUSH2 0x2E09 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH2 0x13E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2E73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2E94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2EAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x12E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF PUSH2 0x2EE6 DUP10 PUSH2 0x2819 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH2 0x2F03 DUP2 PUSH2 0x2EC3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH1 0x40 DUP5 ADD MSTORE POP DUP8 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0xE0 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2F2E PUSH1 0xE0 DUP4 ADD DUP8 DUP10 PUSH2 0x2E09 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0xA0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xC0 DUP5 ADD MSTORE PUSH2 0x2F50 DUP2 DUP6 DUP8 PUSH2 0x2E09 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2F97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2FA5 PUSH2 0x2A33 DUP3 PUSH2 0x29ED JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2FBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10F2 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x255B JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x2FDD DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x255B JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x2FF1 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x255B JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x300C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1169 DUP2 PUSH2 0x2EC3 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xFFFF DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2452 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x257F JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x305B PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x257F JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x10F2 DUP2 DUP6 PUSH2 0x257F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x307F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1169 DUP2 PUSH2 0x2916 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP4 MLOAD AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0xA0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x30C0 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x257F JUMP JUMPDEST SWAP1 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x30DD DUP3 DUP3 PUSH2 0x257F JUMP JUMPDEST PUSH1 0x80 SWAP7 SWAP1 SWAP7 ADD MLOAD ISZERO ISZERO PUSH1 0xC0 DUP6 ADD MSTORE POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3115 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311D PUSH2 0x2973 JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3145 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x314D PUSH2 0x299B JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x315F DUP2 PUSH2 0x2EC3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x3171 DUP5 PUSH1 0x40 DUP6 ADD PUSH2 0x3103 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2452 SWAP1 DUP4 ADD DUP5 PUSH2 0x257F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1169 DUP2 PUSH2 0x2528 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xB93 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x31F6 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3215 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3202 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3236 JUMPI PUSH2 0x3236 PUSH2 0x295D JUMP JUMPDEST PUSH2 0x324A DUP2 PUSH2 0x3244 DUP5 SLOAD PUSH2 0x2C7C JUMP JUMPDEST DUP5 PUSH2 0x31CD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x327F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3267 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x3215 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x32AE JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x328F JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x32CC JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP2 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 SWAP3 POP PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD DUP5 DUP9 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3359 JUMPI DUP9 DUP4 SUB PUSH1 0x3F NOT ADD DUP6 MSTORE DUP2 MLOAD DUP1 MLOAD PUSH4 0xFFFFFFFF AND DUP5 MSTORE DUP8 DUP2 ADD MLOAD PUSH2 0xFFFF AND DUP9 DUP6 ADD MSTORE DUP7 ADD MLOAD PUSH1 0x60 DUP8 DUP6 ADD DUP2 SWAP1 MSTORE PUSH2 0x3345 DUP2 DUP7 ADD DUP4 PUSH2 0x257F JUMP JUMPDEST SWAP7 DUP10 ADD SWAP7 SWAP5 POP POP POP SWAP1 DUP7 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3305 JUMP JUMPDEST POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3379 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1169 DUP4 DUP4 PUSH2 0x3103 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x20 DUP4 LT ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 NOT PUSH1 0x20 DUP5 SWAP1 SUB PUSH1 0x3 SHL SHL AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP5 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x8 DUP3 ADD MSTORE DUP2 MLOAD PUSH1 0x0 SWAP1 PUSH2 0x33DC DUP2 PUSH1 0xC DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x255B JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0xC ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x340F DUP2 PUSH1 0x60 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x255B JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0x60 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3431 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1169 DUP2 PUSH2 0x25D7 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2E73 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x255B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xD9 0xE0 0x49 SIGNEXTEND PUSH6 0x660A264F1838 LOG2 DUP11 PUSH29 0x9B2643E0A7034D006E204AF0872D53709164736F6C6343000816003300 ","sourceMap":"163:323:51:-:0;;;205:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;349:5;356:7;365:11;378:9;349:5;356:7;365:11;378:9;349:5;356:7;365:11;378:9;365:11;378:9;365:11;378:9;;-1:-1:-1;;;;;1273:26:33;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:33;;1350:1;1322:31;;;2061:51:53;2034:18;;1322:31:33;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:2;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:2;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:2;;-1:-1:-1;;;;;2079:32:53;;;1163:31:2;;;2061:51:53;1163:20:2;;;;;;2034:18:53;;1163:31:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;965:83:1;;1952:102:30;;1455:5:38;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:38;:17;1480:7;1470;:17;:::i;:::-;;1381:113;;673:195:29;;;;183:184:50;;;;205:186:51;;;;163:323;;2912:187:33;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:33;;;-1:-1:-1;;;;;;3020:17:33;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:53:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:53;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:53;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:177::-;1074:13;;-1:-1:-1;;;;;1116:31:53;;1106:42;;1096:70;;1162:1;1159;1152:12;1096:70;995:177;;;:::o;1177:733::-;1294:6;1302;1310;1318;1371:3;1359:9;1350:7;1346:23;1342:33;1339:53;;;1388:1;1385;1378:12;1339:53;1415:16;;-1:-1:-1;;;;;1480:14:53;;;1477:34;;;1507:1;1504;1497:12;1477:34;1530:61;1583:7;1574:6;1563:9;1559:22;1530:61;:::i;:::-;1520:71;;1637:2;1626:9;1622:18;1616:25;1600:41;;1666:2;1656:8;1653:16;1650:36;;;1682:1;1679;1672:12;1650:36;;1705:63;1760:7;1749:8;1738:9;1734:24;1705:63;:::i;:::-;1695:73;;;1787:49;1832:2;1821:9;1817:18;1787:49;:::i;:::-;1777:59;;1855:49;1900:2;1889:9;1885:18;1855:49;:::i;:::-;1845:59;;1177:733;;;;;;;:::o;2123:380::-;2202:1;2198:12;;;;2245;;;2266:61;;2320:4;2312:6;2308:17;2298:27;;2266:61;2373:2;2365:6;2362:14;2342:18;2339:38;2336:161;;2419:10;2414:3;2410:20;2407:1;2400:31;2454:4;2451:1;2444:15;2482:4;2479:1;2472:15;2336:161;;2123:380;;;:::o;2634:543::-;2736:2;2731:3;2728:11;2725:446;;;2772:1;2796:5;2793:1;2786:16;2840:4;2837:1;2827:18;2910:2;2898:10;2894:19;2891:1;2887:27;2881:4;2877:38;2946:4;2934:10;2931:20;2928:47;;;-1:-1:-1;2969:4:53;2928:47;3024:2;3019:3;3015:12;3012:1;3008:20;3002:4;2998:31;2988:41;;3079:82;3097:2;3090:5;3087:13;3079:82;;;3142:17;;;3123:1;3112:13;3079:82;;;3083:3;;;2725:446;2634:543;;;:::o;3353:1345::-;3473:10;;-1:-1:-1;;;;;3495:30:53;;3492:56;;;3528:18;;:::i;:::-;3557:97;3647:6;3607:38;3639:4;3633:11;3607:38;:::i;:::-;3601:4;3557:97;:::i;:::-;3709:4;;3766:2;3755:14;;3783:1;3778:663;;;;4485:1;4502:6;4499:89;;;-1:-1:-1;4554:19:53;;;4548:26;4499:89;-1:-1:-1;;3310:1:53;3306:11;;;3302:24;3298:29;3288:40;3334:1;3330:11;;;3285:57;4601:81;;3748:944;;3778:663;2581:1;2574:14;;;2618:4;2605:18;;-1:-1:-1;;3814:20:53;;;3932:236;3946:7;3943:1;3940:14;3932:236;;;4035:19;;;4029:26;4014:42;;4127:27;;;;4095:1;4083:14;;;;3962:19;;3932:236;;;3936:3;4196:6;4187:7;4184:19;4181:201;;;4257:19;;;4251:26;-1:-1:-1;;4340:1:53;4336:14;;;4352:3;4332:24;4328:37;4324:42;4309:58;4294:74;;4181:201;-1:-1:-1;;;;;4428:1:53;4412:14;;;4408:22;4395:36;;-1:-1:-1;3353:1345:53:o;:::-;163:323:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@SEND_4333":{"entryPoint":null,"id":4333,"parameterSlots":0,"returnSlots":0},"@SEND_AND_COMPOSE_4336":{"entryPoint":null,"id":4336,"parameterSlots":0,"returnSlots":0},"@_approve_6455":{"entryPoint":4950,"id":6455,"parameterSlots":3,"returnSlots":0},"@_approve_6521":{"entryPoint":7701,"id":6521,"parameterSlots":4,"returnSlots":0},"@_assertOptionsType3_1297":{"entryPoint":7295,"id":1297,"parameterSlots":1,"returnSlots":0},"@_baseURI_5848":{"entryPoint":null,"id":5848,"parameterSlots":0,"returnSlots":1},"@_buildMsgAndOptions_4539":{"entryPoint":5470,"id":4539,"parameterSlots":1,"returnSlots":2},"@_burn_6333":{"entryPoint":8148,"id":6333,"parameterSlots":1,"returnSlots":0},"@_callOptionalReturn_5593":{"entryPoint":9079,"id":5593,"parameterSlots":2,"returnSlots":0},"@_checkAuthorized_6103":{"entryPoint":8574,"id":6103,"parameterSlots":3,"returnSlots":0},"@_checkOnERC721Received_6651":{"entryPoint":6742,"id":6651,"parameterSlots":4,"returnSlots":0},"@_checkOwner_5039":{"entryPoint":6272,"id":5039,"parameterSlots":0,"returnSlots":0},"@_credit_4282":{"entryPoint":8016,"id":4282,"parameterSlots":3,"returnSlots":0},"@_debit_4266":{"entryPoint":5374,"id":4266,"parameterSlots":3,"returnSlots":0},"@_getApproved_6030":{"entryPoint":null,"id":6030,"parameterSlots":1,"returnSlots":1},"@_getPeerOrRevert_634":{"entryPoint":4963,"id":634,"parameterSlots":1,"returnSlots":1},"@_isAuthorized_6066":{"entryPoint":8980,"id":6066,"parameterSlots":3,"returnSlots":1},"@_lzReceiveSimulate_4637":{"entryPoint":null,"id":4637,"parameterSlots":7,"returnSlots":0},"@_lzReceive_4612":{"entryPoint":5023,"id":4612,"parameterSlots":7,"returnSlots":0},"@_lzSend_930":{"entryPoint":5756,"id":930,"parameterSlots":5,"returnSlots":1},"@_mint_6259":{"entryPoint":6402,"id":6259,"parameterSlots":2,"returnSlots":0},"@_msgSender_7080":{"entryPoint":null,"id":7080,"parameterSlots":0,"returnSlots":1},"@_ownerOf_6017":{"entryPoint":null,"id":6017,"parameterSlots":1,"returnSlots":1},"@_payLzToken_987":{"entryPoint":8348,"id":987,"parameterSlots":1,"returnSlots":0},"@_payNative_951":{"entryPoint":8308,"id":951,"parameterSlots":1,"returnSlots":1},"@_quote_875":{"entryPoint":7339,"id":875,"parameterSlots":4,"returnSlots":1},"@_requireOwned_6587":{"entryPoint":4893,"id":6587,"parameterSlots":1,"returnSlots":1},"@_revert_7067":{"entryPoint":9400,"id":7067,"parameterSlots":1,"returnSlots":0},"@_setApprovalForAll_6558":{"entryPoint":6583,"id":6558,"parameterSlots":3,"returnSlots":0},"@_setEnforcedOptions_1220":{"entryPoint":7032,"id":1220,"parameterSlots":1,"returnSlots":0},"@_setPeer_606":{"entryPoint":6317,"id":606,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_5101":{"entryPoint":6503,"id":5101,"parameterSlots":1,"returnSlots":0},"@_update_6209":{"entryPoint":6023,"id":6209,"parameterSlots":3,"returnSlots":1},"@addressToBytes32_4931":{"entryPoint":null,"id":4931,"parameterSlots":1,"returnSlots":1},"@allowInitializePath_721":{"entryPoint":4839,"id":721,"parameterSlots":1,"returnSlots":1},"@approvalRequired_4236":{"entryPoint":null,"id":4236,"parameterSlots":0,"returnSlots":1},"@approve_5864":{"entryPoint":2343,"id":5864,"parameterSlots":2,"returnSlots":0},"@balanceOf_5772":{"entryPoint":3237,"id":5772,"parameterSlots":1,"returnSlots":1},"@bytes32ToAddress_4953":{"entryPoint":null,"id":4953,"parameterSlots":1,"returnSlots":1},"@combineOptions_1278":{"entryPoint":3425,"id":1278,"parameterSlots":4,"returnSlots":1},"@composeMsg_4909":{"entryPoint":8026,"id":4909,"parameterSlots":2,"returnSlots":1},"@encode_4060":{"entryPoint":8101,"id":4060,"parameterSlots":3,"returnSlots":1},"@encode_4838":{"entryPoint":8207,"id":4838,"parameterSlots":3,"returnSlots":2},"@endpoint_535":{"entryPoint":null,"id":535,"parameterSlots":0,"returnSlots":0},"@enforcedOptions_1155":{"entryPoint":2968,"id":1155,"parameterSlots":0,"returnSlots":0},"@functionCallWithValue_6935":{"entryPoint":null,"id":6935,"parameterSlots":3,"returnSlots":1},"@functionCall_6889":{"entryPoint":9178,"id":6889,"parameterSlots":2,"returnSlots":1},"@getApproved_5881":{"entryPoint":2302,"id":5881,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_5914":{"entryPoint":4731,"id":5914,"parameterSlots":2,"returnSlots":1},"@isComposeMsgSender_703":{"entryPoint":3329,"id":703,"parameterSlots":4,"returnSlots":1},"@isComposed_4894":{"entryPoint":null,"id":4894,"parameterSlots":2,"returnSlots":1},"@isPeer_4655":{"entryPoint":null,"id":4655,"parameterSlots":2,"returnSlots":1},"@log10_8263":{"entryPoint":8674,"id":8263,"parameterSlots":1,"returnSlots":1},"@lzReceiveAndRevert_1786":{"entryPoint":3849,"id":1786,"parameterSlots":2,"returnSlots":0},"@lzReceiveSimulate_1821":{"entryPoint":4598,"id":1821,"parameterSlots":7,"returnSlots":0},"@lzReceive_786":{"entryPoint":2358,"id":786,"parameterSlots":7,"returnSlots":0},"@mint_10365":{"entryPoint":2926,"id":10365,"parameterSlots":2,"returnSlots":0},"@msgInspector_4338":{"entryPoint":null,"id":4338,"parameterSlots":0,"returnSlots":0},"@name_5794":{"entryPoint":2156,"id":5794,"parameterSlots":0,"returnSlots":1},"@nextNonce_734":{"entryPoint":null,"id":734,"parameterSlots":2,"returnSlots":1},"@oAppVersion_519":{"entryPoint":null,"id":519,"parameterSlots":0,"returnSlots":2},"@oApp_1702":{"entryPoint":null,"id":1702,"parameterSlots":0,"returnSlots":1},"@onftVersion_4374":{"entryPoint":null,"id":4374,"parameterSlots":0,"returnSlots":2},"@ownerOf_5785":{"entryPoint":3133,"id":5785,"parameterSlots":1,"returnSlots":1},"@owner_5022":{"entryPoint":null,"id":5022,"parameterSlots":0,"returnSlots":1},"@peers_539":{"entryPoint":null,"id":539,"parameterSlots":0,"returnSlots":0},"@preCrime_1690":{"entryPoint":null,"id":1690,"parameterSlots":0,"returnSlots":0},"@quoteSend_4413":{"entryPoint":4243,"id":4413,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_5053":{"entryPoint":3309,"id":5053,"parameterSlots":0,"returnSlots":0},"@safeTransferFrom_5430":{"entryPoint":8890,"id":5430,"parameterSlots":4,"returnSlots":0},"@safeTransferFrom_5978":{"entryPoint":2936,"id":5978,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_6004":{"entryPoint":3376,"id":6004,"parameterSlots":4,"returnSlots":0},"@sendTo_4856":{"entryPoint":7963,"id":4856,"parameterSlots":2,"returnSlots":1},"@send_4478":{"entryPoint":2550,"id":4478,"parameterSlots":3,"returnSlots":1},"@setApprovalForAll_5897":{"entryPoint":3365,"id":5897,"parameterSlots":2,"returnSlots":0},"@setDelegate_649":{"entryPoint":4464,"id":649,"parameterSlots":1,"returnSlots":0},"@setEnforcedOptions_1170":{"entryPoint":3399,"id":1170,"parameterSlots":2,"returnSlots":0},"@setMsgInspector_4672":{"entryPoint":3144,"id":4672,"parameterSlots":1,"returnSlots":0},"@setPeer_586":{"entryPoint":2908,"id":586,"parameterSlots":2,"returnSlots":0},"@setPreCrime_1719":{"entryPoint":4645,"id":1719,"parameterSlots":1,"returnSlots":0},"@supportsInterface_5744":{"entryPoint":2074,"id":5744,"parameterSlots":1,"returnSlots":1},"@supportsInterface_7376":{"entryPoint":null,"id":7376,"parameterSlots":1,"returnSlots":1},"@symbol_5803":{"entryPoint":3350,"id":5803,"parameterSlots":0,"returnSlots":1},"@toString_7166":{"entryPoint":7555,"id":7166,"parameterSlots":1,"returnSlots":1},"@tokenId_4878":{"entryPoint":7987,"id":4878,"parameterSlots":2,"returnSlots":1},"@tokenURI_5839":{"entryPoint":4347,"id":5839,"parameterSlots":1,"returnSlots":1},"@token_4227":{"entryPoint":null,"id":4227,"parameterSlots":0,"returnSlots":1},"@transferFrom_5960":{"entryPoint":2769,"id":5960,"parameterSlots":3,"returnSlots":0},"@transferOwnership_5081":{"entryPoint":4777,"id":5081,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_7027":{"entryPoint":9308,"id":7027,"parameterSlots":3,"returnSlots":1},"abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata":{"entryPoint":10965,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_bytes":{"entryPoint":10772,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":9776,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_struct_MessagingFee_fromMemory":{"entryPoint":12547,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_Origin_calldata":{"entryPoint":9752,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_SendParam_calldata":{"entryPoint":10007,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":10387,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":13343,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":11314,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":10200,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":10858,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":10532,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":9708,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":11033,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_struct$_InboundPacket_$2010_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":12397,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":9534,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":12720,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":12126,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr":{"entryPoint":11440,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr_fromMemory":{"entryPoint":13159,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr_fromMemory":{"entryPoint":12595,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptr":{"entryPoint":11360,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr":{"entryPoint":9848,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes_calldata_ptrt_address":{"entryPoint":10416,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_bool":{"entryPoint":11221,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_struct$_MessagingFee_$2169_calldata_ptrt_address":{"entryPoint":10025,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":9662,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint32":{"entryPoint":11098,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint32t_bytes32":{"entryPoint":10290,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint32t_uint16":{"entryPoint":10336,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint32t_uint16t_bytes_calldata_ptr":{"entryPoint":11125,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint64":{"entryPoint":12282,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint16":{"entryPoint":10318,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint32":{"entryPoint":10265,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":11785,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_string":{"entryPoint":9599,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_struct_MessagingFee":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes32_t_uint256__to_t_bytes32_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13291,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13372,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr_slice__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":11745,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":12235,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_uint64_t_uint32_t_bytes_memory_ptr__to_t_uint64_t_uint32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13217,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":12669,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_rational_0_by_1_t_bytes_memory_ptr__to_t_address_t_bytes32_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":12311,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":13020,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4_t_uint64__to_t_bytes4_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11826,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":12360,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$2338__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9643,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_MessagingFee_$2169_memory_ptr__to_t_struct$_MessagingFee_$2169_memory_ptr__fromStack_reversed":{"entryPoint":11291,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_MessagingParams_$2156_memory_ptr_t_address__to_t_struct$_MessagingParams_$2156_memory_ptr_t_address__fromStack_reversed":{"entryPoint":12426,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr__to_t_struct$_MessagingReceipt_$2164_memory_ptr__fromStack_reversed":{"entryPoint":10134,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Origin_$2176_calldata_ptr_t_bytes32_t_bytes_calldata_ptr_t_address_t_bytes_calldata_ptr__to_t_struct$_Origin_$2176_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11992,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint32_t_uint256__to_t_uint32_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":11901,"id":null,"parameterSlots":2,"returnSlots":2},"access_calldata_tail_t_struct$_InboundPacket_$2010_calldata_ptr":{"entryPoint":11868,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":10685,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_3822":{"entryPoint":10611,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_3825":{"entryPoint":10651,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":10733,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"calldata_array_index_range_access_t_bytes_calldata_ptr":{"entryPoint":11703,"id":null,"parameterSlots":4,"returnSlots":2},"clean_up_bytearray_end_slots_bytes_storage":{"entryPoint":12749,"id":null,"parameterSlots":3,"returnSlots":0},"convert_array_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr":{"entryPoint":11490,"id":null,"parameterSlots":2,"returnSlots":1},"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes32":{"entryPoint":13187,"id":null,"parameterSlots":2,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":12829,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":9563,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":11388,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":11846,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":10589,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":9687,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":10518,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":9512,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint64":{"entryPoint":11971,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:34258:53","nodeType":"YulBlock","src":"0:34258:53","statements":[{"nativeSrc":"6:3:53","nodeType":"YulBlock","src":"6:3:53","statements":[]},{"body":{"nativeSrc":"58:87:53","nodeType":"YulBlock","src":"58:87:53","statements":[{"body":{"nativeSrc":"123:16:53","nodeType":"YulBlock","src":"123:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"132:1:53","nodeType":"YulLiteral","src":"132:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"135:1:53","nodeType":"YulLiteral","src":"135:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"125:6:53","nodeType":"YulIdentifier","src":"125:6:53"},"nativeSrc":"125:12:53","nodeType":"YulFunctionCall","src":"125:12:53"},"nativeSrc":"125:12:53","nodeType":"YulExpressionStatement","src":"125:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"81:5:53","nodeType":"YulIdentifier","src":"81:5:53"},{"arguments":[{"name":"value","nativeSrc":"92:5:53","nodeType":"YulIdentifier","src":"92:5:53"},{"arguments":[{"kind":"number","nativeSrc":"103:3:53","nodeType":"YulLiteral","src":"103:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"108:10:53","nodeType":"YulLiteral","src":"108:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"99:3:53","nodeType":"YulIdentifier","src":"99:3:53"},"nativeSrc":"99:20:53","nodeType":"YulFunctionCall","src":"99:20:53"}],"functionName":{"name":"and","nativeSrc":"88:3:53","nodeType":"YulIdentifier","src":"88:3:53"},"nativeSrc":"88:32:53","nodeType":"YulFunctionCall","src":"88:32:53"}],"functionName":{"name":"eq","nativeSrc":"78:2:53","nodeType":"YulIdentifier","src":"78:2:53"},"nativeSrc":"78:43:53","nodeType":"YulFunctionCall","src":"78:43:53"}],"functionName":{"name":"iszero","nativeSrc":"71:6:53","nodeType":"YulIdentifier","src":"71:6:53"},"nativeSrc":"71:51:53","nodeType":"YulFunctionCall","src":"71:51:53"},"nativeSrc":"68:71:53","nodeType":"YulIf","src":"68:71:53"}]},"name":"validator_revert_bytes4","nativeSrc":"14:131:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47:5:53","nodeType":"YulTypedName","src":"47:5:53","type":""}],"src":"14:131:53"},{"body":{"nativeSrc":"219:176:53","nodeType":"YulBlock","src":"219:176:53","statements":[{"body":{"nativeSrc":"265:16:53","nodeType":"YulBlock","src":"265:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"274:1:53","nodeType":"YulLiteral","src":"274:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"277:1:53","nodeType":"YulLiteral","src":"277:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"267:6:53","nodeType":"YulIdentifier","src":"267:6:53"},"nativeSrc":"267:12:53","nodeType":"YulFunctionCall","src":"267:12:53"},"nativeSrc":"267:12:53","nodeType":"YulExpressionStatement","src":"267:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"240:7:53","nodeType":"YulIdentifier","src":"240:7:53"},{"name":"headStart","nativeSrc":"249:9:53","nodeType":"YulIdentifier","src":"249:9:53"}],"functionName":{"name":"sub","nativeSrc":"236:3:53","nodeType":"YulIdentifier","src":"236:3:53"},"nativeSrc":"236:23:53","nodeType":"YulFunctionCall","src":"236:23:53"},{"kind":"number","nativeSrc":"261:2:53","nodeType":"YulLiteral","src":"261:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"232:3:53","nodeType":"YulIdentifier","src":"232:3:53"},"nativeSrc":"232:32:53","nodeType":"YulFunctionCall","src":"232:32:53"},"nativeSrc":"229:52:53","nodeType":"YulIf","src":"229:52:53"},{"nativeSrc":"290:36:53","nodeType":"YulVariableDeclaration","src":"290:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"316:9:53","nodeType":"YulIdentifier","src":"316:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"303:12:53","nodeType":"YulIdentifier","src":"303:12:53"},"nativeSrc":"303:23:53","nodeType":"YulFunctionCall","src":"303:23:53"},"variables":[{"name":"value","nativeSrc":"294:5:53","nodeType":"YulTypedName","src":"294:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"359:5:53","nodeType":"YulIdentifier","src":"359:5:53"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"335:23:53","nodeType":"YulIdentifier","src":"335:23:53"},"nativeSrc":"335:30:53","nodeType":"YulFunctionCall","src":"335:30:53"},"nativeSrc":"335:30:53","nodeType":"YulExpressionStatement","src":"335:30:53"},{"nativeSrc":"374:15:53","nodeType":"YulAssignment","src":"374:15:53","value":{"name":"value","nativeSrc":"384:5:53","nodeType":"YulIdentifier","src":"384:5:53"},"variableNames":[{"name":"value0","nativeSrc":"374:6:53","nodeType":"YulIdentifier","src":"374:6:53"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"150:245:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"185:9:53","nodeType":"YulTypedName","src":"185:9:53","type":""},{"name":"dataEnd","nativeSrc":"196:7:53","nodeType":"YulTypedName","src":"196:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"208:6:53","nodeType":"YulTypedName","src":"208:6:53","type":""}],"src":"150:245:53"},{"body":{"nativeSrc":"495:92:53","nodeType":"YulBlock","src":"495:92:53","statements":[{"nativeSrc":"505:26:53","nodeType":"YulAssignment","src":"505:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"517:9:53","nodeType":"YulIdentifier","src":"517:9:53"},{"kind":"number","nativeSrc":"528:2:53","nodeType":"YulLiteral","src":"528:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"513:3:53","nodeType":"YulIdentifier","src":"513:3:53"},"nativeSrc":"513:18:53","nodeType":"YulFunctionCall","src":"513:18:53"},"variableNames":[{"name":"tail","nativeSrc":"505:4:53","nodeType":"YulIdentifier","src":"505:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"547:9:53","nodeType":"YulIdentifier","src":"547:9:53"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"572:6:53","nodeType":"YulIdentifier","src":"572:6:53"}],"functionName":{"name":"iszero","nativeSrc":"565:6:53","nodeType":"YulIdentifier","src":"565:6:53"},"nativeSrc":"565:14:53","nodeType":"YulFunctionCall","src":"565:14:53"}],"functionName":{"name":"iszero","nativeSrc":"558:6:53","nodeType":"YulIdentifier","src":"558:6:53"},"nativeSrc":"558:22:53","nodeType":"YulFunctionCall","src":"558:22:53"}],"functionName":{"name":"mstore","nativeSrc":"540:6:53","nodeType":"YulIdentifier","src":"540:6:53"},"nativeSrc":"540:41:53","nodeType":"YulFunctionCall","src":"540:41:53"},"nativeSrc":"540:41:53","nodeType":"YulExpressionStatement","src":"540:41:53"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"400:187:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"464:9:53","nodeType":"YulTypedName","src":"464:9:53","type":""},{"name":"value0","nativeSrc":"475:6:53","nodeType":"YulTypedName","src":"475:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"486:4:53","nodeType":"YulTypedName","src":"486:4:53","type":""}],"src":"400:187:53"},{"body":{"nativeSrc":"658:184:53","nodeType":"YulBlock","src":"658:184:53","statements":[{"nativeSrc":"668:10:53","nodeType":"YulVariableDeclaration","src":"668:10:53","value":{"kind":"number","nativeSrc":"677:1:53","nodeType":"YulLiteral","src":"677:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"672:1:53","nodeType":"YulTypedName","src":"672:1:53","type":""}]},{"body":{"nativeSrc":"737:63:53","nodeType":"YulBlock","src":"737:63:53","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"762:3:53","nodeType":"YulIdentifier","src":"762:3:53"},{"name":"i","nativeSrc":"767:1:53","nodeType":"YulIdentifier","src":"767:1:53"}],"functionName":{"name":"add","nativeSrc":"758:3:53","nodeType":"YulIdentifier","src":"758:3:53"},"nativeSrc":"758:11:53","nodeType":"YulFunctionCall","src":"758:11:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"781:3:53","nodeType":"YulIdentifier","src":"781:3:53"},{"name":"i","nativeSrc":"786:1:53","nodeType":"YulIdentifier","src":"786:1:53"}],"functionName":{"name":"add","nativeSrc":"777:3:53","nodeType":"YulIdentifier","src":"777:3:53"},"nativeSrc":"777:11:53","nodeType":"YulFunctionCall","src":"777:11:53"}],"functionName":{"name":"mload","nativeSrc":"771:5:53","nodeType":"YulIdentifier","src":"771:5:53"},"nativeSrc":"771:18:53","nodeType":"YulFunctionCall","src":"771:18:53"}],"functionName":{"name":"mstore","nativeSrc":"751:6:53","nodeType":"YulIdentifier","src":"751:6:53"},"nativeSrc":"751:39:53","nodeType":"YulFunctionCall","src":"751:39:53"},"nativeSrc":"751:39:53","nodeType":"YulExpressionStatement","src":"751:39:53"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"698:1:53","nodeType":"YulIdentifier","src":"698:1:53"},{"name":"length","nativeSrc":"701:6:53","nodeType":"YulIdentifier","src":"701:6:53"}],"functionName":{"name":"lt","nativeSrc":"695:2:53","nodeType":"YulIdentifier","src":"695:2:53"},"nativeSrc":"695:13:53","nodeType":"YulFunctionCall","src":"695:13:53"},"nativeSrc":"687:113:53","nodeType":"YulForLoop","post":{"nativeSrc":"709:19:53","nodeType":"YulBlock","src":"709:19:53","statements":[{"nativeSrc":"711:15:53","nodeType":"YulAssignment","src":"711:15:53","value":{"arguments":[{"name":"i","nativeSrc":"720:1:53","nodeType":"YulIdentifier","src":"720:1:53"},{"kind":"number","nativeSrc":"723:2:53","nodeType":"YulLiteral","src":"723:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"716:3:53","nodeType":"YulIdentifier","src":"716:3:53"},"nativeSrc":"716:10:53","nodeType":"YulFunctionCall","src":"716:10:53"},"variableNames":[{"name":"i","nativeSrc":"711:1:53","nodeType":"YulIdentifier","src":"711:1:53"}]}]},"pre":{"nativeSrc":"691:3:53","nodeType":"YulBlock","src":"691:3:53","statements":[]},"src":"687:113:53"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"820:3:53","nodeType":"YulIdentifier","src":"820:3:53"},{"name":"length","nativeSrc":"825:6:53","nodeType":"YulIdentifier","src":"825:6:53"}],"functionName":{"name":"add","nativeSrc":"816:3:53","nodeType":"YulIdentifier","src":"816:3:53"},"nativeSrc":"816:16:53","nodeType":"YulFunctionCall","src":"816:16:53"},{"kind":"number","nativeSrc":"834:1:53","nodeType":"YulLiteral","src":"834:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"809:6:53","nodeType":"YulIdentifier","src":"809:6:53"},"nativeSrc":"809:27:53","nodeType":"YulFunctionCall","src":"809:27:53"},"nativeSrc":"809:27:53","nodeType":"YulExpressionStatement","src":"809:27:53"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"592:250:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"636:3:53","nodeType":"YulTypedName","src":"636:3:53","type":""},{"name":"dst","nativeSrc":"641:3:53","nodeType":"YulTypedName","src":"641:3:53","type":""},{"name":"length","nativeSrc":"646:6:53","nodeType":"YulTypedName","src":"646:6:53","type":""}],"src":"592:250:53"},{"body":{"nativeSrc":"897:221:53","nodeType":"YulBlock","src":"897:221:53","statements":[{"nativeSrc":"907:26:53","nodeType":"YulVariableDeclaration","src":"907:26:53","value":{"arguments":[{"name":"value","nativeSrc":"927:5:53","nodeType":"YulIdentifier","src":"927:5:53"}],"functionName":{"name":"mload","nativeSrc":"921:5:53","nodeType":"YulIdentifier","src":"921:5:53"},"nativeSrc":"921:12:53","nodeType":"YulFunctionCall","src":"921:12:53"},"variables":[{"name":"length","nativeSrc":"911:6:53","nodeType":"YulTypedName","src":"911:6:53","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"949:3:53","nodeType":"YulIdentifier","src":"949:3:53"},{"name":"length","nativeSrc":"954:6:53","nodeType":"YulIdentifier","src":"954:6:53"}],"functionName":{"name":"mstore","nativeSrc":"942:6:53","nodeType":"YulIdentifier","src":"942:6:53"},"nativeSrc":"942:19:53","nodeType":"YulFunctionCall","src":"942:19:53"},"nativeSrc":"942:19:53","nodeType":"YulExpressionStatement","src":"942:19:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1009:5:53","nodeType":"YulIdentifier","src":"1009:5:53"},{"kind":"number","nativeSrc":"1016:4:53","nodeType":"YulLiteral","src":"1016:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1005:3:53","nodeType":"YulIdentifier","src":"1005:3:53"},"nativeSrc":"1005:16:53","nodeType":"YulFunctionCall","src":"1005:16:53"},{"arguments":[{"name":"pos","nativeSrc":"1027:3:53","nodeType":"YulIdentifier","src":"1027:3:53"},{"kind":"number","nativeSrc":"1032:4:53","nodeType":"YulLiteral","src":"1032:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1023:3:53","nodeType":"YulIdentifier","src":"1023:3:53"},"nativeSrc":"1023:14:53","nodeType":"YulFunctionCall","src":"1023:14:53"},{"name":"length","nativeSrc":"1039:6:53","nodeType":"YulIdentifier","src":"1039:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"970:34:53","nodeType":"YulIdentifier","src":"970:34:53"},"nativeSrc":"970:76:53","nodeType":"YulFunctionCall","src":"970:76:53"},"nativeSrc":"970:76:53","nodeType":"YulExpressionStatement","src":"970:76:53"},{"nativeSrc":"1055:57:53","nodeType":"YulAssignment","src":"1055:57:53","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"1070:3:53","nodeType":"YulIdentifier","src":"1070:3:53"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1083:6:53","nodeType":"YulIdentifier","src":"1083:6:53"},{"kind":"number","nativeSrc":"1091:2:53","nodeType":"YulLiteral","src":"1091:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1079:3:53","nodeType":"YulIdentifier","src":"1079:3:53"},"nativeSrc":"1079:15:53","nodeType":"YulFunctionCall","src":"1079:15:53"},{"arguments":[{"kind":"number","nativeSrc":"1100:2:53","nodeType":"YulLiteral","src":"1100:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1096:3:53","nodeType":"YulIdentifier","src":"1096:3:53"},"nativeSrc":"1096:7:53","nodeType":"YulFunctionCall","src":"1096:7:53"}],"functionName":{"name":"and","nativeSrc":"1075:3:53","nodeType":"YulIdentifier","src":"1075:3:53"},"nativeSrc":"1075:29:53","nodeType":"YulFunctionCall","src":"1075:29:53"}],"functionName":{"name":"add","nativeSrc":"1066:3:53","nodeType":"YulIdentifier","src":"1066:3:53"},"nativeSrc":"1066:39:53","nodeType":"YulFunctionCall","src":"1066:39:53"},{"kind":"number","nativeSrc":"1107:4:53","nodeType":"YulLiteral","src":"1107:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1062:3:53","nodeType":"YulIdentifier","src":"1062:3:53"},"nativeSrc":"1062:50:53","nodeType":"YulFunctionCall","src":"1062:50:53"},"variableNames":[{"name":"end","nativeSrc":"1055:3:53","nodeType":"YulIdentifier","src":"1055:3:53"}]}]},"name":"abi_encode_string","nativeSrc":"847:271:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"874:5:53","nodeType":"YulTypedName","src":"874:5:53","type":""},{"name":"pos","nativeSrc":"881:3:53","nodeType":"YulTypedName","src":"881:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"889:3:53","nodeType":"YulTypedName","src":"889:3:53","type":""}],"src":"847:271:53"},{"body":{"nativeSrc":"1244:99:53","nodeType":"YulBlock","src":"1244:99:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1261:9:53","nodeType":"YulIdentifier","src":"1261:9:53"},{"kind":"number","nativeSrc":"1272:2:53","nodeType":"YulLiteral","src":"1272:2:53","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1254:6:53","nodeType":"YulIdentifier","src":"1254:6:53"},"nativeSrc":"1254:21:53","nodeType":"YulFunctionCall","src":"1254:21:53"},"nativeSrc":"1254:21:53","nodeType":"YulExpressionStatement","src":"1254:21:53"},{"nativeSrc":"1284:53:53","nodeType":"YulAssignment","src":"1284:53:53","value":{"arguments":[{"name":"value0","nativeSrc":"1310:6:53","nodeType":"YulIdentifier","src":"1310:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"1322:9:53","nodeType":"YulIdentifier","src":"1322:9:53"},{"kind":"number","nativeSrc":"1333:2:53","nodeType":"YulLiteral","src":"1333:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1318:3:53","nodeType":"YulIdentifier","src":"1318:3:53"},"nativeSrc":"1318:18:53","nodeType":"YulFunctionCall","src":"1318:18:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"1292:17:53","nodeType":"YulIdentifier","src":"1292:17:53"},"nativeSrc":"1292:45:53","nodeType":"YulFunctionCall","src":"1292:45:53"},"variableNames":[{"name":"tail","nativeSrc":"1284:4:53","nodeType":"YulIdentifier","src":"1284:4:53"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1123:220:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1213:9:53","nodeType":"YulTypedName","src":"1213:9:53","type":""},{"name":"value0","nativeSrc":"1224:6:53","nodeType":"YulTypedName","src":"1224:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1235:4:53","nodeType":"YulTypedName","src":"1235:4:53","type":""}],"src":"1123:220:53"},{"body":{"nativeSrc":"1418:110:53","nodeType":"YulBlock","src":"1418:110:53","statements":[{"body":{"nativeSrc":"1464:16:53","nodeType":"YulBlock","src":"1464:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1473:1:53","nodeType":"YulLiteral","src":"1473:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1476:1:53","nodeType":"YulLiteral","src":"1476:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1466:6:53","nodeType":"YulIdentifier","src":"1466:6:53"},"nativeSrc":"1466:12:53","nodeType":"YulFunctionCall","src":"1466:12:53"},"nativeSrc":"1466:12:53","nodeType":"YulExpressionStatement","src":"1466:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1439:7:53","nodeType":"YulIdentifier","src":"1439:7:53"},{"name":"headStart","nativeSrc":"1448:9:53","nodeType":"YulIdentifier","src":"1448:9:53"}],"functionName":{"name":"sub","nativeSrc":"1435:3:53","nodeType":"YulIdentifier","src":"1435:3:53"},"nativeSrc":"1435:23:53","nodeType":"YulFunctionCall","src":"1435:23:53"},{"kind":"number","nativeSrc":"1460:2:53","nodeType":"YulLiteral","src":"1460:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1431:3:53","nodeType":"YulIdentifier","src":"1431:3:53"},"nativeSrc":"1431:32:53","nodeType":"YulFunctionCall","src":"1431:32:53"},"nativeSrc":"1428:52:53","nodeType":"YulIf","src":"1428:52:53"},{"nativeSrc":"1489:33:53","nodeType":"YulAssignment","src":"1489:33:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1512:9:53","nodeType":"YulIdentifier","src":"1512:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"1499:12:53","nodeType":"YulIdentifier","src":"1499:12:53"},"nativeSrc":"1499:23:53","nodeType":"YulFunctionCall","src":"1499:23:53"},"variableNames":[{"name":"value0","nativeSrc":"1489:6:53","nodeType":"YulIdentifier","src":"1489:6:53"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1348:180:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1384:9:53","nodeType":"YulTypedName","src":"1384:9:53","type":""},{"name":"dataEnd","nativeSrc":"1395:7:53","nodeType":"YulTypedName","src":"1395:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1407:6:53","nodeType":"YulTypedName","src":"1407:6:53","type":""}],"src":"1348:180:53"},{"body":{"nativeSrc":"1634:102:53","nodeType":"YulBlock","src":"1634:102:53","statements":[{"nativeSrc":"1644:26:53","nodeType":"YulAssignment","src":"1644:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"1656:9:53","nodeType":"YulIdentifier","src":"1656:9:53"},{"kind":"number","nativeSrc":"1667:2:53","nodeType":"YulLiteral","src":"1667:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1652:3:53","nodeType":"YulIdentifier","src":"1652:3:53"},"nativeSrc":"1652:18:53","nodeType":"YulFunctionCall","src":"1652:18:53"},"variableNames":[{"name":"tail","nativeSrc":"1644:4:53","nodeType":"YulIdentifier","src":"1644:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1686:9:53","nodeType":"YulIdentifier","src":"1686:9:53"},{"arguments":[{"name":"value0","nativeSrc":"1701:6:53","nodeType":"YulIdentifier","src":"1701:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1717:3:53","nodeType":"YulLiteral","src":"1717:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"1722:1:53","nodeType":"YulLiteral","src":"1722:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1713:3:53","nodeType":"YulIdentifier","src":"1713:3:53"},"nativeSrc":"1713:11:53","nodeType":"YulFunctionCall","src":"1713:11:53"},{"kind":"number","nativeSrc":"1726:1:53","nodeType":"YulLiteral","src":"1726:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1709:3:53","nodeType":"YulIdentifier","src":"1709:3:53"},"nativeSrc":"1709:19:53","nodeType":"YulFunctionCall","src":"1709:19:53"}],"functionName":{"name":"and","nativeSrc":"1697:3:53","nodeType":"YulIdentifier","src":"1697:3:53"},"nativeSrc":"1697:32:53","nodeType":"YulFunctionCall","src":"1697:32:53"}],"functionName":{"name":"mstore","nativeSrc":"1679:6:53","nodeType":"YulIdentifier","src":"1679:6:53"},"nativeSrc":"1679:51:53","nodeType":"YulFunctionCall","src":"1679:51:53"},"nativeSrc":"1679:51:53","nodeType":"YulExpressionStatement","src":"1679:51:53"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1533:203:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1603:9:53","nodeType":"YulTypedName","src":"1603:9:53","type":""},{"name":"value0","nativeSrc":"1614:6:53","nodeType":"YulTypedName","src":"1614:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1625:4:53","nodeType":"YulTypedName","src":"1625:4:53","type":""}],"src":"1533:203:53"},{"body":{"nativeSrc":"1786:86:53","nodeType":"YulBlock","src":"1786:86:53","statements":[{"body":{"nativeSrc":"1850:16:53","nodeType":"YulBlock","src":"1850:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1859:1:53","nodeType":"YulLiteral","src":"1859:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"1862:1:53","nodeType":"YulLiteral","src":"1862:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1852:6:53","nodeType":"YulIdentifier","src":"1852:6:53"},"nativeSrc":"1852:12:53","nodeType":"YulFunctionCall","src":"1852:12:53"},"nativeSrc":"1852:12:53","nodeType":"YulExpressionStatement","src":"1852:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1809:5:53","nodeType":"YulIdentifier","src":"1809:5:53"},{"arguments":[{"name":"value","nativeSrc":"1820:5:53","nodeType":"YulIdentifier","src":"1820:5:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1835:3:53","nodeType":"YulLiteral","src":"1835:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"1840:1:53","nodeType":"YulLiteral","src":"1840:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1831:3:53","nodeType":"YulIdentifier","src":"1831:3:53"},"nativeSrc":"1831:11:53","nodeType":"YulFunctionCall","src":"1831:11:53"},{"kind":"number","nativeSrc":"1844:1:53","nodeType":"YulLiteral","src":"1844:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1827:3:53","nodeType":"YulIdentifier","src":"1827:3:53"},"nativeSrc":"1827:19:53","nodeType":"YulFunctionCall","src":"1827:19:53"}],"functionName":{"name":"and","nativeSrc":"1816:3:53","nodeType":"YulIdentifier","src":"1816:3:53"},"nativeSrc":"1816:31:53","nodeType":"YulFunctionCall","src":"1816:31:53"}],"functionName":{"name":"eq","nativeSrc":"1806:2:53","nodeType":"YulIdentifier","src":"1806:2:53"},"nativeSrc":"1806:42:53","nodeType":"YulFunctionCall","src":"1806:42:53"}],"functionName":{"name":"iszero","nativeSrc":"1799:6:53","nodeType":"YulIdentifier","src":"1799:6:53"},"nativeSrc":"1799:50:53","nodeType":"YulFunctionCall","src":"1799:50:53"},"nativeSrc":"1796:70:53","nodeType":"YulIf","src":"1796:70:53"}]},"name":"validator_revert_address","nativeSrc":"1741:131:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1775:5:53","nodeType":"YulTypedName","src":"1775:5:53","type":""}],"src":"1741:131:53"},{"body":{"nativeSrc":"1964:228:53","nodeType":"YulBlock","src":"1964:228:53","statements":[{"body":{"nativeSrc":"2010:16:53","nodeType":"YulBlock","src":"2010:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2019:1:53","nodeType":"YulLiteral","src":"2019:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2022:1:53","nodeType":"YulLiteral","src":"2022:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2012:6:53","nodeType":"YulIdentifier","src":"2012:6:53"},"nativeSrc":"2012:12:53","nodeType":"YulFunctionCall","src":"2012:12:53"},"nativeSrc":"2012:12:53","nodeType":"YulExpressionStatement","src":"2012:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1985:7:53","nodeType":"YulIdentifier","src":"1985:7:53"},{"name":"headStart","nativeSrc":"1994:9:53","nodeType":"YulIdentifier","src":"1994:9:53"}],"functionName":{"name":"sub","nativeSrc":"1981:3:53","nodeType":"YulIdentifier","src":"1981:3:53"},"nativeSrc":"1981:23:53","nodeType":"YulFunctionCall","src":"1981:23:53"},{"kind":"number","nativeSrc":"2006:2:53","nodeType":"YulLiteral","src":"2006:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1977:3:53","nodeType":"YulIdentifier","src":"1977:3:53"},"nativeSrc":"1977:32:53","nodeType":"YulFunctionCall","src":"1977:32:53"},"nativeSrc":"1974:52:53","nodeType":"YulIf","src":"1974:52:53"},{"nativeSrc":"2035:36:53","nodeType":"YulVariableDeclaration","src":"2035:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"2061:9:53","nodeType":"YulIdentifier","src":"2061:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"2048:12:53","nodeType":"YulIdentifier","src":"2048:12:53"},"nativeSrc":"2048:23:53","nodeType":"YulFunctionCall","src":"2048:23:53"},"variables":[{"name":"value","nativeSrc":"2039:5:53","nodeType":"YulTypedName","src":"2039:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2105:5:53","nodeType":"YulIdentifier","src":"2105:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2080:24:53","nodeType":"YulIdentifier","src":"2080:24:53"},"nativeSrc":"2080:31:53","nodeType":"YulFunctionCall","src":"2080:31:53"},"nativeSrc":"2080:31:53","nodeType":"YulExpressionStatement","src":"2080:31:53"},{"nativeSrc":"2120:15:53","nodeType":"YulAssignment","src":"2120:15:53","value":{"name":"value","nativeSrc":"2130:5:53","nodeType":"YulIdentifier","src":"2130:5:53"},"variableNames":[{"name":"value0","nativeSrc":"2120:6:53","nodeType":"YulIdentifier","src":"2120:6:53"}]},{"nativeSrc":"2144:42:53","nodeType":"YulAssignment","src":"2144:42:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2171:9:53","nodeType":"YulIdentifier","src":"2171:9:53"},{"kind":"number","nativeSrc":"2182:2:53","nodeType":"YulLiteral","src":"2182:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2167:3:53","nodeType":"YulIdentifier","src":"2167:3:53"},"nativeSrc":"2167:18:53","nodeType":"YulFunctionCall","src":"2167:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"2154:12:53","nodeType":"YulIdentifier","src":"2154:12:53"},"nativeSrc":"2154:32:53","nodeType":"YulFunctionCall","src":"2154:32:53"},"variableNames":[{"name":"value1","nativeSrc":"2144:6:53","nodeType":"YulIdentifier","src":"2144:6:53"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1877:315:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1922:9:53","nodeType":"YulTypedName","src":"1922:9:53","type":""},{"name":"dataEnd","nativeSrc":"1933:7:53","nodeType":"YulTypedName","src":"1933:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1945:6:53","nodeType":"YulTypedName","src":"1945:6:53","type":""},{"name":"value1","nativeSrc":"1953:6:53","nodeType":"YulTypedName","src":"1953:6:53","type":""}],"src":"1877:315:53"},{"body":{"nativeSrc":"2266:85:53","nodeType":"YulBlock","src":"2266:85:53","statements":[{"body":{"nativeSrc":"2305:16:53","nodeType":"YulBlock","src":"2305:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2314:1:53","nodeType":"YulLiteral","src":"2314:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2317:1:53","nodeType":"YulLiteral","src":"2317:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2307:6:53","nodeType":"YulIdentifier","src":"2307:6:53"},"nativeSrc":"2307:12:53","nodeType":"YulFunctionCall","src":"2307:12:53"},"nativeSrc":"2307:12:53","nodeType":"YulExpressionStatement","src":"2307:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"2287:3:53","nodeType":"YulIdentifier","src":"2287:3:53"},{"name":"offset","nativeSrc":"2292:6:53","nodeType":"YulIdentifier","src":"2292:6:53"}],"functionName":{"name":"sub","nativeSrc":"2283:3:53","nodeType":"YulIdentifier","src":"2283:3:53"},"nativeSrc":"2283:16:53","nodeType":"YulFunctionCall","src":"2283:16:53"},{"kind":"number","nativeSrc":"2301:2:53","nodeType":"YulLiteral","src":"2301:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2279:3:53","nodeType":"YulIdentifier","src":"2279:3:53"},"nativeSrc":"2279:25:53","nodeType":"YulFunctionCall","src":"2279:25:53"},"nativeSrc":"2276:45:53","nodeType":"YulIf","src":"2276:45:53"},{"nativeSrc":"2330:15:53","nodeType":"YulAssignment","src":"2330:15:53","value":{"name":"offset","nativeSrc":"2339:6:53","nodeType":"YulIdentifier","src":"2339:6:53"},"variableNames":[{"name":"value","nativeSrc":"2330:5:53","nodeType":"YulIdentifier","src":"2330:5:53"}]}]},"name":"abi_decode_struct_Origin_calldata","nativeSrc":"2197:154:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2240:6:53","nodeType":"YulTypedName","src":"2240:6:53","type":""},{"name":"end","nativeSrc":"2248:3:53","nodeType":"YulTypedName","src":"2248:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2256:5:53","nodeType":"YulTypedName","src":"2256:5:53","type":""}],"src":"2197:154:53"},{"body":{"nativeSrc":"2428:275:53","nodeType":"YulBlock","src":"2428:275:53","statements":[{"body":{"nativeSrc":"2477:16:53","nodeType":"YulBlock","src":"2477:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2486:1:53","nodeType":"YulLiteral","src":"2486:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2489:1:53","nodeType":"YulLiteral","src":"2489:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2479:6:53","nodeType":"YulIdentifier","src":"2479:6:53"},"nativeSrc":"2479:12:53","nodeType":"YulFunctionCall","src":"2479:12:53"},"nativeSrc":"2479:12:53","nodeType":"YulExpressionStatement","src":"2479:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2456:6:53","nodeType":"YulIdentifier","src":"2456:6:53"},{"kind":"number","nativeSrc":"2464:4:53","nodeType":"YulLiteral","src":"2464:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2452:3:53","nodeType":"YulIdentifier","src":"2452:3:53"},"nativeSrc":"2452:17:53","nodeType":"YulFunctionCall","src":"2452:17:53"},{"name":"end","nativeSrc":"2471:3:53","nodeType":"YulIdentifier","src":"2471:3:53"}],"functionName":{"name":"slt","nativeSrc":"2448:3:53","nodeType":"YulIdentifier","src":"2448:3:53"},"nativeSrc":"2448:27:53","nodeType":"YulFunctionCall","src":"2448:27:53"}],"functionName":{"name":"iszero","nativeSrc":"2441:6:53","nodeType":"YulIdentifier","src":"2441:6:53"},"nativeSrc":"2441:35:53","nodeType":"YulFunctionCall","src":"2441:35:53"},"nativeSrc":"2438:55:53","nodeType":"YulIf","src":"2438:55:53"},{"nativeSrc":"2502:30:53","nodeType":"YulAssignment","src":"2502:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"2525:6:53","nodeType":"YulIdentifier","src":"2525:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"2512:12:53","nodeType":"YulIdentifier","src":"2512:12:53"},"nativeSrc":"2512:20:53","nodeType":"YulFunctionCall","src":"2512:20:53"},"variableNames":[{"name":"length","nativeSrc":"2502:6:53","nodeType":"YulIdentifier","src":"2502:6:53"}]},{"body":{"nativeSrc":"2575:16:53","nodeType":"YulBlock","src":"2575:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2584:1:53","nodeType":"YulLiteral","src":"2584:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2587:1:53","nodeType":"YulLiteral","src":"2587:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2577:6:53","nodeType":"YulIdentifier","src":"2577:6:53"},"nativeSrc":"2577:12:53","nodeType":"YulFunctionCall","src":"2577:12:53"},"nativeSrc":"2577:12:53","nodeType":"YulExpressionStatement","src":"2577:12:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2547:6:53","nodeType":"YulIdentifier","src":"2547:6:53"},{"kind":"number","nativeSrc":"2555:18:53","nodeType":"YulLiteral","src":"2555:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2544:2:53","nodeType":"YulIdentifier","src":"2544:2:53"},"nativeSrc":"2544:30:53","nodeType":"YulFunctionCall","src":"2544:30:53"},"nativeSrc":"2541:50:53","nodeType":"YulIf","src":"2541:50:53"},{"nativeSrc":"2600:29:53","nodeType":"YulAssignment","src":"2600:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"2616:6:53","nodeType":"YulIdentifier","src":"2616:6:53"},{"kind":"number","nativeSrc":"2624:4:53","nodeType":"YulLiteral","src":"2624:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2612:3:53","nodeType":"YulIdentifier","src":"2612:3:53"},"nativeSrc":"2612:17:53","nodeType":"YulFunctionCall","src":"2612:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"2600:8:53","nodeType":"YulIdentifier","src":"2600:8:53"}]},{"body":{"nativeSrc":"2681:16:53","nodeType":"YulBlock","src":"2681:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2690:1:53","nodeType":"YulLiteral","src":"2690:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2693:1:53","nodeType":"YulLiteral","src":"2693:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2683:6:53","nodeType":"YulIdentifier","src":"2683:6:53"},"nativeSrc":"2683:12:53","nodeType":"YulFunctionCall","src":"2683:12:53"},"nativeSrc":"2683:12:53","nodeType":"YulExpressionStatement","src":"2683:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2652:6:53","nodeType":"YulIdentifier","src":"2652:6:53"},{"name":"length","nativeSrc":"2660:6:53","nodeType":"YulIdentifier","src":"2660:6:53"}],"functionName":{"name":"add","nativeSrc":"2648:3:53","nodeType":"YulIdentifier","src":"2648:3:53"},"nativeSrc":"2648:19:53","nodeType":"YulFunctionCall","src":"2648:19:53"},{"kind":"number","nativeSrc":"2669:4:53","nodeType":"YulLiteral","src":"2669:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2644:3:53","nodeType":"YulIdentifier","src":"2644:3:53"},"nativeSrc":"2644:30:53","nodeType":"YulFunctionCall","src":"2644:30:53"},{"name":"end","nativeSrc":"2676:3:53","nodeType":"YulIdentifier","src":"2676:3:53"}],"functionName":{"name":"gt","nativeSrc":"2641:2:53","nodeType":"YulIdentifier","src":"2641:2:53"},"nativeSrc":"2641:39:53","nodeType":"YulFunctionCall","src":"2641:39:53"},"nativeSrc":"2638:59:53","nodeType":"YulIf","src":"2638:59:53"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"2356:347:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2391:6:53","nodeType":"YulTypedName","src":"2391:6:53","type":""},{"name":"end","nativeSrc":"2399:3:53","nodeType":"YulTypedName","src":"2399:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2407:8:53","nodeType":"YulTypedName","src":"2407:8:53","type":""},{"name":"length","nativeSrc":"2417:6:53","nodeType":"YulTypedName","src":"2417:6:53","type":""}],"src":"2356:347:53"},{"body":{"nativeSrc":"2910:846:53","nodeType":"YulBlock","src":"2910:846:53","statements":[{"body":{"nativeSrc":"2957:16:53","nodeType":"YulBlock","src":"2957:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2966:1:53","nodeType":"YulLiteral","src":"2966:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"2969:1:53","nodeType":"YulLiteral","src":"2969:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2959:6:53","nodeType":"YulIdentifier","src":"2959:6:53"},"nativeSrc":"2959:12:53","nodeType":"YulFunctionCall","src":"2959:12:53"},"nativeSrc":"2959:12:53","nodeType":"YulExpressionStatement","src":"2959:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2931:7:53","nodeType":"YulIdentifier","src":"2931:7:53"},{"name":"headStart","nativeSrc":"2940:9:53","nodeType":"YulIdentifier","src":"2940:9:53"}],"functionName":{"name":"sub","nativeSrc":"2927:3:53","nodeType":"YulIdentifier","src":"2927:3:53"},"nativeSrc":"2927:23:53","nodeType":"YulFunctionCall","src":"2927:23:53"},{"kind":"number","nativeSrc":"2952:3:53","nodeType":"YulLiteral","src":"2952:3:53","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"2923:3:53","nodeType":"YulIdentifier","src":"2923:3:53"},"nativeSrc":"2923:33:53","nodeType":"YulFunctionCall","src":"2923:33:53"},"nativeSrc":"2920:53:53","nodeType":"YulIf","src":"2920:53:53"},{"nativeSrc":"2982:63:53","nodeType":"YulAssignment","src":"2982:63:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3026:9:53","nodeType":"YulIdentifier","src":"3026:9:53"},{"name":"dataEnd","nativeSrc":"3037:7:53","nodeType":"YulIdentifier","src":"3037:7:53"}],"functionName":{"name":"abi_decode_struct_Origin_calldata","nativeSrc":"2992:33:53","nodeType":"YulIdentifier","src":"2992:33:53"},"nativeSrc":"2992:53:53","nodeType":"YulFunctionCall","src":"2992:53:53"},"variableNames":[{"name":"value0","nativeSrc":"2982:6:53","nodeType":"YulIdentifier","src":"2982:6:53"}]},{"nativeSrc":"3054:42:53","nodeType":"YulAssignment","src":"3054:42:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3081:9:53","nodeType":"YulIdentifier","src":"3081:9:53"},{"kind":"number","nativeSrc":"3092:2:53","nodeType":"YulLiteral","src":"3092:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3077:3:53","nodeType":"YulIdentifier","src":"3077:3:53"},"nativeSrc":"3077:18:53","nodeType":"YulFunctionCall","src":"3077:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"3064:12:53","nodeType":"YulIdentifier","src":"3064:12:53"},"nativeSrc":"3064:32:53","nodeType":"YulFunctionCall","src":"3064:32:53"},"variableNames":[{"name":"value1","nativeSrc":"3054:6:53","nodeType":"YulIdentifier","src":"3054:6:53"}]},{"nativeSrc":"3105:47:53","nodeType":"YulVariableDeclaration","src":"3105:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3136:9:53","nodeType":"YulIdentifier","src":"3136:9:53"},{"kind":"number","nativeSrc":"3147:3:53","nodeType":"YulLiteral","src":"3147:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3132:3:53","nodeType":"YulIdentifier","src":"3132:3:53"},"nativeSrc":"3132:19:53","nodeType":"YulFunctionCall","src":"3132:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"3119:12:53","nodeType":"YulIdentifier","src":"3119:12:53"},"nativeSrc":"3119:33:53","nodeType":"YulFunctionCall","src":"3119:33:53"},"variables":[{"name":"offset","nativeSrc":"3109:6:53","nodeType":"YulTypedName","src":"3109:6:53","type":""}]},{"nativeSrc":"3161:28:53","nodeType":"YulVariableDeclaration","src":"3161:28:53","value":{"kind":"number","nativeSrc":"3171:18:53","nodeType":"YulLiteral","src":"3171:18:53","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"3165:2:53","nodeType":"YulTypedName","src":"3165:2:53","type":""}]},{"body":{"nativeSrc":"3216:16:53","nodeType":"YulBlock","src":"3216:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3225:1:53","nodeType":"YulLiteral","src":"3225:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3228:1:53","nodeType":"YulLiteral","src":"3228:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3218:6:53","nodeType":"YulIdentifier","src":"3218:6:53"},"nativeSrc":"3218:12:53","nodeType":"YulFunctionCall","src":"3218:12:53"},"nativeSrc":"3218:12:53","nodeType":"YulExpressionStatement","src":"3218:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3204:6:53","nodeType":"YulIdentifier","src":"3204:6:53"},{"name":"_1","nativeSrc":"3212:2:53","nodeType":"YulIdentifier","src":"3212:2:53"}],"functionName":{"name":"gt","nativeSrc":"3201:2:53","nodeType":"YulIdentifier","src":"3201:2:53"},"nativeSrc":"3201:14:53","nodeType":"YulFunctionCall","src":"3201:14:53"},"nativeSrc":"3198:34:53","nodeType":"YulIf","src":"3198:34:53"},{"nativeSrc":"3241:84:53","nodeType":"YulVariableDeclaration","src":"3241:84:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3297:9:53","nodeType":"YulIdentifier","src":"3297:9:53"},{"name":"offset","nativeSrc":"3308:6:53","nodeType":"YulIdentifier","src":"3308:6:53"}],"functionName":{"name":"add","nativeSrc":"3293:3:53","nodeType":"YulIdentifier","src":"3293:3:53"},"nativeSrc":"3293:22:53","nodeType":"YulFunctionCall","src":"3293:22:53"},{"name":"dataEnd","nativeSrc":"3317:7:53","nodeType":"YulIdentifier","src":"3317:7:53"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3267:25:53","nodeType":"YulIdentifier","src":"3267:25:53"},"nativeSrc":"3267:58:53","nodeType":"YulFunctionCall","src":"3267:58:53"},"variables":[{"name":"value2_1","nativeSrc":"3245:8:53","nodeType":"YulTypedName","src":"3245:8:53","type":""},{"name":"value3_1","nativeSrc":"3255:8:53","nodeType":"YulTypedName","src":"3255:8:53","type":""}]},{"nativeSrc":"3334:18:53","nodeType":"YulAssignment","src":"3334:18:53","value":{"name":"value2_1","nativeSrc":"3344:8:53","nodeType":"YulIdentifier","src":"3344:8:53"},"variableNames":[{"name":"value2","nativeSrc":"3334:6:53","nodeType":"YulIdentifier","src":"3334:6:53"}]},{"nativeSrc":"3361:18:53","nodeType":"YulAssignment","src":"3361:18:53","value":{"name":"value3_1","nativeSrc":"3371:8:53","nodeType":"YulIdentifier","src":"3371:8:53"},"variableNames":[{"name":"value3","nativeSrc":"3361:6:53","nodeType":"YulIdentifier","src":"3361:6:53"}]},{"nativeSrc":"3388:46:53","nodeType":"YulVariableDeclaration","src":"3388:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3418:9:53","nodeType":"YulIdentifier","src":"3418:9:53"},{"kind":"number","nativeSrc":"3429:3:53","nodeType":"YulLiteral","src":"3429:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3414:3:53","nodeType":"YulIdentifier","src":"3414:3:53"},"nativeSrc":"3414:19:53","nodeType":"YulFunctionCall","src":"3414:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"3401:12:53","nodeType":"YulIdentifier","src":"3401:12:53"},"nativeSrc":"3401:33:53","nodeType":"YulFunctionCall","src":"3401:33:53"},"variables":[{"name":"value","nativeSrc":"3392:5:53","nodeType":"YulTypedName","src":"3392:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3468:5:53","nodeType":"YulIdentifier","src":"3468:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3443:24:53","nodeType":"YulIdentifier","src":"3443:24:53"},"nativeSrc":"3443:31:53","nodeType":"YulFunctionCall","src":"3443:31:53"},"nativeSrc":"3443:31:53","nodeType":"YulExpressionStatement","src":"3443:31:53"},{"nativeSrc":"3483:15:53","nodeType":"YulAssignment","src":"3483:15:53","value":{"name":"value","nativeSrc":"3493:5:53","nodeType":"YulIdentifier","src":"3493:5:53"},"variableNames":[{"name":"value4","nativeSrc":"3483:6:53","nodeType":"YulIdentifier","src":"3483:6:53"}]},{"nativeSrc":"3507:49:53","nodeType":"YulVariableDeclaration","src":"3507:49:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3540:9:53","nodeType":"YulIdentifier","src":"3540:9:53"},{"kind":"number","nativeSrc":"3551:3:53","nodeType":"YulLiteral","src":"3551:3:53","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"3536:3:53","nodeType":"YulIdentifier","src":"3536:3:53"},"nativeSrc":"3536:19:53","nodeType":"YulFunctionCall","src":"3536:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"3523:12:53","nodeType":"YulIdentifier","src":"3523:12:53"},"nativeSrc":"3523:33:53","nodeType":"YulFunctionCall","src":"3523:33:53"},"variables":[{"name":"offset_1","nativeSrc":"3511:8:53","nodeType":"YulTypedName","src":"3511:8:53","type":""}]},{"body":{"nativeSrc":"3585:16:53","nodeType":"YulBlock","src":"3585:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3594:1:53","nodeType":"YulLiteral","src":"3594:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"3597:1:53","nodeType":"YulLiteral","src":"3597:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3587:6:53","nodeType":"YulIdentifier","src":"3587:6:53"},"nativeSrc":"3587:12:53","nodeType":"YulFunctionCall","src":"3587:12:53"},"nativeSrc":"3587:12:53","nodeType":"YulExpressionStatement","src":"3587:12:53"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3571:8:53","nodeType":"YulIdentifier","src":"3571:8:53"},{"name":"_1","nativeSrc":"3581:2:53","nodeType":"YulIdentifier","src":"3581:2:53"}],"functionName":{"name":"gt","nativeSrc":"3568:2:53","nodeType":"YulIdentifier","src":"3568:2:53"},"nativeSrc":"3568:16:53","nodeType":"YulFunctionCall","src":"3568:16:53"},"nativeSrc":"3565:36:53","nodeType":"YulIf","src":"3565:36:53"},{"nativeSrc":"3610:86:53","nodeType":"YulVariableDeclaration","src":"3610:86:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3666:9:53","nodeType":"YulIdentifier","src":"3666:9:53"},{"name":"offset_1","nativeSrc":"3677:8:53","nodeType":"YulIdentifier","src":"3677:8:53"}],"functionName":{"name":"add","nativeSrc":"3662:3:53","nodeType":"YulIdentifier","src":"3662:3:53"},"nativeSrc":"3662:24:53","nodeType":"YulFunctionCall","src":"3662:24:53"},{"name":"dataEnd","nativeSrc":"3688:7:53","nodeType":"YulIdentifier","src":"3688:7:53"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3636:25:53","nodeType":"YulIdentifier","src":"3636:25:53"},"nativeSrc":"3636:60:53","nodeType":"YulFunctionCall","src":"3636:60:53"},"variables":[{"name":"value5_1","nativeSrc":"3614:8:53","nodeType":"YulTypedName","src":"3614:8:53","type":""},{"name":"value6_1","nativeSrc":"3624:8:53","nodeType":"YulTypedName","src":"3624:8:53","type":""}]},{"nativeSrc":"3705:18:53","nodeType":"YulAssignment","src":"3705:18:53","value":{"name":"value5_1","nativeSrc":"3715:8:53","nodeType":"YulIdentifier","src":"3715:8:53"},"variableNames":[{"name":"value5","nativeSrc":"3705:6:53","nodeType":"YulIdentifier","src":"3705:6:53"}]},{"nativeSrc":"3732:18:53","nodeType":"YulAssignment","src":"3732:18:53","value":{"name":"value6_1","nativeSrc":"3742:8:53","nodeType":"YulIdentifier","src":"3742:8:53"},"variableNames":[{"name":"value6","nativeSrc":"3732:6:53","nodeType":"YulIdentifier","src":"3732:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr","nativeSrc":"2708:1048:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2828:9:53","nodeType":"YulTypedName","src":"2828:9:53","type":""},{"name":"dataEnd","nativeSrc":"2839:7:53","nodeType":"YulTypedName","src":"2839:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2851:6:53","nodeType":"YulTypedName","src":"2851:6:53","type":""},{"name":"value1","nativeSrc":"2859:6:53","nodeType":"YulTypedName","src":"2859:6:53","type":""},{"name":"value2","nativeSrc":"2867:6:53","nodeType":"YulTypedName","src":"2867:6:53","type":""},{"name":"value3","nativeSrc":"2875:6:53","nodeType":"YulTypedName","src":"2875:6:53","type":""},{"name":"value4","nativeSrc":"2883:6:53","nodeType":"YulTypedName","src":"2883:6:53","type":""},{"name":"value5","nativeSrc":"2891:6:53","nodeType":"YulTypedName","src":"2891:6:53","type":""},{"name":"value6","nativeSrc":"2899:6:53","nodeType":"YulTypedName","src":"2899:6:53","type":""}],"src":"2708:1048:53"},{"body":{"nativeSrc":"3886:174:53","nodeType":"YulBlock","src":"3886:174:53","statements":[{"nativeSrc":"3896:26:53","nodeType":"YulAssignment","src":"3896:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"3908:9:53","nodeType":"YulIdentifier","src":"3908:9:53"},{"kind":"number","nativeSrc":"3919:2:53","nodeType":"YulLiteral","src":"3919:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3904:3:53","nodeType":"YulIdentifier","src":"3904:3:53"},"nativeSrc":"3904:18:53","nodeType":"YulFunctionCall","src":"3904:18:53"},"variableNames":[{"name":"tail","nativeSrc":"3896:4:53","nodeType":"YulIdentifier","src":"3896:4:53"}]},{"nativeSrc":"3931:28:53","nodeType":"YulVariableDeclaration","src":"3931:28:53","value":{"kind":"number","nativeSrc":"3941:18:53","nodeType":"YulLiteral","src":"3941:18:53","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"3935:2:53","nodeType":"YulTypedName","src":"3935:2:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3975:9:53","nodeType":"YulIdentifier","src":"3975:9:53"},{"arguments":[{"name":"value0","nativeSrc":"3990:6:53","nodeType":"YulIdentifier","src":"3990:6:53"},{"name":"_1","nativeSrc":"3998:2:53","nodeType":"YulIdentifier","src":"3998:2:53"}],"functionName":{"name":"and","nativeSrc":"3986:3:53","nodeType":"YulIdentifier","src":"3986:3:53"},"nativeSrc":"3986:15:53","nodeType":"YulFunctionCall","src":"3986:15:53"}],"functionName":{"name":"mstore","nativeSrc":"3968:6:53","nodeType":"YulIdentifier","src":"3968:6:53"},"nativeSrc":"3968:34:53","nodeType":"YulFunctionCall","src":"3968:34:53"},"nativeSrc":"3968:34:53","nodeType":"YulExpressionStatement","src":"3968:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4022:9:53","nodeType":"YulIdentifier","src":"4022:9:53"},{"kind":"number","nativeSrc":"4033:2:53","nodeType":"YulLiteral","src":"4033:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4018:3:53","nodeType":"YulIdentifier","src":"4018:3:53"},"nativeSrc":"4018:18:53","nodeType":"YulFunctionCall","src":"4018:18:53"},{"arguments":[{"name":"value1","nativeSrc":"4042:6:53","nodeType":"YulIdentifier","src":"4042:6:53"},{"name":"_1","nativeSrc":"4050:2:53","nodeType":"YulIdentifier","src":"4050:2:53"}],"functionName":{"name":"and","nativeSrc":"4038:3:53","nodeType":"YulIdentifier","src":"4038:3:53"},"nativeSrc":"4038:15:53","nodeType":"YulFunctionCall","src":"4038:15:53"}],"functionName":{"name":"mstore","nativeSrc":"4011:6:53","nodeType":"YulIdentifier","src":"4011:6:53"},"nativeSrc":"4011:43:53","nodeType":"YulFunctionCall","src":"4011:43:53"},"nativeSrc":"4011:43:53","nodeType":"YulExpressionStatement","src":"4011:43:53"}]},"name":"abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed","nativeSrc":"3761:299:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3847:9:53","nodeType":"YulTypedName","src":"3847:9:53","type":""},{"name":"value1","nativeSrc":"3858:6:53","nodeType":"YulTypedName","src":"3858:6:53","type":""},{"name":"value0","nativeSrc":"3866:6:53","nodeType":"YulTypedName","src":"3866:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3877:4:53","nodeType":"YulTypedName","src":"3877:4:53","type":""}],"src":"3761:299:53"},{"body":{"nativeSrc":"4164:89:53","nodeType":"YulBlock","src":"4164:89:53","statements":[{"nativeSrc":"4174:26:53","nodeType":"YulAssignment","src":"4174:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4186:9:53","nodeType":"YulIdentifier","src":"4186:9:53"},{"kind":"number","nativeSrc":"4197:2:53","nodeType":"YulLiteral","src":"4197:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4182:3:53","nodeType":"YulIdentifier","src":"4182:3:53"},"nativeSrc":"4182:18:53","nodeType":"YulFunctionCall","src":"4182:18:53"},"variableNames":[{"name":"tail","nativeSrc":"4174:4:53","nodeType":"YulIdentifier","src":"4174:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4216:9:53","nodeType":"YulIdentifier","src":"4216:9:53"},{"arguments":[{"name":"value0","nativeSrc":"4231:6:53","nodeType":"YulIdentifier","src":"4231:6:53"},{"kind":"number","nativeSrc":"4239:6:53","nodeType":"YulLiteral","src":"4239:6:53","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"4227:3:53","nodeType":"YulIdentifier","src":"4227:3:53"},"nativeSrc":"4227:19:53","nodeType":"YulFunctionCall","src":"4227:19:53"}],"functionName":{"name":"mstore","nativeSrc":"4209:6:53","nodeType":"YulIdentifier","src":"4209:6:53"},"nativeSrc":"4209:38:53","nodeType":"YulFunctionCall","src":"4209:38:53"},"nativeSrc":"4209:38:53","nodeType":"YulExpressionStatement","src":"4209:38:53"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"4065:188:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4133:9:53","nodeType":"YulTypedName","src":"4133:9:53","type":""},{"name":"value0","nativeSrc":"4144:6:53","nodeType":"YulTypedName","src":"4144:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4155:4:53","nodeType":"YulTypedName","src":"4155:4:53","type":""}],"src":"4065:188:53"},{"body":{"nativeSrc":"4330:86:53","nodeType":"YulBlock","src":"4330:86:53","statements":[{"body":{"nativeSrc":"4370:16:53","nodeType":"YulBlock","src":"4370:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4379:1:53","nodeType":"YulLiteral","src":"4379:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4382:1:53","nodeType":"YulLiteral","src":"4382:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4372:6:53","nodeType":"YulIdentifier","src":"4372:6:53"},"nativeSrc":"4372:12:53","nodeType":"YulFunctionCall","src":"4372:12:53"},"nativeSrc":"4372:12:53","nodeType":"YulExpressionStatement","src":"4372:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"4351:3:53","nodeType":"YulIdentifier","src":"4351:3:53"},{"name":"offset","nativeSrc":"4356:6:53","nodeType":"YulIdentifier","src":"4356:6:53"}],"functionName":{"name":"sub","nativeSrc":"4347:3:53","nodeType":"YulIdentifier","src":"4347:3:53"},"nativeSrc":"4347:16:53","nodeType":"YulFunctionCall","src":"4347:16:53"},{"kind":"number","nativeSrc":"4365:3:53","nodeType":"YulLiteral","src":"4365:3:53","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"4343:3:53","nodeType":"YulIdentifier","src":"4343:3:53"},"nativeSrc":"4343:26:53","nodeType":"YulFunctionCall","src":"4343:26:53"},"nativeSrc":"4340:46:53","nodeType":"YulIf","src":"4340:46:53"},{"nativeSrc":"4395:15:53","nodeType":"YulAssignment","src":"4395:15:53","value":{"name":"offset","nativeSrc":"4404:6:53","nodeType":"YulIdentifier","src":"4404:6:53"},"variableNames":[{"name":"value","nativeSrc":"4395:5:53","nodeType":"YulIdentifier","src":"4395:5:53"}]}]},"name":"abi_decode_struct_SendParam_calldata","nativeSrc":"4258:158:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4304:6:53","nodeType":"YulTypedName","src":"4304:6:53","type":""},{"name":"end","nativeSrc":"4312:3:53","nodeType":"YulTypedName","src":"4312:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4320:5:53","nodeType":"YulTypedName","src":"4320:5:53","type":""}],"src":"4258:158:53"},{"body":{"nativeSrc":"4586:492:53","nodeType":"YulBlock","src":"4586:492:53","statements":[{"nativeSrc":"4596:33:53","nodeType":"YulVariableDeclaration","src":"4596:33:53","value":{"arguments":[{"name":"dataEnd","nativeSrc":"4610:7:53","nodeType":"YulIdentifier","src":"4610:7:53"},{"name":"headStart","nativeSrc":"4619:9:53","nodeType":"YulIdentifier","src":"4619:9:53"}],"functionName":{"name":"sub","nativeSrc":"4606:3:53","nodeType":"YulIdentifier","src":"4606:3:53"},"nativeSrc":"4606:23:53","nodeType":"YulFunctionCall","src":"4606:23:53"},"variables":[{"name":"_1","nativeSrc":"4600:2:53","nodeType":"YulTypedName","src":"4600:2:53","type":""}]},{"body":{"nativeSrc":"4654:16:53","nodeType":"YulBlock","src":"4654:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4663:1:53","nodeType":"YulLiteral","src":"4663:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4666:1:53","nodeType":"YulLiteral","src":"4666:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4656:6:53","nodeType":"YulIdentifier","src":"4656:6:53"},"nativeSrc":"4656:12:53","nodeType":"YulFunctionCall","src":"4656:12:53"},"nativeSrc":"4656:12:53","nodeType":"YulExpressionStatement","src":"4656:12:53"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"4645:2:53","nodeType":"YulIdentifier","src":"4645:2:53"},{"kind":"number","nativeSrc":"4649:3:53","nodeType":"YulLiteral","src":"4649:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"4641:3:53","nodeType":"YulIdentifier","src":"4641:3:53"},"nativeSrc":"4641:12:53","nodeType":"YulFunctionCall","src":"4641:12:53"},"nativeSrc":"4638:32:53","nodeType":"YulIf","src":"4638:32:53"},{"nativeSrc":"4679:37:53","nodeType":"YulVariableDeclaration","src":"4679:37:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4706:9:53","nodeType":"YulIdentifier","src":"4706:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"4693:12:53","nodeType":"YulIdentifier","src":"4693:12:53"},"nativeSrc":"4693:23:53","nodeType":"YulFunctionCall","src":"4693:23:53"},"variables":[{"name":"offset","nativeSrc":"4683:6:53","nodeType":"YulTypedName","src":"4683:6:53","type":""}]},{"body":{"nativeSrc":"4759:16:53","nodeType":"YulBlock","src":"4759:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4768:1:53","nodeType":"YulLiteral","src":"4768:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4771:1:53","nodeType":"YulLiteral","src":"4771:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4761:6:53","nodeType":"YulIdentifier","src":"4761:6:53"},"nativeSrc":"4761:12:53","nodeType":"YulFunctionCall","src":"4761:12:53"},"nativeSrc":"4761:12:53","nodeType":"YulExpressionStatement","src":"4761:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4731:6:53","nodeType":"YulIdentifier","src":"4731:6:53"},{"kind":"number","nativeSrc":"4739:18:53","nodeType":"YulLiteral","src":"4739:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4728:2:53","nodeType":"YulIdentifier","src":"4728:2:53"},"nativeSrc":"4728:30:53","nodeType":"YulFunctionCall","src":"4728:30:53"},"nativeSrc":"4725:50:53","nodeType":"YulIf","src":"4725:50:53"},{"nativeSrc":"4784:79:53","nodeType":"YulAssignment","src":"4784:79:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4835:9:53","nodeType":"YulIdentifier","src":"4835:9:53"},{"name":"offset","nativeSrc":"4846:6:53","nodeType":"YulIdentifier","src":"4846:6:53"}],"functionName":{"name":"add","nativeSrc":"4831:3:53","nodeType":"YulIdentifier","src":"4831:3:53"},"nativeSrc":"4831:22:53","nodeType":"YulFunctionCall","src":"4831:22:53"},{"name":"dataEnd","nativeSrc":"4855:7:53","nodeType":"YulIdentifier","src":"4855:7:53"}],"functionName":{"name":"abi_decode_struct_SendParam_calldata","nativeSrc":"4794:36:53","nodeType":"YulIdentifier","src":"4794:36:53"},"nativeSrc":"4794:69:53","nodeType":"YulFunctionCall","src":"4794:69:53"},"variableNames":[{"name":"value0","nativeSrc":"4784:6:53","nodeType":"YulIdentifier","src":"4784:6:53"}]},{"body":{"nativeSrc":"4901:16:53","nodeType":"YulBlock","src":"4901:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4910:1:53","nodeType":"YulLiteral","src":"4910:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"4913:1:53","nodeType":"YulLiteral","src":"4913:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4903:6:53","nodeType":"YulIdentifier","src":"4903:6:53"},"nativeSrc":"4903:12:53","nodeType":"YulFunctionCall","src":"4903:12:53"},"nativeSrc":"4903:12:53","nodeType":"YulExpressionStatement","src":"4903:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"4883:2:53","nodeType":"YulIdentifier","src":"4883:2:53"},{"arguments":[{"kind":"number","nativeSrc":"4891:2:53","nodeType":"YulLiteral","src":"4891:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4887:3:53","nodeType":"YulIdentifier","src":"4887:3:53"},"nativeSrc":"4887:7:53","nodeType":"YulFunctionCall","src":"4887:7:53"}],"functionName":{"name":"add","nativeSrc":"4879:3:53","nodeType":"YulIdentifier","src":"4879:3:53"},"nativeSrc":"4879:16:53","nodeType":"YulFunctionCall","src":"4879:16:53"},{"kind":"number","nativeSrc":"4897:2:53","nodeType":"YulLiteral","src":"4897:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4875:3:53","nodeType":"YulIdentifier","src":"4875:3:53"},"nativeSrc":"4875:25:53","nodeType":"YulFunctionCall","src":"4875:25:53"},"nativeSrc":"4872:45:53","nodeType":"YulIf","src":"4872:45:53"},{"nativeSrc":"4926:28:53","nodeType":"YulAssignment","src":"4926:28:53","value":{"arguments":[{"name":"headStart","nativeSrc":"4940:9:53","nodeType":"YulIdentifier","src":"4940:9:53"},{"kind":"number","nativeSrc":"4951:2:53","nodeType":"YulLiteral","src":"4951:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4936:3:53","nodeType":"YulIdentifier","src":"4936:3:53"},"nativeSrc":"4936:18:53","nodeType":"YulFunctionCall","src":"4936:18:53"},"variableNames":[{"name":"value1","nativeSrc":"4926:6:53","nodeType":"YulIdentifier","src":"4926:6:53"}]},{"nativeSrc":"4963:45:53","nodeType":"YulVariableDeclaration","src":"4963:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4993:9:53","nodeType":"YulIdentifier","src":"4993:9:53"},{"kind":"number","nativeSrc":"5004:2:53","nodeType":"YulLiteral","src":"5004:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4989:3:53","nodeType":"YulIdentifier","src":"4989:3:53"},"nativeSrc":"4989:18:53","nodeType":"YulFunctionCall","src":"4989:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"4976:12:53","nodeType":"YulIdentifier","src":"4976:12:53"},"nativeSrc":"4976:32:53","nodeType":"YulFunctionCall","src":"4976:32:53"},"variables":[{"name":"value","nativeSrc":"4967:5:53","nodeType":"YulTypedName","src":"4967:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5042:5:53","nodeType":"YulIdentifier","src":"5042:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5017:24:53","nodeType":"YulIdentifier","src":"5017:24:53"},"nativeSrc":"5017:31:53","nodeType":"YulFunctionCall","src":"5017:31:53"},"nativeSrc":"5017:31:53","nodeType":"YulExpressionStatement","src":"5017:31:53"},{"nativeSrc":"5057:15:53","nodeType":"YulAssignment","src":"5057:15:53","value":{"name":"value","nativeSrc":"5067:5:53","nodeType":"YulIdentifier","src":"5067:5:53"},"variableNames":[{"name":"value2","nativeSrc":"5057:6:53","nodeType":"YulIdentifier","src":"5057:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_struct$_MessagingFee_$2169_calldata_ptrt_address","nativeSrc":"4421:657:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4536:9:53","nodeType":"YulTypedName","src":"4536:9:53","type":""},{"name":"dataEnd","nativeSrc":"4547:7:53","nodeType":"YulTypedName","src":"4547:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4559:6:53","nodeType":"YulTypedName","src":"4559:6:53","type":""},{"name":"value1","nativeSrc":"4567:6:53","nodeType":"YulTypedName","src":"4567:6:53","type":""},{"name":"value2","nativeSrc":"4575:6:53","nodeType":"YulTypedName","src":"4575:6:53","type":""}],"src":"4421:657:53"},{"body":{"nativeSrc":"5139:97:53","nodeType":"YulBlock","src":"5139:97:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5156:3:53","nodeType":"YulIdentifier","src":"5156:3:53"},{"arguments":[{"name":"value","nativeSrc":"5167:5:53","nodeType":"YulIdentifier","src":"5167:5:53"}],"functionName":{"name":"mload","nativeSrc":"5161:5:53","nodeType":"YulIdentifier","src":"5161:5:53"},"nativeSrc":"5161:12:53","nodeType":"YulFunctionCall","src":"5161:12:53"}],"functionName":{"name":"mstore","nativeSrc":"5149:6:53","nodeType":"YulIdentifier","src":"5149:6:53"},"nativeSrc":"5149:25:53","nodeType":"YulFunctionCall","src":"5149:25:53"},"nativeSrc":"5149:25:53","nodeType":"YulExpressionStatement","src":"5149:25:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"5194:3:53","nodeType":"YulIdentifier","src":"5194:3:53"},{"kind":"number","nativeSrc":"5199:4:53","nodeType":"YulLiteral","src":"5199:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5190:3:53","nodeType":"YulIdentifier","src":"5190:3:53"},"nativeSrc":"5190:14:53","nodeType":"YulFunctionCall","src":"5190:14:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5216:5:53","nodeType":"YulIdentifier","src":"5216:5:53"},{"kind":"number","nativeSrc":"5223:4:53","nodeType":"YulLiteral","src":"5223:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5212:3:53","nodeType":"YulIdentifier","src":"5212:3:53"},"nativeSrc":"5212:16:53","nodeType":"YulFunctionCall","src":"5212:16:53"}],"functionName":{"name":"mload","nativeSrc":"5206:5:53","nodeType":"YulIdentifier","src":"5206:5:53"},"nativeSrc":"5206:23:53","nodeType":"YulFunctionCall","src":"5206:23:53"}],"functionName":{"name":"mstore","nativeSrc":"5183:6:53","nodeType":"YulIdentifier","src":"5183:6:53"},"nativeSrc":"5183:47:53","nodeType":"YulFunctionCall","src":"5183:47:53"},"nativeSrc":"5183:47:53","nodeType":"YulExpressionStatement","src":"5183:47:53"}]},"name":"abi_encode_struct_MessagingFee","nativeSrc":"5083:153:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5123:5:53","nodeType":"YulTypedName","src":"5123:5:53","type":""},{"name":"pos","nativeSrc":"5130:3:53","nodeType":"YulTypedName","src":"5130:3:53","type":""}],"src":"5083:153:53"},{"body":{"nativeSrc":"5410:300:53","nodeType":"YulBlock","src":"5410:300:53","statements":[{"nativeSrc":"5420:27:53","nodeType":"YulAssignment","src":"5420:27:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5432:9:53","nodeType":"YulIdentifier","src":"5432:9:53"},{"kind":"number","nativeSrc":"5443:3:53","nodeType":"YulLiteral","src":"5443:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5428:3:53","nodeType":"YulIdentifier","src":"5428:3:53"},"nativeSrc":"5428:19:53","nodeType":"YulFunctionCall","src":"5428:19:53"},"variableNames":[{"name":"tail","nativeSrc":"5420:4:53","nodeType":"YulIdentifier","src":"5420:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5463:9:53","nodeType":"YulIdentifier","src":"5463:9:53"},{"arguments":[{"name":"value0","nativeSrc":"5480:6:53","nodeType":"YulIdentifier","src":"5480:6:53"}],"functionName":{"name":"mload","nativeSrc":"5474:5:53","nodeType":"YulIdentifier","src":"5474:5:53"},"nativeSrc":"5474:13:53","nodeType":"YulFunctionCall","src":"5474:13:53"}],"functionName":{"name":"mstore","nativeSrc":"5456:6:53","nodeType":"YulIdentifier","src":"5456:6:53"},"nativeSrc":"5456:32:53","nodeType":"YulFunctionCall","src":"5456:32:53"},"nativeSrc":"5456:32:53","nodeType":"YulExpressionStatement","src":"5456:32:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5508:9:53","nodeType":"YulIdentifier","src":"5508:9:53"},{"kind":"number","nativeSrc":"5519:4:53","nodeType":"YulLiteral","src":"5519:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5504:3:53","nodeType":"YulIdentifier","src":"5504:3:53"},"nativeSrc":"5504:20:53","nodeType":"YulFunctionCall","src":"5504:20:53"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5540:6:53","nodeType":"YulIdentifier","src":"5540:6:53"},{"kind":"number","nativeSrc":"5548:4:53","nodeType":"YulLiteral","src":"5548:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5536:3:53","nodeType":"YulIdentifier","src":"5536:3:53"},"nativeSrc":"5536:17:53","nodeType":"YulFunctionCall","src":"5536:17:53"}],"functionName":{"name":"mload","nativeSrc":"5530:5:53","nodeType":"YulIdentifier","src":"5530:5:53"},"nativeSrc":"5530:24:53","nodeType":"YulFunctionCall","src":"5530:24:53"},{"kind":"number","nativeSrc":"5556:18:53","nodeType":"YulLiteral","src":"5556:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5526:3:53","nodeType":"YulIdentifier","src":"5526:3:53"},"nativeSrc":"5526:49:53","nodeType":"YulFunctionCall","src":"5526:49:53"}],"functionName":{"name":"mstore","nativeSrc":"5497:6:53","nodeType":"YulIdentifier","src":"5497:6:53"},"nativeSrc":"5497:79:53","nodeType":"YulFunctionCall","src":"5497:79:53"},"nativeSrc":"5497:79:53","nodeType":"YulExpressionStatement","src":"5497:79:53"},{"nativeSrc":"5585:44:53","nodeType":"YulVariableDeclaration","src":"5585:44:53","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5615:6:53","nodeType":"YulIdentifier","src":"5615:6:53"},{"kind":"number","nativeSrc":"5623:4:53","nodeType":"YulLiteral","src":"5623:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5611:3:53","nodeType":"YulIdentifier","src":"5611:3:53"},"nativeSrc":"5611:17:53","nodeType":"YulFunctionCall","src":"5611:17:53"}],"functionName":{"name":"mload","nativeSrc":"5605:5:53","nodeType":"YulIdentifier","src":"5605:5:53"},"nativeSrc":"5605:24:53","nodeType":"YulFunctionCall","src":"5605:24:53"},"variables":[{"name":"memberValue0","nativeSrc":"5589:12:53","nodeType":"YulTypedName","src":"5589:12:53","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5669:12:53","nodeType":"YulIdentifier","src":"5669:12:53"},{"arguments":[{"name":"headStart","nativeSrc":"5687:9:53","nodeType":"YulIdentifier","src":"5687:9:53"},{"kind":"number","nativeSrc":"5698:4:53","nodeType":"YulLiteral","src":"5698:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5683:3:53","nodeType":"YulIdentifier","src":"5683:3:53"},"nativeSrc":"5683:20:53","nodeType":"YulFunctionCall","src":"5683:20:53"}],"functionName":{"name":"abi_encode_struct_MessagingFee","nativeSrc":"5638:30:53","nodeType":"YulIdentifier","src":"5638:30:53"},"nativeSrc":"5638:66:53","nodeType":"YulFunctionCall","src":"5638:66:53"},"nativeSrc":"5638:66:53","nodeType":"YulExpressionStatement","src":"5638:66:53"}]},"name":"abi_encode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr__to_t_struct$_MessagingReceipt_$2164_memory_ptr__fromStack_reversed","nativeSrc":"5241:469:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5379:9:53","nodeType":"YulTypedName","src":"5379:9:53","type":""},{"name":"value0","nativeSrc":"5390:6:53","nodeType":"YulTypedName","src":"5390:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5401:4:53","nodeType":"YulTypedName","src":"5401:4:53","type":""}],"src":"5241:469:53"},{"body":{"nativeSrc":"5819:352:53","nodeType":"YulBlock","src":"5819:352:53","statements":[{"body":{"nativeSrc":"5865:16:53","nodeType":"YulBlock","src":"5865:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5874:1:53","nodeType":"YulLiteral","src":"5874:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"5877:1:53","nodeType":"YulLiteral","src":"5877:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5867:6:53","nodeType":"YulIdentifier","src":"5867:6:53"},"nativeSrc":"5867:12:53","nodeType":"YulFunctionCall","src":"5867:12:53"},"nativeSrc":"5867:12:53","nodeType":"YulExpressionStatement","src":"5867:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5840:7:53","nodeType":"YulIdentifier","src":"5840:7:53"},{"name":"headStart","nativeSrc":"5849:9:53","nodeType":"YulIdentifier","src":"5849:9:53"}],"functionName":{"name":"sub","nativeSrc":"5836:3:53","nodeType":"YulIdentifier","src":"5836:3:53"},"nativeSrc":"5836:23:53","nodeType":"YulFunctionCall","src":"5836:23:53"},{"kind":"number","nativeSrc":"5861:2:53","nodeType":"YulLiteral","src":"5861:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5832:3:53","nodeType":"YulIdentifier","src":"5832:3:53"},"nativeSrc":"5832:32:53","nodeType":"YulFunctionCall","src":"5832:32:53"},"nativeSrc":"5829:52:53","nodeType":"YulIf","src":"5829:52:53"},{"nativeSrc":"5890:36:53","nodeType":"YulVariableDeclaration","src":"5890:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"5916:9:53","nodeType":"YulIdentifier","src":"5916:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"5903:12:53","nodeType":"YulIdentifier","src":"5903:12:53"},"nativeSrc":"5903:23:53","nodeType":"YulFunctionCall","src":"5903:23:53"},"variables":[{"name":"value","nativeSrc":"5894:5:53","nodeType":"YulTypedName","src":"5894:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5960:5:53","nodeType":"YulIdentifier","src":"5960:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5935:24:53","nodeType":"YulIdentifier","src":"5935:24:53"},"nativeSrc":"5935:31:53","nodeType":"YulFunctionCall","src":"5935:31:53"},"nativeSrc":"5935:31:53","nodeType":"YulExpressionStatement","src":"5935:31:53"},{"nativeSrc":"5975:15:53","nodeType":"YulAssignment","src":"5975:15:53","value":{"name":"value","nativeSrc":"5985:5:53","nodeType":"YulIdentifier","src":"5985:5:53"},"variableNames":[{"name":"value0","nativeSrc":"5975:6:53","nodeType":"YulIdentifier","src":"5975:6:53"}]},{"nativeSrc":"5999:47:53","nodeType":"YulVariableDeclaration","src":"5999:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6031:9:53","nodeType":"YulIdentifier","src":"6031:9:53"},{"kind":"number","nativeSrc":"6042:2:53","nodeType":"YulLiteral","src":"6042:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6027:3:53","nodeType":"YulIdentifier","src":"6027:3:53"},"nativeSrc":"6027:18:53","nodeType":"YulFunctionCall","src":"6027:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"6014:12:53","nodeType":"YulIdentifier","src":"6014:12:53"},"nativeSrc":"6014:32:53","nodeType":"YulFunctionCall","src":"6014:32:53"},"variables":[{"name":"value_1","nativeSrc":"6003:7:53","nodeType":"YulTypedName","src":"6003:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"6080:7:53","nodeType":"YulIdentifier","src":"6080:7:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6055:24:53","nodeType":"YulIdentifier","src":"6055:24:53"},"nativeSrc":"6055:33:53","nodeType":"YulFunctionCall","src":"6055:33:53"},"nativeSrc":"6055:33:53","nodeType":"YulExpressionStatement","src":"6055:33:53"},{"nativeSrc":"6097:17:53","nodeType":"YulAssignment","src":"6097:17:53","value":{"name":"value_1","nativeSrc":"6107:7:53","nodeType":"YulIdentifier","src":"6107:7:53"},"variableNames":[{"name":"value1","nativeSrc":"6097:6:53","nodeType":"YulIdentifier","src":"6097:6:53"}]},{"nativeSrc":"6123:42:53","nodeType":"YulAssignment","src":"6123:42:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6150:9:53","nodeType":"YulIdentifier","src":"6150:9:53"},{"kind":"number","nativeSrc":"6161:2:53","nodeType":"YulLiteral","src":"6161:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6146:3:53","nodeType":"YulIdentifier","src":"6146:3:53"},"nativeSrc":"6146:18:53","nodeType":"YulFunctionCall","src":"6146:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"6133:12:53","nodeType":"YulIdentifier","src":"6133:12:53"},"nativeSrc":"6133:32:53","nodeType":"YulFunctionCall","src":"6133:32:53"},"variableNames":[{"name":"value2","nativeSrc":"6123:6:53","nodeType":"YulIdentifier","src":"6123:6:53"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"5715:456:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5769:9:53","nodeType":"YulTypedName","src":"5769:9:53","type":""},{"name":"dataEnd","nativeSrc":"5780:7:53","nodeType":"YulTypedName","src":"5780:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5792:6:53","nodeType":"YulTypedName","src":"5792:6:53","type":""},{"name":"value1","nativeSrc":"5800:6:53","nodeType":"YulTypedName","src":"5800:6:53","type":""},{"name":"value2","nativeSrc":"5808:6:53","nodeType":"YulTypedName","src":"5808:6:53","type":""}],"src":"5715:456:53"},{"body":{"nativeSrc":"6224:115:53","nodeType":"YulBlock","src":"6224:115:53","statements":[{"nativeSrc":"6234:29:53","nodeType":"YulAssignment","src":"6234:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6256:6:53","nodeType":"YulIdentifier","src":"6256:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6243:12:53","nodeType":"YulIdentifier","src":"6243:12:53"},"nativeSrc":"6243:20:53","nodeType":"YulFunctionCall","src":"6243:20:53"},"variableNames":[{"name":"value","nativeSrc":"6234:5:53","nodeType":"YulIdentifier","src":"6234:5:53"}]},{"body":{"nativeSrc":"6317:16:53","nodeType":"YulBlock","src":"6317:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6326:1:53","nodeType":"YulLiteral","src":"6326:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6329:1:53","nodeType":"YulLiteral","src":"6329:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6319:6:53","nodeType":"YulIdentifier","src":"6319:6:53"},"nativeSrc":"6319:12:53","nodeType":"YulFunctionCall","src":"6319:12:53"},"nativeSrc":"6319:12:53","nodeType":"YulExpressionStatement","src":"6319:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6285:5:53","nodeType":"YulIdentifier","src":"6285:5:53"},{"arguments":[{"name":"value","nativeSrc":"6296:5:53","nodeType":"YulIdentifier","src":"6296:5:53"},{"kind":"number","nativeSrc":"6303:10:53","nodeType":"YulLiteral","src":"6303:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"6292:3:53","nodeType":"YulIdentifier","src":"6292:3:53"},"nativeSrc":"6292:22:53","nodeType":"YulFunctionCall","src":"6292:22:53"}],"functionName":{"name":"eq","nativeSrc":"6282:2:53","nodeType":"YulIdentifier","src":"6282:2:53"},"nativeSrc":"6282:33:53","nodeType":"YulFunctionCall","src":"6282:33:53"}],"functionName":{"name":"iszero","nativeSrc":"6275:6:53","nodeType":"YulIdentifier","src":"6275:6:53"},"nativeSrc":"6275:41:53","nodeType":"YulFunctionCall","src":"6275:41:53"},"nativeSrc":"6272:61:53","nodeType":"YulIf","src":"6272:61:53"}]},"name":"abi_decode_uint32","nativeSrc":"6176:163:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6203:6:53","nodeType":"YulTypedName","src":"6203:6:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6214:5:53","nodeType":"YulTypedName","src":"6214:5:53","type":""}],"src":"6176:163:53"},{"body":{"nativeSrc":"6430:166:53","nodeType":"YulBlock","src":"6430:166:53","statements":[{"body":{"nativeSrc":"6476:16:53","nodeType":"YulBlock","src":"6476:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6485:1:53","nodeType":"YulLiteral","src":"6485:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6488:1:53","nodeType":"YulLiteral","src":"6488:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6478:6:53","nodeType":"YulIdentifier","src":"6478:6:53"},"nativeSrc":"6478:12:53","nodeType":"YulFunctionCall","src":"6478:12:53"},"nativeSrc":"6478:12:53","nodeType":"YulExpressionStatement","src":"6478:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6451:7:53","nodeType":"YulIdentifier","src":"6451:7:53"},{"name":"headStart","nativeSrc":"6460:9:53","nodeType":"YulIdentifier","src":"6460:9:53"}],"functionName":{"name":"sub","nativeSrc":"6447:3:53","nodeType":"YulIdentifier","src":"6447:3:53"},"nativeSrc":"6447:23:53","nodeType":"YulFunctionCall","src":"6447:23:53"},{"kind":"number","nativeSrc":"6472:2:53","nodeType":"YulLiteral","src":"6472:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6443:3:53","nodeType":"YulIdentifier","src":"6443:3:53"},"nativeSrc":"6443:32:53","nodeType":"YulFunctionCall","src":"6443:32:53"},"nativeSrc":"6440:52:53","nodeType":"YulIf","src":"6440:52:53"},{"nativeSrc":"6501:38:53","nodeType":"YulAssignment","src":"6501:38:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6529:9:53","nodeType":"YulIdentifier","src":"6529:9:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"6511:17:53","nodeType":"YulIdentifier","src":"6511:17:53"},"nativeSrc":"6511:28:53","nodeType":"YulFunctionCall","src":"6511:28:53"},"variableNames":[{"name":"value0","nativeSrc":"6501:6:53","nodeType":"YulIdentifier","src":"6501:6:53"}]},{"nativeSrc":"6548:42:53","nodeType":"YulAssignment","src":"6548:42:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6575:9:53","nodeType":"YulIdentifier","src":"6575:9:53"},{"kind":"number","nativeSrc":"6586:2:53","nodeType":"YulLiteral","src":"6586:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6571:3:53","nodeType":"YulIdentifier","src":"6571:3:53"},"nativeSrc":"6571:18:53","nodeType":"YulFunctionCall","src":"6571:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"6558:12:53","nodeType":"YulIdentifier","src":"6558:12:53"},"nativeSrc":"6558:32:53","nodeType":"YulFunctionCall","src":"6558:32:53"},"variableNames":[{"name":"value1","nativeSrc":"6548:6:53","nodeType":"YulIdentifier","src":"6548:6:53"}]}]},"name":"abi_decode_tuple_t_uint32t_bytes32","nativeSrc":"6344:252:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6388:9:53","nodeType":"YulTypedName","src":"6388:9:53","type":""},{"name":"dataEnd","nativeSrc":"6399:7:53","nodeType":"YulTypedName","src":"6399:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6411:6:53","nodeType":"YulTypedName","src":"6411:6:53","type":""},{"name":"value1","nativeSrc":"6419:6:53","nodeType":"YulTypedName","src":"6419:6:53","type":""}],"src":"6344:252:53"},{"body":{"nativeSrc":"6649:111:53","nodeType":"YulBlock","src":"6649:111:53","statements":[{"nativeSrc":"6659:29:53","nodeType":"YulAssignment","src":"6659:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"6681:6:53","nodeType":"YulIdentifier","src":"6681:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"6668:12:53","nodeType":"YulIdentifier","src":"6668:12:53"},"nativeSrc":"6668:20:53","nodeType":"YulFunctionCall","src":"6668:20:53"},"variableNames":[{"name":"value","nativeSrc":"6659:5:53","nodeType":"YulIdentifier","src":"6659:5:53"}]},{"body":{"nativeSrc":"6738:16:53","nodeType":"YulBlock","src":"6738:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6747:1:53","nodeType":"YulLiteral","src":"6747:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6750:1:53","nodeType":"YulLiteral","src":"6750:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6740:6:53","nodeType":"YulIdentifier","src":"6740:6:53"},"nativeSrc":"6740:12:53","nodeType":"YulFunctionCall","src":"6740:12:53"},"nativeSrc":"6740:12:53","nodeType":"YulExpressionStatement","src":"6740:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6710:5:53","nodeType":"YulIdentifier","src":"6710:5:53"},{"arguments":[{"name":"value","nativeSrc":"6721:5:53","nodeType":"YulIdentifier","src":"6721:5:53"},{"kind":"number","nativeSrc":"6728:6:53","nodeType":"YulLiteral","src":"6728:6:53","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"6717:3:53","nodeType":"YulIdentifier","src":"6717:3:53"},"nativeSrc":"6717:18:53","nodeType":"YulFunctionCall","src":"6717:18:53"}],"functionName":{"name":"eq","nativeSrc":"6707:2:53","nodeType":"YulIdentifier","src":"6707:2:53"},"nativeSrc":"6707:29:53","nodeType":"YulFunctionCall","src":"6707:29:53"}],"functionName":{"name":"iszero","nativeSrc":"6700:6:53","nodeType":"YulIdentifier","src":"6700:6:53"},"nativeSrc":"6700:37:53","nodeType":"YulFunctionCall","src":"6700:37:53"},"nativeSrc":"6697:57:53","nodeType":"YulIf","src":"6697:57:53"}]},"name":"abi_decode_uint16","nativeSrc":"6601:159:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6628:6:53","nodeType":"YulTypedName","src":"6628:6:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6639:5:53","nodeType":"YulTypedName","src":"6639:5:53","type":""}],"src":"6601:159:53"},{"body":{"nativeSrc":"6850:171:53","nodeType":"YulBlock","src":"6850:171:53","statements":[{"body":{"nativeSrc":"6896:16:53","nodeType":"YulBlock","src":"6896:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6905:1:53","nodeType":"YulLiteral","src":"6905:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"6908:1:53","nodeType":"YulLiteral","src":"6908:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6898:6:53","nodeType":"YulIdentifier","src":"6898:6:53"},"nativeSrc":"6898:12:53","nodeType":"YulFunctionCall","src":"6898:12:53"},"nativeSrc":"6898:12:53","nodeType":"YulExpressionStatement","src":"6898:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6871:7:53","nodeType":"YulIdentifier","src":"6871:7:53"},{"name":"headStart","nativeSrc":"6880:9:53","nodeType":"YulIdentifier","src":"6880:9:53"}],"functionName":{"name":"sub","nativeSrc":"6867:3:53","nodeType":"YulIdentifier","src":"6867:3:53"},"nativeSrc":"6867:23:53","nodeType":"YulFunctionCall","src":"6867:23:53"},{"kind":"number","nativeSrc":"6892:2:53","nodeType":"YulLiteral","src":"6892:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6863:3:53","nodeType":"YulIdentifier","src":"6863:3:53"},"nativeSrc":"6863:32:53","nodeType":"YulFunctionCall","src":"6863:32:53"},"nativeSrc":"6860:52:53","nodeType":"YulIf","src":"6860:52:53"},{"nativeSrc":"6921:38:53","nodeType":"YulAssignment","src":"6921:38:53","value":{"arguments":[{"name":"headStart","nativeSrc":"6949:9:53","nodeType":"YulIdentifier","src":"6949:9:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"6931:17:53","nodeType":"YulIdentifier","src":"6931:17:53"},"nativeSrc":"6931:28:53","nodeType":"YulFunctionCall","src":"6931:28:53"},"variableNames":[{"name":"value0","nativeSrc":"6921:6:53","nodeType":"YulIdentifier","src":"6921:6:53"}]},{"nativeSrc":"6968:47:53","nodeType":"YulAssignment","src":"6968:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7000:9:53","nodeType":"YulIdentifier","src":"7000:9:53"},{"kind":"number","nativeSrc":"7011:2:53","nodeType":"YulLiteral","src":"7011:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6996:3:53","nodeType":"YulIdentifier","src":"6996:3:53"},"nativeSrc":"6996:18:53","nodeType":"YulFunctionCall","src":"6996:18:53"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"6978:17:53","nodeType":"YulIdentifier","src":"6978:17:53"},"nativeSrc":"6978:37:53","nodeType":"YulFunctionCall","src":"6978:37:53"},"variableNames":[{"name":"value1","nativeSrc":"6968:6:53","nodeType":"YulIdentifier","src":"6968:6:53"}]}]},"name":"abi_decode_tuple_t_uint32t_uint16","nativeSrc":"6765:256:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6808:9:53","nodeType":"YulTypedName","src":"6808:9:53","type":""},{"name":"dataEnd","nativeSrc":"6819:7:53","nodeType":"YulTypedName","src":"6819:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6831:6:53","nodeType":"YulTypedName","src":"6831:6:53","type":""},{"name":"value1","nativeSrc":"6839:6:53","nodeType":"YulTypedName","src":"6839:6:53","type":""}],"src":"6765:256:53"},{"body":{"nativeSrc":"7145:99:53","nodeType":"YulBlock","src":"7145:99:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7162:9:53","nodeType":"YulIdentifier","src":"7162:9:53"},{"kind":"number","nativeSrc":"7173:2:53","nodeType":"YulLiteral","src":"7173:2:53","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7155:6:53","nodeType":"YulIdentifier","src":"7155:6:53"},"nativeSrc":"7155:21:53","nodeType":"YulFunctionCall","src":"7155:21:53"},"nativeSrc":"7155:21:53","nodeType":"YulExpressionStatement","src":"7155:21:53"},{"nativeSrc":"7185:53:53","nodeType":"YulAssignment","src":"7185:53:53","value":{"arguments":[{"name":"value0","nativeSrc":"7211:6:53","nodeType":"YulIdentifier","src":"7211:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"7223:9:53","nodeType":"YulIdentifier","src":"7223:9:53"},{"kind":"number","nativeSrc":"7234:2:53","nodeType":"YulLiteral","src":"7234:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7219:3:53","nodeType":"YulIdentifier","src":"7219:3:53"},"nativeSrc":"7219:18:53","nodeType":"YulFunctionCall","src":"7219:18:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"7193:17:53","nodeType":"YulIdentifier","src":"7193:17:53"},"nativeSrc":"7193:45:53","nodeType":"YulFunctionCall","src":"7193:45:53"},"variableNames":[{"name":"tail","nativeSrc":"7185:4:53","nodeType":"YulIdentifier","src":"7185:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"7026:218:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7114:9:53","nodeType":"YulTypedName","src":"7114:9:53","type":""},{"name":"value0","nativeSrc":"7125:6:53","nodeType":"YulTypedName","src":"7125:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7136:4:53","nodeType":"YulTypedName","src":"7136:4:53","type":""}],"src":"7026:218:53"},{"body":{"nativeSrc":"7379:102:53","nodeType":"YulBlock","src":"7379:102:53","statements":[{"nativeSrc":"7389:26:53","nodeType":"YulAssignment","src":"7389:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7401:9:53","nodeType":"YulIdentifier","src":"7401:9:53"},{"kind":"number","nativeSrc":"7412:2:53","nodeType":"YulLiteral","src":"7412:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7397:3:53","nodeType":"YulIdentifier","src":"7397:3:53"},"nativeSrc":"7397:18:53","nodeType":"YulFunctionCall","src":"7397:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7389:4:53","nodeType":"YulIdentifier","src":"7389:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7431:9:53","nodeType":"YulIdentifier","src":"7431:9:53"},{"arguments":[{"name":"value0","nativeSrc":"7446:6:53","nodeType":"YulIdentifier","src":"7446:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7462:3:53","nodeType":"YulLiteral","src":"7462:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"7467:1:53","nodeType":"YulLiteral","src":"7467:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7458:3:53","nodeType":"YulIdentifier","src":"7458:3:53"},"nativeSrc":"7458:11:53","nodeType":"YulFunctionCall","src":"7458:11:53"},{"kind":"number","nativeSrc":"7471:1:53","nodeType":"YulLiteral","src":"7471:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7454:3:53","nodeType":"YulIdentifier","src":"7454:3:53"},"nativeSrc":"7454:19:53","nodeType":"YulFunctionCall","src":"7454:19:53"}],"functionName":{"name":"and","nativeSrc":"7442:3:53","nodeType":"YulIdentifier","src":"7442:3:53"},"nativeSrc":"7442:32:53","nodeType":"YulFunctionCall","src":"7442:32:53"}],"functionName":{"name":"mstore","nativeSrc":"7424:6:53","nodeType":"YulIdentifier","src":"7424:6:53"},"nativeSrc":"7424:51:53","nodeType":"YulFunctionCall","src":"7424:51:53"},"nativeSrc":"7424:51:53","nodeType":"YulExpressionStatement","src":"7424:51:53"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$2338__to_t_address__fromStack_reversed","nativeSrc":"7249:232:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7348:9:53","nodeType":"YulTypedName","src":"7348:9:53","type":""},{"name":"value0","nativeSrc":"7359:6:53","nodeType":"YulTypedName","src":"7359:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7370:4:53","nodeType":"YulTypedName","src":"7370:4:53","type":""}],"src":"7249:232:53"},{"body":{"nativeSrc":"7556:177:53","nodeType":"YulBlock","src":"7556:177:53","statements":[{"body":{"nativeSrc":"7602:16:53","nodeType":"YulBlock","src":"7602:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7611:1:53","nodeType":"YulLiteral","src":"7611:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"7614:1:53","nodeType":"YulLiteral","src":"7614:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7604:6:53","nodeType":"YulIdentifier","src":"7604:6:53"},"nativeSrc":"7604:12:53","nodeType":"YulFunctionCall","src":"7604:12:53"},"nativeSrc":"7604:12:53","nodeType":"YulExpressionStatement","src":"7604:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7577:7:53","nodeType":"YulIdentifier","src":"7577:7:53"},{"name":"headStart","nativeSrc":"7586:9:53","nodeType":"YulIdentifier","src":"7586:9:53"}],"functionName":{"name":"sub","nativeSrc":"7573:3:53","nodeType":"YulIdentifier","src":"7573:3:53"},"nativeSrc":"7573:23:53","nodeType":"YulFunctionCall","src":"7573:23:53"},{"kind":"number","nativeSrc":"7598:2:53","nodeType":"YulLiteral","src":"7598:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7569:3:53","nodeType":"YulIdentifier","src":"7569:3:53"},"nativeSrc":"7569:32:53","nodeType":"YulFunctionCall","src":"7569:32:53"},"nativeSrc":"7566:52:53","nodeType":"YulIf","src":"7566:52:53"},{"nativeSrc":"7627:36:53","nodeType":"YulVariableDeclaration","src":"7627:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7653:9:53","nodeType":"YulIdentifier","src":"7653:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"7640:12:53","nodeType":"YulIdentifier","src":"7640:12:53"},"nativeSrc":"7640:23:53","nodeType":"YulFunctionCall","src":"7640:23:53"},"variables":[{"name":"value","nativeSrc":"7631:5:53","nodeType":"YulTypedName","src":"7631:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7697:5:53","nodeType":"YulIdentifier","src":"7697:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7672:24:53","nodeType":"YulIdentifier","src":"7672:24:53"},"nativeSrc":"7672:31:53","nodeType":"YulFunctionCall","src":"7672:31:53"},"nativeSrc":"7672:31:53","nodeType":"YulExpressionStatement","src":"7672:31:53"},{"nativeSrc":"7712:15:53","nodeType":"YulAssignment","src":"7712:15:53","value":{"name":"value","nativeSrc":"7722:5:53","nodeType":"YulIdentifier","src":"7722:5:53"},"variableNames":[{"name":"value0","nativeSrc":"7712:6:53","nodeType":"YulIdentifier","src":"7712:6:53"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7486:247:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7522:9:53","nodeType":"YulTypedName","src":"7522:9:53","type":""},{"name":"dataEnd","nativeSrc":"7533:7:53","nodeType":"YulTypedName","src":"7533:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7545:6:53","nodeType":"YulTypedName","src":"7545:6:53","type":""}],"src":"7486:247:53"},{"body":{"nativeSrc":"7839:76:53","nodeType":"YulBlock","src":"7839:76:53","statements":[{"nativeSrc":"7849:26:53","nodeType":"YulAssignment","src":"7849:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"7861:9:53","nodeType":"YulIdentifier","src":"7861:9:53"},{"kind":"number","nativeSrc":"7872:2:53","nodeType":"YulLiteral","src":"7872:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7857:3:53","nodeType":"YulIdentifier","src":"7857:3:53"},"nativeSrc":"7857:18:53","nodeType":"YulFunctionCall","src":"7857:18:53"},"variableNames":[{"name":"tail","nativeSrc":"7849:4:53","nodeType":"YulIdentifier","src":"7849:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7891:9:53","nodeType":"YulIdentifier","src":"7891:9:53"},{"name":"value0","nativeSrc":"7902:6:53","nodeType":"YulIdentifier","src":"7902:6:53"}],"functionName":{"name":"mstore","nativeSrc":"7884:6:53","nodeType":"YulIdentifier","src":"7884:6:53"},"nativeSrc":"7884:25:53","nodeType":"YulFunctionCall","src":"7884:25:53"},"nativeSrc":"7884:25:53","nodeType":"YulExpressionStatement","src":"7884:25:53"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"7738:177:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7808:9:53","nodeType":"YulTypedName","src":"7808:9:53","type":""},{"name":"value0","nativeSrc":"7819:6:53","nodeType":"YulTypedName","src":"7819:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7830:4:53","nodeType":"YulTypedName","src":"7830:4:53","type":""}],"src":"7738:177:53"},{"body":{"nativeSrc":"8019:101:53","nodeType":"YulBlock","src":"8019:101:53","statements":[{"nativeSrc":"8029:26:53","nodeType":"YulAssignment","src":"8029:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8041:9:53","nodeType":"YulIdentifier","src":"8041:9:53"},{"kind":"number","nativeSrc":"8052:2:53","nodeType":"YulLiteral","src":"8052:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8037:3:53","nodeType":"YulIdentifier","src":"8037:3:53"},"nativeSrc":"8037:18:53","nodeType":"YulFunctionCall","src":"8037:18:53"},"variableNames":[{"name":"tail","nativeSrc":"8029:4:53","nodeType":"YulIdentifier","src":"8029:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8071:9:53","nodeType":"YulIdentifier","src":"8071:9:53"},{"arguments":[{"name":"value0","nativeSrc":"8086:6:53","nodeType":"YulIdentifier","src":"8086:6:53"},{"kind":"number","nativeSrc":"8094:18:53","nodeType":"YulLiteral","src":"8094:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8082:3:53","nodeType":"YulIdentifier","src":"8082:3:53"},"nativeSrc":"8082:31:53","nodeType":"YulFunctionCall","src":"8082:31:53"}],"functionName":{"name":"mstore","nativeSrc":"8064:6:53","nodeType":"YulIdentifier","src":"8064:6:53"},"nativeSrc":"8064:50:53","nodeType":"YulFunctionCall","src":"8064:50:53"},"nativeSrc":"8064:50:53","nodeType":"YulExpressionStatement","src":"8064:50:53"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"7920:200:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7988:9:53","nodeType":"YulTypedName","src":"7988:9:53","type":""},{"name":"value0","nativeSrc":"7999:6:53","nodeType":"YulTypedName","src":"7999:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8010:4:53","nodeType":"YulTypedName","src":"8010:4:53","type":""}],"src":"7920:200:53"},{"body":{"nativeSrc":"8274:521:53","nodeType":"YulBlock","src":"8274:521:53","statements":[{"body":{"nativeSrc":"8321:16:53","nodeType":"YulBlock","src":"8321:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8330:1:53","nodeType":"YulLiteral","src":"8330:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8333:1:53","nodeType":"YulLiteral","src":"8333:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8323:6:53","nodeType":"YulIdentifier","src":"8323:6:53"},"nativeSrc":"8323:12:53","nodeType":"YulFunctionCall","src":"8323:12:53"},"nativeSrc":"8323:12:53","nodeType":"YulExpressionStatement","src":"8323:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8295:7:53","nodeType":"YulIdentifier","src":"8295:7:53"},{"name":"headStart","nativeSrc":"8304:9:53","nodeType":"YulIdentifier","src":"8304:9:53"}],"functionName":{"name":"sub","nativeSrc":"8291:3:53","nodeType":"YulIdentifier","src":"8291:3:53"},"nativeSrc":"8291:23:53","nodeType":"YulFunctionCall","src":"8291:23:53"},{"kind":"number","nativeSrc":"8316:3:53","nodeType":"YulLiteral","src":"8316:3:53","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"8287:3:53","nodeType":"YulIdentifier","src":"8287:3:53"},"nativeSrc":"8287:33:53","nodeType":"YulFunctionCall","src":"8287:33:53"},"nativeSrc":"8284:53:53","nodeType":"YulIf","src":"8284:53:53"},{"nativeSrc":"8346:63:53","nodeType":"YulAssignment","src":"8346:63:53","value":{"arguments":[{"name":"headStart","nativeSrc":"8390:9:53","nodeType":"YulIdentifier","src":"8390:9:53"},{"name":"dataEnd","nativeSrc":"8401:7:53","nodeType":"YulIdentifier","src":"8401:7:53"}],"functionName":{"name":"abi_decode_struct_Origin_calldata","nativeSrc":"8356:33:53","nodeType":"YulIdentifier","src":"8356:33:53"},"nativeSrc":"8356:53:53","nodeType":"YulFunctionCall","src":"8356:53:53"},"variableNames":[{"name":"value0","nativeSrc":"8346:6:53","nodeType":"YulIdentifier","src":"8346:6:53"}]},{"nativeSrc":"8418:46:53","nodeType":"YulVariableDeclaration","src":"8418:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8449:9:53","nodeType":"YulIdentifier","src":"8449:9:53"},{"kind":"number","nativeSrc":"8460:2:53","nodeType":"YulLiteral","src":"8460:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8445:3:53","nodeType":"YulIdentifier","src":"8445:3:53"},"nativeSrc":"8445:18:53","nodeType":"YulFunctionCall","src":"8445:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"8432:12:53","nodeType":"YulIdentifier","src":"8432:12:53"},"nativeSrc":"8432:32:53","nodeType":"YulFunctionCall","src":"8432:32:53"},"variables":[{"name":"offset","nativeSrc":"8422:6:53","nodeType":"YulTypedName","src":"8422:6:53","type":""}]},{"body":{"nativeSrc":"8507:16:53","nodeType":"YulBlock","src":"8507:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8516:1:53","nodeType":"YulLiteral","src":"8516:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8519:1:53","nodeType":"YulLiteral","src":"8519:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8509:6:53","nodeType":"YulIdentifier","src":"8509:6:53"},"nativeSrc":"8509:12:53","nodeType":"YulFunctionCall","src":"8509:12:53"},"nativeSrc":"8509:12:53","nodeType":"YulExpressionStatement","src":"8509:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8479:6:53","nodeType":"YulIdentifier","src":"8479:6:53"},{"kind":"number","nativeSrc":"8487:18:53","nodeType":"YulLiteral","src":"8487:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8476:2:53","nodeType":"YulIdentifier","src":"8476:2:53"},"nativeSrc":"8476:30:53","nodeType":"YulFunctionCall","src":"8476:30:53"},"nativeSrc":"8473:50:53","nodeType":"YulIf","src":"8473:50:53"},{"nativeSrc":"8532:84:53","nodeType":"YulVariableDeclaration","src":"8532:84:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8588:9:53","nodeType":"YulIdentifier","src":"8588:9:53"},{"name":"offset","nativeSrc":"8599:6:53","nodeType":"YulIdentifier","src":"8599:6:53"}],"functionName":{"name":"add","nativeSrc":"8584:3:53","nodeType":"YulIdentifier","src":"8584:3:53"},"nativeSrc":"8584:22:53","nodeType":"YulFunctionCall","src":"8584:22:53"},{"name":"dataEnd","nativeSrc":"8608:7:53","nodeType":"YulIdentifier","src":"8608:7:53"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"8558:25:53","nodeType":"YulIdentifier","src":"8558:25:53"},"nativeSrc":"8558:58:53","nodeType":"YulFunctionCall","src":"8558:58:53"},"variables":[{"name":"value1_1","nativeSrc":"8536:8:53","nodeType":"YulTypedName","src":"8536:8:53","type":""},{"name":"value2_1","nativeSrc":"8546:8:53","nodeType":"YulTypedName","src":"8546:8:53","type":""}]},{"nativeSrc":"8625:18:53","nodeType":"YulAssignment","src":"8625:18:53","value":{"name":"value1_1","nativeSrc":"8635:8:53","nodeType":"YulIdentifier","src":"8635:8:53"},"variableNames":[{"name":"value1","nativeSrc":"8625:6:53","nodeType":"YulIdentifier","src":"8625:6:53"}]},{"nativeSrc":"8652:18:53","nodeType":"YulAssignment","src":"8652:18:53","value":{"name":"value2_1","nativeSrc":"8662:8:53","nodeType":"YulIdentifier","src":"8662:8:53"},"variableNames":[{"name":"value2","nativeSrc":"8652:6:53","nodeType":"YulIdentifier","src":"8652:6:53"}]},{"nativeSrc":"8679:46:53","nodeType":"YulVariableDeclaration","src":"8679:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8709:9:53","nodeType":"YulIdentifier","src":"8709:9:53"},{"kind":"number","nativeSrc":"8720:3:53","nodeType":"YulLiteral","src":"8720:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8705:3:53","nodeType":"YulIdentifier","src":"8705:3:53"},"nativeSrc":"8705:19:53","nodeType":"YulFunctionCall","src":"8705:19:53"}],"functionName":{"name":"calldataload","nativeSrc":"8692:12:53","nodeType":"YulIdentifier","src":"8692:12:53"},"nativeSrc":"8692:33:53","nodeType":"YulFunctionCall","src":"8692:33:53"},"variables":[{"name":"value","nativeSrc":"8683:5:53","nodeType":"YulTypedName","src":"8683:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8759:5:53","nodeType":"YulIdentifier","src":"8759:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8734:24:53","nodeType":"YulIdentifier","src":"8734:24:53"},"nativeSrc":"8734:31:53","nodeType":"YulFunctionCall","src":"8734:31:53"},"nativeSrc":"8734:31:53","nodeType":"YulExpressionStatement","src":"8734:31:53"},{"nativeSrc":"8774:15:53","nodeType":"YulAssignment","src":"8774:15:53","value":{"name":"value","nativeSrc":"8784:5:53","nodeType":"YulIdentifier","src":"8784:5:53"},"variableNames":[{"name":"value3","nativeSrc":"8774:6:53","nodeType":"YulIdentifier","src":"8774:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes_calldata_ptrt_address","nativeSrc":"8125:670:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8216:9:53","nodeType":"YulTypedName","src":"8216:9:53","type":""},{"name":"dataEnd","nativeSrc":"8227:7:53","nodeType":"YulTypedName","src":"8227:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8239:6:53","nodeType":"YulTypedName","src":"8239:6:53","type":""},{"name":"value1","nativeSrc":"8247:6:53","nodeType":"YulTypedName","src":"8247:6:53","type":""},{"name":"value2","nativeSrc":"8255:6:53","nodeType":"YulTypedName","src":"8255:6:53","type":""},{"name":"value3","nativeSrc":"8263:6:53","nodeType":"YulTypedName","src":"8263:6:53","type":""}],"src":"8125:670:53"},{"body":{"nativeSrc":"8842:76:53","nodeType":"YulBlock","src":"8842:76:53","statements":[{"body":{"nativeSrc":"8896:16:53","nodeType":"YulBlock","src":"8896:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8905:1:53","nodeType":"YulLiteral","src":"8905:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"8908:1:53","nodeType":"YulLiteral","src":"8908:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8898:6:53","nodeType":"YulIdentifier","src":"8898:6:53"},"nativeSrc":"8898:12:53","nodeType":"YulFunctionCall","src":"8898:12:53"},"nativeSrc":"8898:12:53","nodeType":"YulExpressionStatement","src":"8898:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8865:5:53","nodeType":"YulIdentifier","src":"8865:5:53"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8886:5:53","nodeType":"YulIdentifier","src":"8886:5:53"}],"functionName":{"name":"iszero","nativeSrc":"8879:6:53","nodeType":"YulIdentifier","src":"8879:6:53"},"nativeSrc":"8879:13:53","nodeType":"YulFunctionCall","src":"8879:13:53"}],"functionName":{"name":"iszero","nativeSrc":"8872:6:53","nodeType":"YulIdentifier","src":"8872:6:53"},"nativeSrc":"8872:21:53","nodeType":"YulFunctionCall","src":"8872:21:53"}],"functionName":{"name":"eq","nativeSrc":"8862:2:53","nodeType":"YulIdentifier","src":"8862:2:53"},"nativeSrc":"8862:32:53","nodeType":"YulFunctionCall","src":"8862:32:53"}],"functionName":{"name":"iszero","nativeSrc":"8855:6:53","nodeType":"YulIdentifier","src":"8855:6:53"},"nativeSrc":"8855:40:53","nodeType":"YulFunctionCall","src":"8855:40:53"},"nativeSrc":"8852:60:53","nodeType":"YulIf","src":"8852:60:53"}]},"name":"validator_revert_bool","nativeSrc":"8800:118:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8831:5:53","nodeType":"YulTypedName","src":"8831:5:53","type":""}],"src":"8800:118:53"},{"body":{"nativeSrc":"9007:298:53","nodeType":"YulBlock","src":"9007:298:53","statements":[{"body":{"nativeSrc":"9053:16:53","nodeType":"YulBlock","src":"9053:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9062:1:53","nodeType":"YulLiteral","src":"9062:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9065:1:53","nodeType":"YulLiteral","src":"9065:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9055:6:53","nodeType":"YulIdentifier","src":"9055:6:53"},"nativeSrc":"9055:12:53","nodeType":"YulFunctionCall","src":"9055:12:53"},"nativeSrc":"9055:12:53","nodeType":"YulExpressionStatement","src":"9055:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9028:7:53","nodeType":"YulIdentifier","src":"9028:7:53"},{"name":"headStart","nativeSrc":"9037:9:53","nodeType":"YulIdentifier","src":"9037:9:53"}],"functionName":{"name":"sub","nativeSrc":"9024:3:53","nodeType":"YulIdentifier","src":"9024:3:53"},"nativeSrc":"9024:23:53","nodeType":"YulFunctionCall","src":"9024:23:53"},{"kind":"number","nativeSrc":"9049:2:53","nodeType":"YulLiteral","src":"9049:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9020:3:53","nodeType":"YulIdentifier","src":"9020:3:53"},"nativeSrc":"9020:32:53","nodeType":"YulFunctionCall","src":"9020:32:53"},"nativeSrc":"9017:52:53","nodeType":"YulIf","src":"9017:52:53"},{"nativeSrc":"9078:36:53","nodeType":"YulVariableDeclaration","src":"9078:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9104:9:53","nodeType":"YulIdentifier","src":"9104:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"9091:12:53","nodeType":"YulIdentifier","src":"9091:12:53"},"nativeSrc":"9091:23:53","nodeType":"YulFunctionCall","src":"9091:23:53"},"variables":[{"name":"value","nativeSrc":"9082:5:53","nodeType":"YulTypedName","src":"9082:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9148:5:53","nodeType":"YulIdentifier","src":"9148:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9123:24:53","nodeType":"YulIdentifier","src":"9123:24:53"},"nativeSrc":"9123:31:53","nodeType":"YulFunctionCall","src":"9123:31:53"},"nativeSrc":"9123:31:53","nodeType":"YulExpressionStatement","src":"9123:31:53"},{"nativeSrc":"9163:15:53","nodeType":"YulAssignment","src":"9163:15:53","value":{"name":"value","nativeSrc":"9173:5:53","nodeType":"YulIdentifier","src":"9173:5:53"},"variableNames":[{"name":"value0","nativeSrc":"9163:6:53","nodeType":"YulIdentifier","src":"9163:6:53"}]},{"nativeSrc":"9187:47:53","nodeType":"YulVariableDeclaration","src":"9187:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9219:9:53","nodeType":"YulIdentifier","src":"9219:9:53"},{"kind":"number","nativeSrc":"9230:2:53","nodeType":"YulLiteral","src":"9230:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9215:3:53","nodeType":"YulIdentifier","src":"9215:3:53"},"nativeSrc":"9215:18:53","nodeType":"YulFunctionCall","src":"9215:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"9202:12:53","nodeType":"YulIdentifier","src":"9202:12:53"},"nativeSrc":"9202:32:53","nodeType":"YulFunctionCall","src":"9202:32:53"},"variables":[{"name":"value_1","nativeSrc":"9191:7:53","nodeType":"YulTypedName","src":"9191:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"9265:7:53","nodeType":"YulIdentifier","src":"9265:7:53"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"9243:21:53","nodeType":"YulIdentifier","src":"9243:21:53"},"nativeSrc":"9243:30:53","nodeType":"YulFunctionCall","src":"9243:30:53"},"nativeSrc":"9243:30:53","nodeType":"YulExpressionStatement","src":"9243:30:53"},{"nativeSrc":"9282:17:53","nodeType":"YulAssignment","src":"9282:17:53","value":{"name":"value_1","nativeSrc":"9292:7:53","nodeType":"YulIdentifier","src":"9292:7:53"},"variableNames":[{"name":"value1","nativeSrc":"9282:6:53","nodeType":"YulIdentifier","src":"9282:6:53"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"8923:382:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8965:9:53","nodeType":"YulTypedName","src":"8965:9:53","type":""},{"name":"dataEnd","nativeSrc":"8976:7:53","nodeType":"YulTypedName","src":"8976:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8988:6:53","nodeType":"YulTypedName","src":"8988:6:53","type":""},{"name":"value1","nativeSrc":"8996:6:53","nodeType":"YulTypedName","src":"8996:6:53","type":""}],"src":"8923:382:53"},{"body":{"nativeSrc":"9435:171:53","nodeType":"YulBlock","src":"9435:171:53","statements":[{"nativeSrc":"9445:26:53","nodeType":"YulAssignment","src":"9445:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"9457:9:53","nodeType":"YulIdentifier","src":"9457:9:53"},{"kind":"number","nativeSrc":"9468:2:53","nodeType":"YulLiteral","src":"9468:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9453:3:53","nodeType":"YulIdentifier","src":"9453:3:53"},"nativeSrc":"9453:18:53","nodeType":"YulFunctionCall","src":"9453:18:53"},"variableNames":[{"name":"tail","nativeSrc":"9445:4:53","nodeType":"YulIdentifier","src":"9445:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9487:9:53","nodeType":"YulIdentifier","src":"9487:9:53"},{"arguments":[{"name":"value0","nativeSrc":"9502:6:53","nodeType":"YulIdentifier","src":"9502:6:53"},{"arguments":[{"kind":"number","nativeSrc":"9514:3:53","nodeType":"YulLiteral","src":"9514:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"9519:10:53","nodeType":"YulLiteral","src":"9519:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"9510:3:53","nodeType":"YulIdentifier","src":"9510:3:53"},"nativeSrc":"9510:20:53","nodeType":"YulFunctionCall","src":"9510:20:53"}],"functionName":{"name":"and","nativeSrc":"9498:3:53","nodeType":"YulIdentifier","src":"9498:3:53"},"nativeSrc":"9498:33:53","nodeType":"YulFunctionCall","src":"9498:33:53"}],"functionName":{"name":"mstore","nativeSrc":"9480:6:53","nodeType":"YulIdentifier","src":"9480:6:53"},"nativeSrc":"9480:52:53","nodeType":"YulFunctionCall","src":"9480:52:53"},"nativeSrc":"9480:52:53","nodeType":"YulExpressionStatement","src":"9480:52:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9552:9:53","nodeType":"YulIdentifier","src":"9552:9:53"},{"kind":"number","nativeSrc":"9563:2:53","nodeType":"YulLiteral","src":"9563:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9548:3:53","nodeType":"YulIdentifier","src":"9548:3:53"},"nativeSrc":"9548:18:53","nodeType":"YulFunctionCall","src":"9548:18:53"},{"arguments":[{"name":"value1","nativeSrc":"9572:6:53","nodeType":"YulIdentifier","src":"9572:6:53"},{"kind":"number","nativeSrc":"9580:18:53","nodeType":"YulLiteral","src":"9580:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"9568:3:53","nodeType":"YulIdentifier","src":"9568:3:53"},"nativeSrc":"9568:31:53","nodeType":"YulFunctionCall","src":"9568:31:53"}],"functionName":{"name":"mstore","nativeSrc":"9541:6:53","nodeType":"YulIdentifier","src":"9541:6:53"},"nativeSrc":"9541:59:53","nodeType":"YulFunctionCall","src":"9541:59:53"},"nativeSrc":"9541:59:53","nodeType":"YulExpressionStatement","src":"9541:59:53"}]},"name":"abi_encode_tuple_t_bytes4_t_uint64__to_t_bytes4_t_uint64__fromStack_reversed","nativeSrc":"9310:296:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9396:9:53","nodeType":"YulTypedName","src":"9396:9:53","type":""},{"name":"value1","nativeSrc":"9407:6:53","nodeType":"YulTypedName","src":"9407:6:53","type":""},{"name":"value0","nativeSrc":"9415:6:53","nodeType":"YulTypedName","src":"9415:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9426:4:53","nodeType":"YulTypedName","src":"9426:4:53","type":""}],"src":"9310:296:53"},{"body":{"nativeSrc":"9643:95:53","nodeType":"YulBlock","src":"9643:95:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9660:1:53","nodeType":"YulLiteral","src":"9660:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"9667:3:53","nodeType":"YulLiteral","src":"9667:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"9672:10:53","nodeType":"YulLiteral","src":"9672:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"9663:3:53","nodeType":"YulIdentifier","src":"9663:3:53"},"nativeSrc":"9663:20:53","nodeType":"YulFunctionCall","src":"9663:20:53"}],"functionName":{"name":"mstore","nativeSrc":"9653:6:53","nodeType":"YulIdentifier","src":"9653:6:53"},"nativeSrc":"9653:31:53","nodeType":"YulFunctionCall","src":"9653:31:53"},"nativeSrc":"9653:31:53","nodeType":"YulExpressionStatement","src":"9653:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9700:1:53","nodeType":"YulLiteral","src":"9700:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"9703:4:53","nodeType":"YulLiteral","src":"9703:4:53","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"9693:6:53","nodeType":"YulIdentifier","src":"9693:6:53"},"nativeSrc":"9693:15:53","nodeType":"YulFunctionCall","src":"9693:15:53"},"nativeSrc":"9693:15:53","nodeType":"YulExpressionStatement","src":"9693:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9724:1:53","nodeType":"YulLiteral","src":"9724:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"9727:4:53","nodeType":"YulLiteral","src":"9727:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9717:6:53","nodeType":"YulIdentifier","src":"9717:6:53"},"nativeSrc":"9717:15:53","nodeType":"YulFunctionCall","src":"9717:15:53"},"nativeSrc":"9717:15:53","nodeType":"YulExpressionStatement","src":"9717:15:53"}]},"name":"panic_error_0x41","nativeSrc":"9611:127:53","nodeType":"YulFunctionDefinition","src":"9611:127:53"},{"body":{"nativeSrc":"9789:205:53","nodeType":"YulBlock","src":"9789:205:53","statements":[{"nativeSrc":"9799:19:53","nodeType":"YulAssignment","src":"9799:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"9815:2:53","nodeType":"YulLiteral","src":"9815:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"9809:5:53","nodeType":"YulIdentifier","src":"9809:5:53"},"nativeSrc":"9809:9:53","nodeType":"YulFunctionCall","src":"9809:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"9799:6:53","nodeType":"YulIdentifier","src":"9799:6:53"}]},{"nativeSrc":"9827:33:53","nodeType":"YulVariableDeclaration","src":"9827:33:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"9849:6:53","nodeType":"YulIdentifier","src":"9849:6:53"},{"kind":"number","nativeSrc":"9857:2:53","nodeType":"YulLiteral","src":"9857:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9845:3:53","nodeType":"YulIdentifier","src":"9845:3:53"},"nativeSrc":"9845:15:53","nodeType":"YulFunctionCall","src":"9845:15:53"},"variables":[{"name":"newFreePtr","nativeSrc":"9831:10:53","nodeType":"YulTypedName","src":"9831:10:53","type":""}]},{"body":{"nativeSrc":"9935:22:53","nodeType":"YulBlock","src":"9935:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9937:16:53","nodeType":"YulIdentifier","src":"9937:16:53"},"nativeSrc":"9937:18:53","nodeType":"YulFunctionCall","src":"9937:18:53"},"nativeSrc":"9937:18:53","nodeType":"YulExpressionStatement","src":"9937:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"9878:10:53","nodeType":"YulIdentifier","src":"9878:10:53"},{"kind":"number","nativeSrc":"9890:18:53","nodeType":"YulLiteral","src":"9890:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9875:2:53","nodeType":"YulIdentifier","src":"9875:2:53"},"nativeSrc":"9875:34:53","nodeType":"YulFunctionCall","src":"9875:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"9914:10:53","nodeType":"YulIdentifier","src":"9914:10:53"},{"name":"memPtr","nativeSrc":"9926:6:53","nodeType":"YulIdentifier","src":"9926:6:53"}],"functionName":{"name":"lt","nativeSrc":"9911:2:53","nodeType":"YulIdentifier","src":"9911:2:53"},"nativeSrc":"9911:22:53","nodeType":"YulFunctionCall","src":"9911:22:53"}],"functionName":{"name":"or","nativeSrc":"9872:2:53","nodeType":"YulIdentifier","src":"9872:2:53"},"nativeSrc":"9872:62:53","nodeType":"YulFunctionCall","src":"9872:62:53"},"nativeSrc":"9869:88:53","nodeType":"YulIf","src":"9869:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9973:2:53","nodeType":"YulLiteral","src":"9973:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"9977:10:53","nodeType":"YulIdentifier","src":"9977:10:53"}],"functionName":{"name":"mstore","nativeSrc":"9966:6:53","nodeType":"YulIdentifier","src":"9966:6:53"},"nativeSrc":"9966:22:53","nodeType":"YulFunctionCall","src":"9966:22:53"},"nativeSrc":"9966:22:53","nodeType":"YulExpressionStatement","src":"9966:22:53"}]},"name":"allocate_memory_3822","nativeSrc":"9743:251:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"9778:6:53","nodeType":"YulTypedName","src":"9778:6:53","type":""}],"src":"9743:251:53"},{"body":{"nativeSrc":"10045:207:53","nodeType":"YulBlock","src":"10045:207:53","statements":[{"nativeSrc":"10055:19:53","nodeType":"YulAssignment","src":"10055:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"10071:2:53","nodeType":"YulLiteral","src":"10071:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"10065:5:53","nodeType":"YulIdentifier","src":"10065:5:53"},"nativeSrc":"10065:9:53","nodeType":"YulFunctionCall","src":"10065:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"10055:6:53","nodeType":"YulIdentifier","src":"10055:6:53"}]},{"nativeSrc":"10083:35:53","nodeType":"YulVariableDeclaration","src":"10083:35:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"10105:6:53","nodeType":"YulIdentifier","src":"10105:6:53"},{"kind":"number","nativeSrc":"10113:4:53","nodeType":"YulLiteral","src":"10113:4:53","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10101:3:53","nodeType":"YulIdentifier","src":"10101:3:53"},"nativeSrc":"10101:17:53","nodeType":"YulFunctionCall","src":"10101:17:53"},"variables":[{"name":"newFreePtr","nativeSrc":"10087:10:53","nodeType":"YulTypedName","src":"10087:10:53","type":""}]},{"body":{"nativeSrc":"10193:22:53","nodeType":"YulBlock","src":"10193:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10195:16:53","nodeType":"YulIdentifier","src":"10195:16:53"},"nativeSrc":"10195:18:53","nodeType":"YulFunctionCall","src":"10195:18:53"},"nativeSrc":"10195:18:53","nodeType":"YulExpressionStatement","src":"10195:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10136:10:53","nodeType":"YulIdentifier","src":"10136:10:53"},{"kind":"number","nativeSrc":"10148:18:53","nodeType":"YulLiteral","src":"10148:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10133:2:53","nodeType":"YulIdentifier","src":"10133:2:53"},"nativeSrc":"10133:34:53","nodeType":"YulFunctionCall","src":"10133:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10172:10:53","nodeType":"YulIdentifier","src":"10172:10:53"},{"name":"memPtr","nativeSrc":"10184:6:53","nodeType":"YulIdentifier","src":"10184:6:53"}],"functionName":{"name":"lt","nativeSrc":"10169:2:53","nodeType":"YulIdentifier","src":"10169:2:53"},"nativeSrc":"10169:22:53","nodeType":"YulFunctionCall","src":"10169:22:53"}],"functionName":{"name":"or","nativeSrc":"10130:2:53","nodeType":"YulIdentifier","src":"10130:2:53"},"nativeSrc":"10130:62:53","nodeType":"YulFunctionCall","src":"10130:62:53"},"nativeSrc":"10127:88:53","nodeType":"YulIf","src":"10127:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10231:2:53","nodeType":"YulLiteral","src":"10231:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10235:10:53","nodeType":"YulIdentifier","src":"10235:10:53"}],"functionName":{"name":"mstore","nativeSrc":"10224:6:53","nodeType":"YulIdentifier","src":"10224:6:53"},"nativeSrc":"10224:22:53","nodeType":"YulFunctionCall","src":"10224:22:53"},"nativeSrc":"10224:22:53","nodeType":"YulExpressionStatement","src":"10224:22:53"}]},"name":"allocate_memory_3825","nativeSrc":"9999:253:53","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"10034:6:53","nodeType":"YulTypedName","src":"10034:6:53","type":""}],"src":"9999:253:53"},{"body":{"nativeSrc":"10302:230:53","nodeType":"YulBlock","src":"10302:230:53","statements":[{"nativeSrc":"10312:19:53","nodeType":"YulAssignment","src":"10312:19:53","value":{"arguments":[{"kind":"number","nativeSrc":"10328:2:53","nodeType":"YulLiteral","src":"10328:2:53","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"10322:5:53","nodeType":"YulIdentifier","src":"10322:5:53"},"nativeSrc":"10322:9:53","nodeType":"YulFunctionCall","src":"10322:9:53"},"variableNames":[{"name":"memPtr","nativeSrc":"10312:6:53","nodeType":"YulIdentifier","src":"10312:6:53"}]},{"nativeSrc":"10340:58:53","nodeType":"YulVariableDeclaration","src":"10340:58:53","value":{"arguments":[{"name":"memPtr","nativeSrc":"10362:6:53","nodeType":"YulIdentifier","src":"10362:6:53"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"10378:4:53","nodeType":"YulIdentifier","src":"10378:4:53"},{"kind":"number","nativeSrc":"10384:2:53","nodeType":"YulLiteral","src":"10384:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10374:3:53","nodeType":"YulIdentifier","src":"10374:3:53"},"nativeSrc":"10374:13:53","nodeType":"YulFunctionCall","src":"10374:13:53"},{"arguments":[{"kind":"number","nativeSrc":"10393:2:53","nodeType":"YulLiteral","src":"10393:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10389:3:53","nodeType":"YulIdentifier","src":"10389:3:53"},"nativeSrc":"10389:7:53","nodeType":"YulFunctionCall","src":"10389:7:53"}],"functionName":{"name":"and","nativeSrc":"10370:3:53","nodeType":"YulIdentifier","src":"10370:3:53"},"nativeSrc":"10370:27:53","nodeType":"YulFunctionCall","src":"10370:27:53"}],"functionName":{"name":"add","nativeSrc":"10358:3:53","nodeType":"YulIdentifier","src":"10358:3:53"},"nativeSrc":"10358:40:53","nodeType":"YulFunctionCall","src":"10358:40:53"},"variables":[{"name":"newFreePtr","nativeSrc":"10344:10:53","nodeType":"YulTypedName","src":"10344:10:53","type":""}]},{"body":{"nativeSrc":"10473:22:53","nodeType":"YulBlock","src":"10473:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10475:16:53","nodeType":"YulIdentifier","src":"10475:16:53"},"nativeSrc":"10475:18:53","nodeType":"YulFunctionCall","src":"10475:18:53"},"nativeSrc":"10475:18:53","nodeType":"YulExpressionStatement","src":"10475:18:53"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10416:10:53","nodeType":"YulIdentifier","src":"10416:10:53"},{"kind":"number","nativeSrc":"10428:18:53","nodeType":"YulLiteral","src":"10428:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10413:2:53","nodeType":"YulIdentifier","src":"10413:2:53"},"nativeSrc":"10413:34:53","nodeType":"YulFunctionCall","src":"10413:34:53"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10452:10:53","nodeType":"YulIdentifier","src":"10452:10:53"},{"name":"memPtr","nativeSrc":"10464:6:53","nodeType":"YulIdentifier","src":"10464:6:53"}],"functionName":{"name":"lt","nativeSrc":"10449:2:53","nodeType":"YulIdentifier","src":"10449:2:53"},"nativeSrc":"10449:22:53","nodeType":"YulFunctionCall","src":"10449:22:53"}],"functionName":{"name":"or","nativeSrc":"10410:2:53","nodeType":"YulIdentifier","src":"10410:2:53"},"nativeSrc":"10410:62:53","nodeType":"YulFunctionCall","src":"10410:62:53"},"nativeSrc":"10407:88:53","nodeType":"YulIf","src":"10407:88:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10511:2:53","nodeType":"YulLiteral","src":"10511:2:53","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10515:10:53","nodeType":"YulIdentifier","src":"10515:10:53"}],"functionName":{"name":"mstore","nativeSrc":"10504:6:53","nodeType":"YulIdentifier","src":"10504:6:53"},"nativeSrc":"10504:22:53","nodeType":"YulFunctionCall","src":"10504:22:53"},"nativeSrc":"10504:22:53","nodeType":"YulExpressionStatement","src":"10504:22:53"}]},"name":"allocate_memory","nativeSrc":"10257:275:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"10282:4:53","nodeType":"YulTypedName","src":"10282:4:53","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"10291:6:53","nodeType":"YulTypedName","src":"10291:6:53","type":""}],"src":"10257:275:53"},{"body":{"nativeSrc":"10594:129:53","nodeType":"YulBlock","src":"10594:129:53","statements":[{"body":{"nativeSrc":"10638:22:53","nodeType":"YulBlock","src":"10638:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10640:16:53","nodeType":"YulIdentifier","src":"10640:16:53"},"nativeSrc":"10640:18:53","nodeType":"YulFunctionCall","src":"10640:18:53"},"nativeSrc":"10640:18:53","nodeType":"YulExpressionStatement","src":"10640:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10610:6:53","nodeType":"YulIdentifier","src":"10610:6:53"},{"kind":"number","nativeSrc":"10618:18:53","nodeType":"YulLiteral","src":"10618:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10607:2:53","nodeType":"YulIdentifier","src":"10607:2:53"},"nativeSrc":"10607:30:53","nodeType":"YulFunctionCall","src":"10607:30:53"},"nativeSrc":"10604:56:53","nodeType":"YulIf","src":"10604:56:53"},{"nativeSrc":"10669:48:53","nodeType":"YulAssignment","src":"10669:48:53","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"10689:6:53","nodeType":"YulIdentifier","src":"10689:6:53"},{"kind":"number","nativeSrc":"10697:2:53","nodeType":"YulLiteral","src":"10697:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10685:3:53","nodeType":"YulIdentifier","src":"10685:3:53"},"nativeSrc":"10685:15:53","nodeType":"YulFunctionCall","src":"10685:15:53"},{"arguments":[{"kind":"number","nativeSrc":"10706:2:53","nodeType":"YulLiteral","src":"10706:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10702:3:53","nodeType":"YulIdentifier","src":"10702:3:53"},"nativeSrc":"10702:7:53","nodeType":"YulFunctionCall","src":"10702:7:53"}],"functionName":{"name":"and","nativeSrc":"10681:3:53","nodeType":"YulIdentifier","src":"10681:3:53"},"nativeSrc":"10681:29:53","nodeType":"YulFunctionCall","src":"10681:29:53"},{"kind":"number","nativeSrc":"10712:4:53","nodeType":"YulLiteral","src":"10712:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10677:3:53","nodeType":"YulIdentifier","src":"10677:3:53"},"nativeSrc":"10677:40:53","nodeType":"YulFunctionCall","src":"10677:40:53"},"variableNames":[{"name":"size","nativeSrc":"10669:4:53","nodeType":"YulIdentifier","src":"10669:4:53"}]}]},"name":"array_allocation_size_bytes","nativeSrc":"10537:186:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10574:6:53","nodeType":"YulTypedName","src":"10574:6:53","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10585:4:53","nodeType":"YulTypedName","src":"10585:4:53","type":""}],"src":"10537:186:53"},{"body":{"nativeSrc":"10780:410:53","nodeType":"YulBlock","src":"10780:410:53","statements":[{"body":{"nativeSrc":"10829:16:53","nodeType":"YulBlock","src":"10829:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10838:1:53","nodeType":"YulLiteral","src":"10838:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"10841:1:53","nodeType":"YulLiteral","src":"10841:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10831:6:53","nodeType":"YulIdentifier","src":"10831:6:53"},"nativeSrc":"10831:12:53","nodeType":"YulFunctionCall","src":"10831:12:53"},"nativeSrc":"10831:12:53","nodeType":"YulExpressionStatement","src":"10831:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10808:6:53","nodeType":"YulIdentifier","src":"10808:6:53"},{"kind":"number","nativeSrc":"10816:4:53","nodeType":"YulLiteral","src":"10816:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10804:3:53","nodeType":"YulIdentifier","src":"10804:3:53"},"nativeSrc":"10804:17:53","nodeType":"YulFunctionCall","src":"10804:17:53"},{"name":"end","nativeSrc":"10823:3:53","nodeType":"YulIdentifier","src":"10823:3:53"}],"functionName":{"name":"slt","nativeSrc":"10800:3:53","nodeType":"YulIdentifier","src":"10800:3:53"},"nativeSrc":"10800:27:53","nodeType":"YulFunctionCall","src":"10800:27:53"}],"functionName":{"name":"iszero","nativeSrc":"10793:6:53","nodeType":"YulIdentifier","src":"10793:6:53"},"nativeSrc":"10793:35:53","nodeType":"YulFunctionCall","src":"10793:35:53"},"nativeSrc":"10790:55:53","nodeType":"YulIf","src":"10790:55:53"},{"nativeSrc":"10854:30:53","nodeType":"YulVariableDeclaration","src":"10854:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"10877:6:53","nodeType":"YulIdentifier","src":"10877:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"10864:12:53","nodeType":"YulIdentifier","src":"10864:12:53"},"nativeSrc":"10864:20:53","nodeType":"YulFunctionCall","src":"10864:20:53"},"variables":[{"name":"_1","nativeSrc":"10858:2:53","nodeType":"YulTypedName","src":"10858:2:53","type":""}]},{"nativeSrc":"10893:63:53","nodeType":"YulVariableDeclaration","src":"10893:63:53","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"10952:2:53","nodeType":"YulIdentifier","src":"10952:2:53"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"10924:27:53","nodeType":"YulIdentifier","src":"10924:27:53"},"nativeSrc":"10924:31:53","nodeType":"YulFunctionCall","src":"10924:31:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"10908:15:53","nodeType":"YulIdentifier","src":"10908:15:53"},"nativeSrc":"10908:48:53","nodeType":"YulFunctionCall","src":"10908:48:53"},"variables":[{"name":"array_1","nativeSrc":"10897:7:53","nodeType":"YulTypedName","src":"10897:7:53","type":""}]},{"expression":{"arguments":[{"name":"array_1","nativeSrc":"10972:7:53","nodeType":"YulIdentifier","src":"10972:7:53"},{"name":"_1","nativeSrc":"10981:2:53","nodeType":"YulIdentifier","src":"10981:2:53"}],"functionName":{"name":"mstore","nativeSrc":"10965:6:53","nodeType":"YulIdentifier","src":"10965:6:53"},"nativeSrc":"10965:19:53","nodeType":"YulFunctionCall","src":"10965:19:53"},"nativeSrc":"10965:19:53","nodeType":"YulExpressionStatement","src":"10965:19:53"},{"body":{"nativeSrc":"11032:16:53","nodeType":"YulBlock","src":"11032:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11041:1:53","nodeType":"YulLiteral","src":"11041:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11044:1:53","nodeType":"YulLiteral","src":"11044:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11034:6:53","nodeType":"YulIdentifier","src":"11034:6:53"},"nativeSrc":"11034:12:53","nodeType":"YulFunctionCall","src":"11034:12:53"},"nativeSrc":"11034:12:53","nodeType":"YulExpressionStatement","src":"11034:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11007:6:53","nodeType":"YulIdentifier","src":"11007:6:53"},{"name":"_1","nativeSrc":"11015:2:53","nodeType":"YulIdentifier","src":"11015:2:53"}],"functionName":{"name":"add","nativeSrc":"11003:3:53","nodeType":"YulIdentifier","src":"11003:3:53"},"nativeSrc":"11003:15:53","nodeType":"YulFunctionCall","src":"11003:15:53"},{"kind":"number","nativeSrc":"11020:4:53","nodeType":"YulLiteral","src":"11020:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10999:3:53","nodeType":"YulIdentifier","src":"10999:3:53"},"nativeSrc":"10999:26:53","nodeType":"YulFunctionCall","src":"10999:26:53"},{"name":"end","nativeSrc":"11027:3:53","nodeType":"YulIdentifier","src":"11027:3:53"}],"functionName":{"name":"gt","nativeSrc":"10996:2:53","nodeType":"YulIdentifier","src":"10996:2:53"},"nativeSrc":"10996:35:53","nodeType":"YulFunctionCall","src":"10996:35:53"},"nativeSrc":"10993:55:53","nodeType":"YulIf","src":"10993:55:53"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"11074:7:53","nodeType":"YulIdentifier","src":"11074:7:53"},{"kind":"number","nativeSrc":"11083:4:53","nodeType":"YulLiteral","src":"11083:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11070:3:53","nodeType":"YulIdentifier","src":"11070:3:53"},"nativeSrc":"11070:18:53","nodeType":"YulFunctionCall","src":"11070:18:53"},{"arguments":[{"name":"offset","nativeSrc":"11094:6:53","nodeType":"YulIdentifier","src":"11094:6:53"},{"kind":"number","nativeSrc":"11102:4:53","nodeType":"YulLiteral","src":"11102:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11090:3:53","nodeType":"YulIdentifier","src":"11090:3:53"},"nativeSrc":"11090:17:53","nodeType":"YulFunctionCall","src":"11090:17:53"},{"name":"_1","nativeSrc":"11109:2:53","nodeType":"YulIdentifier","src":"11109:2:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"11057:12:53","nodeType":"YulIdentifier","src":"11057:12:53"},"nativeSrc":"11057:55:53","nodeType":"YulFunctionCall","src":"11057:55:53"},"nativeSrc":"11057:55:53","nodeType":"YulExpressionStatement","src":"11057:55:53"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nativeSrc":"11136:7:53","nodeType":"YulIdentifier","src":"11136:7:53"},{"name":"_1","nativeSrc":"11145:2:53","nodeType":"YulIdentifier","src":"11145:2:53"}],"functionName":{"name":"add","nativeSrc":"11132:3:53","nodeType":"YulIdentifier","src":"11132:3:53"},"nativeSrc":"11132:16:53","nodeType":"YulFunctionCall","src":"11132:16:53"},{"kind":"number","nativeSrc":"11150:4:53","nodeType":"YulLiteral","src":"11150:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11128:3:53","nodeType":"YulIdentifier","src":"11128:3:53"},"nativeSrc":"11128:27:53","nodeType":"YulFunctionCall","src":"11128:27:53"},{"kind":"number","nativeSrc":"11157:1:53","nodeType":"YulLiteral","src":"11157:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11121:6:53","nodeType":"YulIdentifier","src":"11121:6:53"},"nativeSrc":"11121:38:53","nodeType":"YulFunctionCall","src":"11121:38:53"},"nativeSrc":"11121:38:53","nodeType":"YulExpressionStatement","src":"11121:38:53"},{"nativeSrc":"11168:16:53","nodeType":"YulAssignment","src":"11168:16:53","value":{"name":"array_1","nativeSrc":"11177:7:53","nodeType":"YulIdentifier","src":"11177:7:53"},"variableNames":[{"name":"array","nativeSrc":"11168:5:53","nodeType":"YulIdentifier","src":"11168:5:53"}]}]},"name":"abi_decode_bytes","nativeSrc":"10728:462:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10754:6:53","nodeType":"YulTypedName","src":"10754:6:53","type":""},{"name":"end","nativeSrc":"10762:3:53","nodeType":"YulTypedName","src":"10762:3:53","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10770:5:53","nodeType":"YulTypedName","src":"10770:5:53","type":""}],"src":"10728:462:53"},{"body":{"nativeSrc":"11325:535:53","nodeType":"YulBlock","src":"11325:535:53","statements":[{"body":{"nativeSrc":"11372:16:53","nodeType":"YulBlock","src":"11372:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11381:1:53","nodeType":"YulLiteral","src":"11381:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11384:1:53","nodeType":"YulLiteral","src":"11384:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11374:6:53","nodeType":"YulIdentifier","src":"11374:6:53"},"nativeSrc":"11374:12:53","nodeType":"YulFunctionCall","src":"11374:12:53"},"nativeSrc":"11374:12:53","nodeType":"YulExpressionStatement","src":"11374:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11346:7:53","nodeType":"YulIdentifier","src":"11346:7:53"},{"name":"headStart","nativeSrc":"11355:9:53","nodeType":"YulIdentifier","src":"11355:9:53"}],"functionName":{"name":"sub","nativeSrc":"11342:3:53","nodeType":"YulIdentifier","src":"11342:3:53"},"nativeSrc":"11342:23:53","nodeType":"YulFunctionCall","src":"11342:23:53"},{"kind":"number","nativeSrc":"11367:3:53","nodeType":"YulLiteral","src":"11367:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"11338:3:53","nodeType":"YulIdentifier","src":"11338:3:53"},"nativeSrc":"11338:33:53","nodeType":"YulFunctionCall","src":"11338:33:53"},"nativeSrc":"11335:53:53","nodeType":"YulIf","src":"11335:53:53"},{"nativeSrc":"11397:36:53","nodeType":"YulVariableDeclaration","src":"11397:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"11423:9:53","nodeType":"YulIdentifier","src":"11423:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"11410:12:53","nodeType":"YulIdentifier","src":"11410:12:53"},"nativeSrc":"11410:23:53","nodeType":"YulFunctionCall","src":"11410:23:53"},"variables":[{"name":"value","nativeSrc":"11401:5:53","nodeType":"YulTypedName","src":"11401:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11467:5:53","nodeType":"YulIdentifier","src":"11467:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11442:24:53","nodeType":"YulIdentifier","src":"11442:24:53"},"nativeSrc":"11442:31:53","nodeType":"YulFunctionCall","src":"11442:31:53"},"nativeSrc":"11442:31:53","nodeType":"YulExpressionStatement","src":"11442:31:53"},{"nativeSrc":"11482:15:53","nodeType":"YulAssignment","src":"11482:15:53","value":{"name":"value","nativeSrc":"11492:5:53","nodeType":"YulIdentifier","src":"11492:5:53"},"variableNames":[{"name":"value0","nativeSrc":"11482:6:53","nodeType":"YulIdentifier","src":"11482:6:53"}]},{"nativeSrc":"11506:47:53","nodeType":"YulVariableDeclaration","src":"11506:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11538:9:53","nodeType":"YulIdentifier","src":"11538:9:53"},{"kind":"number","nativeSrc":"11549:2:53","nodeType":"YulLiteral","src":"11549:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11534:3:53","nodeType":"YulIdentifier","src":"11534:3:53"},"nativeSrc":"11534:18:53","nodeType":"YulFunctionCall","src":"11534:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11521:12:53","nodeType":"YulIdentifier","src":"11521:12:53"},"nativeSrc":"11521:32:53","nodeType":"YulFunctionCall","src":"11521:32:53"},"variables":[{"name":"value_1","nativeSrc":"11510:7:53","nodeType":"YulTypedName","src":"11510:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"11587:7:53","nodeType":"YulIdentifier","src":"11587:7:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11562:24:53","nodeType":"YulIdentifier","src":"11562:24:53"},"nativeSrc":"11562:33:53","nodeType":"YulFunctionCall","src":"11562:33:53"},"nativeSrc":"11562:33:53","nodeType":"YulExpressionStatement","src":"11562:33:53"},{"nativeSrc":"11604:17:53","nodeType":"YulAssignment","src":"11604:17:53","value":{"name":"value_1","nativeSrc":"11614:7:53","nodeType":"YulIdentifier","src":"11614:7:53"},"variableNames":[{"name":"value1","nativeSrc":"11604:6:53","nodeType":"YulIdentifier","src":"11604:6:53"}]},{"nativeSrc":"11630:42:53","nodeType":"YulAssignment","src":"11630:42:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11657:9:53","nodeType":"YulIdentifier","src":"11657:9:53"},{"kind":"number","nativeSrc":"11668:2:53","nodeType":"YulLiteral","src":"11668:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11653:3:53","nodeType":"YulIdentifier","src":"11653:3:53"},"nativeSrc":"11653:18:53","nodeType":"YulFunctionCall","src":"11653:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11640:12:53","nodeType":"YulIdentifier","src":"11640:12:53"},"nativeSrc":"11640:32:53","nodeType":"YulFunctionCall","src":"11640:32:53"},"variableNames":[{"name":"value2","nativeSrc":"11630:6:53","nodeType":"YulIdentifier","src":"11630:6:53"}]},{"nativeSrc":"11681:46:53","nodeType":"YulVariableDeclaration","src":"11681:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11712:9:53","nodeType":"YulIdentifier","src":"11712:9:53"},{"kind":"number","nativeSrc":"11723:2:53","nodeType":"YulLiteral","src":"11723:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11708:3:53","nodeType":"YulIdentifier","src":"11708:3:53"},"nativeSrc":"11708:18:53","nodeType":"YulFunctionCall","src":"11708:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"11695:12:53","nodeType":"YulIdentifier","src":"11695:12:53"},"nativeSrc":"11695:32:53","nodeType":"YulFunctionCall","src":"11695:32:53"},"variables":[{"name":"offset","nativeSrc":"11685:6:53","nodeType":"YulTypedName","src":"11685:6:53","type":""}]},{"body":{"nativeSrc":"11770:16:53","nodeType":"YulBlock","src":"11770:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11779:1:53","nodeType":"YulLiteral","src":"11779:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"11782:1:53","nodeType":"YulLiteral","src":"11782:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11772:6:53","nodeType":"YulIdentifier","src":"11772:6:53"},"nativeSrc":"11772:12:53","nodeType":"YulFunctionCall","src":"11772:12:53"},"nativeSrc":"11772:12:53","nodeType":"YulExpressionStatement","src":"11772:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11742:6:53","nodeType":"YulIdentifier","src":"11742:6:53"},{"kind":"number","nativeSrc":"11750:18:53","nodeType":"YulLiteral","src":"11750:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11739:2:53","nodeType":"YulIdentifier","src":"11739:2:53"},"nativeSrc":"11739:30:53","nodeType":"YulFunctionCall","src":"11739:30:53"},"nativeSrc":"11736:50:53","nodeType":"YulIf","src":"11736:50:53"},{"nativeSrc":"11795:59:53","nodeType":"YulAssignment","src":"11795:59:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11826:9:53","nodeType":"YulIdentifier","src":"11826:9:53"},{"name":"offset","nativeSrc":"11837:6:53","nodeType":"YulIdentifier","src":"11837:6:53"}],"functionName":{"name":"add","nativeSrc":"11822:3:53","nodeType":"YulIdentifier","src":"11822:3:53"},"nativeSrc":"11822:22:53","nodeType":"YulFunctionCall","src":"11822:22:53"},{"name":"dataEnd","nativeSrc":"11846:7:53","nodeType":"YulIdentifier","src":"11846:7:53"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"11805:16:53","nodeType":"YulIdentifier","src":"11805:16:53"},"nativeSrc":"11805:49:53","nodeType":"YulFunctionCall","src":"11805:49:53"},"variableNames":[{"name":"value3","nativeSrc":"11795:6:53","nodeType":"YulIdentifier","src":"11795:6:53"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nativeSrc":"11195:665:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11267:9:53","nodeType":"YulTypedName","src":"11267:9:53","type":""},{"name":"dataEnd","nativeSrc":"11278:7:53","nodeType":"YulTypedName","src":"11278:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11290:6:53","nodeType":"YulTypedName","src":"11290:6:53","type":""},{"name":"value1","nativeSrc":"11298:6:53","nodeType":"YulTypedName","src":"11298:6:53","type":""},{"name":"value2","nativeSrc":"11306:6:53","nodeType":"YulTypedName","src":"11306:6:53","type":""},{"name":"value3","nativeSrc":"11314:6:53","nodeType":"YulTypedName","src":"11314:6:53","type":""}],"src":"11195:665:53"},{"body":{"nativeSrc":"11977:283:53","nodeType":"YulBlock","src":"11977:283:53","statements":[{"body":{"nativeSrc":"12026:16:53","nodeType":"YulBlock","src":"12026:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12035:1:53","nodeType":"YulLiteral","src":"12035:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12038:1:53","nodeType":"YulLiteral","src":"12038:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12028:6:53","nodeType":"YulIdentifier","src":"12028:6:53"},"nativeSrc":"12028:12:53","nodeType":"YulFunctionCall","src":"12028:12:53"},"nativeSrc":"12028:12:53","nodeType":"YulExpressionStatement","src":"12028:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12005:6:53","nodeType":"YulIdentifier","src":"12005:6:53"},{"kind":"number","nativeSrc":"12013:4:53","nodeType":"YulLiteral","src":"12013:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"12001:3:53","nodeType":"YulIdentifier","src":"12001:3:53"},"nativeSrc":"12001:17:53","nodeType":"YulFunctionCall","src":"12001:17:53"},{"name":"end","nativeSrc":"12020:3:53","nodeType":"YulIdentifier","src":"12020:3:53"}],"functionName":{"name":"slt","nativeSrc":"11997:3:53","nodeType":"YulIdentifier","src":"11997:3:53"},"nativeSrc":"11997:27:53","nodeType":"YulFunctionCall","src":"11997:27:53"}],"functionName":{"name":"iszero","nativeSrc":"11990:6:53","nodeType":"YulIdentifier","src":"11990:6:53"},"nativeSrc":"11990:35:53","nodeType":"YulFunctionCall","src":"11990:35:53"},"nativeSrc":"11987:55:53","nodeType":"YulIf","src":"11987:55:53"},{"nativeSrc":"12051:30:53","nodeType":"YulAssignment","src":"12051:30:53","value":{"arguments":[{"name":"offset","nativeSrc":"12074:6:53","nodeType":"YulIdentifier","src":"12074:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"12061:12:53","nodeType":"YulIdentifier","src":"12061:12:53"},"nativeSrc":"12061:20:53","nodeType":"YulFunctionCall","src":"12061:20:53"},"variableNames":[{"name":"length","nativeSrc":"12051:6:53","nodeType":"YulIdentifier","src":"12051:6:53"}]},{"body":{"nativeSrc":"12124:16:53","nodeType":"YulBlock","src":"12124:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12133:1:53","nodeType":"YulLiteral","src":"12133:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12136:1:53","nodeType":"YulLiteral","src":"12136:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12126:6:53","nodeType":"YulIdentifier","src":"12126:6:53"},"nativeSrc":"12126:12:53","nodeType":"YulFunctionCall","src":"12126:12:53"},"nativeSrc":"12126:12:53","nodeType":"YulExpressionStatement","src":"12126:12:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"12096:6:53","nodeType":"YulIdentifier","src":"12096:6:53"},{"kind":"number","nativeSrc":"12104:18:53","nodeType":"YulLiteral","src":"12104:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12093:2:53","nodeType":"YulIdentifier","src":"12093:2:53"},"nativeSrc":"12093:30:53","nodeType":"YulFunctionCall","src":"12093:30:53"},"nativeSrc":"12090:50:53","nodeType":"YulIf","src":"12090:50:53"},{"nativeSrc":"12149:29:53","nodeType":"YulAssignment","src":"12149:29:53","value":{"arguments":[{"name":"offset","nativeSrc":"12165:6:53","nodeType":"YulIdentifier","src":"12165:6:53"},{"kind":"number","nativeSrc":"12173:4:53","nodeType":"YulLiteral","src":"12173:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12161:3:53","nodeType":"YulIdentifier","src":"12161:3:53"},"nativeSrc":"12161:17:53","nodeType":"YulFunctionCall","src":"12161:17:53"},"variableNames":[{"name":"arrayPos","nativeSrc":"12149:8:53","nodeType":"YulIdentifier","src":"12149:8:53"}]},{"body":{"nativeSrc":"12238:16:53","nodeType":"YulBlock","src":"12238:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12247:1:53","nodeType":"YulLiteral","src":"12247:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12250:1:53","nodeType":"YulLiteral","src":"12250:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12240:6:53","nodeType":"YulIdentifier","src":"12240:6:53"},"nativeSrc":"12240:12:53","nodeType":"YulFunctionCall","src":"12240:12:53"},"nativeSrc":"12240:12:53","nodeType":"YulExpressionStatement","src":"12240:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12201:6:53","nodeType":"YulIdentifier","src":"12201:6:53"},{"arguments":[{"kind":"number","nativeSrc":"12213:1:53","nodeType":"YulLiteral","src":"12213:1:53","type":"","value":"5"},{"name":"length","nativeSrc":"12216:6:53","nodeType":"YulIdentifier","src":"12216:6:53"}],"functionName":{"name":"shl","nativeSrc":"12209:3:53","nodeType":"YulIdentifier","src":"12209:3:53"},"nativeSrc":"12209:14:53","nodeType":"YulFunctionCall","src":"12209:14:53"}],"functionName":{"name":"add","nativeSrc":"12197:3:53","nodeType":"YulIdentifier","src":"12197:3:53"},"nativeSrc":"12197:27:53","nodeType":"YulFunctionCall","src":"12197:27:53"},{"kind":"number","nativeSrc":"12226:4:53","nodeType":"YulLiteral","src":"12226:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12193:3:53","nodeType":"YulIdentifier","src":"12193:3:53"},"nativeSrc":"12193:38:53","nodeType":"YulFunctionCall","src":"12193:38:53"},{"name":"end","nativeSrc":"12233:3:53","nodeType":"YulIdentifier","src":"12233:3:53"}],"functionName":{"name":"gt","nativeSrc":"12190:2:53","nodeType":"YulIdentifier","src":"12190:2:53"},"nativeSrc":"12190:47:53","nodeType":"YulFunctionCall","src":"12190:47:53"},"nativeSrc":"12187:67:53","nodeType":"YulIf","src":"12187:67:53"}]},"name":"abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata","nativeSrc":"11865:395:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11940:6:53","nodeType":"YulTypedName","src":"11940:6:53","type":""},{"name":"end","nativeSrc":"11948:3:53","nodeType":"YulTypedName","src":"11948:3:53","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"11956:8:53","nodeType":"YulTypedName","src":"11956:8:53","type":""},{"name":"length","nativeSrc":"11966:6:53","nodeType":"YulTypedName","src":"11966:6:53","type":""}],"src":"11865:395:53"},{"body":{"nativeSrc":"12409:360:53","nodeType":"YulBlock","src":"12409:360:53","statements":[{"body":{"nativeSrc":"12455:16:53","nodeType":"YulBlock","src":"12455:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12464:1:53","nodeType":"YulLiteral","src":"12464:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12467:1:53","nodeType":"YulLiteral","src":"12467:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12457:6:53","nodeType":"YulIdentifier","src":"12457:6:53"},"nativeSrc":"12457:12:53","nodeType":"YulFunctionCall","src":"12457:12:53"},"nativeSrc":"12457:12:53","nodeType":"YulExpressionStatement","src":"12457:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12430:7:53","nodeType":"YulIdentifier","src":"12430:7:53"},{"name":"headStart","nativeSrc":"12439:9:53","nodeType":"YulIdentifier","src":"12439:9:53"}],"functionName":{"name":"sub","nativeSrc":"12426:3:53","nodeType":"YulIdentifier","src":"12426:3:53"},"nativeSrc":"12426:23:53","nodeType":"YulFunctionCall","src":"12426:23:53"},{"kind":"number","nativeSrc":"12451:2:53","nodeType":"YulLiteral","src":"12451:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12422:3:53","nodeType":"YulIdentifier","src":"12422:3:53"},"nativeSrc":"12422:32:53","nodeType":"YulFunctionCall","src":"12422:32:53"},"nativeSrc":"12419:52:53","nodeType":"YulIf","src":"12419:52:53"},{"nativeSrc":"12480:37:53","nodeType":"YulVariableDeclaration","src":"12480:37:53","value":{"arguments":[{"name":"headStart","nativeSrc":"12507:9:53","nodeType":"YulIdentifier","src":"12507:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"12494:12:53","nodeType":"YulIdentifier","src":"12494:12:53"},"nativeSrc":"12494:23:53","nodeType":"YulFunctionCall","src":"12494:23:53"},"variables":[{"name":"offset","nativeSrc":"12484:6:53","nodeType":"YulTypedName","src":"12484:6:53","type":""}]},{"body":{"nativeSrc":"12560:16:53","nodeType":"YulBlock","src":"12560:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12569:1:53","nodeType":"YulLiteral","src":"12569:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12572:1:53","nodeType":"YulLiteral","src":"12572:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12562:6:53","nodeType":"YulIdentifier","src":"12562:6:53"},"nativeSrc":"12562:12:53","nodeType":"YulFunctionCall","src":"12562:12:53"},"nativeSrc":"12562:12:53","nodeType":"YulExpressionStatement","src":"12562:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12532:6:53","nodeType":"YulIdentifier","src":"12532:6:53"},{"kind":"number","nativeSrc":"12540:18:53","nodeType":"YulLiteral","src":"12540:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12529:2:53","nodeType":"YulIdentifier","src":"12529:2:53"},"nativeSrc":"12529:30:53","nodeType":"YulFunctionCall","src":"12529:30:53"},"nativeSrc":"12526:50:53","nodeType":"YulIf","src":"12526:50:53"},{"nativeSrc":"12585:124:53","nodeType":"YulVariableDeclaration","src":"12585:124:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12681:9:53","nodeType":"YulIdentifier","src":"12681:9:53"},{"name":"offset","nativeSrc":"12692:6:53","nodeType":"YulIdentifier","src":"12692:6:53"}],"functionName":{"name":"add","nativeSrc":"12677:3:53","nodeType":"YulIdentifier","src":"12677:3:53"},"nativeSrc":"12677:22:53","nodeType":"YulFunctionCall","src":"12677:22:53"},{"name":"dataEnd","nativeSrc":"12701:7:53","nodeType":"YulIdentifier","src":"12701:7:53"}],"functionName":{"name":"abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata","nativeSrc":"12611:65:53","nodeType":"YulIdentifier","src":"12611:65:53"},"nativeSrc":"12611:98:53","nodeType":"YulFunctionCall","src":"12611:98:53"},"variables":[{"name":"value0_1","nativeSrc":"12589:8:53","nodeType":"YulTypedName","src":"12589:8:53","type":""},{"name":"value1_1","nativeSrc":"12599:8:53","nodeType":"YulTypedName","src":"12599:8:53","type":""}]},{"nativeSrc":"12718:18:53","nodeType":"YulAssignment","src":"12718:18:53","value":{"name":"value0_1","nativeSrc":"12728:8:53","nodeType":"YulIdentifier","src":"12728:8:53"},"variableNames":[{"name":"value0","nativeSrc":"12718:6:53","nodeType":"YulIdentifier","src":"12718:6:53"}]},{"nativeSrc":"12745:18:53","nodeType":"YulAssignment","src":"12745:18:53","value":{"name":"value1_1","nativeSrc":"12755:8:53","nodeType":"YulIdentifier","src":"12755:8:53"},"variableNames":[{"name":"value1","nativeSrc":"12745:6:53","nodeType":"YulIdentifier","src":"12745:6:53"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"12265:504:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12367:9:53","nodeType":"YulTypedName","src":"12367:9:53","type":""},{"name":"dataEnd","nativeSrc":"12378:7:53","nodeType":"YulTypedName","src":"12378:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12390:6:53","nodeType":"YulTypedName","src":"12390:6:53","type":""},{"name":"value1","nativeSrc":"12398:6:53","nodeType":"YulTypedName","src":"12398:6:53","type":""}],"src":"12265:504:53"},{"body":{"nativeSrc":"12843:115:53","nodeType":"YulBlock","src":"12843:115:53","statements":[{"body":{"nativeSrc":"12889:16:53","nodeType":"YulBlock","src":"12889:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12898:1:53","nodeType":"YulLiteral","src":"12898:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"12901:1:53","nodeType":"YulLiteral","src":"12901:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12891:6:53","nodeType":"YulIdentifier","src":"12891:6:53"},"nativeSrc":"12891:12:53","nodeType":"YulFunctionCall","src":"12891:12:53"},"nativeSrc":"12891:12:53","nodeType":"YulExpressionStatement","src":"12891:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12864:7:53","nodeType":"YulIdentifier","src":"12864:7:53"},{"name":"headStart","nativeSrc":"12873:9:53","nodeType":"YulIdentifier","src":"12873:9:53"}],"functionName":{"name":"sub","nativeSrc":"12860:3:53","nodeType":"YulIdentifier","src":"12860:3:53"},"nativeSrc":"12860:23:53","nodeType":"YulFunctionCall","src":"12860:23:53"},{"kind":"number","nativeSrc":"12885:2:53","nodeType":"YulLiteral","src":"12885:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12856:3:53","nodeType":"YulIdentifier","src":"12856:3:53"},"nativeSrc":"12856:32:53","nodeType":"YulFunctionCall","src":"12856:32:53"},"nativeSrc":"12853:52:53","nodeType":"YulIf","src":"12853:52:53"},{"nativeSrc":"12914:38:53","nodeType":"YulAssignment","src":"12914:38:53","value":{"arguments":[{"name":"headStart","nativeSrc":"12942:9:53","nodeType":"YulIdentifier","src":"12942:9:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"12924:17:53","nodeType":"YulIdentifier","src":"12924:17:53"},"nativeSrc":"12924:28:53","nodeType":"YulFunctionCall","src":"12924:28:53"},"variableNames":[{"name":"value0","nativeSrc":"12914:6:53","nodeType":"YulIdentifier","src":"12914:6:53"}]}]},"name":"abi_decode_tuple_t_uint32","nativeSrc":"12774:184:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12809:9:53","nodeType":"YulTypedName","src":"12809:9:53","type":""},{"name":"dataEnd","nativeSrc":"12820:7:53","nodeType":"YulTypedName","src":"12820:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12832:6:53","nodeType":"YulTypedName","src":"12832:6:53","type":""}],"src":"12774:184:53"},{"body":{"nativeSrc":"13064:76:53","nodeType":"YulBlock","src":"13064:76:53","statements":[{"nativeSrc":"13074:26:53","nodeType":"YulAssignment","src":"13074:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"13086:9:53","nodeType":"YulIdentifier","src":"13086:9:53"},{"kind":"number","nativeSrc":"13097:2:53","nodeType":"YulLiteral","src":"13097:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13082:3:53","nodeType":"YulIdentifier","src":"13082:3:53"},"nativeSrc":"13082:18:53","nodeType":"YulFunctionCall","src":"13082:18:53"},"variableNames":[{"name":"tail","nativeSrc":"13074:4:53","nodeType":"YulIdentifier","src":"13074:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13116:9:53","nodeType":"YulIdentifier","src":"13116:9:53"},{"name":"value0","nativeSrc":"13127:6:53","nodeType":"YulIdentifier","src":"13127:6:53"}],"functionName":{"name":"mstore","nativeSrc":"13109:6:53","nodeType":"YulIdentifier","src":"13109:6:53"},"nativeSrc":"13109:25:53","nodeType":"YulFunctionCall","src":"13109:25:53"},"nativeSrc":"13109:25:53","nodeType":"YulExpressionStatement","src":"13109:25:53"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"12963:177:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13033:9:53","nodeType":"YulTypedName","src":"13033:9:53","type":""},{"name":"value0","nativeSrc":"13044:6:53","nodeType":"YulTypedName","src":"13044:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13055:4:53","nodeType":"YulTypedName","src":"13055:4:53","type":""}],"src":"12963:177:53"},{"body":{"nativeSrc":"13266:432:53","nodeType":"YulBlock","src":"13266:432:53","statements":[{"body":{"nativeSrc":"13312:16:53","nodeType":"YulBlock","src":"13312:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13321:1:53","nodeType":"YulLiteral","src":"13321:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13324:1:53","nodeType":"YulLiteral","src":"13324:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13314:6:53","nodeType":"YulIdentifier","src":"13314:6:53"},"nativeSrc":"13314:12:53","nodeType":"YulFunctionCall","src":"13314:12:53"},"nativeSrc":"13314:12:53","nodeType":"YulExpressionStatement","src":"13314:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13287:7:53","nodeType":"YulIdentifier","src":"13287:7:53"},{"name":"headStart","nativeSrc":"13296:9:53","nodeType":"YulIdentifier","src":"13296:9:53"}],"functionName":{"name":"sub","nativeSrc":"13283:3:53","nodeType":"YulIdentifier","src":"13283:3:53"},"nativeSrc":"13283:23:53","nodeType":"YulFunctionCall","src":"13283:23:53"},{"kind":"number","nativeSrc":"13308:2:53","nodeType":"YulLiteral","src":"13308:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"13279:3:53","nodeType":"YulIdentifier","src":"13279:3:53"},"nativeSrc":"13279:32:53","nodeType":"YulFunctionCall","src":"13279:32:53"},"nativeSrc":"13276:52:53","nodeType":"YulIf","src":"13276:52:53"},{"nativeSrc":"13337:38:53","nodeType":"YulAssignment","src":"13337:38:53","value":{"arguments":[{"name":"headStart","nativeSrc":"13365:9:53","nodeType":"YulIdentifier","src":"13365:9:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"13347:17:53","nodeType":"YulIdentifier","src":"13347:17:53"},"nativeSrc":"13347:28:53","nodeType":"YulFunctionCall","src":"13347:28:53"},"variableNames":[{"name":"value0","nativeSrc":"13337:6:53","nodeType":"YulIdentifier","src":"13337:6:53"}]},{"nativeSrc":"13384:47:53","nodeType":"YulAssignment","src":"13384:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13416:9:53","nodeType":"YulIdentifier","src":"13416:9:53"},{"kind":"number","nativeSrc":"13427:2:53","nodeType":"YulLiteral","src":"13427:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13412:3:53","nodeType":"YulIdentifier","src":"13412:3:53"},"nativeSrc":"13412:18:53","nodeType":"YulFunctionCall","src":"13412:18:53"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"13394:17:53","nodeType":"YulIdentifier","src":"13394:17:53"},"nativeSrc":"13394:37:53","nodeType":"YulFunctionCall","src":"13394:37:53"},"variableNames":[{"name":"value1","nativeSrc":"13384:6:53","nodeType":"YulIdentifier","src":"13384:6:53"}]},{"nativeSrc":"13440:46:53","nodeType":"YulVariableDeclaration","src":"13440:46:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13471:9:53","nodeType":"YulIdentifier","src":"13471:9:53"},{"kind":"number","nativeSrc":"13482:2:53","nodeType":"YulLiteral","src":"13482:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13467:3:53","nodeType":"YulIdentifier","src":"13467:3:53"},"nativeSrc":"13467:18:53","nodeType":"YulFunctionCall","src":"13467:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"13454:12:53","nodeType":"YulIdentifier","src":"13454:12:53"},"nativeSrc":"13454:32:53","nodeType":"YulFunctionCall","src":"13454:32:53"},"variables":[{"name":"offset","nativeSrc":"13444:6:53","nodeType":"YulTypedName","src":"13444:6:53","type":""}]},{"body":{"nativeSrc":"13529:16:53","nodeType":"YulBlock","src":"13529:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13538:1:53","nodeType":"YulLiteral","src":"13538:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13541:1:53","nodeType":"YulLiteral","src":"13541:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13531:6:53","nodeType":"YulIdentifier","src":"13531:6:53"},"nativeSrc":"13531:12:53","nodeType":"YulFunctionCall","src":"13531:12:53"},"nativeSrc":"13531:12:53","nodeType":"YulExpressionStatement","src":"13531:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13501:6:53","nodeType":"YulIdentifier","src":"13501:6:53"},{"kind":"number","nativeSrc":"13509:18:53","nodeType":"YulLiteral","src":"13509:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13498:2:53","nodeType":"YulIdentifier","src":"13498:2:53"},"nativeSrc":"13498:30:53","nodeType":"YulFunctionCall","src":"13498:30:53"},"nativeSrc":"13495:50:53","nodeType":"YulIf","src":"13495:50:53"},{"nativeSrc":"13554:84:53","nodeType":"YulVariableDeclaration","src":"13554:84:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13610:9:53","nodeType":"YulIdentifier","src":"13610:9:53"},{"name":"offset","nativeSrc":"13621:6:53","nodeType":"YulIdentifier","src":"13621:6:53"}],"functionName":{"name":"add","nativeSrc":"13606:3:53","nodeType":"YulIdentifier","src":"13606:3:53"},"nativeSrc":"13606:22:53","nodeType":"YulFunctionCall","src":"13606:22:53"},{"name":"dataEnd","nativeSrc":"13630:7:53","nodeType":"YulIdentifier","src":"13630:7:53"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"13580:25:53","nodeType":"YulIdentifier","src":"13580:25:53"},"nativeSrc":"13580:58:53","nodeType":"YulFunctionCall","src":"13580:58:53"},"variables":[{"name":"value2_1","nativeSrc":"13558:8:53","nodeType":"YulTypedName","src":"13558:8:53","type":""},{"name":"value3_1","nativeSrc":"13568:8:53","nodeType":"YulTypedName","src":"13568:8:53","type":""}]},{"nativeSrc":"13647:18:53","nodeType":"YulAssignment","src":"13647:18:53","value":{"name":"value2_1","nativeSrc":"13657:8:53","nodeType":"YulIdentifier","src":"13657:8:53"},"variableNames":[{"name":"value2","nativeSrc":"13647:6:53","nodeType":"YulIdentifier","src":"13647:6:53"}]},{"nativeSrc":"13674:18:53","nodeType":"YulAssignment","src":"13674:18:53","value":{"name":"value3_1","nativeSrc":"13684:8:53","nodeType":"YulIdentifier","src":"13684:8:53"},"variableNames":[{"name":"value3","nativeSrc":"13674:6:53","nodeType":"YulIdentifier","src":"13674:6:53"}]}]},"name":"abi_decode_tuple_t_uint32t_uint16t_bytes_calldata_ptr","nativeSrc":"13145:553:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13208:9:53","nodeType":"YulTypedName","src":"13208:9:53","type":""},{"name":"dataEnd","nativeSrc":"13219:7:53","nodeType":"YulTypedName","src":"13219:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13231:6:53","nodeType":"YulTypedName","src":"13231:6:53","type":""},{"name":"value1","nativeSrc":"13239:6:53","nodeType":"YulTypedName","src":"13239:6:53","type":""},{"name":"value2","nativeSrc":"13247:6:53","nodeType":"YulTypedName","src":"13247:6:53","type":""},{"name":"value3","nativeSrc":"13255:6:53","nodeType":"YulTypedName","src":"13255:6:53","type":""}],"src":"13145:553:53"},{"body":{"nativeSrc":"13841:360:53","nodeType":"YulBlock","src":"13841:360:53","statements":[{"body":{"nativeSrc":"13887:16:53","nodeType":"YulBlock","src":"13887:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13896:1:53","nodeType":"YulLiteral","src":"13896:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"13899:1:53","nodeType":"YulLiteral","src":"13899:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13889:6:53","nodeType":"YulIdentifier","src":"13889:6:53"},"nativeSrc":"13889:12:53","nodeType":"YulFunctionCall","src":"13889:12:53"},"nativeSrc":"13889:12:53","nodeType":"YulExpressionStatement","src":"13889:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13862:7:53","nodeType":"YulIdentifier","src":"13862:7:53"},{"name":"headStart","nativeSrc":"13871:9:53","nodeType":"YulIdentifier","src":"13871:9:53"}],"functionName":{"name":"sub","nativeSrc":"13858:3:53","nodeType":"YulIdentifier","src":"13858:3:53"},"nativeSrc":"13858:23:53","nodeType":"YulFunctionCall","src":"13858:23:53"},{"kind":"number","nativeSrc":"13883:2:53","nodeType":"YulLiteral","src":"13883:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13854:3:53","nodeType":"YulIdentifier","src":"13854:3:53"},"nativeSrc":"13854:32:53","nodeType":"YulFunctionCall","src":"13854:32:53"},"nativeSrc":"13851:52:53","nodeType":"YulIf","src":"13851:52:53"},{"nativeSrc":"13912:37:53","nodeType":"YulVariableDeclaration","src":"13912:37:53","value":{"arguments":[{"name":"headStart","nativeSrc":"13939:9:53","nodeType":"YulIdentifier","src":"13939:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"13926:12:53","nodeType":"YulIdentifier","src":"13926:12:53"},"nativeSrc":"13926:23:53","nodeType":"YulFunctionCall","src":"13926:23:53"},"variables":[{"name":"offset","nativeSrc":"13916:6:53","nodeType":"YulTypedName","src":"13916:6:53","type":""}]},{"body":{"nativeSrc":"13992:16:53","nodeType":"YulBlock","src":"13992:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14001:1:53","nodeType":"YulLiteral","src":"14001:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14004:1:53","nodeType":"YulLiteral","src":"14004:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13994:6:53","nodeType":"YulIdentifier","src":"13994:6:53"},"nativeSrc":"13994:12:53","nodeType":"YulFunctionCall","src":"13994:12:53"},"nativeSrc":"13994:12:53","nodeType":"YulExpressionStatement","src":"13994:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13964:6:53","nodeType":"YulIdentifier","src":"13964:6:53"},{"kind":"number","nativeSrc":"13972:18:53","nodeType":"YulLiteral","src":"13972:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13961:2:53","nodeType":"YulIdentifier","src":"13961:2:53"},"nativeSrc":"13961:30:53","nodeType":"YulFunctionCall","src":"13961:30:53"},"nativeSrc":"13958:50:53","nodeType":"YulIf","src":"13958:50:53"},{"nativeSrc":"14017:124:53","nodeType":"YulVariableDeclaration","src":"14017:124:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14113:9:53","nodeType":"YulIdentifier","src":"14113:9:53"},{"name":"offset","nativeSrc":"14124:6:53","nodeType":"YulIdentifier","src":"14124:6:53"}],"functionName":{"name":"add","nativeSrc":"14109:3:53","nodeType":"YulIdentifier","src":"14109:3:53"},"nativeSrc":"14109:22:53","nodeType":"YulFunctionCall","src":"14109:22:53"},{"name":"dataEnd","nativeSrc":"14133:7:53","nodeType":"YulIdentifier","src":"14133:7:53"}],"functionName":{"name":"abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata","nativeSrc":"14043:65:53","nodeType":"YulIdentifier","src":"14043:65:53"},"nativeSrc":"14043:98:53","nodeType":"YulFunctionCall","src":"14043:98:53"},"variables":[{"name":"value0_1","nativeSrc":"14021:8:53","nodeType":"YulTypedName","src":"14021:8:53","type":""},{"name":"value1_1","nativeSrc":"14031:8:53","nodeType":"YulTypedName","src":"14031:8:53","type":""}]},{"nativeSrc":"14150:18:53","nodeType":"YulAssignment","src":"14150:18:53","value":{"name":"value0_1","nativeSrc":"14160:8:53","nodeType":"YulIdentifier","src":"14160:8:53"},"variableNames":[{"name":"value0","nativeSrc":"14150:6:53","nodeType":"YulIdentifier","src":"14150:6:53"}]},{"nativeSrc":"14177:18:53","nodeType":"YulAssignment","src":"14177:18:53","value":{"name":"value1_1","nativeSrc":"14187:8:53","nodeType":"YulIdentifier","src":"14187:8:53"},"variableNames":[{"name":"value1","nativeSrc":"14177:6:53","nodeType":"YulIdentifier","src":"14177:6:53"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_InboundPacket_$2010_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"13703:498:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13799:9:53","nodeType":"YulTypedName","src":"13799:9:53","type":""},{"name":"dataEnd","nativeSrc":"13810:7:53","nodeType":"YulTypedName","src":"13810:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13822:6:53","nodeType":"YulTypedName","src":"13822:6:53","type":""},{"name":"value1","nativeSrc":"13830:6:53","nodeType":"YulTypedName","src":"13830:6:53","type":""}],"src":"13703:498:53"},{"body":{"nativeSrc":"14319:376:53","nodeType":"YulBlock","src":"14319:376:53","statements":[{"body":{"nativeSrc":"14365:16:53","nodeType":"YulBlock","src":"14365:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14374:1:53","nodeType":"YulLiteral","src":"14374:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14377:1:53","nodeType":"YulLiteral","src":"14377:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14367:6:53","nodeType":"YulIdentifier","src":"14367:6:53"},"nativeSrc":"14367:12:53","nodeType":"YulFunctionCall","src":"14367:12:53"},"nativeSrc":"14367:12:53","nodeType":"YulExpressionStatement","src":"14367:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14340:7:53","nodeType":"YulIdentifier","src":"14340:7:53"},{"name":"headStart","nativeSrc":"14349:9:53","nodeType":"YulIdentifier","src":"14349:9:53"}],"functionName":{"name":"sub","nativeSrc":"14336:3:53","nodeType":"YulIdentifier","src":"14336:3:53"},"nativeSrc":"14336:23:53","nodeType":"YulFunctionCall","src":"14336:23:53"},{"kind":"number","nativeSrc":"14361:2:53","nodeType":"YulLiteral","src":"14361:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"14332:3:53","nodeType":"YulIdentifier","src":"14332:3:53"},"nativeSrc":"14332:32:53","nodeType":"YulFunctionCall","src":"14332:32:53"},"nativeSrc":"14329:52:53","nodeType":"YulIf","src":"14329:52:53"},{"nativeSrc":"14390:37:53","nodeType":"YulVariableDeclaration","src":"14390:37:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14417:9:53","nodeType":"YulIdentifier","src":"14417:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"14404:12:53","nodeType":"YulIdentifier","src":"14404:12:53"},"nativeSrc":"14404:23:53","nodeType":"YulFunctionCall","src":"14404:23:53"},"variables":[{"name":"offset","nativeSrc":"14394:6:53","nodeType":"YulTypedName","src":"14394:6:53","type":""}]},{"body":{"nativeSrc":"14470:16:53","nodeType":"YulBlock","src":"14470:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14479:1:53","nodeType":"YulLiteral","src":"14479:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"14482:1:53","nodeType":"YulLiteral","src":"14482:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14472:6:53","nodeType":"YulIdentifier","src":"14472:6:53"},"nativeSrc":"14472:12:53","nodeType":"YulFunctionCall","src":"14472:12:53"},"nativeSrc":"14472:12:53","nodeType":"YulExpressionStatement","src":"14472:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14442:6:53","nodeType":"YulIdentifier","src":"14442:6:53"},{"kind":"number","nativeSrc":"14450:18:53","nodeType":"YulLiteral","src":"14450:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14439:2:53","nodeType":"YulIdentifier","src":"14439:2:53"},"nativeSrc":"14439:30:53","nodeType":"YulFunctionCall","src":"14439:30:53"},"nativeSrc":"14436:50:53","nodeType":"YulIf","src":"14436:50:53"},{"nativeSrc":"14495:79:53","nodeType":"YulAssignment","src":"14495:79:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14546:9:53","nodeType":"YulIdentifier","src":"14546:9:53"},{"name":"offset","nativeSrc":"14557:6:53","nodeType":"YulIdentifier","src":"14557:6:53"}],"functionName":{"name":"add","nativeSrc":"14542:3:53","nodeType":"YulIdentifier","src":"14542:3:53"},"nativeSrc":"14542:22:53","nodeType":"YulFunctionCall","src":"14542:22:53"},{"name":"dataEnd","nativeSrc":"14566:7:53","nodeType":"YulIdentifier","src":"14566:7:53"}],"functionName":{"name":"abi_decode_struct_SendParam_calldata","nativeSrc":"14505:36:53","nodeType":"YulIdentifier","src":"14505:36:53"},"nativeSrc":"14505:69:53","nodeType":"YulFunctionCall","src":"14505:69:53"},"variableNames":[{"name":"value0","nativeSrc":"14495:6:53","nodeType":"YulIdentifier","src":"14495:6:53"}]},{"nativeSrc":"14583:45:53","nodeType":"YulVariableDeclaration","src":"14583:45:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14613:9:53","nodeType":"YulIdentifier","src":"14613:9:53"},{"kind":"number","nativeSrc":"14624:2:53","nodeType":"YulLiteral","src":"14624:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14609:3:53","nodeType":"YulIdentifier","src":"14609:3:53"},"nativeSrc":"14609:18:53","nodeType":"YulFunctionCall","src":"14609:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"14596:12:53","nodeType":"YulIdentifier","src":"14596:12:53"},"nativeSrc":"14596:32:53","nodeType":"YulFunctionCall","src":"14596:32:53"},"variables":[{"name":"value","nativeSrc":"14587:5:53","nodeType":"YulTypedName","src":"14587:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14659:5:53","nodeType":"YulIdentifier","src":"14659:5:53"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"14637:21:53","nodeType":"YulIdentifier","src":"14637:21:53"},"nativeSrc":"14637:28:53","nodeType":"YulFunctionCall","src":"14637:28:53"},"nativeSrc":"14637:28:53","nodeType":"YulExpressionStatement","src":"14637:28:53"},{"nativeSrc":"14674:15:53","nodeType":"YulAssignment","src":"14674:15:53","value":{"name":"value","nativeSrc":"14684:5:53","nodeType":"YulIdentifier","src":"14684:5:53"},"variableNames":[{"name":"value1","nativeSrc":"14674:6:53","nodeType":"YulIdentifier","src":"14674:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_bool","nativeSrc":"14206:489:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14277:9:53","nodeType":"YulTypedName","src":"14277:9:53","type":""},{"name":"dataEnd","nativeSrc":"14288:7:53","nodeType":"YulTypedName","src":"14288:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14300:6:53","nodeType":"YulTypedName","src":"14300:6:53","type":""},{"name":"value1","nativeSrc":"14308:6:53","nodeType":"YulTypedName","src":"14308:6:53","type":""}],"src":"14206:489:53"},{"body":{"nativeSrc":"14861:100:53","nodeType":"YulBlock","src":"14861:100:53","statements":[{"nativeSrc":"14871:26:53","nodeType":"YulAssignment","src":"14871:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"14883:9:53","nodeType":"YulIdentifier","src":"14883:9:53"},{"kind":"number","nativeSrc":"14894:2:53","nodeType":"YulLiteral","src":"14894:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14879:3:53","nodeType":"YulIdentifier","src":"14879:3:53"},"nativeSrc":"14879:18:53","nodeType":"YulFunctionCall","src":"14879:18:53"},"variableNames":[{"name":"tail","nativeSrc":"14871:4:53","nodeType":"YulIdentifier","src":"14871:4:53"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14937:6:53","nodeType":"YulIdentifier","src":"14937:6:53"},{"name":"headStart","nativeSrc":"14945:9:53","nodeType":"YulIdentifier","src":"14945:9:53"}],"functionName":{"name":"abi_encode_struct_MessagingFee","nativeSrc":"14906:30:53","nodeType":"YulIdentifier","src":"14906:30:53"},"nativeSrc":"14906:49:53","nodeType":"YulFunctionCall","src":"14906:49:53"},"nativeSrc":"14906:49:53","nodeType":"YulExpressionStatement","src":"14906:49:53"}]},"name":"abi_encode_tuple_t_struct$_MessagingFee_$2169_memory_ptr__to_t_struct$_MessagingFee_$2169_memory_ptr__fromStack_reversed","nativeSrc":"14700:261:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14830:9:53","nodeType":"YulTypedName","src":"14830:9:53","type":""},{"name":"value0","nativeSrc":"14841:6:53","nodeType":"YulTypedName","src":"14841:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14852:4:53","nodeType":"YulTypedName","src":"14852:4:53","type":""}],"src":"14700:261:53"},{"body":{"nativeSrc":"15053:301:53","nodeType":"YulBlock","src":"15053:301:53","statements":[{"body":{"nativeSrc":"15099:16:53","nodeType":"YulBlock","src":"15099:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15108:1:53","nodeType":"YulLiteral","src":"15108:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15111:1:53","nodeType":"YulLiteral","src":"15111:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15101:6:53","nodeType":"YulIdentifier","src":"15101:6:53"},"nativeSrc":"15101:12:53","nodeType":"YulFunctionCall","src":"15101:12:53"},"nativeSrc":"15101:12:53","nodeType":"YulExpressionStatement","src":"15101:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15074:7:53","nodeType":"YulIdentifier","src":"15074:7:53"},{"name":"headStart","nativeSrc":"15083:9:53","nodeType":"YulIdentifier","src":"15083:9:53"}],"functionName":{"name":"sub","nativeSrc":"15070:3:53","nodeType":"YulIdentifier","src":"15070:3:53"},"nativeSrc":"15070:23:53","nodeType":"YulFunctionCall","src":"15070:23:53"},{"kind":"number","nativeSrc":"15095:2:53","nodeType":"YulLiteral","src":"15095:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15066:3:53","nodeType":"YulIdentifier","src":"15066:3:53"},"nativeSrc":"15066:32:53","nodeType":"YulFunctionCall","src":"15066:32:53"},"nativeSrc":"15063:52:53","nodeType":"YulIf","src":"15063:52:53"},{"nativeSrc":"15124:36:53","nodeType":"YulVariableDeclaration","src":"15124:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"15150:9:53","nodeType":"YulIdentifier","src":"15150:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"15137:12:53","nodeType":"YulIdentifier","src":"15137:12:53"},"nativeSrc":"15137:23:53","nodeType":"YulFunctionCall","src":"15137:23:53"},"variables":[{"name":"value","nativeSrc":"15128:5:53","nodeType":"YulTypedName","src":"15128:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15194:5:53","nodeType":"YulIdentifier","src":"15194:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"15169:24:53","nodeType":"YulIdentifier","src":"15169:24:53"},"nativeSrc":"15169:31:53","nodeType":"YulFunctionCall","src":"15169:31:53"},"nativeSrc":"15169:31:53","nodeType":"YulExpressionStatement","src":"15169:31:53"},{"nativeSrc":"15209:15:53","nodeType":"YulAssignment","src":"15209:15:53","value":{"name":"value","nativeSrc":"15219:5:53","nodeType":"YulIdentifier","src":"15219:5:53"},"variableNames":[{"name":"value0","nativeSrc":"15209:6:53","nodeType":"YulIdentifier","src":"15209:6:53"}]},{"nativeSrc":"15233:47:53","nodeType":"YulVariableDeclaration","src":"15233:47:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15265:9:53","nodeType":"YulIdentifier","src":"15265:9:53"},{"kind":"number","nativeSrc":"15276:2:53","nodeType":"YulLiteral","src":"15276:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15261:3:53","nodeType":"YulIdentifier","src":"15261:3:53"},"nativeSrc":"15261:18:53","nodeType":"YulFunctionCall","src":"15261:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"15248:12:53","nodeType":"YulIdentifier","src":"15248:12:53"},"nativeSrc":"15248:32:53","nodeType":"YulFunctionCall","src":"15248:32:53"},"variables":[{"name":"value_1","nativeSrc":"15237:7:53","nodeType":"YulTypedName","src":"15237:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"15314:7:53","nodeType":"YulIdentifier","src":"15314:7:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"15289:24:53","nodeType":"YulIdentifier","src":"15289:24:53"},"nativeSrc":"15289:33:53","nodeType":"YulFunctionCall","src":"15289:33:53"},"nativeSrc":"15289:33:53","nodeType":"YulExpressionStatement","src":"15289:33:53"},{"nativeSrc":"15331:17:53","nodeType":"YulAssignment","src":"15331:17:53","value":{"name":"value_1","nativeSrc":"15341:7:53","nodeType":"YulIdentifier","src":"15341:7:53"},"variableNames":[{"name":"value1","nativeSrc":"15331:6:53","nodeType":"YulIdentifier","src":"15331:6:53"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"14966:388:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15011:9:53","nodeType":"YulTypedName","src":"15011:9:53","type":""},{"name":"dataEnd","nativeSrc":"15022:7:53","nodeType":"YulTypedName","src":"15022:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15034:6:53","nodeType":"YulTypedName","src":"15034:6:53","type":""},{"name":"value1","nativeSrc":"15042:6:53","nodeType":"YulTypedName","src":"15042:6:53","type":""}],"src":"14966:388:53"},{"body":{"nativeSrc":"15455:140:53","nodeType":"YulBlock","src":"15455:140:53","statements":[{"body":{"nativeSrc":"15501:16:53","nodeType":"YulBlock","src":"15501:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15510:1:53","nodeType":"YulLiteral","src":"15510:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15513:1:53","nodeType":"YulLiteral","src":"15513:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15503:6:53","nodeType":"YulIdentifier","src":"15503:6:53"},"nativeSrc":"15503:12:53","nodeType":"YulFunctionCall","src":"15503:12:53"},"nativeSrc":"15503:12:53","nodeType":"YulExpressionStatement","src":"15503:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15476:7:53","nodeType":"YulIdentifier","src":"15476:7:53"},{"name":"headStart","nativeSrc":"15485:9:53","nodeType":"YulIdentifier","src":"15485:9:53"}],"functionName":{"name":"sub","nativeSrc":"15472:3:53","nodeType":"YulIdentifier","src":"15472:3:53"},"nativeSrc":"15472:23:53","nodeType":"YulFunctionCall","src":"15472:23:53"},{"kind":"number","nativeSrc":"15497:2:53","nodeType":"YulLiteral","src":"15497:2:53","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"15468:3:53","nodeType":"YulIdentifier","src":"15468:3:53"},"nativeSrc":"15468:32:53","nodeType":"YulFunctionCall","src":"15468:32:53"},"nativeSrc":"15465:52:53","nodeType":"YulIf","src":"15465:52:53"},{"nativeSrc":"15526:63:53","nodeType":"YulAssignment","src":"15526:63:53","value":{"arguments":[{"name":"headStart","nativeSrc":"15570:9:53","nodeType":"YulIdentifier","src":"15570:9:53"},{"name":"dataEnd","nativeSrc":"15581:7:53","nodeType":"YulIdentifier","src":"15581:7:53"}],"functionName":{"name":"abi_decode_struct_Origin_calldata","nativeSrc":"15536:33:53","nodeType":"YulIdentifier","src":"15536:33:53"},"nativeSrc":"15536:53:53","nodeType":"YulFunctionCall","src":"15536:53:53"},"variableNames":[{"name":"value0","nativeSrc":"15526:6:53","nodeType":"YulIdentifier","src":"15526:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptr","nativeSrc":"15359:236:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15421:9:53","nodeType":"YulTypedName","src":"15421:9:53","type":""},{"name":"dataEnd","nativeSrc":"15432:7:53","nodeType":"YulTypedName","src":"15432:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15444:6:53","nodeType":"YulTypedName","src":"15444:6:53","type":""}],"src":"15359:236:53"},{"body":{"nativeSrc":"15655:325:53","nodeType":"YulBlock","src":"15655:325:53","statements":[{"nativeSrc":"15665:22:53","nodeType":"YulAssignment","src":"15665:22:53","value":{"arguments":[{"kind":"number","nativeSrc":"15679:1:53","nodeType":"YulLiteral","src":"15679:1:53","type":"","value":"1"},{"name":"data","nativeSrc":"15682:4:53","nodeType":"YulIdentifier","src":"15682:4:53"}],"functionName":{"name":"shr","nativeSrc":"15675:3:53","nodeType":"YulIdentifier","src":"15675:3:53"},"nativeSrc":"15675:12:53","nodeType":"YulFunctionCall","src":"15675:12:53"},"variableNames":[{"name":"length","nativeSrc":"15665:6:53","nodeType":"YulIdentifier","src":"15665:6:53"}]},{"nativeSrc":"15696:38:53","nodeType":"YulVariableDeclaration","src":"15696:38:53","value":{"arguments":[{"name":"data","nativeSrc":"15726:4:53","nodeType":"YulIdentifier","src":"15726:4:53"},{"kind":"number","nativeSrc":"15732:1:53","nodeType":"YulLiteral","src":"15732:1:53","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"15722:3:53","nodeType":"YulIdentifier","src":"15722:3:53"},"nativeSrc":"15722:12:53","nodeType":"YulFunctionCall","src":"15722:12:53"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"15700:18:53","nodeType":"YulTypedName","src":"15700:18:53","type":""}]},{"body":{"nativeSrc":"15773:31:53","nodeType":"YulBlock","src":"15773:31:53","statements":[{"nativeSrc":"15775:27:53","nodeType":"YulAssignment","src":"15775:27:53","value":{"arguments":[{"name":"length","nativeSrc":"15789:6:53","nodeType":"YulIdentifier","src":"15789:6:53"},{"kind":"number","nativeSrc":"15797:4:53","nodeType":"YulLiteral","src":"15797:4:53","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"15785:3:53","nodeType":"YulIdentifier","src":"15785:3:53"},"nativeSrc":"15785:17:53","nodeType":"YulFunctionCall","src":"15785:17:53"},"variableNames":[{"name":"length","nativeSrc":"15775:6:53","nodeType":"YulIdentifier","src":"15775:6:53"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"15753:18:53","nodeType":"YulIdentifier","src":"15753:18:53"}],"functionName":{"name":"iszero","nativeSrc":"15746:6:53","nodeType":"YulIdentifier","src":"15746:6:53"},"nativeSrc":"15746:26:53","nodeType":"YulFunctionCall","src":"15746:26:53"},"nativeSrc":"15743:61:53","nodeType":"YulIf","src":"15743:61:53"},{"body":{"nativeSrc":"15863:111:53","nodeType":"YulBlock","src":"15863:111:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15884:1:53","nodeType":"YulLiteral","src":"15884:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"15891:3:53","nodeType":"YulLiteral","src":"15891:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"15896:10:53","nodeType":"YulLiteral","src":"15896:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"15887:3:53","nodeType":"YulIdentifier","src":"15887:3:53"},"nativeSrc":"15887:20:53","nodeType":"YulFunctionCall","src":"15887:20:53"}],"functionName":{"name":"mstore","nativeSrc":"15877:6:53","nodeType":"YulIdentifier","src":"15877:6:53"},"nativeSrc":"15877:31:53","nodeType":"YulFunctionCall","src":"15877:31:53"},"nativeSrc":"15877:31:53","nodeType":"YulExpressionStatement","src":"15877:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15928:1:53","nodeType":"YulLiteral","src":"15928:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"15931:4:53","nodeType":"YulLiteral","src":"15931:4:53","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"15921:6:53","nodeType":"YulIdentifier","src":"15921:6:53"},"nativeSrc":"15921:15:53","nodeType":"YulFunctionCall","src":"15921:15:53"},"nativeSrc":"15921:15:53","nodeType":"YulExpressionStatement","src":"15921:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15956:1:53","nodeType":"YulLiteral","src":"15956:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"15959:4:53","nodeType":"YulLiteral","src":"15959:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15949:6:53","nodeType":"YulIdentifier","src":"15949:6:53"},"nativeSrc":"15949:15:53","nodeType":"YulFunctionCall","src":"15949:15:53"},"nativeSrc":"15949:15:53","nodeType":"YulExpressionStatement","src":"15949:15:53"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"15819:18:53","nodeType":"YulIdentifier","src":"15819:18:53"},{"arguments":[{"name":"length","nativeSrc":"15842:6:53","nodeType":"YulIdentifier","src":"15842:6:53"},{"kind":"number","nativeSrc":"15850:2:53","nodeType":"YulLiteral","src":"15850:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"15839:2:53","nodeType":"YulIdentifier","src":"15839:2:53"},"nativeSrc":"15839:14:53","nodeType":"YulFunctionCall","src":"15839:14:53"}],"functionName":{"name":"eq","nativeSrc":"15816:2:53","nodeType":"YulIdentifier","src":"15816:2:53"},"nativeSrc":"15816:38:53","nodeType":"YulFunctionCall","src":"15816:38:53"},"nativeSrc":"15813:161:53","nodeType":"YulIf","src":"15813:161:53"}]},"name":"extract_byte_array_length","nativeSrc":"15600:380:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"15635:4:53","nodeType":"YulTypedName","src":"15635:4:53","type":""}],"returnVariables":[{"name":"length","nativeSrc":"15644:6:53","nodeType":"YulTypedName","src":"15644:6:53","type":""}],"src":"15600:380:53"},{"body":{"nativeSrc":"16112:136:53","nodeType":"YulBlock","src":"16112:136:53","statements":[{"nativeSrc":"16122:26:53","nodeType":"YulAssignment","src":"16122:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16134:9:53","nodeType":"YulIdentifier","src":"16134:9:53"},{"kind":"number","nativeSrc":"16145:2:53","nodeType":"YulLiteral","src":"16145:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16130:3:53","nodeType":"YulIdentifier","src":"16130:3:53"},"nativeSrc":"16130:18:53","nodeType":"YulFunctionCall","src":"16130:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16122:4:53","nodeType":"YulIdentifier","src":"16122:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16164:9:53","nodeType":"YulIdentifier","src":"16164:9:53"},{"arguments":[{"name":"value0","nativeSrc":"16179:6:53","nodeType":"YulIdentifier","src":"16179:6:53"},{"kind":"number","nativeSrc":"16187:10:53","nodeType":"YulLiteral","src":"16187:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"16175:3:53","nodeType":"YulIdentifier","src":"16175:3:53"},"nativeSrc":"16175:23:53","nodeType":"YulFunctionCall","src":"16175:23:53"}],"functionName":{"name":"mstore","nativeSrc":"16157:6:53","nodeType":"YulIdentifier","src":"16157:6:53"},"nativeSrc":"16157:42:53","nodeType":"YulFunctionCall","src":"16157:42:53"},"nativeSrc":"16157:42:53","nodeType":"YulExpressionStatement","src":"16157:42:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16219:9:53","nodeType":"YulIdentifier","src":"16219:9:53"},{"kind":"number","nativeSrc":"16230:2:53","nodeType":"YulLiteral","src":"16230:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16215:3:53","nodeType":"YulIdentifier","src":"16215:3:53"},"nativeSrc":"16215:18:53","nodeType":"YulFunctionCall","src":"16215:18:53"},{"name":"value1","nativeSrc":"16235:6:53","nodeType":"YulIdentifier","src":"16235:6:53"}],"functionName":{"name":"mstore","nativeSrc":"16208:6:53","nodeType":"YulIdentifier","src":"16208:6:53"},"nativeSrc":"16208:34:53","nodeType":"YulFunctionCall","src":"16208:34:53"},"nativeSrc":"16208:34:53","nodeType":"YulExpressionStatement","src":"16208:34:53"}]},"name":"abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed","nativeSrc":"15985:263:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16073:9:53","nodeType":"YulTypedName","src":"16073:9:53","type":""},{"name":"value1","nativeSrc":"16084:6:53","nodeType":"YulTypedName","src":"16084:6:53","type":""},{"name":"value0","nativeSrc":"16092:6:53","nodeType":"YulTypedName","src":"16092:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16103:4:53","nodeType":"YulTypedName","src":"16103:4:53","type":""}],"src":"15985:263:53"},{"body":{"nativeSrc":"16353:248:53","nodeType":"YulBlock","src":"16353:248:53","statements":[{"body":{"nativeSrc":"16399:16:53","nodeType":"YulBlock","src":"16399:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16408:1:53","nodeType":"YulLiteral","src":"16408:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"16411:1:53","nodeType":"YulLiteral","src":"16411:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16401:6:53","nodeType":"YulIdentifier","src":"16401:6:53"},"nativeSrc":"16401:12:53","nodeType":"YulFunctionCall","src":"16401:12:53"},"nativeSrc":"16401:12:53","nodeType":"YulExpressionStatement","src":"16401:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16374:7:53","nodeType":"YulIdentifier","src":"16374:7:53"},{"name":"headStart","nativeSrc":"16383:9:53","nodeType":"YulIdentifier","src":"16383:9:53"}],"functionName":{"name":"sub","nativeSrc":"16370:3:53","nodeType":"YulIdentifier","src":"16370:3:53"},"nativeSrc":"16370:23:53","nodeType":"YulFunctionCall","src":"16370:23:53"},{"kind":"number","nativeSrc":"16395:2:53","nodeType":"YulLiteral","src":"16395:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"16366:3:53","nodeType":"YulIdentifier","src":"16366:3:53"},"nativeSrc":"16366:32:53","nodeType":"YulFunctionCall","src":"16366:32:53"},"nativeSrc":"16363:52:53","nodeType":"YulIf","src":"16363:52:53"},{"nativeSrc":"16424:35:53","nodeType":"YulVariableDeclaration","src":"16424:35:53","value":{"arguments":[],"functionName":{"name":"allocate_memory_3822","nativeSrc":"16437:20:53","nodeType":"YulIdentifier","src":"16437:20:53"},"nativeSrc":"16437:22:53","nodeType":"YulFunctionCall","src":"16437:22:53"},"variables":[{"name":"value","nativeSrc":"16428:5:53","nodeType":"YulTypedName","src":"16428:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"16475:5:53","nodeType":"YulIdentifier","src":"16475:5:53"},{"arguments":[{"name":"headStart","nativeSrc":"16495:9:53","nodeType":"YulIdentifier","src":"16495:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"16482:12:53","nodeType":"YulIdentifier","src":"16482:12:53"},"nativeSrc":"16482:23:53","nodeType":"YulFunctionCall","src":"16482:23:53"}],"functionName":{"name":"mstore","nativeSrc":"16468:6:53","nodeType":"YulIdentifier","src":"16468:6:53"},"nativeSrc":"16468:38:53","nodeType":"YulFunctionCall","src":"16468:38:53"},"nativeSrc":"16468:38:53","nodeType":"YulExpressionStatement","src":"16468:38:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16526:5:53","nodeType":"YulIdentifier","src":"16526:5:53"},{"kind":"number","nativeSrc":"16533:2:53","nodeType":"YulLiteral","src":"16533:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16522:3:53","nodeType":"YulIdentifier","src":"16522:3:53"},"nativeSrc":"16522:14:53","nodeType":"YulFunctionCall","src":"16522:14:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16555:9:53","nodeType":"YulIdentifier","src":"16555:9:53"},{"kind":"number","nativeSrc":"16566:2:53","nodeType":"YulLiteral","src":"16566:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16551:3:53","nodeType":"YulIdentifier","src":"16551:3:53"},"nativeSrc":"16551:18:53","nodeType":"YulFunctionCall","src":"16551:18:53"}],"functionName":{"name":"calldataload","nativeSrc":"16538:12:53","nodeType":"YulIdentifier","src":"16538:12:53"},"nativeSrc":"16538:32:53","nodeType":"YulFunctionCall","src":"16538:32:53"}],"functionName":{"name":"mstore","nativeSrc":"16515:6:53","nodeType":"YulIdentifier","src":"16515:6:53"},"nativeSrc":"16515:56:53","nodeType":"YulFunctionCall","src":"16515:56:53"},"nativeSrc":"16515:56:53","nodeType":"YulExpressionStatement","src":"16515:56:53"},{"nativeSrc":"16580:15:53","nodeType":"YulAssignment","src":"16580:15:53","value":{"name":"value","nativeSrc":"16590:5:53","nodeType":"YulIdentifier","src":"16590:5:53"},"variableNames":[{"name":"value0","nativeSrc":"16580:6:53","nodeType":"YulIdentifier","src":"16580:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr","nativeSrc":"16253:348:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16319:9:53","nodeType":"YulTypedName","src":"16319:9:53","type":""},{"name":"dataEnd","nativeSrc":"16330:7:53","nodeType":"YulTypedName","src":"16330:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16342:6:53","nodeType":"YulTypedName","src":"16342:6:53","type":""}],"src":"16253:348:53"},{"body":{"nativeSrc":"16733:136:53","nodeType":"YulBlock","src":"16733:136:53","statements":[{"nativeSrc":"16743:26:53","nodeType":"YulAssignment","src":"16743:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"16755:9:53","nodeType":"YulIdentifier","src":"16755:9:53"},{"kind":"number","nativeSrc":"16766:2:53","nodeType":"YulLiteral","src":"16766:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16751:3:53","nodeType":"YulIdentifier","src":"16751:3:53"},"nativeSrc":"16751:18:53","nodeType":"YulFunctionCall","src":"16751:18:53"},"variableNames":[{"name":"tail","nativeSrc":"16743:4:53","nodeType":"YulIdentifier","src":"16743:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16785:9:53","nodeType":"YulIdentifier","src":"16785:9:53"},{"arguments":[{"name":"value0","nativeSrc":"16800:6:53","nodeType":"YulIdentifier","src":"16800:6:53"},{"kind":"number","nativeSrc":"16808:10:53","nodeType":"YulLiteral","src":"16808:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"16796:3:53","nodeType":"YulIdentifier","src":"16796:3:53"},"nativeSrc":"16796:23:53","nodeType":"YulFunctionCall","src":"16796:23:53"}],"functionName":{"name":"mstore","nativeSrc":"16778:6:53","nodeType":"YulIdentifier","src":"16778:6:53"},"nativeSrc":"16778:42:53","nodeType":"YulFunctionCall","src":"16778:42:53"},"nativeSrc":"16778:42:53","nodeType":"YulExpressionStatement","src":"16778:42:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16840:9:53","nodeType":"YulIdentifier","src":"16840:9:53"},{"kind":"number","nativeSrc":"16851:2:53","nodeType":"YulLiteral","src":"16851:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16836:3:53","nodeType":"YulIdentifier","src":"16836:3:53"},"nativeSrc":"16836:18:53","nodeType":"YulFunctionCall","src":"16836:18:53"},{"name":"value1","nativeSrc":"16856:6:53","nodeType":"YulIdentifier","src":"16856:6:53"}],"functionName":{"name":"mstore","nativeSrc":"16829:6:53","nodeType":"YulIdentifier","src":"16829:6:53"},"nativeSrc":"16829:34:53","nodeType":"YulFunctionCall","src":"16829:34:53"},"nativeSrc":"16829:34:53","nodeType":"YulExpressionStatement","src":"16829:34:53"}]},"name":"abi_encode_tuple_t_uint32_t_uint256__to_t_uint32_t_uint256__fromStack_reversed","nativeSrc":"16606:263:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16694:9:53","nodeType":"YulTypedName","src":"16694:9:53","type":""},{"name":"value1","nativeSrc":"16705:6:53","nodeType":"YulTypedName","src":"16705:6:53","type":""},{"name":"value0","nativeSrc":"16713:6:53","nodeType":"YulTypedName","src":"16713:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16724:4:53","nodeType":"YulTypedName","src":"16724:4:53","type":""}],"src":"16606:263:53"},{"body":{"nativeSrc":"17031:218:53","nodeType":"YulBlock","src":"17031:218:53","statements":[{"nativeSrc":"17041:26:53","nodeType":"YulAssignment","src":"17041:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"17053:9:53","nodeType":"YulIdentifier","src":"17053:9:53"},{"kind":"number","nativeSrc":"17064:2:53","nodeType":"YulLiteral","src":"17064:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17049:3:53","nodeType":"YulIdentifier","src":"17049:3:53"},"nativeSrc":"17049:18:53","nodeType":"YulFunctionCall","src":"17049:18:53"},"variableNames":[{"name":"tail","nativeSrc":"17041:4:53","nodeType":"YulIdentifier","src":"17041:4:53"}]},{"nativeSrc":"17076:29:53","nodeType":"YulVariableDeclaration","src":"17076:29:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17094:3:53","nodeType":"YulLiteral","src":"17094:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"17099:1:53","nodeType":"YulLiteral","src":"17099:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"17090:3:53","nodeType":"YulIdentifier","src":"17090:3:53"},"nativeSrc":"17090:11:53","nodeType":"YulFunctionCall","src":"17090:11:53"},{"kind":"number","nativeSrc":"17103:1:53","nodeType":"YulLiteral","src":"17103:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"17086:3:53","nodeType":"YulIdentifier","src":"17086:3:53"},"nativeSrc":"17086:19:53","nodeType":"YulFunctionCall","src":"17086:19:53"},"variables":[{"name":"_1","nativeSrc":"17080:2:53","nodeType":"YulTypedName","src":"17080:2:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17121:9:53","nodeType":"YulIdentifier","src":"17121:9:53"},{"arguments":[{"name":"value0","nativeSrc":"17136:6:53","nodeType":"YulIdentifier","src":"17136:6:53"},{"name":"_1","nativeSrc":"17144:2:53","nodeType":"YulIdentifier","src":"17144:2:53"}],"functionName":{"name":"and","nativeSrc":"17132:3:53","nodeType":"YulIdentifier","src":"17132:3:53"},"nativeSrc":"17132:15:53","nodeType":"YulFunctionCall","src":"17132:15:53"}],"functionName":{"name":"mstore","nativeSrc":"17114:6:53","nodeType":"YulIdentifier","src":"17114:6:53"},"nativeSrc":"17114:34:53","nodeType":"YulFunctionCall","src":"17114:34:53"},"nativeSrc":"17114:34:53","nodeType":"YulExpressionStatement","src":"17114:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17168:9:53","nodeType":"YulIdentifier","src":"17168:9:53"},{"kind":"number","nativeSrc":"17179:2:53","nodeType":"YulLiteral","src":"17179:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17164:3:53","nodeType":"YulIdentifier","src":"17164:3:53"},"nativeSrc":"17164:18:53","nodeType":"YulFunctionCall","src":"17164:18:53"},{"name":"value1","nativeSrc":"17184:6:53","nodeType":"YulIdentifier","src":"17184:6:53"}],"functionName":{"name":"mstore","nativeSrc":"17157:6:53","nodeType":"YulIdentifier","src":"17157:6:53"},"nativeSrc":"17157:34:53","nodeType":"YulFunctionCall","src":"17157:34:53"},"nativeSrc":"17157:34:53","nodeType":"YulExpressionStatement","src":"17157:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17211:9:53","nodeType":"YulIdentifier","src":"17211:9:53"},{"kind":"number","nativeSrc":"17222:2:53","nodeType":"YulLiteral","src":"17222:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17207:3:53","nodeType":"YulIdentifier","src":"17207:3:53"},"nativeSrc":"17207:18:53","nodeType":"YulFunctionCall","src":"17207:18:53"},{"arguments":[{"name":"value2","nativeSrc":"17231:6:53","nodeType":"YulIdentifier","src":"17231:6:53"},{"name":"_1","nativeSrc":"17239:2:53","nodeType":"YulIdentifier","src":"17239:2:53"}],"functionName":{"name":"and","nativeSrc":"17227:3:53","nodeType":"YulIdentifier","src":"17227:3:53"},"nativeSrc":"17227:15:53","nodeType":"YulFunctionCall","src":"17227:15:53"}],"functionName":{"name":"mstore","nativeSrc":"17200:6:53","nodeType":"YulIdentifier","src":"17200:6:53"},"nativeSrc":"17200:43:53","nodeType":"YulFunctionCall","src":"17200:43:53"},"nativeSrc":"17200:43:53","nodeType":"YulExpressionStatement","src":"17200:43:53"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed","nativeSrc":"16874:375:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16984:9:53","nodeType":"YulTypedName","src":"16984:9:53","type":""},{"name":"value2","nativeSrc":"16995:6:53","nodeType":"YulTypedName","src":"16995:6:53","type":""},{"name":"value1","nativeSrc":"17003:6:53","nodeType":"YulTypedName","src":"17003:6:53","type":""},{"name":"value0","nativeSrc":"17011:6:53","nodeType":"YulTypedName","src":"17011:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17022:4:53","nodeType":"YulTypedName","src":"17022:4:53","type":""}],"src":"16874:375:53"},{"body":{"nativeSrc":"17460:1369:53","nodeType":"YulBlock","src":"17460:1369:53","statements":[{"nativeSrc":"17470:28:53","nodeType":"YulVariableDeclaration","src":"17470:28:53","value":{"kind":"number","nativeSrc":"17480:18:53","nodeType":"YulLiteral","src":"17480:18:53","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"17474:2:53","nodeType":"YulTypedName","src":"17474:2:53","type":""}]},{"body":{"nativeSrc":"17525:22:53","nodeType":"YulBlock","src":"17525:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"17527:16:53","nodeType":"YulIdentifier","src":"17527:16:53"},"nativeSrc":"17527:18:53","nodeType":"YulFunctionCall","src":"17527:18:53"},"nativeSrc":"17527:18:53","nodeType":"YulExpressionStatement","src":"17527:18:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"17513:6:53","nodeType":"YulIdentifier","src":"17513:6:53"},{"name":"_1","nativeSrc":"17521:2:53","nodeType":"YulIdentifier","src":"17521:2:53"}],"functionName":{"name":"gt","nativeSrc":"17510:2:53","nodeType":"YulIdentifier","src":"17510:2:53"},"nativeSrc":"17510:14:53","nodeType":"YulFunctionCall","src":"17510:14:53"},"nativeSrc":"17507:40:53","nodeType":"YulIf","src":"17507:40:53"},{"nativeSrc":"17556:24:53","nodeType":"YulVariableDeclaration","src":"17556:24:53","value":{"arguments":[{"kind":"number","nativeSrc":"17570:1:53","nodeType":"YulLiteral","src":"17570:1:53","type":"","value":"5"},{"name":"length","nativeSrc":"17573:6:53","nodeType":"YulIdentifier","src":"17573:6:53"}],"functionName":{"name":"shl","nativeSrc":"17566:3:53","nodeType":"YulIdentifier","src":"17566:3:53"},"nativeSrc":"17566:14:53","nodeType":"YulFunctionCall","src":"17566:14:53"},"variables":[{"name":"_2","nativeSrc":"17560:2:53","nodeType":"YulTypedName","src":"17560:2:53","type":""}]},{"nativeSrc":"17589:14:53","nodeType":"YulVariableDeclaration","src":"17589:14:53","value":{"kind":"number","nativeSrc":"17599:4:53","nodeType":"YulLiteral","src":"17599:4:53","type":"","value":"0x20"},"variables":[{"name":"_3","nativeSrc":"17593:2:53","nodeType":"YulTypedName","src":"17593:2:53","type":""}]},{"nativeSrc":"17612:39:53","nodeType":"YulVariableDeclaration","src":"17612:39:53","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"17643:2:53","nodeType":"YulIdentifier","src":"17643:2:53"},{"name":"_3","nativeSrc":"17647:2:53","nodeType":"YulIdentifier","src":"17647:2:53"}],"functionName":{"name":"add","nativeSrc":"17639:3:53","nodeType":"YulIdentifier","src":"17639:3:53"},"nativeSrc":"17639:11:53","nodeType":"YulFunctionCall","src":"17639:11:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"17623:15:53","nodeType":"YulIdentifier","src":"17623:15:53"},"nativeSrc":"17623:28:53","nodeType":"YulFunctionCall","src":"17623:28:53"},"variables":[{"name":"dst","nativeSrc":"17616:3:53","nodeType":"YulTypedName","src":"17616:3:53","type":""}]},{"nativeSrc":"17660:16:53","nodeType":"YulVariableDeclaration","src":"17660:16:53","value":{"name":"dst","nativeSrc":"17673:3:53","nodeType":"YulIdentifier","src":"17673:3:53"},"variables":[{"name":"dst_1","nativeSrc":"17664:5:53","nodeType":"YulTypedName","src":"17664:5:53","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"17692:3:53","nodeType":"YulIdentifier","src":"17692:3:53"},{"name":"length","nativeSrc":"17697:6:53","nodeType":"YulIdentifier","src":"17697:6:53"}],"functionName":{"name":"mstore","nativeSrc":"17685:6:53","nodeType":"YulIdentifier","src":"17685:6:53"},"nativeSrc":"17685:19:53","nodeType":"YulFunctionCall","src":"17685:19:53"},"nativeSrc":"17685:19:53","nodeType":"YulExpressionStatement","src":"17685:19:53"},{"nativeSrc":"17713:19:53","nodeType":"YulAssignment","src":"17713:19:53","value":{"arguments":[{"name":"dst","nativeSrc":"17724:3:53","nodeType":"YulIdentifier","src":"17724:3:53"},{"name":"_3","nativeSrc":"17729:2:53","nodeType":"YulIdentifier","src":"17729:2:53"}],"functionName":{"name":"add","nativeSrc":"17720:3:53","nodeType":"YulIdentifier","src":"17720:3:53"},"nativeSrc":"17720:12:53","nodeType":"YulFunctionCall","src":"17720:12:53"},"variableNames":[{"name":"dst","nativeSrc":"17713:3:53","nodeType":"YulIdentifier","src":"17713:3:53"}]},{"nativeSrc":"17741:28:53","nodeType":"YulVariableDeclaration","src":"17741:28:53","value":{"arguments":[{"name":"value","nativeSrc":"17759:5:53","nodeType":"YulIdentifier","src":"17759:5:53"},{"name":"_2","nativeSrc":"17766:2:53","nodeType":"YulIdentifier","src":"17766:2:53"}],"functionName":{"name":"add","nativeSrc":"17755:3:53","nodeType":"YulIdentifier","src":"17755:3:53"},"nativeSrc":"17755:14:53","nodeType":"YulFunctionCall","src":"17755:14:53"},"variables":[{"name":"srcEnd","nativeSrc":"17745:6:53","nodeType":"YulTypedName","src":"17745:6:53","type":""}]},{"body":{"nativeSrc":"17808:16:53","nodeType":"YulBlock","src":"17808:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17817:1:53","nodeType":"YulLiteral","src":"17817:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"17820:1:53","nodeType":"YulLiteral","src":"17820:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17810:6:53","nodeType":"YulIdentifier","src":"17810:6:53"},"nativeSrc":"17810:12:53","nodeType":"YulFunctionCall","src":"17810:12:53"},"nativeSrc":"17810:12:53","nodeType":"YulExpressionStatement","src":"17810:12:53"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"17784:6:53","nodeType":"YulIdentifier","src":"17784:6:53"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"17792:12:53","nodeType":"YulIdentifier","src":"17792:12:53"},"nativeSrc":"17792:14:53","nodeType":"YulFunctionCall","src":"17792:14:53"}],"functionName":{"name":"gt","nativeSrc":"17781:2:53","nodeType":"YulIdentifier","src":"17781:2:53"},"nativeSrc":"17781:26:53","nodeType":"YulFunctionCall","src":"17781:26:53"},"nativeSrc":"17778:46:53","nodeType":"YulIf","src":"17778:46:53"},{"nativeSrc":"17833:16:53","nodeType":"YulVariableDeclaration","src":"17833:16:53","value":{"name":"value","nativeSrc":"17844:5:53","nodeType":"YulIdentifier","src":"17844:5:53"},"variables":[{"name":"src","nativeSrc":"17837:3:53","nodeType":"YulTypedName","src":"17837:3:53","type":""}]},{"body":{"nativeSrc":"17914:882:53","nodeType":"YulBlock","src":"17914:882:53","statements":[{"nativeSrc":"17928:36:53","nodeType":"YulVariableDeclaration","src":"17928:36:53","value":{"arguments":[{"name":"src","nativeSrc":"17960:3:53","nodeType":"YulIdentifier","src":"17960:3:53"}],"functionName":{"name":"calldataload","nativeSrc":"17947:12:53","nodeType":"YulIdentifier","src":"17947:12:53"},"nativeSrc":"17947:17:53","nodeType":"YulFunctionCall","src":"17947:17:53"},"variables":[{"name":"innerOffset","nativeSrc":"17932:11:53","nodeType":"YulTypedName","src":"17932:11:53","type":""}]},{"body":{"nativeSrc":"18012:74:53","nodeType":"YulBlock","src":"18012:74:53","statements":[{"nativeSrc":"18030:11:53","nodeType":"YulVariableDeclaration","src":"18030:11:53","value":{"kind":"number","nativeSrc":"18040:1:53","nodeType":"YulLiteral","src":"18040:1:53","type":"","value":"0"},"variables":[{"name":"_4","nativeSrc":"18034:2:53","nodeType":"YulTypedName","src":"18034:2:53","type":""}]},{"expression":{"arguments":[{"name":"_4","nativeSrc":"18065:2:53","nodeType":"YulIdentifier","src":"18065:2:53"},{"name":"_4","nativeSrc":"18069:2:53","nodeType":"YulIdentifier","src":"18069:2:53"}],"functionName":{"name":"revert","nativeSrc":"18058:6:53","nodeType":"YulIdentifier","src":"18058:6:53"},"nativeSrc":"18058:14:53","nodeType":"YulFunctionCall","src":"18058:14:53"},"nativeSrc":"18058:14:53","nodeType":"YulExpressionStatement","src":"18058:14:53"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"17983:11:53","nodeType":"YulIdentifier","src":"17983:11:53"},{"name":"_1","nativeSrc":"17996:2:53","nodeType":"YulIdentifier","src":"17996:2:53"}],"functionName":{"name":"gt","nativeSrc":"17980:2:53","nodeType":"YulIdentifier","src":"17980:2:53"},"nativeSrc":"17980:19:53","nodeType":"YulFunctionCall","src":"17980:19:53"},"nativeSrc":"17977:109:53","nodeType":"YulIf","src":"17977:109:53"},{"nativeSrc":"18099:33:53","nodeType":"YulVariableDeclaration","src":"18099:33:53","value":{"arguments":[{"name":"value","nativeSrc":"18113:5:53","nodeType":"YulIdentifier","src":"18113:5:53"},{"name":"innerOffset","nativeSrc":"18120:11:53","nodeType":"YulIdentifier","src":"18120:11:53"}],"functionName":{"name":"add","nativeSrc":"18109:3:53","nodeType":"YulIdentifier","src":"18109:3:53"},"nativeSrc":"18109:23:53","nodeType":"YulFunctionCall","src":"18109:23:53"},"variables":[{"name":"_5","nativeSrc":"18103:2:53","nodeType":"YulTypedName","src":"18103:2:53","type":""}]},{"body":{"nativeSrc":"18195:74:53","nodeType":"YulBlock","src":"18195:74:53","statements":[{"nativeSrc":"18213:11:53","nodeType":"YulVariableDeclaration","src":"18213:11:53","value":{"kind":"number","nativeSrc":"18223:1:53","nodeType":"YulLiteral","src":"18223:1:53","type":"","value":"0"},"variables":[{"name":"_6","nativeSrc":"18217:2:53","nodeType":"YulTypedName","src":"18217:2:53","type":""}]},{"expression":{"arguments":[{"name":"_6","nativeSrc":"18248:2:53","nodeType":"YulIdentifier","src":"18248:2:53"},{"name":"_6","nativeSrc":"18252:2:53","nodeType":"YulIdentifier","src":"18252:2:53"}],"functionName":{"name":"revert","nativeSrc":"18241:6:53","nodeType":"YulIdentifier","src":"18241:6:53"},"nativeSrc":"18241:14:53","nodeType":"YulFunctionCall","src":"18241:14:53"},"nativeSrc":"18241:14:53","nodeType":"YulExpressionStatement","src":"18241:14:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"18156:12:53","nodeType":"YulIdentifier","src":"18156:12:53"},"nativeSrc":"18156:14:53","nodeType":"YulFunctionCall","src":"18156:14:53"},{"name":"_5","nativeSrc":"18172:2:53","nodeType":"YulIdentifier","src":"18172:2:53"}],"functionName":{"name":"sub","nativeSrc":"18152:3:53","nodeType":"YulIdentifier","src":"18152:3:53"},"nativeSrc":"18152:23:53","nodeType":"YulFunctionCall","src":"18152:23:53"},{"kind":"number","nativeSrc":"18177:4:53","nodeType":"YulLiteral","src":"18177:4:53","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"18148:3:53","nodeType":"YulIdentifier","src":"18148:3:53"},"nativeSrc":"18148:34:53","nodeType":"YulFunctionCall","src":"18148:34:53"},"nativeSrc":"18145:124:53","nodeType":"YulIf","src":"18145:124:53"},{"nativeSrc":"18282:37:53","nodeType":"YulVariableDeclaration","src":"18282:37:53","value":{"arguments":[],"functionName":{"name":"allocate_memory_3825","nativeSrc":"18297:20:53","nodeType":"YulIdentifier","src":"18297:20:53"},"nativeSrc":"18297:22:53","nodeType":"YulFunctionCall","src":"18297:22:53"},"variables":[{"name":"value_1","nativeSrc":"18286:7:53","nodeType":"YulTypedName","src":"18286:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"18339:7:53","nodeType":"YulIdentifier","src":"18339:7:53"},{"arguments":[{"name":"_5","nativeSrc":"18366:2:53","nodeType":"YulIdentifier","src":"18366:2:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"18348:17:53","nodeType":"YulIdentifier","src":"18348:17:53"},"nativeSrc":"18348:21:53","nodeType":"YulFunctionCall","src":"18348:21:53"}],"functionName":{"name":"mstore","nativeSrc":"18332:6:53","nodeType":"YulIdentifier","src":"18332:6:53"},"nativeSrc":"18332:38:53","nodeType":"YulFunctionCall","src":"18332:38:53"},"nativeSrc":"18332:38:53","nodeType":"YulExpressionStatement","src":"18332:38:53"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"18394:7:53","nodeType":"YulIdentifier","src":"18394:7:53"},{"name":"_3","nativeSrc":"18403:2:53","nodeType":"YulIdentifier","src":"18403:2:53"}],"functionName":{"name":"add","nativeSrc":"18390:3:53","nodeType":"YulIdentifier","src":"18390:3:53"},"nativeSrc":"18390:16:53","nodeType":"YulFunctionCall","src":"18390:16:53"},{"arguments":[{"arguments":[{"name":"_5","nativeSrc":"18430:2:53","nodeType":"YulIdentifier","src":"18430:2:53"},{"name":"_3","nativeSrc":"18434:2:53","nodeType":"YulIdentifier","src":"18434:2:53"}],"functionName":{"name":"add","nativeSrc":"18426:3:53","nodeType":"YulIdentifier","src":"18426:3:53"},"nativeSrc":"18426:11:53","nodeType":"YulFunctionCall","src":"18426:11:53"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"18408:17:53","nodeType":"YulIdentifier","src":"18408:17:53"},"nativeSrc":"18408:30:53","nodeType":"YulFunctionCall","src":"18408:30:53"}],"functionName":{"name":"mstore","nativeSrc":"18383:6:53","nodeType":"YulIdentifier","src":"18383:6:53"},"nativeSrc":"18383:56:53","nodeType":"YulFunctionCall","src":"18383:56:53"},"nativeSrc":"18383:56:53","nodeType":"YulExpressionStatement","src":"18383:56:53"},{"nativeSrc":"18452:12:53","nodeType":"YulVariableDeclaration","src":"18452:12:53","value":{"kind":"number","nativeSrc":"18462:2:53","nodeType":"YulLiteral","src":"18462:2:53","type":"","value":"64"},"variables":[{"name":"_7","nativeSrc":"18456:2:53","nodeType":"YulTypedName","src":"18456:2:53","type":""}]},{"nativeSrc":"18477:39:53","nodeType":"YulVariableDeclaration","src":"18477:39:53","value":{"arguments":[{"arguments":[{"name":"_5","nativeSrc":"18508:2:53","nodeType":"YulIdentifier","src":"18508:2:53"},{"name":"_7","nativeSrc":"18512:2:53","nodeType":"YulIdentifier","src":"18512:2:53"}],"functionName":{"name":"add","nativeSrc":"18504:3:53","nodeType":"YulIdentifier","src":"18504:3:53"},"nativeSrc":"18504:11:53","nodeType":"YulFunctionCall","src":"18504:11:53"}],"functionName":{"name":"calldataload","nativeSrc":"18491:12:53","nodeType":"YulIdentifier","src":"18491:12:53"},"nativeSrc":"18491:25:53","nodeType":"YulFunctionCall","src":"18491:25:53"},"variables":[{"name":"offset","nativeSrc":"18481:6:53","nodeType":"YulTypedName","src":"18481:6:53","type":""}]},{"body":{"nativeSrc":"18559:74:53","nodeType":"YulBlock","src":"18559:74:53","statements":[{"nativeSrc":"18577:11:53","nodeType":"YulVariableDeclaration","src":"18577:11:53","value":{"kind":"number","nativeSrc":"18587:1:53","nodeType":"YulLiteral","src":"18587:1:53","type":"","value":"0"},"variables":[{"name":"_8","nativeSrc":"18581:2:53","nodeType":"YulTypedName","src":"18581:2:53","type":""}]},{"expression":{"arguments":[{"name":"_8","nativeSrc":"18612:2:53","nodeType":"YulIdentifier","src":"18612:2:53"},{"name":"_8","nativeSrc":"18616:2:53","nodeType":"YulIdentifier","src":"18616:2:53"}],"functionName":{"name":"revert","nativeSrc":"18605:6:53","nodeType":"YulIdentifier","src":"18605:6:53"},"nativeSrc":"18605:14:53","nodeType":"YulFunctionCall","src":"18605:14:53"},"nativeSrc":"18605:14:53","nodeType":"YulExpressionStatement","src":"18605:14:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"18535:6:53","nodeType":"YulIdentifier","src":"18535:6:53"},{"name":"_1","nativeSrc":"18543:2:53","nodeType":"YulIdentifier","src":"18543:2:53"}],"functionName":{"name":"gt","nativeSrc":"18532:2:53","nodeType":"YulIdentifier","src":"18532:2:53"},"nativeSrc":"18532:14:53","nodeType":"YulFunctionCall","src":"18532:14:53"},"nativeSrc":"18529:104:53","nodeType":"YulIf","src":"18529:104:53"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"18657:7:53","nodeType":"YulIdentifier","src":"18657:7:53"},{"name":"_7","nativeSrc":"18666:2:53","nodeType":"YulIdentifier","src":"18666:2:53"}],"functionName":{"name":"add","nativeSrc":"18653:3:53","nodeType":"YulIdentifier","src":"18653:3:53"},"nativeSrc":"18653:16:53","nodeType":"YulFunctionCall","src":"18653:16:53"},{"arguments":[{"arguments":[{"name":"_5","nativeSrc":"18692:2:53","nodeType":"YulIdentifier","src":"18692:2:53"},{"name":"offset","nativeSrc":"18696:6:53","nodeType":"YulIdentifier","src":"18696:6:53"}],"functionName":{"name":"add","nativeSrc":"18688:3:53","nodeType":"YulIdentifier","src":"18688:3:53"},"nativeSrc":"18688:15:53","nodeType":"YulFunctionCall","src":"18688:15:53"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"18705:12:53","nodeType":"YulIdentifier","src":"18705:12:53"},"nativeSrc":"18705:14:53","nodeType":"YulFunctionCall","src":"18705:14:53"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"18671:16:53","nodeType":"YulIdentifier","src":"18671:16:53"},"nativeSrc":"18671:49:53","nodeType":"YulFunctionCall","src":"18671:49:53"}],"functionName":{"name":"mstore","nativeSrc":"18646:6:53","nodeType":"YulIdentifier","src":"18646:6:53"},"nativeSrc":"18646:75:53","nodeType":"YulFunctionCall","src":"18646:75:53"},"nativeSrc":"18646:75:53","nodeType":"YulExpressionStatement","src":"18646:75:53"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"18741:3:53","nodeType":"YulIdentifier","src":"18741:3:53"},{"name":"value_1","nativeSrc":"18746:7:53","nodeType":"YulIdentifier","src":"18746:7:53"}],"functionName":{"name":"mstore","nativeSrc":"18734:6:53","nodeType":"YulIdentifier","src":"18734:6:53"},"nativeSrc":"18734:20:53","nodeType":"YulFunctionCall","src":"18734:20:53"},"nativeSrc":"18734:20:53","nodeType":"YulExpressionStatement","src":"18734:20:53"},{"nativeSrc":"18767:19:53","nodeType":"YulAssignment","src":"18767:19:53","value":{"arguments":[{"name":"dst","nativeSrc":"18778:3:53","nodeType":"YulIdentifier","src":"18778:3:53"},{"name":"_3","nativeSrc":"18783:2:53","nodeType":"YulIdentifier","src":"18783:2:53"}],"functionName":{"name":"add","nativeSrc":"18774:3:53","nodeType":"YulIdentifier","src":"18774:3:53"},"nativeSrc":"18774:12:53","nodeType":"YulFunctionCall","src":"18774:12:53"},"variableNames":[{"name":"dst","nativeSrc":"18767:3:53","nodeType":"YulIdentifier","src":"18767:3:53"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"17869:3:53","nodeType":"YulIdentifier","src":"17869:3:53"},{"name":"srcEnd","nativeSrc":"17874:6:53","nodeType":"YulIdentifier","src":"17874:6:53"}],"functionName":{"name":"lt","nativeSrc":"17866:2:53","nodeType":"YulIdentifier","src":"17866:2:53"},"nativeSrc":"17866:15:53","nodeType":"YulFunctionCall","src":"17866:15:53"},"nativeSrc":"17858:938:53","nodeType":"YulForLoop","post":{"nativeSrc":"17882:23:53","nodeType":"YulBlock","src":"17882:23:53","statements":[{"nativeSrc":"17884:19:53","nodeType":"YulAssignment","src":"17884:19:53","value":{"arguments":[{"name":"src","nativeSrc":"17895:3:53","nodeType":"YulIdentifier","src":"17895:3:53"},{"name":"_3","nativeSrc":"17900:2:53","nodeType":"YulIdentifier","src":"17900:2:53"}],"functionName":{"name":"add","nativeSrc":"17891:3:53","nodeType":"YulIdentifier","src":"17891:3:53"},"nativeSrc":"17891:12:53","nodeType":"YulFunctionCall","src":"17891:12:53"},"variableNames":[{"name":"src","nativeSrc":"17884:3:53","nodeType":"YulIdentifier","src":"17884:3:53"}]}]},"pre":{"nativeSrc":"17862:3:53","nodeType":"YulBlock","src":"17862:3:53","statements":[]},"src":"17858:938:53"},{"nativeSrc":"18805:18:53","nodeType":"YulAssignment","src":"18805:18:53","value":{"name":"dst_1","nativeSrc":"18818:5:53","nodeType":"YulIdentifier","src":"18818:5:53"},"variableNames":[{"name":"converted","nativeSrc":"18805:9:53","nodeType":"YulIdentifier","src":"18805:9:53"}]}]},"name":"convert_array_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr","nativeSrc":"17254:1575:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17428:5:53","nodeType":"YulTypedName","src":"17428:5:53","type":""},{"name":"length","nativeSrc":"17435:6:53","nodeType":"YulTypedName","src":"17435:6:53","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"17446:9:53","nodeType":"YulTypedName","src":"17446:9:53","type":""}],"src":"17254:1575:53"},{"body":{"nativeSrc":"18964:201:53","nodeType":"YulBlock","src":"18964:201:53","statements":[{"body":{"nativeSrc":"19002:16:53","nodeType":"YulBlock","src":"19002:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19011:1:53","nodeType":"YulLiteral","src":"19011:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19014:1:53","nodeType":"YulLiteral","src":"19014:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19004:6:53","nodeType":"YulIdentifier","src":"19004:6:53"},"nativeSrc":"19004:12:53","nodeType":"YulFunctionCall","src":"19004:12:53"},"nativeSrc":"19004:12:53","nodeType":"YulExpressionStatement","src":"19004:12:53"}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"18980:10:53","nodeType":"YulIdentifier","src":"18980:10:53"},{"name":"endIndex","nativeSrc":"18992:8:53","nodeType":"YulIdentifier","src":"18992:8:53"}],"functionName":{"name":"gt","nativeSrc":"18977:2:53","nodeType":"YulIdentifier","src":"18977:2:53"},"nativeSrc":"18977:24:53","nodeType":"YulFunctionCall","src":"18977:24:53"},"nativeSrc":"18974:44:53","nodeType":"YulIf","src":"18974:44:53"},{"body":{"nativeSrc":"19051:16:53","nodeType":"YulBlock","src":"19051:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19060:1:53","nodeType":"YulLiteral","src":"19060:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"19063:1:53","nodeType":"YulLiteral","src":"19063:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19053:6:53","nodeType":"YulIdentifier","src":"19053:6:53"},"nativeSrc":"19053:12:53","nodeType":"YulFunctionCall","src":"19053:12:53"},"nativeSrc":"19053:12:53","nodeType":"YulExpressionStatement","src":"19053:12:53"}]},"condition":{"arguments":[{"name":"endIndex","nativeSrc":"19033:8:53","nodeType":"YulIdentifier","src":"19033:8:53"},{"name":"length","nativeSrc":"19043:6:53","nodeType":"YulIdentifier","src":"19043:6:53"}],"functionName":{"name":"gt","nativeSrc":"19030:2:53","nodeType":"YulIdentifier","src":"19030:2:53"},"nativeSrc":"19030:20:53","nodeType":"YulFunctionCall","src":"19030:20:53"},"nativeSrc":"19027:40:53","nodeType":"YulIf","src":"19027:40:53"},{"nativeSrc":"19076:36:53","nodeType":"YulAssignment","src":"19076:36:53","value":{"arguments":[{"name":"offset","nativeSrc":"19093:6:53","nodeType":"YulIdentifier","src":"19093:6:53"},{"name":"startIndex","nativeSrc":"19101:10:53","nodeType":"YulIdentifier","src":"19101:10:53"}],"functionName":{"name":"add","nativeSrc":"19089:3:53","nodeType":"YulIdentifier","src":"19089:3:53"},"nativeSrc":"19089:23:53","nodeType":"YulFunctionCall","src":"19089:23:53"},"variableNames":[{"name":"offsetOut","nativeSrc":"19076:9:53","nodeType":"YulIdentifier","src":"19076:9:53"}]},{"nativeSrc":"19121:38:53","nodeType":"YulAssignment","src":"19121:38:53","value":{"arguments":[{"name":"endIndex","nativeSrc":"19138:8:53","nodeType":"YulIdentifier","src":"19138:8:53"},{"name":"startIndex","nativeSrc":"19148:10:53","nodeType":"YulIdentifier","src":"19148:10:53"}],"functionName":{"name":"sub","nativeSrc":"19134:3:53","nodeType":"YulIdentifier","src":"19134:3:53"},"nativeSrc":"19134:25:53","nodeType":"YulFunctionCall","src":"19134:25:53"},"variableNames":[{"name":"lengthOut","nativeSrc":"19121:9:53","nodeType":"YulIdentifier","src":"19121:9:53"}]}]},"name":"calldata_array_index_range_access_t_bytes_calldata_ptr","nativeSrc":"18834:331:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18898:6:53","nodeType":"YulTypedName","src":"18898:6:53","type":""},{"name":"length","nativeSrc":"18906:6:53","nodeType":"YulTypedName","src":"18906:6:53","type":""},{"name":"startIndex","nativeSrc":"18914:10:53","nodeType":"YulTypedName","src":"18914:10:53","type":""},{"name":"endIndex","nativeSrc":"18926:8:53","nodeType":"YulTypedName","src":"18926:8:53","type":""}],"returnVariables":[{"name":"offsetOut","nativeSrc":"18939:9:53","nodeType":"YulTypedName","src":"18939:9:53","type":""},{"name":"lengthOut","nativeSrc":"18950:9:53","nodeType":"YulTypedName","src":"18950:9:53","type":""}],"src":"18834:331:53"},{"body":{"nativeSrc":"19369:277:53","nodeType":"YulBlock","src":"19369:277:53","statements":[{"nativeSrc":"19379:27:53","nodeType":"YulVariableDeclaration","src":"19379:27:53","value":{"arguments":[{"name":"value0","nativeSrc":"19399:6:53","nodeType":"YulIdentifier","src":"19399:6:53"}],"functionName":{"name":"mload","nativeSrc":"19393:5:53","nodeType":"YulIdentifier","src":"19393:5:53"},"nativeSrc":"19393:13:53","nodeType":"YulFunctionCall","src":"19393:13:53"},"variables":[{"name":"length","nativeSrc":"19383:6:53","nodeType":"YulTypedName","src":"19383:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"19454:6:53","nodeType":"YulIdentifier","src":"19454:6:53"},{"kind":"number","nativeSrc":"19462:4:53","nodeType":"YulLiteral","src":"19462:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19450:3:53","nodeType":"YulIdentifier","src":"19450:3:53"},"nativeSrc":"19450:17:53","nodeType":"YulFunctionCall","src":"19450:17:53"},{"name":"pos","nativeSrc":"19469:3:53","nodeType":"YulIdentifier","src":"19469:3:53"},{"name":"length","nativeSrc":"19474:6:53","nodeType":"YulIdentifier","src":"19474:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"19415:34:53","nodeType":"YulIdentifier","src":"19415:34:53"},"nativeSrc":"19415:66:53","nodeType":"YulFunctionCall","src":"19415:66:53"},"nativeSrc":"19415:66:53","nodeType":"YulExpressionStatement","src":"19415:66:53"},{"nativeSrc":"19490:29:53","nodeType":"YulVariableDeclaration","src":"19490:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"19507:3:53","nodeType":"YulIdentifier","src":"19507:3:53"},{"name":"length","nativeSrc":"19512:6:53","nodeType":"YulIdentifier","src":"19512:6:53"}],"functionName":{"name":"add","nativeSrc":"19503:3:53","nodeType":"YulIdentifier","src":"19503:3:53"},"nativeSrc":"19503:16:53","nodeType":"YulFunctionCall","src":"19503:16:53"},"variables":[{"name":"end_1","nativeSrc":"19494:5:53","nodeType":"YulTypedName","src":"19494:5:53","type":""}]},{"expression":{"arguments":[{"name":"end_1","nativeSrc":"19541:5:53","nodeType":"YulIdentifier","src":"19541:5:53"},{"name":"value1","nativeSrc":"19548:6:53","nodeType":"YulIdentifier","src":"19548:6:53"},{"name":"value2","nativeSrc":"19556:6:53","nodeType":"YulIdentifier","src":"19556:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"19528:12:53","nodeType":"YulIdentifier","src":"19528:12:53"},"nativeSrc":"19528:35:53","nodeType":"YulFunctionCall","src":"19528:35:53"},"nativeSrc":"19528:35:53","nodeType":"YulExpressionStatement","src":"19528:35:53"},{"nativeSrc":"19572:28:53","nodeType":"YulVariableDeclaration","src":"19572:28:53","value":{"arguments":[{"name":"end_1","nativeSrc":"19586:5:53","nodeType":"YulIdentifier","src":"19586:5:53"},{"name":"value2","nativeSrc":"19593:6:53","nodeType":"YulIdentifier","src":"19593:6:53"}],"functionName":{"name":"add","nativeSrc":"19582:3:53","nodeType":"YulIdentifier","src":"19582:3:53"},"nativeSrc":"19582:18:53","nodeType":"YulFunctionCall","src":"19582:18:53"},"variables":[{"name":"_1","nativeSrc":"19576:2:53","nodeType":"YulTypedName","src":"19576:2:53","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"19616:2:53","nodeType":"YulIdentifier","src":"19616:2:53"},{"kind":"number","nativeSrc":"19620:1:53","nodeType":"YulLiteral","src":"19620:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19609:6:53","nodeType":"YulIdentifier","src":"19609:6:53"},"nativeSrc":"19609:13:53","nodeType":"YulFunctionCall","src":"19609:13:53"},"nativeSrc":"19609:13:53","nodeType":"YulExpressionStatement","src":"19609:13:53"},{"nativeSrc":"19631:9:53","nodeType":"YulAssignment","src":"19631:9:53","value":{"name":"_1","nativeSrc":"19638:2:53","nodeType":"YulIdentifier","src":"19638:2:53"},"variableNames":[{"name":"end","nativeSrc":"19631:3:53","nodeType":"YulIdentifier","src":"19631:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr_slice__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"19170:476:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19329:3:53","nodeType":"YulTypedName","src":"19329:3:53","type":""},{"name":"value2","nativeSrc":"19334:6:53","nodeType":"YulTypedName","src":"19334:6:53","type":""},{"name":"value1","nativeSrc":"19342:6:53","nodeType":"YulTypedName","src":"19342:6:53","type":""},{"name":"value0","nativeSrc":"19350:6:53","nodeType":"YulTypedName","src":"19350:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19361:3:53","nodeType":"YulTypedName","src":"19361:3:53","type":""}],"src":"19170:476:53"},{"body":{"nativeSrc":"19717:200:53","nodeType":"YulBlock","src":"19717:200:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"19734:3:53","nodeType":"YulIdentifier","src":"19734:3:53"},{"name":"length","nativeSrc":"19739:6:53","nodeType":"YulIdentifier","src":"19739:6:53"}],"functionName":{"name":"mstore","nativeSrc":"19727:6:53","nodeType":"YulIdentifier","src":"19727:6:53"},"nativeSrc":"19727:19:53","nodeType":"YulFunctionCall","src":"19727:19:53"},"nativeSrc":"19727:19:53","nodeType":"YulExpressionStatement","src":"19727:19:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19772:3:53","nodeType":"YulIdentifier","src":"19772:3:53"},{"kind":"number","nativeSrc":"19777:4:53","nodeType":"YulLiteral","src":"19777:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19768:3:53","nodeType":"YulIdentifier","src":"19768:3:53"},"nativeSrc":"19768:14:53","nodeType":"YulFunctionCall","src":"19768:14:53"},{"name":"start","nativeSrc":"19784:5:53","nodeType":"YulIdentifier","src":"19784:5:53"},{"name":"length","nativeSrc":"19791:6:53","nodeType":"YulIdentifier","src":"19791:6:53"}],"functionName":{"name":"calldatacopy","nativeSrc":"19755:12:53","nodeType":"YulIdentifier","src":"19755:12:53"},"nativeSrc":"19755:43:53","nodeType":"YulFunctionCall","src":"19755:43:53"},"nativeSrc":"19755:43:53","nodeType":"YulExpressionStatement","src":"19755:43:53"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19822:3:53","nodeType":"YulIdentifier","src":"19822:3:53"},{"name":"length","nativeSrc":"19827:6:53","nodeType":"YulIdentifier","src":"19827:6:53"}],"functionName":{"name":"add","nativeSrc":"19818:3:53","nodeType":"YulIdentifier","src":"19818:3:53"},"nativeSrc":"19818:16:53","nodeType":"YulFunctionCall","src":"19818:16:53"},{"kind":"number","nativeSrc":"19836:4:53","nodeType":"YulLiteral","src":"19836:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19814:3:53","nodeType":"YulIdentifier","src":"19814:3:53"},"nativeSrc":"19814:27:53","nodeType":"YulFunctionCall","src":"19814:27:53"},{"kind":"number","nativeSrc":"19843:1:53","nodeType":"YulLiteral","src":"19843:1:53","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19807:6:53","nodeType":"YulIdentifier","src":"19807:6:53"},"nativeSrc":"19807:38:53","nodeType":"YulFunctionCall","src":"19807:38:53"},"nativeSrc":"19807:38:53","nodeType":"YulExpressionStatement","src":"19807:38:53"},{"nativeSrc":"19854:57:53","nodeType":"YulAssignment","src":"19854:57:53","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19869:3:53","nodeType":"YulIdentifier","src":"19869:3:53"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"19882:6:53","nodeType":"YulIdentifier","src":"19882:6:53"},{"kind":"number","nativeSrc":"19890:2:53","nodeType":"YulLiteral","src":"19890:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19878:3:53","nodeType":"YulIdentifier","src":"19878:3:53"},"nativeSrc":"19878:15:53","nodeType":"YulFunctionCall","src":"19878:15:53"},{"arguments":[{"kind":"number","nativeSrc":"19899:2:53","nodeType":"YulLiteral","src":"19899:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"19895:3:53","nodeType":"YulIdentifier","src":"19895:3:53"},"nativeSrc":"19895:7:53","nodeType":"YulFunctionCall","src":"19895:7:53"}],"functionName":{"name":"and","nativeSrc":"19874:3:53","nodeType":"YulIdentifier","src":"19874:3:53"},"nativeSrc":"19874:29:53","nodeType":"YulFunctionCall","src":"19874:29:53"}],"functionName":{"name":"add","nativeSrc":"19865:3:53","nodeType":"YulIdentifier","src":"19865:3:53"},"nativeSrc":"19865:39:53","nodeType":"YulFunctionCall","src":"19865:39:53"},{"kind":"number","nativeSrc":"19906:4:53","nodeType":"YulLiteral","src":"19906:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19861:3:53","nodeType":"YulIdentifier","src":"19861:3:53"},"nativeSrc":"19861:50:53","nodeType":"YulFunctionCall","src":"19861:50:53"},"variableNames":[{"name":"end","nativeSrc":"19854:3:53","nodeType":"YulIdentifier","src":"19854:3:53"}]}]},"name":"abi_encode_bytes_calldata","nativeSrc":"19651:266:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"19686:5:53","nodeType":"YulTypedName","src":"19686:5:53","type":""},{"name":"length","nativeSrc":"19693:6:53","nodeType":"YulTypedName","src":"19693:6:53","type":""},{"name":"pos","nativeSrc":"19701:3:53","nodeType":"YulTypedName","src":"19701:3:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19709:3:53","nodeType":"YulTypedName","src":"19709:3:53","type":""}],"src":"19651:266:53"},{"body":{"nativeSrc":"20051:115:53","nodeType":"YulBlock","src":"20051:115:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20068:9:53","nodeType":"YulIdentifier","src":"20068:9:53"},{"kind":"number","nativeSrc":"20079:2:53","nodeType":"YulLiteral","src":"20079:2:53","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20061:6:53","nodeType":"YulIdentifier","src":"20061:6:53"},"nativeSrc":"20061:21:53","nodeType":"YulFunctionCall","src":"20061:21:53"},"nativeSrc":"20061:21:53","nodeType":"YulExpressionStatement","src":"20061:21:53"},{"nativeSrc":"20091:69:53","nodeType":"YulAssignment","src":"20091:69:53","value":{"arguments":[{"name":"value0","nativeSrc":"20125:6:53","nodeType":"YulIdentifier","src":"20125:6:53"},{"name":"value1","nativeSrc":"20133:6:53","nodeType":"YulIdentifier","src":"20133:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"20145:9:53","nodeType":"YulIdentifier","src":"20145:9:53"},{"kind":"number","nativeSrc":"20156:2:53","nodeType":"YulLiteral","src":"20156:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20141:3:53","nodeType":"YulIdentifier","src":"20141:3:53"},"nativeSrc":"20141:18:53","nodeType":"YulFunctionCall","src":"20141:18:53"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"20099:25:53","nodeType":"YulIdentifier","src":"20099:25:53"},"nativeSrc":"20099:61:53","nodeType":"YulFunctionCall","src":"20099:61:53"},"variableNames":[{"name":"tail","nativeSrc":"20091:4:53","nodeType":"YulIdentifier","src":"20091:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"19922:244:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20012:9:53","nodeType":"YulTypedName","src":"20012:9:53","type":""},{"name":"value1","nativeSrc":"20023:6:53","nodeType":"YulTypedName","src":"20023:6:53","type":""},{"name":"value0","nativeSrc":"20031:6:53","nodeType":"YulTypedName","src":"20031:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20042:4:53","nodeType":"YulTypedName","src":"20042:4:53","type":""}],"src":"19922:244:53"},{"body":{"nativeSrc":"20203:95:53","nodeType":"YulBlock","src":"20203:95:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20220:1:53","nodeType":"YulLiteral","src":"20220:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"20227:3:53","nodeType":"YulLiteral","src":"20227:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"20232:10:53","nodeType":"YulLiteral","src":"20232:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"20223:3:53","nodeType":"YulIdentifier","src":"20223:3:53"},"nativeSrc":"20223:20:53","nodeType":"YulFunctionCall","src":"20223:20:53"}],"functionName":{"name":"mstore","nativeSrc":"20213:6:53","nodeType":"YulIdentifier","src":"20213:6:53"},"nativeSrc":"20213:31:53","nodeType":"YulFunctionCall","src":"20213:31:53"},"nativeSrc":"20213:31:53","nodeType":"YulExpressionStatement","src":"20213:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20260:1:53","nodeType":"YulLiteral","src":"20260:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"20263:4:53","nodeType":"YulLiteral","src":"20263:4:53","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"20253:6:53","nodeType":"YulIdentifier","src":"20253:6:53"},"nativeSrc":"20253:15:53","nodeType":"YulFunctionCall","src":"20253:15:53"},"nativeSrc":"20253:15:53","nodeType":"YulExpressionStatement","src":"20253:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20284:1:53","nodeType":"YulLiteral","src":"20284:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20287:4:53","nodeType":"YulLiteral","src":"20287:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"20277:6:53","nodeType":"YulIdentifier","src":"20277:6:53"},"nativeSrc":"20277:15:53","nodeType":"YulFunctionCall","src":"20277:15:53"},"nativeSrc":"20277:15:53","nodeType":"YulExpressionStatement","src":"20277:15:53"}]},"name":"panic_error_0x32","nativeSrc":"20171:127:53","nodeType":"YulFunctionDefinition","src":"20171:127:53"},{"body":{"nativeSrc":"20411:223:53","nodeType":"YulBlock","src":"20411:223:53","statements":[{"nativeSrc":"20421:51:53","nodeType":"YulVariableDeclaration","src":"20421:51:53","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"20460:11:53","nodeType":"YulIdentifier","src":"20460:11:53"}],"functionName":{"name":"calldataload","nativeSrc":"20447:12:53","nodeType":"YulIdentifier","src":"20447:12:53"},"nativeSrc":"20447:25:53","nodeType":"YulFunctionCall","src":"20447:25:53"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"20425:18:53","nodeType":"YulTypedName","src":"20425:18:53","type":""}]},{"body":{"nativeSrc":"20562:16:53","nodeType":"YulBlock","src":"20562:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20571:1:53","nodeType":"YulLiteral","src":"20571:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20574:1:53","nodeType":"YulLiteral","src":"20574:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20564:6:53","nodeType":"YulIdentifier","src":"20564:6:53"},"nativeSrc":"20564:12:53","nodeType":"YulFunctionCall","src":"20564:12:53"},"nativeSrc":"20564:12:53","nodeType":"YulExpressionStatement","src":"20564:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"20495:18:53","nodeType":"YulIdentifier","src":"20495:18:53"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"20523:12:53","nodeType":"YulIdentifier","src":"20523:12:53"},"nativeSrc":"20523:14:53","nodeType":"YulFunctionCall","src":"20523:14:53"},{"name":"base_ref","nativeSrc":"20539:8:53","nodeType":"YulIdentifier","src":"20539:8:53"}],"functionName":{"name":"sub","nativeSrc":"20519:3:53","nodeType":"YulIdentifier","src":"20519:3:53"},"nativeSrc":"20519:29:53","nodeType":"YulFunctionCall","src":"20519:29:53"},{"arguments":[{"kind":"number","nativeSrc":"20554:3:53","nodeType":"YulLiteral","src":"20554:3:53","type":"","value":"318"}],"functionName":{"name":"not","nativeSrc":"20550:3:53","nodeType":"YulIdentifier","src":"20550:3:53"},"nativeSrc":"20550:8:53","nodeType":"YulFunctionCall","src":"20550:8:53"}],"functionName":{"name":"add","nativeSrc":"20515:3:53","nodeType":"YulIdentifier","src":"20515:3:53"},"nativeSrc":"20515:44:53","nodeType":"YulFunctionCall","src":"20515:44:53"}],"functionName":{"name":"slt","nativeSrc":"20491:3:53","nodeType":"YulIdentifier","src":"20491:3:53"},"nativeSrc":"20491:69:53","nodeType":"YulFunctionCall","src":"20491:69:53"}],"functionName":{"name":"iszero","nativeSrc":"20484:6:53","nodeType":"YulIdentifier","src":"20484:6:53"},"nativeSrc":"20484:77:53","nodeType":"YulFunctionCall","src":"20484:77:53"},"nativeSrc":"20481:97:53","nodeType":"YulIf","src":"20481:97:53"},{"nativeSrc":"20587:41:53","nodeType":"YulAssignment","src":"20587:41:53","value":{"arguments":[{"name":"base_ref","nativeSrc":"20599:8:53","nodeType":"YulIdentifier","src":"20599:8:53"},{"name":"rel_offset_of_tail","nativeSrc":"20609:18:53","nodeType":"YulIdentifier","src":"20609:18:53"}],"functionName":{"name":"add","nativeSrc":"20595:3:53","nodeType":"YulIdentifier","src":"20595:3:53"},"nativeSrc":"20595:33:53","nodeType":"YulFunctionCall","src":"20595:33:53"},"variableNames":[{"name":"addr","nativeSrc":"20587:4:53","nodeType":"YulIdentifier","src":"20587:4:53"}]}]},"name":"access_calldata_tail_t_struct$_InboundPacket_$2010_calldata_ptr","nativeSrc":"20303:331:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"20376:8:53","nodeType":"YulTypedName","src":"20376:8:53","type":""},{"name":"ptr_to_tail","nativeSrc":"20386:11:53","nodeType":"YulTypedName","src":"20386:11:53","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"20402:4:53","nodeType":"YulTypedName","src":"20402:4:53","type":""}],"src":"20303:331:53"},{"body":{"nativeSrc":"20733:427:53","nodeType":"YulBlock","src":"20733:427:53","statements":[{"nativeSrc":"20743:51:53","nodeType":"YulVariableDeclaration","src":"20743:51:53","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"20782:11:53","nodeType":"YulIdentifier","src":"20782:11:53"}],"functionName":{"name":"calldataload","nativeSrc":"20769:12:53","nodeType":"YulIdentifier","src":"20769:12:53"},"nativeSrc":"20769:25:53","nodeType":"YulFunctionCall","src":"20769:25:53"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"20747:18:53","nodeType":"YulTypedName","src":"20747:18:53","type":""}]},{"body":{"nativeSrc":"20883:16:53","nodeType":"YulBlock","src":"20883:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20892:1:53","nodeType":"YulLiteral","src":"20892:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"20895:1:53","nodeType":"YulLiteral","src":"20895:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20885:6:53","nodeType":"YulIdentifier","src":"20885:6:53"},"nativeSrc":"20885:12:53","nodeType":"YulFunctionCall","src":"20885:12:53"},"nativeSrc":"20885:12:53","nodeType":"YulExpressionStatement","src":"20885:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"20817:18:53","nodeType":"YulIdentifier","src":"20817:18:53"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"20845:12:53","nodeType":"YulIdentifier","src":"20845:12:53"},"nativeSrc":"20845:14:53","nodeType":"YulFunctionCall","src":"20845:14:53"},{"name":"base_ref","nativeSrc":"20861:8:53","nodeType":"YulIdentifier","src":"20861:8:53"}],"functionName":{"name":"sub","nativeSrc":"20841:3:53","nodeType":"YulIdentifier","src":"20841:3:53"},"nativeSrc":"20841:29:53","nodeType":"YulFunctionCall","src":"20841:29:53"},{"arguments":[{"kind":"number","nativeSrc":"20876:2:53","nodeType":"YulLiteral","src":"20876:2:53","type":"","value":"30"}],"functionName":{"name":"not","nativeSrc":"20872:3:53","nodeType":"YulIdentifier","src":"20872:3:53"},"nativeSrc":"20872:7:53","nodeType":"YulFunctionCall","src":"20872:7:53"}],"functionName":{"name":"add","nativeSrc":"20837:3:53","nodeType":"YulIdentifier","src":"20837:3:53"},"nativeSrc":"20837:43:53","nodeType":"YulFunctionCall","src":"20837:43:53"}],"functionName":{"name":"slt","nativeSrc":"20813:3:53","nodeType":"YulIdentifier","src":"20813:3:53"},"nativeSrc":"20813:68:53","nodeType":"YulFunctionCall","src":"20813:68:53"}],"functionName":{"name":"iszero","nativeSrc":"20806:6:53","nodeType":"YulIdentifier","src":"20806:6:53"},"nativeSrc":"20806:76:53","nodeType":"YulFunctionCall","src":"20806:76:53"},"nativeSrc":"20803:96:53","nodeType":"YulIf","src":"20803:96:53"},{"nativeSrc":"20908:47:53","nodeType":"YulVariableDeclaration","src":"20908:47:53","value":{"arguments":[{"name":"base_ref","nativeSrc":"20926:8:53","nodeType":"YulIdentifier","src":"20926:8:53"},{"name":"rel_offset_of_tail","nativeSrc":"20936:18:53","nodeType":"YulIdentifier","src":"20936:18:53"}],"functionName":{"name":"add","nativeSrc":"20922:3:53","nodeType":"YulIdentifier","src":"20922:3:53"},"nativeSrc":"20922:33:53","nodeType":"YulFunctionCall","src":"20922:33:53"},"variables":[{"name":"addr_1","nativeSrc":"20912:6:53","nodeType":"YulTypedName","src":"20912:6:53","type":""}]},{"nativeSrc":"20964:30:53","nodeType":"YulAssignment","src":"20964:30:53","value":{"arguments":[{"name":"addr_1","nativeSrc":"20987:6:53","nodeType":"YulIdentifier","src":"20987:6:53"}],"functionName":{"name":"calldataload","nativeSrc":"20974:12:53","nodeType":"YulIdentifier","src":"20974:12:53"},"nativeSrc":"20974:20:53","nodeType":"YulFunctionCall","src":"20974:20:53"},"variableNames":[{"name":"length","nativeSrc":"20964:6:53","nodeType":"YulIdentifier","src":"20964:6:53"}]},{"body":{"nativeSrc":"21037:16:53","nodeType":"YulBlock","src":"21037:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21046:1:53","nodeType":"YulLiteral","src":"21046:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"21049:1:53","nodeType":"YulLiteral","src":"21049:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"21039:6:53","nodeType":"YulIdentifier","src":"21039:6:53"},"nativeSrc":"21039:12:53","nodeType":"YulFunctionCall","src":"21039:12:53"},"nativeSrc":"21039:12:53","nodeType":"YulExpressionStatement","src":"21039:12:53"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"21009:6:53","nodeType":"YulIdentifier","src":"21009:6:53"},{"kind":"number","nativeSrc":"21017:18:53","nodeType":"YulLiteral","src":"21017:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21006:2:53","nodeType":"YulIdentifier","src":"21006:2:53"},"nativeSrc":"21006:30:53","nodeType":"YulFunctionCall","src":"21006:30:53"},"nativeSrc":"21003:50:53","nodeType":"YulIf","src":"21003:50:53"},{"nativeSrc":"21062:25:53","nodeType":"YulAssignment","src":"21062:25:53","value":{"arguments":[{"name":"addr_1","nativeSrc":"21074:6:53","nodeType":"YulIdentifier","src":"21074:6:53"},{"kind":"number","nativeSrc":"21082:4:53","nodeType":"YulLiteral","src":"21082:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21070:3:53","nodeType":"YulIdentifier","src":"21070:3:53"},"nativeSrc":"21070:17:53","nodeType":"YulFunctionCall","src":"21070:17:53"},"variableNames":[{"name":"addr","nativeSrc":"21062:4:53","nodeType":"YulIdentifier","src":"21062:4:53"}]},{"body":{"nativeSrc":"21138:16:53","nodeType":"YulBlock","src":"21138:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21147:1:53","nodeType":"YulLiteral","src":"21147:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"21150:1:53","nodeType":"YulLiteral","src":"21150:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"21140:6:53","nodeType":"YulIdentifier","src":"21140:6:53"},"nativeSrc":"21140:12:53","nodeType":"YulFunctionCall","src":"21140:12:53"},"nativeSrc":"21140:12:53","nodeType":"YulExpressionStatement","src":"21140:12:53"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"21103:4:53","nodeType":"YulIdentifier","src":"21103:4:53"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"21113:12:53","nodeType":"YulIdentifier","src":"21113:12:53"},"nativeSrc":"21113:14:53","nodeType":"YulFunctionCall","src":"21113:14:53"},{"name":"length","nativeSrc":"21129:6:53","nodeType":"YulIdentifier","src":"21129:6:53"}],"functionName":{"name":"sub","nativeSrc":"21109:3:53","nodeType":"YulIdentifier","src":"21109:3:53"},"nativeSrc":"21109:27:53","nodeType":"YulFunctionCall","src":"21109:27:53"}],"functionName":{"name":"sgt","nativeSrc":"21099:3:53","nodeType":"YulIdentifier","src":"21099:3:53"},"nativeSrc":"21099:38:53","nodeType":"YulFunctionCall","src":"21099:38:53"},"nativeSrc":"21096:58:53","nodeType":"YulIf","src":"21096:58:53"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"20639:521:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"20690:8:53","nodeType":"YulTypedName","src":"20690:8:53","type":""},{"name":"ptr_to_tail","nativeSrc":"20700:11:53","nodeType":"YulTypedName","src":"20700:11:53","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"20716:4:53","nodeType":"YulTypedName","src":"20716:4:53","type":""},{"name":"length","nativeSrc":"20722:6:53","nodeType":"YulTypedName","src":"20722:6:53","type":""}],"src":"20639:521:53"},{"body":{"nativeSrc":"21209:85:53","nodeType":"YulBlock","src":"21209:85:53","statements":[{"body":{"nativeSrc":"21272:16:53","nodeType":"YulBlock","src":"21272:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21281:1:53","nodeType":"YulLiteral","src":"21281:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"21284:1:53","nodeType":"YulLiteral","src":"21284:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"21274:6:53","nodeType":"YulIdentifier","src":"21274:6:53"},"nativeSrc":"21274:12:53","nodeType":"YulFunctionCall","src":"21274:12:53"},"nativeSrc":"21274:12:53","nodeType":"YulExpressionStatement","src":"21274:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21232:5:53","nodeType":"YulIdentifier","src":"21232:5:53"},{"arguments":[{"name":"value","nativeSrc":"21243:5:53","nodeType":"YulIdentifier","src":"21243:5:53"},{"kind":"number","nativeSrc":"21250:18:53","nodeType":"YulLiteral","src":"21250:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"21239:3:53","nodeType":"YulIdentifier","src":"21239:3:53"},"nativeSrc":"21239:30:53","nodeType":"YulFunctionCall","src":"21239:30:53"}],"functionName":{"name":"eq","nativeSrc":"21229:2:53","nodeType":"YulIdentifier","src":"21229:2:53"},"nativeSrc":"21229:41:53","nodeType":"YulFunctionCall","src":"21229:41:53"}],"functionName":{"name":"iszero","nativeSrc":"21222:6:53","nodeType":"YulIdentifier","src":"21222:6:53"},"nativeSrc":"21222:49:53","nodeType":"YulFunctionCall","src":"21222:49:53"},"nativeSrc":"21219:69:53","nodeType":"YulIf","src":"21219:69:53"}]},"name":"validator_revert_uint64","nativeSrc":"21165:129:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21198:5:53","nodeType":"YulTypedName","src":"21198:5:53","type":""}],"src":"21165:129:53"},{"body":{"nativeSrc":"21618:673:53","nodeType":"YulBlock","src":"21618:673:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21635:9:53","nodeType":"YulIdentifier","src":"21635:9:53"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21668:6:53","nodeType":"YulIdentifier","src":"21668:6:53"}],"functionName":{"name":"abi_decode_uint32","nativeSrc":"21650:17:53","nodeType":"YulIdentifier","src":"21650:17:53"},"nativeSrc":"21650:25:53","nodeType":"YulFunctionCall","src":"21650:25:53"},{"kind":"number","nativeSrc":"21677:10:53","nodeType":"YulLiteral","src":"21677:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"21646:3:53","nodeType":"YulIdentifier","src":"21646:3:53"},"nativeSrc":"21646:42:53","nodeType":"YulFunctionCall","src":"21646:42:53"}],"functionName":{"name":"mstore","nativeSrc":"21628:6:53","nodeType":"YulIdentifier","src":"21628:6:53"},"nativeSrc":"21628:61:53","nodeType":"YulFunctionCall","src":"21628:61:53"},"nativeSrc":"21628:61:53","nodeType":"YulExpressionStatement","src":"21628:61:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21709:9:53","nodeType":"YulIdentifier","src":"21709:9:53"},{"kind":"number","nativeSrc":"21720:4:53","nodeType":"YulLiteral","src":"21720:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21705:3:53","nodeType":"YulIdentifier","src":"21705:3:53"},"nativeSrc":"21705:20:53","nodeType":"YulFunctionCall","src":"21705:20:53"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21744:6:53","nodeType":"YulIdentifier","src":"21744:6:53"},{"kind":"number","nativeSrc":"21752:4:53","nodeType":"YulLiteral","src":"21752:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21740:3:53","nodeType":"YulIdentifier","src":"21740:3:53"},"nativeSrc":"21740:17:53","nodeType":"YulFunctionCall","src":"21740:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"21727:12:53","nodeType":"YulIdentifier","src":"21727:12:53"},"nativeSrc":"21727:31:53","nodeType":"YulFunctionCall","src":"21727:31:53"}],"functionName":{"name":"mstore","nativeSrc":"21698:6:53","nodeType":"YulIdentifier","src":"21698:6:53"},"nativeSrc":"21698:61:53","nodeType":"YulFunctionCall","src":"21698:61:53"},"nativeSrc":"21698:61:53","nodeType":"YulExpressionStatement","src":"21698:61:53"},{"nativeSrc":"21768:44:53","nodeType":"YulVariableDeclaration","src":"21768:44:53","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"21798:6:53","nodeType":"YulIdentifier","src":"21798:6:53"},{"kind":"number","nativeSrc":"21806:4:53","nodeType":"YulLiteral","src":"21806:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21794:3:53","nodeType":"YulIdentifier","src":"21794:3:53"},"nativeSrc":"21794:17:53","nodeType":"YulFunctionCall","src":"21794:17:53"}],"functionName":{"name":"calldataload","nativeSrc":"21781:12:53","nodeType":"YulIdentifier","src":"21781:12:53"},"nativeSrc":"21781:31:53","nodeType":"YulFunctionCall","src":"21781:31:53"},"variables":[{"name":"value","nativeSrc":"21772:5:53","nodeType":"YulTypedName","src":"21772:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"21845:5:53","nodeType":"YulIdentifier","src":"21845:5:53"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"21821:23:53","nodeType":"YulIdentifier","src":"21821:23:53"},"nativeSrc":"21821:30:53","nodeType":"YulFunctionCall","src":"21821:30:53"},"nativeSrc":"21821:30:53","nodeType":"YulExpressionStatement","src":"21821:30:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21871:9:53","nodeType":"YulIdentifier","src":"21871:9:53"},{"kind":"number","nativeSrc":"21882:4:53","nodeType":"YulLiteral","src":"21882:4:53","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21867:3:53","nodeType":"YulIdentifier","src":"21867:3:53"},"nativeSrc":"21867:20:53","nodeType":"YulFunctionCall","src":"21867:20:53"},{"arguments":[{"name":"value","nativeSrc":"21893:5:53","nodeType":"YulIdentifier","src":"21893:5:53"},{"kind":"number","nativeSrc":"21900:18:53","nodeType":"YulLiteral","src":"21900:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"21889:3:53","nodeType":"YulIdentifier","src":"21889:3:53"},"nativeSrc":"21889:30:53","nodeType":"YulFunctionCall","src":"21889:30:53"}],"functionName":{"name":"mstore","nativeSrc":"21860:6:53","nodeType":"YulIdentifier","src":"21860:6:53"},"nativeSrc":"21860:60:53","nodeType":"YulFunctionCall","src":"21860:60:53"},"nativeSrc":"21860:60:53","nodeType":"YulExpressionStatement","src":"21860:60:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21940:9:53","nodeType":"YulIdentifier","src":"21940:9:53"},{"kind":"number","nativeSrc":"21951:2:53","nodeType":"YulLiteral","src":"21951:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21936:3:53","nodeType":"YulIdentifier","src":"21936:3:53"},"nativeSrc":"21936:18:53","nodeType":"YulFunctionCall","src":"21936:18:53"},{"name":"value1","nativeSrc":"21956:6:53","nodeType":"YulIdentifier","src":"21956:6:53"}],"functionName":{"name":"mstore","nativeSrc":"21929:6:53","nodeType":"YulIdentifier","src":"21929:6:53"},"nativeSrc":"21929:34:53","nodeType":"YulFunctionCall","src":"21929:34:53"},"nativeSrc":"21929:34:53","nodeType":"YulExpressionStatement","src":"21929:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21983:9:53","nodeType":"YulIdentifier","src":"21983:9:53"},{"kind":"number","nativeSrc":"21994:3:53","nodeType":"YulLiteral","src":"21994:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21979:3:53","nodeType":"YulIdentifier","src":"21979:3:53"},"nativeSrc":"21979:19:53","nodeType":"YulFunctionCall","src":"21979:19:53"},{"kind":"number","nativeSrc":"22000:3:53","nodeType":"YulLiteral","src":"22000:3:53","type":"","value":"224"}],"functionName":{"name":"mstore","nativeSrc":"21972:6:53","nodeType":"YulIdentifier","src":"21972:6:53"},"nativeSrc":"21972:32:53","nodeType":"YulFunctionCall","src":"21972:32:53"},"nativeSrc":"21972:32:53","nodeType":"YulExpressionStatement","src":"21972:32:53"},{"nativeSrc":"22013:76:53","nodeType":"YulVariableDeclaration","src":"22013:76:53","value":{"arguments":[{"name":"value2","nativeSrc":"22053:6:53","nodeType":"YulIdentifier","src":"22053:6:53"},{"name":"value3","nativeSrc":"22061:6:53","nodeType":"YulIdentifier","src":"22061:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"22073:9:53","nodeType":"YulIdentifier","src":"22073:9:53"},{"kind":"number","nativeSrc":"22084:3:53","nodeType":"YulLiteral","src":"22084:3:53","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"22069:3:53","nodeType":"YulIdentifier","src":"22069:3:53"},"nativeSrc":"22069:19:53","nodeType":"YulFunctionCall","src":"22069:19:53"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"22027:25:53","nodeType":"YulIdentifier","src":"22027:25:53"},"nativeSrc":"22027:62:53","nodeType":"YulFunctionCall","src":"22027:62:53"},"variables":[{"name":"tail_1","nativeSrc":"22017:6:53","nodeType":"YulTypedName","src":"22017:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22109:9:53","nodeType":"YulIdentifier","src":"22109:9:53"},{"kind":"number","nativeSrc":"22120:3:53","nodeType":"YulLiteral","src":"22120:3:53","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"22105:3:53","nodeType":"YulIdentifier","src":"22105:3:53"},"nativeSrc":"22105:19:53","nodeType":"YulFunctionCall","src":"22105:19:53"},{"arguments":[{"name":"value4","nativeSrc":"22130:6:53","nodeType":"YulIdentifier","src":"22130:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22146:3:53","nodeType":"YulLiteral","src":"22146:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"22151:1:53","nodeType":"YulLiteral","src":"22151:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"22142:3:53","nodeType":"YulIdentifier","src":"22142:3:53"},"nativeSrc":"22142:11:53","nodeType":"YulFunctionCall","src":"22142:11:53"},{"kind":"number","nativeSrc":"22155:1:53","nodeType":"YulLiteral","src":"22155:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"22138:3:53","nodeType":"YulIdentifier","src":"22138:3:53"},"nativeSrc":"22138:19:53","nodeType":"YulFunctionCall","src":"22138:19:53"}],"functionName":{"name":"and","nativeSrc":"22126:3:53","nodeType":"YulIdentifier","src":"22126:3:53"},"nativeSrc":"22126:32:53","nodeType":"YulFunctionCall","src":"22126:32:53"}],"functionName":{"name":"mstore","nativeSrc":"22098:6:53","nodeType":"YulIdentifier","src":"22098:6:53"},"nativeSrc":"22098:61:53","nodeType":"YulFunctionCall","src":"22098:61:53"},"nativeSrc":"22098:61:53","nodeType":"YulExpressionStatement","src":"22098:61:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22179:9:53","nodeType":"YulIdentifier","src":"22179:9:53"},{"kind":"number","nativeSrc":"22190:3:53","nodeType":"YulLiteral","src":"22190:3:53","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"22175:3:53","nodeType":"YulIdentifier","src":"22175:3:53"},"nativeSrc":"22175:19:53","nodeType":"YulFunctionCall","src":"22175:19:53"},{"arguments":[{"name":"tail_1","nativeSrc":"22200:6:53","nodeType":"YulIdentifier","src":"22200:6:53"},{"name":"headStart","nativeSrc":"22208:9:53","nodeType":"YulIdentifier","src":"22208:9:53"}],"functionName":{"name":"sub","nativeSrc":"22196:3:53","nodeType":"YulIdentifier","src":"22196:3:53"},"nativeSrc":"22196:22:53","nodeType":"YulFunctionCall","src":"22196:22:53"}],"functionName":{"name":"mstore","nativeSrc":"22168:6:53","nodeType":"YulIdentifier","src":"22168:6:53"},"nativeSrc":"22168:51:53","nodeType":"YulFunctionCall","src":"22168:51:53"},"nativeSrc":"22168:51:53","nodeType":"YulExpressionStatement","src":"22168:51:53"},{"nativeSrc":"22228:57:53","nodeType":"YulAssignment","src":"22228:57:53","value":{"arguments":[{"name":"value5","nativeSrc":"22262:6:53","nodeType":"YulIdentifier","src":"22262:6:53"},{"name":"value6","nativeSrc":"22270:6:53","nodeType":"YulIdentifier","src":"22270:6:53"},{"name":"tail_1","nativeSrc":"22278:6:53","nodeType":"YulIdentifier","src":"22278:6:53"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"22236:25:53","nodeType":"YulIdentifier","src":"22236:25:53"},"nativeSrc":"22236:49:53","nodeType":"YulFunctionCall","src":"22236:49:53"},"variableNames":[{"name":"tail","nativeSrc":"22228:4:53","nodeType":"YulIdentifier","src":"22228:4:53"}]}]},"name":"abi_encode_tuple_t_struct$_Origin_$2176_calldata_ptr_t_bytes32_t_bytes_calldata_ptr_t_address_t_bytes_calldata_ptr__to_t_struct$_Origin_$2176_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"21299:992:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21539:9:53","nodeType":"YulTypedName","src":"21539:9:53","type":""},{"name":"value6","nativeSrc":"21550:6:53","nodeType":"YulTypedName","src":"21550:6:53","type":""},{"name":"value5","nativeSrc":"21558:6:53","nodeType":"YulTypedName","src":"21558:6:53","type":""},{"name":"value4","nativeSrc":"21566:6:53","nodeType":"YulTypedName","src":"21566:6:53","type":""},{"name":"value3","nativeSrc":"21574:6:53","nodeType":"YulTypedName","src":"21574:6:53","type":""},{"name":"value2","nativeSrc":"21582:6:53","nodeType":"YulTypedName","src":"21582:6:53","type":""},{"name":"value1","nativeSrc":"21590:6:53","nodeType":"YulTypedName","src":"21590:6:53","type":""},{"name":"value0","nativeSrc":"21598:6:53","nodeType":"YulTypedName","src":"21598:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21609:4:53","nodeType":"YulTypedName","src":"21609:4:53","type":""}],"src":"21299:992:53"},{"body":{"nativeSrc":"22386:557:53","nodeType":"YulBlock","src":"22386:557:53","statements":[{"body":{"nativeSrc":"22432:16:53","nodeType":"YulBlock","src":"22432:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22441:1:53","nodeType":"YulLiteral","src":"22441:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22444:1:53","nodeType":"YulLiteral","src":"22444:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22434:6:53","nodeType":"YulIdentifier","src":"22434:6:53"},"nativeSrc":"22434:12:53","nodeType":"YulFunctionCall","src":"22434:12:53"},"nativeSrc":"22434:12:53","nodeType":"YulExpressionStatement","src":"22434:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22407:7:53","nodeType":"YulIdentifier","src":"22407:7:53"},{"name":"headStart","nativeSrc":"22416:9:53","nodeType":"YulIdentifier","src":"22416:9:53"}],"functionName":{"name":"sub","nativeSrc":"22403:3:53","nodeType":"YulIdentifier","src":"22403:3:53"},"nativeSrc":"22403:23:53","nodeType":"YulFunctionCall","src":"22403:23:53"},{"kind":"number","nativeSrc":"22428:2:53","nodeType":"YulLiteral","src":"22428:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"22399:3:53","nodeType":"YulIdentifier","src":"22399:3:53"},"nativeSrc":"22399:32:53","nodeType":"YulFunctionCall","src":"22399:32:53"},"nativeSrc":"22396:52:53","nodeType":"YulIf","src":"22396:52:53"},{"nativeSrc":"22457:30:53","nodeType":"YulVariableDeclaration","src":"22457:30:53","value":{"arguments":[{"name":"headStart","nativeSrc":"22477:9:53","nodeType":"YulIdentifier","src":"22477:9:53"}],"functionName":{"name":"mload","nativeSrc":"22471:5:53","nodeType":"YulIdentifier","src":"22471:5:53"},"nativeSrc":"22471:16:53","nodeType":"YulFunctionCall","src":"22471:16:53"},"variables":[{"name":"offset","nativeSrc":"22461:6:53","nodeType":"YulTypedName","src":"22461:6:53","type":""}]},{"body":{"nativeSrc":"22530:16:53","nodeType":"YulBlock","src":"22530:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22539:1:53","nodeType":"YulLiteral","src":"22539:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22542:1:53","nodeType":"YulLiteral","src":"22542:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22532:6:53","nodeType":"YulIdentifier","src":"22532:6:53"},"nativeSrc":"22532:12:53","nodeType":"YulFunctionCall","src":"22532:12:53"},"nativeSrc":"22532:12:53","nodeType":"YulExpressionStatement","src":"22532:12:53"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"22502:6:53","nodeType":"YulIdentifier","src":"22502:6:53"},{"kind":"number","nativeSrc":"22510:18:53","nodeType":"YulLiteral","src":"22510:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22499:2:53","nodeType":"YulIdentifier","src":"22499:2:53"},"nativeSrc":"22499:30:53","nodeType":"YulFunctionCall","src":"22499:30:53"},"nativeSrc":"22496:50:53","nodeType":"YulIf","src":"22496:50:53"},{"nativeSrc":"22555:32:53","nodeType":"YulVariableDeclaration","src":"22555:32:53","value":{"arguments":[{"name":"headStart","nativeSrc":"22569:9:53","nodeType":"YulIdentifier","src":"22569:9:53"},{"name":"offset","nativeSrc":"22580:6:53","nodeType":"YulIdentifier","src":"22580:6:53"}],"functionName":{"name":"add","nativeSrc":"22565:3:53","nodeType":"YulIdentifier","src":"22565:3:53"},"nativeSrc":"22565:22:53","nodeType":"YulFunctionCall","src":"22565:22:53"},"variables":[{"name":"_1","nativeSrc":"22559:2:53","nodeType":"YulTypedName","src":"22559:2:53","type":""}]},{"body":{"nativeSrc":"22635:16:53","nodeType":"YulBlock","src":"22635:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22644:1:53","nodeType":"YulLiteral","src":"22644:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22647:1:53","nodeType":"YulLiteral","src":"22647:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22637:6:53","nodeType":"YulIdentifier","src":"22637:6:53"},"nativeSrc":"22637:12:53","nodeType":"YulFunctionCall","src":"22637:12:53"},"nativeSrc":"22637:12:53","nodeType":"YulExpressionStatement","src":"22637:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"22614:2:53","nodeType":"YulIdentifier","src":"22614:2:53"},{"kind":"number","nativeSrc":"22618:4:53","nodeType":"YulLiteral","src":"22618:4:53","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"22610:3:53","nodeType":"YulIdentifier","src":"22610:3:53"},"nativeSrc":"22610:13:53","nodeType":"YulFunctionCall","src":"22610:13:53"},{"name":"dataEnd","nativeSrc":"22625:7:53","nodeType":"YulIdentifier","src":"22625:7:53"}],"functionName":{"name":"slt","nativeSrc":"22606:3:53","nodeType":"YulIdentifier","src":"22606:3:53"},"nativeSrc":"22606:27:53","nodeType":"YulFunctionCall","src":"22606:27:53"}],"functionName":{"name":"iszero","nativeSrc":"22599:6:53","nodeType":"YulIdentifier","src":"22599:6:53"},"nativeSrc":"22599:35:53","nodeType":"YulFunctionCall","src":"22599:35:53"},"nativeSrc":"22596:55:53","nodeType":"YulIf","src":"22596:55:53"},{"nativeSrc":"22660:19:53","nodeType":"YulVariableDeclaration","src":"22660:19:53","value":{"arguments":[{"name":"_1","nativeSrc":"22676:2:53","nodeType":"YulIdentifier","src":"22676:2:53"}],"functionName":{"name":"mload","nativeSrc":"22670:5:53","nodeType":"YulIdentifier","src":"22670:5:53"},"nativeSrc":"22670:9:53","nodeType":"YulFunctionCall","src":"22670:9:53"},"variables":[{"name":"_2","nativeSrc":"22664:2:53","nodeType":"YulTypedName","src":"22664:2:53","type":""}]},{"nativeSrc":"22688:61:53","nodeType":"YulVariableDeclaration","src":"22688:61:53","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"22745:2:53","nodeType":"YulIdentifier","src":"22745:2:53"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"22717:27:53","nodeType":"YulIdentifier","src":"22717:27:53"},"nativeSrc":"22717:31:53","nodeType":"YulFunctionCall","src":"22717:31:53"}],"functionName":{"name":"allocate_memory","nativeSrc":"22701:15:53","nodeType":"YulIdentifier","src":"22701:15:53"},"nativeSrc":"22701:48:53","nodeType":"YulFunctionCall","src":"22701:48:53"},"variables":[{"name":"array","nativeSrc":"22692:5:53","nodeType":"YulTypedName","src":"22692:5:53","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"22765:5:53","nodeType":"YulIdentifier","src":"22765:5:53"},{"name":"_2","nativeSrc":"22772:2:53","nodeType":"YulIdentifier","src":"22772:2:53"}],"functionName":{"name":"mstore","nativeSrc":"22758:6:53","nodeType":"YulIdentifier","src":"22758:6:53"},"nativeSrc":"22758:17:53","nodeType":"YulFunctionCall","src":"22758:17:53"},"nativeSrc":"22758:17:53","nodeType":"YulExpressionStatement","src":"22758:17:53"},{"body":{"nativeSrc":"22821:16:53","nodeType":"YulBlock","src":"22821:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22830:1:53","nodeType":"YulLiteral","src":"22830:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"22833:1:53","nodeType":"YulLiteral","src":"22833:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"22823:6:53","nodeType":"YulIdentifier","src":"22823:6:53"},"nativeSrc":"22823:12:53","nodeType":"YulFunctionCall","src":"22823:12:53"},"nativeSrc":"22823:12:53","nodeType":"YulExpressionStatement","src":"22823:12:53"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"22798:2:53","nodeType":"YulIdentifier","src":"22798:2:53"},{"name":"_2","nativeSrc":"22802:2:53","nodeType":"YulIdentifier","src":"22802:2:53"}],"functionName":{"name":"add","nativeSrc":"22794:3:53","nodeType":"YulIdentifier","src":"22794:3:53"},"nativeSrc":"22794:11:53","nodeType":"YulFunctionCall","src":"22794:11:53"},{"kind":"number","nativeSrc":"22807:2:53","nodeType":"YulLiteral","src":"22807:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22790:3:53","nodeType":"YulIdentifier","src":"22790:3:53"},"nativeSrc":"22790:20:53","nodeType":"YulFunctionCall","src":"22790:20:53"},{"name":"dataEnd","nativeSrc":"22812:7:53","nodeType":"YulIdentifier","src":"22812:7:53"}],"functionName":{"name":"gt","nativeSrc":"22787:2:53","nodeType":"YulIdentifier","src":"22787:2:53"},"nativeSrc":"22787:33:53","nodeType":"YulFunctionCall","src":"22787:33:53"},"nativeSrc":"22784:53:53","nodeType":"YulIf","src":"22784:53:53"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"22885:2:53","nodeType":"YulIdentifier","src":"22885:2:53"},{"kind":"number","nativeSrc":"22889:2:53","nodeType":"YulLiteral","src":"22889:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22881:3:53","nodeType":"YulIdentifier","src":"22881:3:53"},"nativeSrc":"22881:11:53","nodeType":"YulFunctionCall","src":"22881:11:53"},{"arguments":[{"name":"array","nativeSrc":"22898:5:53","nodeType":"YulIdentifier","src":"22898:5:53"},{"kind":"number","nativeSrc":"22905:2:53","nodeType":"YulLiteral","src":"22905:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22894:3:53","nodeType":"YulIdentifier","src":"22894:3:53"},"nativeSrc":"22894:14:53","nodeType":"YulFunctionCall","src":"22894:14:53"},{"name":"_2","nativeSrc":"22910:2:53","nodeType":"YulIdentifier","src":"22910:2:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"22846:34:53","nodeType":"YulIdentifier","src":"22846:34:53"},"nativeSrc":"22846:67:53","nodeType":"YulFunctionCall","src":"22846:67:53"},"nativeSrc":"22846:67:53","nodeType":"YulExpressionStatement","src":"22846:67:53"},{"nativeSrc":"22922:15:53","nodeType":"YulAssignment","src":"22922:15:53","value":{"name":"array","nativeSrc":"22932:5:53","nodeType":"YulIdentifier","src":"22932:5:53"},"variableNames":[{"name":"value0","nativeSrc":"22922:6:53","nodeType":"YulIdentifier","src":"22922:6:53"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"22296:647:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22352:9:53","nodeType":"YulTypedName","src":"22352:9:53","type":""},{"name":"dataEnd","nativeSrc":"22363:7:53","nodeType":"YulTypedName","src":"22363:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22375:6:53","nodeType":"YulTypedName","src":"22375:6:53","type":""}],"src":"22296:647:53"},{"body":{"nativeSrc":"23135:309:53","nodeType":"YulBlock","src":"23135:309:53","statements":[{"nativeSrc":"23145:27:53","nodeType":"YulVariableDeclaration","src":"23145:27:53","value":{"arguments":[{"name":"value0","nativeSrc":"23165:6:53","nodeType":"YulIdentifier","src":"23165:6:53"}],"functionName":{"name":"mload","nativeSrc":"23159:5:53","nodeType":"YulIdentifier","src":"23159:5:53"},"nativeSrc":"23159:13:53","nodeType":"YulFunctionCall","src":"23159:13:53"},"variables":[{"name":"length","nativeSrc":"23149:6:53","nodeType":"YulTypedName","src":"23149:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"23220:6:53","nodeType":"YulIdentifier","src":"23220:6:53"},{"kind":"number","nativeSrc":"23228:4:53","nodeType":"YulLiteral","src":"23228:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23216:3:53","nodeType":"YulIdentifier","src":"23216:3:53"},"nativeSrc":"23216:17:53","nodeType":"YulFunctionCall","src":"23216:17:53"},{"name":"pos","nativeSrc":"23235:3:53","nodeType":"YulIdentifier","src":"23235:3:53"},{"name":"length","nativeSrc":"23240:6:53","nodeType":"YulIdentifier","src":"23240:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"23181:34:53","nodeType":"YulIdentifier","src":"23181:34:53"},"nativeSrc":"23181:66:53","nodeType":"YulFunctionCall","src":"23181:66:53"},"nativeSrc":"23181:66:53","nodeType":"YulExpressionStatement","src":"23181:66:53"},{"nativeSrc":"23256:29:53","nodeType":"YulVariableDeclaration","src":"23256:29:53","value":{"arguments":[{"name":"pos","nativeSrc":"23273:3:53","nodeType":"YulIdentifier","src":"23273:3:53"},{"name":"length","nativeSrc":"23278:6:53","nodeType":"YulIdentifier","src":"23278:6:53"}],"functionName":{"name":"add","nativeSrc":"23269:3:53","nodeType":"YulIdentifier","src":"23269:3:53"},"nativeSrc":"23269:16:53","nodeType":"YulFunctionCall","src":"23269:16:53"},"variables":[{"name":"end_1","nativeSrc":"23260:5:53","nodeType":"YulTypedName","src":"23260:5:53","type":""}]},{"nativeSrc":"23294:29:53","nodeType":"YulVariableDeclaration","src":"23294:29:53","value":{"arguments":[{"name":"value1","nativeSrc":"23316:6:53","nodeType":"YulIdentifier","src":"23316:6:53"}],"functionName":{"name":"mload","nativeSrc":"23310:5:53","nodeType":"YulIdentifier","src":"23310:5:53"},"nativeSrc":"23310:13:53","nodeType":"YulFunctionCall","src":"23310:13:53"},"variables":[{"name":"length_1","nativeSrc":"23298:8:53","nodeType":"YulTypedName","src":"23298:8:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"23371:6:53","nodeType":"YulIdentifier","src":"23371:6:53"},{"kind":"number","nativeSrc":"23379:4:53","nodeType":"YulLiteral","src":"23379:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23367:3:53","nodeType":"YulIdentifier","src":"23367:3:53"},"nativeSrc":"23367:17:53","nodeType":"YulFunctionCall","src":"23367:17:53"},{"name":"end_1","nativeSrc":"23386:5:53","nodeType":"YulIdentifier","src":"23386:5:53"},{"name":"length_1","nativeSrc":"23393:8:53","nodeType":"YulIdentifier","src":"23393:8:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"23332:34:53","nodeType":"YulIdentifier","src":"23332:34:53"},"nativeSrc":"23332:70:53","nodeType":"YulFunctionCall","src":"23332:70:53"},"nativeSrc":"23332:70:53","nodeType":"YulExpressionStatement","src":"23332:70:53"},{"nativeSrc":"23411:27:53","nodeType":"YulAssignment","src":"23411:27:53","value":{"arguments":[{"name":"end_1","nativeSrc":"23422:5:53","nodeType":"YulIdentifier","src":"23422:5:53"},{"name":"length_1","nativeSrc":"23429:8:53","nodeType":"YulIdentifier","src":"23429:8:53"}],"functionName":{"name":"add","nativeSrc":"23418:3:53","nodeType":"YulIdentifier","src":"23418:3:53"},"nativeSrc":"23418:20:53","nodeType":"YulFunctionCall","src":"23418:20:53"},"variableNames":[{"name":"end","nativeSrc":"23411:3:53","nodeType":"YulIdentifier","src":"23411:3:53"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"22948:496:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"23103:3:53","nodeType":"YulTypedName","src":"23103:3:53","type":""},{"name":"value1","nativeSrc":"23108:6:53","nodeType":"YulTypedName","src":"23108:6:53","type":""},{"name":"value0","nativeSrc":"23116:6:53","nodeType":"YulTypedName","src":"23116:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"23127:3:53","nodeType":"YulTypedName","src":"23127:3:53","type":""}],"src":"22948:496:53"},{"body":{"nativeSrc":"23548:93:53","nodeType":"YulBlock","src":"23548:93:53","statements":[{"nativeSrc":"23558:26:53","nodeType":"YulAssignment","src":"23558:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"23570:9:53","nodeType":"YulIdentifier","src":"23570:9:53"},{"kind":"number","nativeSrc":"23581:2:53","nodeType":"YulLiteral","src":"23581:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23566:3:53","nodeType":"YulIdentifier","src":"23566:3:53"},"nativeSrc":"23566:18:53","nodeType":"YulFunctionCall","src":"23566:18:53"},"variableNames":[{"name":"tail","nativeSrc":"23558:4:53","nodeType":"YulIdentifier","src":"23558:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23600:9:53","nodeType":"YulIdentifier","src":"23600:9:53"},{"arguments":[{"name":"value0","nativeSrc":"23615:6:53","nodeType":"YulIdentifier","src":"23615:6:53"},{"kind":"number","nativeSrc":"23623:10:53","nodeType":"YulLiteral","src":"23623:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"23611:3:53","nodeType":"YulIdentifier","src":"23611:3:53"},"nativeSrc":"23611:23:53","nodeType":"YulFunctionCall","src":"23611:23:53"}],"functionName":{"name":"mstore","nativeSrc":"23593:6:53","nodeType":"YulIdentifier","src":"23593:6:53"},"nativeSrc":"23593:42:53","nodeType":"YulFunctionCall","src":"23593:42:53"},"nativeSrc":"23593:42:53","nodeType":"YulExpressionStatement","src":"23593:42:53"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nativeSrc":"23449:192:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23517:9:53","nodeType":"YulTypedName","src":"23517:9:53","type":""},{"name":"value0","nativeSrc":"23528:6:53","nodeType":"YulTypedName","src":"23528:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23539:4:53","nodeType":"YulTypedName","src":"23539:4:53","type":""}],"src":"23449:192:53"},{"body":{"nativeSrc":"23715:176:53","nodeType":"YulBlock","src":"23715:176:53","statements":[{"body":{"nativeSrc":"23761:16:53","nodeType":"YulBlock","src":"23761:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23770:1:53","nodeType":"YulLiteral","src":"23770:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"23773:1:53","nodeType":"YulLiteral","src":"23773:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23763:6:53","nodeType":"YulIdentifier","src":"23763:6:53"},"nativeSrc":"23763:12:53","nodeType":"YulFunctionCall","src":"23763:12:53"},"nativeSrc":"23763:12:53","nodeType":"YulExpressionStatement","src":"23763:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23736:7:53","nodeType":"YulIdentifier","src":"23736:7:53"},{"name":"headStart","nativeSrc":"23745:9:53","nodeType":"YulIdentifier","src":"23745:9:53"}],"functionName":{"name":"sub","nativeSrc":"23732:3:53","nodeType":"YulIdentifier","src":"23732:3:53"},"nativeSrc":"23732:23:53","nodeType":"YulFunctionCall","src":"23732:23:53"},{"kind":"number","nativeSrc":"23757:2:53","nodeType":"YulLiteral","src":"23757:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23728:3:53","nodeType":"YulIdentifier","src":"23728:3:53"},"nativeSrc":"23728:32:53","nodeType":"YulFunctionCall","src":"23728:32:53"},"nativeSrc":"23725:52:53","nodeType":"YulIf","src":"23725:52:53"},{"nativeSrc":"23786:36:53","nodeType":"YulVariableDeclaration","src":"23786:36:53","value":{"arguments":[{"name":"headStart","nativeSrc":"23812:9:53","nodeType":"YulIdentifier","src":"23812:9:53"}],"functionName":{"name":"calldataload","nativeSrc":"23799:12:53","nodeType":"YulIdentifier","src":"23799:12:53"},"nativeSrc":"23799:23:53","nodeType":"YulFunctionCall","src":"23799:23:53"},"variables":[{"name":"value","nativeSrc":"23790:5:53","nodeType":"YulTypedName","src":"23790:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"23855:5:53","nodeType":"YulIdentifier","src":"23855:5:53"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"23831:23:53","nodeType":"YulIdentifier","src":"23831:23:53"},"nativeSrc":"23831:30:53","nodeType":"YulFunctionCall","src":"23831:30:53"},"nativeSrc":"23831:30:53","nodeType":"YulExpressionStatement","src":"23831:30:53"},{"nativeSrc":"23870:15:53","nodeType":"YulAssignment","src":"23870:15:53","value":{"name":"value","nativeSrc":"23880:5:53","nodeType":"YulIdentifier","src":"23880:5:53"},"variableNames":[{"name":"value0","nativeSrc":"23870:6:53","nodeType":"YulIdentifier","src":"23870:6:53"}]}]},"name":"abi_decode_tuple_t_uint64","nativeSrc":"23646:245:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23681:9:53","nodeType":"YulTypedName","src":"23681:9:53","type":""},{"name":"dataEnd","nativeSrc":"23692:7:53","nodeType":"YulTypedName","src":"23692:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23704:6:53","nodeType":"YulTypedName","src":"23704:6:53","type":""}],"src":"23646:245:53"},{"body":{"nativeSrc":"24106:269:53","nodeType":"YulBlock","src":"24106:269:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24123:9:53","nodeType":"YulIdentifier","src":"24123:9:53"},{"arguments":[{"name":"value0","nativeSrc":"24138:6:53","nodeType":"YulIdentifier","src":"24138:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24154:3:53","nodeType":"YulLiteral","src":"24154:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"24159:1:53","nodeType":"YulLiteral","src":"24159:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"24150:3:53","nodeType":"YulIdentifier","src":"24150:3:53"},"nativeSrc":"24150:11:53","nodeType":"YulFunctionCall","src":"24150:11:53"},{"kind":"number","nativeSrc":"24163:1:53","nodeType":"YulLiteral","src":"24163:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"24146:3:53","nodeType":"YulIdentifier","src":"24146:3:53"},"nativeSrc":"24146:19:53","nodeType":"YulFunctionCall","src":"24146:19:53"}],"functionName":{"name":"and","nativeSrc":"24134:3:53","nodeType":"YulIdentifier","src":"24134:3:53"},"nativeSrc":"24134:32:53","nodeType":"YulFunctionCall","src":"24134:32:53"}],"functionName":{"name":"mstore","nativeSrc":"24116:6:53","nodeType":"YulIdentifier","src":"24116:6:53"},"nativeSrc":"24116:51:53","nodeType":"YulFunctionCall","src":"24116:51:53"},"nativeSrc":"24116:51:53","nodeType":"YulExpressionStatement","src":"24116:51:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24187:9:53","nodeType":"YulIdentifier","src":"24187:9:53"},{"kind":"number","nativeSrc":"24198:2:53","nodeType":"YulLiteral","src":"24198:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24183:3:53","nodeType":"YulIdentifier","src":"24183:3:53"},"nativeSrc":"24183:18:53","nodeType":"YulFunctionCall","src":"24183:18:53"},{"name":"value1","nativeSrc":"24203:6:53","nodeType":"YulIdentifier","src":"24203:6:53"}],"functionName":{"name":"mstore","nativeSrc":"24176:6:53","nodeType":"YulIdentifier","src":"24176:6:53"},"nativeSrc":"24176:34:53","nodeType":"YulFunctionCall","src":"24176:34:53"},"nativeSrc":"24176:34:53","nodeType":"YulExpressionStatement","src":"24176:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24230:9:53","nodeType":"YulIdentifier","src":"24230:9:53"},{"kind":"number","nativeSrc":"24241:2:53","nodeType":"YulLiteral","src":"24241:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24226:3:53","nodeType":"YulIdentifier","src":"24226:3:53"},"nativeSrc":"24226:18:53","nodeType":"YulFunctionCall","src":"24226:18:53"},{"arguments":[{"name":"value2","nativeSrc":"24250:6:53","nodeType":"YulIdentifier","src":"24250:6:53"},{"kind":"number","nativeSrc":"24258:6:53","nodeType":"YulLiteral","src":"24258:6:53","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"24246:3:53","nodeType":"YulIdentifier","src":"24246:3:53"},"nativeSrc":"24246:19:53","nodeType":"YulFunctionCall","src":"24246:19:53"}],"functionName":{"name":"mstore","nativeSrc":"24219:6:53","nodeType":"YulIdentifier","src":"24219:6:53"},"nativeSrc":"24219:47:53","nodeType":"YulFunctionCall","src":"24219:47:53"},"nativeSrc":"24219:47:53","nodeType":"YulExpressionStatement","src":"24219:47:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24286:9:53","nodeType":"YulIdentifier","src":"24286:9:53"},{"kind":"number","nativeSrc":"24297:2:53","nodeType":"YulLiteral","src":"24297:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24282:3:53","nodeType":"YulIdentifier","src":"24282:3:53"},"nativeSrc":"24282:18:53","nodeType":"YulFunctionCall","src":"24282:18:53"},{"kind":"number","nativeSrc":"24302:3:53","nodeType":"YulLiteral","src":"24302:3:53","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"24275:6:53","nodeType":"YulIdentifier","src":"24275:6:53"},"nativeSrc":"24275:31:53","nodeType":"YulFunctionCall","src":"24275:31:53"},"nativeSrc":"24275:31:53","nodeType":"YulExpressionStatement","src":"24275:31:53"},{"nativeSrc":"24315:54:53","nodeType":"YulAssignment","src":"24315:54:53","value":{"arguments":[{"name":"value3","nativeSrc":"24341:6:53","nodeType":"YulIdentifier","src":"24341:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"24353:9:53","nodeType":"YulIdentifier","src":"24353:9:53"},{"kind":"number","nativeSrc":"24364:3:53","nodeType":"YulLiteral","src":"24364:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24349:3:53","nodeType":"YulIdentifier","src":"24349:3:53"},"nativeSrc":"24349:19:53","nodeType":"YulFunctionCall","src":"24349:19:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"24323:17:53","nodeType":"YulIdentifier","src":"24323:17:53"},"nativeSrc":"24323:46:53","nodeType":"YulFunctionCall","src":"24323:46:53"},"variableNames":[{"name":"tail","nativeSrc":"24315:4:53","nodeType":"YulIdentifier","src":"24315:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_rational_0_by_1_t_bytes_memory_ptr__to_t_address_t_bytes32_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"23896:479:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24051:9:53","nodeType":"YulTypedName","src":"24051:9:53","type":""},{"name":"value3","nativeSrc":"24062:6:53","nodeType":"YulTypedName","src":"24062:6:53","type":""},{"name":"value2","nativeSrc":"24070:6:53","nodeType":"YulTypedName","src":"24070:6:53","type":""},{"name":"value1","nativeSrc":"24078:6:53","nodeType":"YulTypedName","src":"24078:6:53","type":""},{"name":"value0","nativeSrc":"24086:6:53","nodeType":"YulTypedName","src":"24086:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24097:4:53","nodeType":"YulTypedName","src":"24097:4:53","type":""}],"src":"23896:479:53"},{"body":{"nativeSrc":"24509:175:53","nodeType":"YulBlock","src":"24509:175:53","statements":[{"nativeSrc":"24519:26:53","nodeType":"YulAssignment","src":"24519:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"24531:9:53","nodeType":"YulIdentifier","src":"24531:9:53"},{"kind":"number","nativeSrc":"24542:2:53","nodeType":"YulLiteral","src":"24542:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24527:3:53","nodeType":"YulIdentifier","src":"24527:3:53"},"nativeSrc":"24527:18:53","nodeType":"YulFunctionCall","src":"24527:18:53"},"variableNames":[{"name":"tail","nativeSrc":"24519:4:53","nodeType":"YulIdentifier","src":"24519:4:53"}]},{"nativeSrc":"24554:29:53","nodeType":"YulVariableDeclaration","src":"24554:29:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24572:3:53","nodeType":"YulLiteral","src":"24572:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"24577:1:53","nodeType":"YulLiteral","src":"24577:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"24568:3:53","nodeType":"YulIdentifier","src":"24568:3:53"},"nativeSrc":"24568:11:53","nodeType":"YulFunctionCall","src":"24568:11:53"},{"kind":"number","nativeSrc":"24581:1:53","nodeType":"YulLiteral","src":"24581:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"24564:3:53","nodeType":"YulIdentifier","src":"24564:3:53"},"nativeSrc":"24564:19:53","nodeType":"YulFunctionCall","src":"24564:19:53"},"variables":[{"name":"_1","nativeSrc":"24558:2:53","nodeType":"YulTypedName","src":"24558:2:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24599:9:53","nodeType":"YulIdentifier","src":"24599:9:53"},{"arguments":[{"name":"value0","nativeSrc":"24614:6:53","nodeType":"YulIdentifier","src":"24614:6:53"},{"name":"_1","nativeSrc":"24622:2:53","nodeType":"YulIdentifier","src":"24622:2:53"}],"functionName":{"name":"and","nativeSrc":"24610:3:53","nodeType":"YulIdentifier","src":"24610:3:53"},"nativeSrc":"24610:15:53","nodeType":"YulFunctionCall","src":"24610:15:53"}],"functionName":{"name":"mstore","nativeSrc":"24592:6:53","nodeType":"YulIdentifier","src":"24592:6:53"},"nativeSrc":"24592:34:53","nodeType":"YulFunctionCall","src":"24592:34:53"},"nativeSrc":"24592:34:53","nodeType":"YulExpressionStatement","src":"24592:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24646:9:53","nodeType":"YulIdentifier","src":"24646:9:53"},{"kind":"number","nativeSrc":"24657:2:53","nodeType":"YulLiteral","src":"24657:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24642:3:53","nodeType":"YulIdentifier","src":"24642:3:53"},"nativeSrc":"24642:18:53","nodeType":"YulFunctionCall","src":"24642:18:53"},{"arguments":[{"name":"value1","nativeSrc":"24666:6:53","nodeType":"YulIdentifier","src":"24666:6:53"},{"name":"_1","nativeSrc":"24674:2:53","nodeType":"YulIdentifier","src":"24674:2:53"}],"functionName":{"name":"and","nativeSrc":"24662:3:53","nodeType":"YulIdentifier","src":"24662:3:53"},"nativeSrc":"24662:15:53","nodeType":"YulFunctionCall","src":"24662:15:53"}],"functionName":{"name":"mstore","nativeSrc":"24635:6:53","nodeType":"YulIdentifier","src":"24635:6:53"},"nativeSrc":"24635:43:53","nodeType":"YulFunctionCall","src":"24635:43:53"},"nativeSrc":"24635:43:53","nodeType":"YulExpressionStatement","src":"24635:43:53"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"24380:304:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24470:9:53","nodeType":"YulTypedName","src":"24470:9:53","type":""},{"name":"value1","nativeSrc":"24481:6:53","nodeType":"YulTypedName","src":"24481:6:53","type":""},{"name":"value0","nativeSrc":"24489:6:53","nodeType":"YulTypedName","src":"24489:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24500:4:53","nodeType":"YulTypedName","src":"24500:4:53","type":""}],"src":"24380:304:53"},{"body":{"nativeSrc":"24854:214:53","nodeType":"YulBlock","src":"24854:214:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24871:9:53","nodeType":"YulIdentifier","src":"24871:9:53"},{"kind":"number","nativeSrc":"24882:2:53","nodeType":"YulLiteral","src":"24882:2:53","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"24864:6:53","nodeType":"YulIdentifier","src":"24864:6:53"},"nativeSrc":"24864:21:53","nodeType":"YulFunctionCall","src":"24864:21:53"},"nativeSrc":"24864:21:53","nodeType":"YulExpressionStatement","src":"24864:21:53"},{"nativeSrc":"24894:59:53","nodeType":"YulVariableDeclaration","src":"24894:59:53","value":{"arguments":[{"name":"value0","nativeSrc":"24926:6:53","nodeType":"YulIdentifier","src":"24926:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"24938:9:53","nodeType":"YulIdentifier","src":"24938:9:53"},{"kind":"number","nativeSrc":"24949:2:53","nodeType":"YulLiteral","src":"24949:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24934:3:53","nodeType":"YulIdentifier","src":"24934:3:53"},"nativeSrc":"24934:18:53","nodeType":"YulFunctionCall","src":"24934:18:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"24908:17:53","nodeType":"YulIdentifier","src":"24908:17:53"},"nativeSrc":"24908:45:53","nodeType":"YulFunctionCall","src":"24908:45:53"},"variables":[{"name":"tail_1","nativeSrc":"24898:6:53","nodeType":"YulTypedName","src":"24898:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24973:9:53","nodeType":"YulIdentifier","src":"24973:9:53"},{"kind":"number","nativeSrc":"24984:2:53","nodeType":"YulLiteral","src":"24984:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24969:3:53","nodeType":"YulIdentifier","src":"24969:3:53"},"nativeSrc":"24969:18:53","nodeType":"YulFunctionCall","src":"24969:18:53"},{"arguments":[{"name":"tail_1","nativeSrc":"24993:6:53","nodeType":"YulIdentifier","src":"24993:6:53"},{"name":"headStart","nativeSrc":"25001:9:53","nodeType":"YulIdentifier","src":"25001:9:53"}],"functionName":{"name":"sub","nativeSrc":"24989:3:53","nodeType":"YulIdentifier","src":"24989:3:53"},"nativeSrc":"24989:22:53","nodeType":"YulFunctionCall","src":"24989:22:53"}],"functionName":{"name":"mstore","nativeSrc":"24962:6:53","nodeType":"YulIdentifier","src":"24962:6:53"},"nativeSrc":"24962:50:53","nodeType":"YulFunctionCall","src":"24962:50:53"},"nativeSrc":"24962:50:53","nodeType":"YulExpressionStatement","src":"24962:50:53"},{"nativeSrc":"25021:41:53","nodeType":"YulAssignment","src":"25021:41:53","value":{"arguments":[{"name":"value1","nativeSrc":"25047:6:53","nodeType":"YulIdentifier","src":"25047:6:53"},{"name":"tail_1","nativeSrc":"25055:6:53","nodeType":"YulIdentifier","src":"25055:6:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"25029:17:53","nodeType":"YulIdentifier","src":"25029:17:53"},"nativeSrc":"25029:33:53","nodeType":"YulFunctionCall","src":"25029:33:53"},"variableNames":[{"name":"tail","nativeSrc":"25021:4:53","nodeType":"YulIdentifier","src":"25021:4:53"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"24689:379:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24815:9:53","nodeType":"YulTypedName","src":"24815:9:53","type":""},{"name":"value1","nativeSrc":"24826:6:53","nodeType":"YulTypedName","src":"24826:6:53","type":""},{"name":"value0","nativeSrc":"24834:6:53","nodeType":"YulTypedName","src":"24834:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24845:4:53","nodeType":"YulTypedName","src":"24845:4:53","type":""}],"src":"24689:379:53"},{"body":{"nativeSrc":"25151:167:53","nodeType":"YulBlock","src":"25151:167:53","statements":[{"body":{"nativeSrc":"25197:16:53","nodeType":"YulBlock","src":"25197:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25206:1:53","nodeType":"YulLiteral","src":"25206:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"25209:1:53","nodeType":"YulLiteral","src":"25209:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"25199:6:53","nodeType":"YulIdentifier","src":"25199:6:53"},"nativeSrc":"25199:12:53","nodeType":"YulFunctionCall","src":"25199:12:53"},"nativeSrc":"25199:12:53","nodeType":"YulExpressionStatement","src":"25199:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"25172:7:53","nodeType":"YulIdentifier","src":"25172:7:53"},{"name":"headStart","nativeSrc":"25181:9:53","nodeType":"YulIdentifier","src":"25181:9:53"}],"functionName":{"name":"sub","nativeSrc":"25168:3:53","nodeType":"YulIdentifier","src":"25168:3:53"},"nativeSrc":"25168:23:53","nodeType":"YulFunctionCall","src":"25168:23:53"},{"kind":"number","nativeSrc":"25193:2:53","nodeType":"YulLiteral","src":"25193:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"25164:3:53","nodeType":"YulIdentifier","src":"25164:3:53"},"nativeSrc":"25164:32:53","nodeType":"YulFunctionCall","src":"25164:32:53"},"nativeSrc":"25161:52:53","nodeType":"YulIf","src":"25161:52:53"},{"nativeSrc":"25222:29:53","nodeType":"YulVariableDeclaration","src":"25222:29:53","value":{"arguments":[{"name":"headStart","nativeSrc":"25241:9:53","nodeType":"YulIdentifier","src":"25241:9:53"}],"functionName":{"name":"mload","nativeSrc":"25235:5:53","nodeType":"YulIdentifier","src":"25235:5:53"},"nativeSrc":"25235:16:53","nodeType":"YulFunctionCall","src":"25235:16:53"},"variables":[{"name":"value","nativeSrc":"25226:5:53","nodeType":"YulTypedName","src":"25226:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"25282:5:53","nodeType":"YulIdentifier","src":"25282:5:53"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"25260:21:53","nodeType":"YulIdentifier","src":"25260:21:53"},"nativeSrc":"25260:28:53","nodeType":"YulFunctionCall","src":"25260:28:53"},"nativeSrc":"25260:28:53","nodeType":"YulExpressionStatement","src":"25260:28:53"},{"nativeSrc":"25297:15:53","nodeType":"YulAssignment","src":"25297:15:53","value":{"name":"value","nativeSrc":"25307:5:53","nodeType":"YulIdentifier","src":"25307:5:53"},"variableNames":[{"name":"value0","nativeSrc":"25297:6:53","nodeType":"YulIdentifier","src":"25297:6:53"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"25073:245:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25117:9:53","nodeType":"YulTypedName","src":"25117:9:53","type":""},{"name":"dataEnd","nativeSrc":"25128:7:53","nodeType":"YulTypedName","src":"25128:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"25140:6:53","nodeType":"YulTypedName","src":"25140:6:53","type":""}],"src":"25073:245:53"},{"body":{"nativeSrc":"25518:696:53","nodeType":"YulBlock","src":"25518:696:53","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25535:9:53","nodeType":"YulIdentifier","src":"25535:9:53"},{"kind":"number","nativeSrc":"25546:2:53","nodeType":"YulLiteral","src":"25546:2:53","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"25528:6:53","nodeType":"YulIdentifier","src":"25528:6:53"},"nativeSrc":"25528:21:53","nodeType":"YulFunctionCall","src":"25528:21:53"},"nativeSrc":"25528:21:53","nodeType":"YulExpressionStatement","src":"25528:21:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25569:9:53","nodeType":"YulIdentifier","src":"25569:9:53"},{"kind":"number","nativeSrc":"25580:2:53","nodeType":"YulLiteral","src":"25580:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25565:3:53","nodeType":"YulIdentifier","src":"25565:3:53"},"nativeSrc":"25565:18:53","nodeType":"YulFunctionCall","src":"25565:18:53"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"25595:6:53","nodeType":"YulIdentifier","src":"25595:6:53"}],"functionName":{"name":"mload","nativeSrc":"25589:5:53","nodeType":"YulIdentifier","src":"25589:5:53"},"nativeSrc":"25589:13:53","nodeType":"YulFunctionCall","src":"25589:13:53"},{"kind":"number","nativeSrc":"25604:10:53","nodeType":"YulLiteral","src":"25604:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"25585:3:53","nodeType":"YulIdentifier","src":"25585:3:53"},"nativeSrc":"25585:30:53","nodeType":"YulFunctionCall","src":"25585:30:53"}],"functionName":{"name":"mstore","nativeSrc":"25558:6:53","nodeType":"YulIdentifier","src":"25558:6:53"},"nativeSrc":"25558:58:53","nodeType":"YulFunctionCall","src":"25558:58:53"},"nativeSrc":"25558:58:53","nodeType":"YulExpressionStatement","src":"25558:58:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25636:9:53","nodeType":"YulIdentifier","src":"25636:9:53"},{"kind":"number","nativeSrc":"25647:2:53","nodeType":"YulLiteral","src":"25647:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25632:3:53","nodeType":"YulIdentifier","src":"25632:3:53"},"nativeSrc":"25632:18:53","nodeType":"YulFunctionCall","src":"25632:18:53"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"25662:6:53","nodeType":"YulIdentifier","src":"25662:6:53"},{"kind":"number","nativeSrc":"25670:4:53","nodeType":"YulLiteral","src":"25670:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25658:3:53","nodeType":"YulIdentifier","src":"25658:3:53"},"nativeSrc":"25658:17:53","nodeType":"YulFunctionCall","src":"25658:17:53"}],"functionName":{"name":"mload","nativeSrc":"25652:5:53","nodeType":"YulIdentifier","src":"25652:5:53"},"nativeSrc":"25652:24:53","nodeType":"YulFunctionCall","src":"25652:24:53"}],"functionName":{"name":"mstore","nativeSrc":"25625:6:53","nodeType":"YulIdentifier","src":"25625:6:53"},"nativeSrc":"25625:52:53","nodeType":"YulFunctionCall","src":"25625:52:53"},"nativeSrc":"25625:52:53","nodeType":"YulExpressionStatement","src":"25625:52:53"},{"nativeSrc":"25686:42:53","nodeType":"YulVariableDeclaration","src":"25686:42:53","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"25716:6:53","nodeType":"YulIdentifier","src":"25716:6:53"},{"kind":"number","nativeSrc":"25724:2:53","nodeType":"YulLiteral","src":"25724:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25712:3:53","nodeType":"YulIdentifier","src":"25712:3:53"},"nativeSrc":"25712:15:53","nodeType":"YulFunctionCall","src":"25712:15:53"}],"functionName":{"name":"mload","nativeSrc":"25706:5:53","nodeType":"YulIdentifier","src":"25706:5:53"},"nativeSrc":"25706:22:53","nodeType":"YulFunctionCall","src":"25706:22:53"},"variables":[{"name":"memberValue0","nativeSrc":"25690:12:53","nodeType":"YulTypedName","src":"25690:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25748:9:53","nodeType":"YulIdentifier","src":"25748:9:53"},{"kind":"number","nativeSrc":"25759:3:53","nodeType":"YulLiteral","src":"25759:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25744:3:53","nodeType":"YulIdentifier","src":"25744:3:53"},"nativeSrc":"25744:19:53","nodeType":"YulFunctionCall","src":"25744:19:53"},{"kind":"number","nativeSrc":"25765:4:53","nodeType":"YulLiteral","src":"25765:4:53","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"25737:6:53","nodeType":"YulIdentifier","src":"25737:6:53"},"nativeSrc":"25737:33:53","nodeType":"YulFunctionCall","src":"25737:33:53"},"nativeSrc":"25737:33:53","nodeType":"YulExpressionStatement","src":"25737:33:53"},{"nativeSrc":"25779:66:53","nodeType":"YulVariableDeclaration","src":"25779:66:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"25811:12:53","nodeType":"YulIdentifier","src":"25811:12:53"},{"arguments":[{"name":"headStart","nativeSrc":"25829:9:53","nodeType":"YulIdentifier","src":"25829:9:53"},{"kind":"number","nativeSrc":"25840:3:53","nodeType":"YulLiteral","src":"25840:3:53","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"25825:3:53","nodeType":"YulIdentifier","src":"25825:3:53"},"nativeSrc":"25825:19:53","nodeType":"YulFunctionCall","src":"25825:19:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"25793:17:53","nodeType":"YulIdentifier","src":"25793:17:53"},"nativeSrc":"25793:52:53","nodeType":"YulFunctionCall","src":"25793:52:53"},"variables":[{"name":"tail_1","nativeSrc":"25783:6:53","nodeType":"YulTypedName","src":"25783:6:53","type":""}]},{"nativeSrc":"25854:44:53","nodeType":"YulVariableDeclaration","src":"25854:44:53","value":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"25886:6:53","nodeType":"YulIdentifier","src":"25886:6:53"},{"kind":"number","nativeSrc":"25894:2:53","nodeType":"YulLiteral","src":"25894:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25882:3:53","nodeType":"YulIdentifier","src":"25882:3:53"},"nativeSrc":"25882:15:53","nodeType":"YulFunctionCall","src":"25882:15:53"}],"functionName":{"name":"mload","nativeSrc":"25876:5:53","nodeType":"YulIdentifier","src":"25876:5:53"},"nativeSrc":"25876:22:53","nodeType":"YulFunctionCall","src":"25876:22:53"},"variables":[{"name":"memberValue0_1","nativeSrc":"25858:14:53","nodeType":"YulTypedName","src":"25858:14:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25918:9:53","nodeType":"YulIdentifier","src":"25918:9:53"},{"kind":"number","nativeSrc":"25929:4:53","nodeType":"YulLiteral","src":"25929:4:53","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"25914:3:53","nodeType":"YulIdentifier","src":"25914:3:53"},"nativeSrc":"25914:20:53","nodeType":"YulFunctionCall","src":"25914:20:53"},{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"25944:6:53","nodeType":"YulIdentifier","src":"25944:6:53"},{"name":"headStart","nativeSrc":"25952:9:53","nodeType":"YulIdentifier","src":"25952:9:53"}],"functionName":{"name":"sub","nativeSrc":"25940:3:53","nodeType":"YulIdentifier","src":"25940:3:53"},"nativeSrc":"25940:22:53","nodeType":"YulFunctionCall","src":"25940:22:53"},{"arguments":[{"kind":"number","nativeSrc":"25968:2:53","nodeType":"YulLiteral","src":"25968:2:53","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"25964:3:53","nodeType":"YulIdentifier","src":"25964:3:53"},"nativeSrc":"25964:7:53","nodeType":"YulFunctionCall","src":"25964:7:53"}],"functionName":{"name":"add","nativeSrc":"25936:3:53","nodeType":"YulIdentifier","src":"25936:3:53"},"nativeSrc":"25936:36:53","nodeType":"YulFunctionCall","src":"25936:36:53"}],"functionName":{"name":"mstore","nativeSrc":"25907:6:53","nodeType":"YulIdentifier","src":"25907:6:53"},"nativeSrc":"25907:66:53","nodeType":"YulFunctionCall","src":"25907:66:53"},"nativeSrc":"25907:66:53","nodeType":"YulExpressionStatement","src":"25907:66:53"},{"nativeSrc":"25982:55:53","nodeType":"YulVariableDeclaration","src":"25982:55:53","value":{"arguments":[{"name":"memberValue0_1","nativeSrc":"26014:14:53","nodeType":"YulIdentifier","src":"26014:14:53"},{"name":"tail_1","nativeSrc":"26030:6:53","nodeType":"YulIdentifier","src":"26030:6:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"25996:17:53","nodeType":"YulIdentifier","src":"25996:17:53"},"nativeSrc":"25996:41:53","nodeType":"YulFunctionCall","src":"25996:41:53"},"variables":[{"name":"tail_2","nativeSrc":"25986:6:53","nodeType":"YulTypedName","src":"25986:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26057:9:53","nodeType":"YulIdentifier","src":"26057:9:53"},{"kind":"number","nativeSrc":"26068:3:53","nodeType":"YulLiteral","src":"26068:3:53","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"26053:3:53","nodeType":"YulIdentifier","src":"26053:3:53"},"nativeSrc":"26053:19:53","nodeType":"YulFunctionCall","src":"26053:19:53"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"26098:6:53","nodeType":"YulIdentifier","src":"26098:6:53"},{"kind":"number","nativeSrc":"26106:3:53","nodeType":"YulLiteral","src":"26106:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26094:3:53","nodeType":"YulIdentifier","src":"26094:3:53"},"nativeSrc":"26094:16:53","nodeType":"YulFunctionCall","src":"26094:16:53"}],"functionName":{"name":"mload","nativeSrc":"26088:5:53","nodeType":"YulIdentifier","src":"26088:5:53"},"nativeSrc":"26088:23:53","nodeType":"YulFunctionCall","src":"26088:23:53"}],"functionName":{"name":"iszero","nativeSrc":"26081:6:53","nodeType":"YulIdentifier","src":"26081:6:53"},"nativeSrc":"26081:31:53","nodeType":"YulFunctionCall","src":"26081:31:53"}],"functionName":{"name":"iszero","nativeSrc":"26074:6:53","nodeType":"YulIdentifier","src":"26074:6:53"},"nativeSrc":"26074:39:53","nodeType":"YulFunctionCall","src":"26074:39:53"}],"functionName":{"name":"mstore","nativeSrc":"26046:6:53","nodeType":"YulIdentifier","src":"26046:6:53"},"nativeSrc":"26046:68:53","nodeType":"YulFunctionCall","src":"26046:68:53"},"nativeSrc":"26046:68:53","nodeType":"YulExpressionStatement","src":"26046:68:53"},{"nativeSrc":"26123:14:53","nodeType":"YulAssignment","src":"26123:14:53","value":{"name":"tail_2","nativeSrc":"26131:6:53","nodeType":"YulIdentifier","src":"26131:6:53"},"variableNames":[{"name":"tail","nativeSrc":"26123:4:53","nodeType":"YulIdentifier","src":"26123:4:53"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26157:9:53","nodeType":"YulIdentifier","src":"26157:9:53"},{"kind":"number","nativeSrc":"26168:4:53","nodeType":"YulLiteral","src":"26168:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26153:3:53","nodeType":"YulIdentifier","src":"26153:3:53"},"nativeSrc":"26153:20:53","nodeType":"YulFunctionCall","src":"26153:20:53"},{"arguments":[{"name":"value1","nativeSrc":"26179:6:53","nodeType":"YulIdentifier","src":"26179:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26195:3:53","nodeType":"YulLiteral","src":"26195:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"26200:1:53","nodeType":"YulLiteral","src":"26200:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"26191:3:53","nodeType":"YulIdentifier","src":"26191:3:53"},"nativeSrc":"26191:11:53","nodeType":"YulFunctionCall","src":"26191:11:53"},{"kind":"number","nativeSrc":"26204:1:53","nodeType":"YulLiteral","src":"26204:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"26187:3:53","nodeType":"YulIdentifier","src":"26187:3:53"},"nativeSrc":"26187:19:53","nodeType":"YulFunctionCall","src":"26187:19:53"}],"functionName":{"name":"and","nativeSrc":"26175:3:53","nodeType":"YulIdentifier","src":"26175:3:53"},"nativeSrc":"26175:32:53","nodeType":"YulFunctionCall","src":"26175:32:53"}],"functionName":{"name":"mstore","nativeSrc":"26146:6:53","nodeType":"YulIdentifier","src":"26146:6:53"},"nativeSrc":"26146:62:53","nodeType":"YulFunctionCall","src":"26146:62:53"},"nativeSrc":"26146:62:53","nodeType":"YulExpressionStatement","src":"26146:62:53"}]},"name":"abi_encode_tuple_t_struct$_MessagingParams_$2156_memory_ptr_t_address__to_t_struct$_MessagingParams_$2156_memory_ptr_t_address__fromStack_reversed","nativeSrc":"25323:891:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25479:9:53","nodeType":"YulTypedName","src":"25479:9:53","type":""},{"name":"value1","nativeSrc":"25490:6:53","nodeType":"YulTypedName","src":"25490:6:53","type":""},{"name":"value0","nativeSrc":"25498:6:53","nodeType":"YulTypedName","src":"25498:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25509:4:53","nodeType":"YulTypedName","src":"25509:4:53","type":""}],"src":"25323:891:53"},{"body":{"nativeSrc":"26299:204:53","nodeType":"YulBlock","src":"26299:204:53","statements":[{"body":{"nativeSrc":"26343:16:53","nodeType":"YulBlock","src":"26343:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26352:1:53","nodeType":"YulLiteral","src":"26352:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"26355:1:53","nodeType":"YulLiteral","src":"26355:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26345:6:53","nodeType":"YulIdentifier","src":"26345:6:53"},"nativeSrc":"26345:12:53","nodeType":"YulFunctionCall","src":"26345:12:53"},"nativeSrc":"26345:12:53","nodeType":"YulExpressionStatement","src":"26345:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"26320:3:53","nodeType":"YulIdentifier","src":"26320:3:53"},{"name":"headStart","nativeSrc":"26325:9:53","nodeType":"YulIdentifier","src":"26325:9:53"}],"functionName":{"name":"sub","nativeSrc":"26316:3:53","nodeType":"YulIdentifier","src":"26316:3:53"},"nativeSrc":"26316:19:53","nodeType":"YulFunctionCall","src":"26316:19:53"},{"kind":"number","nativeSrc":"26337:4:53","nodeType":"YulLiteral","src":"26337:4:53","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"26312:3:53","nodeType":"YulIdentifier","src":"26312:3:53"},"nativeSrc":"26312:30:53","nodeType":"YulFunctionCall","src":"26312:30:53"},"nativeSrc":"26309:50:53","nodeType":"YulIf","src":"26309:50:53"},{"nativeSrc":"26368:31:53","nodeType":"YulAssignment","src":"26368:31:53","value":{"arguments":[],"functionName":{"name":"allocate_memory_3822","nativeSrc":"26377:20:53","nodeType":"YulIdentifier","src":"26377:20:53"},"nativeSrc":"26377:22:53","nodeType":"YulFunctionCall","src":"26377:22:53"},"variableNames":[{"name":"value","nativeSrc":"26368:5:53","nodeType":"YulIdentifier","src":"26368:5:53"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"26415:5:53","nodeType":"YulIdentifier","src":"26415:5:53"},{"arguments":[{"name":"headStart","nativeSrc":"26428:9:53","nodeType":"YulIdentifier","src":"26428:9:53"}],"functionName":{"name":"mload","nativeSrc":"26422:5:53","nodeType":"YulIdentifier","src":"26422:5:53"},"nativeSrc":"26422:16:53","nodeType":"YulFunctionCall","src":"26422:16:53"}],"functionName":{"name":"mstore","nativeSrc":"26408:6:53","nodeType":"YulIdentifier","src":"26408:6:53"},"nativeSrc":"26408:31:53","nodeType":"YulFunctionCall","src":"26408:31:53"},"nativeSrc":"26408:31:53","nodeType":"YulExpressionStatement","src":"26408:31:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26459:5:53","nodeType":"YulIdentifier","src":"26459:5:53"},{"kind":"number","nativeSrc":"26466:2:53","nodeType":"YulLiteral","src":"26466:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26455:3:53","nodeType":"YulIdentifier","src":"26455:3:53"},"nativeSrc":"26455:14:53","nodeType":"YulFunctionCall","src":"26455:14:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26481:9:53","nodeType":"YulIdentifier","src":"26481:9:53"},{"kind":"number","nativeSrc":"26492:2:53","nodeType":"YulLiteral","src":"26492:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26477:3:53","nodeType":"YulIdentifier","src":"26477:3:53"},"nativeSrc":"26477:18:53","nodeType":"YulFunctionCall","src":"26477:18:53"}],"functionName":{"name":"mload","nativeSrc":"26471:5:53","nodeType":"YulIdentifier","src":"26471:5:53"},"nativeSrc":"26471:25:53","nodeType":"YulFunctionCall","src":"26471:25:53"}],"functionName":{"name":"mstore","nativeSrc":"26448:6:53","nodeType":"YulIdentifier","src":"26448:6:53"},"nativeSrc":"26448:49:53","nodeType":"YulFunctionCall","src":"26448:49:53"},"nativeSrc":"26448:49:53","nodeType":"YulExpressionStatement","src":"26448:49:53"}]},"name":"abi_decode_struct_MessagingFee_fromMemory","nativeSrc":"26219:284:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26270:9:53","nodeType":"YulTypedName","src":"26270:9:53","type":""},{"name":"end","nativeSrc":"26281:3:53","nodeType":"YulTypedName","src":"26281:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"26289:5:53","nodeType":"YulTypedName","src":"26289:5:53","type":""}],"src":"26219:284:53"},{"body":{"nativeSrc":"26623:410:53","nodeType":"YulBlock","src":"26623:410:53","statements":[{"body":{"nativeSrc":"26670:16:53","nodeType":"YulBlock","src":"26670:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26679:1:53","nodeType":"YulLiteral","src":"26679:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"26682:1:53","nodeType":"YulLiteral","src":"26682:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26672:6:53","nodeType":"YulIdentifier","src":"26672:6:53"},"nativeSrc":"26672:12:53","nodeType":"YulFunctionCall","src":"26672:12:53"},"nativeSrc":"26672:12:53","nodeType":"YulExpressionStatement","src":"26672:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26644:7:53","nodeType":"YulIdentifier","src":"26644:7:53"},{"name":"headStart","nativeSrc":"26653:9:53","nodeType":"YulIdentifier","src":"26653:9:53"}],"functionName":{"name":"sub","nativeSrc":"26640:3:53","nodeType":"YulIdentifier","src":"26640:3:53"},"nativeSrc":"26640:23:53","nodeType":"YulFunctionCall","src":"26640:23:53"},{"kind":"number","nativeSrc":"26665:3:53","nodeType":"YulLiteral","src":"26665:3:53","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"26636:3:53","nodeType":"YulIdentifier","src":"26636:3:53"},"nativeSrc":"26636:33:53","nodeType":"YulFunctionCall","src":"26636:33:53"},"nativeSrc":"26633:53:53","nodeType":"YulIf","src":"26633:53:53"},{"nativeSrc":"26695:35:53","nodeType":"YulVariableDeclaration","src":"26695:35:53","value":{"arguments":[],"functionName":{"name":"allocate_memory_3825","nativeSrc":"26708:20:53","nodeType":"YulIdentifier","src":"26708:20:53"},"nativeSrc":"26708:22:53","nodeType":"YulFunctionCall","src":"26708:22:53"},"variables":[{"name":"value","nativeSrc":"26699:5:53","nodeType":"YulTypedName","src":"26699:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"26746:5:53","nodeType":"YulIdentifier","src":"26746:5:53"},{"arguments":[{"name":"headStart","nativeSrc":"26759:9:53","nodeType":"YulIdentifier","src":"26759:9:53"}],"functionName":{"name":"mload","nativeSrc":"26753:5:53","nodeType":"YulIdentifier","src":"26753:5:53"},"nativeSrc":"26753:16:53","nodeType":"YulFunctionCall","src":"26753:16:53"}],"functionName":{"name":"mstore","nativeSrc":"26739:6:53","nodeType":"YulIdentifier","src":"26739:6:53"},"nativeSrc":"26739:31:53","nodeType":"YulFunctionCall","src":"26739:31:53"},"nativeSrc":"26739:31:53","nodeType":"YulExpressionStatement","src":"26739:31:53"},{"nativeSrc":"26779:40:53","nodeType":"YulVariableDeclaration","src":"26779:40:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26804:9:53","nodeType":"YulIdentifier","src":"26804:9:53"},{"kind":"number","nativeSrc":"26815:2:53","nodeType":"YulLiteral","src":"26815:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26800:3:53","nodeType":"YulIdentifier","src":"26800:3:53"},"nativeSrc":"26800:18:53","nodeType":"YulFunctionCall","src":"26800:18:53"}],"functionName":{"name":"mload","nativeSrc":"26794:5:53","nodeType":"YulIdentifier","src":"26794:5:53"},"nativeSrc":"26794:25:53","nodeType":"YulFunctionCall","src":"26794:25:53"},"variables":[{"name":"value_1","nativeSrc":"26783:7:53","nodeType":"YulTypedName","src":"26783:7:53","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"26852:7:53","nodeType":"YulIdentifier","src":"26852:7:53"}],"functionName":{"name":"validator_revert_uint64","nativeSrc":"26828:23:53","nodeType":"YulIdentifier","src":"26828:23:53"},"nativeSrc":"26828:32:53","nodeType":"YulFunctionCall","src":"26828:32:53"},"nativeSrc":"26828:32:53","nodeType":"YulExpressionStatement","src":"26828:32:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26880:5:53","nodeType":"YulIdentifier","src":"26880:5:53"},{"kind":"number","nativeSrc":"26887:2:53","nodeType":"YulLiteral","src":"26887:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26876:3:53","nodeType":"YulIdentifier","src":"26876:3:53"},"nativeSrc":"26876:14:53","nodeType":"YulFunctionCall","src":"26876:14:53"},{"name":"value_1","nativeSrc":"26892:7:53","nodeType":"YulIdentifier","src":"26892:7:53"}],"functionName":{"name":"mstore","nativeSrc":"26869:6:53","nodeType":"YulIdentifier","src":"26869:6:53"},"nativeSrc":"26869:31:53","nodeType":"YulFunctionCall","src":"26869:31:53"},"nativeSrc":"26869:31:53","nodeType":"YulExpressionStatement","src":"26869:31:53"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26920:5:53","nodeType":"YulIdentifier","src":"26920:5:53"},{"kind":"number","nativeSrc":"26927:2:53","nodeType":"YulLiteral","src":"26927:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26916:3:53","nodeType":"YulIdentifier","src":"26916:3:53"},"nativeSrc":"26916:14:53","nodeType":"YulFunctionCall","src":"26916:14:53"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26978:9:53","nodeType":"YulIdentifier","src":"26978:9:53"},{"kind":"number","nativeSrc":"26989:2:53","nodeType":"YulLiteral","src":"26989:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26974:3:53","nodeType":"YulIdentifier","src":"26974:3:53"},"nativeSrc":"26974:18:53","nodeType":"YulFunctionCall","src":"26974:18:53"},{"name":"dataEnd","nativeSrc":"26994:7:53","nodeType":"YulIdentifier","src":"26994:7:53"}],"functionName":{"name":"abi_decode_struct_MessagingFee_fromMemory","nativeSrc":"26932:41:53","nodeType":"YulIdentifier","src":"26932:41:53"},"nativeSrc":"26932:70:53","nodeType":"YulFunctionCall","src":"26932:70:53"}],"functionName":{"name":"mstore","nativeSrc":"26909:6:53","nodeType":"YulIdentifier","src":"26909:6:53"},"nativeSrc":"26909:94:53","nodeType":"YulFunctionCall","src":"26909:94:53"},"nativeSrc":"26909:94:53","nodeType":"YulExpressionStatement","src":"26909:94:53"},{"nativeSrc":"27012:15:53","nodeType":"YulAssignment","src":"27012:15:53","value":{"name":"value","nativeSrc":"27022:5:53","nodeType":"YulIdentifier","src":"27022:5:53"},"variableNames":[{"name":"value0","nativeSrc":"27012:6:53","nodeType":"YulIdentifier","src":"27012:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr_fromMemory","nativeSrc":"26508:525:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26589:9:53","nodeType":"YulTypedName","src":"26589:9:53","type":""},{"name":"dataEnd","nativeSrc":"26600:7:53","nodeType":"YulTypedName","src":"26600:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26612:6:53","nodeType":"YulTypedName","src":"26612:6:53","type":""}],"src":"26508:525:53"},{"body":{"nativeSrc":"27241:286:53","nodeType":"YulBlock","src":"27241:286:53","statements":[{"nativeSrc":"27251:29:53","nodeType":"YulVariableDeclaration","src":"27251:29:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27269:3:53","nodeType":"YulLiteral","src":"27269:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"27274:1:53","nodeType":"YulLiteral","src":"27274:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"27265:3:53","nodeType":"YulIdentifier","src":"27265:3:53"},"nativeSrc":"27265:11:53","nodeType":"YulFunctionCall","src":"27265:11:53"},{"kind":"number","nativeSrc":"27278:1:53","nodeType":"YulLiteral","src":"27278:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"27261:3:53","nodeType":"YulIdentifier","src":"27261:3:53"},"nativeSrc":"27261:19:53","nodeType":"YulFunctionCall","src":"27261:19:53"},"variables":[{"name":"_1","nativeSrc":"27255:2:53","nodeType":"YulTypedName","src":"27255:2:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27296:9:53","nodeType":"YulIdentifier","src":"27296:9:53"},{"arguments":[{"name":"value0","nativeSrc":"27311:6:53","nodeType":"YulIdentifier","src":"27311:6:53"},{"name":"_1","nativeSrc":"27319:2:53","nodeType":"YulIdentifier","src":"27319:2:53"}],"functionName":{"name":"and","nativeSrc":"27307:3:53","nodeType":"YulIdentifier","src":"27307:3:53"},"nativeSrc":"27307:15:53","nodeType":"YulFunctionCall","src":"27307:15:53"}],"functionName":{"name":"mstore","nativeSrc":"27289:6:53","nodeType":"YulIdentifier","src":"27289:6:53"},"nativeSrc":"27289:34:53","nodeType":"YulFunctionCall","src":"27289:34:53"},"nativeSrc":"27289:34:53","nodeType":"YulExpressionStatement","src":"27289:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27343:9:53","nodeType":"YulIdentifier","src":"27343:9:53"},{"kind":"number","nativeSrc":"27354:2:53","nodeType":"YulLiteral","src":"27354:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27339:3:53","nodeType":"YulIdentifier","src":"27339:3:53"},"nativeSrc":"27339:18:53","nodeType":"YulFunctionCall","src":"27339:18:53"},{"arguments":[{"name":"value1","nativeSrc":"27363:6:53","nodeType":"YulIdentifier","src":"27363:6:53"},{"name":"_1","nativeSrc":"27371:2:53","nodeType":"YulIdentifier","src":"27371:2:53"}],"functionName":{"name":"and","nativeSrc":"27359:3:53","nodeType":"YulIdentifier","src":"27359:3:53"},"nativeSrc":"27359:15:53","nodeType":"YulFunctionCall","src":"27359:15:53"}],"functionName":{"name":"mstore","nativeSrc":"27332:6:53","nodeType":"YulIdentifier","src":"27332:6:53"},"nativeSrc":"27332:43:53","nodeType":"YulFunctionCall","src":"27332:43:53"},"nativeSrc":"27332:43:53","nodeType":"YulExpressionStatement","src":"27332:43:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27395:9:53","nodeType":"YulIdentifier","src":"27395:9:53"},{"kind":"number","nativeSrc":"27406:2:53","nodeType":"YulLiteral","src":"27406:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27391:3:53","nodeType":"YulIdentifier","src":"27391:3:53"},"nativeSrc":"27391:18:53","nodeType":"YulFunctionCall","src":"27391:18:53"},{"name":"value2","nativeSrc":"27411:6:53","nodeType":"YulIdentifier","src":"27411:6:53"}],"functionName":{"name":"mstore","nativeSrc":"27384:6:53","nodeType":"YulIdentifier","src":"27384:6:53"},"nativeSrc":"27384:34:53","nodeType":"YulFunctionCall","src":"27384:34:53"},"nativeSrc":"27384:34:53","nodeType":"YulExpressionStatement","src":"27384:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27438:9:53","nodeType":"YulIdentifier","src":"27438:9:53"},{"kind":"number","nativeSrc":"27449:2:53","nodeType":"YulLiteral","src":"27449:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27434:3:53","nodeType":"YulIdentifier","src":"27434:3:53"},"nativeSrc":"27434:18:53","nodeType":"YulFunctionCall","src":"27434:18:53"},{"kind":"number","nativeSrc":"27454:3:53","nodeType":"YulLiteral","src":"27454:3:53","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"27427:6:53","nodeType":"YulIdentifier","src":"27427:6:53"},"nativeSrc":"27427:31:53","nodeType":"YulFunctionCall","src":"27427:31:53"},"nativeSrc":"27427:31:53","nodeType":"YulExpressionStatement","src":"27427:31:53"},{"nativeSrc":"27467:54:53","nodeType":"YulAssignment","src":"27467:54:53","value":{"arguments":[{"name":"value3","nativeSrc":"27493:6:53","nodeType":"YulIdentifier","src":"27493:6:53"},{"arguments":[{"name":"headStart","nativeSrc":"27505:9:53","nodeType":"YulIdentifier","src":"27505:9:53"},{"kind":"number","nativeSrc":"27516:3:53","nodeType":"YulLiteral","src":"27516:3:53","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27501:3:53","nodeType":"YulIdentifier","src":"27501:3:53"},"nativeSrc":"27501:19:53","nodeType":"YulFunctionCall","src":"27501:19:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"27475:17:53","nodeType":"YulIdentifier","src":"27475:17:53"},"nativeSrc":"27475:46:53","nodeType":"YulFunctionCall","src":"27475:46:53"},"variableNames":[{"name":"tail","nativeSrc":"27467:4:53","nodeType":"YulIdentifier","src":"27467:4:53"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"27038:489:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27186:9:53","nodeType":"YulTypedName","src":"27186:9:53","type":""},{"name":"value3","nativeSrc":"27197:6:53","nodeType":"YulTypedName","src":"27197:6:53","type":""},{"name":"value2","nativeSrc":"27205:6:53","nodeType":"YulTypedName","src":"27205:6:53","type":""},{"name":"value1","nativeSrc":"27213:6:53","nodeType":"YulTypedName","src":"27213:6:53","type":""},{"name":"value0","nativeSrc":"27221:6:53","nodeType":"YulTypedName","src":"27221:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27232:4:53","nodeType":"YulTypedName","src":"27232:4:53","type":""}],"src":"27038:489:53"},{"body":{"nativeSrc":"27612:169:53","nodeType":"YulBlock","src":"27612:169:53","statements":[{"body":{"nativeSrc":"27658:16:53","nodeType":"YulBlock","src":"27658:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27667:1:53","nodeType":"YulLiteral","src":"27667:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27670:1:53","nodeType":"YulLiteral","src":"27670:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27660:6:53","nodeType":"YulIdentifier","src":"27660:6:53"},"nativeSrc":"27660:12:53","nodeType":"YulFunctionCall","src":"27660:12:53"},"nativeSrc":"27660:12:53","nodeType":"YulExpressionStatement","src":"27660:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27633:7:53","nodeType":"YulIdentifier","src":"27633:7:53"},{"name":"headStart","nativeSrc":"27642:9:53","nodeType":"YulIdentifier","src":"27642:9:53"}],"functionName":{"name":"sub","nativeSrc":"27629:3:53","nodeType":"YulIdentifier","src":"27629:3:53"},"nativeSrc":"27629:23:53","nodeType":"YulFunctionCall","src":"27629:23:53"},{"kind":"number","nativeSrc":"27654:2:53","nodeType":"YulLiteral","src":"27654:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"27625:3:53","nodeType":"YulIdentifier","src":"27625:3:53"},"nativeSrc":"27625:32:53","nodeType":"YulFunctionCall","src":"27625:32:53"},"nativeSrc":"27622:52:53","nodeType":"YulIf","src":"27622:52:53"},{"nativeSrc":"27683:29:53","nodeType":"YulVariableDeclaration","src":"27683:29:53","value":{"arguments":[{"name":"headStart","nativeSrc":"27702:9:53","nodeType":"YulIdentifier","src":"27702:9:53"}],"functionName":{"name":"mload","nativeSrc":"27696:5:53","nodeType":"YulIdentifier","src":"27696:5:53"},"nativeSrc":"27696:16:53","nodeType":"YulFunctionCall","src":"27696:16:53"},"variables":[{"name":"value","nativeSrc":"27687:5:53","nodeType":"YulTypedName","src":"27687:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"27745:5:53","nodeType":"YulIdentifier","src":"27745:5:53"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"27721:23:53","nodeType":"YulIdentifier","src":"27721:23:53"},"nativeSrc":"27721:30:53","nodeType":"YulFunctionCall","src":"27721:30:53"},"nativeSrc":"27721:30:53","nodeType":"YulExpressionStatement","src":"27721:30:53"},{"nativeSrc":"27760:15:53","nodeType":"YulAssignment","src":"27760:15:53","value":{"name":"value","nativeSrc":"27770:5:53","nodeType":"YulIdentifier","src":"27770:5:53"},"variableNames":[{"name":"value0","nativeSrc":"27760:6:53","nodeType":"YulIdentifier","src":"27760:6:53"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"27532:249:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27578:9:53","nodeType":"YulTypedName","src":"27578:9:53","type":""},{"name":"dataEnd","nativeSrc":"27589:7:53","nodeType":"YulTypedName","src":"27589:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27601:6:53","nodeType":"YulTypedName","src":"27601:6:53","type":""}],"src":"27532:249:53"},{"body":{"nativeSrc":"27841:65:53","nodeType":"YulBlock","src":"27841:65:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27858:1:53","nodeType":"YulLiteral","src":"27858:1:53","type":"","value":"0"},{"name":"ptr","nativeSrc":"27861:3:53","nodeType":"YulIdentifier","src":"27861:3:53"}],"functionName":{"name":"mstore","nativeSrc":"27851:6:53","nodeType":"YulIdentifier","src":"27851:6:53"},"nativeSrc":"27851:14:53","nodeType":"YulFunctionCall","src":"27851:14:53"},"nativeSrc":"27851:14:53","nodeType":"YulExpressionStatement","src":"27851:14:53"},{"nativeSrc":"27874:26:53","nodeType":"YulAssignment","src":"27874:26:53","value":{"arguments":[{"kind":"number","nativeSrc":"27892:1:53","nodeType":"YulLiteral","src":"27892:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"27895:4:53","nodeType":"YulLiteral","src":"27895:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"27882:9:53","nodeType":"YulIdentifier","src":"27882:9:53"},"nativeSrc":"27882:18:53","nodeType":"YulFunctionCall","src":"27882:18:53"},"variableNames":[{"name":"data","nativeSrc":"27874:4:53","nodeType":"YulIdentifier","src":"27874:4:53"}]}]},"name":"array_dataslot_bytes_storage","nativeSrc":"27786:120:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"27824:3:53","nodeType":"YulTypedName","src":"27824:3:53","type":""}],"returnVariables":[{"name":"data","nativeSrc":"27832:4:53","nodeType":"YulTypedName","src":"27832:4:53","type":""}],"src":"27786:120:53"},{"body":{"nativeSrc":"27991:462:53","nodeType":"YulBlock","src":"27991:462:53","statements":[{"body":{"nativeSrc":"28024:423:53","nodeType":"YulBlock","src":"28024:423:53","statements":[{"nativeSrc":"28038:11:53","nodeType":"YulVariableDeclaration","src":"28038:11:53","value":{"kind":"number","nativeSrc":"28048:1:53","nodeType":"YulLiteral","src":"28048:1:53","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"28042:2:53","nodeType":"YulTypedName","src":"28042:2:53","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28069:1:53","nodeType":"YulLiteral","src":"28069:1:53","type":"","value":"0"},{"name":"array","nativeSrc":"28072:5:53","nodeType":"YulIdentifier","src":"28072:5:53"}],"functionName":{"name":"mstore","nativeSrc":"28062:6:53","nodeType":"YulIdentifier","src":"28062:6:53"},"nativeSrc":"28062:16:53","nodeType":"YulFunctionCall","src":"28062:16:53"},"nativeSrc":"28062:16:53","nodeType":"YulExpressionStatement","src":"28062:16:53"},{"nativeSrc":"28091:30:53","nodeType":"YulVariableDeclaration","src":"28091:30:53","value":{"arguments":[{"kind":"number","nativeSrc":"28113:1:53","nodeType":"YulLiteral","src":"28113:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"28116:4:53","nodeType":"YulLiteral","src":"28116:4:53","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"28103:9:53","nodeType":"YulIdentifier","src":"28103:9:53"},"nativeSrc":"28103:18:53","nodeType":"YulFunctionCall","src":"28103:18:53"},"variables":[{"name":"data","nativeSrc":"28095:4:53","nodeType":"YulTypedName","src":"28095:4:53","type":""}]},{"nativeSrc":"28134:57:53","nodeType":"YulVariableDeclaration","src":"28134:57:53","value":{"arguments":[{"name":"data","nativeSrc":"28157:4:53","nodeType":"YulIdentifier","src":"28157:4:53"},{"arguments":[{"kind":"number","nativeSrc":"28167:1:53","nodeType":"YulLiteral","src":"28167:1:53","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"28174:10:53","nodeType":"YulIdentifier","src":"28174:10:53"},{"kind":"number","nativeSrc":"28186:2:53","nodeType":"YulLiteral","src":"28186:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"28170:3:53","nodeType":"YulIdentifier","src":"28170:3:53"},"nativeSrc":"28170:19:53","nodeType":"YulFunctionCall","src":"28170:19:53"}],"functionName":{"name":"shr","nativeSrc":"28163:3:53","nodeType":"YulIdentifier","src":"28163:3:53"},"nativeSrc":"28163:27:53","nodeType":"YulFunctionCall","src":"28163:27:53"}],"functionName":{"name":"add","nativeSrc":"28153:3:53","nodeType":"YulIdentifier","src":"28153:3:53"},"nativeSrc":"28153:38:53","nodeType":"YulFunctionCall","src":"28153:38:53"},"variables":[{"name":"deleteStart","nativeSrc":"28138:11:53","nodeType":"YulTypedName","src":"28138:11:53","type":""}]},{"body":{"nativeSrc":"28228:23:53","nodeType":"YulBlock","src":"28228:23:53","statements":[{"nativeSrc":"28230:19:53","nodeType":"YulAssignment","src":"28230:19:53","value":{"name":"data","nativeSrc":"28245:4:53","nodeType":"YulIdentifier","src":"28245:4:53"},"variableNames":[{"name":"deleteStart","nativeSrc":"28230:11:53","nodeType":"YulIdentifier","src":"28230:11:53"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"28210:10:53","nodeType":"YulIdentifier","src":"28210:10:53"},{"kind":"number","nativeSrc":"28222:4:53","nodeType":"YulLiteral","src":"28222:4:53","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"28207:2:53","nodeType":"YulIdentifier","src":"28207:2:53"},"nativeSrc":"28207:20:53","nodeType":"YulFunctionCall","src":"28207:20:53"},"nativeSrc":"28204:47:53","nodeType":"YulIf","src":"28204:47:53"},{"nativeSrc":"28264:41:53","nodeType":"YulVariableDeclaration","src":"28264:41:53","value":{"arguments":[{"name":"data","nativeSrc":"28278:4:53","nodeType":"YulIdentifier","src":"28278:4:53"},{"arguments":[{"kind":"number","nativeSrc":"28288:1:53","nodeType":"YulLiteral","src":"28288:1:53","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"28295:3:53","nodeType":"YulIdentifier","src":"28295:3:53"},{"kind":"number","nativeSrc":"28300:2:53","nodeType":"YulLiteral","src":"28300:2:53","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"28291:3:53","nodeType":"YulIdentifier","src":"28291:3:53"},"nativeSrc":"28291:12:53","nodeType":"YulFunctionCall","src":"28291:12:53"}],"functionName":{"name":"shr","nativeSrc":"28284:3:53","nodeType":"YulIdentifier","src":"28284:3:53"},"nativeSrc":"28284:20:53","nodeType":"YulFunctionCall","src":"28284:20:53"}],"functionName":{"name":"add","nativeSrc":"28274:3:53","nodeType":"YulIdentifier","src":"28274:3:53"},"nativeSrc":"28274:31:53","nodeType":"YulFunctionCall","src":"28274:31:53"},"variables":[{"name":"_2","nativeSrc":"28268:2:53","nodeType":"YulTypedName","src":"28268:2:53","type":""}]},{"nativeSrc":"28318:24:53","nodeType":"YulVariableDeclaration","src":"28318:24:53","value":{"name":"deleteStart","nativeSrc":"28331:11:53","nodeType":"YulIdentifier","src":"28331:11:53"},"variables":[{"name":"start","nativeSrc":"28322:5:53","nodeType":"YulTypedName","src":"28322:5:53","type":""}]},{"body":{"nativeSrc":"28416:21:53","nodeType":"YulBlock","src":"28416:21:53","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"28425:5:53","nodeType":"YulIdentifier","src":"28425:5:53"},{"name":"_1","nativeSrc":"28432:2:53","nodeType":"YulIdentifier","src":"28432:2:53"}],"functionName":{"name":"sstore","nativeSrc":"28418:6:53","nodeType":"YulIdentifier","src":"28418:6:53"},"nativeSrc":"28418:17:53","nodeType":"YulFunctionCall","src":"28418:17:53"},"nativeSrc":"28418:17:53","nodeType":"YulExpressionStatement","src":"28418:17:53"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"28366:5:53","nodeType":"YulIdentifier","src":"28366:5:53"},{"name":"_2","nativeSrc":"28373:2:53","nodeType":"YulIdentifier","src":"28373:2:53"}],"functionName":{"name":"lt","nativeSrc":"28363:2:53","nodeType":"YulIdentifier","src":"28363:2:53"},"nativeSrc":"28363:13:53","nodeType":"YulFunctionCall","src":"28363:13:53"},"nativeSrc":"28355:82:53","nodeType":"YulForLoop","post":{"nativeSrc":"28377:26:53","nodeType":"YulBlock","src":"28377:26:53","statements":[{"nativeSrc":"28379:22:53","nodeType":"YulAssignment","src":"28379:22:53","value":{"arguments":[{"name":"start","nativeSrc":"28392:5:53","nodeType":"YulIdentifier","src":"28392:5:53"},{"kind":"number","nativeSrc":"28399:1:53","nodeType":"YulLiteral","src":"28399:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28388:3:53","nodeType":"YulIdentifier","src":"28388:3:53"},"nativeSrc":"28388:13:53","nodeType":"YulFunctionCall","src":"28388:13:53"},"variableNames":[{"name":"start","nativeSrc":"28379:5:53","nodeType":"YulIdentifier","src":"28379:5:53"}]}]},"pre":{"nativeSrc":"28359:3:53","nodeType":"YulBlock","src":"28359:3:53","statements":[]},"src":"28355:82:53"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"28007:3:53","nodeType":"YulIdentifier","src":"28007:3:53"},{"kind":"number","nativeSrc":"28012:2:53","nodeType":"YulLiteral","src":"28012:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"28004:2:53","nodeType":"YulIdentifier","src":"28004:2:53"},"nativeSrc":"28004:11:53","nodeType":"YulFunctionCall","src":"28004:11:53"},"nativeSrc":"28001:446:53","nodeType":"YulIf","src":"28001:446:53"}]},"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"27911:542:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"27963:5:53","nodeType":"YulTypedName","src":"27963:5:53","type":""},{"name":"len","nativeSrc":"27970:3:53","nodeType":"YulTypedName","src":"27970:3:53","type":""},{"name":"startIndex","nativeSrc":"27975:10:53","nodeType":"YulTypedName","src":"27975:10:53","type":""}],"src":"27911:542:53"},{"body":{"nativeSrc":"28543:81:53","nodeType":"YulBlock","src":"28543:81:53","statements":[{"nativeSrc":"28553:65:53","nodeType":"YulAssignment","src":"28553:65:53","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"28568:4:53","nodeType":"YulIdentifier","src":"28568:4:53"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28586:1:53","nodeType":"YulLiteral","src":"28586:1:53","type":"","value":"3"},{"name":"len","nativeSrc":"28589:3:53","nodeType":"YulIdentifier","src":"28589:3:53"}],"functionName":{"name":"shl","nativeSrc":"28582:3:53","nodeType":"YulIdentifier","src":"28582:3:53"},"nativeSrc":"28582:11:53","nodeType":"YulFunctionCall","src":"28582:11:53"},{"arguments":[{"kind":"number","nativeSrc":"28599:1:53","nodeType":"YulLiteral","src":"28599:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"28595:3:53","nodeType":"YulIdentifier","src":"28595:3:53"},"nativeSrc":"28595:6:53","nodeType":"YulFunctionCall","src":"28595:6:53"}],"functionName":{"name":"shr","nativeSrc":"28578:3:53","nodeType":"YulIdentifier","src":"28578:3:53"},"nativeSrc":"28578:24:53","nodeType":"YulFunctionCall","src":"28578:24:53"}],"functionName":{"name":"not","nativeSrc":"28574:3:53","nodeType":"YulIdentifier","src":"28574:3:53"},"nativeSrc":"28574:29:53","nodeType":"YulFunctionCall","src":"28574:29:53"}],"functionName":{"name":"and","nativeSrc":"28564:3:53","nodeType":"YulIdentifier","src":"28564:3:53"},"nativeSrc":"28564:40:53","nodeType":"YulFunctionCall","src":"28564:40:53"},{"arguments":[{"kind":"number","nativeSrc":"28610:1:53","nodeType":"YulLiteral","src":"28610:1:53","type":"","value":"1"},{"name":"len","nativeSrc":"28613:3:53","nodeType":"YulIdentifier","src":"28613:3:53"}],"functionName":{"name":"shl","nativeSrc":"28606:3:53","nodeType":"YulIdentifier","src":"28606:3:53"},"nativeSrc":"28606:11:53","nodeType":"YulFunctionCall","src":"28606:11:53"}],"functionName":{"name":"or","nativeSrc":"28561:2:53","nodeType":"YulIdentifier","src":"28561:2:53"},"nativeSrc":"28561:57:53","nodeType":"YulFunctionCall","src":"28561:57:53"},"variableNames":[{"name":"used","nativeSrc":"28553:4:53","nodeType":"YulIdentifier","src":"28553:4:53"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"28458:166:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"28520:4:53","nodeType":"YulTypedName","src":"28520:4:53","type":""},{"name":"len","nativeSrc":"28526:3:53","nodeType":"YulTypedName","src":"28526:3:53","type":""}],"returnVariables":[{"name":"used","nativeSrc":"28534:4:53","nodeType":"YulTypedName","src":"28534:4:53","type":""}],"src":"28458:166:53"},{"body":{"nativeSrc":"28723:1247:53","nodeType":"YulBlock","src":"28723:1247:53","statements":[{"nativeSrc":"28733:24:53","nodeType":"YulVariableDeclaration","src":"28733:24:53","value":{"arguments":[{"name":"src","nativeSrc":"28753:3:53","nodeType":"YulIdentifier","src":"28753:3:53"}],"functionName":{"name":"mload","nativeSrc":"28747:5:53","nodeType":"YulIdentifier","src":"28747:5:53"},"nativeSrc":"28747:10:53","nodeType":"YulFunctionCall","src":"28747:10:53"},"variables":[{"name":"newLen","nativeSrc":"28737:6:53","nodeType":"YulTypedName","src":"28737:6:53","type":""}]},{"body":{"nativeSrc":"28800:22:53","nodeType":"YulBlock","src":"28800:22:53","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"28802:16:53","nodeType":"YulIdentifier","src":"28802:16:53"},"nativeSrc":"28802:18:53","nodeType":"YulFunctionCall","src":"28802:18:53"},"nativeSrc":"28802:18:53","nodeType":"YulExpressionStatement","src":"28802:18:53"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"28772:6:53","nodeType":"YulIdentifier","src":"28772:6:53"},{"kind":"number","nativeSrc":"28780:18:53","nodeType":"YulLiteral","src":"28780:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"28769:2:53","nodeType":"YulIdentifier","src":"28769:2:53"},"nativeSrc":"28769:30:53","nodeType":"YulFunctionCall","src":"28769:30:53"},"nativeSrc":"28766:56:53","nodeType":"YulIf","src":"28766:56:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"28874:4:53","nodeType":"YulIdentifier","src":"28874:4:53"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"28912:4:53","nodeType":"YulIdentifier","src":"28912:4:53"}],"functionName":{"name":"sload","nativeSrc":"28906:5:53","nodeType":"YulIdentifier","src":"28906:5:53"},"nativeSrc":"28906:11:53","nodeType":"YulFunctionCall","src":"28906:11:53"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"28880:25:53","nodeType":"YulIdentifier","src":"28880:25:53"},"nativeSrc":"28880:38:53","nodeType":"YulFunctionCall","src":"28880:38:53"},{"name":"newLen","nativeSrc":"28920:6:53","nodeType":"YulIdentifier","src":"28920:6:53"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"28831:42:53","nodeType":"YulIdentifier","src":"28831:42:53"},"nativeSrc":"28831:96:53","nodeType":"YulFunctionCall","src":"28831:96:53"},"nativeSrc":"28831:96:53","nodeType":"YulExpressionStatement","src":"28831:96:53"},{"nativeSrc":"28936:18:53","nodeType":"YulVariableDeclaration","src":"28936:18:53","value":{"kind":"number","nativeSrc":"28953:1:53","nodeType":"YulLiteral","src":"28953:1:53","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"28940:9:53","nodeType":"YulTypedName","src":"28940:9:53","type":""}]},{"nativeSrc":"28963:23:53","nodeType":"YulVariableDeclaration","src":"28963:23:53","value":{"kind":"number","nativeSrc":"28982:4:53","nodeType":"YulLiteral","src":"28982:4:53","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"28967:11:53","nodeType":"YulTypedName","src":"28967:11:53","type":""}]},{"nativeSrc":"28995:17:53","nodeType":"YulAssignment","src":"28995:17:53","value":{"kind":"number","nativeSrc":"29008:4:53","nodeType":"YulLiteral","src":"29008:4:53","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"28995:9:53","nodeType":"YulIdentifier","src":"28995:9:53"}]},{"cases":[{"body":{"nativeSrc":"29058:655:53","nodeType":"YulBlock","src":"29058:655:53","statements":[{"nativeSrc":"29072:35:53","nodeType":"YulVariableDeclaration","src":"29072:35:53","value":{"arguments":[{"name":"newLen","nativeSrc":"29091:6:53","nodeType":"YulIdentifier","src":"29091:6:53"},{"arguments":[{"kind":"number","nativeSrc":"29103:2:53","nodeType":"YulLiteral","src":"29103:2:53","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"29099:3:53","nodeType":"YulIdentifier","src":"29099:3:53"},"nativeSrc":"29099:7:53","nodeType":"YulFunctionCall","src":"29099:7:53"}],"functionName":{"name":"and","nativeSrc":"29087:3:53","nodeType":"YulIdentifier","src":"29087:3:53"},"nativeSrc":"29087:20:53","nodeType":"YulFunctionCall","src":"29087:20:53"},"variables":[{"name":"loopEnd","nativeSrc":"29076:7:53","nodeType":"YulTypedName","src":"29076:7:53","type":""}]},{"nativeSrc":"29120:48:53","nodeType":"YulVariableDeclaration","src":"29120:48:53","value":{"arguments":[{"name":"slot","nativeSrc":"29163:4:53","nodeType":"YulIdentifier","src":"29163:4:53"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"29134:28:53","nodeType":"YulIdentifier","src":"29134:28:53"},"nativeSrc":"29134:34:53","nodeType":"YulFunctionCall","src":"29134:34:53"},"variables":[{"name":"dstPtr","nativeSrc":"29124:6:53","nodeType":"YulTypedName","src":"29124:6:53","type":""}]},{"nativeSrc":"29181:10:53","nodeType":"YulVariableDeclaration","src":"29181:10:53","value":{"kind":"number","nativeSrc":"29190:1:53","nodeType":"YulLiteral","src":"29190:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"29185:1:53","nodeType":"YulTypedName","src":"29185:1:53","type":""}]},{"body":{"nativeSrc":"29268:172:53","nodeType":"YulBlock","src":"29268:172:53","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"29293:6:53","nodeType":"YulIdentifier","src":"29293:6:53"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"29311:3:53","nodeType":"YulIdentifier","src":"29311:3:53"},{"name":"srcOffset","nativeSrc":"29316:9:53","nodeType":"YulIdentifier","src":"29316:9:53"}],"functionName":{"name":"add","nativeSrc":"29307:3:53","nodeType":"YulIdentifier","src":"29307:3:53"},"nativeSrc":"29307:19:53","nodeType":"YulFunctionCall","src":"29307:19:53"}],"functionName":{"name":"mload","nativeSrc":"29301:5:53","nodeType":"YulIdentifier","src":"29301:5:53"},"nativeSrc":"29301:26:53","nodeType":"YulFunctionCall","src":"29301:26:53"}],"functionName":{"name":"sstore","nativeSrc":"29286:6:53","nodeType":"YulIdentifier","src":"29286:6:53"},"nativeSrc":"29286:42:53","nodeType":"YulFunctionCall","src":"29286:42:53"},"nativeSrc":"29286:42:53","nodeType":"YulExpressionStatement","src":"29286:42:53"},{"nativeSrc":"29345:24:53","nodeType":"YulAssignment","src":"29345:24:53","value":{"arguments":[{"name":"dstPtr","nativeSrc":"29359:6:53","nodeType":"YulIdentifier","src":"29359:6:53"},{"kind":"number","nativeSrc":"29367:1:53","nodeType":"YulLiteral","src":"29367:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"29355:3:53","nodeType":"YulIdentifier","src":"29355:3:53"},"nativeSrc":"29355:14:53","nodeType":"YulFunctionCall","src":"29355:14:53"},"variableNames":[{"name":"dstPtr","nativeSrc":"29345:6:53","nodeType":"YulIdentifier","src":"29345:6:53"}]},{"nativeSrc":"29386:40:53","nodeType":"YulAssignment","src":"29386:40:53","value":{"arguments":[{"name":"srcOffset","nativeSrc":"29403:9:53","nodeType":"YulIdentifier","src":"29403:9:53"},{"name":"srcOffset_1","nativeSrc":"29414:11:53","nodeType":"YulIdentifier","src":"29414:11:53"}],"functionName":{"name":"add","nativeSrc":"29399:3:53","nodeType":"YulIdentifier","src":"29399:3:53"},"nativeSrc":"29399:27:53","nodeType":"YulFunctionCall","src":"29399:27:53"},"variableNames":[{"name":"srcOffset","nativeSrc":"29386:9:53","nodeType":"YulIdentifier","src":"29386:9:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"29215:1:53","nodeType":"YulIdentifier","src":"29215:1:53"},{"name":"loopEnd","nativeSrc":"29218:7:53","nodeType":"YulIdentifier","src":"29218:7:53"}],"functionName":{"name":"lt","nativeSrc":"29212:2:53","nodeType":"YulIdentifier","src":"29212:2:53"},"nativeSrc":"29212:14:53","nodeType":"YulFunctionCall","src":"29212:14:53"},"nativeSrc":"29204:236:53","nodeType":"YulForLoop","post":{"nativeSrc":"29227:28:53","nodeType":"YulBlock","src":"29227:28:53","statements":[{"nativeSrc":"29229:24:53","nodeType":"YulAssignment","src":"29229:24:53","value":{"arguments":[{"name":"i","nativeSrc":"29238:1:53","nodeType":"YulIdentifier","src":"29238:1:53"},{"name":"srcOffset_1","nativeSrc":"29241:11:53","nodeType":"YulIdentifier","src":"29241:11:53"}],"functionName":{"name":"add","nativeSrc":"29234:3:53","nodeType":"YulIdentifier","src":"29234:3:53"},"nativeSrc":"29234:19:53","nodeType":"YulFunctionCall","src":"29234:19:53"},"variableNames":[{"name":"i","nativeSrc":"29229:1:53","nodeType":"YulIdentifier","src":"29229:1:53"}]}]},"pre":{"nativeSrc":"29208:3:53","nodeType":"YulBlock","src":"29208:3:53","statements":[]},"src":"29204:236:53"},{"body":{"nativeSrc":"29488:166:53","nodeType":"YulBlock","src":"29488:166:53","statements":[{"nativeSrc":"29506:43:53","nodeType":"YulVariableDeclaration","src":"29506:43:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"29533:3:53","nodeType":"YulIdentifier","src":"29533:3:53"},{"name":"srcOffset","nativeSrc":"29538:9:53","nodeType":"YulIdentifier","src":"29538:9:53"}],"functionName":{"name":"add","nativeSrc":"29529:3:53","nodeType":"YulIdentifier","src":"29529:3:53"},"nativeSrc":"29529:19:53","nodeType":"YulFunctionCall","src":"29529:19:53"}],"functionName":{"name":"mload","nativeSrc":"29523:5:53","nodeType":"YulIdentifier","src":"29523:5:53"},"nativeSrc":"29523:26:53","nodeType":"YulFunctionCall","src":"29523:26:53"},"variables":[{"name":"lastValue","nativeSrc":"29510:9:53","nodeType":"YulTypedName","src":"29510:9:53","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"29573:6:53","nodeType":"YulIdentifier","src":"29573:6:53"},{"arguments":[{"name":"lastValue","nativeSrc":"29585:9:53","nodeType":"YulIdentifier","src":"29585:9:53"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"29612:1:53","nodeType":"YulLiteral","src":"29612:1:53","type":"","value":"3"},{"name":"newLen","nativeSrc":"29615:6:53","nodeType":"YulIdentifier","src":"29615:6:53"}],"functionName":{"name":"shl","nativeSrc":"29608:3:53","nodeType":"YulIdentifier","src":"29608:3:53"},"nativeSrc":"29608:14:53","nodeType":"YulFunctionCall","src":"29608:14:53"},{"kind":"number","nativeSrc":"29624:3:53","nodeType":"YulLiteral","src":"29624:3:53","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"29604:3:53","nodeType":"YulIdentifier","src":"29604:3:53"},"nativeSrc":"29604:24:53","nodeType":"YulFunctionCall","src":"29604:24:53"},{"arguments":[{"kind":"number","nativeSrc":"29634:1:53","nodeType":"YulLiteral","src":"29634:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"29630:3:53","nodeType":"YulIdentifier","src":"29630:3:53"},"nativeSrc":"29630:6:53","nodeType":"YulFunctionCall","src":"29630:6:53"}],"functionName":{"name":"shr","nativeSrc":"29600:3:53","nodeType":"YulIdentifier","src":"29600:3:53"},"nativeSrc":"29600:37:53","nodeType":"YulFunctionCall","src":"29600:37:53"}],"functionName":{"name":"not","nativeSrc":"29596:3:53","nodeType":"YulIdentifier","src":"29596:3:53"},"nativeSrc":"29596:42:53","nodeType":"YulFunctionCall","src":"29596:42:53"}],"functionName":{"name":"and","nativeSrc":"29581:3:53","nodeType":"YulIdentifier","src":"29581:3:53"},"nativeSrc":"29581:58:53","nodeType":"YulFunctionCall","src":"29581:58:53"}],"functionName":{"name":"sstore","nativeSrc":"29566:6:53","nodeType":"YulIdentifier","src":"29566:6:53"},"nativeSrc":"29566:74:53","nodeType":"YulFunctionCall","src":"29566:74:53"},"nativeSrc":"29566:74:53","nodeType":"YulExpressionStatement","src":"29566:74:53"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"29459:7:53","nodeType":"YulIdentifier","src":"29459:7:53"},{"name":"newLen","nativeSrc":"29468:6:53","nodeType":"YulIdentifier","src":"29468:6:53"}],"functionName":{"name":"lt","nativeSrc":"29456:2:53","nodeType":"YulIdentifier","src":"29456:2:53"},"nativeSrc":"29456:19:53","nodeType":"YulFunctionCall","src":"29456:19:53"},"nativeSrc":"29453:201:53","nodeType":"YulIf","src":"29453:201:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"29674:4:53","nodeType":"YulIdentifier","src":"29674:4:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"29688:1:53","nodeType":"YulLiteral","src":"29688:1:53","type":"","value":"1"},{"name":"newLen","nativeSrc":"29691:6:53","nodeType":"YulIdentifier","src":"29691:6:53"}],"functionName":{"name":"shl","nativeSrc":"29684:3:53","nodeType":"YulIdentifier","src":"29684:3:53"},"nativeSrc":"29684:14:53","nodeType":"YulFunctionCall","src":"29684:14:53"},{"kind":"number","nativeSrc":"29700:1:53","nodeType":"YulLiteral","src":"29700:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"29680:3:53","nodeType":"YulIdentifier","src":"29680:3:53"},"nativeSrc":"29680:22:53","nodeType":"YulFunctionCall","src":"29680:22:53"}],"functionName":{"name":"sstore","nativeSrc":"29667:6:53","nodeType":"YulIdentifier","src":"29667:6:53"},"nativeSrc":"29667:36:53","nodeType":"YulFunctionCall","src":"29667:36:53"},"nativeSrc":"29667:36:53","nodeType":"YulExpressionStatement","src":"29667:36:53"}]},"nativeSrc":"29051:662:53","nodeType":"YulCase","src":"29051:662:53","value":{"kind":"number","nativeSrc":"29056:1:53","nodeType":"YulLiteral","src":"29056:1:53","type":"","value":"1"}},{"body":{"nativeSrc":"29730:234:53","nodeType":"YulBlock","src":"29730:234:53","statements":[{"nativeSrc":"29744:14:53","nodeType":"YulVariableDeclaration","src":"29744:14:53","value":{"kind":"number","nativeSrc":"29757:1:53","nodeType":"YulLiteral","src":"29757:1:53","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"29748:5:53","nodeType":"YulTypedName","src":"29748:5:53","type":""}]},{"body":{"nativeSrc":"29793:67:53","nodeType":"YulBlock","src":"29793:67:53","statements":[{"nativeSrc":"29811:35:53","nodeType":"YulAssignment","src":"29811:35:53","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"29830:3:53","nodeType":"YulIdentifier","src":"29830:3:53"},{"name":"srcOffset","nativeSrc":"29835:9:53","nodeType":"YulIdentifier","src":"29835:9:53"}],"functionName":{"name":"add","nativeSrc":"29826:3:53","nodeType":"YulIdentifier","src":"29826:3:53"},"nativeSrc":"29826:19:53","nodeType":"YulFunctionCall","src":"29826:19:53"}],"functionName":{"name":"mload","nativeSrc":"29820:5:53","nodeType":"YulIdentifier","src":"29820:5:53"},"nativeSrc":"29820:26:53","nodeType":"YulFunctionCall","src":"29820:26:53"},"variableNames":[{"name":"value","nativeSrc":"29811:5:53","nodeType":"YulIdentifier","src":"29811:5:53"}]}]},"condition":{"name":"newLen","nativeSrc":"29774:6:53","nodeType":"YulIdentifier","src":"29774:6:53"},"nativeSrc":"29771:89:53","nodeType":"YulIf","src":"29771:89:53"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"29880:4:53","nodeType":"YulIdentifier","src":"29880:4:53"},{"arguments":[{"name":"value","nativeSrc":"29939:5:53","nodeType":"YulIdentifier","src":"29939:5:53"},{"name":"newLen","nativeSrc":"29946:6:53","nodeType":"YulIdentifier","src":"29946:6:53"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"29886:52:53","nodeType":"YulIdentifier","src":"29886:52:53"},"nativeSrc":"29886:67:53","nodeType":"YulFunctionCall","src":"29886:67:53"}],"functionName":{"name":"sstore","nativeSrc":"29873:6:53","nodeType":"YulIdentifier","src":"29873:6:53"},"nativeSrc":"29873:81:53","nodeType":"YulFunctionCall","src":"29873:81:53"},"nativeSrc":"29873:81:53","nodeType":"YulExpressionStatement","src":"29873:81:53"}]},"nativeSrc":"29722:242:53","nodeType":"YulCase","src":"29722:242:53","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"29031:6:53","nodeType":"YulIdentifier","src":"29031:6:53"},{"kind":"number","nativeSrc":"29039:2:53","nodeType":"YulLiteral","src":"29039:2:53","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"29028:2:53","nodeType":"YulIdentifier","src":"29028:2:53"},"nativeSrc":"29028:14:53","nodeType":"YulFunctionCall","src":"29028:14:53"},"nativeSrc":"29021:943:53","nodeType":"YulSwitch","src":"29021:943:53"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"28629:1341:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"28708:4:53","nodeType":"YulTypedName","src":"28708:4:53","type":""},{"name":"src","nativeSrc":"28714:3:53","nodeType":"YulTypedName","src":"28714:3:53","type":""}],"src":"28629:1341:53"},{"body":{"nativeSrc":"30200:939:53","nodeType":"YulBlock","src":"30200:939:53","statements":[{"nativeSrc":"30210:12:53","nodeType":"YulVariableDeclaration","src":"30210:12:53","value":{"kind":"number","nativeSrc":"30220:2:53","nodeType":"YulLiteral","src":"30220:2:53","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"30214:2:53","nodeType":"YulTypedName","src":"30214:2:53","type":""}]},{"nativeSrc":"30231:32:53","nodeType":"YulVariableDeclaration","src":"30231:32:53","value":{"arguments":[{"name":"headStart","nativeSrc":"30249:9:53","nodeType":"YulIdentifier","src":"30249:9:53"},{"name":"_1","nativeSrc":"30260:2:53","nodeType":"YulIdentifier","src":"30260:2:53"}],"functionName":{"name":"add","nativeSrc":"30245:3:53","nodeType":"YulIdentifier","src":"30245:3:53"},"nativeSrc":"30245:18:53","nodeType":"YulFunctionCall","src":"30245:18:53"},"variables":[{"name":"tail_1","nativeSrc":"30235:6:53","nodeType":"YulTypedName","src":"30235:6:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30279:9:53","nodeType":"YulIdentifier","src":"30279:9:53"},{"name":"_1","nativeSrc":"30290:2:53","nodeType":"YulIdentifier","src":"30290:2:53"}],"functionName":{"name":"mstore","nativeSrc":"30272:6:53","nodeType":"YulIdentifier","src":"30272:6:53"},"nativeSrc":"30272:21:53","nodeType":"YulFunctionCall","src":"30272:21:53"},"nativeSrc":"30272:21:53","nodeType":"YulExpressionStatement","src":"30272:21:53"},{"nativeSrc":"30302:17:53","nodeType":"YulVariableDeclaration","src":"30302:17:53","value":{"name":"tail_1","nativeSrc":"30313:6:53","nodeType":"YulIdentifier","src":"30313:6:53"},"variables":[{"name":"pos","nativeSrc":"30306:3:53","nodeType":"YulTypedName","src":"30306:3:53","type":""}]},{"nativeSrc":"30328:27:53","nodeType":"YulVariableDeclaration","src":"30328:27:53","value":{"arguments":[{"name":"value0","nativeSrc":"30348:6:53","nodeType":"YulIdentifier","src":"30348:6:53"}],"functionName":{"name":"mload","nativeSrc":"30342:5:53","nodeType":"YulIdentifier","src":"30342:5:53"},"nativeSrc":"30342:13:53","nodeType":"YulFunctionCall","src":"30342:13:53"},"variables":[{"name":"length","nativeSrc":"30332:6:53","nodeType":"YulTypedName","src":"30332:6:53","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"30371:6:53","nodeType":"YulIdentifier","src":"30371:6:53"},{"name":"length","nativeSrc":"30379:6:53","nodeType":"YulIdentifier","src":"30379:6:53"}],"functionName":{"name":"mstore","nativeSrc":"30364:6:53","nodeType":"YulIdentifier","src":"30364:6:53"},"nativeSrc":"30364:22:53","nodeType":"YulFunctionCall","src":"30364:22:53"},"nativeSrc":"30364:22:53","nodeType":"YulExpressionStatement","src":"30364:22:53"},{"nativeSrc":"30395:12:53","nodeType":"YulVariableDeclaration","src":"30395:12:53","value":{"kind":"number","nativeSrc":"30405:2:53","nodeType":"YulLiteral","src":"30405:2:53","type":"","value":"64"},"variables":[{"name":"_2","nativeSrc":"30399:2:53","nodeType":"YulTypedName","src":"30399:2:53","type":""}]},{"nativeSrc":"30416:25:53","nodeType":"YulAssignment","src":"30416:25:53","value":{"arguments":[{"name":"headStart","nativeSrc":"30427:9:53","nodeType":"YulIdentifier","src":"30427:9:53"},{"kind":"number","nativeSrc":"30438:2:53","nodeType":"YulLiteral","src":"30438:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30423:3:53","nodeType":"YulIdentifier","src":"30423:3:53"},"nativeSrc":"30423:18:53","nodeType":"YulFunctionCall","src":"30423:18:53"},"variableNames":[{"name":"pos","nativeSrc":"30416:3:53","nodeType":"YulIdentifier","src":"30416:3:53"}]},{"nativeSrc":"30450:53:53","nodeType":"YulVariableDeclaration","src":"30450:53:53","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30472:9:53","nodeType":"YulIdentifier","src":"30472:9:53"},{"arguments":[{"kind":"number","nativeSrc":"30487:1:53","nodeType":"YulLiteral","src":"30487:1:53","type":"","value":"5"},{"name":"length","nativeSrc":"30490:6:53","nodeType":"YulIdentifier","src":"30490:6:53"}],"functionName":{"name":"shl","nativeSrc":"30483:3:53","nodeType":"YulIdentifier","src":"30483:3:53"},"nativeSrc":"30483:14:53","nodeType":"YulFunctionCall","src":"30483:14:53"}],"functionName":{"name":"add","nativeSrc":"30468:3:53","nodeType":"YulIdentifier","src":"30468:3:53"},"nativeSrc":"30468:30:53","nodeType":"YulFunctionCall","src":"30468:30:53"},{"kind":"number","nativeSrc":"30500:2:53","nodeType":"YulLiteral","src":"30500:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30464:3:53","nodeType":"YulIdentifier","src":"30464:3:53"},"nativeSrc":"30464:39:53","nodeType":"YulFunctionCall","src":"30464:39:53"},"variables":[{"name":"tail_2","nativeSrc":"30454:6:53","nodeType":"YulTypedName","src":"30454:6:53","type":""}]},{"nativeSrc":"30512:29:53","nodeType":"YulVariableDeclaration","src":"30512:29:53","value":{"arguments":[{"name":"value0","nativeSrc":"30530:6:53","nodeType":"YulIdentifier","src":"30530:6:53"},{"name":"_1","nativeSrc":"30538:2:53","nodeType":"YulIdentifier","src":"30538:2:53"}],"functionName":{"name":"add","nativeSrc":"30526:3:53","nodeType":"YulIdentifier","src":"30526:3:53"},"nativeSrc":"30526:15:53","nodeType":"YulFunctionCall","src":"30526:15:53"},"variables":[{"name":"srcPtr","nativeSrc":"30516:6:53","nodeType":"YulTypedName","src":"30516:6:53","type":""}]},{"nativeSrc":"30550:10:53","nodeType":"YulVariableDeclaration","src":"30550:10:53","value":{"kind":"number","nativeSrc":"30559:1:53","nodeType":"YulLiteral","src":"30559:1:53","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"30554:1:53","nodeType":"YulTypedName","src":"30554:1:53","type":""}]},{"body":{"nativeSrc":"30618:492:53","nodeType":"YulBlock","src":"30618:492:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30639:3:53","nodeType":"YulIdentifier","src":"30639:3:53"},{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"30652:6:53","nodeType":"YulIdentifier","src":"30652:6:53"},{"name":"headStart","nativeSrc":"30660:9:53","nodeType":"YulIdentifier","src":"30660:9:53"}],"functionName":{"name":"sub","nativeSrc":"30648:3:53","nodeType":"YulIdentifier","src":"30648:3:53"},"nativeSrc":"30648:22:53","nodeType":"YulFunctionCall","src":"30648:22:53"},{"arguments":[{"kind":"number","nativeSrc":"30676:2:53","nodeType":"YulLiteral","src":"30676:2:53","type":"","value":"63"}],"functionName":{"name":"not","nativeSrc":"30672:3:53","nodeType":"YulIdentifier","src":"30672:3:53"},"nativeSrc":"30672:7:53","nodeType":"YulFunctionCall","src":"30672:7:53"}],"functionName":{"name":"add","nativeSrc":"30644:3:53","nodeType":"YulIdentifier","src":"30644:3:53"},"nativeSrc":"30644:36:53","nodeType":"YulFunctionCall","src":"30644:36:53"}],"functionName":{"name":"mstore","nativeSrc":"30632:6:53","nodeType":"YulIdentifier","src":"30632:6:53"},"nativeSrc":"30632:49:53","nodeType":"YulFunctionCall","src":"30632:49:53"},"nativeSrc":"30632:49:53","nodeType":"YulExpressionStatement","src":"30632:49:53"},{"nativeSrc":"30694:23:53","nodeType":"YulVariableDeclaration","src":"30694:23:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"30710:6:53","nodeType":"YulIdentifier","src":"30710:6:53"}],"functionName":{"name":"mload","nativeSrc":"30704:5:53","nodeType":"YulIdentifier","src":"30704:5:53"},"nativeSrc":"30704:13:53","nodeType":"YulFunctionCall","src":"30704:13:53"},"variables":[{"name":"_3","nativeSrc":"30698:2:53","nodeType":"YulTypedName","src":"30698:2:53","type":""}]},{"nativeSrc":"30730:14:53","nodeType":"YulVariableDeclaration","src":"30730:14:53","value":{"kind":"number","nativeSrc":"30740:4:53","nodeType":"YulLiteral","src":"30740:4:53","type":"","value":"0x60"},"variables":[{"name":"_4","nativeSrc":"30734:2:53","nodeType":"YulTypedName","src":"30734:2:53","type":""}]},{"expression":{"arguments":[{"name":"tail_2","nativeSrc":"30764:6:53","nodeType":"YulIdentifier","src":"30764:6:53"},{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"30782:2:53","nodeType":"YulIdentifier","src":"30782:2:53"}],"functionName":{"name":"mload","nativeSrc":"30776:5:53","nodeType":"YulIdentifier","src":"30776:5:53"},"nativeSrc":"30776:9:53","nodeType":"YulFunctionCall","src":"30776:9:53"},{"kind":"number","nativeSrc":"30787:10:53","nodeType":"YulLiteral","src":"30787:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"30772:3:53","nodeType":"YulIdentifier","src":"30772:3:53"},"nativeSrc":"30772:26:53","nodeType":"YulFunctionCall","src":"30772:26:53"}],"functionName":{"name":"mstore","nativeSrc":"30757:6:53","nodeType":"YulIdentifier","src":"30757:6:53"},"nativeSrc":"30757:42:53","nodeType":"YulFunctionCall","src":"30757:42:53"},"nativeSrc":"30757:42:53","nodeType":"YulExpressionStatement","src":"30757:42:53"},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"30823:6:53","nodeType":"YulIdentifier","src":"30823:6:53"},{"name":"_1","nativeSrc":"30831:2:53","nodeType":"YulIdentifier","src":"30831:2:53"}],"functionName":{"name":"add","nativeSrc":"30819:3:53","nodeType":"YulIdentifier","src":"30819:3:53"},"nativeSrc":"30819:15:53","nodeType":"YulFunctionCall","src":"30819:15:53"},{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"30850:2:53","nodeType":"YulIdentifier","src":"30850:2:53"},{"name":"_1","nativeSrc":"30854:2:53","nodeType":"YulIdentifier","src":"30854:2:53"}],"functionName":{"name":"add","nativeSrc":"30846:3:53","nodeType":"YulIdentifier","src":"30846:3:53"},"nativeSrc":"30846:11:53","nodeType":"YulFunctionCall","src":"30846:11:53"}],"functionName":{"name":"mload","nativeSrc":"30840:5:53","nodeType":"YulIdentifier","src":"30840:5:53"},"nativeSrc":"30840:18:53","nodeType":"YulFunctionCall","src":"30840:18:53"},{"kind":"number","nativeSrc":"30860:6:53","nodeType":"YulLiteral","src":"30860:6:53","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"30836:3:53","nodeType":"YulIdentifier","src":"30836:3:53"},"nativeSrc":"30836:31:53","nodeType":"YulFunctionCall","src":"30836:31:53"}],"functionName":{"name":"mstore","nativeSrc":"30812:6:53","nodeType":"YulIdentifier","src":"30812:6:53"},"nativeSrc":"30812:56:53","nodeType":"YulFunctionCall","src":"30812:56:53"},"nativeSrc":"30812:56:53","nodeType":"YulExpressionStatement","src":"30812:56:53"},{"nativeSrc":"30881:38:53","nodeType":"YulVariableDeclaration","src":"30881:38:53","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"30911:2:53","nodeType":"YulIdentifier","src":"30911:2:53"},{"name":"_2","nativeSrc":"30915:2:53","nodeType":"YulIdentifier","src":"30915:2:53"}],"functionName":{"name":"add","nativeSrc":"30907:3:53","nodeType":"YulIdentifier","src":"30907:3:53"},"nativeSrc":"30907:11:53","nodeType":"YulFunctionCall","src":"30907:11:53"}],"functionName":{"name":"mload","nativeSrc":"30901:5:53","nodeType":"YulIdentifier","src":"30901:5:53"},"nativeSrc":"30901:18:53","nodeType":"YulFunctionCall","src":"30901:18:53"},"variables":[{"name":"memberValue0","nativeSrc":"30885:12:53","nodeType":"YulTypedName","src":"30885:12:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"tail_2","nativeSrc":"30943:6:53","nodeType":"YulIdentifier","src":"30943:6:53"},{"name":"_2","nativeSrc":"30951:2:53","nodeType":"YulIdentifier","src":"30951:2:53"}],"functionName":{"name":"add","nativeSrc":"30939:3:53","nodeType":"YulIdentifier","src":"30939:3:53"},"nativeSrc":"30939:15:53","nodeType":"YulFunctionCall","src":"30939:15:53"},{"name":"_4","nativeSrc":"30956:2:53","nodeType":"YulIdentifier","src":"30956:2:53"}],"functionName":{"name":"mstore","nativeSrc":"30932:6:53","nodeType":"YulIdentifier","src":"30932:6:53"},"nativeSrc":"30932:27:53","nodeType":"YulFunctionCall","src":"30932:27:53"},"nativeSrc":"30932:27:53","nodeType":"YulExpressionStatement","src":"30932:27:53"},{"nativeSrc":"30972:58:53","nodeType":"YulAssignment","src":"30972:58:53","value":{"arguments":[{"name":"memberValue0","nativeSrc":"31000:12:53","nodeType":"YulIdentifier","src":"31000:12:53"},{"arguments":[{"name":"tail_2","nativeSrc":"31018:6:53","nodeType":"YulIdentifier","src":"31018:6:53"},{"name":"_4","nativeSrc":"31026:2:53","nodeType":"YulIdentifier","src":"31026:2:53"}],"functionName":{"name":"add","nativeSrc":"31014:3:53","nodeType":"YulIdentifier","src":"31014:3:53"},"nativeSrc":"31014:15:53","nodeType":"YulFunctionCall","src":"31014:15:53"}],"functionName":{"name":"abi_encode_string","nativeSrc":"30982:17:53","nodeType":"YulIdentifier","src":"30982:17:53"},"nativeSrc":"30982:48:53","nodeType":"YulFunctionCall","src":"30982:48:53"},"variableNames":[{"name":"tail_2","nativeSrc":"30972:6:53","nodeType":"YulIdentifier","src":"30972:6:53"}]},{"nativeSrc":"31043:25:53","nodeType":"YulAssignment","src":"31043:25:53","value":{"arguments":[{"name":"srcPtr","nativeSrc":"31057:6:53","nodeType":"YulIdentifier","src":"31057:6:53"},{"name":"_1","nativeSrc":"31065:2:53","nodeType":"YulIdentifier","src":"31065:2:53"}],"functionName":{"name":"add","nativeSrc":"31053:3:53","nodeType":"YulIdentifier","src":"31053:3:53"},"nativeSrc":"31053:15:53","nodeType":"YulFunctionCall","src":"31053:15:53"},"variableNames":[{"name":"srcPtr","nativeSrc":"31043:6:53","nodeType":"YulIdentifier","src":"31043:6:53"}]},{"nativeSrc":"31081:19:53","nodeType":"YulAssignment","src":"31081:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"31092:3:53","nodeType":"YulIdentifier","src":"31092:3:53"},{"name":"_1","nativeSrc":"31097:2:53","nodeType":"YulIdentifier","src":"31097:2:53"}],"functionName":{"name":"add","nativeSrc":"31088:3:53","nodeType":"YulIdentifier","src":"31088:3:53"},"nativeSrc":"31088:12:53","nodeType":"YulFunctionCall","src":"31088:12:53"},"variableNames":[{"name":"pos","nativeSrc":"31081:3:53","nodeType":"YulIdentifier","src":"31081:3:53"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"30580:1:53","nodeType":"YulIdentifier","src":"30580:1:53"},{"name":"length","nativeSrc":"30583:6:53","nodeType":"YulIdentifier","src":"30583:6:53"}],"functionName":{"name":"lt","nativeSrc":"30577:2:53","nodeType":"YulIdentifier","src":"30577:2:53"},"nativeSrc":"30577:13:53","nodeType":"YulFunctionCall","src":"30577:13:53"},"nativeSrc":"30569:541:53","nodeType":"YulForLoop","post":{"nativeSrc":"30591:18:53","nodeType":"YulBlock","src":"30591:18:53","statements":[{"nativeSrc":"30593:14:53","nodeType":"YulAssignment","src":"30593:14:53","value":{"arguments":[{"name":"i","nativeSrc":"30602:1:53","nodeType":"YulIdentifier","src":"30602:1:53"},{"kind":"number","nativeSrc":"30605:1:53","nodeType":"YulLiteral","src":"30605:1:53","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"30598:3:53","nodeType":"YulIdentifier","src":"30598:3:53"},"nativeSrc":"30598:9:53","nodeType":"YulFunctionCall","src":"30598:9:53"},"variableNames":[{"name":"i","nativeSrc":"30593:1:53","nodeType":"YulIdentifier","src":"30593:1:53"}]}]},"pre":{"nativeSrc":"30573:3:53","nodeType":"YulBlock","src":"30573:3:53","statements":[]},"src":"30569:541:53"},{"nativeSrc":"31119:14:53","nodeType":"YulAssignment","src":"31119:14:53","value":{"name":"tail_2","nativeSrc":"31127:6:53","nodeType":"YulIdentifier","src":"31127:6:53"},"variableNames":[{"name":"tail","nativeSrc":"31119:4:53","nodeType":"YulIdentifier","src":"31119:4:53"}]}]},"name":"abi_encode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"29975:1164:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30169:9:53","nodeType":"YulTypedName","src":"30169:9:53","type":""},{"name":"value0","nativeSrc":"30180:6:53","nodeType":"YulTypedName","src":"30180:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30191:4:53","nodeType":"YulTypedName","src":"30191:4:53","type":""}],"src":"29975:1164:53"},{"body":{"nativeSrc":"31255:148:53","nodeType":"YulBlock","src":"31255:148:53","statements":[{"body":{"nativeSrc":"31301:16:53","nodeType":"YulBlock","src":"31301:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31310:1:53","nodeType":"YulLiteral","src":"31310:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"31313:1:53","nodeType":"YulLiteral","src":"31313:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31303:6:53","nodeType":"YulIdentifier","src":"31303:6:53"},"nativeSrc":"31303:12:53","nodeType":"YulFunctionCall","src":"31303:12:53"},"nativeSrc":"31303:12:53","nodeType":"YulExpressionStatement","src":"31303:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"31276:7:53","nodeType":"YulIdentifier","src":"31276:7:53"},{"name":"headStart","nativeSrc":"31285:9:53","nodeType":"YulIdentifier","src":"31285:9:53"}],"functionName":{"name":"sub","nativeSrc":"31272:3:53","nodeType":"YulIdentifier","src":"31272:3:53"},"nativeSrc":"31272:23:53","nodeType":"YulFunctionCall","src":"31272:23:53"},{"kind":"number","nativeSrc":"31297:2:53","nodeType":"YulLiteral","src":"31297:2:53","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"31268:3:53","nodeType":"YulIdentifier","src":"31268:3:53"},"nativeSrc":"31268:32:53","nodeType":"YulFunctionCall","src":"31268:32:53"},"nativeSrc":"31265:52:53","nodeType":"YulIf","src":"31265:52:53"},{"nativeSrc":"31326:71:53","nodeType":"YulAssignment","src":"31326:71:53","value":{"arguments":[{"name":"headStart","nativeSrc":"31378:9:53","nodeType":"YulIdentifier","src":"31378:9:53"},{"name":"dataEnd","nativeSrc":"31389:7:53","nodeType":"YulIdentifier","src":"31389:7:53"}],"functionName":{"name":"abi_decode_struct_MessagingFee_fromMemory","nativeSrc":"31336:41:53","nodeType":"YulIdentifier","src":"31336:41:53"},"nativeSrc":"31336:61:53","nodeType":"YulFunctionCall","src":"31336:61:53"},"variableNames":[{"name":"value0","nativeSrc":"31326:6:53","nodeType":"YulIdentifier","src":"31326:6:53"}]}]},"name":"abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr_fromMemory","nativeSrc":"31144:259:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31221:9:53","nodeType":"YulTypedName","src":"31221:9:53","type":""},{"name":"dataEnd","nativeSrc":"31232:7:53","nodeType":"YulTypedName","src":"31232:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"31244:6:53","nodeType":"YulTypedName","src":"31244:6:53","type":""}],"src":"31144:259:53"},{"body":{"nativeSrc":"31440:95:53","nodeType":"YulBlock","src":"31440:95:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31457:1:53","nodeType":"YulLiteral","src":"31457:1:53","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"31464:3:53","nodeType":"YulLiteral","src":"31464:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"31469:10:53","nodeType":"YulLiteral","src":"31469:10:53","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"31460:3:53","nodeType":"YulIdentifier","src":"31460:3:53"},"nativeSrc":"31460:20:53","nodeType":"YulFunctionCall","src":"31460:20:53"}],"functionName":{"name":"mstore","nativeSrc":"31450:6:53","nodeType":"YulIdentifier","src":"31450:6:53"},"nativeSrc":"31450:31:53","nodeType":"YulFunctionCall","src":"31450:31:53"},"nativeSrc":"31450:31:53","nodeType":"YulExpressionStatement","src":"31450:31:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31497:1:53","nodeType":"YulLiteral","src":"31497:1:53","type":"","value":"4"},{"kind":"number","nativeSrc":"31500:4:53","nodeType":"YulLiteral","src":"31500:4:53","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"31490:6:53","nodeType":"YulIdentifier","src":"31490:6:53"},"nativeSrc":"31490:15:53","nodeType":"YulFunctionCall","src":"31490:15:53"},"nativeSrc":"31490:15:53","nodeType":"YulExpressionStatement","src":"31490:15:53"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31521:1:53","nodeType":"YulLiteral","src":"31521:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"31524:4:53","nodeType":"YulLiteral","src":"31524:4:53","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"31514:6:53","nodeType":"YulIdentifier","src":"31514:6:53"},"nativeSrc":"31514:15:53","nodeType":"YulFunctionCall","src":"31514:15:53"},"nativeSrc":"31514:15:53","nodeType":"YulExpressionStatement","src":"31514:15:53"}]},"name":"panic_error_0x12","nativeSrc":"31408:127:53","nodeType":"YulFunctionDefinition","src":"31408:127:53"},{"body":{"nativeSrc":"31641:154:53","nodeType":"YulBlock","src":"31641:154:53","statements":[{"nativeSrc":"31651:28:53","nodeType":"YulAssignment","src":"31651:28:53","value":{"arguments":[{"name":"array","nativeSrc":"31673:5:53","nodeType":"YulIdentifier","src":"31673:5:53"}],"functionName":{"name":"calldataload","nativeSrc":"31660:12:53","nodeType":"YulIdentifier","src":"31660:12:53"},"nativeSrc":"31660:19:53","nodeType":"YulFunctionCall","src":"31660:19:53"},"variableNames":[{"name":"value","nativeSrc":"31651:5:53","nodeType":"YulIdentifier","src":"31651:5:53"}]},{"body":{"nativeSrc":"31711:78:53","nodeType":"YulBlock","src":"31711:78:53","statements":[{"nativeSrc":"31725:54:53","nodeType":"YulAssignment","src":"31725:54:53","value":{"arguments":[{"name":"value","nativeSrc":"31738:5:53","nodeType":"YulIdentifier","src":"31738:5:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"31753:1:53","nodeType":"YulLiteral","src":"31753:1:53","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"31760:2:53","nodeType":"YulLiteral","src":"31760:2:53","type":"","value":"32"},{"name":"len","nativeSrc":"31764:3:53","nodeType":"YulIdentifier","src":"31764:3:53"}],"functionName":{"name":"sub","nativeSrc":"31756:3:53","nodeType":"YulIdentifier","src":"31756:3:53"},"nativeSrc":"31756:12:53","nodeType":"YulFunctionCall","src":"31756:12:53"}],"functionName":{"name":"shl","nativeSrc":"31749:3:53","nodeType":"YulIdentifier","src":"31749:3:53"},"nativeSrc":"31749:20:53","nodeType":"YulFunctionCall","src":"31749:20:53"},{"arguments":[{"kind":"number","nativeSrc":"31775:1:53","nodeType":"YulLiteral","src":"31775:1:53","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"31771:3:53","nodeType":"YulIdentifier","src":"31771:3:53"},"nativeSrc":"31771:6:53","nodeType":"YulFunctionCall","src":"31771:6:53"}],"functionName":{"name":"shl","nativeSrc":"31745:3:53","nodeType":"YulIdentifier","src":"31745:3:53"},"nativeSrc":"31745:33:53","nodeType":"YulFunctionCall","src":"31745:33:53"}],"functionName":{"name":"and","nativeSrc":"31734:3:53","nodeType":"YulIdentifier","src":"31734:3:53"},"nativeSrc":"31734:45:53","nodeType":"YulFunctionCall","src":"31734:45:53"},"variableNames":[{"name":"value","nativeSrc":"31725:5:53","nodeType":"YulIdentifier","src":"31725:5:53"}]}]},"condition":{"arguments":[{"name":"len","nativeSrc":"31694:3:53","nodeType":"YulIdentifier","src":"31694:3:53"},{"kind":"number","nativeSrc":"31699:2:53","nodeType":"YulLiteral","src":"31699:2:53","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"31691:2:53","nodeType":"YulIdentifier","src":"31691:2:53"},"nativeSrc":"31691:11:53","nodeType":"YulFunctionCall","src":"31691:11:53"},"nativeSrc":"31688:101:53","nodeType":"YulIf","src":"31688:101:53"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes32","nativeSrc":"31540:255:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"31616:5:53","nodeType":"YulTypedName","src":"31616:5:53","type":""},{"name":"len","nativeSrc":"31623:3:53","nodeType":"YulTypedName","src":"31623:3:53","type":""}],"returnVariables":[{"name":"value","nativeSrc":"31631:5:53","nodeType":"YulTypedName","src":"31631:5:53","type":""}],"src":"31540:255:53"},{"body":{"nativeSrc":"31989:314:53","nodeType":"YulBlock","src":"31989:314:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"32006:3:53","nodeType":"YulIdentifier","src":"32006:3:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32019:3:53","nodeType":"YulLiteral","src":"32019:3:53","type":"","value":"192"},{"name":"value0","nativeSrc":"32024:6:53","nodeType":"YulIdentifier","src":"32024:6:53"}],"functionName":{"name":"shl","nativeSrc":"32015:3:53","nodeType":"YulIdentifier","src":"32015:3:53"},"nativeSrc":"32015:16:53","nodeType":"YulFunctionCall","src":"32015:16:53"},{"arguments":[{"kind":"number","nativeSrc":"32037:3:53","nodeType":"YulLiteral","src":"32037:3:53","type":"","value":"192"},{"kind":"number","nativeSrc":"32042:18:53","nodeType":"YulLiteral","src":"32042:18:53","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"shl","nativeSrc":"32033:3:53","nodeType":"YulIdentifier","src":"32033:3:53"},"nativeSrc":"32033:28:53","nodeType":"YulFunctionCall","src":"32033:28:53"}],"functionName":{"name":"and","nativeSrc":"32011:3:53","nodeType":"YulIdentifier","src":"32011:3:53"},"nativeSrc":"32011:51:53","nodeType":"YulFunctionCall","src":"32011:51:53"}],"functionName":{"name":"mstore","nativeSrc":"31999:6:53","nodeType":"YulIdentifier","src":"31999:6:53"},"nativeSrc":"31999:64:53","nodeType":"YulFunctionCall","src":"31999:64:53"},"nativeSrc":"31999:64:53","nodeType":"YulExpressionStatement","src":"31999:64:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32083:3:53","nodeType":"YulIdentifier","src":"32083:3:53"},{"kind":"number","nativeSrc":"32088:1:53","nodeType":"YulLiteral","src":"32088:1:53","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"32079:3:53","nodeType":"YulIdentifier","src":"32079:3:53"},"nativeSrc":"32079:11:53","nodeType":"YulFunctionCall","src":"32079:11:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32100:3:53","nodeType":"YulLiteral","src":"32100:3:53","type":"","value":"224"},{"name":"value1","nativeSrc":"32105:6:53","nodeType":"YulIdentifier","src":"32105:6:53"}],"functionName":{"name":"shl","nativeSrc":"32096:3:53","nodeType":"YulIdentifier","src":"32096:3:53"},"nativeSrc":"32096:16:53","nodeType":"YulFunctionCall","src":"32096:16:53"},{"arguments":[{"kind":"number","nativeSrc":"32118:3:53","nodeType":"YulLiteral","src":"32118:3:53","type":"","value":"224"},{"kind":"number","nativeSrc":"32123:10:53","nodeType":"YulLiteral","src":"32123:10:53","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"32114:3:53","nodeType":"YulIdentifier","src":"32114:3:53"},"nativeSrc":"32114:20:53","nodeType":"YulFunctionCall","src":"32114:20:53"}],"functionName":{"name":"and","nativeSrc":"32092:3:53","nodeType":"YulIdentifier","src":"32092:3:53"},"nativeSrc":"32092:43:53","nodeType":"YulFunctionCall","src":"32092:43:53"}],"functionName":{"name":"mstore","nativeSrc":"32072:6:53","nodeType":"YulIdentifier","src":"32072:6:53"},"nativeSrc":"32072:64:53","nodeType":"YulFunctionCall","src":"32072:64:53"},"nativeSrc":"32072:64:53","nodeType":"YulExpressionStatement","src":"32072:64:53"},{"nativeSrc":"32145:27:53","nodeType":"YulVariableDeclaration","src":"32145:27:53","value":{"arguments":[{"name":"value2","nativeSrc":"32165:6:53","nodeType":"YulIdentifier","src":"32165:6:53"}],"functionName":{"name":"mload","nativeSrc":"32159:5:53","nodeType":"YulIdentifier","src":"32159:5:53"},"nativeSrc":"32159:13:53","nodeType":"YulFunctionCall","src":"32159:13:53"},"variables":[{"name":"length","nativeSrc":"32149:6:53","nodeType":"YulTypedName","src":"32149:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nativeSrc":"32220:6:53","nodeType":"YulIdentifier","src":"32220:6:53"},{"kind":"number","nativeSrc":"32228:4:53","nodeType":"YulLiteral","src":"32228:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32216:3:53","nodeType":"YulIdentifier","src":"32216:3:53"},"nativeSrc":"32216:17:53","nodeType":"YulFunctionCall","src":"32216:17:53"},{"arguments":[{"name":"pos","nativeSrc":"32239:3:53","nodeType":"YulIdentifier","src":"32239:3:53"},{"kind":"number","nativeSrc":"32244:2:53","nodeType":"YulLiteral","src":"32244:2:53","type":"","value":"12"}],"functionName":{"name":"add","nativeSrc":"32235:3:53","nodeType":"YulIdentifier","src":"32235:3:53"},"nativeSrc":"32235:12:53","nodeType":"YulFunctionCall","src":"32235:12:53"},{"name":"length","nativeSrc":"32249:6:53","nodeType":"YulIdentifier","src":"32249:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"32181:34:53","nodeType":"YulIdentifier","src":"32181:34:53"},"nativeSrc":"32181:75:53","nodeType":"YulFunctionCall","src":"32181:75:53"},"nativeSrc":"32181:75:53","nodeType":"YulExpressionStatement","src":"32181:75:53"},{"nativeSrc":"32265:32:53","nodeType":"YulAssignment","src":"32265:32:53","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32280:3:53","nodeType":"YulIdentifier","src":"32280:3:53"},{"name":"length","nativeSrc":"32285:6:53","nodeType":"YulIdentifier","src":"32285:6:53"}],"functionName":{"name":"add","nativeSrc":"32276:3:53","nodeType":"YulIdentifier","src":"32276:3:53"},"nativeSrc":"32276:16:53","nodeType":"YulFunctionCall","src":"32276:16:53"},{"kind":"number","nativeSrc":"32294:2:53","nodeType":"YulLiteral","src":"32294:2:53","type":"","value":"12"}],"functionName":{"name":"add","nativeSrc":"32272:3:53","nodeType":"YulIdentifier","src":"32272:3:53"},"nativeSrc":"32272:25:53","nodeType":"YulFunctionCall","src":"32272:25:53"},"variableNames":[{"name":"end","nativeSrc":"32265:3:53","nodeType":"YulIdentifier","src":"32265:3:53"}]}]},"name":"abi_encode_tuple_packed_t_uint64_t_uint32_t_bytes_memory_ptr__to_t_uint64_t_uint32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"31800:503:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31949:3:53","nodeType":"YulTypedName","src":"31949:3:53","type":""},{"name":"value2","nativeSrc":"31954:6:53","nodeType":"YulTypedName","src":"31954:6:53","type":""},{"name":"value1","nativeSrc":"31962:6:53","nodeType":"YulTypedName","src":"31962:6:53","type":""},{"name":"value0","nativeSrc":"31970:6:53","nodeType":"YulTypedName","src":"31970:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31981:3:53","nodeType":"YulTypedName","src":"31981:3:53","type":""}],"src":"31800:503:53"},{"body":{"nativeSrc":"32455:100:53","nodeType":"YulBlock","src":"32455:100:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"32472:3:53","nodeType":"YulIdentifier","src":"32472:3:53"},{"name":"value0","nativeSrc":"32477:6:53","nodeType":"YulIdentifier","src":"32477:6:53"}],"functionName":{"name":"mstore","nativeSrc":"32465:6:53","nodeType":"YulIdentifier","src":"32465:6:53"},"nativeSrc":"32465:19:53","nodeType":"YulFunctionCall","src":"32465:19:53"},"nativeSrc":"32465:19:53","nodeType":"YulExpressionStatement","src":"32465:19:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32504:3:53","nodeType":"YulIdentifier","src":"32504:3:53"},{"kind":"number","nativeSrc":"32509:2:53","nodeType":"YulLiteral","src":"32509:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32500:3:53","nodeType":"YulIdentifier","src":"32500:3:53"},"nativeSrc":"32500:12:53","nodeType":"YulFunctionCall","src":"32500:12:53"},{"name":"value1","nativeSrc":"32514:6:53","nodeType":"YulIdentifier","src":"32514:6:53"}],"functionName":{"name":"mstore","nativeSrc":"32493:6:53","nodeType":"YulIdentifier","src":"32493:6:53"},"nativeSrc":"32493:28:53","nodeType":"YulFunctionCall","src":"32493:28:53"},"nativeSrc":"32493:28:53","nodeType":"YulExpressionStatement","src":"32493:28:53"},{"nativeSrc":"32530:19:53","nodeType":"YulAssignment","src":"32530:19:53","value":{"arguments":[{"name":"pos","nativeSrc":"32541:3:53","nodeType":"YulIdentifier","src":"32541:3:53"},{"kind":"number","nativeSrc":"32546:2:53","nodeType":"YulLiteral","src":"32546:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32537:3:53","nodeType":"YulIdentifier","src":"32537:3:53"},"nativeSrc":"32537:12:53","nodeType":"YulFunctionCall","src":"32537:12:53"},"variableNames":[{"name":"end","nativeSrc":"32530:3:53","nodeType":"YulIdentifier","src":"32530:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes32_t_uint256__to_t_bytes32_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"32308:247:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"32423:3:53","nodeType":"YulTypedName","src":"32423:3:53","type":""},{"name":"value1","nativeSrc":"32428:6:53","nodeType":"YulTypedName","src":"32428:6:53","type":""},{"name":"value0","nativeSrc":"32436:6:53","nodeType":"YulTypedName","src":"32436:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"32447:3:53","nodeType":"YulTypedName","src":"32447:3:53","type":""}],"src":"32308:247:53"},{"body":{"nativeSrc":"32781:268:53","nodeType":"YulBlock","src":"32781:268:53","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"32798:3:53","nodeType":"YulIdentifier","src":"32798:3:53"},{"name":"value0","nativeSrc":"32803:6:53","nodeType":"YulIdentifier","src":"32803:6:53"}],"functionName":{"name":"mstore","nativeSrc":"32791:6:53","nodeType":"YulIdentifier","src":"32791:6:53"},"nativeSrc":"32791:19:53","nodeType":"YulFunctionCall","src":"32791:19:53"},"nativeSrc":"32791:19:53","nodeType":"YulExpressionStatement","src":"32791:19:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32830:3:53","nodeType":"YulIdentifier","src":"32830:3:53"},{"kind":"number","nativeSrc":"32835:2:53","nodeType":"YulLiteral","src":"32835:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32826:3:53","nodeType":"YulIdentifier","src":"32826:3:53"},"nativeSrc":"32826:12:53","nodeType":"YulFunctionCall","src":"32826:12:53"},{"name":"value1","nativeSrc":"32840:6:53","nodeType":"YulIdentifier","src":"32840:6:53"}],"functionName":{"name":"mstore","nativeSrc":"32819:6:53","nodeType":"YulIdentifier","src":"32819:6:53"},"nativeSrc":"32819:28:53","nodeType":"YulFunctionCall","src":"32819:28:53"},"nativeSrc":"32819:28:53","nodeType":"YulExpressionStatement","src":"32819:28:53"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32867:3:53","nodeType":"YulIdentifier","src":"32867:3:53"},{"kind":"number","nativeSrc":"32872:2:53","nodeType":"YulLiteral","src":"32872:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32863:3:53","nodeType":"YulIdentifier","src":"32863:3:53"},"nativeSrc":"32863:12:53","nodeType":"YulFunctionCall","src":"32863:12:53"},{"name":"value2","nativeSrc":"32877:6:53","nodeType":"YulIdentifier","src":"32877:6:53"}],"functionName":{"name":"mstore","nativeSrc":"32856:6:53","nodeType":"YulIdentifier","src":"32856:6:53"},"nativeSrc":"32856:28:53","nodeType":"YulFunctionCall","src":"32856:28:53"},"nativeSrc":"32856:28:53","nodeType":"YulExpressionStatement","src":"32856:28:53"},{"nativeSrc":"32893:27:53","nodeType":"YulVariableDeclaration","src":"32893:27:53","value":{"arguments":[{"name":"value3","nativeSrc":"32913:6:53","nodeType":"YulIdentifier","src":"32913:6:53"}],"functionName":{"name":"mload","nativeSrc":"32907:5:53","nodeType":"YulIdentifier","src":"32907:5:53"},"nativeSrc":"32907:13:53","nodeType":"YulFunctionCall","src":"32907:13:53"},"variables":[{"name":"length","nativeSrc":"32897:6:53","nodeType":"YulTypedName","src":"32897:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"32968:6:53","nodeType":"YulIdentifier","src":"32968:6:53"},{"kind":"number","nativeSrc":"32976:2:53","nodeType":"YulLiteral","src":"32976:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32964:3:53","nodeType":"YulIdentifier","src":"32964:3:53"},"nativeSrc":"32964:15:53","nodeType":"YulFunctionCall","src":"32964:15:53"},{"arguments":[{"name":"pos","nativeSrc":"32985:3:53","nodeType":"YulIdentifier","src":"32985:3:53"},{"kind":"number","nativeSrc":"32990:2:53","nodeType":"YulLiteral","src":"32990:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"32981:3:53","nodeType":"YulIdentifier","src":"32981:3:53"},"nativeSrc":"32981:12:53","nodeType":"YulFunctionCall","src":"32981:12:53"},{"name":"length","nativeSrc":"32995:6:53","nodeType":"YulIdentifier","src":"32995:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"32929:34:53","nodeType":"YulIdentifier","src":"32929:34:53"},"nativeSrc":"32929:73:53","nodeType":"YulFunctionCall","src":"32929:73:53"},"nativeSrc":"32929:73:53","nodeType":"YulExpressionStatement","src":"32929:73:53"},{"nativeSrc":"33011:32:53","nodeType":"YulAssignment","src":"33011:32:53","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"33026:3:53","nodeType":"YulIdentifier","src":"33026:3:53"},{"name":"length","nativeSrc":"33031:6:53","nodeType":"YulIdentifier","src":"33031:6:53"}],"functionName":{"name":"add","nativeSrc":"33022:3:53","nodeType":"YulIdentifier","src":"33022:3:53"},"nativeSrc":"33022:16:53","nodeType":"YulFunctionCall","src":"33022:16:53"},{"kind":"number","nativeSrc":"33040:2:53","nodeType":"YulLiteral","src":"33040:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33018:3:53","nodeType":"YulIdentifier","src":"33018:3:53"},"nativeSrc":"33018:25:53","nodeType":"YulFunctionCall","src":"33018:25:53"},"variableNames":[{"name":"end","nativeSrc":"33011:3:53","nodeType":"YulIdentifier","src":"33011:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"32560:489:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"32733:3:53","nodeType":"YulTypedName","src":"32733:3:53","type":""},{"name":"value3","nativeSrc":"32738:6:53","nodeType":"YulTypedName","src":"32738:6:53","type":""},{"name":"value2","nativeSrc":"32746:6:53","nodeType":"YulTypedName","src":"32746:6:53","type":""},{"name":"value1","nativeSrc":"32754:6:53","nodeType":"YulTypedName","src":"32754:6:53","type":""},{"name":"value0","nativeSrc":"32762:6:53","nodeType":"YulTypedName","src":"32762:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"32773:3:53","nodeType":"YulTypedName","src":"32773:3:53","type":""}],"src":"32560:489:53"},{"body":{"nativeSrc":"33135:170:53","nodeType":"YulBlock","src":"33135:170:53","statements":[{"body":{"nativeSrc":"33181:16:53","nodeType":"YulBlock","src":"33181:16:53","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33190:1:53","nodeType":"YulLiteral","src":"33190:1:53","type":"","value":"0"},{"kind":"number","nativeSrc":"33193:1:53","nodeType":"YulLiteral","src":"33193:1:53","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33183:6:53","nodeType":"YulIdentifier","src":"33183:6:53"},"nativeSrc":"33183:12:53","nodeType":"YulFunctionCall","src":"33183:12:53"},"nativeSrc":"33183:12:53","nodeType":"YulExpressionStatement","src":"33183:12:53"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33156:7:53","nodeType":"YulIdentifier","src":"33156:7:53"},{"name":"headStart","nativeSrc":"33165:9:53","nodeType":"YulIdentifier","src":"33165:9:53"}],"functionName":{"name":"sub","nativeSrc":"33152:3:53","nodeType":"YulIdentifier","src":"33152:3:53"},"nativeSrc":"33152:23:53","nodeType":"YulFunctionCall","src":"33152:23:53"},{"kind":"number","nativeSrc":"33177:2:53","nodeType":"YulLiteral","src":"33177:2:53","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"33148:3:53","nodeType":"YulIdentifier","src":"33148:3:53"},"nativeSrc":"33148:32:53","nodeType":"YulFunctionCall","src":"33148:32:53"},"nativeSrc":"33145:52:53","nodeType":"YulIf","src":"33145:52:53"},{"nativeSrc":"33206:29:53","nodeType":"YulVariableDeclaration","src":"33206:29:53","value":{"arguments":[{"name":"headStart","nativeSrc":"33225:9:53","nodeType":"YulIdentifier","src":"33225:9:53"}],"functionName":{"name":"mload","nativeSrc":"33219:5:53","nodeType":"YulIdentifier","src":"33219:5:53"},"nativeSrc":"33219:16:53","nodeType":"YulFunctionCall","src":"33219:16:53"},"variables":[{"name":"value","nativeSrc":"33210:5:53","nodeType":"YulTypedName","src":"33210:5:53","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"33269:5:53","nodeType":"YulIdentifier","src":"33269:5:53"}],"functionName":{"name":"validator_revert_address","nativeSrc":"33244:24:53","nodeType":"YulIdentifier","src":"33244:24:53"},"nativeSrc":"33244:31:53","nodeType":"YulFunctionCall","src":"33244:31:53"},"nativeSrc":"33244:31:53","nodeType":"YulExpressionStatement","src":"33244:31:53"},{"nativeSrc":"33284:15:53","nodeType":"YulAssignment","src":"33284:15:53","value":{"name":"value","nativeSrc":"33294:5:53","nodeType":"YulIdentifier","src":"33294:5:53"},"variableNames":[{"name":"value0","nativeSrc":"33284:6:53","nodeType":"YulIdentifier","src":"33284:6:53"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"33054:251:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33101:9:53","nodeType":"YulTypedName","src":"33101:9:53","type":""},{"name":"dataEnd","nativeSrc":"33112:7:53","nodeType":"YulTypedName","src":"33112:7:53","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"33124:6:53","nodeType":"YulTypedName","src":"33124:6:53","type":""}],"src":"33054:251:53"},{"body":{"nativeSrc":"33439:145:53","nodeType":"YulBlock","src":"33439:145:53","statements":[{"nativeSrc":"33449:26:53","nodeType":"YulAssignment","src":"33449:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"33461:9:53","nodeType":"YulIdentifier","src":"33461:9:53"},{"kind":"number","nativeSrc":"33472:2:53","nodeType":"YulLiteral","src":"33472:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33457:3:53","nodeType":"YulIdentifier","src":"33457:3:53"},"nativeSrc":"33457:18:53","nodeType":"YulFunctionCall","src":"33457:18:53"},"variableNames":[{"name":"tail","nativeSrc":"33449:4:53","nodeType":"YulIdentifier","src":"33449:4:53"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33491:9:53","nodeType":"YulIdentifier","src":"33491:9:53"},{"arguments":[{"name":"value0","nativeSrc":"33506:6:53","nodeType":"YulIdentifier","src":"33506:6:53"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33522:3:53","nodeType":"YulLiteral","src":"33522:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"33527:1:53","nodeType":"YulLiteral","src":"33527:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"33518:3:53","nodeType":"YulIdentifier","src":"33518:3:53"},"nativeSrc":"33518:11:53","nodeType":"YulFunctionCall","src":"33518:11:53"},{"kind":"number","nativeSrc":"33531:1:53","nodeType":"YulLiteral","src":"33531:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"33514:3:53","nodeType":"YulIdentifier","src":"33514:3:53"},"nativeSrc":"33514:19:53","nodeType":"YulFunctionCall","src":"33514:19:53"}],"functionName":{"name":"and","nativeSrc":"33502:3:53","nodeType":"YulIdentifier","src":"33502:3:53"},"nativeSrc":"33502:32:53","nodeType":"YulFunctionCall","src":"33502:32:53"}],"functionName":{"name":"mstore","nativeSrc":"33484:6:53","nodeType":"YulIdentifier","src":"33484:6:53"},"nativeSrc":"33484:51:53","nodeType":"YulFunctionCall","src":"33484:51:53"},"nativeSrc":"33484:51:53","nodeType":"YulExpressionStatement","src":"33484:51:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33555:9:53","nodeType":"YulIdentifier","src":"33555:9:53"},{"kind":"number","nativeSrc":"33566:2:53","nodeType":"YulLiteral","src":"33566:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33551:3:53","nodeType":"YulIdentifier","src":"33551:3:53"},"nativeSrc":"33551:18:53","nodeType":"YulFunctionCall","src":"33551:18:53"},{"name":"value1","nativeSrc":"33571:6:53","nodeType":"YulIdentifier","src":"33571:6:53"}],"functionName":{"name":"mstore","nativeSrc":"33544:6:53","nodeType":"YulIdentifier","src":"33544:6:53"},"nativeSrc":"33544:34:53","nodeType":"YulFunctionCall","src":"33544:34:53"},"nativeSrc":"33544:34:53","nodeType":"YulExpressionStatement","src":"33544:34:53"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"33310:274:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33400:9:53","nodeType":"YulTypedName","src":"33400:9:53","type":""},{"name":"value1","nativeSrc":"33411:6:53","nodeType":"YulTypedName","src":"33411:6:53","type":""},{"name":"value0","nativeSrc":"33419:6:53","nodeType":"YulTypedName","src":"33419:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33430:4:53","nodeType":"YulTypedName","src":"33430:4:53","type":""}],"src":"33310:274:53"},{"body":{"nativeSrc":"33746:218:53","nodeType":"YulBlock","src":"33746:218:53","statements":[{"nativeSrc":"33756:26:53","nodeType":"YulAssignment","src":"33756:26:53","value":{"arguments":[{"name":"headStart","nativeSrc":"33768:9:53","nodeType":"YulIdentifier","src":"33768:9:53"},{"kind":"number","nativeSrc":"33779:2:53","nodeType":"YulLiteral","src":"33779:2:53","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"33764:3:53","nodeType":"YulIdentifier","src":"33764:3:53"},"nativeSrc":"33764:18:53","nodeType":"YulFunctionCall","src":"33764:18:53"},"variableNames":[{"name":"tail","nativeSrc":"33756:4:53","nodeType":"YulIdentifier","src":"33756:4:53"}]},{"nativeSrc":"33791:29:53","nodeType":"YulVariableDeclaration","src":"33791:29:53","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33809:3:53","nodeType":"YulLiteral","src":"33809:3:53","type":"","value":"160"},{"kind":"number","nativeSrc":"33814:1:53","nodeType":"YulLiteral","src":"33814:1:53","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"33805:3:53","nodeType":"YulIdentifier","src":"33805:3:53"},"nativeSrc":"33805:11:53","nodeType":"YulFunctionCall","src":"33805:11:53"},{"kind":"number","nativeSrc":"33818:1:53","nodeType":"YulLiteral","src":"33818:1:53","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"33801:3:53","nodeType":"YulIdentifier","src":"33801:3:53"},"nativeSrc":"33801:19:53","nodeType":"YulFunctionCall","src":"33801:19:53"},"variables":[{"name":"_1","nativeSrc":"33795:2:53","nodeType":"YulTypedName","src":"33795:2:53","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"33836:9:53","nodeType":"YulIdentifier","src":"33836:9:53"},{"arguments":[{"name":"value0","nativeSrc":"33851:6:53","nodeType":"YulIdentifier","src":"33851:6:53"},{"name":"_1","nativeSrc":"33859:2:53","nodeType":"YulIdentifier","src":"33859:2:53"}],"functionName":{"name":"and","nativeSrc":"33847:3:53","nodeType":"YulIdentifier","src":"33847:3:53"},"nativeSrc":"33847:15:53","nodeType":"YulFunctionCall","src":"33847:15:53"}],"functionName":{"name":"mstore","nativeSrc":"33829:6:53","nodeType":"YulIdentifier","src":"33829:6:53"},"nativeSrc":"33829:34:53","nodeType":"YulFunctionCall","src":"33829:34:53"},"nativeSrc":"33829:34:53","nodeType":"YulExpressionStatement","src":"33829:34:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33883:9:53","nodeType":"YulIdentifier","src":"33883:9:53"},{"kind":"number","nativeSrc":"33894:2:53","nodeType":"YulLiteral","src":"33894:2:53","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33879:3:53","nodeType":"YulIdentifier","src":"33879:3:53"},"nativeSrc":"33879:18:53","nodeType":"YulFunctionCall","src":"33879:18:53"},{"arguments":[{"name":"value1","nativeSrc":"33903:6:53","nodeType":"YulIdentifier","src":"33903:6:53"},{"name":"_1","nativeSrc":"33911:2:53","nodeType":"YulIdentifier","src":"33911:2:53"}],"functionName":{"name":"and","nativeSrc":"33899:3:53","nodeType":"YulIdentifier","src":"33899:3:53"},"nativeSrc":"33899:15:53","nodeType":"YulFunctionCall","src":"33899:15:53"}],"functionName":{"name":"mstore","nativeSrc":"33872:6:53","nodeType":"YulIdentifier","src":"33872:6:53"},"nativeSrc":"33872:43:53","nodeType":"YulFunctionCall","src":"33872:43:53"},"nativeSrc":"33872:43:53","nodeType":"YulExpressionStatement","src":"33872:43:53"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33935:9:53","nodeType":"YulIdentifier","src":"33935:9:53"},{"kind":"number","nativeSrc":"33946:2:53","nodeType":"YulLiteral","src":"33946:2:53","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33931:3:53","nodeType":"YulIdentifier","src":"33931:3:53"},"nativeSrc":"33931:18:53","nodeType":"YulFunctionCall","src":"33931:18:53"},{"name":"value2","nativeSrc":"33951:6:53","nodeType":"YulIdentifier","src":"33951:6:53"}],"functionName":{"name":"mstore","nativeSrc":"33924:6:53","nodeType":"YulIdentifier","src":"33924:6:53"},"nativeSrc":"33924:34:53","nodeType":"YulFunctionCall","src":"33924:34:53"},"nativeSrc":"33924:34:53","nodeType":"YulExpressionStatement","src":"33924:34:53"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"33589:375:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33699:9:53","nodeType":"YulTypedName","src":"33699:9:53","type":""},{"name":"value2","nativeSrc":"33710:6:53","nodeType":"YulTypedName","src":"33710:6:53","type":""},{"name":"value1","nativeSrc":"33718:6:53","nodeType":"YulTypedName","src":"33718:6:53","type":""},{"name":"value0","nativeSrc":"33726:6:53","nodeType":"YulTypedName","src":"33726:6:53","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33737:4:53","nodeType":"YulTypedName","src":"33737:4:53","type":""}],"src":"33589:375:53"},{"body":{"nativeSrc":"34106:150:53","nodeType":"YulBlock","src":"34106:150:53","statements":[{"nativeSrc":"34116:27:53","nodeType":"YulVariableDeclaration","src":"34116:27:53","value":{"arguments":[{"name":"value0","nativeSrc":"34136:6:53","nodeType":"YulIdentifier","src":"34136:6:53"}],"functionName":{"name":"mload","nativeSrc":"34130:5:53","nodeType":"YulIdentifier","src":"34130:5:53"},"nativeSrc":"34130:13:53","nodeType":"YulFunctionCall","src":"34130:13:53"},"variables":[{"name":"length","nativeSrc":"34120:6:53","nodeType":"YulTypedName","src":"34120:6:53","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"34191:6:53","nodeType":"YulIdentifier","src":"34191:6:53"},{"kind":"number","nativeSrc":"34199:4:53","nodeType":"YulLiteral","src":"34199:4:53","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34187:3:53","nodeType":"YulIdentifier","src":"34187:3:53"},"nativeSrc":"34187:17:53","nodeType":"YulFunctionCall","src":"34187:17:53"},{"name":"pos","nativeSrc":"34206:3:53","nodeType":"YulIdentifier","src":"34206:3:53"},{"name":"length","nativeSrc":"34211:6:53","nodeType":"YulIdentifier","src":"34211:6:53"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"34152:34:53","nodeType":"YulIdentifier","src":"34152:34:53"},"nativeSrc":"34152:66:53","nodeType":"YulFunctionCall","src":"34152:66:53"},"nativeSrc":"34152:66:53","nodeType":"YulExpressionStatement","src":"34152:66:53"},{"nativeSrc":"34227:23:53","nodeType":"YulAssignment","src":"34227:23:53","value":{"arguments":[{"name":"pos","nativeSrc":"34238:3:53","nodeType":"YulIdentifier","src":"34238:3:53"},{"name":"length","nativeSrc":"34243:6:53","nodeType":"YulIdentifier","src":"34243:6:53"}],"functionName":{"name":"add","nativeSrc":"34234:3:53","nodeType":"YulIdentifier","src":"34234:3:53"},"nativeSrc":"34234:16:53","nodeType":"YulFunctionCall","src":"34234:16:53"},"variableNames":[{"name":"end","nativeSrc":"34227:3:53","nodeType":"YulIdentifier","src":"34227:3:53"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"33969:287:53","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"34082:3:53","nodeType":"YulTypedName","src":"34082:3:53","type":""},{"name":"value0","nativeSrc":"34087:6:53","nodeType":"YulTypedName","src":"34087:6:53","type":""}],"returnVariables":[{"name":"end","nativeSrc":"34098:3:53","nodeType":"YulTypedName","src":"34098:3:53","type":""}],"src":"33969:287:53"}]},"contents":"{\n { }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_struct_Origin_calldata(offset, end) -> value\n {\n if slt(sub(end, offset), 96) { revert(0, 0) }\n value := offset\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes32t_bytes_calldata_ptrt_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n value0 := abi_decode_struct_Origin_calldata(headStart, dataEnd)\n value1 := calldataload(add(headStart, 96))\n let offset := calldataload(add(headStart, 128))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let value := calldataload(add(headStart, 160))\n validator_revert_address(value)\n value4 := value\n let offset_1 := calldataload(add(headStart, 192))\n if gt(offset_1, _1) { revert(0, 0) }\n let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value5 := value5_1\n value6 := value6_1\n }\n function abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := 0xffffffffffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffff))\n }\n function abi_decode_struct_SendParam_calldata(offset, end) -> value\n {\n if slt(sub(end, offset), 192) { revert(0, 0) }\n value := offset\n }\n function abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_struct$_MessagingFee_$2169_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2\n {\n let _1 := sub(dataEnd, headStart)\n if slt(_1, 128) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_SendParam_calldata(add(headStart, offset), dataEnd)\n if slt(add(_1, not(31)), 64) { revert(0, 0) }\n value1 := add(headStart, 32)\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value2 := value\n }\n function abi_encode_struct_MessagingFee(value, pos)\n {\n mstore(pos, mload(value))\n mstore(add(pos, 0x20), mload(add(value, 0x20)))\n }\n function abi_encode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr__to_t_struct$_MessagingReceipt_$2164_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, mload(value0))\n mstore(add(headStart, 0x20), and(mload(add(value0, 0x20)), 0xffffffffffffffff))\n let memberValue0 := mload(add(value0, 0x40))\n abi_encode_struct_MessagingFee(memberValue0, add(headStart, 0x40))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_uint32(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint32t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint32(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_uint16(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint32t_uint16(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint32(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_ILayerZeroEndpointV2_$2338__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptrt_bytes_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_struct_Origin_calldata(headStart, dataEnd)\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let value := calldataload(add(headStart, 128))\n validator_revert_address(value)\n value3 := value\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_bool(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_bytes4_t_uint64__to_t_bytes4_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory_3822() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 64)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory_3825() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x60)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_decode_tuple_t_uint32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint32(headStart)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_uint32t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_uint32(headStart)\n value1 := abi_decode_uint16(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_array$_t_struct$_InboundPacket_$2010_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_array_struct_EnforcedOptionParam_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_decode_tuple_t_struct$_SendParam_$4710_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_SendParam_calldata(add(headStart, offset), dataEnd)\n let value := calldataload(add(headStart, 32))\n validator_revert_bool(value)\n value1 := value\n }\n function abi_encode_tuple_t_struct$_MessagingFee_$2169_memory_ptr__to_t_struct$_MessagingFee_$2169_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n abi_encode_struct_MessagingFee(value0, headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_struct$_Origin_$2176_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_struct_Origin_calldata(headStart, dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_uint32_t_bytes32__to_t_uint32_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xffffffff))\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := allocate_memory_3822()\n mstore(value, calldataload(headStart))\n mstore(add(value, 32), calldataload(add(headStart, 32)))\n value0 := value\n }\n function abi_encode_tuple_t_uint32_t_uint256__to_t_uint32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xffffffff))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, _1))\n }\n function convert_array_t_array$_t_struct$_EnforcedOptionParam_$1081_calldata_ptr_$dyn_calldata_ptr_to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr(value, length) -> converted\n {\n let _1 := 0xffffffffffffffff\n if gt(length, _1) { panic_error_0x41() }\n let _2 := shl(5, length)\n let _3 := 0x20\n let dst := allocate_memory(add(_2, _3))\n let dst_1 := dst\n mstore(dst, length)\n dst := add(dst, _3)\n let srcEnd := add(value, _2)\n if gt(srcEnd, calldatasize()) { revert(0, 0) }\n let src := value\n for { } lt(src, srcEnd) { src := add(src, _3) }\n {\n let innerOffset := calldataload(src)\n if gt(innerOffset, _1)\n {\n let _4 := 0\n revert(_4, _4)\n }\n let _5 := add(value, innerOffset)\n if slt(sub(calldatasize(), _5), 0x60)\n {\n let _6 := 0\n revert(_6, _6)\n }\n let value_1 := allocate_memory_3825()\n mstore(value_1, abi_decode_uint32(_5))\n mstore(add(value_1, _3), abi_decode_uint16(add(_5, _3)))\n let _7 := 64\n let offset := calldataload(add(_5, _7))\n if gt(offset, _1)\n {\n let _8 := 0\n revert(_8, _8)\n }\n mstore(add(value_1, _7), abi_decode_bytes(add(_5, offset), calldatasize()))\n mstore(dst, value_1)\n dst := add(dst, _3)\n }\n converted := dst_1\n }\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n {\n if gt(startIndex, endIndex) { revert(0, 0) }\n if gt(endIndex, length) { revert(0, 0) }\n offsetOut := add(offset, startIndex)\n lengthOut := sub(endIndex, startIndex)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_calldata_ptr_slice__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n calldatacopy(end_1, value1, value2)\n let _1 := add(end_1, value2)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes_calldata(value0, value1, add(headStart, 32))\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function access_calldata_tail_t_struct$_InboundPacket_$2010_calldata_ptr(base_ref, ptr_to_tail) -> addr\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(318)))) { revert(0, 0) }\n addr := add(base_ref, rel_offset_of_tail)\n }\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function validator_revert_uint64(value)\n {\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_encode_tuple_t_struct$_Origin_$2176_calldata_ptr_t_bytes32_t_bytes_calldata_ptr_t_address_t_bytes_calldata_ptr__to_t_struct$_Origin_$2176_memory_ptr_t_bytes32_t_bytes_memory_ptr_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(abi_decode_uint32(value0), 0xffffffff))\n mstore(add(headStart, 0x20), calldataload(add(value0, 0x20)))\n let value := calldataload(add(value0, 0x40))\n validator_revert_uint64(value)\n mstore(add(headStart, 0x40), and(value, 0xffffffffffffffff))\n mstore(add(headStart, 96), value1)\n mstore(add(headStart, 128), 224)\n let tail_1 := abi_encode_bytes_calldata(value2, value3, add(headStart, 224))\n mstore(add(headStart, 160), and(value4, sub(shl(160, 1), 1)))\n mstore(add(headStart, 192), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value5, value6, tail_1)\n }\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffff))\n }\n function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint64(value)\n value0 := value\n }\n function abi_encode_tuple_t_address_t_bytes32_t_rational_0_by_1_t_bytes_memory_ptr__to_t_address_t_bytes32_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, 0xffff))\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n let tail_1 := abi_encode_string(value0, add(headStart, 64))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n tail := abi_encode_string(value1, tail_1)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_encode_tuple_t_struct$_MessagingParams_$2156_memory_ptr_t_address__to_t_struct$_MessagingParams_$2156_memory_ptr_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n mstore(add(headStart, 64), and(mload(value0), 0xffffffff))\n mstore(add(headStart, 96), mload(add(value0, 0x20)))\n let memberValue0 := mload(add(value0, 64))\n mstore(add(headStart, 128), 0xa0)\n let tail_1 := abi_encode_string(memberValue0, add(headStart, 224))\n let memberValue0_1 := mload(add(value0, 96))\n mstore(add(headStart, 0xa0), add(sub(tail_1, headStart), not(63)))\n let tail_2 := abi_encode_string(memberValue0_1, tail_1)\n mstore(add(headStart, 192), iszero(iszero(mload(add(value0, 128)))))\n tail := tail_2\n mstore(add(headStart, 0x20), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_decode_struct_MessagingFee_fromMemory(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0x40) { revert(0, 0) }\n value := allocate_memory_3822()\n mstore(value, mload(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n }\n function abi_decode_tuple_t_struct$_MessagingReceipt_$2164_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := allocate_memory_3825()\n mstore(value, mload(headStart))\n let value_1 := mload(add(headStart, 32))\n validator_revert_uint64(value_1)\n mstore(add(value, 32), value_1)\n mstore(add(value, 64), abi_decode_struct_MessagingFee_fromMemory(add(headStart, 64), dataEnd))\n value0 := value\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string(value3, add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function array_dataslot_bytes_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_bytes_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(0, array)\n let data := keccak256(0, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := 0x20\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_bytes_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_EnforcedOptionParam_$1081_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n let _2 := 64\n pos := add(headStart, 64)\n let tail_2 := add(add(headStart, shl(5, length)), 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, add(sub(tail_2, headStart), not(63)))\n let _3 := mload(srcPtr)\n let _4 := 0x60\n mstore(tail_2, and(mload(_3), 0xffffffff))\n mstore(add(tail_2, _1), and(mload(add(_3, _1)), 0xffff))\n let memberValue0 := mload(add(_3, _2))\n mstore(add(tail_2, _2), _4)\n tail_2 := abi_encode_string(memberValue0, add(tail_2, _4))\n srcPtr := add(srcPtr, _1)\n pos := add(pos, _1)\n }\n tail := tail_2\n }\n function abi_decode_tuple_t_struct$_MessagingFee_$2169_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_struct_MessagingFee_fromMemory(headStart, dataEnd)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes32(array, len) -> value\n {\n value := calldataload(array)\n if lt(len, 32)\n {\n value := and(value, shl(shl(3, sub(32, len)), not(0)))\n }\n }\n function abi_encode_tuple_packed_t_uint64_t_uint32_t_bytes_memory_ptr__to_t_uint64_t_uint32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, and(shl(192, value0), shl(192, 0xffffffffffffffff)))\n mstore(add(pos, 8), and(shl(224, value1), shl(224, 0xffffffff)))\n let length := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), add(pos, 12), length)\n end := add(add(pos, length), 12)\n }\n function abi_encode_tuple_packed_t_bytes32_t_uint256__to_t_bytes32_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n end := add(pos, 64)\n }\n function abi_encode_tuple_packed_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n let length := mload(value3)\n copy_memory_to_memory_with_cleanup(add(value3, 32), add(pos, 96), length)\n end := add(add(pos, length), 96)\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n}","id":53,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"535":[{"length":32,"start":1206},{"length":32,"start":2360},{"length":32,"start":4503},{"length":32,"start":5164},{"length":32,"start":5807},{"length":32,"start":7361},{"length":32,"start":8352},{"length":32,"start":8537}]},"linkReferences":{},"object":"6080604052600436106102675760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc14610787578063d42438851461079a578063e985e9c5146107ba578063f2fde38b146107da578063fc0c546a1461043a578063ff7bd03d146107fa57600080fd5b8063bc70b354146106e7578063bd815db014610707578063c6414e7b1461071a578063c87b56dd14610747578063ca5eb5e11461076757600080fd5b8063a72f5dd811610108578063a72f5dd81461061d578063b21a33e414610645578063b731ea0a1461065a578063b88d4fde1461067a578063b98bd0701461069a578063bb0b6a53146106ba57600080fd5b806382413eac146105965780638da5cb5b146105b657806395d89b41146105d45780639f68b964146105e9578063a22cb465146105fd57600080fd5b806340c10f19116101dd5780635e280f11116101a15780635e280f11146104a45780636352211e146104d85780636fc1b31e146104f857806370a0823114610518578063715018a6146105465780637d25a05e1461055b57600080fd5b806340c10f19146103fa57806342842e0e1461041a57806352ae28791461043a5780635535d4611461044d5780635a0dfe4d1461046d57600080fd5b806313137d651161022f57806313137d651461033d57806317442b70146103505780631f5e13341461037257806321eb730b1461039a57806323b872dd146103ba5780633400288b146103da57600080fd5b806301ffc9a71461026c57806306fdde03146102a1578063081812fc146102c3578063095ea7b3146102fb578063111ecdad1461031d575b600080fd5b34801561027857600080fd5b5061028c61028736600461253e565b61081a565b60405190151581526020015b60405180910390f35b3480156102ad57600080fd5b506102b661086c565b60405161029891906125ab565b3480156102cf57600080fd5b506102e36102de3660046125be565b6108fe565b6040516001600160a01b039091168152602001610298565b34801561030757600080fd5b5061031b6103163660046125ec565b610927565b005b34801561032957600080fd5b506004546102e3906001600160a01b031681565b61031b61034b366004612678565b610936565b34801561035c57600080fd5b5060408051600181526002602082015201610298565b34801561037e57600080fd5b50610387600181565b60405161ffff9091168152602001610298565b6103ad6103a8366004612729565b6109f6565b6040516102989190612796565b3480156103c657600080fd5b5061031b6103d53660046127d8565b610ad1565b3480156103e657600080fd5b5061031b6103f5366004612832565b610b5c565b34801561040657600080fd5b5061031b6104153660046125ec565b610b6e565b34801561042657600080fd5b5061031b6104353660046127d8565b610b78565b34801561044657600080fd5b50306102e3565b34801561045957600080fd5b506102b6610468366004612860565b610b98565b34801561047957600080fd5b5061028c610488366004612832565b63ffffffff919091166000908152600160205260409020541490565b3480156104b057600080fd5b506102e37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e457600080fd5b506102e36104f33660046125be565b610c3d565b34801561050457600080fd5b5061031b610513366004612893565b610c48565b34801561052457600080fd5b50610538610533366004612893565b610ca5565b604051908152602001610298565b34801561055257600080fd5b5061031b610ced565b34801561056757600080fd5b5061057e610576366004612832565b600092915050565b6040516001600160401b039091168152602001610298565b3480156105a257600080fd5b5061028c6105b13660046128b0565b610d01565b3480156105c257600080fd5b506000546001600160a01b03166102e3565b3480156105e057600080fd5b506102b6610d16565b3480156105f557600080fd5b50600061028c565b34801561060957600080fd5b5061031b610618366004612924565b610d25565b34801561062957600080fd5b50604080516311f0c6d360e11b81526001602082015201610298565b34801561065157600080fd5b50610387600281565b34801561066657600080fd5b506002546102e3906001600160a01b031681565b34801561068657600080fd5b5061031b610695366004612a6a565b610d30565b3480156106a657600080fd5b5061031b6106b5366004612b19565b610d47565b3480156106c657600080fd5b506105386106d5366004612b5a565b60016020526000908152604090205481565b3480156106f357600080fd5b506102b6610702366004612b75565b610d61565b61031b610715366004612b19565b610f09565b34801561072657600080fd5b5061073a610735366004612bd5565b611093565b6040516102989190612c1b565b34801561075357600080fd5b506102b66107623660046125be565b6110fb565b34801561077357600080fd5b5061031b610782366004612893565b611170565b61031b610795366004612678565b6111f6565b3480156107a657600080fd5b5061031b6107b5366004612893565b611225565b3480156107c657600080fd5b5061028c6107d5366004612c32565b61127b565b3480156107e657600080fd5b5061031b6107f5366004612893565b6112a9565b34801561080657600080fd5b5061028c610815366004612c60565b6112e7565b60006001600160e01b031982166380ac58cd60e01b148061084b57506001600160e01b03198216635b5e139f60e01b145b8061086657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461087b90612c7c565b80601f01602080910402602001604051908101604052809291908181526020018280546108a790612c7c565b80156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b60006109098261131d565b506000828152600960205260409020546001600160a01b0316610866565b610932828233611356565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610986576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b602087018035906109a09061099b908a612b5a565b611363565b146109de576109b26020880188612b5a565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161097d565b6109ed8787878787878761139f565b50505050505050565b6109fe6124e1565b6020840135610a2057604051631e4ec46b60e01b815260040160405180910390fd5b610a3b336040860135610a366020880188612b5a565b6114fe565b600080610a478661155e565b9092509050610a73610a5c6020880188612b5a565b8383610a6d368a90038a018a612cb0565b8861167c565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610aa860208a018a612b5a565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610afb57604051633250574960e11b81526000600482015260240161097d565b6000610b08838333611787565b9050836001600160a01b0316816001600160a01b031614610b56576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161097d565b50505050565b610b64611880565b61093282826118ad565b6109328282611902565b610b9383838360405180602001604052806000815250610d30565b505050565b600360209081526000928352604080842090915290825290208054610bbc90612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610be890612c7c565b8015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b60006108668261131d565b610c50611880565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610cd1576040516322718ad960e21b81526000600482015260240161097d565b506001600160a01b031660009081526008602052604090205490565b610cf5611880565b610cff6000611967565b565b6001600160a01b03811630145b949350505050565b60606006805461087b90612c7c565b6109323383836119b7565b610d3b848484610ad1565b610b5684848484611a56565b610d4f611880565b610932610d5c8284612ce2565b611b78565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d9590612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc190612c7c565b8015610e0e5780601f10610de357610100808354040283529160200191610e0e565b820191906000526020600020905b815481529060010190602001808311610df157829003601f168201915b505050505090508051600003610e5e5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610d0e9350505050565b6000839003610e6e579050610d0e565b60028310610eec57610eb584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c7f92505050565b80610ec38460028188612db7565b604051602001610ed593929190612de1565b604051602081830303815290604052915050610d0e565b8383604051639a6d49cd60e01b815260040161097d929190612e32565b60005b818110156110125736838383818110610f2757610f27612e46565b9050602002810190610f399190612e5c565b9050610f6c610f4b6020830183612b5a565b602083013563ffffffff919091166000908152600160205260409020541490565b610f76575061100a565b3063d045a0dc60c08301358360a0810135610f95610100830183612e7d565b610fa6610100890160e08a01612893565b610fb46101208a018a612e7d565b6040518963ffffffff1660e01b8152600401610fd69796959493929190612ed8565b6000604051808303818588803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b5050505050505b600101610f0c565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110799190810190612f5e565b604051638351eea760e01b815260040161097d91906125ab565b604080518082019091526000808252602082015260208301356110c957604051631e4ec46b60e01b815260040160405180910390fd5b6000806110d58561155e565b90925090506110f26110ea6020870187612b5a565b838387611cab565b95945050505050565b60606111068261131d565b50600061111e60408051602081019091526000815290565b9050600081511161113e5760405180602001604052806000815250611169565b8061114884611d83565b604051602001611159929190612fcb565b6040516020818303038152906040525b9392505050565b611178611880565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111db57600080fd5b505af11580156111ef573d6000803e3d6000fd5b5050505050565b3330146112165760405163029a949d60e31b815260040160405180910390fd5b6109ed878787878787876109de565b61122d611880565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c9a565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6112b1611880565b6001600160a01b0381166112db57604051631e4fbdf760e01b81526000600482015260240161097d565b6112e481611967565b50565b60006020820180359060019083906112ff9086612b5a565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061086657604051637e27328960e01b81526004810184905260240161097d565b610b938383836001611e15565b63ffffffff8116600090815260016020526040812054806108665760405163f6ff4fb760e01b815263ffffffff8416600482015260240161097d565b60006113b16113ae8787611f1b565b90565b905060006113bf8787611f33565b90506113d882826113d360208d018d612b5a565b611f50565b604086111561149c5760006114126113f660608c0160408d01612ffa565b61140360208d018d612b5a565b61140d8b8b611f5a565b611fa5565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114689086908d906000908790600401613017565b600060405180830381600087803b15801561148257600080fd5b505af1158015611496573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114d560208d018d612b5a565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b61150782610c3d565b6001600160a01b0316836001600160a01b031614611555578261152983610c3d565b604051634342715b60e11b81526001600160a01b0392831660048201529116602482015260440161097d565b610b9382611fd4565b60608060006115b76020850135604086013561157d6080880188612e7d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061200f92505050565b90935090506000816115ca5760016115cd565b60025b90506115ed6115df6020870187612b5a565b826107026060890189612e7d565b6004549093506001600160a01b031615611675576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb91611632918891889101613048565b602060405180830381865afa15801561164f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611673919061306d565b505b5050915091565b6116846124e1565b60006116938460000151612074565b6020850151909150156116ad576116ad846020015161209c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116fd8c611363565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161173992919061308a565b60806040518083038185885af1158015611757573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061177c9190613133565b979650505050505050565b6000828152600760205260408120546001600160a01b03908116908316156117b4576117b481848661217e565b6001600160a01b038116156117f2576117d1600085600080611e15565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b03851615611821576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cff5760405163118cdaa760e01b815233600482015260240161097d565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6001600160a01b03821661192c57604051633250574960e11b81526000600482015260240161097d565b600061193a83836000611787565b90506001600160a01b03811615610b93576040516339e3563760e11b81526000600482015260240161097d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166119e957604051630b61174360e31b81526001600160a01b038316600482015260240161097d565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b5657604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611a9890339088908790879060040161317d565b6020604051808303816000875af1925050508015611ad3575060408051601f3d908101601f19168201909252611ad0918101906131b0565b60015b611b3c573d808015611b01576040519150601f19603f3d011682016040523d82523d6000602084013e611b06565b606091505b508051600003611b3457604051633250574960e11b81526001600160a01b038516600482015260240161097d565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ef57604051633250574960e11b81526001600160a01b038516600482015260240161097d565b60005b8151811015611c4f57611baa828281518110611b9957611b99612e46565b602002602001015160400151611c7f565b818181518110611bbc57611bbc612e46565b60200260200101516040015160036000848481518110611bde57611bde612e46565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611c1857611c18612e46565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611c46919061321d565b50600101611b7b565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c9a91906132dc565b600281015161ffff81166003146109325781604051639a6d49cd60e01b815260040161097d91906125ab565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611d0e89611363565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611d4392919061308a565b6040805180830381865afa158015611d5f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190613367565b60606000611d90836121e2565b60010190506000816001600160401b03811115611daf57611daf61295d565b6040519080825280601f01601f191660200182016040528015611dd9576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611de357509392505050565b8080611e2957506001600160a01b03821615155b15611eeb576000611e398461131d565b90506001600160a01b03831615801590611e655750826001600160a01b0316816001600160a01b031614155b8015611e785750611e76818461127b565b155b15611ea15760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161097d565b8115611ee95783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611f2a6020828486612db7565b61116991613383565b6000611f43604060208486612db7565b81019061116991906125be565b610b938383611902565b6060611f698260408186612db7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611fbc939291906133a1565b60405160208183030381529060405290509392505050565b6000611fe36000836000611787565b90506001600160a01b03811661093257604051637e27328960e01b81526004810183905260240161097d565b805160609015158061204357604080516020810187905290810185905260600160405160208183030381529060405261206a565b8484338560405160200161205a94939291906133eb565b6040516020818303038152906040525b9150935093915050565b6000813414612098576040516304fb820960e51b815234600482015260240161097d565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612120919061341f565b90506001600160a01b038116612149576040516329b99a9560e11b815260040160405180910390fd5b6109326001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856122ba565b612189838383612314565b610b93576001600160a01b0383166121b757604051637e27328960e01b81526004810182905260240161097d565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161097d565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106122215772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061224d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061226b57662386f26fc10000830492506010015b6305f5e1008310612283576305f5e100830492506008015b612710831061229757612710830492506004015b606483106122a9576064830492506002015b600a83106108665760010192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b56908590612377565b60006001600160a01b03831615801590610d0e5750826001600160a01b0316846001600160a01b0316148061234e575061234e848461127b565b80610d0e5750506000908152600960205260409020546001600160a01b03908116911614919050565b600061238c6001600160a01b038416836123da565b905080516000141580156123b15750808060200190518101906123af919061306d565b155b15610b9357604051635274afe760e01b81526001600160a01b038416600482015260240161097d565b60606111698383600084600080856001600160a01b03168486604051612400919061343c565b60006040518083038185875af1925050503d806000811461243d576040519150601f19603f3d011682016040523d82523d6000602084013e612442565b606091505b509150915061245286838361245c565b9695505050505050565b6060826124715761246c826124b8565b611169565b815115801561248857506001600160a01b0384163b155b156124b157604051639996b31560e01b81526001600160a01b038516600482015260240161097d565b5080611169565b8051156124c85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001612523604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112e457600080fd5b60006020828403121561255057600080fd5b813561116981612528565b60005b8381101561257657818101518382015260200161255e565b50506000910152565b6000815180845261259781602086016020860161255b565b601f01601f19169290920160200192915050565b602081526000611169602083018461257f565b6000602082840312156125d057600080fd5b5035919050565b6001600160a01b03811681146112e457600080fd5b600080604083850312156125ff57600080fd5b823561260a816125d7565b946020939093013593505050565b60006060828403121561262a57600080fd5b50919050565b60008083601f84011261264257600080fd5b5081356001600160401b0381111561265957600080fd5b60208301915083602082850101111561267157600080fd5b9250929050565b600080600080600080600060e0888a03121561269357600080fd5b61269d8989612618565b96506060880135955060808801356001600160401b03808211156126c057600080fd5b6126cc8b838c01612630565b909750955060a08a013591506126e1826125d7565b90935060c089013590808211156126f757600080fd5b506127048a828b01612630565b989b979a50959850939692959293505050565b600060c0828403121561262a57600080fd5b6000806000838503608081121561273f57600080fd5b84356001600160401b0381111561275557600080fd5b61276187828801612717565b9450506040601f198201121561277657600080fd5b50602084019150606084013561278b816125d7565b809150509250925092565b6000608082019050825182526001600160401b03602084015116602083015260408301516127d1604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127ed57600080fd5b83356127f8816125d7565b92506020840135612808816125d7565b929592945050506040919091013590565b803563ffffffff8116811461282d57600080fd5b919050565b6000806040838503121561284557600080fd5b61260a83612819565b803561ffff8116811461282d57600080fd5b6000806040838503121561287357600080fd5b61287c83612819565b915061288a6020840161284e565b90509250929050565b6000602082840312156128a557600080fd5b8135611169816125d7565b60008060008060a085870312156128c657600080fd5b6128d08686612618565b935060608501356001600160401b038111156128eb57600080fd5b6128f787828801612630565b909450925050608085013561290b816125d7565b939692955090935050565b80151581146112e457600080fd5b6000806040838503121561293757600080fd5b8235612942816125d7565b9150602083013561295281612916565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156129955761299561295d565b60405290565b604051606081016001600160401b03811182821017156129955761299561295d565b604051601f8201601f191681016001600160401b03811182821017156129e5576129e561295d565b604052919050565b60006001600160401b03821115612a0657612a0661295d565b50601f01601f191660200190565b600082601f830112612a2557600080fd5b8135612a38612a33826129ed565b6129bd565b818152846020838601011115612a4d57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a8057600080fd5b8435612a8b816125d7565b93506020850135612a9b816125d7565b92506040850135915060608501356001600160401b03811115612abd57600080fd5b612ac987828801612a14565b91505092959194509250565b60008083601f840112612ae757600080fd5b5081356001600160401b03811115612afe57600080fd5b6020830191508360208260051b850101111561267157600080fd5b60008060208385031215612b2c57600080fd5b82356001600160401b03811115612b4257600080fd5b612b4e85828601612ad5565b90969095509350505050565b600060208284031215612b6c57600080fd5b61116982612819565b60008060008060608587031215612b8b57600080fd5b612b9485612819565b9350612ba26020860161284e565b925060408501356001600160401b03811115612bbd57600080fd5b612bc987828801612630565b95989497509550505050565b60008060408385031215612be857600080fd5b82356001600160401b03811115612bfe57600080fd5b612c0a85828601612717565b925050602083013561295281612916565b815181526020808301519082015260408101610866565b60008060408385031215612c4557600080fd5b8235612c50816125d7565b91506020830135612952816125d7565b600060608284031215612c7257600080fd5b6111698383612618565b600181811c90821680612c9057607f821691505b60208210810361262a57634e487b7160e01b600052602260045260246000fd5b600060408284031215612cc257600080fd5b612cca612973565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cfc57612cfc61295d565b8360051b6020612d0d8183016129bd565b868152918501918181019036841115612d2557600080fd5b865b84811015612dab57803586811115612d3f5760008081fd5b88016060368290031215612d535760008081fd5b612d5b61299b565b612d6482612819565b8152612d7186830161284e565b8682015260408083013589811115612d895760008081fd5b612d9536828601612a14565b9183019190915250845250918301918301612d27565b50979650505050505050565b60008085851115612dc757600080fd5b83861115612dd457600080fd5b5050820193919092039150565b60008451612df381846020890161255b565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610d0e602083018486612e09565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e7357600080fd5b9190910192915050565b6000808335601e19843603018112612e9457600080fd5b8301803591506001600160401b03821115612eae57600080fd5b60200191503681900382131561267157600080fd5b6001600160401b03811681146112e457600080fd5b63ffffffff612ee689612819565b1681526020880135602082015260006040890135612f0381612ec3565b6001600160401b03811660408401525087606083015260e06080830152612f2e60e083018789612e09565b6001600160a01b03861660a084015282810360c0840152612f50818587612e09565b9a9950505050505050505050565b600060208284031215612f7057600080fd5b81516001600160401b03811115612f8657600080fd5b8201601f81018413612f9757600080fd5b8051612fa5612a33826129ed565b818152856020838501011115612fba57600080fd5b6110f282602083016020860161255b565b60008351612fdd81846020880161255b565b835190830190612ff181836020880161255b565b01949350505050565b60006020828403121561300c57600080fd5b813561116981612ec3565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000612452608083018461257f565b60408152600061305b604083018561257f565b82810360208401526110f2818561257f565b60006020828403121561307f57600080fd5b815161116981612916565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526130c060e084018261257f565b90506060850151603f198483030160a08501526130dd828261257f565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561311557600080fd5b61311d612973565b9050815181526020820151602082015292915050565b60006080828403121561314557600080fd5b61314d61299b565b82518152602083015161315f81612ec3565b60208201526131718460408501613103565b60408201529392505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906124529083018461257f565b6000602082840312156131c257600080fd5b815161116981612528565b601f821115610b93576000816000526020600020601f850160051c810160208610156131f65750805b601f850160051c820191505b8181101561321557828155600101613202565b505050505050565b81516001600160401b038111156132365761323661295d565b61324a816132448454612c7c565b846131cd565b602080601f83116001811461327f57600084156132675750858301515b600019600386901b1c1916600185901b178555613215565b600085815260208120601f198616915b828110156132ae5788860151825594840194600190910190840161328f565b50858210156132cc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561335957888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133458186018361257f565b968901969450505090860190600101613305565b509098975050505050505050565b60006040828403121561337957600080fd5b6111698383613103565b8035602083101561086657600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133dc81600c85016020870161255b565b91909101600c01949350505050565b8481528360208201528260408201526000825161340f81606085016020870161255b565b9190910160600195945050505050565b60006020828403121561343157600080fd5b8151611169816125d7565b60008251612e7381846020870161255b56fea26469706673582212202ed9e0490b65660a264f1838a28a7c9b2643e0a7034d006e204af0872d53709164736f6c63430008160033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x267 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x82413EAC GT PUSH2 0x144 JUMPI DUP1 PUSH4 0xBC70B354 GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xD045A0DC GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xD045A0DC EQ PUSH2 0x787 JUMPI DUP1 PUSH4 0xD4243885 EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x7DA JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x43A JUMPI DUP1 PUSH4 0xFF7BD03D EQ PUSH2 0x7FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBC70B354 EQ PUSH2 0x6E7 JUMPI DUP1 PUSH4 0xBD815DB0 EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0xC6414E7B EQ PUSH2 0x71A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x747 JUMPI DUP1 PUSH4 0xCA5EB5E1 EQ PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA72F5DD8 GT PUSH2 0x108 JUMPI DUP1 PUSH4 0xA72F5DD8 EQ PUSH2 0x61D JUMPI DUP1 PUSH4 0xB21A33E4 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0xB731EA0A EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x67A JUMPI DUP1 PUSH4 0xB98BD070 EQ PUSH2 0x69A JUMPI DUP1 PUSH4 0xBB0B6A53 EQ PUSH2 0x6BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x82413EAC EQ PUSH2 0x596 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x5B6 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x5D4 JUMPI DUP1 PUSH4 0x9F68B964 EQ PUSH2 0x5E9 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x40C10F19 GT PUSH2 0x1DD JUMPI DUP1 PUSH4 0x5E280F11 GT PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x5E280F11 EQ PUSH2 0x4A4 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0x6FC1B31E EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x518 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0x7D25A05E EQ PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x3FA JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x41A JUMPI DUP1 PUSH4 0x52AE2879 EQ PUSH2 0x43A JUMPI DUP1 PUSH4 0x5535D461 EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x5A0DFE4D EQ PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13137D65 GT PUSH2 0x22F JUMPI DUP1 PUSH4 0x13137D65 EQ PUSH2 0x33D JUMPI DUP1 PUSH4 0x17442B70 EQ PUSH2 0x350 JUMPI DUP1 PUSH4 0x1F5E1334 EQ PUSH2 0x372 JUMPI DUP1 PUSH4 0x21EB730B EQ PUSH2 0x39A JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0x3400288B EQ PUSH2 0x3DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x2C3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0x111ECDAD EQ PUSH2 0x31D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x278 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28C PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x253E JUMP JUMPDEST PUSH2 0x81A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x86C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x25AB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH2 0x2DE CALLDATASIZE PUSH1 0x4 PUSH2 0x25BE JUMP JUMPDEST PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x316 CALLDATASIZE PUSH1 0x4 PUSH2 0x25EC JUMP JUMPDEST PUSH2 0x927 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x2E3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x31B PUSH2 0x34B CALLDATASIZE PUSH1 0x4 PUSH2 0x2678 JUMP JUMPDEST PUSH2 0x936 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP3 ADD MSTORE ADD PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x387 PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x298 JUMP JUMPDEST PUSH2 0x3AD PUSH2 0x3A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2729 JUMP JUMPDEST PUSH2 0x9F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x2796 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x27D8 JUMP JUMPDEST PUSH2 0xAD1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x3F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2832 JUMP JUMPDEST PUSH2 0xB5C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x415 CALLDATASIZE PUSH1 0x4 PUSH2 0x25EC JUMP JUMPDEST PUSH2 0xB6E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x435 CALLDATASIZE PUSH1 0x4 PUSH2 0x27D8 JUMP JUMPDEST PUSH2 0xB78 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x446 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP ADDRESS PUSH2 0x2E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x468 CALLDATASIZE PUSH1 0x4 PUSH2 0x2860 JUMP JUMPDEST PUSH2 0xB98 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28C PUSH2 0x488 CALLDATASIZE PUSH1 0x4 PUSH2 0x2832 JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH2 0x4F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25BE JUMP JUMPDEST PUSH2 0xC3D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x513 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0xC48 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x538 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0xCA5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x552 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0xCED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57E PUSH2 0x576 CALLDATASIZE PUSH1 0x4 PUSH2 0x2832 JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28C PUSH2 0x5B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x28B0 JUMP JUMPDEST PUSH2 0xD01 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0xD16 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x28C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x609 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x618 CALLDATASIZE PUSH1 0x4 PUSH2 0x2924 JUMP JUMPDEST PUSH2 0xD25 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x629 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH4 0x11F0C6D3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP3 ADD MSTORE ADD PUSH2 0x298 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x387 PUSH1 0x2 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x2E3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x695 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A6A JUMP JUMPDEST PUSH2 0xD30 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x6B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B19 JUMP JUMPDEST PUSH2 0xD47 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x538 PUSH2 0x6D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x702 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B75 JUMP JUMPDEST PUSH2 0xD61 JUMP JUMPDEST PUSH2 0x31B PUSH2 0x715 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B19 JUMP JUMPDEST PUSH2 0xF09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x73A PUSH2 0x735 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BD5 JUMP JUMPDEST PUSH2 0x1093 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x2C1B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x753 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B6 PUSH2 0x762 CALLDATASIZE PUSH1 0x4 PUSH2 0x25BE JUMP JUMPDEST PUSH2 0x10FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x773 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x782 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0x1170 JUMP JUMPDEST PUSH2 0x31B PUSH2 0x795 CALLDATASIZE PUSH1 0x4 PUSH2 0x2678 JUMP JUMPDEST PUSH2 0x11F6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x7B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0x1225 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28C PUSH2 0x7D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C32 JUMP JUMPDEST PUSH2 0x127B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31B PUSH2 0x7F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2893 JUMP JUMPDEST PUSH2 0x12A9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x806 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28C PUSH2 0x815 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C60 JUMP JUMPDEST PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x84B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x866 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 DUP1 SLOAD PUSH2 0x87B SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x8A7 SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8F4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8C9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8F4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8D7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x909 DUP3 PUSH2 0x131D JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x866 JUMP JUMPDEST PUSH2 0x932 DUP3 DUP3 CALLER PUSH2 0x1356 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x986 JUMPI PUSH1 0x40 MLOAD PUSH4 0x91AC5E4F PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP8 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x9A0 SWAP1 PUSH2 0x99B SWAP1 DUP11 PUSH2 0x2B5A JUMP JUMPDEST PUSH2 0x1363 JUMP JUMPDEST EQ PUSH2 0x9DE JUMPI PUSH2 0x9B2 PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x309AFAF3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x97D JUMP JUMPDEST PUSH2 0x9ED DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x139F JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9FE PUSH2 0x24E1 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0xA20 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4EC46B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA3B CALLER PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0xA36 PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B5A JUMP JUMPDEST PUSH2 0x14FE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA47 DUP7 PUSH2 0x155E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0xA73 PUSH2 0xA5C PUSH1 0x20 DUP9 ADD DUP9 PUSH2 0x2B5A JUMP JUMPDEST DUP4 DUP4 PUSH2 0xA6D CALLDATASIZE DUP11 SWAP1 SUB DUP11 ADD DUP11 PUSH2 0x2CB0 JUMP JUMPDEST DUP9 PUSH2 0x167C JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP4 POP CALLER SWAP1 PUSH32 0x986156872B2EE0022B9585231DBBFDE457F87F8A16B6C45E1A81C54C4AD8351F PUSH2 0xAA8 PUSH1 0x20 DUP11 ADD DUP11 PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE DUP1 DUP12 ADD CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xAFB JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB08 DUP4 DUP4 CALLER PUSH2 0x1787 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB56 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x97D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xB64 PUSH2 0x1880 JUMP JUMPDEST PUSH2 0x932 DUP3 DUP3 PUSH2 0x18AD JUMP JUMPDEST PUSH2 0x932 DUP3 DUP3 PUSH2 0x1902 JUMP JUMPDEST PUSH2 0xB93 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xD30 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xBBC SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xBE8 SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC35 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC0A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC35 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC18 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x866 DUP3 PUSH2 0x131D JUMP JUMPDEST PUSH2 0xC50 PUSH2 0x1880 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xF0BE4F1E87349231D80C36B33F9E8639658EEAF474014DEE15A3E6A4D4414197 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCF5 PUSH2 0x1880 JUMP JUMPDEST PUSH2 0xCFF PUSH1 0x0 PUSH2 0x1967 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ADDRESS EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x6 DUP1 SLOAD PUSH2 0x87B SWAP1 PUSH2 0x2C7C JUMP JUMPDEST PUSH2 0x932 CALLER DUP4 DUP4 PUSH2 0x19B7 JUMP JUMPDEST PUSH2 0xD3B DUP5 DUP5 DUP5 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0xB56 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0xD4F PUSH2 0x1880 JUMP JUMPDEST PUSH2 0x932 PUSH2 0xD5C DUP3 DUP5 PUSH2 0x2CE2 JUMP JUMPDEST PUSH2 0x1B78 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH2 0xFFFF DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0xD95 SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xDC1 SWAP1 PUSH2 0x2C7C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE0E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDE3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE0E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xDF1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xE5E JUMPI DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP5 POP PUSH2 0xD0E SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SWAP1 SUB PUSH2 0xE6E JUMPI SWAP1 POP PUSH2 0xD0E JUMP JUMPDEST PUSH1 0x2 DUP4 LT PUSH2 0xEEC JUMPI PUSH2 0xEB5 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1C7F SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0xEC3 DUP5 PUSH1 0x2 DUP2 DUP9 PUSH2 0x2DB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xED5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DE1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP PUSH2 0xD0E JUMP JUMPDEST DUP4 DUP4 PUSH1 0x40 MLOAD PUSH4 0x9A6D49CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97D SWAP3 SWAP2 SWAP1 PUSH2 0x2E32 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1012 JUMPI CALLDATASIZE DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0xF27 JUMPI PUSH2 0xF27 PUSH2 0x2E46 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xF39 SWAP2 SWAP1 PUSH2 0x2E5C JUMP JUMPDEST SWAP1 POP PUSH2 0xF6C PUSH2 0xF4B PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH4 0xFFFFFFFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST PUSH2 0xF76 JUMPI POP PUSH2 0x100A JUMP JUMPDEST ADDRESS PUSH4 0xD045A0DC PUSH1 0xC0 DUP4 ADD CALLDATALOAD DUP4 PUSH1 0xA0 DUP2 ADD CALLDATALOAD PUSH2 0xF95 PUSH2 0x100 DUP4 ADD DUP4 PUSH2 0x2E7D JUMP JUMPDEST PUSH2 0xFA6 PUSH2 0x100 DUP10 ADD PUSH1 0xE0 DUP11 ADD PUSH2 0x2893 JUMP JUMPDEST PUSH2 0xFB4 PUSH2 0x120 DUP11 ADD DUP11 PUSH2 0x2E7D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP10 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFD6 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2ED8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1003 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0xF0C JUMP JUMPDEST POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8E9E7099 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1051 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1079 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8351EEA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97D SWAP2 SWAP1 PUSH2 0x25AB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x10C9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4EC46B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10D5 DUP6 PUSH2 0x155E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x10F2 PUSH2 0x10EA PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x2B5A JUMP JUMPDEST DUP4 DUP4 DUP8 PUSH2 0x1CAB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1106 DUP3 PUSH2 0x131D JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x111E PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x113E JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1169 JUMP JUMPDEST DUP1 PUSH2 0x1148 DUP5 PUSH2 0x1D83 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1159 SWAP3 SWAP2 SWAP1 PUSH2 0x2FCB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1178 PUSH2 0x1880 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCA5EB5E1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xCA5EB5E1 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1216 JUMPI PUSH1 0x40 MLOAD PUSH4 0x29A949D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9ED DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x9DE JUMP JUMPDEST PUSH2 0x122D PUSH2 0x1880 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xD48D879CEF83A1C0BDDA516F27B13DDB1B3F8BBAC1C9E1511BB2A659C2427760 SWAP1 PUSH1 0x20 ADD PUSH2 0xC9A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x12B1 PUSH2 0x1880 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12DB JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH2 0x12E4 DUP2 PUSH2 0x1967 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH2 0x12FF SWAP1 DUP7 PUSH2 0x2B5A JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x866 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH2 0xB93 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1E15 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x866 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF6FF4FB7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13B1 PUSH2 0x13AE DUP8 DUP8 PUSH2 0x1F1B JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13BF DUP8 DUP8 PUSH2 0x1F33 JUMP JUMPDEST SWAP1 POP PUSH2 0x13D8 DUP3 DUP3 PUSH2 0x13D3 PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B5A JUMP JUMPDEST PUSH2 0x1F50 JUMP JUMPDEST PUSH1 0x40 DUP7 GT ISZERO PUSH2 0x149C JUMPI PUSH1 0x0 PUSH2 0x1412 PUSH2 0x13F6 PUSH1 0x60 DUP13 ADD PUSH1 0x40 DUP14 ADD PUSH2 0x2FFA JUMP JUMPDEST PUSH2 0x1403 PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B5A JUMP JUMPDEST PUSH2 0x140D DUP12 DUP12 PUSH2 0x1F5A JUMP JUMPDEST PUSH2 0x1FA5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3E5AC809 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7CB59012 SWAP1 PUSH2 0x1468 SWAP1 DUP7 SWAP1 DUP14 SWAP1 PUSH1 0x0 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1496 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP9 PUSH32 0x7883FA30EA56937810E36990B0BBB8D629D0CF59F68BAF8431FF657CEBE7EEF5 PUSH2 0x14D5 PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0x2B5A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP7 SWAP1 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1507 DUP3 PUSH2 0xC3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1555 JUMPI DUP3 PUSH2 0x1529 DUP4 PUSH2 0xC3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4342715B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x97D JUMP JUMPDEST PUSH2 0xB93 DUP3 PUSH2 0x1FD4 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 PUSH2 0x15B7 PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x157D PUSH1 0x80 DUP9 ADD DUP9 PUSH2 0x2E7D JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x200F SWAP3 POP POP POP JUMP JUMPDEST SWAP1 SWAP4 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x15CA JUMPI PUSH1 0x1 PUSH2 0x15CD JUMP JUMPDEST PUSH1 0x2 JUMPDEST SWAP1 POP PUSH2 0x15ED PUSH2 0x15DF PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x2B5A JUMP JUMPDEST DUP3 PUSH2 0x702 PUSH1 0x60 DUP10 ADD DUP10 PUSH2 0x2E7D JUMP JUMPDEST PUSH1 0x4 SLOAD SWAP1 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1675 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x43A78EB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x43A78EB SWAP2 PUSH2 0x1632 SWAP2 DUP9 SWAP2 DUP9 SWAP2 ADD PUSH2 0x3048 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x164F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1673 SWAP2 SWAP1 PUSH2 0x306D JUMP JUMPDEST POP JUMPDEST POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH2 0x1684 PUSH2 0x24E1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1693 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2074 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x16AD JUMPI PUSH2 0x16AD DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x209C JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2637A450 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP12 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16FD DUP13 PUSH2 0x1363 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP10 PUSH1 0x20 ADD MLOAD GT ISZERO ISZERO DUP2 MSTORE POP DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1739 SWAP3 SWAP2 SWAP1 PUSH2 0x308A JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x177C SWAP2 SWAP1 PUSH2 0x3133 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x17B4 JUMPI PUSH2 0x17B4 DUP2 DUP5 DUP7 PUSH2 0x217E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x17F2 JUMPI PUSH2 0x17D1 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1E15 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x1821 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xCFF JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x238399D427B947898EDB290F5FF0F9109849B1C3BA196A42E35F00C50A54B98B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x192C JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x193A DUP4 DUP4 PUSH1 0x0 PUSH2 0x1787 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0xB93 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x19E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0xB56 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x1A98 SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x317D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1AD3 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1AD0 SWAP2 DUP2 ADD SWAP1 PUSH2 0x31B0 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1B3C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1B01 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1B06 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1B34 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x11EF JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x1C4F JUMPI PUSH2 0x1BAA DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1B99 JUMPI PUSH2 0x1B99 PUSH2 0x2E46 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH2 0x1C7F JUMP JUMPDEST DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1BBC JUMPI PUSH2 0x1BBC PUSH2 0x2E46 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x3 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1BDE JUMPI PUSH2 0x1BDE PUSH2 0x2E46 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH4 0xFFFFFFFF AND PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1C18 JUMPI PUSH2 0x1C18 PUSH2 0x2E46 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x1C46 SWAP2 SWAP1 PUSH2 0x321D JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1B7B JUMP JUMPDEST POP PUSH32 0xBE4864A8E820971C0247F5992E2DA559595F7BF076A21CB5928D443D2A13B674 DUP2 PUSH1 0x40 MLOAD PUSH2 0xC9A SWAP2 SWAP1 PUSH2 0x32DC JUMP JUMPDEST PUSH1 0x2 DUP2 ADD MLOAD PUSH2 0xFFFF DUP2 AND PUSH1 0x3 EQ PUSH2 0x932 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH4 0x9A6D49CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x97D SWAP2 SWAP1 PUSH2 0x25AB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDDC28C58 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1D0E DUP10 PUSH2 0x1363 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 ISZERO ISZERO DUP2 MSTORE POP ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D43 SWAP3 SWAP2 SWAP1 PUSH2 0x308A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10F2 SWAP2 SWAP1 PUSH2 0x3367 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1D90 DUP4 PUSH2 0x21E2 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1DAF JUMPI PUSH2 0x1DAF PUSH2 0x295D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1DD9 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x1DE3 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH2 0x1E29 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x1EEB JUMPI PUSH1 0x0 PUSH2 0x1E39 DUP5 PUSH2 0x131D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1E65 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1E78 JUMPI POP PUSH2 0x1E76 DUP2 DUP5 PUSH2 0x127B JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1EA1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1EE9 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F2A PUSH1 0x20 DUP3 DUP5 DUP7 PUSH2 0x2DB7 JUMP JUMPDEST PUSH2 0x1169 SWAP2 PUSH2 0x3383 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F43 PUSH1 0x40 PUSH1 0x20 DUP5 DUP7 PUSH2 0x2DB7 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x1169 SWAP2 SWAP1 PUSH2 0x25BE JUMP JUMPDEST PUSH2 0xB93 DUP4 DUP4 PUSH2 0x1902 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1F69 DUP3 PUSH1 0x40 DUP2 DUP7 PUSH2 0x2DB7 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1FBC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FE3 PUSH1 0x0 DUP4 PUSH1 0x0 PUSH2 0x1787 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x932 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 SWAP1 ISZERO ISZERO DUP1 PUSH2 0x2043 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x206A JUMP JUMPDEST DUP5 DUP5 CALLER DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x205A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x33EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLVALUE EQ PUSH2 0x2098 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4FB8209 PUSH1 0xE5 SHL DUP2 MSTORE CALLVALUE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE4FE1D94 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2120 SWAP2 SWAP1 PUSH2 0x341F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2149 JUMPI PUSH1 0x40 MLOAD PUSH4 0x29B99A95 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x932 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND CALLER PUSH32 0x0 DUP6 PUSH2 0x22BA JUMP JUMPDEST PUSH2 0x2189 DUP4 DUP4 DUP4 PUSH2 0x2314 JUMP JUMPDEST PUSH2 0xB93 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x21B7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x2221 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x224D JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x226B JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x2283 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x2297 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x22A9 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x866 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH2 0xB56 SWAP1 DUP6 SWAP1 PUSH2 0x2377 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xD0E JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x234E JUMPI POP PUSH2 0x234E DUP5 DUP5 PUSH2 0x127B JUMP JUMPDEST DUP1 PUSH2 0xD0E JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238C PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP4 PUSH2 0x23DA JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ ISZERO DUP1 ISZERO PUSH2 0x23B1 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x23AF SWAP2 SWAP1 PUSH2 0x306D JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB93 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5274AFE7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1169 DUP4 DUP4 PUSH1 0x0 DUP5 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2400 SWAP2 SWAP1 PUSH2 0x343C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x243D JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2442 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2452 DUP7 DUP4 DUP4 PUSH2 0x245C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x2471 JUMPI PUSH2 0x246C DUP3 PUSH2 0x24B8 JUMP JUMPDEST PUSH2 0x1169 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x2488 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x24B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x97D JUMP JUMPDEST POP DUP1 PUSH2 0x1169 JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x24C8 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2523 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x12E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2550 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1169 DUP2 PUSH2 0x2528 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2576 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x255E JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2597 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x255B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1169 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x257F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x12E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x260A DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x262A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2642 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2659 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x269D DUP10 DUP10 PUSH2 0x2618 JUMP JUMPDEST SWAP7 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x26C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26CC DUP12 DUP4 DUP13 ADD PUSH2 0x2630 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x26E1 DUP3 PUSH2 0x25D7 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x26F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2704 DUP11 DUP3 DUP12 ADD PUSH2 0x2630 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x262A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP6 SUB PUSH1 0x80 DUP2 SLT ISZERO PUSH2 0x273F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2755 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2761 DUP8 DUP3 DUP9 ADD PUSH2 0x2717 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x2776 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 DUP5 ADD SWAP2 POP PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x278B DUP2 PUSH2 0x25D7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x27D1 PUSH1 0x40 DUP5 ADD DUP3 DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x27ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x27F8 DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2808 DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x282D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2845 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x260A DUP4 PUSH2 0x2819 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x282D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2873 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x287C DUP4 PUSH2 0x2819 JUMP JUMPDEST SWAP2 POP PUSH2 0x288A PUSH1 0x20 DUP5 ADD PUSH2 0x284E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1169 DUP2 PUSH2 0x25D7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x28C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28D0 DUP7 DUP7 PUSH2 0x2618 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x28EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F7 DUP8 DUP3 DUP9 ADD PUSH2 0x2630 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x80 DUP6 ADD CALLDATALOAD PUSH2 0x290B DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x12E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2937 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2942 DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2952 DUP2 PUSH2 0x2916 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2995 JUMPI PUSH2 0x2995 PUSH2 0x295D JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2995 JUMPI PUSH2 0x2995 PUSH2 0x295D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x29E5 JUMPI PUSH2 0x29E5 PUSH2 0x295D JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2A06 JUMPI PUSH2 0x2A06 PUSH2 0x295D JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A38 PUSH2 0x2A33 DUP3 PUSH2 0x29ED JUMP JUMPDEST PUSH2 0x29BD JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2A4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2A80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2A8B DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2A9B DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2ABD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AC9 DUP8 DUP3 DUP9 ADD PUSH2 0x2A14 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2AE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B4E DUP6 DUP3 DUP7 ADD PUSH2 0x2AD5 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1169 DUP3 PUSH2 0x2819 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2B8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B94 DUP6 PUSH2 0x2819 JUMP JUMPDEST SWAP4 POP PUSH2 0x2BA2 PUSH1 0x20 DUP7 ADD PUSH2 0x284E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2BBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2BC9 DUP8 DUP3 DUP9 ADD PUSH2 0x2630 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2BFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C0A DUP6 DUP3 DUP7 ADD PUSH2 0x2717 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2952 DUP2 PUSH2 0x2916 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0x866 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2C50 DUP2 PUSH2 0x25D7 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2952 DUP2 PUSH2 0x25D7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1169 DUP4 DUP4 PUSH2 0x2618 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2C90 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x262A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CCA PUSH2 0x2973 JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP5 GT ISZERO PUSH2 0x2CFC JUMPI PUSH2 0x2CFC PUSH2 0x295D JUMP JUMPDEST DUP4 PUSH1 0x5 SHL PUSH1 0x20 PUSH2 0x2D0D DUP2 DUP4 ADD PUSH2 0x29BD JUMP JUMPDEST DUP7 DUP2 MSTORE SWAP2 DUP6 ADD SWAP2 DUP2 DUP2 ADD SWAP1 CALLDATASIZE DUP5 GT ISZERO PUSH2 0x2D25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2DAB JUMPI DUP1 CALLDATALOAD DUP7 DUP2 GT ISZERO PUSH2 0x2D3F JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP9 ADD PUSH1 0x60 CALLDATASIZE DUP3 SWAP1 SUB SLT ISZERO PUSH2 0x2D53 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2D5B PUSH2 0x299B JUMP JUMPDEST PUSH2 0x2D64 DUP3 PUSH2 0x2819 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x2D71 DUP7 DUP4 ADD PUSH2 0x284E JUMP JUMPDEST DUP7 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD CALLDATALOAD DUP10 DUP2 GT ISZERO PUSH2 0x2D89 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2D95 CALLDATASIZE DUP3 DUP7 ADD PUSH2 0x2A14 JUMP JUMPDEST SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2D27 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x2DC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x2DD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP5 MLOAD PUSH2 0x2DF3 DUP2 DUP5 PUSH1 0x20 DUP10 ADD PUSH2 0x255B JUMP JUMPDEST DUP3 ADD DUP4 DUP6 DUP3 CALLDATACOPY PUSH1 0x0 SWAP4 ADD SWAP3 DUP4 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD0E PUSH1 0x20 DUP4 ADD DUP5 DUP7 PUSH2 0x2E09 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH2 0x13E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2E73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2E94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2EAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x12E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF PUSH2 0x2EE6 DUP10 PUSH2 0x2819 JUMP JUMPDEST AND DUP2 MSTORE PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH2 0x2F03 DUP2 PUSH2 0x2EC3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH1 0x40 DUP5 ADD MSTORE POP DUP8 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0xE0 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2F2E PUSH1 0xE0 DUP4 ADD DUP8 DUP10 PUSH2 0x2E09 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0xA0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xC0 DUP5 ADD MSTORE PUSH2 0x2F50 DUP2 DUP6 DUP8 PUSH2 0x2E09 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2F97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2FA5 PUSH2 0x2A33 DUP3 PUSH2 0x29ED JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2FBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10F2 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x255B JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x2FDD DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x255B JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x2FF1 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x255B JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x300C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1169 DUP2 PUSH2 0x2EC3 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xFFFF DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2452 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x257F JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x305B PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x257F JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x10F2 DUP2 DUP6 PUSH2 0x257F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x307F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1169 DUP2 PUSH2 0x2916 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH4 0xFFFFFFFF DUP4 MLOAD AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0xA0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x30C0 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x257F JUMP JUMPDEST SWAP1 POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x30DD DUP3 DUP3 PUSH2 0x257F JUMP JUMPDEST PUSH1 0x80 SWAP7 SWAP1 SWAP7 ADD MLOAD ISZERO ISZERO PUSH1 0xC0 DUP6 ADD MSTORE POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3115 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x311D PUSH2 0x2973 JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3145 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x314D PUSH2 0x299B JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x315F DUP2 PUSH2 0x2EC3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x3171 DUP5 PUSH1 0x40 DUP6 ADD PUSH2 0x3103 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2452 SWAP1 DUP4 ADD DUP5 PUSH2 0x257F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1169 DUP2 PUSH2 0x2528 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xB93 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x31F6 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3215 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3202 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3236 JUMPI PUSH2 0x3236 PUSH2 0x295D JUMP JUMPDEST PUSH2 0x324A DUP2 PUSH2 0x3244 DUP5 SLOAD PUSH2 0x2C7C JUMP JUMPDEST DUP5 PUSH2 0x31CD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x327F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3267 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x3215 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x32AE JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x328F JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x32CC JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP2 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 SWAP3 POP PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD DUP5 DUP9 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3359 JUMPI DUP9 DUP4 SUB PUSH1 0x3F NOT ADD DUP6 MSTORE DUP2 MLOAD DUP1 MLOAD PUSH4 0xFFFFFFFF AND DUP5 MSTORE DUP8 DUP2 ADD MLOAD PUSH2 0xFFFF AND DUP9 DUP6 ADD MSTORE DUP7 ADD MLOAD PUSH1 0x60 DUP8 DUP6 ADD DUP2 SWAP1 MSTORE PUSH2 0x3345 DUP2 DUP7 ADD DUP4 PUSH2 0x257F JUMP JUMPDEST SWAP7 DUP10 ADD SWAP7 SWAP5 POP POP POP SWAP1 DUP7 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3305 JUMP JUMPDEST POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3379 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1169 DUP4 DUP4 PUSH2 0x3103 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x20 DUP4 LT ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 NOT PUSH1 0x20 DUP5 SWAP1 SUB PUSH1 0x3 SHL SHL AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP5 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x8 DUP3 ADD MSTORE DUP2 MLOAD PUSH1 0x0 SWAP1 PUSH2 0x33DC DUP2 PUSH1 0xC DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x255B JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0xC ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x340F DUP2 PUSH1 0x60 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x255B JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0x60 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3431 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1169 DUP2 PUSH2 0x25D7 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2E73 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x255B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xD9 0xE0 0x49 SIGNEXTEND PUSH6 0x660A264F1838 LOG2 DUP11 PUSH29 0x9B2643E0A7034D006E204AF0872D53709164736F6C6343000816003300 ","sourceMap":"163:323:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1561:300:38;;;;;;;;;;-1:-1:-1;1561:300:38;;;;;:::i;:::-;;:::i;:::-;;;565:14:53;;558:22;540:41;;528:2;513:18;1561:300:38;;;;;;;;2365:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3497:154::-;;;;;;;;;;-1:-1:-1;3497:154:38;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:53;;;1679:51;;1667:2;1652:18;3497:154:38;1533:203:53;3323:113:38;;;;;;;;;;-1:-1:-1;3323:113:38;;;;;:::i;:::-;;:::i;:::-;;1705:27:30;;;;;;;;;;-1:-1:-1;1705:27:30;;;;-1:-1:-1;;;;;1705:27:30;;;4368:708:3;;;;;;:::i;:::-;;:::i;1287:235:1:-;;;;;;;;;;-1:-1:-1;1287:235:1;;;843:1:4;3968:34:53;;678:1:3;4033:2:53;4018:18;;4011:43;3904:18;1287:235:1;3761:299:53;1539:31:30;;;;;;;;;;;;1569:1;1539:31;;;;;4239:6:53;4227:19;;;4209:38;;4197:2;4182:18;1539:31:30;4065:188:53;3051:701:30;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4143:578:38:-;;;;;;;;;;-1:-1:-1;4143:578:38;;;;;:::i;:::-;;:::i;1724:108:2:-;;;;;;;;;;-1:-1:-1;1724:108:2;;;;;:::i;:::-;;:::i;397:87:51:-;;;;;;;;;;-1:-1:-1;397:87:51;;;;;:::i;:::-;;:::i;4787:132:38:-;;;;;;;;;;-1:-1:-1;4787:132:38;;;;;:::i;:::-;;:::i;875:93:11:-;;;;;;;;;;-1:-1:-1;956:4:11;875:93;;538::9;;;;;;;;;;-1:-1:-1;538:93:9;;;;;:::i;:::-;;:::i;7452:132:30:-;;;;;;;;;;-1:-1:-1;7452:132:30;;;;;:::i;:::-;7557:11;;;;;7534:4;7557:11;;;:5;:11;;;;;;:20;;7452:132;446:46:2;;;;;;;;;;;;;;;2185:118:38;;;;;;;;;;-1:-1:-1;2185:118:38;;;;;:::i;:::-;;:::i;7916:163:30:-;;;;;;;;;;-1:-1:-1;7916:163:30;;;;;:::i;:::-;;:::i;1920:208:38:-;;;;;;;;;;-1:-1:-1;1920:208:38;;;;;:::i;:::-;;:::i;:::-;;;7884:25:53;;;7872:2;7857:18;1920:208:38;7738:177:53;2293:101:33;;;;;;;;;;;;;:::i;3507:128:3:-;;;;;;;;;;-1:-1:-1;3507:128:3;;;;;:::i;:::-;3596:12;3507:128;;;;;;;;-1:-1:-1;;;;;8082:31:53;;;8064:50;;8052:2;8037:18;3507:128:3;7920:200:53;2013:216:3;;;;;;;;;;-1:-1:-1;2013:216:3;;;;;:::i;:::-;;:::i;1638:85:33:-;;;;;;;;;;-1:-1:-1;1684:7:33;1710:6;-1:-1:-1;;;;;1710:6:33;1638:85;;2518:93:38;;;;;;;;;;;;;:::i;1344:94:29:-;;;;;;;;;;-1:-1:-1;1403:4:29;1344:94;;3718:144:38;;;;;;;;;;-1:-1:-1;3718:144:38;;;;;:::i;:::-;;:::i;2506:145:30:-;;;;;;;;;;-1:-1:-1;2506:145:30;;;-1:-1:-1;;;9480:52:53;;2642:1:30;9563:2:53;9548:18;;9541:59;9453:18;2506:145:30;9310:296:53;1576:43:30;;;;;;;;;;;;1618:1;1576:43;;559:23:11;;;;;;;;;;-1:-1:-1;559:23:11;;;;-1:-1:-1;;;;;559:23:11;;;4985:208:38;;;;;;;;;;-1:-1:-1;4985:208:38;;;;;:::i;:::-;;:::i;1391:156:9:-;;;;;;;;;;-1:-1:-1;1391:156:9;;;;;:::i;:::-;;:::i;569:48:2:-;;;;;;;;;;-1:-1:-1;569:48:2;;;;;:::i;:::-;;;;;;;;;;;;;;3510:981:9;;;;;;;;;;-1:-1:-1;3510:981:9;;;;;:::i;:::-;;:::i;1698:1333:11:-;;;;;;:::i;:::-;;:::i;2657:388:30:-;;;;;;;;;;-1:-1:-1;2657:388:30;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2677:255:38:-;;;;;;;;;;-1:-1:-1;2677:255:38;;;;;:::i;:::-;;:::i;3252:105:2:-;;;;;;;;;;-1:-1:-1;3252:105:2;;;;;:::i;:::-;;:::i;3679:409:11:-;;;;;;:::i;:::-;;:::i;1100:139::-;;;;;;;;;;-1:-1:-1;1100:139:11;;;;;:::i;:::-;;:::i;3928:153:38:-;;;;;;;;;;-1:-1:-1;3928:153:38;;;;;:::i;:::-;;:::i;2543:215:33:-;;;;;;;;;;-1:-1:-1;2543:215:33;;;;;:::i;:::-;;:::i;2771:149:3:-;;;;;;;;;;-1:-1:-1;2771:149:3;;;;;:::i;:::-;;:::i;1561:300:38:-;1663:4;-1:-1:-1;;;;;;1698:40:38;;-1:-1:-1;;;1698:40:38;;:104;;-1:-1:-1;;;;;;;1754:48:38;;-1:-1:-1;;;1754:48:38;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:45;;;1818:36:38;1679:175;1561:300;-1:-1:-1;;1561:300:38:o;2365:89::-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:38;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:38;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:43;3394:8:38;:35::i;:::-;3323:113;;:::o;4368:708:3:-;4681:8;-1:-1:-1;;;;;4673:31:3;4694:10;4673:31;4669:68;;4713:24;;-1:-1:-1;;;4713:24:3;;4726:10;4713:24;;;1679:51:53;1652:18;;4713:24:3;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;-1:-1:-1;;;4896:40:3;;16187:10:53;16175:23;;;4896:40:3;;;16157:42:53;4921:14:3;;;;16215:18:53;;;16208:34;16130:18;;4896:40:3;15985:263:53;4833:103:3;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;3051:701:30:-;3212:34;;:::i;:::-;3262:13;;;;3258:57;;3298:17;;-1:-1:-1;;;3298:17:30;;;;;;;;;;;3258:57;3325;3332:10;3344:18;;;;3364:17;;;;3344:10;3364:17;:::i;:::-;3325:6;:57::i;:::-;3394:20;3416;3440:31;3460:10;3440:19;:31::i;:::-;3393:78;;-1:-1:-1;3393:78:30;-1:-1:-1;3588:66:30;3596:17;;;;:10;:17;:::i;:::-;3615:7;3624;3588:66;;;;;;;3633:4;3588:66;:::i;:::-;3639:14;3588:7;:66::i;:::-;3678:15;;3575:79;;-1:-1:-1;3714:10:30;;3669:76;3695:17;;;;:10;:17;:::i;:::-;3726:18;3669:76;;16187:10:53;16175:23;;;16157:42;;3726:18:30;;;;16230:2:53;16215:18;;16208:34;16130:18;3669:76:30;;;;;;;3248:504;;3051:701;;;;;:::o;4143:578:38:-;-1:-1:-1;;;;;4237:16:38;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:38;;4306:1;4276:33;;;1679:51:53;1652:18;;4276:33:38;1533:203:53;4233:87:38;4538:21;4562:34;4570:2;4574:7;735:10:43;4562:7:38;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:38;:13;-1:-1:-1;;;;;4610:21:38;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:38;;-1:-1:-1;;;;;17132:15:53;;;4654:50:38;;;17114:34:53;17164:18;;;17157:34;;;17227:15;;17207:18;;;17200:43;17049:18;;4654:50:38;16874:375:53;4606:109:38;4223:498;4143:578;;;:::o;1724:108:2:-;1531:13:33;:11;:13::i;:::-;1804:21:2::1;1813:4;1819:5;1804:8;:21::i;397:87:51:-:0;458:19;464:3;469:7;458:5;:19::i;4787:132:38:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;538:93:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2185:118:38:-;2248:7;2274:22;2288:7;2274:13;:22::i;7916:163:30:-;1531:13:33;:11;:13::i;:::-;7999:12:30::1;:28:::0;;-1:-1:-1;;;;;;7999:28:30::1;-1:-1:-1::0;;;;;7999:28:30;::::1;::::0;;::::1;::::0;;;8042:30:::1;::::0;1679:51:53;;;8042:30:30::1;::::0;1667:2:53;1652:18;8042:30:30::1;;;;;;;;7916:163:::0;:::o;1920:208:38:-;1983:7;-1:-1:-1;;;;;2006:19:38;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:38;;2075:1;2048:30;;;1679:51:53;1652:18;;2048:30:38;1533:203:53;2002:87:38;-1:-1:-1;;;;;;2105:16:38;;;;;:9;:16;;;;;;;1920:208::o;2293:101:33:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2013:216:3:-;-1:-1:-1;;;;;2198:24:3;;2217:4;2198:24;2013:216;;;;;;;:::o;2518:93:38:-;2565:13;2597:7;2590:14;;;;;:::i;3718:144::-;3803:52;735:10:43;3836:8:38;3846;3803:18;:52::i;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;1391:156:9:-;1531:13:33;:11;:13::i;:::-;1503:37:9::1;;1523:16:::0;;1503:37:::1;:::i;:::-;:19;:37::i;3510:981::-:0;3701:21;;;3677;3701;;;:15;:21;;;;;;;;:31;;;;;;;;;;3677:55;;3653:12;;3677:21;3701:31;3677:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:8;:15;3880:1;3861:20;3857:46;;3890:13;;3883:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:20:9;;-1:-1:-1;3883:20:9;;-1:-1:-1;;;;3883:20:9;3857:46;3988:1;3964:25;;;3960:46;;3998:8;-1:-1:-1;3991:15:9;;3960:46;4153:1;4129:25;;4125:267;;4170:34;4190:13;;4170:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4170:19:9;;-1:-1:-1;;;4170:34:9:i;:::-;4353:8;4363:17;:13;4377:1;4363:13;;:17;:::i;:::-;4340:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:48;;;;;4125:267;4470:13;;4455:29;;-1:-1:-1;;;4455:29:9;;;;;;;;;:::i;1698:1333:11:-;1799:9;1794:1037;1814:19;;;1794:1037;;;1854:29;1886:8;;1895:1;1886:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1854:43;-1:-1:-1;1980:50:11;1987:20;;;;1854:43;1987:20;:::i;:::-;2009;;;;7557:11:30;;;;;7534:4;7557:11;;;:5;:11;;;;;;:20;;7452:132;1980:50:11;1975:65;;2032:8;;;1975:65;2602:4;:22;2633:12;;;;:6;2696:11;;;;2725:14;;;;2633:6;2725:14;:::i;:::-;2757:15;;;;;;;;:::i;:::-;2790:16;;;;:6;:16;:::i;:::-;2602:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:991;1794:1037;1835:3;;1794:1037;;;;2988:10;-1:-1:-1;;;;;2978:43:11;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2978:45:11;;;;;;;;;;;;:::i;:::-;2961:63;;-1:-1:-1;;;2961:63:11;;;;;;;;:::i;2657:388:30:-;-1:-1:-1;;;;;;;;;;;;;;;;;2822:13:30;;;;2818:57;;2858:17;;-1:-1:-1;;;2858:17:30;;;;;;;;;;;2818:57;2886:20;2908;2932:31;2952:10;2932:19;:31::i;:::-;2885:78;;-1:-1:-1;2885:78:30;-1:-1:-1;2980:58:30;2987:17;;;;:10;:17;:::i;:::-;3006:7;3015;3024:13;2980:6;:58::i;:::-;2973:65;2657:388;-1:-1:-1;;;;;2657:388:30:o;2677:255:38:-;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;3250:9;;;;;;;;;-1:-1:-1;3250:9:38;;;3174:92;2823:10;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;2677:255;-1:-1:-1;;;2677:255:38:o;3252:105:2:-;1531:13:33;:11;:13::i;:::-;3319:31:2::1;::::0;-1:-1:-1;;;3319:31:2;;-1:-1:-1;;;;;1697:32:53;;;3319:31:2::1;::::0;::::1;1679:51:53::0;3319:8:2::1;:20;::::0;::::1;::::0;1652:18:53;;3319:31:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;3679:409:11:-;3958:10;3980:4;3958:27;3954:50;;3994:10;;-1:-1:-1;;;3994:10:11;;;;;;;;;;;3954:50;4014:67;4033:7;4042:5;4049:8;;4059:9;4070:10;;4014:18;:67::i;1100:139::-;1531:13:33;:11;:13::i;:::-;1175:8:11::1;:20:::0;;-1:-1:-1;;;;;;1175:20:11::1;-1:-1:-1::0;;;;;1175:20:11;::::1;::::0;;::::1;::::0;;;1210:22:::1;::::0;1679:51:53;;;1210:22:11::1;::::0;1667:2:53;1652:18;1210:22:11::1;1533:203:53::0;3928:153:38;-1:-1:-1;;;;;4039:25:38;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;2543:215:33:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:33;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:33;;2700:1:::1;2672:31;::::0;::::1;1679:51:53::0;1652:18;;2672:31:33::1;1533:203:53::0;2623:91:33::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2771:149:3:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:3;;:37;;2771:149;-1:-1:-1;;2771:149:3:o;16138:241:38:-;16201:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:38;;16263:88;;16309:31;;-1:-1:-1;;;16309:31:38;;;;;7884:25:53;;;7857:18;;16309:31:38;7738:177:53;14418:120:38;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;2718:196:2:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;-1:-1:-1;;;2874:12:2;;23623:10:53;23611:23;;2874:12:2;;;23593:42:53;23566:18;;2874:12:2;23449:192:53;5264:817:30;5577:17;5597:36;:17;:8;;:15;:17::i;:::-;2954:2:32;2824:142;5597:36:30;5577:56;;5643:15;5661:18;:8;;:16;:18::i;:::-;5643:36;-1:-1:-1;5690:43:30;5698:9;5643:36;5718:14;;;;:7;:14;:::i;:::-;5690:7;:43::i;:::-;279:2:32;-1:-1:-1;;5744:260:30;;;5785:23;5811:80;5838:13;;;;;;;;:::i;:::-;5853:14;;;;:7;:14;:::i;:::-;5869:21;:8;;:19;:21::i;:::-;5811:26;:80::i;:::-;5905:88;;-1:-1:-1;;;5905:88:30;;5785:106;;-1:-1:-1;;;;;;5905:8:30;:20;;;;:88;;5926:9;;5937:5;;5944:1;;5785:106;;5905:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:233;5744:260;-1:-1:-1;;;;;6019:55:30;;6032:5;6019:55;6039:14;;;;:7;:14;:::i;:::-;6019:55;;;16187:10:53;16175:23;;;16157:42;;16230:2;16215:18;;16208:34;;;16130:18;6019:55:30;;;;;;;5567:514;;5264:817;;;;;;;:::o;1444:228:29:-;1562:24;1577:8;1562:14;:24::i;:::-;-1:-1:-1;;;;;1553:33:29;:5;-1:-1:-1;;;;;1553:33:29;;1549:91;;1608:5;1615:24;1630:8;1615:14;:24::i;:::-;1595:45;;-1:-1:-1;;;1595:45:29;;-1:-1:-1;;;;;24610:15:53;;;1595:45:29;;;24592:34:53;24662:15;;24642:18;;;24635:43;24527:18;;1595:45:29;24380:304:53;1549:91:29;1650:15;1656:8;1650:5;:15::i;3980:773:30:-;4085:20;;4139:15;4188:80;4211:13;;;;4226:18;;;;4246:21;;;;4211:10;4246:21;:::i;:::-;4188:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4188:22:30;;-1:-1:-1;;;4188:80:30:i;:::-;4164:104;;-1:-1:-1;4164:104:30;-1:-1:-1;4278:14:30;4164:104;4295:36;;1569:1;4295:36;;;1618:1;4295:36;4278:53;-1:-1:-1;4352:67:30;4367:17;;;;:10;:17;:::i;:::-;4386:7;4395:23;;;;:10;:23;:::i;4352:67::-;4661:12;;4342:77;;-1:-1:-1;;;;;;4661:12:30;:26;4657:89;;4707:12;;;4689:57;;-1:-1:-1;;;4689:57:30;;-1:-1:-1;;;;;4707:12:30;;;;4689:39;;:57;;4729:7;;4738;;4689:57;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4657:89;4129:624;;3980:773;;;:::o;3188:766:4:-;3389:31;;:::i;:::-;3554:20;3577:26;3588:4;:14;;;3577:10;:26::i;:::-;3617:15;;;;3554:49;;-1:-1:-1;3617:19:4;3613:53;;3638:28;3650:4;:15;;;3638:11;:28::i;:::-;3755:8;-1:-1:-1;;;;;3755:13:4;;3777:12;3809:92;;;;;;;;3825:7;3809:92;;;;;;3834:25;3851:7;3834:16;:25::i;:::-;3809:92;;;;3861:8;3809:92;;;;3871:8;3809:92;;;;3899:1;3881:4;:15;;;:19;3809:92;;;;;3919:14;3755:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3677:270;3188:766;-1:-1:-1;;;;;;;3188:766:4:o;8838:795:38:-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:38;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:38;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:38;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:38;;;9157:256;-1:-1:-1;;;;;9427:16:38;;;9423:107;;-1:-1:-1;;;;;9487:13:38;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:38;-1:-1:-1;;;;;9540:21:38;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:38:o;1796:162:33:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:33;735:10:43;1855:23:33;1851:101;;1901:40;;-1:-1:-1;;;1901:40:33;;735:10:43;1901:40:33;;;1679:51:53;1652:18;;1901:40:33;1533:203:53;2286:134:2;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;16157:42:53;;;16215:18;;16208:34;;;2393:20:2;;16130:18:53;2393:20:2;;;;;;;2286:134;;:::o;9955:327:38:-;-1:-1:-1;;;;;10022:16:38;;10018:87;;10061:33;;-1:-1:-1;;;10061:33:38;;10091:1;10061:33;;;1679:51:53;1652:18;;10061:33:38;1533:203:53;10018:87:38;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;-1:-1:-1;;;;;;10184:27:38;;;10180:96;;10234:31;;-1:-1:-1;;;10234:31:38;;10262:1;10234:31;;;1679:51:53;1652:18;;10234:31:38;1533:203:53;2912:187:33;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:33;;;-1:-1:-1;;;;;;3020:17:33;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;15591:312:38:-;-1:-1:-1;;;;;15698:22:38;;15694:91;;15743:31;;-1:-1:-1;;;15743:31:38;;-1:-1:-1;;;;;1697:32:53;;15743:31:38;;;1679:51:53;1652:18;;15743:31:38;1533:203:53;15694:91:38;-1:-1:-1;;;;;15794:25:38;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15794:46:38;;;;;;;;;;15855:41;;540::53;;;15855::38;;513:18:53;15855:41:38;;;;;;;15591:312;;;:::o;16918:782::-;-1:-1:-1;;;;;17034:14:38;;;:18;17030:664;;17072:71;;-1:-1:-1;;;17072:71:38;;-1:-1:-1;;;;;17072:36:38;;;;;:71;;735:10:43;;17123:4:38;;17129:7;;17138:4;;17072:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17072:71:38;;;;;;;;-1:-1:-1;;17072:71:38;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:6;:13;17398:1;17381:18;17377:293;;17430:25;;-1:-1:-1;;;17430:25:38;;-1:-1:-1;;;;;1697:32:53;;17430:25:38;;;1679:51:53;1652:18;;17430:25:38;1533:203:53;17377:293:38;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;-1:-1:-1;;;;;;17190:51:38;;-1:-1:-1;;;17190:51:38;17186:130;;17272:25;;-1:-1:-1;;;17272:25:38;;-1:-1:-1;;;;;1697:32:53;;17272:25:38;;;1679:51:53;1652:18;;17272:25:38;1533:203:53;2237:514:9;2345:9;2340:354;2364:16;:23;2360:1;:27;2340:354;;;2522:48;2542:16;2559:1;2542:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2522:19;:48::i;:::-;2656:16;2673:1;2656:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:15;:40;2600:16;2617:1;2600:19;;;;;;;;:::i;:::-;;;;;;;:23;;;2584:40;;;;;;;;;;;;;;;:69;2625:16;2642:1;2625:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:69;;;;;;;;;;;;;;;:99;;;;;;:::i;:::-;-1:-1:-1;2389:3:9;;2340:354;;;;2709:35;2727:16;2709:35;;;;;;:::i;4631:264::-;4801:1;4787:16;;4781:23;4827:28;;;463:1;4827:28;4823:65;;4879:8;4864:24;;-1:-1:-1;;;4864:24:9;;;;;;;;:::i;2038:391:4:-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:4;-1:-1:-1;;;;;2259:14:4;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;637:698:44:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;-1:-1:-1;;;;;817:18:44;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:44;-1:-1:-1;794:41:44;-1:-1:-1;955:28:44;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:44;-1:-1:-1;;;1175:2:44;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:44;1010:282;1256:21;-1:-1:-1;1312:6:44;637:698;-1:-1:-1;;;637:698:44:o;14720:662:38:-;14880:9;:31;;;-1:-1:-1;;;;;;14893:18:38;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;-1:-1:-1;;;;;;15093:18:38;;;;;;:35;;;15124:4;-1:-1:-1;;;;;15115:13:38;:5;-1:-1:-1;;;;;15115:13:38;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15189:27;;-1:-1:-1;;;15189:27:38;;-1:-1:-1;;;;;1697:32:53;;15189:27:38;;;1679:51:53;1652:18;;15189:27:38;1533:203:53;15089:142:38;15249:9;15245:81;;;15303:7;15299:2;-1:-1:-1;;;;;15283:28:38;15292:5;-1:-1:-1;;;;;15283:28:38;;;;;;;;;;;15245:81;14913:423;14876:460;-1:-1:-1;;15346:24:38;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15346:29:38;-1:-1:-1;;;;;15346:29:38;;;;;;;;;;14720:662::o;1221:144:32:-;1281:20;1336:21;230:2;1281:20;1336:4;;:21;:::i;:::-;1328:30;;;:::i;1530:176::-;1591:21;1651:36;279:2;230;1651:4;;:36;:::i;:::-;1640:59;;;;;;;:::i;1678:131:29:-;1782:20;1788:3;1793:8;1782:5;:20::i;2190:153:32:-;2254:29;2314:22;:4;279:2;2314:4;;:22;:::i;:::-;2295:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2295:41:32;;2190:153;-1:-1:-1;;;;;;2190:153:32:o;675:252:28:-;832:20;891:6;899:7;908:11;874:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;864:56;;675:252;;;;;:::o;11462:227:38:-;11513:21;11537:40;11553:1;11557:7;11574:1;11537:7;:40::i;:::-;11513:64;-1:-1:-1;;;;;;11591:27:38;;11587:96;;11641:31;;-1:-1:-1;;;11641:31:38;;;;;7884:25:53;;;7857:18;;11641:31:38;7738:177:53;657:394:32;849:18;;787:20;;849:22;;;891:153;;1009:35;;;;;;32465:19:53;;;32500:12;;;32493:28;;;32537:12;;1009:35:32;;;;;;;;;;;;891:153;;;933:7;942:8;969:10;982:11;916:78;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;891:153;881:163;;657:394;;;;;;:::o;4650:191:4:-;4716:17;4762:10;4749:9;:23;4745:62;;4781:26;;-1:-1:-1;;;4781:26:4;;4797:9;4781:26;;;7884:25:53;7857:18;;4781:26:4;7738:177:53;4745:62:4;-1:-1:-1;4824:10:4;4650:191::o;5218:410::-;5371:15;5389:8;-1:-1:-1;;;;;5389:16:4;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;;;;;;5421:21:4;;5417:54;;5451:20;;-1:-1:-1;;;5451:20:4;;;;;;;;;;;5417:54;5545:76;-1:-1:-1;;;;;5545:32:4;;5578:10;5598:8;5609:11;5545:32;:76::i;7082:368:38:-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:38;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:38;;;;;7884:25:53;;;7857:18;;7298:31:38;7738:177:53;7248:186:38;7375:44;;-1:-1:-1;;;7375:44:38;;-1:-1:-1;;;;;33502:32:53;;7375:44:38;;;33484:51:53;33551:18;;;33544:34;;;33457:18;;7375:44:38;33310:274:53;12214:916:47;12267:7;;-1:-1:-1;;;12342:17:47;;12338:103;;-1:-1:-1;;;12379:17:47;;;-1:-1:-1;12424:2:47;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:47;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:47;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:47;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:47;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:47;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:47:o;1702:188:37:-;1829:53;;;-1:-1:-1;;;;;33847:15:53;;;1829:53:37;;;33829:34:53;33899:15;;33879:18;;;33872:43;33931:18;;;;33924:34;;;1829:53:37;;;;;;;;;;33764:18:53;;;;1829:53:37;;;;;;;;-1:-1:-1;;;;;1829:53:37;-1:-1:-1;;;1829:53:37;;;1802:81;;1822:5;;1802:19;:81::i;6376:272:38:-;6479:4;-1:-1:-1;;;;;6514:21:38;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:38;:5;-1:-1:-1;;;;;6552:16:38;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;;6008:7:38;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:38;;;6608:32;;;;6495:146;-1:-1:-1;6376:272:38:o;4059:629:37:-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:37;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:37;;-1:-1:-1;;;;;1697:32:53;;4631:40:37;;;1679:51:53;1652:18;;4631:40:37;1533:203:53;2705:151:42;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:42;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:42:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:42;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:42;;-1:-1:-1;;;;;1697:32:53;;5121:24:42;;;1679:51:53;1652:18;;5121:24:42;1533:203:53;5041:119:42;-1:-1:-1;5180:10:42;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:42;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:53:-;-1:-1:-1;;;;;;88:32:53;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:53;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:53;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:53:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:53;;1348:180;-1:-1:-1;1348:180:53:o;1741:131::-;-1:-1:-1;;;;;1816:31:53;;1806:42;;1796:70;;1862:1;1859;1852:12;1877:315;1945:6;1953;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2061:9;2048:23;2080:31;2105:5;2080:31;:::i;:::-;2130:5;2182:2;2167:18;;;;2154:32;;-1:-1:-1;;;1877:315:53:o;2197:154::-;2256:5;2301:2;2292:6;2287:3;2283:16;2279:25;2276:45;;;2317:1;2314;2307:12;2276:45;-1:-1:-1;2339:6:53;2197:154;-1:-1:-1;2197:154:53:o;2356:347::-;2407:8;2417:6;2471:3;2464:4;2456:6;2452:17;2448:27;2438:55;;2489:1;2486;2479:12;2438:55;-1:-1:-1;2512:20:53;;-1:-1:-1;;;;;2544:30:53;;2541:50;;;2587:1;2584;2577:12;2541:50;2624:4;2616:6;2612:17;2600:29;;2676:3;2669:4;2660:6;2652;2648:19;2644:30;2641:39;2638:59;;;2693:1;2690;2683:12;2638:59;2356:347;;;;;:::o;2708:1048::-;2851:6;2859;2867;2875;2883;2891;2899;2952:3;2940:9;2931:7;2927:23;2923:33;2920:53;;;2969:1;2966;2959:12;2920:53;2992;3037:7;3026:9;2992:53;:::i;:::-;2982:63;;3092:2;3081:9;3077:18;3064:32;3054:42;;3147:3;3136:9;3132:19;3119:33;-1:-1:-1;;;;;3212:2:53;3204:6;3201:14;3198:34;;;3228:1;3225;3218:12;3198:34;3267:58;3317:7;3308:6;3297:9;3293:22;3267:58;:::i;:::-;3344:8;;-1:-1:-1;3241:84:53;-1:-1:-1;3429:3:53;3414:19;;3401:33;;-1:-1:-1;3443:31:53;3401:33;3443:31;:::i;:::-;3493:5;;-1:-1:-1;3551:3:53;3536:19;;3523:33;;3568:16;;;3565:36;;;3597:1;3594;3587:12;3565:36;;3636:60;3688:7;3677:8;3666:9;3662:24;3636:60;:::i;:::-;2708:1048;;;;-1:-1:-1;2708:1048:53;;-1:-1:-1;2708:1048:53;;;;3610:86;;-1:-1:-1;;;2708:1048:53:o;4258:158::-;4320:5;4365:3;4356:6;4351:3;4347:16;4343:26;4340:46;;;4382:1;4379;4372:12;4421:657;4559:6;4567;4575;4619:9;4610:7;4606:23;4649:3;4645:2;4641:12;4638:32;;;4666:1;4663;4656:12;4638:32;4706:9;4693:23;-1:-1:-1;;;;;4731:6:53;4728:30;4725:50;;;4771:1;4768;4761:12;4725:50;4794:69;4855:7;4846:6;4835:9;4831:22;4794:69;:::i;:::-;4784:79;-1:-1:-1;;4897:2:53;-1:-1:-1;;4879:16:53;;4875:25;4872:45;;;4913:1;4910;4903:12;4872:45;;4951:2;4940:9;4936:18;4926:28;;5004:2;4993:9;4989:18;4976:32;5017:31;5042:5;5017:31;:::i;:::-;5067:5;5057:15;;;4421:657;;;;;:::o;5241:469::-;5401:4;5443:3;5432:9;5428:19;5420:27;;5480:6;5474:13;5463:9;5456:32;-1:-1:-1;;;;;5548:4:53;5540:6;5536:17;5530:24;5526:49;5519:4;5508:9;5504:20;5497:79;5623:4;5615:6;5611:17;5605:24;5638:66;5698:4;5687:9;5683:20;5669:12;5161;;5149:25;;5223:4;5212:16;;;5206:23;5190:14;;5183:47;5083:153;5638:66;;5241:469;;;;:::o;5715:456::-;5792:6;5800;5808;5861:2;5849:9;5840:7;5836:23;5832:32;5829:52;;;5877:1;5874;5867:12;5829:52;5916:9;5903:23;5935:31;5960:5;5935:31;:::i;:::-;5985:5;-1:-1:-1;6042:2:53;6027:18;;6014:32;6055:33;6014:32;6055:33;:::i;:::-;5715:456;;6107:7;;-1:-1:-1;;;6161:2:53;6146:18;;;;6133:32;;5715:456::o;6176:163::-;6243:20;;6303:10;6292:22;;6282:33;;6272:61;;6329:1;6326;6319:12;6272:61;6176:163;;;:::o;6344:252::-;6411:6;6419;6472:2;6460:9;6451:7;6447:23;6443:32;6440:52;;;6488:1;6485;6478:12;6440:52;6511:28;6529:9;6511:28;:::i;6601:159::-;6668:20;;6728:6;6717:18;;6707:29;;6697:57;;6750:1;6747;6740:12;6765:256;6831:6;6839;6892:2;6880:9;6871:7;6867:23;6863:32;6860:52;;;6908:1;6905;6898:12;6860:52;6931:28;6949:9;6931:28;:::i;:::-;6921:38;;6978:37;7011:2;7000:9;6996:18;6978:37;:::i;:::-;6968:47;;6765:256;;;;;:::o;7486:247::-;7545:6;7598:2;7586:9;7577:7;7573:23;7569:32;7566:52;;;7614:1;7611;7604:12;7566:52;7653:9;7640:23;7672:31;7697:5;7672:31;:::i;8125:670::-;8239:6;8247;8255;8263;8316:3;8304:9;8295:7;8291:23;8287:33;8284:53;;;8333:1;8330;8323:12;8284:53;8356;8401:7;8390:9;8356:53;:::i;:::-;8346:63;;8460:2;8449:9;8445:18;8432:32;-1:-1:-1;;;;;8479:6:53;8476:30;8473:50;;;8519:1;8516;8509:12;8473:50;8558:58;8608:7;8599:6;8588:9;8584:22;8558:58;:::i;:::-;8635:8;;-1:-1:-1;8532:84:53;-1:-1:-1;;8720:3:53;8705:19;;8692:33;8734:31;8692:33;8734:31;:::i;:::-;8125:670;;;;-1:-1:-1;8125:670:53;;-1:-1:-1;;8125:670:53:o;8800:118::-;8886:5;8879:13;8872:21;8865:5;8862:32;8852:60;;8908:1;8905;8898:12;8923:382;8988:6;8996;9049:2;9037:9;9028:7;9024:23;9020:32;9017:52;;;9065:1;9062;9055:12;9017:52;9104:9;9091:23;9123:31;9148:5;9123:31;:::i;:::-;9173:5;-1:-1:-1;9230:2:53;9215:18;;9202:32;9243:30;9202:32;9243:30;:::i;:::-;9292:7;9282:17;;;8923:382;;;;;:::o;9611:127::-;9672:10;9667:3;9663:20;9660:1;9653:31;9703:4;9700:1;9693:15;9727:4;9724:1;9717:15;9743:251;9815:2;9809:9;;;9845:15;;-1:-1:-1;;;;;9875:34:53;;9911:22;;;9872:62;9869:88;;;9937:18;;:::i;:::-;9973:2;9966:22;9743:251;:::o;9999:253::-;10071:2;10065:9;10113:4;10101:17;;-1:-1:-1;;;;;10133:34:53;;10169:22;;;10130:62;10127:88;;;10195:18;;:::i;10257:275::-;10328:2;10322:9;10393:2;10374:13;;-1:-1:-1;;10370:27:53;10358:40;;-1:-1:-1;;;;;10413:34:53;;10449:22;;;10410:62;10407:88;;;10475:18;;:::i;:::-;10511:2;10504:22;10257:275;;-1:-1:-1;10257:275:53:o;10537:186::-;10585:4;-1:-1:-1;;;;;10610:6:53;10607:30;10604:56;;;10640:18;;:::i;:::-;-1:-1:-1;10706:2:53;10685:15;-1:-1:-1;;10681:29:53;10712:4;10677:40;;10537:186::o;10728:462::-;10770:5;10823:3;10816:4;10808:6;10804:17;10800:27;10790:55;;10841:1;10838;10831:12;10790:55;10877:6;10864:20;10908:48;10924:31;10952:2;10924:31;:::i;:::-;10908:48;:::i;:::-;10981:2;10972:7;10965:19;11027:3;11020:4;11015:2;11007:6;11003:15;10999:26;10996:35;10993:55;;;11044:1;11041;11034:12;10993:55;11109:2;11102:4;11094:6;11090:17;11083:4;11074:7;11070:18;11057:55;11157:1;11132:16;;;11150:4;11128:27;11121:38;;;;11136:7;10728:462;-1:-1:-1;;;10728:462:53:o;11195:665::-;11290:6;11298;11306;11314;11367:3;11355:9;11346:7;11342:23;11338:33;11335:53;;;11384:1;11381;11374:12;11335:53;11423:9;11410:23;11442:31;11467:5;11442:31;:::i;:::-;11492:5;-1:-1:-1;11549:2:53;11534:18;;11521:32;11562:33;11521:32;11562:33;:::i;:::-;11614:7;-1:-1:-1;11668:2:53;11653:18;;11640:32;;-1:-1:-1;11723:2:53;11708:18;;11695:32;-1:-1:-1;;;;;11739:30:53;;11736:50;;;11782:1;11779;11772:12;11736:50;11805:49;11846:7;11837:6;11826:9;11822:22;11805:49;:::i;:::-;11795:59;;;11195:665;;;;;;;:::o;11865:395::-;11956:8;11966:6;12020:3;12013:4;12005:6;12001:17;11997:27;11987:55;;12038:1;12035;12028:12;11987:55;-1:-1:-1;12061:20:53;;-1:-1:-1;;;;;12093:30:53;;12090:50;;;12136:1;12133;12126:12;12090:50;12173:4;12165:6;12161:17;12149:29;;12233:3;12226:4;12216:6;12213:1;12209:14;12201:6;12197:27;12193:38;12190:47;12187:67;;;12250:1;12247;12240:12;12265:504;12390:6;12398;12451:2;12439:9;12430:7;12426:23;12422:32;12419:52;;;12467:1;12464;12457:12;12419:52;12507:9;12494:23;-1:-1:-1;;;;;12532:6:53;12529:30;12526:50;;;12572:1;12569;12562:12;12526:50;12611:98;12701:7;12692:6;12681:9;12677:22;12611:98;:::i;:::-;12728:8;;12585:124;;-1:-1:-1;12265:504:53;-1:-1:-1;;;;12265:504:53:o;12774:184::-;12832:6;12885:2;12873:9;12864:7;12860:23;12856:32;12853:52;;;12901:1;12898;12891:12;12853:52;12924:28;12942:9;12924:28;:::i;13145:553::-;13231:6;13239;13247;13255;13308:2;13296:9;13287:7;13283:23;13279:32;13276:52;;;13324:1;13321;13314:12;13276:52;13347:28;13365:9;13347:28;:::i;:::-;13337:38;;13394:37;13427:2;13416:9;13412:18;13394:37;:::i;:::-;13384:47;;13482:2;13471:9;13467:18;13454:32;-1:-1:-1;;;;;13501:6:53;13498:30;13495:50;;;13541:1;13538;13531:12;13495:50;13580:58;13630:7;13621:6;13610:9;13606:22;13580:58;:::i;:::-;13145:553;;;;-1:-1:-1;13657:8:53;-1:-1:-1;;;;13145:553:53:o;14206:489::-;14300:6;14308;14361:2;14349:9;14340:7;14336:23;14332:32;14329:52;;;14377:1;14374;14367:12;14329:52;14417:9;14404:23;-1:-1:-1;;;;;14442:6:53;14439:30;14436:50;;;14482:1;14479;14472:12;14436:50;14505:69;14566:7;14557:6;14546:9;14542:22;14505:69;:::i;:::-;14495:79;;;14624:2;14613:9;14609:18;14596:32;14637:28;14659:5;14637:28;:::i;14700:261::-;5161:12;;5149:25;;5223:4;5212:16;;;5206:23;5190:14;;;5183:47;14894:2;14879:18;;14906:49;5083:153;14966:388;15034:6;15042;15095:2;15083:9;15074:7;15070:23;15066:32;15063:52;;;15111:1;15108;15101:12;15063:52;15150:9;15137:23;15169:31;15194:5;15169:31;:::i;:::-;15219:5;-1:-1:-1;15276:2:53;15261:18;;15248:32;15289:33;15248:32;15289:33;:::i;15359:236::-;15444:6;15497:2;15485:9;15476:7;15472:23;15468:32;15465:52;;;15513:1;15510;15503:12;15465:52;15536:53;15581:7;15570:9;15536:53;:::i;15600:380::-;15679:1;15675:12;;;;15722;;;15743:61;;15797:4;15789:6;15785:17;15775:27;;15743:61;15850:2;15842:6;15839:14;15819:18;15816:38;15813:161;;15896:10;15891:3;15887:20;15884:1;15877:31;15931:4;15928:1;15921:15;15959:4;15956:1;15949:15;16253:348;16342:6;16395:2;16383:9;16374:7;16370:23;16366:32;16363:52;;;16411:1;16408;16401:12;16363:52;16437:22;;:::i;:::-;16495:9;16482:23;16475:5;16468:38;16566:2;16555:9;16551:18;16538:32;16533:2;16526:5;16522:14;16515:56;16590:5;16580:15;;;16253:348;;;;:::o;17254:1575::-;17446:9;-1:-1:-1;;;;;17521:2:53;17513:6;17510:14;17507:40;;;17527:18;;:::i;:::-;17573:6;17570:1;17566:14;17599:4;17623:28;17647:2;17643;17639:11;17623:28;:::i;:::-;17685:19;;;17755:14;;;;17720:12;;;;17792:14;17781:26;;17778:46;;;17820:1;17817;17810:12;17778:46;17844:5;17858:938;17874:6;17869:3;17866:15;17858:938;;;17960:3;17947:17;17996:2;17983:11;17980:19;17977:109;;;18040:1;18069:2;18065;18058:14;17977:109;18109:23;;18177:4;18156:14;18152:23;;;18148:34;18145:124;;;18223:1;18252:2;18248;18241:14;18145:124;18297:22;;:::i;:::-;18348:21;18366:2;18348:21;:::i;:::-;18339:7;18332:38;18408:30;18434:2;18430;18426:11;18408:30;:::i;:::-;18403:2;18394:7;18390:16;18383:56;18462:2;18512;18508;18504:11;18491:25;18543:2;18535:6;18532:14;18529:104;;;18587:1;18616:2;18612;18605:14;18529:104;18671:49;18705:14;18696:6;18692:2;18688:15;18671:49;:::i;:::-;18653:16;;;18646:75;;;;-1:-1:-1;18734:20:53;;-1:-1:-1;18774:12:53;;;;17891;;17858:938;;;-1:-1:-1;18818:5:53;17254:1575;-1:-1:-1;;;;;;;17254:1575:53:o;18834:331::-;18939:9;18950;18992:8;18980:10;18977:24;18974:44;;;19014:1;19011;19004:12;18974:44;19043:6;19033:8;19030:20;19027:40;;;19063:1;19060;19053:12;19027:40;-1:-1:-1;;19089:23:53;;;19134:25;;;;;-1:-1:-1;18834:331:53:o;19170:476::-;19361:3;19399:6;19393:13;19415:66;19474:6;19469:3;19462:4;19454:6;19450:17;19415:66;:::i;:::-;19503:16;;19556:6;19548;19503:16;19528:35;19620:1;19582:18;;19609:13;;;-1:-1:-1;19582:18:53;;19170:476;-1:-1:-1;;;19170:476:53:o;19651:266::-;19739:6;19734:3;19727:19;19791:6;19784:5;19777:4;19772:3;19768:14;19755:43;-1:-1:-1;19843:1:53;19818:16;;;19836:4;19814:27;;;19807:38;;;;19899:2;19878:15;;;-1:-1:-1;;19874:29:53;19865:39;;;19861:50;;19651:266::o;19922:244::-;20079:2;20068:9;20061:21;20042:4;20099:61;20156:2;20145:9;20141:18;20133:6;20125;20099:61;:::i;20171:127::-;20232:10;20227:3;20223:20;20220:1;20213:31;20263:4;20260:1;20253:15;20287:4;20284:1;20277:15;20303:331;20402:4;20460:11;20447:25;20554:3;20550:8;20539;20523:14;20519:29;20515:44;20495:18;20491:69;20481:97;;20574:1;20571;20564:12;20481:97;20595:33;;;;;20303:331;-1:-1:-1;;20303:331:53:o;20639:521::-;20716:4;20722:6;20782:11;20769:25;20876:2;20872:7;20861:8;20845:14;20841:29;20837:43;20817:18;20813:68;20803:96;;20895:1;20892;20885:12;20803:96;20922:33;;20974:20;;;-1:-1:-1;;;;;;21006:30:53;;21003:50;;;21049:1;21046;21039:12;21003:50;21082:4;21070:17;;-1:-1:-1;21113:14:53;21109:27;;;21099:38;;21096:58;;;21150:1;21147;21140:12;21165:129;-1:-1:-1;;;;;21243:5:53;21239:30;21232:5;21229:41;21219:69;;21284:1;21281;21274:12;21299:992;21677:10;21650:25;21668:6;21650:25;:::i;:::-;21646:42;21635:9;21628:61;21752:4;21744:6;21740:17;21727:31;21720:4;21709:9;21705:20;21698:61;21609:4;21806;21798:6;21794:17;21781:31;21821:30;21845:5;21821:30;:::i;:::-;-1:-1:-1;;;;;21893:5:53;21889:30;21882:4;21871:9;21867:20;21860:60;;21956:6;21951:2;21940:9;21936:18;21929:34;22000:3;21994;21983:9;21979:19;21972:32;22027:62;22084:3;22073:9;22069:19;22061:6;22053;22027:62;:::i;:::-;-1:-1:-1;;;;;22126:32:53;;22146:3;22105:19;;22098:61;22196:22;;;22190:3;22175:19;;22168:51;22236:49;22200:6;22270;22262;22236:49;:::i;:::-;22228:57;21299:992;-1:-1:-1;;;;;;;;;;21299:992:53:o;22296:647::-;22375:6;22428:2;22416:9;22407:7;22403:23;22399:32;22396:52;;;22444:1;22441;22434:12;22396:52;22477:9;22471:16;-1:-1:-1;;;;;22502:6:53;22499:30;22496:50;;;22542:1;22539;22532:12;22496:50;22565:22;;22618:4;22610:13;;22606:27;-1:-1:-1;22596:55:53;;22647:1;22644;22637:12;22596:55;22676:2;22670:9;22701:48;22717:31;22745:2;22717:31;:::i;22701:48::-;22772:2;22765:5;22758:17;22812:7;22807:2;22802;22798;22794:11;22790:20;22787:33;22784:53;;;22833:1;22830;22823:12;22784:53;22846:67;22910:2;22905;22898:5;22894:14;22889:2;22885;22881:11;22846:67;:::i;22948:496::-;23127:3;23165:6;23159:13;23181:66;23240:6;23235:3;23228:4;23220:6;23216:17;23181:66;:::i;:::-;23310:13;;23269:16;;;;23332:70;23310:13;23269:16;23379:4;23367:17;;23332:70;:::i;:::-;23418:20;;22948:496;-1:-1:-1;;;;22948:496:53:o;23646:245::-;23704:6;23757:2;23745:9;23736:7;23732:23;23728:32;23725:52;;;23773:1;23770;23763:12;23725:52;23812:9;23799:23;23831:30;23855:5;23831:30;:::i;23896:479::-;24163:1;24159;24154:3;24150:11;24146:19;24138:6;24134:32;24123:9;24116:51;24203:6;24198:2;24187:9;24183:18;24176:34;24258:6;24250;24246:19;24241:2;24230:9;24226:18;24219:47;24302:3;24297:2;24286:9;24282:18;24275:31;24097:4;24323:46;24364:3;24353:9;24349:19;24341:6;24323:46;:::i;24689:379::-;24882:2;24871:9;24864:21;24845:4;24908:45;24949:2;24938:9;24934:18;24926:6;24908:45;:::i;:::-;25001:9;24993:6;24989:22;24984:2;24973:9;24969:18;24962:50;25029:33;25055:6;25047;25029:33;:::i;25073:245::-;25140:6;25193:2;25181:9;25172:7;25168:23;25164:32;25161:52;;;25209:1;25206;25199:12;25161:52;25241:9;25235:16;25260:28;25282:5;25260:28;:::i;25323:891::-;25546:2;25535:9;25528:21;25604:10;25595:6;25589:13;25585:30;25580:2;25569:9;25565:18;25558:58;25670:4;25662:6;25658:17;25652:24;25647:2;25636:9;25632:18;25625:52;25509:4;25724:2;25716:6;25712:15;25706:22;25765:4;25759:3;25748:9;25744:19;25737:33;25793:52;25840:3;25829:9;25825:19;25811:12;25793:52;:::i;:::-;25779:66;;25894:2;25886:6;25882:15;25876:22;25968:2;25964:7;25952:9;25944:6;25940:22;25936:36;25929:4;25918:9;25914:20;25907:66;25996:41;26030:6;26014:14;25996:41;:::i;:::-;26106:3;26094:16;;;;26088:23;26081:31;26074:39;26068:3;26053:19;;26046:68;-1:-1:-1;;;;;;;;26175:32:53;;;;26168:4;26153:20;;;26146:62;25982:55;25323:891::o;26219:284::-;26289:5;26337:4;26325:9;26320:3;26316:19;26312:30;26309:50;;;26355:1;26352;26345:12;26309:50;26377:22;;:::i;:::-;26368:31;;26428:9;26422:16;26415:5;26408:31;26492:2;26481:9;26477:18;26471:25;26466:2;26459:5;26455:14;26448:49;26219:284;;;;:::o;26508:525::-;26612:6;26665:3;26653:9;26644:7;26640:23;26636:33;26633:53;;;26682:1;26679;26672:12;26633:53;26708:22;;:::i;:::-;26759:9;26753:16;26746:5;26739:31;26815:2;26804:9;26800:18;26794:25;26828:32;26852:7;26828:32;:::i;:::-;26887:2;26876:14;;26869:31;26932:70;26994:7;26989:2;26974:18;;26932:70;:::i;:::-;26927:2;26916:14;;26909:94;26920:5;26508:525;-1:-1:-1;;;26508:525:53:o;27038:489::-;-1:-1:-1;;;;;27307:15:53;;;27289:34;;27359:15;;27354:2;27339:18;;27332:43;27406:2;27391:18;;27384:34;;;27454:3;27449:2;27434:18;;27427:31;;;27232:4;;27475:46;;27501:19;;27493:6;27475:46;:::i;27532:249::-;27601:6;27654:2;27642:9;27633:7;27629:23;27625:32;27622:52;;;27670:1;27667;27660:12;27622:52;27702:9;27696:16;27721:30;27745:5;27721:30;:::i;27911:542::-;28012:2;28007:3;28004:11;28001:446;;;28048:1;28072:5;28069:1;28062:16;28116:4;28113:1;28103:18;28186:2;28174:10;28170:19;28167:1;28163:27;28157:4;28153:38;28222:4;28210:10;28207:20;28204:47;;;-1:-1:-1;28245:4:53;28204:47;28300:2;28295:3;28291:12;28288:1;28284:20;28278:4;28274:31;28264:41;;28355:82;28373:2;28366:5;28363:13;28355:82;;;28418:17;;;28399:1;28388:13;28355:82;;;28359:3;;;27911:542;;;:::o;28629:1341::-;28753:3;28747:10;-1:-1:-1;;;;;28772:6:53;28769:30;28766:56;;;28802:18;;:::i;:::-;28831:96;28920:6;28880:38;28912:4;28906:11;28880:38;:::i;:::-;28874:4;28831:96;:::i;:::-;28982:4;;29039:2;29028:14;;29056:1;29051:662;;;;29757:1;29774:6;29771:89;;;-1:-1:-1;29826:19:53;;;29820:26;29771:89;-1:-1:-1;;28586:1:53;28582:11;;;28578:24;28574:29;28564:40;28610:1;28606:11;;;28561:57;29873:81;;29021:943;;29051:662;27858:1;27851:14;;;27895:4;27882:18;;-1:-1:-1;;29087:20:53;;;29204:236;29218:7;29215:1;29212:14;29204:236;;;29307:19;;;29301:26;29286:42;;29399:27;;;;29367:1;29355:14;;;;29234:19;;29204:236;;;29208:3;29468:6;29459:7;29456:19;29453:201;;;29529:19;;;29523:26;-1:-1:-1;;29612:1:53;29608:14;;;29624:3;29604:24;29600:37;29596:42;29581:58;29566:74;;29453:201;-1:-1:-1;;;;;29700:1:53;29684:14;;;29680:22;29667:36;;-1:-1:-1;28629:1341:53:o;29975:1164::-;30191:4;30220:2;30260;30249:9;30245:18;30290:2;30279:9;30272:21;30313:6;30348;30342:13;30379:6;30371;30364:22;30405:2;30395:12;;30438:2;30427:9;30423:18;30416:25;;30500:2;30490:6;30487:1;30483:14;30472:9;30468:30;30464:39;30538:2;30530:6;30526:15;30559:1;30569:541;30583:6;30580:1;30577:13;30569:541;;;30648:22;;;-1:-1:-1;;30644:36:53;30632:49;;30704:13;;30776:9;;30787:10;30772:26;30757:42;;30846:11;;;30840:18;30860:6;30836:31;30819:15;;;30812:56;30907:11;;30901:18;30740:4;30939:15;;;30932:27;;;30982:48;31014:15;;;30901:18;30982:48;:::i;:::-;31088:12;;;;30972:58;-1:-1:-1;;;31053:15:53;;;;30605:1;30598:9;30569:541;;;-1:-1:-1;31127:6:53;;29975:1164;-1:-1:-1;;;;;;;;29975:1164:53:o;31144:259::-;31244:6;31297:2;31285:9;31276:7;31272:23;31268:32;31265:52;;;31313:1;31310;31303:12;31265:52;31336:61;31389:7;31378:9;31336:61;:::i;31540:255::-;31660:19;;31699:2;31691:11;;31688:101;;;-1:-1:-1;;31760:2:53;31756:12;;;31753:1;31749:20;31745:33;31734:45;31540:255;;;;:::o;31800:503::-;32037:3;32015:16;;;-1:-1:-1;;;;;;32011:51:53;31999:64;;32118:3;32096:16;;;-1:-1:-1;;;;;;32092:43:53;32088:1;32079:11;;32072:64;32159:13;;-1:-1:-1;;32181:75:53;32159:13;32244:2;32235:12;;32228:4;32216:17;;32181:75;:::i;:::-;32276:16;;;;32294:2;32272:25;;31800:503;-1:-1:-1;;;;31800:503:53:o;32560:489::-;32803:6;32798:3;32791:19;32840:6;32835:2;32830:3;32826:12;32819:28;32877:6;32872:2;32867:3;32863:12;32856:28;32773:3;32913:6;32907:13;32929:73;32995:6;32990:2;32985:3;32981:12;32976:2;32968:6;32964:15;32929:73;:::i;:::-;33022:16;;;;33040:2;33018:25;;32560:489;-1:-1:-1;;;;;32560:489:53:o;33054:251::-;33124:6;33177:2;33165:9;33156:7;33152:23;33148:32;33145:52;;;33193:1;33190;33183:12;33145:52;33225:9;33219:16;33244:31;33269:5;33244:31;:::i;33969:287::-;34098:3;34136:6;34130:13;34152:66;34211:6;34206:3;34199:4;34191:6;34187:17;34152:66;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"2688800","executionCost":"infinite","totalCost":"infinite"},"external":{"SEND()":"294","SEND_AND_COMPOSE()":"271","allowInitializePath((uint32,bytes32,uint64))":"infinite","approvalRequired()":"299","approve(address,uint256)":"31554","balanceOf(address)":"2694","combineOptions(uint32,uint16,bytes)":"infinite","endpoint()":"infinite","enforcedOptions(uint32,uint16)":"infinite","getApproved(uint256)":"infinite","isApprovedForAll(address,address)":"infinite","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"789","isPeer(uint32,bytes32)":"2675","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"infinite","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"infinite","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"infinite","mint(address,uint256)":"102166","msgInspector()":"2472","name()":"infinite","nextNonce(uint32,bytes32)":"545","oApp()":"302","oAppVersion()":"263","onftVersion()":"246","owner()":"2399","ownerOf(uint256)":"infinite","peers(uint32)":"2662","preCrime()":"2426","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"infinite","renounceOwnership()":"infinite","safeTransferFrom(address,address,uint256)":"infinite","safeTransferFrom(address,address,uint256,bytes)":"infinite","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"infinite","setApprovalForAll(address,bool)":"infinite","setDelegate(address)":"infinite","setEnforcedOptions((uint32,uint16,bytes)[])":"infinite","setMsgInspector(address)":"27872","setPeer(uint32,bytes32)":"26193","setPreCrime(address)":"27860","supportsInterface(bytes4)":"557","symbol()":"infinite","token()":"344","tokenURI(uint256)":"infinite","transferFrom(address,address,uint256)":"infinite","transferOwnership(address)":"infinite"}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","mint(address,uint256)":"40c10f19","msgInspector()":"111ecdad","name()":"06fdde03","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setApprovalForAll(address,bool)":"a22cb465","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","token()":"fc0c546a","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"In the case of ONFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the underlying ERC721 implementation (ie. this contract).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/MyONFT721Mock.sol\":\"MyONFT721Mock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\n\\nimport { BitMap256 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\\\";\\nimport { CalldataBytesLib } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\\\";\\n\\nlibrary DVNOptions {\\n using CalldataBytesLib for bytes;\\n using BytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 2;\\n uint8 internal constant OPTION_TYPE_PRECRIME = 1;\\n\\n error DVN_InvalidDVNIdx();\\n error DVN_InvalidDVNOptions(uint256 cursor);\\n\\n /// @dev group dvn options by its idx\\n /// @param _options [dvn_id][dvn_option][dvn_id][dvn_option]...\\n /// dvn_option = [option_size][dvn_idx][option_type][option]\\n /// option_size = len(dvn_idx) + len(option_type) + len(option)\\n /// dvn_id: uint8, dvn_idx: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @return dvnOptions the grouped options, still share the same format of _options\\n /// @return dvnIndices the dvn indices\\n function groupDVNOptionsByIdx(\\n bytes memory _options\\n ) internal pure returns (bytes[] memory dvnOptions, uint8[] memory dvnIndices) {\\n if (_options.length == 0) return (dvnOptions, dvnIndices);\\n\\n uint8 numDVNs = getNumDVNs(_options);\\n\\n // if there is only 1 dvn, we can just return the whole options\\n if (numDVNs == 1) {\\n dvnOptions = new bytes[](1);\\n dvnOptions[0] = _options;\\n\\n dvnIndices = new uint8[](1);\\n dvnIndices[0] = _options.toUint8(3); // dvn idx\\n return (dvnOptions, dvnIndices);\\n }\\n\\n // otherwise, we need to group the options by dvn_idx\\n dvnIndices = new uint8[](numDVNs);\\n dvnOptions = new bytes[](numDVNs);\\n unchecked {\\n uint256 cursor = 0;\\n uint256 start = 0;\\n uint8 lastDVNIdx = 255; // 255 is an invalid dvn_idx\\n\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n // optionLength asserted in getNumDVNs (skip check)\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n\\n // dvnIdx asserted in getNumDVNs (skip check)\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // dvnIdx must equal to the lastDVNIdx for the first option\\n // so it is always skipped in the first option\\n // this operation slices out options whenever the scan finds a different lastDVNIdx\\n if (lastDVNIdx == 255) {\\n lastDVNIdx = dvnIdx;\\n } else if (dvnIdx != lastDVNIdx) {\\n uint256 len = cursor - start - 3; // 3 is for worker_id and option_length\\n bytes memory opt = _options.slice(start, len);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, opt);\\n\\n // reset the start and lastDVNIdx\\n start += len;\\n lastDVNIdx = dvnIdx;\\n }\\n\\n cursor += optionLength;\\n }\\n\\n // skip check the cursor here because the cursor is asserted in getNumDVNs\\n // if we have reached the end of the options, we need to process the last dvn\\n uint256 size = cursor - start;\\n bytes memory op = _options.slice(start, size);\\n _insertDVNOptions(dvnOptions, dvnIndices, lastDVNIdx, op);\\n\\n // revert dvnIndices to start from 0\\n for (uint8 i = 0; i < numDVNs; ++i) {\\n --dvnIndices[i];\\n }\\n }\\n }\\n\\n function _insertDVNOptions(\\n bytes[] memory _dvnOptions,\\n uint8[] memory _dvnIndices,\\n uint8 _dvnIdx,\\n bytes memory _newOptions\\n ) internal pure {\\n // dvnIdx starts from 0 but default value of dvnIndices is 0,\\n // so we tell if the slot is empty by adding 1 to dvnIdx\\n if (_dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n uint8 dvnIdxAdj = _dvnIdx + 1;\\n\\n for (uint256 j = 0; j < _dvnIndices.length; ++j) {\\n uint8 index = _dvnIndices[j];\\n if (dvnIdxAdj == index) {\\n _dvnOptions[j] = abi.encodePacked(_dvnOptions[j], _newOptions);\\n break;\\n } else if (index == 0) {\\n // empty slot, that means it is the first time we see this dvn\\n _dvnIndices[j] = dvnIdxAdj;\\n _dvnOptions[j] = _newOptions;\\n break;\\n }\\n }\\n }\\n\\n /// @dev get the number of unique dvns\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n function getNumDVNs(bytes memory _options) internal pure returns (uint8 numDVNs) {\\n uint256 cursor = 0;\\n BitMap256 bitmap;\\n\\n // find number of unique dvn_idx\\n unchecked {\\n while (cursor < _options.length) {\\n ++cursor; // skip worker_id\\n\\n uint16 optionLength = _options.toUint16(cursor);\\n cursor += 2;\\n if (optionLength < 2) revert DVN_InvalidDVNOptions(cursor); // at least 1 byte for dvn_idx and 1 byte for option_type\\n\\n uint8 dvnIdx = _options.toUint8(cursor);\\n\\n // if dvnIdx is not set, increment numDVNs\\n // max num of dvns is 255, 255 is an invalid dvn_idx\\n // The order of the dvnIdx is not required to be sequential, as enforcing the order may weaken\\n // the composability of the options. e.g. if we refrain from enforcing the order, an OApp that has\\n // already enforced certain options can append additional options to the end of the enforced\\n // ones without restrictions.\\n if (dvnIdx == 255) revert DVN_InvalidDVNIdx();\\n if (!bitmap.get(dvnIdx)) {\\n ++numDVNs;\\n bitmap = bitmap.set(dvnIdx);\\n }\\n\\n cursor += optionLength;\\n }\\n }\\n if (cursor != _options.length) revert DVN_InvalidDVNOptions(cursor);\\n }\\n\\n /// @dev decode the next dvn option from _options starting from the specified cursor\\n /// @param _options the format is the same as groupDVNOptionsByIdx\\n /// @param _cursor the cursor to start decoding\\n /// @return optionType the type of the option\\n /// @return option the option\\n /// @return cursor the cursor to start decoding the next option\\n function nextDVNOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor + 1); // skip dvn_idx\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 2; // skip option type and dvn_idx\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n}\\n\",\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the 'MessagingFee' and 'MessagingReceipt' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppSender, MessagingFee, MessagingReceipt } from \\\"./OAppSender.sol\\\";\\n// @dev Import the 'Origin' so it's exposed to OApp implementers\\n// solhint-disable-next-line no-unused-import\\nimport { OAppReceiver, Origin } from \\\"./OAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OApp\\n * @dev Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality.\\n */\\nabstract contract OApp is OAppSender, OAppReceiver {\\n /**\\n * @dev Constructor to initialize the OApp with the provided endpoint and owner.\\n * @param _endpoint The address of the LOCAL LayerZero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n */\\n constructor(address _endpoint, address _delegate) OAppCore(_endpoint, _delegate) {}\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol implementation.\\n * @return receiverVersion The version of the OAppReceiver.sol implementation.\\n */\\n function oAppVersion()\\n public\\n pure\\n virtual\\n override(OAppSender, OAppReceiver)\\n returns (uint64 senderVersion, uint64 receiverVersion)\\n {\\n return (SENDER_VERSION, RECEIVER_VERSION);\\n }\\n}\\n\",\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppCore, ILayerZeroEndpointV2 } from \\\"./interfaces/IOAppCore.sol\\\";\\n\\n/**\\n * @title OAppCore\\n * @dev Abstract contract implementing the IOAppCore interface with basic OApp configurations.\\n */\\nabstract contract OAppCore is IOAppCore, Ownable {\\n // The LayerZero endpoint associated with the given OApp\\n ILayerZeroEndpointV2 public immutable endpoint;\\n\\n // Mapping to store peers associated with corresponding endpoints\\n mapping(uint32 eid => bytes32 peer) public peers;\\n\\n /**\\n * @dev Constructor to initialize the OAppCore with the provided endpoint and delegate.\\n * @param _endpoint The address of the LOCAL Layer Zero endpoint.\\n * @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n *\\n * @dev The delegate typically should be set as the owner of the contract.\\n */\\n constructor(address _endpoint, address _delegate) {\\n endpoint = ILayerZeroEndpointV2(_endpoint);\\n\\n if (_delegate == address(0)) revert InvalidDelegate();\\n endpoint.setDelegate(_delegate);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) public virtual onlyOwner {\\n _setPeer(_eid, _peer);\\n }\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n *\\n * @dev Indicates that the peer is trusted to send LayerZero messages to this OApp.\\n * @dev Set this to bytes32(0) to remove the peer address.\\n * @dev Peer is a bytes32 to accommodate non-evm chains.\\n */\\n function _setPeer(uint32 _eid, bytes32 _peer) internal virtual {\\n peers[_eid] = _peer;\\n emit PeerSet(_eid, _peer);\\n }\\n\\n /**\\n * @notice Internal function to get the peer address associated with a specific endpoint; reverts if NOT set.\\n * ie. the peer is set to bytes32(0).\\n * @param _eid The endpoint ID.\\n * @return peer The address of the peer associated with the specified endpoint.\\n */\\n function _getPeerOrRevert(uint32 _eid) internal view virtual returns (bytes32) {\\n bytes32 peer = peers[_eid];\\n if (peer == bytes32(0)) revert NoPeer(_eid);\\n return peer;\\n }\\n\\n /**\\n * @notice Sets the delegate address for the OApp.\\n * @param _delegate The address of the delegate to be set.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\\n */\\n function setDelegate(address _delegate) public onlyOwner {\\n endpoint.setDelegate(_delegate);\\n }\\n}\\n\",\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { IOAppReceiver, Origin } from \\\"./interfaces/IOAppReceiver.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppReceiver\\n * @dev Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\\n */\\nabstract contract OAppReceiver is IOAppReceiver, OAppCore {\\n // Custom error message for when the caller is not the registered endpoint/\\n error OnlyEndpoint(address addr);\\n\\n // @dev The version of the OAppReceiver implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant RECEIVER_VERSION = 2;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented.\\n * ie. this is a RECEIVE only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (0, RECEIVER_VERSION);\\n }\\n\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @dev _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @dev _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata /*_origin*/,\\n bytes calldata /*_message*/,\\n address _sender\\n ) public view virtual returns (bool) {\\n return _sender == address(this);\\n }\\n\\n /**\\n * @notice Checks if the path initialization is allowed based on the provided origin.\\n * @param origin The origin information containing the source endpoint and sender address.\\n * @return Whether the path has been initialized.\\n *\\n * @dev This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.\\n * @dev This defaults to assuming if a peer has been set, its initialized.\\n * Can be overridden by the OApp if there is other logic to determine this.\\n */\\n function allowInitializePath(Origin calldata origin) public view virtual returns (bool) {\\n return peers[origin.srcEid] == origin.sender;\\n }\\n\\n /**\\n * @notice Retrieves the next nonce for a given source endpoint and sender address.\\n * @dev _srcEid The source endpoint ID.\\n * @dev _sender The sender address.\\n * @return nonce The next nonce.\\n *\\n * @dev The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.\\n * @dev Is required by the off-chain executor to determine the OApp expects msg execution is ordered.\\n * @dev This is also enforced by the OApp.\\n * @dev By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\\n */\\n function nextNonce(uint32 /*_srcEid*/, bytes32 /*_sender*/) public view virtual returns (uint64 nonce) {\\n return 0;\\n }\\n\\n /**\\n * @dev Entry point for receiving messages or packets from the endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier for the received LayerZero message.\\n * @param _message The payload of the received message.\\n * @param _executor The address of the executor for the received message.\\n * @param _extraData Additional arbitrary data provided by the corresponding executor.\\n *\\n * @dev Entry point for receiving msg/packet from the LayerZero endpoint.\\n */\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) public payable virtual {\\n // Ensures that only the endpoint can attempt to lzReceive() messages to this OApp.\\n if (address(endpoint) != msg.sender) revert OnlyEndpoint(msg.sender);\\n\\n // Ensure that the sender matches the expected peer for the source endpoint.\\n if (_getPeerOrRevert(_origin.srcEid) != _origin.sender) revert OnlyPeer(_origin.srcEid, _origin.sender);\\n\\n // Call the internal OApp implementation of lzReceive.\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to implement lzReceive logic without needing to copy the basic parameter validation.\\n */\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n}\\n\",\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { MessagingParams, MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { OAppCore } from \\\"./OAppCore.sol\\\";\\n\\n/**\\n * @title OAppSender\\n * @dev Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\\n */\\nabstract contract OAppSender is OAppCore {\\n using SafeERC20 for IERC20;\\n\\n // Custom error messages\\n error NotEnoughNative(uint256 msgValue);\\n error LzTokenUnavailable();\\n\\n // @dev The version of the OAppSender implementation.\\n // @dev Version is bumped when changes are made to this contract.\\n uint64 internal constant SENDER_VERSION = 1;\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n *\\n * @dev Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented.\\n * ie. this is a SEND only OApp.\\n * @dev If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\\n */\\n function oAppVersion() public view virtual returns (uint64 senderVersion, uint64 receiverVersion) {\\n return (SENDER_VERSION, 0);\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.quote() for fee calculation.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _payInLzToken Flag indicating whether to pay the fee in LZ tokens.\\n * @return fee The calculated MessagingFee for the message.\\n * - nativeFee: The native fee for the message.\\n * - lzTokenFee: The LZ token fee for the message.\\n */\\n function _quote(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n bool _payInLzToken\\n ) internal view virtual returns (MessagingFee memory fee) {\\n return\\n endpoint.quote(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _payInLzToken),\\n address(this)\\n );\\n }\\n\\n /**\\n * @dev Internal function to interact with the LayerZero EndpointV2.send() for sending a message.\\n * @param _dstEid The destination endpoint ID.\\n * @param _message The message payload.\\n * @param _options Additional options for the message.\\n * @param _fee The calculated LayerZero fee for the message.\\n * - nativeFee: The native fee.\\n * - lzTokenFee: The lzToken fee.\\n * @param _refundAddress The address to receive any excess fee values sent to the endpoint.\\n * @return receipt The receipt for the sent message.\\n * - guid: The unique identifier for the sent message.\\n * - nonce: The nonce of the sent message.\\n * - fee: The LayerZero fee incurred for the message.\\n */\\n function _lzSend(\\n uint32 _dstEid,\\n bytes memory _message,\\n bytes memory _options,\\n MessagingFee memory _fee,\\n address _refundAddress\\n ) internal virtual returns (MessagingReceipt memory receipt) {\\n // @dev Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.\\n uint256 messageValue = _payNative(_fee.nativeFee);\\n if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);\\n\\n return\\n // solhint-disable-next-line check-send-result\\n endpoint.send{ value: messageValue }(\\n MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0),\\n _refundAddress\\n );\\n }\\n\\n /**\\n * @dev Internal function to pay the native fee associated with the message.\\n * @param _nativeFee The native fee to be paid.\\n * @return nativeFee The amount of native currency paid.\\n *\\n * @dev If the OApp needs to initiate MULTIPLE LayerZero messages in a single transaction,\\n * this will need to be overridden because msg.value would contain multiple lzFees.\\n * @dev Should be overridden in the event the LayerZero endpoint requires a different native currency.\\n * @dev Some EVMs use an ERC20 as a method for paying transactions/gasFees.\\n * @dev The endpoint is EITHER/OR, ie. it will NOT support both types of native payment at a time.\\n */\\n function _payNative(uint256 _nativeFee) internal virtual returns (uint256 nativeFee) {\\n if (msg.value != _nativeFee) revert NotEnoughNative(msg.value);\\n return _nativeFee;\\n }\\n\\n /**\\n * @dev Internal function to pay the LZ token fee associated with the message.\\n * @param _lzTokenFee The LZ token fee to be paid.\\n *\\n * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.\\n * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().\\n */\\n function _payLzToken(uint256 _lzTokenFee) internal virtual {\\n // @dev Cannot cache the token because it is not immutable in the endpoint.\\n address lzToken = endpoint.lzToken();\\n if (lzToken == address(0)) revert LzTokenUnavailable();\\n\\n // Pay LZ token fee by sending tokens to the endpoint.\\n IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);\\n }\\n}\\n\",\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroEndpointV2 } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\n\\n/**\\n * @title IOAppCore\\n */\\ninterface IOAppCore {\\n // Custom error messages\\n error OnlyPeer(uint32 eid, bytes32 sender);\\n error NoPeer(uint32 eid);\\n error InvalidEndpointCall();\\n error InvalidDelegate();\\n\\n // Event emitted when a peer (OApp) is set for a corresponding endpoint\\n event PeerSet(uint32 eid, bytes32 peer);\\n\\n /**\\n * @notice Retrieves the OApp version information.\\n * @return senderVersion The version of the OAppSender.sol contract.\\n * @return receiverVersion The version of the OAppReceiver.sol contract.\\n */\\n function oAppVersion() external view returns (uint64 senderVersion, uint64 receiverVersion);\\n\\n /**\\n * @notice Retrieves the LayerZero endpoint associated with the OApp.\\n * @return iEndpoint The LayerZero endpoint as an interface.\\n */\\n function endpoint() external view returns (ILayerZeroEndpointV2 iEndpoint);\\n\\n /**\\n * @notice Retrieves the peer (OApp) associated with a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @return peer The peer address (OApp instance) associated with the corresponding endpoint.\\n */\\n function peers(uint32 _eid) external view returns (bytes32 peer);\\n\\n /**\\n * @notice Sets the peer address (OApp instance) for a corresponding endpoint.\\n * @param _eid The endpoint ID.\\n * @param _peer The address of the peer to be associated with the corresponding endpoint.\\n */\\n function setPeer(uint32 _eid, bytes32 _peer) external;\\n\\n /**\\n * @notice Sets the delegate address for the OApp Core.\\n * @param _delegate The address of the delegate to be set.\\n */\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @title IOAppMsgInspector\\n * @dev Interface for the OApp Message Inspector, allowing examination of message and options contents.\\n */\\ninterface IOAppMsgInspector {\\n // Custom error message for inspection failure\\n error InspectionFailed(bytes message, bytes options);\\n\\n /**\\n * @notice Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\\n * @param _message The message payload to be inspected.\\n * @param _options Additional options or parameters for inspection.\\n * @return valid A boolean indicating whether the inspection passed (true) or failed (false).\\n *\\n * @dev Optionally done as a revert, OR use the boolean provided to handle the failure.\\n */\\n function inspect(bytes calldata _message, bytes calldata _options) external view returns (bool valid);\\n}\\n\",\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Struct representing enforced option parameters.\\n */\\nstruct EnforcedOptionParam {\\n uint32 eid; // Endpoint ID\\n uint16 msgType; // Message Type\\n bytes options; // Additional options\\n}\\n\\n/**\\n * @title IOAppOptionsType3\\n * @dev Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.\\n */\\ninterface IOAppOptionsType3 {\\n // Custom error message for invalid options\\n error InvalidOptions(bytes options);\\n\\n // Event emitted when enforced options are set\\n event EnforcedOptionSet(EnforcedOptionParam[] _enforcedOptions);\\n\\n /**\\n * @notice Sets enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) external;\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OApp message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) external view returns (bytes memory options);\\n}\\n\",\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.20;\\n\\nimport { ILayerZeroReceiver, Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\\\";\\n\\ninterface IOAppReceiver is ILayerZeroReceiver {\\n /**\\n * @notice Indicates whether an address is an approved composeMsg sender to the Endpoint.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _message The lzReceive payload.\\n * @param _sender The sender address.\\n * @return isSender Is a valid sender.\\n *\\n * @dev Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.\\n * @dev The default sender IS the OAppReceiver implementer.\\n */\\n function isComposeMsgSender(\\n Origin calldata _origin,\\n bytes calldata _message,\\n address _sender\\n ) external view returns (bool isSender);\\n}\\n\",\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IOAppOptionsType3, EnforcedOptionParam } from \\\"../interfaces/IOAppOptionsType3.sol\\\";\\n\\n/**\\n * @title OAppOptionsType3\\n * @dev Abstract contract implementing the IOAppOptionsType3 interface with type 3 options.\\n */\\nabstract contract OAppOptionsType3 is IOAppOptionsType3, Ownable {\\n uint16 internal constant OPTION_TYPE_3 = 3;\\n\\n // @dev The \\\"msgType\\\" should be defined in the child contract.\\n mapping(uint32 eid => mapping(uint16 msgType => bytes enforcedOption)) public enforcedOptions;\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Only the owner/admin of the OApp can call this function.\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function setEnforcedOptions(EnforcedOptionParam[] calldata _enforcedOptions) public virtual onlyOwner {\\n _setEnforcedOptions(_enforcedOptions);\\n }\\n\\n /**\\n * @dev Sets the enforced options for specific endpoint and message type combinations.\\n * @param _enforcedOptions An array of EnforcedOptionParam structures specifying enforced options.\\n *\\n * @dev Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.\\n * @dev These enforced options can vary as the potential options/execution on the remote may differ as per the msgType.\\n * eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay\\n * if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\\n */\\n function _setEnforcedOptions(EnforcedOptionParam[] memory _enforcedOptions) internal virtual {\\n for (uint256 i = 0; i < _enforcedOptions.length; i++) {\\n // @dev Enforced options are only available for optionType 3, as type 1 and 2 dont support combining.\\n _assertOptionsType3(_enforcedOptions[i].options);\\n enforcedOptions[_enforcedOptions[i].eid][_enforcedOptions[i].msgType] = _enforcedOptions[i].options;\\n }\\n\\n emit EnforcedOptionSet(_enforcedOptions);\\n }\\n\\n /**\\n * @notice Combines options for a given endpoint and message type.\\n * @param _eid The endpoint ID.\\n * @param _msgType The OAPP message type.\\n * @param _extraOptions Additional options passed by the caller.\\n * @return options The combination of caller specified options AND enforced options.\\n *\\n * @dev If there is an enforced lzReceive option:\\n * - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether}\\n * - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.\\n * @dev This presence of duplicated options is handled off-chain in the verifier/executor.\\n */\\n function combineOptions(\\n uint32 _eid,\\n uint16 _msgType,\\n bytes calldata _extraOptions\\n ) public view virtual returns (bytes memory) {\\n bytes memory enforced = enforcedOptions[_eid][_msgType];\\n\\n // No enforced options, pass whatever the caller supplied, even if it's empty or legacy type 1/2 options.\\n if (enforced.length == 0) return _extraOptions;\\n\\n // No caller options, return enforced\\n if (_extraOptions.length == 0) return enforced;\\n\\n // @dev If caller provided _extraOptions, must be type 3 as its the ONLY type that can be combined.\\n if (_extraOptions.length >= 2) {\\n _assertOptionsType3(_extraOptions);\\n // @dev Remove the first 2 bytes containing the type from the _extraOptions and combine with enforced.\\n return bytes.concat(enforced, _extraOptions[2:]);\\n }\\n\\n // No valid set of options was found.\\n revert InvalidOptions(_extraOptions);\\n }\\n\\n /**\\n * @dev Internal function to assert that options are of type 3.\\n * @param _options The options to be checked.\\n */\\n function _assertOptionsType3(bytes memory _options) internal pure virtual {\\n uint16 optionsType;\\n assembly {\\n optionsType := mload(add(_options, 2))\\n }\\n if (optionsType != OPTION_TYPE_3) revert InvalidOptions(_options);\\n }\\n}\\n\",\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { BytesLib } from \\\"solidity-bytes-utils/contracts/BytesLib.sol\\\";\\nimport { SafeCast } from \\\"@openzeppelin/contracts/utils/math/SafeCast.sol\\\";\\n\\nimport { ExecutorOptions } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\\\";\\nimport { DVNOptions } from \\\"@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\\\";\\n\\n/**\\n * @title OptionsBuilder\\n * @dev Library for building and encoding various message options.\\n */\\nlibrary OptionsBuilder {\\n using SafeCast for uint256;\\n using BytesLib for bytes;\\n\\n // Constants for options types\\n uint16 internal constant TYPE_1 = 1; // legacy options type 1\\n uint16 internal constant TYPE_2 = 2; // legacy options type 2\\n uint16 internal constant TYPE_3 = 3;\\n\\n // Custom error message\\n error InvalidSize(uint256 max, uint256 actual);\\n error InvalidOptionType(uint16 optionType);\\n\\n // Modifier to ensure only options of type 3 are used\\n modifier onlyType3(bytes memory _options) {\\n if (_options.toUint16(0) != TYPE_3) revert InvalidOptionType(_options.toUint16(0));\\n _;\\n }\\n\\n /**\\n * @dev Creates a new options container with type 3.\\n * @return options The newly created options container.\\n */\\n function newOptions() internal pure returns (bytes memory) {\\n return abi.encodePacked(TYPE_3);\\n }\\n\\n /**\\n * @dev Adds an executor LZ receive option to the existing options.\\n * @param _options The existing options container.\\n * @param _gas The gasLimit used on the lzReceive() function in the OApp.\\n * @param _value The msg.value passed to the lzReceive() function in the OApp.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed by the executor\\n * eg. if (_gas: 200k, and _value: 1 ether) AND (_gas: 100k, _value: 0.5 ether) are sent in an option to the LayerZeroEndpoint,\\n * that becomes (300k, 1.5 ether) when the message is executed on the remote lzReceive() function.\\n */\\n function addExecutorLzReceiveOption(\\n bytes memory _options,\\n uint128 _gas,\\n uint128 _value\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeLzReceiveOption(_gas, _value);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZRECEIVE, option);\\n }\\n\\n /**\\n * @dev Adds an executor native drop option to the existing options.\\n * @param _options The existing options container.\\n * @param _amount The amount for the native value that is airdropped to the 'receiver'.\\n * @param _receiver The receiver address for the native drop option.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed by the executor on the remote chain.\\n */\\n function addExecutorNativeDropOption(\\n bytes memory _options,\\n uint128 _amount,\\n bytes32 _receiver\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeNativeDropOption(_amount, _receiver);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_NATIVE_DROP, option);\\n }\\n\\n /**\\n * @dev Adds an executor LZ compose option to the existing options.\\n * @param _options The existing options container.\\n * @param _index The index for the lzCompose() function call.\\n * @param _gas The gasLimit for the lzCompose() function call.\\n * @param _value The msg.value for the lzCompose() function call.\\n * @return options The updated options container.\\n *\\n * @dev When multiples of this option are added, they are summed PER index by the executor on the remote chain.\\n * @dev If the OApp sends N lzCompose calls on the remote, you must provide N incremented indexes starting with 0.\\n * ie. When your remote OApp composes (N = 3) messages, you must set this option for index 0,1,2\\n */\\n function addExecutorLzComposeOption(\\n bytes memory _options,\\n uint16 _index,\\n uint128 _gas,\\n uint128 _value\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n bytes memory option = ExecutorOptions.encodeLzComposeOption(_index, _gas, _value);\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_LZCOMPOSE, option);\\n }\\n\\n /**\\n * @dev Adds an executor ordered execution option to the existing options.\\n * @param _options The existing options container.\\n * @return options The updated options container.\\n */\\n function addExecutorOrderedExecutionOption(\\n bytes memory _options\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return addExecutorOption(_options, ExecutorOptions.OPTION_TYPE_ORDERED_EXECUTION, bytes(\\\"\\\"));\\n }\\n\\n /**\\n * @dev Adds a DVN pre-crime option to the existing options.\\n * @param _options The existing options container.\\n * @param _dvnIdx The DVN index for the pre-crime option.\\n * @return options The updated options container.\\n */\\n function addDVNPreCrimeOption(\\n bytes memory _options,\\n uint8 _dvnIdx\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return addDVNOption(_options, _dvnIdx, DVNOptions.OPTION_TYPE_PRECRIME, bytes(\\\"\\\"));\\n }\\n\\n /**\\n * @dev Adds an executor option to the existing options.\\n * @param _options The existing options container.\\n * @param _optionType The type of the executor option.\\n * @param _option The encoded data for the executor option.\\n * @return options The updated options container.\\n */\\n function addExecutorOption(\\n bytes memory _options,\\n uint8 _optionType,\\n bytes memory _option\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return\\n abi.encodePacked(\\n _options,\\n ExecutorOptions.WORKER_ID,\\n _option.length.toUint16() + 1, // +1 for optionType\\n _optionType,\\n _option\\n );\\n }\\n\\n /**\\n * @dev Adds a DVN option to the existing options.\\n * @param _options The existing options container.\\n * @param _dvnIdx The DVN index for the DVN option.\\n * @param _optionType The type of the DVN option.\\n * @param _option The encoded data for the DVN option.\\n * @return options The updated options container.\\n */\\n function addDVNOption(\\n bytes memory _options,\\n uint8 _dvnIdx,\\n uint8 _optionType,\\n bytes memory _option\\n ) internal pure onlyType3(_options) returns (bytes memory) {\\n return\\n abi.encodePacked(\\n _options,\\n DVNOptions.WORKER_ID,\\n _option.length.toUint16() + 2, // +2 for optionType and dvnIdx\\n _dvnIdx,\\n _optionType,\\n _option\\n );\\n }\\n\\n /**\\n * @dev Encodes legacy options of type 1.\\n * @param _executionGas The gasLimit value passed to lzReceive().\\n * @return legacyOptions The encoded legacy options.\\n */\\n function encodeLegacyOptionsType1(uint256 _executionGas) internal pure returns (bytes memory) {\\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n return abi.encodePacked(TYPE_1, _executionGas);\\n }\\n\\n /**\\n * @dev Encodes legacy options of type 2.\\n * @param _executionGas The gasLimit value passed to lzReceive().\\n * @param _nativeForDst The amount of native air dropped to the receiver.\\n * @param _receiver The _nativeForDst receiver address.\\n * @return legacyOptions The encoded legacy options of type 2.\\n */\\n function encodeLegacyOptionsType2(\\n uint256 _executionGas,\\n uint256 _nativeForDst,\\n bytes memory _receiver // @dev Use bytes instead of bytes32 in legacy type 2 for _receiver.\\n ) internal pure returns (bytes memory) {\\n if (_executionGas > type(uint128).max) revert InvalidSize(type(uint128).max, _executionGas);\\n if (_nativeForDst > type(uint128).max) revert InvalidSize(type(uint128).max, _nativeForDst);\\n if (_receiver.length > 32) revert InvalidSize(32, _receiver.length);\\n return abi.encodePacked(TYPE_2, _executionGas, _nativeForDst, _receiver);\\n }\\n}\\n\",\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { IPreCrime } from \\\"./interfaces/IPreCrime.sol\\\";\\nimport { IOAppPreCrimeSimulator, InboundPacket, Origin } from \\\"./interfaces/IOAppPreCrimeSimulator.sol\\\";\\n\\n/**\\n * @title OAppPreCrimeSimulator\\n * @dev Abstract contract serving as the base for preCrime simulation functionality in an OApp.\\n */\\nabstract contract OAppPreCrimeSimulator is IOAppPreCrimeSimulator, Ownable {\\n // The address of the preCrime implementation.\\n address public preCrime;\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n *\\n * @dev The simulator contract is the base contract for the OApp by default.\\n * @dev If the simulator is a separate contract, override this function.\\n */\\n function oApp() external view virtual returns (address) {\\n return address(this);\\n }\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) public virtual onlyOwner {\\n preCrime = _preCrime;\\n emit PreCrimeSet(_preCrime);\\n }\\n\\n /**\\n * @dev Interface for pre-crime simulations. Always reverts at the end with the simulation results.\\n * @param _packets An array of InboundPacket objects representing received packets to be delivered.\\n *\\n * @dev WARNING: MUST revert at the end with the simulation results.\\n * @dev Gives the preCrime implementation the ability to mock sending packets to the lzReceive function,\\n * WITHOUT actually executing them.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) public payable virtual {\\n for (uint256 i = 0; i < _packets.length; i++) {\\n InboundPacket calldata packet = _packets[i];\\n\\n // Ignore packets that are not from trusted peers.\\n if (!isPeer(packet.origin.srcEid, packet.origin.sender)) continue;\\n\\n // @dev Because a verifier is calling this function, it doesnt have access to executor params:\\n // - address _executor\\n // - bytes calldata _extraData\\n // preCrime will NOT work for OApps that rely on these two parameters inside of their _lzReceive().\\n // They are instead stubbed to default values, address(0) and bytes(\\\"\\\")\\n // @dev Calling this.lzReceiveSimulate removes ability for assembly return 0 callstack exit,\\n // which would cause the revert to be ignored.\\n this.lzReceiveSimulate{ value: packet.value }(\\n packet.origin,\\n packet.guid,\\n packet.message,\\n packet.executor,\\n packet.extraData\\n );\\n }\\n\\n // @dev Revert with the simulation results. msg.sender must implement IPreCrime.buildSimulationResult().\\n revert SimulationResult(IPreCrime(msg.sender).buildSimulationResult());\\n }\\n\\n /**\\n * @dev Is effectively an internal function because msg.sender must be address(this).\\n * Allows resetting the call stack for 'internal' calls.\\n * @param _origin The origin information containing the source endpoint and sender address.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address on the src chain.\\n * - nonce: The nonce of the message.\\n * @param _guid The unique identifier of the packet.\\n * @param _message The message payload of the packet.\\n * @param _executor The executor address for the packet.\\n * @param _extraData Additional data for the packet.\\n */\\n function lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable virtual {\\n // @dev Ensure ONLY can be called 'internally'.\\n if (msg.sender != address(this)) revert OnlySelf();\\n _lzReceiveSimulate(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /**\\n * @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\\n * @param _origin The origin information.\\n * - srcEid: The source chain endpoint ID.\\n * - sender: The sender address from the src chain.\\n * - nonce: The nonce of the LayerZero message.\\n * @param _guid The GUID of the LayerZero message.\\n * @param _message The LayerZero message.\\n * @param _executor The address of the off-chain executor.\\n * @param _extraData Arbitrary data passed by the msg executor.\\n *\\n * @dev Enables the preCrime simulator to mock sending lzReceive() messages,\\n * routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\\n */\\n function _lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual returns (bool);\\n}\\n\",\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\n// @dev Import the Origin so it's exposed to OAppPreCrimeSimulator implementers.\\n// solhint-disable-next-line no-unused-import\\nimport { InboundPacket, Origin } from \\\"../libs/Packet.sol\\\";\\n\\n/**\\n * @title IOAppPreCrimeSimulator Interface\\n * @dev Interface for the preCrime simulation functionality in an OApp.\\n */\\ninterface IOAppPreCrimeSimulator {\\n // @dev simulation result used in PreCrime implementation\\n error SimulationResult(bytes result);\\n error OnlySelf();\\n\\n /**\\n * @dev Emitted when the preCrime contract address is set.\\n * @param preCrimeAddress The address of the preCrime contract.\\n */\\n event PreCrimeSet(address preCrimeAddress);\\n\\n /**\\n * @dev Retrieves the address of the preCrime contract implementation.\\n * @return The address of the preCrime contract.\\n */\\n function preCrime() external view returns (address);\\n\\n /**\\n * @dev Retrieves the address of the OApp contract.\\n * @return The address of the OApp contract.\\n */\\n function oApp() external view returns (address);\\n\\n /**\\n * @dev Sets the preCrime contract address.\\n * @param _preCrime The address of the preCrime contract.\\n */\\n function setPreCrime(address _preCrime) external;\\n\\n /**\\n * @dev Mocks receiving a packet, then reverts with a series of data to infer the state/result.\\n * @param _packets An array of LayerZero InboundPacket objects representing received packets.\\n */\\n function lzReceiveAndRevert(InboundPacket[] calldata _packets) external payable;\\n\\n /**\\n * @dev checks if the specified peer is considered 'trusted' by the OApp.\\n * @param _eid The endpoint Id to check.\\n * @param _peer The peer to check.\\n * @return Whether the peer passed is considered 'trusted' by the OApp.\\n */\\n function isPeer(uint32 _eid, bytes32 _peer) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\nstruct PreCrimePeer {\\n uint32 eid;\\n bytes32 preCrime;\\n bytes32 oApp;\\n}\\n\\n// TODO not done yet\\ninterface IPreCrime {\\n error OnlyOffChain();\\n\\n // for simulate()\\n error PacketOversize(uint256 max, uint256 actual);\\n error PacketUnsorted();\\n error SimulationFailed(bytes reason);\\n\\n // for preCrime()\\n error SimulationResultNotFound(uint32 eid);\\n error InvalidSimulationResult(uint32 eid, bytes reason);\\n error CrimeFound(bytes crime);\\n\\n function getConfig(bytes[] calldata _packets, uint256[] calldata _packetMsgValues) external returns (bytes memory);\\n\\n function simulate(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues\\n ) external payable returns (bytes memory);\\n\\n function buildSimulationResult() external view returns (bytes memory);\\n\\n function preCrime(\\n bytes[] calldata _packets,\\n uint256[] calldata _packetMsgValues,\\n bytes[] calldata _simulations\\n ) external;\\n\\n function version() external view returns (uint64 major, uint8 minor);\\n}\\n\",\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.20;\\n\\nimport { Origin } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\\\";\\nimport { PacketV1Codec } from \\\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\\\";\\n\\n/**\\n * @title InboundPacket\\n * @dev Structure representing an inbound packet received by the contract.\\n */\\nstruct InboundPacket {\\n Origin origin; // Origin information of the packet.\\n uint32 dstEid; // Destination endpointId of the packet.\\n address receiver; // Receiver address for the packet.\\n bytes32 guid; // Unique identifier of the packet.\\n uint256 value; // msg.value of the packet.\\n address executor; // Executor address for the packet.\\n bytes message; // Message payload of the packet.\\n bytes extraData; // Additional arbitrary data for the packet.\\n}\\n\\n/**\\n * @title PacketDecoder\\n * @dev Library for decoding LayerZero packets.\\n */\\nlibrary PacketDecoder {\\n using PacketV1Codec for bytes;\\n\\n /**\\n * @dev Decode an inbound packet from the given packet data.\\n * @param _packet The packet data to decode.\\n * @return packet An InboundPacket struct representing the decoded packet.\\n */\\n function decode(bytes calldata _packet) internal pure returns (InboundPacket memory packet) {\\n packet.origin = Origin(_packet.srcEid(), _packet.sender(), _packet.nonce());\\n packet.dstEid = _packet.dstEid();\\n packet.receiver = _packet.receiverB20();\\n packet.guid = _packet.guid();\\n packet.message = _packet.message();\\n }\\n\\n /**\\n * @dev Decode multiple inbound packets from the given packet data and associated message values.\\n * @param _packets An array of packet data to decode.\\n * @param _packetMsgValues An array of associated message values for each packet.\\n * @return packets An array of InboundPacket structs representing the decoded packets.\\n */\\n function decode(\\n bytes[] calldata _packets,\\n uint256[] memory _packetMsgValues\\n ) internal pure returns (InboundPacket[] memory packets) {\\n packets = new InboundPacket[](_packets.length);\\n for (uint256 i = 0; i < _packets.length; i++) {\\n bytes calldata packet = _packets[i];\\n packets[i] = PacketDecoder.decode(packet);\\n // @dev Allows the verifier to specify the msg.value that gets passed in lzReceive.\\n packets[i].value = _packetMsgValues[i];\\n }\\n }\\n}\\n\",\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IMessageLibManager } from \\\"./IMessageLibManager.sol\\\";\\nimport { IMessagingComposer } from \\\"./IMessagingComposer.sol\\\";\\nimport { IMessagingChannel } from \\\"./IMessagingChannel.sol\\\";\\nimport { IMessagingContext } from \\\"./IMessagingContext.sol\\\";\\n\\nstruct MessagingParams {\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes message;\\n bytes options;\\n bool payInLzToken;\\n}\\n\\nstruct MessagingReceipt {\\n bytes32 guid;\\n uint64 nonce;\\n MessagingFee fee;\\n}\\n\\nstruct MessagingFee {\\n uint256 nativeFee;\\n uint256 lzTokenFee;\\n}\\n\\nstruct Origin {\\n uint32 srcEid;\\n bytes32 sender;\\n uint64 nonce;\\n}\\n\\ninterface ILayerZeroEndpointV2 is IMessageLibManager, IMessagingComposer, IMessagingChannel, IMessagingContext {\\n event PacketSent(bytes encodedPayload, bytes options, address sendLibrary);\\n\\n event PacketVerified(Origin origin, address receiver, bytes32 payloadHash);\\n\\n event PacketDelivered(Origin origin, address receiver);\\n\\n event LzReceiveAlert(\\n address indexed receiver,\\n address indexed executor,\\n Origin origin,\\n bytes32 guid,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n event LzTokenSet(address token);\\n\\n event DelegateSet(address sender, address delegate);\\n\\n function quote(MessagingParams calldata _params, address _sender) external view returns (MessagingFee memory);\\n\\n function send(\\n MessagingParams calldata _params,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n\\n function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;\\n\\n function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function initializable(Origin calldata _origin, address _receiver) external view returns (bool);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n address _receiver,\\n bytes32 _guid,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n\\n // oapp can burn messages partially by calling this function with its own business logic if messages are verified in order\\n function clear(address _oapp, Origin calldata _origin, bytes32 _guid, bytes calldata _message) external;\\n\\n function setLzToken(address _lzToken) external;\\n\\n function lzToken() external view returns (address);\\n\\n function nativeToken() external view returns (address);\\n\\n function setDelegate(address _delegate) external;\\n}\\n\",\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { Origin } from \\\"./ILayerZeroEndpointV2.sol\\\";\\n\\ninterface ILayerZeroReceiver {\\n function allowInitializePath(Origin calldata _origin) external view returns (bool);\\n\\n function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64);\\n\\n function lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\nimport { SetConfigParam } from \\\"./IMessageLibManager.sol\\\";\\n\\nenum MessageLibType {\\n Send,\\n Receive,\\n SendAndReceive\\n}\\n\\ninterface IMessageLib is IERC165 {\\n function setConfig(address _oapp, SetConfigParam[] calldata _config) external;\\n\\n function getConfig(uint32 _eid, address _oapp, uint32 _configType) external view returns (bytes memory config);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n // message libs of same major version are compatible\\n function version() external view returns (uint64 major, uint8 minor, uint8 endpointVersion);\\n\\n function messageLibType() external view returns (MessageLibType);\\n}\\n\",\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nstruct SetConfigParam {\\n uint32 eid;\\n uint32 configType;\\n bytes config;\\n}\\n\\ninterface IMessageLibManager {\\n struct Timeout {\\n address lib;\\n uint256 expiry;\\n }\\n\\n event LibraryRegistered(address newLib);\\n event DefaultSendLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibrarySet(uint32 eid, address newLib);\\n event DefaultReceiveLibraryTimeoutSet(uint32 eid, address oldLib, uint256 expiry);\\n event SendLibrarySet(address sender, uint32 eid, address newLib);\\n event ReceiveLibrarySet(address receiver, uint32 eid, address newLib);\\n event ReceiveLibraryTimeoutSet(address receiver, uint32 eid, address oldLib, uint256 timeout);\\n\\n function registerLibrary(address _lib) external;\\n\\n function isRegisteredLibrary(address _lib) external view returns (bool);\\n\\n function getRegisteredLibraries() external view returns (address[] memory);\\n\\n function setDefaultSendLibrary(uint32 _eid, address _newLib) external;\\n\\n function defaultSendLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibrary(uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function defaultReceiveLibrary(uint32 _eid) external view returns (address);\\n\\n function setDefaultReceiveLibraryTimeout(uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function defaultReceiveLibraryTimeout(uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function isSupportedEid(uint32 _eid) external view returns (bool);\\n\\n function isValidReceiveLibrary(address _receiver, uint32 _eid, address _lib) external view returns (bool);\\n\\n /// ------------------- OApp interfaces -------------------\\n function setSendLibrary(address _oapp, uint32 _eid, address _newLib) external;\\n\\n function getSendLibrary(address _sender, uint32 _eid) external view returns (address lib);\\n\\n function isDefaultSendLibrary(address _sender, uint32 _eid) external view returns (bool);\\n\\n function setReceiveLibrary(address _oapp, uint32 _eid, address _newLib, uint256 _gracePeriod) external;\\n\\n function getReceiveLibrary(address _receiver, uint32 _eid) external view returns (address lib, bool isDefault);\\n\\n function setReceiveLibraryTimeout(address _oapp, uint32 _eid, address _lib, uint256 _expiry) external;\\n\\n function receiveLibraryTimeout(address _receiver, uint32 _eid) external view returns (address lib, uint256 expiry);\\n\\n function setConfig(address _oapp, address _lib, SetConfigParam[] calldata _params) external;\\n\\n function getConfig(\\n address _oapp,\\n address _lib,\\n uint32 _eid,\\n uint32 _configType\\n ) external view returns (bytes memory config);\\n}\\n\",\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingChannel {\\n event InboundNonceSkipped(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce);\\n event PacketNilified(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n event PacketBurnt(uint32 srcEid, bytes32 sender, address receiver, uint64 nonce, bytes32 payloadHash);\\n\\n function eid() external view returns (uint32);\\n\\n // this is an emergency function if a message cannot be verified for some reasons\\n // required to provide _nextNonce to avoid race condition\\n function skip(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce) external;\\n\\n function nilify(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function burn(address _oapp, uint32 _srcEid, bytes32 _sender, uint64 _nonce, bytes32 _payloadHash) external;\\n\\n function nextGuid(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (bytes32);\\n\\n function inboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n\\n function outboundNonce(address _sender, uint32 _dstEid, bytes32 _receiver) external view returns (uint64);\\n\\n function inboundPayloadHash(\\n address _receiver,\\n uint32 _srcEid,\\n bytes32 _sender,\\n uint64 _nonce\\n ) external view returns (bytes32);\\n\\n function lazyInboundNonce(address _receiver, uint32 _srcEid, bytes32 _sender) external view returns (uint64);\\n}\\n\",\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingComposer {\\n event ComposeSent(address from, address to, bytes32 guid, uint16 index, bytes message);\\n event ComposeDelivered(address from, address to, bytes32 guid, uint16 index);\\n event LzComposeAlert(\\n address indexed from,\\n address indexed to,\\n address indexed executor,\\n bytes32 guid,\\n uint16 index,\\n uint256 gas,\\n uint256 value,\\n bytes message,\\n bytes extraData,\\n bytes reason\\n );\\n\\n function composeQueue(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index\\n ) external view returns (bytes32 messageHash);\\n\\n function sendCompose(address _to, bytes32 _guid, uint16 _index, bytes calldata _message) external;\\n\\n function lzCompose(\\n address _from,\\n address _to,\\n bytes32 _guid,\\n uint16 _index,\\n bytes calldata _message,\\n bytes calldata _extraData\\n ) external payable;\\n}\\n\",\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\ninterface IMessagingContext {\\n function isSendingMessage() external view returns (bool);\\n\\n function getSendContext() external view returns (uint32 dstEid, address sender);\\n}\\n\",\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.8.0;\\n\\nimport { MessagingFee } from \\\"./ILayerZeroEndpointV2.sol\\\";\\nimport { IMessageLib } from \\\"./IMessageLib.sol\\\";\\n\\nstruct Packet {\\n uint64 nonce;\\n uint32 srcEid;\\n address sender;\\n uint32 dstEid;\\n bytes32 receiver;\\n bytes32 guid;\\n bytes message;\\n}\\n\\ninterface ISendLib is IMessageLib {\\n function send(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external returns (MessagingFee memory, bytes memory encodedPacket);\\n\\n function quote(\\n Packet calldata _packet,\\n bytes calldata _options,\\n bool _payInLzToken\\n ) external view returns (MessagingFee memory);\\n\\n function setTreasury(address _treasury) external;\\n\\n function withdrawFee(address _to, uint256 _amount) external;\\n\\n function withdrawLzTokenFee(address _lzToken, address _to, uint256 _amount) external;\\n}\\n\",\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary AddressCast {\\n error AddressCast_InvalidSizeForAddress();\\n error AddressCast_InvalidAddress();\\n\\n function toBytes32(bytes calldata _addressBytes) internal pure returns (bytes32 result) {\\n if (_addressBytes.length > 32) revert AddressCast_InvalidAddress();\\n result = bytes32(_addressBytes);\\n unchecked {\\n uint256 offset = 32 - _addressBytes.length;\\n result = result >> (offset * 8);\\n }\\n }\\n\\n function toBytes32(address _address) internal pure returns (bytes32 result) {\\n result = bytes32(uint256(uint160(_address)));\\n }\\n\\n function toBytes(bytes32 _addressBytes32, uint256 _size) internal pure returns (bytes memory result) {\\n if (_size == 0 || _size > 32) revert AddressCast_InvalidSizeForAddress();\\n result = new bytes(_size);\\n unchecked {\\n uint256 offset = 256 - _size * 8;\\n assembly {\\n mstore(add(result, 32), shl(offset, _addressBytes32))\\n }\\n }\\n }\\n\\n function toAddress(bytes32 _addressBytes32) internal pure returns (address result) {\\n result = address(uint160(uint256(_addressBytes32)));\\n }\\n\\n function toAddress(bytes calldata _addressBytes) internal pure returns (address result) {\\n if (_addressBytes.length != 20) revert AddressCast_InvalidAddress();\\n result = address(bytes20(_addressBytes));\\n }\\n}\\n\",\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nlibrary CalldataBytesLib {\\n function toU8(bytes calldata _bytes, uint256 _start) internal pure returns (uint8) {\\n return uint8(_bytes[_start]);\\n }\\n\\n function toU16(bytes calldata _bytes, uint256 _start) internal pure returns (uint16) {\\n unchecked {\\n uint256 end = _start + 2;\\n return uint16(bytes2(_bytes[_start:end]));\\n }\\n }\\n\\n function toU32(bytes calldata _bytes, uint256 _start) internal pure returns (uint32) {\\n unchecked {\\n uint256 end = _start + 4;\\n return uint32(bytes4(_bytes[_start:end]));\\n }\\n }\\n\\n function toU64(bytes calldata _bytes, uint256 _start) internal pure returns (uint64) {\\n unchecked {\\n uint256 end = _start + 8;\\n return uint64(bytes8(_bytes[_start:end]));\\n }\\n }\\n\\n function toU128(bytes calldata _bytes, uint256 _start) internal pure returns (uint128) {\\n unchecked {\\n uint256 end = _start + 16;\\n return uint128(bytes16(_bytes[_start:end]));\\n }\\n }\\n\\n function toU256(bytes calldata _bytes, uint256 _start) internal pure returns (uint256) {\\n unchecked {\\n uint256 end = _start + 32;\\n return uint256(bytes32(_bytes[_start:end]));\\n }\\n }\\n\\n function toAddr(bytes calldata _bytes, uint256 _start) internal pure returns (address) {\\n unchecked {\\n uint256 end = _start + 20;\\n return address(bytes20(_bytes[_start:end]));\\n }\\n }\\n\\n function toB32(bytes calldata _bytes, uint256 _start) internal pure returns (bytes32) {\\n unchecked {\\n uint256 end = _start + 32;\\n return bytes32(_bytes[_start:end]);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\n// modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol\\npragma solidity ^0.8.20;\\n\\ntype BitMap256 is uint256;\\n\\nusing BitMaps for BitMap256 global;\\n\\nlibrary BitMaps {\\n /**\\n * @dev Returns whether the bit at `index` is set.\\n */\\n function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) {\\n uint256 mask = 1 << index;\\n return BitMap256.unwrap(bitmap) & mask != 0;\\n }\\n\\n /**\\n * @dev Sets the bit at `index`.\\n */\\n function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) {\\n uint256 mask = 1 << index;\\n return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask);\\n }\\n}\\n\",\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { CalldataBytesLib } from \\\"../../libs/CalldataBytesLib.sol\\\";\\n\\nlibrary ExecutorOptions {\\n using CalldataBytesLib for bytes;\\n\\n uint8 internal constant WORKER_ID = 1;\\n\\n uint8 internal constant OPTION_TYPE_LZRECEIVE = 1;\\n uint8 internal constant OPTION_TYPE_NATIVE_DROP = 2;\\n uint8 internal constant OPTION_TYPE_LZCOMPOSE = 3;\\n uint8 internal constant OPTION_TYPE_ORDERED_EXECUTION = 4;\\n\\n error Executor_InvalidLzReceiveOption();\\n error Executor_InvalidNativeDropOption();\\n error Executor_InvalidLzComposeOption();\\n\\n /// @dev decode the next executor option from the options starting from the specified cursor\\n /// @param _options [executor_id][executor_option][executor_id][executor_option]...\\n /// executor_option = [option_size][option_type][option]\\n /// option_size = len(option_type) + len(option)\\n /// executor_id: uint8, option_size: uint16, option_type: uint8, option: bytes\\n /// @param _cursor the cursor to start decoding from\\n /// @return optionType the type of the option\\n /// @return option the option of the executor\\n /// @return cursor the cursor to start decoding the next executor option\\n function nextExecutorOption(\\n bytes calldata _options,\\n uint256 _cursor\\n ) internal pure returns (uint8 optionType, bytes calldata option, uint256 cursor) {\\n unchecked {\\n // skip worker id\\n cursor = _cursor + 1;\\n\\n // read option size\\n uint16 size = _options.toU16(cursor);\\n cursor += 2;\\n\\n // read option type\\n optionType = _options.toU8(cursor);\\n\\n // startCursor and endCursor are used to slice the option from _options\\n uint256 startCursor = cursor + 1; // skip option type\\n uint256 endCursor = cursor + size;\\n option = _options[startCursor:endCursor];\\n cursor += size;\\n }\\n }\\n\\n function decodeLzReceiveOption(bytes calldata _option) internal pure returns (uint128 gas, uint128 value) {\\n if (_option.length != 16 && _option.length != 32) revert Executor_InvalidLzReceiveOption();\\n gas = _option.toU128(0);\\n value = _option.length == 32 ? _option.toU128(16) : 0;\\n }\\n\\n function decodeNativeDropOption(bytes calldata _option) internal pure returns (uint128 amount, bytes32 receiver) {\\n if (_option.length != 48) revert Executor_InvalidNativeDropOption();\\n amount = _option.toU128(0);\\n receiver = _option.toB32(16);\\n }\\n\\n function decodeLzComposeOption(\\n bytes calldata _option\\n ) internal pure returns (uint16 index, uint128 gas, uint128 value) {\\n if (_option.length != 18 && _option.length != 34) revert Executor_InvalidLzComposeOption();\\n index = _option.toU16(0);\\n gas = _option.toU128(2);\\n value = _option.length == 34 ? _option.toU128(18) : 0;\\n }\\n\\n function encodeLzReceiveOption(uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_gas) : abi.encodePacked(_gas, _value);\\n }\\n\\n function encodeNativeDropOption(uint128 _amount, bytes32 _receiver) internal pure returns (bytes memory) {\\n return abi.encodePacked(_amount, _receiver);\\n }\\n\\n function encodeLzComposeOption(uint16 _index, uint128 _gas, uint128 _value) internal pure returns (bytes memory) {\\n return _value == 0 ? abi.encodePacked(_index, _gas) : abi.encodePacked(_index, _gas, _value);\\n }\\n}\\n\",\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"content\":\"// SPDX-License-Identifier: LZBL-1.2\\n\\npragma solidity ^0.8.20;\\n\\nimport { Packet } from \\\"../../interfaces/ISendLib.sol\\\";\\nimport { AddressCast } from \\\"../../libs/AddressCast.sol\\\";\\n\\nlibrary PacketV1Codec {\\n using AddressCast for address;\\n using AddressCast for bytes32;\\n\\n uint8 internal constant PACKET_VERSION = 1;\\n\\n // header (version + nonce + path)\\n // version\\n uint256 private constant PACKET_VERSION_OFFSET = 0;\\n // nonce\\n uint256 private constant NONCE_OFFSET = 1;\\n // path\\n uint256 private constant SRC_EID_OFFSET = 9;\\n uint256 private constant SENDER_OFFSET = 13;\\n uint256 private constant DST_EID_OFFSET = 45;\\n uint256 private constant RECEIVER_OFFSET = 49;\\n // payload (guid + message)\\n uint256 private constant GUID_OFFSET = 81; // keccak256(nonce + path)\\n uint256 private constant MESSAGE_OFFSET = 113;\\n\\n function encode(Packet memory _packet) internal pure returns (bytes memory encodedPacket) {\\n encodedPacket = abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver,\\n _packet.guid,\\n _packet.message\\n );\\n }\\n\\n function encodePacketHeader(Packet memory _packet) internal pure returns (bytes memory) {\\n return\\n abi.encodePacked(\\n PACKET_VERSION,\\n _packet.nonce,\\n _packet.srcEid,\\n _packet.sender.toBytes32(),\\n _packet.dstEid,\\n _packet.receiver\\n );\\n }\\n\\n function encodePayload(Packet memory _packet) internal pure returns (bytes memory) {\\n return abi.encodePacked(_packet.guid, _packet.message);\\n }\\n\\n function header(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return _packet[0:GUID_OFFSET];\\n }\\n\\n function version(bytes calldata _packet) internal pure returns (uint8) {\\n return uint8(bytes1(_packet[PACKET_VERSION_OFFSET:NONCE_OFFSET]));\\n }\\n\\n function nonce(bytes calldata _packet) internal pure returns (uint64) {\\n return uint64(bytes8(_packet[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n function srcEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[SRC_EID_OFFSET:SENDER_OFFSET]));\\n }\\n\\n function sender(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[SENDER_OFFSET:DST_EID_OFFSET]);\\n }\\n\\n function senderAddressB20(bytes calldata _packet) internal pure returns (address) {\\n return sender(_packet).toAddress();\\n }\\n\\n function dstEid(bytes calldata _packet) internal pure returns (uint32) {\\n return uint32(bytes4(_packet[DST_EID_OFFSET:RECEIVER_OFFSET]));\\n }\\n\\n function receiver(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[RECEIVER_OFFSET:GUID_OFFSET]);\\n }\\n\\n function receiverB20(bytes calldata _packet) internal pure returns (address) {\\n return receiver(_packet).toAddress();\\n }\\n\\n function guid(bytes calldata _packet) internal pure returns (bytes32) {\\n return bytes32(_packet[GUID_OFFSET:MESSAGE_OFFSET]);\\n }\\n\\n function message(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[MESSAGE_OFFSET:]);\\n }\\n\\n function payload(bytes calldata _packet) internal pure returns (bytes calldata) {\\n return bytes(_packet[GUID_OFFSET:]);\\n }\\n\\n function payloadHash(bytes calldata _packet) internal pure returns (bytes32) {\\n return keccak256(payload(_packet));\\n }\\n}\\n\",\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\"},\"@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\n/// @title ONFT Composed Message Codec\\n/// @notice Library for encoding and decoding ONFT composed messages.\\nlibrary ONFTComposeMsgCodec {\\n // Offset constants for decoding composed messages\\n uint8 private constant NONCE_OFFSET = 8;\\n uint8 private constant SRC_EID_OFFSET = 12;\\n uint8 private constant COMPOSE_FROM_OFFSET = 44;\\n\\n /// @dev Encodes a ONFT721 composed message.\\n /// @param _nonce The nonce value.\\n /// @param _srcEid The source LayerZero endpoint ID.\\n /// @param _composeMsg The composed message.\\n /// @return payload The encoded payload, including the composed message.\\n function encode(\\n uint64 _nonce,\\n uint32 _srcEid,\\n bytes memory _composeMsg // 0x[composeFrom][composeMsg]\\n ) internal pure returns (bytes memory payload) {\\n payload = abi.encodePacked(_nonce, _srcEid, _composeMsg);\\n }\\n\\n /// @dev Retrieves the nonce from the composed message.\\n /// @param _msg The message.\\n /// @return parsedNonce The nonce value.\\n function nonce(bytes calldata _msg) internal pure returns (uint64 parsedNonce) {\\n parsedNonce = uint64(bytes8(_msg[:NONCE_OFFSET]));\\n }\\n\\n /// @dev Retrieves the source LayerZero endpoint ID from the composed message.\\n /// @param _msg The message.\\n /// @return parsedSrcEid The source LayerZero endpoint ID.\\n function srcEid(bytes calldata _msg) internal pure returns (uint32 parsedSrcEid) {\\n parsedSrcEid = uint32(bytes4(_msg[NONCE_OFFSET:SRC_EID_OFFSET]));\\n }\\n\\n /// @dev Retrieves the composeFrom value from the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeFrom The composeFrom value as bytes32.\\n function composeFrom(bytes calldata _msg) internal pure returns (bytes32 parsedComposeFrom) {\\n parsedComposeFrom = bytes32(_msg[SRC_EID_OFFSET:COMPOSE_FROM_OFFSET]);\\n }\\n\\n /// @dev Retrieves the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeMsg The composed message.\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\\n parsedComposeMsg = _msg[COMPOSE_FROM_OFFSET:];\\n }\\n\\n /// @dev Converts an address to bytes32.\\n /// @param _addr The address to convert.\\n /// @return bytes32Repr The bytes32 representation of the address.\\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\\n bytes32Repr = bytes32(uint256(uint160(_addr)));\\n }\\n\\n /// @dev Converts bytes32 to an address.\\n /// @param _b The bytes32 value to convert.\\n /// @return addressRepr The address representation of bytes32.\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\\n addressRepr = address(uint160(uint256(_b)));\\n }\\n}\\n\",\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { ERC721 } from \\\"@openzeppelin/contracts/token/ERC721/ERC721.sol\\\";\\nimport { IONFT721, ONFT721Core } from \\\"./ONFT721Core.sol\\\";\\n\\n/// @title ONFT721 Contract\\n/// @dev ONFT721 is an ERC-721 token that extends the functionality of the ONFT721Core contract.\\nabstract contract ONFT721 is ONFT721Core, ERC721 {\\n /// @dev Constructor for the ONFT721 contract.\\n /// @param _name The name of the ONFT.\\n /// @param _symbol The symbol of the ONFT.\\n /// @param _lzEndpoint The LayerZero endpoint address.\\n /// @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n constructor(\\n string memory _name,\\n string memory _symbol,\\n address _lzEndpoint,\\n address _delegate\\n ) ERC721(_name, _symbol) ONFT721Core(_lzEndpoint, _delegate) {}\\n\\n /// @notice Retrieves the address of the underlying ERC721 implementation (ie. this contract).\\n function token() external view returns (address) {\\n return address(this);\\n }\\n\\n /// @notice Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\\n /// @dev In the case of ONFT where the contract IS the token, approval is NOT required.\\n /// @return requiresApproval Needs approval of the underlying token implementation.\\n function approvalRequired() external pure virtual returns (bool) {\\n return false;\\n }\\n\\n function _debit(address _from, uint256 _tokenId, uint32 /*_dstEid*/) internal virtual override {\\n if (_from != ERC721.ownerOf(_tokenId)) revert OnlyNFTOwner(_from, ERC721.ownerOf(_tokenId));\\n _burn(_tokenId);\\n }\\n\\n function _credit(address _to, uint256 _tokenId, uint32 /*_srcEid*/) internal virtual override {\\n _mint(_to, _tokenId);\\n }\\n}\\n\",\"keccak256\":\"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { OApp, Origin } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\\\";\\nimport { IOAppMsgInspector } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\\\";\\nimport { OAppOptionsType3 } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\\\";\\n\\nimport { OAppPreCrimeSimulator } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\\\";\\n\\nimport { IONFT721, MessagingFee, MessagingReceipt, SendParam } from \\\"./interfaces/IONFT721.sol\\\";\\nimport { ONFT721MsgCodec } from \\\"./libs/ONFT721MsgCodec.sol\\\";\\nimport { ONFTComposeMsgCodec } from \\\"../libs/ONFTComposeMsgCodec.sol\\\";\\nimport { OptionsBuilder } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\\\";\\n\\nimport { SafeCast } from \\\"@openzeppelin/contracts/utils/math/SafeCast.sol\\\";\\n\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\n\\n/// @title ONFT721Core\\n/// @dev Abstract contract for an ONFT721 token.\\nabstract contract ONFT721Core is IONFT721, OApp, OAppPreCrimeSimulator, OAppOptionsType3 {\\n using ONFT721MsgCodec for bytes;\\n using ONFT721MsgCodec for bytes32;\\n using ONFT721MsgCodec for uint256;\\n using OptionsBuilder for bytes;\\n\\n // @notice Msg types that are used to identify the various OFT operations.\\n // @dev This can be extended in child contracts for non-default oft operations\\n // @dev These values are used in things like combineOptions() in OAppOptionsType3.sol.\\n uint16 public constant SEND = 1;\\n uint16 public constant SEND_AND_COMPOSE = 2;\\n\\n // Address of an optional contract to inspect both 'message' and 'options'\\n address public msgInspector;\\n\\n event MsgInspectorSet(address inspector);\\n\\n /// @param _lzEndpoint The address of the LayerZero endpoint.\\n /// @param _delegate The delegate capable of making OApp configurations inside of the endpoint.\\n constructor(address _lzEndpoint, address _delegate) Ownable(_delegate) OApp(_lzEndpoint, _delegate) {}\\n\\n /// @notice Retrieves interfaceID and the version of the ONFT.\\n /// @return interfaceId The interface ID (0x94642228).\\n /// @return version The version.\\n /// @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\\n /// @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\\n /// @dev ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\\n function onftVersion() external pure virtual returns (bytes4 interfaceId, uint64 version) {\\n return (type(IONFT721).interfaceId, 1);\\n }\\n\\n function quoteSend(\\n SendParam calldata _sendParam,\\n bool _payInLzToken\\n ) external view virtual returns (MessagingFee memory msgFee) {\\n if (_sendParam.to == bytes32(0)) revert InvalidReceiver();\\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam);\\n return _quote(_sendParam.dstEid, message, options, _payInLzToken);\\n }\\n\\n function send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) external payable virtual returns (MessagingReceipt memory msgReceipt) {\\n if (_sendParam.to == bytes32(0)) revert InvalidReceiver();\\n _debit(msg.sender, _sendParam.tokenId, _sendParam.dstEid);\\n\\n (bytes memory message, bytes memory options) = _buildMsgAndOptions(_sendParam);\\n\\n // @dev Sends the message to the LayerZero Endpoint, returning the MessagingReceipt.\\n msgReceipt = _lzSend(_sendParam.dstEid, message, options, _fee, _refundAddress);\\n emit ONFTSent(msgReceipt.guid, _sendParam.dstEid, msg.sender, _sendParam.tokenId);\\n }\\n\\n /// @dev Internal function to build the message and options.\\n /// @param _sendParam The parameters for the send() operation.\\n /// @return message The encoded message.\\n /// @return options The encoded options.\\n function _buildMsgAndOptions(\\n SendParam calldata _sendParam\\n ) internal view virtual returns (bytes memory message, bytes memory options) {\\n bool hasCompose;\\n (message, hasCompose) = ONFT721MsgCodec.encode(_sendParam.to, _sendParam.tokenId, _sendParam.composeMsg);\\n uint16 msgType = hasCompose ? SEND_AND_COMPOSE : SEND;\\n\\n options = combineOptions(_sendParam.dstEid, msgType, _sendParam.extraOptions);\\n\\n // @dev Optionally inspect the message and options depending if the OApp owner has set a msg inspector.\\n // @dev If it fails inspection, needs to revert in the implementation. ie. does not rely on return boolean\\n if (msgInspector != address(0)) IOAppMsgInspector(msgInspector).inspect(message, options);\\n }\\n\\n /// @dev Internal function to handle the receive on the LayerZero endpoint.\\n /// @param _origin The origin information.\\n /// - srcEid: The source chain endpoint ID.\\n /// - sender: The sender address from the src chain.\\n /// - nonce: The nonce of the LayerZero message.\\n /// @param _guid The unique identifier for the received LayerZero message.\\n /// @param _message The encoded message.\\n /// @dev _executor The address of the executor.\\n /// @dev _extraData Additional data.\\n function _lzReceive(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address /*_executor*/, // @dev unused in the default implementation.\\n bytes calldata /*_extraData*/ // @dev unused in the default implementation.\\n ) internal virtual override {\\n address toAddress = _message.sendTo().bytes32ToAddress();\\n uint256 tokenId = _message.tokenId();\\n\\n _credit(toAddress, tokenId, _origin.srcEid);\\n\\n if (_message.isComposed()) {\\n bytes memory composeMsg = ONFTComposeMsgCodec.encode(_origin.nonce, _origin.srcEid, _message.composeMsg());\\n endpoint.sendCompose(toAddress, _guid, 0 /* the index of composed message*/, composeMsg);\\n }\\n\\n emit ONFTReceived(_guid, _origin.srcEid, toAddress, tokenId);\\n }\\n\\n /// @dev Internal function to handle the OAppPreCrimeSimulator simulated receive.\\n /// @param _origin The origin information.\\n /// - srcEid: The source chain endpoint ID.\\n /// - sender: The sender address from the src chain.\\n /// - nonce: The nonce of the LayerZero message.\\n /// @param _guid The unique identifier for the received LayerZero message.\\n /// @param _message The LayerZero message.\\n /// @param _executor The address of the off-chain executor.\\n /// @param _extraData Arbitrary data passed by the msg executor.\\n /// @dev Enables the preCrime simulator to mock sending lzReceive() messages,\\n /// routes the msg down from the OAppPreCrimeSimulator, and back up to the OAppReceiver.\\n function _lzReceiveSimulate(\\n Origin calldata _origin,\\n bytes32 _guid,\\n bytes calldata _message,\\n address _executor,\\n bytes calldata _extraData\\n ) internal virtual override {\\n _lzReceive(_origin, _guid, _message, _executor, _extraData);\\n }\\n\\n /// @dev Check if the peer is considered 'trusted' by the OApp.\\n /// @param _eid The endpoint ID to check.\\n /// @param _peer The peer to check.\\n /// @return Whether the peer passed is considered 'trusted' by the OApp.\\n /// @dev Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\\n function isPeer(uint32 _eid, bytes32 _peer) public view virtual override returns (bool) {\\n return peers[_eid] == _peer;\\n }\\n\\n /// @notice Sets the message inspector address for the OFT.\\n /// @param _msgInspector The address of the message inspector.\\n /// @dev This is an optional contract that can be used to inspect both 'message' and 'options'.\\n /// @dev Set it to address(0) to disable it, or set it to a contract address to enable it.\\n function setMsgInspector(address _msgInspector) public virtual onlyOwner {\\n msgInspector = _msgInspector;\\n emit MsgInspectorSet(_msgInspector);\\n }\\n\\n function _debit(address /*_from*/, uint256 /*_tokenId*/, uint32 /*_dstEid*/) internal virtual;\\n\\n function _credit(address /*_to*/, uint256 /*_tokenId*/, uint32 /*_srcEid*/) internal virtual;\\n}\\n\",\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\nimport { MessagingFee, MessagingReceipt } from \\\"@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\\\";\\n\\n/// @dev Struct representing token parameters for the ONFT send() operation.\\nstruct SendParam {\\n uint32 dstEid; // Destination LayerZero EndpointV2 ID.\\n bytes32 to; // Recipient address.\\n uint256 tokenId;\\n bytes extraOptions; // Additional options supplied by the caller to be used in the LayerZero message.\\n bytes composeMsg; // The composed message for the send() operation.\\n bytes onftCmd; // The ONFT command to be executed, unused in default ONFT implementations.\\n}\\n\\n/// @title IONFT\\n/// @dev Interface for the ONFT721 token.\\n/// @dev Does not inherit ERC721 to accommodate usage by OFT721Adapter.\\ninterface IONFT721 {\\n // Custom error messages\\n error InvalidReceiver();\\n error OnlyNFTOwner(address caller, address owner);\\n\\n // Events\\n event ONFTSent(\\n bytes32 indexed guid, // GUID of the ONFT message.\\n uint32 dstEid, // Destination Endpoint ID.\\n address indexed fromAddress, // Address of the sender on the src chain.\\n uint256 tokenId // ONFT ID sent.\\n );\\n\\n event ONFTReceived(\\n bytes32 indexed guid, // GUID of the ONFT message.\\n uint32 srcEid, // Source Endpoint ID.\\n address indexed toAddress, // Address of the recipient on the dst chain.\\n uint256 tokenId // ONFT ID received.\\n );\\n\\n /// @notice Retrieves interfaceID and the version of the ONFT.\\n /// @return interfaceId The interface ID.\\n /// @return version The version.\\n /// @dev interfaceId: This specific interface ID is '0x94642228'.\\n /// @dev version: Indicates a cross-chain compatible msg encoding with other ONFTs.\\n /// @dev If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.\\n /// ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\\n function onftVersion() external view returns (bytes4 interfaceId, uint64 version);\\n\\n /// @notice Retrieves the address of the token associated with the ONFT.\\n /// @return token The address of the ERC721 token implementation.\\n function token() external view returns (address);\\n\\n /// @notice Indicates whether the OFT contract requires approval of the 'token()' to send.\\n /// @return requiresApproval Needs approval of the underlying token implementation.\\n /// @dev Allows things like wallet implementers to determine integration requirements,\\n /// without understanding the underlying token implementation.\\n function approvalRequired() external view returns (bool);\\n\\n /// @notice Provides a quote for the send() operation.\\n /// @param _sendParam The parameters for the send() operation.\\n /// @param _payInLzToken Flag indicating whether the caller is paying in the LZ token.\\n /// @return fee The calculated LayerZero messaging fee from the send() operation.\\n /// @dev MessagingFee: LayerZero msg fee\\n /// - nativeFee: The native fee.\\n /// - lzTokenFee: The lzToken fee.\\n function quoteSend(SendParam calldata _sendParam, bool _payInLzToken) external view returns (MessagingFee memory);\\n\\n /// @notice Executes the send() operation.\\n /// @param _sendParam The parameters for the send operation.\\n /// @param _fee The fee information supplied by the caller.\\n /// - nativeFee: The native fee.\\n /// - lzTokenFee: The lzToken fee.\\n /// @param _refundAddress The address to receive any excess funds from fees etc. on the src.\\n /// @return receipt The LayerZero messaging receipt from the send() operation.\\n /// @dev MessagingReceipt: LayerZero msg receipt\\n /// - guid: The unique identifier for the sent message.\\n /// - nonce: The nonce of the sent message.\\n /// - fee: The LayerZero fee incurred for the message.\\n function send(\\n SendParam calldata _sendParam,\\n MessagingFee calldata _fee,\\n address _refundAddress\\n ) external payable returns (MessagingReceipt memory);\\n}\\n\",\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\"},\"@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.22;\\n\\n/// @title ONFT721MsgCodec\\n/// @notice Library for encoding and decoding ONFT721 LayerZero messages.\\nlibrary ONFT721MsgCodec {\\n uint8 private constant SEND_TO_OFFSET = 32;\\n uint8 private constant TOKEN_ID_OFFSET = 64;\\n\\n /// @dev Encodes an ONFT721 LayerZero message payload.\\n /// @param _sendTo The recipient address.\\n /// @param _tokenId The ID of the token to transfer.\\n /// @param _composeMsg The composed payload.\\n /// @return payload The encoded message payload.\\n /// @return hasCompose A boolean indicating whether the message payload contains a composed payload.\\n function encode(\\n bytes32 _sendTo,\\n uint256 _tokenId,\\n bytes memory _composeMsg\\n ) internal view returns (bytes memory payload, bool hasCompose) {\\n hasCompose = _composeMsg.length > 0;\\n payload = hasCompose\\n ? abi.encodePacked(_sendTo, _tokenId, addressToBytes32(msg.sender), _composeMsg)\\n : abi.encodePacked(_sendTo, _tokenId);\\n }\\n\\n /// @dev Decodes sendTo from the ONFT LayerZero message.\\n /// @param _msg The message.\\n /// @return parsedSendTo The recipient address in bytes32 format.\\n function sendTo(bytes calldata _msg) internal pure returns (bytes32 parsedSendTo) {\\n parsedSendTo = bytes32(_msg[:SEND_TO_OFFSET]);\\n }\\n\\n /// @dev Decodes tokenId from the ONFT LayerZero message.\\n /// @param _msg The message.\\n /// @return parsedTokenId The ID of the tokens to transfer.\\n function tokenId(bytes calldata _msg) internal pure returns (uint256 parsedTokenId) {\\n parsedTokenId = abi.decode(_msg[SEND_TO_OFFSET:TOKEN_ID_OFFSET], (uint256));\\n }\\n\\n /// @dev Decodes whether there is a composed payload.\\n /// @param _msg The message.\\n /// @return parsedIsComposed A boolean indicating whether the message has a composed payload.\\n function isComposed(bytes calldata _msg) internal pure returns (bool parsedIsComposed) {\\n parsedIsComposed = _msg.length > TOKEN_ID_OFFSET;\\n }\\n\\n /// @dev Decodes the composed message.\\n /// @param _msg The message.\\n /// @return parsedComposeMsg The composed message.\\n function composeMsg(bytes calldata _msg) internal pure returns (bytes memory parsedComposeMsg) {\\n parsedComposeMsg = _msg[TOKEN_ID_OFFSET:];\\n }\\n\\n /// @dev Converts an address to bytes32.\\n /// @param _addr The address to convert.\\n /// @return bytes32Repr The bytes32 representation of the address.\\n function addressToBytes32(address _addr) internal pure returns (bytes32 bytes32Repr) {\\n bytes32Repr = bytes32(uint256(uint160(_addr)));\\n }\\n\\n /// @dev Converts bytes32 to an address.\\n /// @param _b The bytes32 value to convert.\\n /// @return addressRepr The address representation of bytes32.\\n function bytes32ToAddress(bytes32 _b) internal pure returns (address addressRepr) {\\n addressRepr = address(uint160(uint256(_b)));\\n }\\n}\\n\",\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Context} from \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * The initial owner is set to the address provided by the deployer. This can\\n * later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n address private _owner;\\n\\n /**\\n * @dev The caller account is not authorized to perform an operation.\\n */\\n error OwnableUnauthorizedAccount(address account);\\n\\n /**\\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\\n */\\n error OwnableInvalidOwner(address owner);\\n\\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\\n */\\n constructor(address initialOwner) {\\n if (initialOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(initialOwner);\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n _checkOwner();\\n _;\\n }\\n\\n /**\\n * @dev Returns the address of the current owner.\\n */\\n function owner() public view virtual returns (address) {\\n return _owner;\\n }\\n\\n /**\\n * @dev Throws if the sender is not the owner.\\n */\\n function _checkOwner() internal view virtual {\\n if (owner() != _msgSender()) {\\n revert OwnableUnauthorizedAccount(_msgSender());\\n }\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby disabling any functionality that is only available to the owner.\\n */\\n function renounceOwnership() public virtual onlyOwner {\\n _transferOwnership(address(0));\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Can only be called by the current owner.\\n */\\n function transferOwnership(address newOwner) public virtual onlyOwner {\\n if (newOwner == address(0)) {\\n revert OwnableInvalidOwner(address(0));\\n }\\n _transferOwnership(newOwner);\\n }\\n\\n /**\\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n * Internal function without access restriction.\\n */\\n function _transferOwnership(address newOwner) internal virtual {\\n address oldOwner = _owner;\\n _owner = newOwner;\\n emit OwnershipTransferred(oldOwner, newOwner);\\n }\\n}\\n\",\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\"},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard ERC20 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\\n */\\ninterface IERC20Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC20InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC20InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\\n * @param needed Minimum amount required to perform a transfer.\\n */\\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC20InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\\n * @param spender Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC20InvalidSpender(address spender);\\n}\\n\\n/**\\n * @dev Standard ERC721 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\\n */\\ninterface IERC721Errors {\\n /**\\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\\n * Used in balance queries.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721InvalidOwner(address owner);\\n\\n /**\\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721NonexistentToken(uint256 tokenId);\\n\\n /**\\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param tokenId Identifier number of a token.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC721InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC721InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC721InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC721InvalidOperator(address operator);\\n}\\n\\n/**\\n * @dev Standard ERC1155 Errors\\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\\n */\\ninterface IERC1155Errors {\\n /**\\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n * @param balance Current balance for the interacting account.\\n * @param needed Minimum amount required to perform a transfer.\\n * @param tokenId Identifier number of a token.\\n */\\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\\n\\n /**\\n * @dev Indicates a failure with the token `sender`. Used in transfers.\\n * @param sender Address whose tokens are being transferred.\\n */\\n error ERC1155InvalidSender(address sender);\\n\\n /**\\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\\n * @param receiver Address to which tokens are being transferred.\\n */\\n error ERC1155InvalidReceiver(address receiver);\\n\\n /**\\n * @dev Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n * @param owner Address of the current owner of a token.\\n */\\n error ERC1155MissingApprovalForAll(address operator, address owner);\\n\\n /**\\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\\n * @param approver Address initiating an approval operation.\\n */\\n error ERC1155InvalidApprover(address approver);\\n\\n /**\\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\\n * @param operator Address that may be allowed to operate on tokens without being their owner.\\n */\\n error ERC1155InvalidOperator(address operator);\\n\\n /**\\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\\n * Used in batch transfers.\\n * @param idsLength Length of the array of token identifiers\\n * @param valuesLength Length of the array of token amounts\\n */\\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\\n}\\n\",\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n /**\\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n * another (`to`).\\n *\\n * Note that `value` may be zero.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n /**\\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n * a call to {approve}. `value` is the new allowance.\\n */\\n event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n /**\\n * @dev Returns the value of tokens in existence.\\n */\\n function totalSupply() external view returns (uint256);\\n\\n /**\\n * @dev Returns the value of tokens owned by `account`.\\n */\\n function balanceOf(address account) external view returns (uint256);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transfer(address to, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Returns the remaining number of tokens that `spender` will be\\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n * zero by default.\\n *\\n * This value changes when {approve} or {transferFrom} are called.\\n */\\n function allowance(address owner, address spender) external view returns (uint256);\\n\\n /**\\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\\n * caller's tokens.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n * that someone may use both the old and the new allowance by unfortunate\\n * transaction ordering. One possible solution to mitigate this race\\n * condition is to first reduce the spender's allowance to 0 and set the\\n * desired value afterwards:\\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address spender, uint256 value) external returns (bool);\\n\\n /**\\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\\n * allowance mechanism. `value` is then deducted from the caller's\\n * allowance.\\n *\\n * Returns a boolean value indicating whether the operation succeeded.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 value) external returns (bool);\\n}\\n\",\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n *\\n * ==== Security Considerations\\n *\\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\\n * generally recommended is:\\n *\\n * ```solidity\\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\\n * try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\\n * doThing(..., value);\\n * }\\n *\\n * function doThing(..., uint256 value) public {\\n * token.safeTransferFrom(msg.sender, address(this), value);\\n * ...\\n * }\\n * ```\\n *\\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\\n * {SafeERC20-safeTransferFrom}).\\n *\\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\\n * contracts should have entry points that don't rely on permit.\\n */\\ninterface IERC20Permit {\\n /**\\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n * given ``owner``'s signed approval.\\n *\\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n * ordering also apply here.\\n *\\n * Emits an {Approval} event.\\n *\\n * Requirements:\\n *\\n * - `spender` cannot be the zero address.\\n * - `deadline` must be a timestamp in the future.\\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n * over the EIP712-formatted function arguments.\\n * - the signature must use ``owner``'s current nonce (see {nonces}).\\n *\\n * For more information on the signature format, see the\\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n * section].\\n *\\n * CAUTION: See Security Considerations above.\\n */\\n function permit(\\n address owner,\\n address spender,\\n uint256 value,\\n uint256 deadline,\\n uint8 v,\\n bytes32 r,\\n bytes32 s\\n ) external;\\n\\n /**\\n * @dev Returns the current nonce for `owner`. This value must be\\n * included whenever a signature is generated for {permit}.\\n *\\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n * prevents a signature from being used multiple times.\\n */\\n function nonces(address owner) external view returns (uint256);\\n\\n /**\\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n */\\n // solhint-disable-next-line func-name-mixedcase\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC20} from \\\"../IERC20.sol\\\";\\nimport {IERC20Permit} from \\\"../extensions/IERC20Permit.sol\\\";\\nimport {Address} from \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n using Address for address;\\n\\n /**\\n * @dev An operation with an ERC20 token failed.\\n */\\n error SafeERC20FailedOperation(address token);\\n\\n /**\\n * @dev Indicates a failed `decreaseAllowance` request.\\n */\\n error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);\\n\\n /**\\n * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transfer, (to, value)));\\n }\\n\\n /**\\n * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n */\\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n _callOptionalReturn(token, abi.encodeCall(token.transferFrom, (from, to, value)));\\n }\\n\\n /**\\n * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful.\\n */\\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n uint256 oldAllowance = token.allowance(address(this), spender);\\n forceApprove(token, spender, oldAllowance + value);\\n }\\n\\n /**\\n * @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no\\n * value, non-reverting calls are assumed to be successful.\\n */\\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 requestedDecrease) internal {\\n unchecked {\\n uint256 currentAllowance = token.allowance(address(this), spender);\\n if (currentAllowance < requestedDecrease) {\\n revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);\\n }\\n forceApprove(token, spender, currentAllowance - requestedDecrease);\\n }\\n }\\n\\n /**\\n * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n * to be set to zero before setting it to a non-zero value, such as USDT.\\n */\\n function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n bytes memory approvalCall = abi.encodeCall(token.approve, (spender, value));\\n\\n if (!_callOptionalReturnBool(token, approvalCall)) {\\n _callOptionalReturn(token, abi.encodeCall(token.approve, (spender, 0)));\\n _callOptionalReturn(token, approvalCall);\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n */\\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n // the target address contains contract code and also asserts for success in the low-level call.\\n\\n bytes memory returndata = address(token).functionCall(data);\\n if (returndata.length != 0 && !abi.decode(returndata, (bool))) {\\n revert SafeERC20FailedOperation(address(token));\\n }\\n }\\n\\n /**\\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n * on the return value: the return value is optional (but if data is returned, it must not be false).\\n * @param token The token targeted by the call.\\n * @param data The call data (encoded using abi.encode or one of its variants).\\n *\\n * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n */\\n function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n // and not revert is the subcall reverts.\\n\\n (bool success, bytes memory returndata) = address(token).call(data);\\n return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && address(token).code.length > 0;\\n }\\n}\\n\",\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC721} from \\\"./IERC721.sol\\\";\\nimport {IERC721Receiver} from \\\"./IERC721Receiver.sol\\\";\\nimport {IERC721Metadata} from \\\"./extensions/IERC721Metadata.sol\\\";\\nimport {Context} from \\\"../../utils/Context.sol\\\";\\nimport {Strings} from \\\"../../utils/Strings.sol\\\";\\nimport {IERC165, ERC165} from \\\"../../utils/introspection/ERC165.sol\\\";\\nimport {IERC721Errors} from \\\"../../interfaces/draft-IERC6093.sol\\\";\\n\\n/**\\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\\n * {ERC721Enumerable}.\\n */\\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\\n using Strings for uint256;\\n\\n // Token name\\n string private _name;\\n\\n // Token symbol\\n string private _symbol;\\n\\n mapping(uint256 tokenId => address) private _owners;\\n\\n mapping(address owner => uint256) private _balances;\\n\\n mapping(uint256 tokenId => address) private _tokenApprovals;\\n\\n mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\\n\\n /**\\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\\n */\\n constructor(string memory name_, string memory symbol_) {\\n _name = name_;\\n _symbol = symbol_;\\n }\\n\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\n return\\n interfaceId == type(IERC721).interfaceId ||\\n interfaceId == type(IERC721Metadata).interfaceId ||\\n super.supportsInterface(interfaceId);\\n }\\n\\n /**\\n * @dev See {IERC721-balanceOf}.\\n */\\n function balanceOf(address owner) public view virtual returns (uint256) {\\n if (owner == address(0)) {\\n revert ERC721InvalidOwner(address(0));\\n }\\n return _balances[owner];\\n }\\n\\n /**\\n * @dev See {IERC721-ownerOf}.\\n */\\n function ownerOf(uint256 tokenId) public view virtual returns (address) {\\n return _requireOwned(tokenId);\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-name}.\\n */\\n function name() public view virtual returns (string memory) {\\n return _name;\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-symbol}.\\n */\\n function symbol() public view virtual returns (string memory) {\\n return _symbol;\\n }\\n\\n /**\\n * @dev See {IERC721Metadata-tokenURI}.\\n */\\n function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\\n _requireOwned(tokenId);\\n\\n string memory baseURI = _baseURI();\\n return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \\\"\\\";\\n }\\n\\n /**\\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\\n * by default, can be overridden in child contracts.\\n */\\n function _baseURI() internal view virtual returns (string memory) {\\n return \\\"\\\";\\n }\\n\\n /**\\n * @dev See {IERC721-approve}.\\n */\\n function approve(address to, uint256 tokenId) public virtual {\\n _approve(to, tokenId, _msgSender());\\n }\\n\\n /**\\n * @dev See {IERC721-getApproved}.\\n */\\n function getApproved(uint256 tokenId) public view virtual returns (address) {\\n _requireOwned(tokenId);\\n\\n return _getApproved(tokenId);\\n }\\n\\n /**\\n * @dev See {IERC721-setApprovalForAll}.\\n */\\n function setApprovalForAll(address operator, bool approved) public virtual {\\n _setApprovalForAll(_msgSender(), operator, approved);\\n }\\n\\n /**\\n * @dev See {IERC721-isApprovedForAll}.\\n */\\n function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\\n return _operatorApprovals[owner][operator];\\n }\\n\\n /**\\n * @dev See {IERC721-transferFrom}.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) public virtual {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n // Setting an \\\"auth\\\" arguments enables the `_isAuthorized` check which verifies that the token exists\\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\\n address previousOwner = _update(to, tokenId, _msgSender());\\n if (previousOwner != from) {\\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\\n }\\n }\\n\\n /**\\n * @dev See {IERC721-safeTransferFrom}.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\\n safeTransferFrom(from, to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev See {IERC721-safeTransferFrom}.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\\n transferFrom(from, to, tokenId);\\n _checkOnERC721Received(from, to, tokenId, data);\\n }\\n\\n /**\\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\\n *\\n * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\\n * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\\n * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\\n * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\\n */\\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\\n return _owners[tokenId];\\n }\\n\\n /**\\n * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\\n */\\n function _getApproved(uint256 tokenId) internal view virtual returns (address) {\\n return _tokenApprovals[tokenId];\\n }\\n\\n /**\\n * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\\n * particular (ignoring whether it is owned by `owner`).\\n *\\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\\n * assumption.\\n */\\n function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\\n return\\n spender != address(0) &&\\n (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\\n }\\n\\n /**\\n * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\\n * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\\n * the `spender` for the specific `tokenId`.\\n *\\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\\n * assumption.\\n */\\n function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\\n if (!_isAuthorized(owner, spender, tokenId)) {\\n if (owner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n } else {\\n revert ERC721InsufficientApproval(spender, tokenId);\\n }\\n }\\n }\\n\\n /**\\n * @dev Unsafe write access to the balances, used by extensions that \\\"mint\\\" tokens using an {ownerOf} override.\\n *\\n * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\\n * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\\n *\\n * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\\n * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\\n * remain consistent with one another.\\n */\\n function _increaseBalance(address account, uint128 value) internal virtual {\\n unchecked {\\n _balances[account] += value;\\n }\\n }\\n\\n /**\\n * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\\n * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\\n *\\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that\\n * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\\n *\\n * Emits a {Transfer} event.\\n *\\n * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\\n */\\n function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\\n address from = _ownerOf(tokenId);\\n\\n // Perform (optional) operator check\\n if (auth != address(0)) {\\n _checkAuthorized(from, auth, tokenId);\\n }\\n\\n // Execute the update\\n if (from != address(0)) {\\n // Clear approval. No need to re-authorize or emit the Approval event\\n _approve(address(0), tokenId, address(0), false);\\n\\n unchecked {\\n _balances[from] -= 1;\\n }\\n }\\n\\n if (to != address(0)) {\\n unchecked {\\n _balances[to] += 1;\\n }\\n }\\n\\n _owners[tokenId] = to;\\n\\n emit Transfer(from, to, tokenId);\\n\\n return from;\\n }\\n\\n /**\\n * @dev Mints `tokenId` and transfers it to `to`.\\n *\\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\\n *\\n * Requirements:\\n *\\n * - `tokenId` must not exist.\\n * - `to` cannot be the zero address.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _mint(address to, uint256 tokenId) internal {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n address previousOwner = _update(to, tokenId, address(0));\\n if (previousOwner != address(0)) {\\n revert ERC721InvalidSender(address(0));\\n }\\n }\\n\\n /**\\n * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must not exist.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _safeMint(address to, uint256 tokenId) internal {\\n _safeMint(to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\n */\\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\\n _mint(to, tokenId);\\n _checkOnERC721Received(address(0), to, tokenId, data);\\n }\\n\\n /**\\n * @dev Destroys `tokenId`.\\n * The approval is cleared when the token is burned.\\n * This is an internal function that does not check if the sender is authorized to operate on the token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _burn(uint256 tokenId) internal {\\n address previousOwner = _update(address(0), tokenId, address(0));\\n if (previousOwner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n }\\n }\\n\\n /**\\n * @dev Transfers `tokenId` from `from` to `to`.\\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\\n *\\n * Requirements:\\n *\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _transfer(address from, address to, uint256 tokenId) internal {\\n if (to == address(0)) {\\n revert ERC721InvalidReceiver(address(0));\\n }\\n address previousOwner = _update(to, tokenId, address(0));\\n if (previousOwner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n } else if (previousOwner != from) {\\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\\n }\\n }\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\\n * are aware of the ERC721 standard to prevent tokens from being forever locked.\\n *\\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\\n *\\n * This internal function is like {safeTransferFrom} in the sense that it invokes\\n * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\\n * implement alternative mechanisms to perform token transfer, such as signature-based.\\n *\\n * Requirements:\\n *\\n * - `tokenId` token must exist and be owned by `from`.\\n * - `to` cannot be the zero address.\\n * - `from` cannot be the zero address.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function _safeTransfer(address from, address to, uint256 tokenId) internal {\\n _safeTransfer(from, to, tokenId, \\\"\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\n */\\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\\n _transfer(from, to, tokenId);\\n _checkOnERC721Received(from, to, tokenId, data);\\n }\\n\\n /**\\n * @dev Approve `to` to operate on `tokenId`\\n *\\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\\n * either the owner of the token, or approved to operate on all tokens held by this owner.\\n *\\n * Emits an {Approval} event.\\n *\\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\\n */\\n function _approve(address to, uint256 tokenId, address auth) internal {\\n _approve(to, tokenId, auth, true);\\n }\\n\\n /**\\n * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\\n * emitted in the context of transfers.\\n */\\n function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\\n // Avoid reading the owner unless necessary\\n if (emitEvent || auth != address(0)) {\\n address owner = _requireOwned(tokenId);\\n\\n // We do not use _isAuthorized because single-token approvals should not be able to call approve\\n if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\\n revert ERC721InvalidApprover(auth);\\n }\\n\\n if (emitEvent) {\\n emit Approval(owner, to, tokenId);\\n }\\n }\\n\\n _tokenApprovals[tokenId] = to;\\n }\\n\\n /**\\n * @dev Approve `operator` to operate on all of `owner` tokens\\n *\\n * Requirements:\\n * - operator can't be the address zero.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\\n if (operator == address(0)) {\\n revert ERC721InvalidOperator(operator);\\n }\\n _operatorApprovals[owner][operator] = approved;\\n emit ApprovalForAll(owner, operator, approved);\\n }\\n\\n /**\\n * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\\n * Returns the owner.\\n *\\n * Overrides to ownership logic should be done to {_ownerOf}.\\n */\\n function _requireOwned(uint256 tokenId) internal view returns (address) {\\n address owner = _ownerOf(tokenId);\\n if (owner == address(0)) {\\n revert ERC721NonexistentToken(tokenId);\\n }\\n return owner;\\n }\\n\\n /**\\n * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\\n * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\\n *\\n * @param from address representing the previous owner of the given token ID\\n * @param to target address that will receive the tokens\\n * @param tokenId uint256 ID of the token to be transferred\\n * @param data bytes optional data to send along with the call\\n */\\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {\\n if (to.code.length > 0) {\\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\\n if (retval != IERC721Receiver.onERC721Received.selector) {\\n revert ERC721InvalidReceiver(to);\\n }\\n } catch (bytes memory reason) {\\n if (reason.length == 0) {\\n revert ERC721InvalidReceiver(to);\\n } else {\\n /// @solidity memory-safe-assembly\\n assembly {\\n revert(add(32, reason), mload(reason))\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"../../utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Required interface of an ERC721 compliant contract.\\n */\\ninterface IERC721 is IERC165 {\\n /**\\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\\n */\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\\n */\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\n\\n /**\\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\\n */\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\n\\n /**\\n * @dev Returns the number of tokens in ``owner``'s account.\\n */\\n function balanceOf(address owner) external view returns (uint256 balance);\\n\\n /**\\n * @dev Returns the owner of the `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\n\\n /**\\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must exist and be owned by `from`.\\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\\n * {setApprovalForAll}.\\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\\n * a safe transfer.\\n *\\n * Emits a {Transfer} event.\\n */\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Transfers `tokenId` token from `from` to `to`.\\n *\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\n *\\n * Requirements:\\n *\\n * - `from` cannot be the zero address.\\n * - `to` cannot be the zero address.\\n * - `tokenId` token must be owned by `from`.\\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\n *\\n * Emits a {Transfer} event.\\n */\\n function transferFrom(address from, address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\\n * The approval is cleared when the token is transferred.\\n *\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\n *\\n * Requirements:\\n *\\n * - The caller must own the token or be an approved operator.\\n * - `tokenId` must exist.\\n *\\n * Emits an {Approval} event.\\n */\\n function approve(address to, uint256 tokenId) external;\\n\\n /**\\n * @dev Approve or remove `operator` as an operator for the caller.\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\n *\\n * Requirements:\\n *\\n * - The `operator` cannot be the address zero.\\n *\\n * Emits an {ApprovalForAll} event.\\n */\\n function setApprovalForAll(address operator, bool approved) external;\\n\\n /**\\n * @dev Returns the account approved for `tokenId` token.\\n *\\n * Requirements:\\n *\\n * - `tokenId` must exist.\\n */\\n function getApproved(uint256 tokenId) external view returns (address operator);\\n\\n /**\\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\\n *\\n * See {setApprovalForAll}\\n */\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @title ERC721 token receiver interface\\n * @dev Interface for any contract that wants to support safeTransfers\\n * from ERC721 asset contracts.\\n */\\ninterface IERC721Receiver {\\n /**\\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\\n * by `operator` from `from`, this function is called.\\n *\\n * It must return its Solidity selector to confirm the token transfer.\\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\\n * reverted.\\n *\\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\\n */\\n function onERC721Received(\\n address operator,\\n address from,\\n uint256 tokenId,\\n bytes calldata data\\n ) external returns (bytes4);\\n}\\n\",\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC721} from \\\"../IERC721.sol\\\";\\n\\n/**\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\n */\\ninterface IERC721Metadata is IERC721 {\\n /**\\n * @dev Returns the token collection name.\\n */\\n function name() external view returns (string memory);\\n\\n /**\\n * @dev Returns the token collection symbol.\\n */\\n function symbol() external view returns (string memory);\\n\\n /**\\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\\n */\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev The ETH balance of the account is not enough to perform the operation.\\n */\\n error AddressInsufficientBalance(address account);\\n\\n /**\\n * @dev There's no code at `target` (it is not a contract).\\n */\\n error AddressEmptyCode(address target);\\n\\n /**\\n * @dev A call to an address target failed. The target may have reverted.\\n */\\n error FailedInnerCall();\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n if (address(this).balance < amount) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n if (!success) {\\n revert FailedInnerCall();\\n }\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason or custom error, it is bubbled\\n * up by this function (like regular Solidity function calls). However, if\\n * the call reverted with no returned reason, this function reverts with a\\n * {FailedInnerCall} error.\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n */\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n if (address(this).balance < value) {\\n revert AddressInsufficientBalance(address(this));\\n }\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResultFromTarget(target, success, returndata);\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\\n * unsuccessful call.\\n */\\n function verifyCallResultFromTarget(\\n address target,\\n bool success,\\n bytes memory returndata\\n ) internal view returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n // only check if target is a contract if the call was successful and the return data is empty\\n // otherwise we already know that it was a contract\\n if (returndata.length == 0 && target.code.length == 0) {\\n revert AddressEmptyCode(target);\\n }\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\\n * revert reason or with a default {FailedInnerCall} error.\\n */\\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\\n if (!success) {\\n _revert(returndata);\\n } else {\\n return returndata;\\n }\\n }\\n\\n /**\\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\\n */\\n function _revert(bytes memory returndata) private pure {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n /// @solidity memory-safe-assembly\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert FailedInnerCall();\\n }\\n }\\n}\\n\",\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n function _msgSender() internal view virtual returns (address) {\\n return msg.sender;\\n }\\n\\n function _msgData() internal view virtual returns (bytes calldata) {\\n return msg.data;\\n }\\n\\n function _contextSuffixLength() internal view virtual returns (uint256) {\\n return 0;\\n }\\n}\\n\",\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {Math} from \\\"./math/Math.sol\\\";\\nimport {SignedMath} from \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n bytes16 private constant HEX_DIGITS = \\\"0123456789abcdef\\\";\\n uint8 private constant ADDRESS_LENGTH = 20;\\n\\n /**\\n * @dev The `value` string doesn't fit in the specified `length`.\\n */\\n error StringsInsufficientHexLength(uint256 value, uint256 length);\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n */\\n function toString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n uint256 length = Math.log10(value) + 1;\\n string memory buffer = new string(length);\\n uint256 ptr;\\n /// @solidity memory-safe-assembly\\n assembly {\\n ptr := add(buffer, add(32, length))\\n }\\n while (true) {\\n ptr--;\\n /// @solidity memory-safe-assembly\\n assembly {\\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\\n }\\n value /= 10;\\n if (value == 0) break;\\n }\\n return buffer;\\n }\\n }\\n\\n /**\\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n */\\n function toStringSigned(int256 value) internal pure returns (string memory) {\\n return string.concat(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value)));\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n */\\n function toHexString(uint256 value) internal pure returns (string memory) {\\n unchecked {\\n return toHexString(value, Math.log256(value) + 1);\\n }\\n }\\n\\n /**\\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n */\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n uint256 localValue = value;\\n bytes memory buffer = new bytes(2 * length + 2);\\n buffer[0] = \\\"0\\\";\\n buffer[1] = \\\"x\\\";\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\n buffer[i] = HEX_DIGITS[localValue & 0xf];\\n localValue >>= 4;\\n }\\n if (localValue != 0) {\\n revert StringsInsufficientHexLength(value, length);\\n }\\n return string(buffer);\\n }\\n\\n /**\\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\\n * representation.\\n */\\n function toHexString(address addr) internal pure returns (string memory) {\\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\\n }\\n\\n /**\\n * @dev Returns true if the two strings are equal.\\n */\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\\n }\\n}\\n\",\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IERC165} from \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n */\\nabstract contract ERC165 is IERC165 {\\n /**\\n * @dev See {IERC165-supportsInterface}.\\n */\\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\\n return interfaceId == type(IERC165).interfaceId;\\n }\\n}\\n\",\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n /**\\n * @dev Returns true if this contract implements the interface defined by\\n * `interfaceId`. See the corresponding\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n * to learn more about how these ids are created.\\n *\\n * This function call must use less than 30 000 gas.\\n */\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n /**\\n * @dev Muldiv operation overflow.\\n */\\n error MathOverflowedMulDiv();\\n\\n enum Rounding {\\n Floor, // Toward negative infinity\\n Ceil, // Toward positive infinity\\n Trunc, // Toward zero\\n Expand // Away from zero\\n }\\n\\n /**\\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\\n */\\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n uint256 c = a + b;\\n if (c < a) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\\n */\\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b > a) return (false, 0);\\n return (true, a - b);\\n }\\n }\\n\\n /**\\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\\n */\\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\\n // benefit is lost if 'b' is also tested.\\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\\n if (a == 0) return (true, 0);\\n uint256 c = a * b;\\n if (c / a != b) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\\n */\\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a / b);\\n }\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\\n */\\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a % b);\\n }\\n }\\n\\n /**\\n * @dev Returns the largest of two numbers.\\n */\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two numbers.\\n */\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two numbers. The result is rounded towards\\n * zero.\\n */\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n // (a + b) / 2 can overflow.\\n return (a & b) + (a ^ b) / 2;\\n }\\n\\n /**\\n * @dev Returns the ceiling of the division of two numbers.\\n *\\n * This differs from standard division with `/` in that it rounds towards infinity instead\\n * of rounding towards zero.\\n */\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n if (b == 0) {\\n // Guarantee the same behavior as in a regular Solidity division.\\n return a / b;\\n }\\n\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\n return a == 0 ? 0 : (a - 1) / b + 1;\\n }\\n\\n /**\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\\n * denominator == 0.\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\\n * Uniswap Labs also under MIT license.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n unchecked {\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n // variables such that product = prod1 * 2^256 + prod0.\\n uint256 prod0 = x * y; // Least significant 256 bits of the product\\n uint256 prod1; // Most significant 256 bits of the product\\n assembly {\\n let mm := mulmod(x, y, not(0))\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n }\\n\\n // Handle non-overflow cases, 256 by 256 division.\\n if (prod1 == 0) {\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n // The surrounding unchecked block does not change this fact.\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n return prod0 / denominator;\\n }\\n\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n if (denominator <= prod1) {\\n revert MathOverflowedMulDiv();\\n }\\n\\n ///////////////////////////////////////////////\\n // 512 by 256 division.\\n ///////////////////////////////////////////////\\n\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\n uint256 remainder;\\n assembly {\\n // Compute remainder using mulmod.\\n remainder := mulmod(x, y, denominator)\\n\\n // Subtract 256 bit number from 512 bit number.\\n prod1 := sub(prod1, gt(remainder, prod0))\\n prod0 := sub(prod0, remainder)\\n }\\n\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\\n\\n uint256 twos = denominator & (0 - denominator);\\n assembly {\\n // Divide denominator by twos.\\n denominator := div(denominator, twos)\\n\\n // Divide [prod1 prod0] by twos.\\n prod0 := div(prod0, twos)\\n\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n twos := add(div(sub(0, twos), twos), 1)\\n }\\n\\n // Shift in bits from prod1 into prod0.\\n prod0 |= prod1 * twos;\\n\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\n uint256 inverse = (3 * denominator) ^ 2;\\n\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\\n // works in modular arithmetic, doubling the correct bits in each step.\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n // is no longer required.\\n result = prod0 * inverse;\\n return result;\\n }\\n }\\n\\n /**\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n uint256 result = mulDiv(x, y, denominator);\\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\\n result += 1;\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\\n * towards zero.\\n *\\n * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n */\\n function sqrt(uint256 a) internal pure returns (uint256) {\\n if (a == 0) {\\n return 0;\\n }\\n\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n //\\n // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n //\\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n //\\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n uint256 result = 1 << (log2(a) >> 1);\\n\\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n // into the expected uint128 result.\\n unchecked {\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n result = (result + a / result) >> 1;\\n return min(result, a / result);\\n }\\n }\\n\\n /**\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\n */\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = sqrt(a);\\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 2 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 128;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 64;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 32;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 16;\\n }\\n if (value >> 8 > 0) {\\n value >>= 8;\\n result += 8;\\n }\\n if (value >> 4 > 0) {\\n value >>= 4;\\n result += 4;\\n }\\n if (value >> 2 > 0) {\\n value >>= 2;\\n result += 2;\\n }\\n if (value >> 1 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log2(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 10 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >= 10 ** 64) {\\n value /= 10 ** 64;\\n result += 64;\\n }\\n if (value >= 10 ** 32) {\\n value /= 10 ** 32;\\n result += 32;\\n }\\n if (value >= 10 ** 16) {\\n value /= 10 ** 16;\\n result += 16;\\n }\\n if (value >= 10 ** 8) {\\n value /= 10 ** 8;\\n result += 8;\\n }\\n if (value >= 10 ** 4) {\\n value /= 10 ** 4;\\n result += 4;\\n }\\n if (value >= 10 ** 2) {\\n value /= 10 ** 2;\\n result += 2;\\n }\\n if (value >= 10 ** 1) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log10(value);\\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Return the log in base 256 of a positive value rounded towards zero.\\n * Returns 0 if given 0.\\n *\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n */\\n function log256(uint256 value) internal pure returns (uint256) {\\n uint256 result = 0;\\n unchecked {\\n if (value >> 128 > 0) {\\n value >>= 128;\\n result += 16;\\n }\\n if (value >> 64 > 0) {\\n value >>= 64;\\n result += 8;\\n }\\n if (value >> 32 > 0) {\\n value >>= 32;\\n result += 4;\\n }\\n if (value >> 16 > 0) {\\n value >>= 16;\\n result += 2;\\n }\\n if (value >> 8 > 0) {\\n result += 1;\\n }\\n }\\n return result;\\n }\\n\\n /**\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n * Returns 0 if given 0.\\n */\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n unchecked {\\n uint256 result = log256(value);\\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\\n }\\n }\\n\\n /**\\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\\n */\\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\\n return uint8(rounding) % 2 == 1;\\n }\\n}\\n\",\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SafeCast.sol)\\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\\n * checks.\\n *\\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\\n * easily result in undesired exploitation or bugs, since developers usually\\n * assume that overflows raise errors. `SafeCast` restores this intuition by\\n * reverting the transaction when such an operation overflows.\\n *\\n * Using this library instead of the unchecked operations eliminates an entire\\n * class of bugs, so it's recommended to use it always.\\n */\\nlibrary SafeCast {\\n /**\\n * @dev Value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\\n\\n /**\\n * @dev An int value doesn't fit in an uint of `bits` size.\\n */\\n error SafeCastOverflowedIntToUint(int256 value);\\n\\n /**\\n * @dev Value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\\n\\n /**\\n * @dev An uint value doesn't fit in an int of `bits` size.\\n */\\n error SafeCastOverflowedUintToInt(uint256 value);\\n\\n /**\\n * @dev Returns the downcasted uint248 from uint256, reverting on\\n * overflow (when the input is greater than largest uint248).\\n *\\n * Counterpart to Solidity's `uint248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toUint248(uint256 value) internal pure returns (uint248) {\\n if (value > type(uint248).max) {\\n revert SafeCastOverflowedUintDowncast(248, value);\\n }\\n return uint248(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint240 from uint256, reverting on\\n * overflow (when the input is greater than largest uint240).\\n *\\n * Counterpart to Solidity's `uint240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toUint240(uint256 value) internal pure returns (uint240) {\\n if (value > type(uint240).max) {\\n revert SafeCastOverflowedUintDowncast(240, value);\\n }\\n return uint240(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint232 from uint256, reverting on\\n * overflow (when the input is greater than largest uint232).\\n *\\n * Counterpart to Solidity's `uint232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toUint232(uint256 value) internal pure returns (uint232) {\\n if (value > type(uint232).max) {\\n revert SafeCastOverflowedUintDowncast(232, value);\\n }\\n return uint232(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint224 from uint256, reverting on\\n * overflow (when the input is greater than largest uint224).\\n *\\n * Counterpart to Solidity's `uint224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toUint224(uint256 value) internal pure returns (uint224) {\\n if (value > type(uint224).max) {\\n revert SafeCastOverflowedUintDowncast(224, value);\\n }\\n return uint224(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint216 from uint256, reverting on\\n * overflow (when the input is greater than largest uint216).\\n *\\n * Counterpart to Solidity's `uint216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toUint216(uint256 value) internal pure returns (uint216) {\\n if (value > type(uint216).max) {\\n revert SafeCastOverflowedUintDowncast(216, value);\\n }\\n return uint216(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint208 from uint256, reverting on\\n * overflow (when the input is greater than largest uint208).\\n *\\n * Counterpart to Solidity's `uint208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toUint208(uint256 value) internal pure returns (uint208) {\\n if (value > type(uint208).max) {\\n revert SafeCastOverflowedUintDowncast(208, value);\\n }\\n return uint208(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint200 from uint256, reverting on\\n * overflow (when the input is greater than largest uint200).\\n *\\n * Counterpart to Solidity's `uint200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toUint200(uint256 value) internal pure returns (uint200) {\\n if (value > type(uint200).max) {\\n revert SafeCastOverflowedUintDowncast(200, value);\\n }\\n return uint200(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint192 from uint256, reverting on\\n * overflow (when the input is greater than largest uint192).\\n *\\n * Counterpart to Solidity's `uint192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toUint192(uint256 value) internal pure returns (uint192) {\\n if (value > type(uint192).max) {\\n revert SafeCastOverflowedUintDowncast(192, value);\\n }\\n return uint192(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint184 from uint256, reverting on\\n * overflow (when the input is greater than largest uint184).\\n *\\n * Counterpart to Solidity's `uint184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toUint184(uint256 value) internal pure returns (uint184) {\\n if (value > type(uint184).max) {\\n revert SafeCastOverflowedUintDowncast(184, value);\\n }\\n return uint184(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint176 from uint256, reverting on\\n * overflow (when the input is greater than largest uint176).\\n *\\n * Counterpart to Solidity's `uint176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toUint176(uint256 value) internal pure returns (uint176) {\\n if (value > type(uint176).max) {\\n revert SafeCastOverflowedUintDowncast(176, value);\\n }\\n return uint176(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint168 from uint256, reverting on\\n * overflow (when the input is greater than largest uint168).\\n *\\n * Counterpart to Solidity's `uint168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toUint168(uint256 value) internal pure returns (uint168) {\\n if (value > type(uint168).max) {\\n revert SafeCastOverflowedUintDowncast(168, value);\\n }\\n return uint168(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint160 from uint256, reverting on\\n * overflow (when the input is greater than largest uint160).\\n *\\n * Counterpart to Solidity's `uint160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toUint160(uint256 value) internal pure returns (uint160) {\\n if (value > type(uint160).max) {\\n revert SafeCastOverflowedUintDowncast(160, value);\\n }\\n return uint160(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint152 from uint256, reverting on\\n * overflow (when the input is greater than largest uint152).\\n *\\n * Counterpart to Solidity's `uint152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toUint152(uint256 value) internal pure returns (uint152) {\\n if (value > type(uint152).max) {\\n revert SafeCastOverflowedUintDowncast(152, value);\\n }\\n return uint152(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint144 from uint256, reverting on\\n * overflow (when the input is greater than largest uint144).\\n *\\n * Counterpart to Solidity's `uint144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toUint144(uint256 value) internal pure returns (uint144) {\\n if (value > type(uint144).max) {\\n revert SafeCastOverflowedUintDowncast(144, value);\\n }\\n return uint144(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint136 from uint256, reverting on\\n * overflow (when the input is greater than largest uint136).\\n *\\n * Counterpart to Solidity's `uint136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toUint136(uint256 value) internal pure returns (uint136) {\\n if (value > type(uint136).max) {\\n revert SafeCastOverflowedUintDowncast(136, value);\\n }\\n return uint136(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint128 from uint256, reverting on\\n * overflow (when the input is greater than largest uint128).\\n *\\n * Counterpart to Solidity's `uint128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toUint128(uint256 value) internal pure returns (uint128) {\\n if (value > type(uint128).max) {\\n revert SafeCastOverflowedUintDowncast(128, value);\\n }\\n return uint128(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint120 from uint256, reverting on\\n * overflow (when the input is greater than largest uint120).\\n *\\n * Counterpart to Solidity's `uint120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toUint120(uint256 value) internal pure returns (uint120) {\\n if (value > type(uint120).max) {\\n revert SafeCastOverflowedUintDowncast(120, value);\\n }\\n return uint120(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint112 from uint256, reverting on\\n * overflow (when the input is greater than largest uint112).\\n *\\n * Counterpart to Solidity's `uint112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toUint112(uint256 value) internal pure returns (uint112) {\\n if (value > type(uint112).max) {\\n revert SafeCastOverflowedUintDowncast(112, value);\\n }\\n return uint112(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint104 from uint256, reverting on\\n * overflow (when the input is greater than largest uint104).\\n *\\n * Counterpart to Solidity's `uint104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toUint104(uint256 value) internal pure returns (uint104) {\\n if (value > type(uint104).max) {\\n revert SafeCastOverflowedUintDowncast(104, value);\\n }\\n return uint104(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint96 from uint256, reverting on\\n * overflow (when the input is greater than largest uint96).\\n *\\n * Counterpart to Solidity's `uint96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toUint96(uint256 value) internal pure returns (uint96) {\\n if (value > type(uint96).max) {\\n revert SafeCastOverflowedUintDowncast(96, value);\\n }\\n return uint96(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint88 from uint256, reverting on\\n * overflow (when the input is greater than largest uint88).\\n *\\n * Counterpart to Solidity's `uint88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toUint88(uint256 value) internal pure returns (uint88) {\\n if (value > type(uint88).max) {\\n revert SafeCastOverflowedUintDowncast(88, value);\\n }\\n return uint88(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint80 from uint256, reverting on\\n * overflow (when the input is greater than largest uint80).\\n *\\n * Counterpart to Solidity's `uint80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toUint80(uint256 value) internal pure returns (uint80) {\\n if (value > type(uint80).max) {\\n revert SafeCastOverflowedUintDowncast(80, value);\\n }\\n return uint80(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint72 from uint256, reverting on\\n * overflow (when the input is greater than largest uint72).\\n *\\n * Counterpart to Solidity's `uint72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toUint72(uint256 value) internal pure returns (uint72) {\\n if (value > type(uint72).max) {\\n revert SafeCastOverflowedUintDowncast(72, value);\\n }\\n return uint72(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint64 from uint256, reverting on\\n * overflow (when the input is greater than largest uint64).\\n *\\n * Counterpart to Solidity's `uint64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toUint64(uint256 value) internal pure returns (uint64) {\\n if (value > type(uint64).max) {\\n revert SafeCastOverflowedUintDowncast(64, value);\\n }\\n return uint64(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint56 from uint256, reverting on\\n * overflow (when the input is greater than largest uint56).\\n *\\n * Counterpart to Solidity's `uint56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toUint56(uint256 value) internal pure returns (uint56) {\\n if (value > type(uint56).max) {\\n revert SafeCastOverflowedUintDowncast(56, value);\\n }\\n return uint56(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint48 from uint256, reverting on\\n * overflow (when the input is greater than largest uint48).\\n *\\n * Counterpart to Solidity's `uint48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toUint48(uint256 value) internal pure returns (uint48) {\\n if (value > type(uint48).max) {\\n revert SafeCastOverflowedUintDowncast(48, value);\\n }\\n return uint48(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint40 from uint256, reverting on\\n * overflow (when the input is greater than largest uint40).\\n *\\n * Counterpart to Solidity's `uint40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toUint40(uint256 value) internal pure returns (uint40) {\\n if (value > type(uint40).max) {\\n revert SafeCastOverflowedUintDowncast(40, value);\\n }\\n return uint40(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint32 from uint256, reverting on\\n * overflow (when the input is greater than largest uint32).\\n *\\n * Counterpart to Solidity's `uint32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toUint32(uint256 value) internal pure returns (uint32) {\\n if (value > type(uint32).max) {\\n revert SafeCastOverflowedUintDowncast(32, value);\\n }\\n return uint32(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint24 from uint256, reverting on\\n * overflow (when the input is greater than largest uint24).\\n *\\n * Counterpart to Solidity's `uint24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toUint24(uint256 value) internal pure returns (uint24) {\\n if (value > type(uint24).max) {\\n revert SafeCastOverflowedUintDowncast(24, value);\\n }\\n return uint24(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint16 from uint256, reverting on\\n * overflow (when the input is greater than largest uint16).\\n *\\n * Counterpart to Solidity's `uint16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toUint16(uint256 value) internal pure returns (uint16) {\\n if (value > type(uint16).max) {\\n revert SafeCastOverflowedUintDowncast(16, value);\\n }\\n return uint16(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted uint8 from uint256, reverting on\\n * overflow (when the input is greater than largest uint8).\\n *\\n * Counterpart to Solidity's `uint8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toUint8(uint256 value) internal pure returns (uint8) {\\n if (value > type(uint8).max) {\\n revert SafeCastOverflowedUintDowncast(8, value);\\n }\\n return uint8(value);\\n }\\n\\n /**\\n * @dev Converts a signed int256 into an unsigned uint256.\\n *\\n * Requirements:\\n *\\n * - input must be greater than or equal to 0.\\n */\\n function toUint256(int256 value) internal pure returns (uint256) {\\n if (value < 0) {\\n revert SafeCastOverflowedIntToUint(value);\\n }\\n return uint256(value);\\n }\\n\\n /**\\n * @dev Returns the downcasted int248 from int256, reverting on\\n * overflow (when the input is less than smallest int248 or\\n * greater than largest int248).\\n *\\n * Counterpart to Solidity's `int248` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 248 bits\\n */\\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\\n downcasted = int248(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(248, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int240 from int256, reverting on\\n * overflow (when the input is less than smallest int240 or\\n * greater than largest int240).\\n *\\n * Counterpart to Solidity's `int240` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 240 bits\\n */\\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\\n downcasted = int240(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(240, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int232 from int256, reverting on\\n * overflow (when the input is less than smallest int232 or\\n * greater than largest int232).\\n *\\n * Counterpart to Solidity's `int232` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 232 bits\\n */\\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\\n downcasted = int232(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(232, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int224 from int256, reverting on\\n * overflow (when the input is less than smallest int224 or\\n * greater than largest int224).\\n *\\n * Counterpart to Solidity's `int224` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 224 bits\\n */\\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\\n downcasted = int224(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(224, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int216 from int256, reverting on\\n * overflow (when the input is less than smallest int216 or\\n * greater than largest int216).\\n *\\n * Counterpart to Solidity's `int216` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 216 bits\\n */\\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\\n downcasted = int216(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(216, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int208 from int256, reverting on\\n * overflow (when the input is less than smallest int208 or\\n * greater than largest int208).\\n *\\n * Counterpart to Solidity's `int208` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 208 bits\\n */\\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\\n downcasted = int208(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(208, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int200 from int256, reverting on\\n * overflow (when the input is less than smallest int200 or\\n * greater than largest int200).\\n *\\n * Counterpart to Solidity's `int200` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 200 bits\\n */\\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\\n downcasted = int200(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(200, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int192 from int256, reverting on\\n * overflow (when the input is less than smallest int192 or\\n * greater than largest int192).\\n *\\n * Counterpart to Solidity's `int192` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 192 bits\\n */\\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\\n downcasted = int192(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(192, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int184 from int256, reverting on\\n * overflow (when the input is less than smallest int184 or\\n * greater than largest int184).\\n *\\n * Counterpart to Solidity's `int184` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 184 bits\\n */\\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\\n downcasted = int184(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(184, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int176 from int256, reverting on\\n * overflow (when the input is less than smallest int176 or\\n * greater than largest int176).\\n *\\n * Counterpart to Solidity's `int176` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 176 bits\\n */\\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\\n downcasted = int176(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(176, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int168 from int256, reverting on\\n * overflow (when the input is less than smallest int168 or\\n * greater than largest int168).\\n *\\n * Counterpart to Solidity's `int168` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 168 bits\\n */\\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\\n downcasted = int168(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(168, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int160 from int256, reverting on\\n * overflow (when the input is less than smallest int160 or\\n * greater than largest int160).\\n *\\n * Counterpart to Solidity's `int160` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 160 bits\\n */\\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\\n downcasted = int160(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(160, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int152 from int256, reverting on\\n * overflow (when the input is less than smallest int152 or\\n * greater than largest int152).\\n *\\n * Counterpart to Solidity's `int152` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 152 bits\\n */\\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\\n downcasted = int152(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(152, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int144 from int256, reverting on\\n * overflow (when the input is less than smallest int144 or\\n * greater than largest int144).\\n *\\n * Counterpart to Solidity's `int144` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 144 bits\\n */\\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\\n downcasted = int144(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(144, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int136 from int256, reverting on\\n * overflow (when the input is less than smallest int136 or\\n * greater than largest int136).\\n *\\n * Counterpart to Solidity's `int136` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 136 bits\\n */\\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\\n downcasted = int136(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(136, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int128 from int256, reverting on\\n * overflow (when the input is less than smallest int128 or\\n * greater than largest int128).\\n *\\n * Counterpart to Solidity's `int128` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 128 bits\\n */\\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\\n downcasted = int128(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(128, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int120 from int256, reverting on\\n * overflow (when the input is less than smallest int120 or\\n * greater than largest int120).\\n *\\n * Counterpart to Solidity's `int120` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 120 bits\\n */\\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\\n downcasted = int120(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(120, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int112 from int256, reverting on\\n * overflow (when the input is less than smallest int112 or\\n * greater than largest int112).\\n *\\n * Counterpart to Solidity's `int112` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 112 bits\\n */\\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\\n downcasted = int112(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(112, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int104 from int256, reverting on\\n * overflow (when the input is less than smallest int104 or\\n * greater than largest int104).\\n *\\n * Counterpart to Solidity's `int104` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 104 bits\\n */\\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\\n downcasted = int104(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(104, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int96 from int256, reverting on\\n * overflow (when the input is less than smallest int96 or\\n * greater than largest int96).\\n *\\n * Counterpart to Solidity's `int96` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 96 bits\\n */\\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\\n downcasted = int96(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(96, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int88 from int256, reverting on\\n * overflow (when the input is less than smallest int88 or\\n * greater than largest int88).\\n *\\n * Counterpart to Solidity's `int88` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 88 bits\\n */\\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\\n downcasted = int88(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(88, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int80 from int256, reverting on\\n * overflow (when the input is less than smallest int80 or\\n * greater than largest int80).\\n *\\n * Counterpart to Solidity's `int80` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 80 bits\\n */\\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\\n downcasted = int80(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(80, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int72 from int256, reverting on\\n * overflow (when the input is less than smallest int72 or\\n * greater than largest int72).\\n *\\n * Counterpart to Solidity's `int72` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 72 bits\\n */\\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\\n downcasted = int72(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(72, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int64 from int256, reverting on\\n * overflow (when the input is less than smallest int64 or\\n * greater than largest int64).\\n *\\n * Counterpart to Solidity's `int64` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 64 bits\\n */\\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\\n downcasted = int64(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(64, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int56 from int256, reverting on\\n * overflow (when the input is less than smallest int56 or\\n * greater than largest int56).\\n *\\n * Counterpart to Solidity's `int56` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 56 bits\\n */\\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\\n downcasted = int56(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(56, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int48 from int256, reverting on\\n * overflow (when the input is less than smallest int48 or\\n * greater than largest int48).\\n *\\n * Counterpart to Solidity's `int48` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 48 bits\\n */\\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\\n downcasted = int48(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(48, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int40 from int256, reverting on\\n * overflow (when the input is less than smallest int40 or\\n * greater than largest int40).\\n *\\n * Counterpart to Solidity's `int40` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 40 bits\\n */\\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\\n downcasted = int40(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(40, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int32 from int256, reverting on\\n * overflow (when the input is less than smallest int32 or\\n * greater than largest int32).\\n *\\n * Counterpart to Solidity's `int32` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 32 bits\\n */\\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\\n downcasted = int32(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(32, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int24 from int256, reverting on\\n * overflow (when the input is less than smallest int24 or\\n * greater than largest int24).\\n *\\n * Counterpart to Solidity's `int24` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 24 bits\\n */\\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\\n downcasted = int24(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(24, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int16 from int256, reverting on\\n * overflow (when the input is less than smallest int16 or\\n * greater than largest int16).\\n *\\n * Counterpart to Solidity's `int16` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 16 bits\\n */\\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\\n downcasted = int16(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(16, value);\\n }\\n }\\n\\n /**\\n * @dev Returns the downcasted int8 from int256, reverting on\\n * overflow (when the input is less than smallest int8 or\\n * greater than largest int8).\\n *\\n * Counterpart to Solidity's `int8` operator.\\n *\\n * Requirements:\\n *\\n * - input must fit into 8 bits\\n */\\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\\n downcasted = int8(value);\\n if (downcasted != value) {\\n revert SafeCastOverflowedIntDowncast(8, value);\\n }\\n }\\n\\n /**\\n * @dev Converts an unsigned uint256 into a signed int256.\\n *\\n * Requirements:\\n *\\n * - input must be less than or equal to maxInt256.\\n */\\n function toInt256(uint256 value) internal pure returns (int256) {\\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\\n if (value > uint256(type(int256).max)) {\\n revert SafeCastOverflowedUintToInt(value);\\n }\\n return int256(value);\\n }\\n}\\n\",\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.20;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n /**\\n * @dev Returns the largest of two signed numbers.\\n */\\n function max(int256 a, int256 b) internal pure returns (int256) {\\n return a > b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the smallest of two signed numbers.\\n */\\n function min(int256 a, int256 b) internal pure returns (int256) {\\n return a < b ? a : b;\\n }\\n\\n /**\\n * @dev Returns the average of two signed numbers without overflow.\\n * The result is rounded towards zero.\\n */\\n function average(int256 a, int256 b) internal pure returns (int256) {\\n // Formula from the book \\\"Hacker's Delight\\\"\\n int256 x = (a & b) + ((a ^ b) >> 1);\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\n }\\n\\n /**\\n * @dev Returns the absolute unsigned value of a signed value.\\n */\\n function abs(int256 n) internal pure returns (uint256) {\\n unchecked {\\n // must be unchecked in order to support `n = type(int256).min`\\n return uint256(n >= 0 ? n : -n);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\"},\"contracts/MyONFT721.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\npragma solidity ^0.8.22;\\n\\nimport { ONFT721 } from \\\"@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol\\\";\\n\\ncontract MyONFT721 is ONFT721 {\\n constructor(\\n string memory _name,\\n string memory _symbol,\\n address _lzEndpoint,\\n address _delegate\\n ) ONFT721(_name, _symbol, _lzEndpoint, _delegate) {}\\n}\\n\",\"keccak256\":\"0x3549a204810fa418d927e6e7425fd95b63907766d5e8717958f9fa317ef64dd1\",\"license\":\"UNLICENSED\"},\"contracts/mocks/MyONFT721Mock.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\npragma solidity ^0.8.22;\\n\\nimport { MyONFT721 } from \\\"../MyONFT721.sol\\\";\\n\\n// @dev WARNING: This is for testing purposes only\\ncontract MyONFT721Mock is MyONFT721 {\\n constructor(\\n string memory _name,\\n string memory _symbol,\\n address _lzEndpoint,\\n address _delegate\\n ) MyONFT721(_name, _symbol, _lzEndpoint, _delegate) {}\\n\\n function mint(address _to, uint256 _amount) public {\\n _mint(_to, _amount);\\n }\\n}\\n\",\"keccak256\":\"0x583584810df574018440b15fff208a920bcd443d5e304b0084d149bc199a341e\",\"license\":\"UNLICENSED\"},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equal_nonAligned(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let endMinusWord := add(_preBytes, length)\\n let mc := add(_preBytes, 0x20)\\n let cc := add(_postBytes, 0x20)\\n\\n for {\\n // the next line is the loop condition:\\n // while(uint256(mc < endWord) + cb == 2)\\n } eq(add(lt(mc, endMinusWord), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n\\n // Only if still successful\\n // For <1 word tail bytes\\n if gt(success, 0) {\\n // Get the remainder of length/32\\n // length % 32 = AND(length, 32 - 1)\\n let numTailBytes := and(length, 0x1f)\\n let mcRem := mload(mc)\\n let ccRem := mload(cc)\\n for {\\n let i := 0\\n // the next line is the loop condition:\\n // while(uint256(i < numTailBytes) + cb == 2)\\n } eq(add(lt(i, numTailBytes), cb), 2) {\\n i := add(i, 1)\\n } {\\n if iszero(eq(byte(i, mcRem), byte(i, ccRem))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4963,"contract":"contracts/mocks/MyONFT721Mock.sol:MyONFT721Mock","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":539,"contract":"contracts/mocks/MyONFT721Mock.sol:MyONFT721Mock","label":"peers","offset":0,"slot":"1","type":"t_mapping(t_uint32,t_bytes32)"},{"astId":1690,"contract":"contracts/mocks/MyONFT721Mock.sol:MyONFT721Mock","label":"preCrime","offset":0,"slot":"2","type":"t_address"},{"astId":1155,"contract":"contracts/mocks/MyONFT721Mock.sol:MyONFT721Mock","label":"enforcedOptions","offset":0,"slot":"3","type":"t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))"},{"astId":4338,"contract":"contracts/mocks/MyONFT721Mock.sol:MyONFT721Mock","label":"msgInspector","offset":0,"slot":"4","type":"t_address"},{"astId":5676,"contract":"contracts/mocks/MyONFT721Mock.sol:MyONFT721Mock","label":"_name","offset":0,"slot":"5","type":"t_string_storage"},{"astId":5678,"contract":"contracts/mocks/MyONFT721Mock.sol:MyONFT721Mock","label":"_symbol","offset":0,"slot":"6","type":"t_string_storage"},{"astId":5682,"contract":"contracts/mocks/MyONFT721Mock.sol:MyONFT721Mock","label":"_owners","offset":0,"slot":"7","type":"t_mapping(t_uint256,t_address)"},{"astId":5686,"contract":"contracts/mocks/MyONFT721Mock.sol:MyONFT721Mock","label":"_balances","offset":0,"slot":"8","type":"t_mapping(t_address,t_uint256)"},{"astId":5690,"contract":"contracts/mocks/MyONFT721Mock.sol:MyONFT721Mock","label":"_tokenApprovals","offset":0,"slot":"9","type":"t_mapping(t_uint256,t_address)"},{"astId":5696,"contract":"contracts/mocks/MyONFT721Mock.sol:MyONFT721Mock","label":"_operatorApprovals","offset":0,"slot":"10","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint32,t_bytes32)":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint32,t_mapping(t_uint16,t_bytes_storage))":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => mapping(uint16 => bytes))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_bytes_storage)"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the ONFT721 contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the underlying ERC721 implementation (ie. this contract)."}},"version":1}}},"solidity-bytes-utils/contracts/BytesLib.sol":{"BytesLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122043e48b1f601eca6e497a6ec2210bb4bdb35af606a0225cd05bcfcda3c772061364736f6c63430008160033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 NUMBER 0xE4 DUP12 0x1F PUSH1 0x1E 0xCA PUSH15 0x497A6EC2210BB4BDB35AF606A0225C 0xD0 JUMPDEST 0xCF 0xCD LOG3 0xC7 PUSH19 0x61364736F6C63430008160033000000000000 ","sourceMap":"370:21307:52:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;370:21307:52;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122043e48b1f601eca6e497a6ec2210bb4bdb35af606a0225cd05bcfcda3c772061364736f6c63430008160033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 NUMBER 0xE4 DUP12 0x1F PUSH1 0x1E 0xCA PUSH15 0x497A6EC2210BB4BDB35AF606A0225C 0xD0 JUMPDEST 0xCF 0xCD LOG3 0xC7 PUSH19 0x61364736F6C63430008160033000000000000 ","sourceMap":"370:21307:52:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"concat(bytes memory,bytes memory)":"infinite","concatStorage(bytes storage pointer,bytes memory)":"infinite","equal(bytes memory,bytes memory)":"infinite","equalStorage(bytes storage pointer,bytes memory)":"infinite","equal_nonAligned(bytes memory,bytes memory)":"infinite","slice(bytes memory,uint256,uint256)":"infinite","toAddress(bytes memory,uint256)":"infinite","toBytes32(bytes memory,uint256)":"infinite","toUint128(bytes memory,uint256)":"infinite","toUint16(bytes memory,uint256)":"infinite","toUint256(bytes memory,uint256)":"infinite","toUint32(bytes memory,uint256)":"infinite","toUint64(bytes memory,uint256)":"infinite","toUint8(bytes memory,uint256)":"infinite","toUint96(bytes memory,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity-bytes-utils/contracts/BytesLib.sol\":\"BytesLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 \\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\n\\nlibrary BytesLib {\\n function concat(\\n bytes memory _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n bytes memory tempBytes;\\n\\n assembly {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // Store the length of the first bytes array at the beginning of\\n // the memory for tempBytes.\\n let length := mload(_preBytes)\\n mstore(tempBytes, length)\\n\\n // Maintain a memory counter for the current write location in the\\n // temp bytes array by adding the 32 bytes for the array length to\\n // the starting location.\\n let mc := add(tempBytes, 0x20)\\n // Stop copying when the memory counter reaches the length of the\\n // first bytes array.\\n let end := add(mc, length)\\n\\n for {\\n // Initialize a copy counter to the start of the _preBytes data,\\n // 32 bytes into its memory.\\n let cc := add(_preBytes, 0x20)\\n } lt(mc, end) {\\n // Increase both counters by 32 bytes each iteration.\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // Write the _preBytes data into the tempBytes memory 32 bytes\\n // at a time.\\n mstore(mc, mload(cc))\\n }\\n\\n // Add the length of _postBytes to the current length of tempBytes\\n // and store it as the new length in the first 32 bytes of the\\n // tempBytes memory.\\n length := mload(_postBytes)\\n mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n // Move the memory counter back from a multiple of 0x20 to the\\n // actual end of the _preBytes data.\\n mc := end\\n // Stop copying when the memory counter reaches the new combined\\n // length of the arrays.\\n end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n // Update the free-memory pointer by padding our last write location\\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n // next 32 byte block, then round down to the nearest multiple of\\n // 32. If the sum of the length of the two arrays is zero then add\\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n mstore(0x40, and(\\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n not(31) // Round down to the nearest 32 bytes.\\n ))\\n }\\n\\n return tempBytes;\\n }\\n\\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n assembly {\\n // Read the first 32 bytes of _preBytes storage, which is the length\\n // of the array. (We don't need to use the offset into the slot\\n // because arrays use the entire slot.)\\n let fslot := sload(_preBytes.slot)\\n // Arrays of 31 bytes or less have an even value in their slot,\\n // while longer arrays have an odd value. The actual length is\\n // the slot divided by two for odd values, and the lowest order\\n // byte divided by two for even values.\\n // If the slot is even, bitwise and the slot with 255 and divide by\\n // two to get the length. If the slot is odd, bitwise and the slot\\n // with -1 and divide by two.\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n let newlength := add(slength, mlength)\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n switch add(lt(slength, 32), lt(newlength, 32))\\n case 2 {\\n // Since the new array still fits in the slot, we just need to\\n // update the contents of the slot.\\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n sstore(\\n _preBytes.slot,\\n // all the modifications to the slot are inside this\\n // next block\\n add(\\n // we can just add to the slot contents because the\\n // bytes we want to change are the LSBs\\n fslot,\\n add(\\n mul(\\n div(\\n // load the bytes from memory\\n mload(add(_postBytes, 0x20)),\\n // zero all bytes to the right\\n exp(0x100, sub(32, mlength))\\n ),\\n // and now shift left the number of bytes to\\n // leave space for the length in the slot\\n exp(0x100, sub(32, newlength))\\n ),\\n // increase length by the double of the memory\\n // bytes length\\n mul(mlength, 2)\\n )\\n )\\n )\\n }\\n case 1 {\\n // The stored value fits in the slot, but the combined value\\n // will exceed it.\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // The contents of the _postBytes array start 32 bytes into\\n // the structure. Our first read should obtain the `submod`\\n // bytes that can fit into the unused space in the last word\\n // of the stored array. To get this, we read 32 bytes starting\\n // from `submod`, so the data we read overlaps with the array\\n // contents by `submod` bytes. Masking the lowest-order\\n // `submod` bytes allows us to add that value directly to the\\n // stored value.\\n\\n let submod := sub(32, slength)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(\\n sc,\\n add(\\n and(\\n fslot,\\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\\n ),\\n and(mload(mc), mask)\\n )\\n )\\n\\n for {\\n mc := add(mc, 0x20)\\n sc := add(sc, 1)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n default {\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n // Start copying to the last used word of the stored array.\\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n // save new length\\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n // Copy over the first `submod` bytes of the new data as in\\n // case 1 above.\\n let slengthmod := mod(slength, 32)\\n let mlengthmod := mod(mlength, 32)\\n let submod := sub(32, slengthmod)\\n let mc := add(_postBytes, submod)\\n let end := add(_postBytes, mlength)\\n let mask := sub(exp(0x100, submod), 1)\\n\\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n for {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } lt(mc, end) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n sstore(sc, mload(mc))\\n }\\n\\n mask := exp(0x100, sub(mc, end))\\n\\n sstore(sc, mul(div(mload(mc), mask), mask))\\n }\\n }\\n }\\n\\n function slice(\\n bytes memory _bytes,\\n uint256 _start,\\n uint256 _length\\n )\\n internal\\n pure\\n returns (bytes memory)\\n {\\n require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n bytes memory tempBytes;\\n\\n assembly {\\n switch iszero(_length)\\n case 0 {\\n // Get a location of some free memory and store it in tempBytes as\\n // Solidity does for memory variables.\\n tempBytes := mload(0x40)\\n\\n // The first word of the slice result is potentially a partial\\n // word read from the original array. To read it, we calculate\\n // the length of that partial word and start copying that many\\n // bytes into the array. The first word we copy will start with\\n // data we don't care about, but the last `lengthmod` bytes will\\n // land at the beginning of the contents of the new array. When\\n // we're done copying, we overwrite the full first word with\\n // the actual length of the slice.\\n let lengthmod := and(_length, 31)\\n\\n // The multiplication in the next line is necessary\\n // because when slicing multiples of 32 bytes (lengthmod == 0)\\n // the following copy loop was copying the origin's length\\n // and then ending prematurely not copying everything it should.\\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n let end := add(mc, _length)\\n\\n for {\\n // The multiplication in the next line has the same exact purpose\\n // as the one above.\\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n } lt(mc, end) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n mstore(mc, mload(cc))\\n }\\n\\n mstore(tempBytes, _length)\\n\\n //update free-memory pointer\\n //allocating the array padded to 32 bytes like the compiler does now\\n mstore(0x40, and(add(mc, 31), not(31)))\\n }\\n //if we want a zero-length slice let's just return a zero-length array\\n default {\\n tempBytes := mload(0x40)\\n //zero out the 32 bytes slice we are about to return\\n //we need to do it because Solidity does not garbage collect\\n mstore(tempBytes, 0)\\n\\n mstore(0x40, add(tempBytes, 0x20))\\n }\\n }\\n\\n return tempBytes;\\n }\\n\\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\\n require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n address tempAddress;\\n\\n assembly {\\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n }\\n\\n return tempAddress;\\n }\\n\\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\\n require(_bytes.length >= _start + 1 , \\\"toUint8_outOfBounds\\\");\\n uint8 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x1), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\\n require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n uint16 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x2), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\\n require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n uint32 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x4), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\\n require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n uint64 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x8), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\\n require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n uint96 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0xc), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\\n require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n uint128 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x10), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\\n require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n uint256 tempUint;\\n\\n assembly {\\n tempUint := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempUint;\\n }\\n\\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\\n require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n bytes32 tempBytes32;\\n\\n assembly {\\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n }\\n\\n return tempBytes32;\\n }\\n\\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let mc := add(_preBytes, 0x20)\\n let end := add(mc, length)\\n\\n for {\\n let cc := add(_postBytes, 0x20)\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n } eq(add(lt(mc, end), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equal_nonAligned(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n bool success = true;\\n\\n assembly {\\n let length := mload(_preBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(length, mload(_postBytes))\\n case 1 {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n let endMinusWord := add(_preBytes, length)\\n let mc := add(_preBytes, 0x20)\\n let cc := add(_postBytes, 0x20)\\n\\n for {\\n // the next line is the loop condition:\\n // while(uint256(mc < endWord) + cb == 2)\\n } eq(add(lt(mc, endMinusWord), cb), 2) {\\n mc := add(mc, 0x20)\\n cc := add(cc, 0x20)\\n } {\\n // if any of these checks fails then arrays are not equal\\n if iszero(eq(mload(mc), mload(cc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n\\n // Only if still successful\\n // For <1 word tail bytes\\n if gt(success, 0) {\\n // Get the remainder of length/32\\n // length % 32 = AND(length, 32 - 1)\\n let numTailBytes := and(length, 0x1f)\\n let mcRem := mload(mc)\\n let ccRem := mload(cc)\\n for {\\n let i := 0\\n // the next line is the loop condition:\\n // while(uint256(i < numTailBytes) + cb == 2)\\n } eq(add(lt(i, numTailBytes), cb), 2) {\\n i := add(i, 1)\\n } {\\n if iszero(eq(byte(i, mcRem), byte(i, ccRem))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n\\n function equalStorage(\\n bytes storage _preBytes,\\n bytes memory _postBytes\\n )\\n internal\\n view\\n returns (bool)\\n {\\n bool success = true;\\n\\n assembly {\\n // we know _preBytes_offset is 0\\n let fslot := sload(_preBytes.slot)\\n // Decode the length of the stored array like in concatStorage().\\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n let mlength := mload(_postBytes)\\n\\n // if lengths don't match the arrays are not equal\\n switch eq(slength, mlength)\\n case 1 {\\n // slength can contain both the length and contents of the array\\n // if length < 32 bytes so let's prepare for that\\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n if iszero(iszero(slength)) {\\n switch lt(slength, 32)\\n case 1 {\\n // blank the last byte which is the length\\n fslot := mul(div(fslot, 0x100), 0x100)\\n\\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n // unsuccess:\\n success := 0\\n }\\n }\\n default {\\n // cb is a circuit breaker in the for loop since there's\\n // no said feature for inline assembly loops\\n // cb = 1 - don't breaker\\n // cb = 0 - break\\n let cb := 1\\n\\n // get the keccak hash to get the contents of the array\\n mstore(0x0, _preBytes.slot)\\n let sc := keccak256(0x0, 0x20)\\n\\n let mc := add(_postBytes, 0x20)\\n let end := add(mc, mlength)\\n\\n // the next line is the loop condition:\\n // while(uint256(mc < end) + cb == 2)\\n for {} eq(add(lt(mc, end), cb), 2) {\\n sc := add(sc, 1)\\n mc := add(mc, 0x20)\\n } {\\n if iszero(eq(sload(sc), mload(mc))) {\\n // unsuccess:\\n success := 0\\n cb := 0\\n }\\n }\\n }\\n }\\n }\\n default {\\n // unsuccess:\\n success := 0\\n }\\n }\\n\\n return success;\\n }\\n}\\n\",\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}}}}} \ No newline at end of file diff --git a/examples/onft721/artifacts/contracts/MyONFT721.sol/MyONFT721.dbg.json b/examples/onft721/artifacts/contracts/MyONFT721.sol/MyONFT721.dbg.json deleted file mode 100644 index abe671495..000000000 --- a/examples/onft721/artifacts/contracts/MyONFT721.sol/MyONFT721.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/contracts/MyONFT721.sol/MyONFT721.json b/examples/onft721/artifacts/contracts/MyONFT721.sol/MyONFT721.json deleted file mode 100644 index 70004ac0e..000000000 --- a/examples/onft721/artifacts/contracts/MyONFT721.sol/MyONFT721.json +++ /dev/null @@ -1,1602 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "MyONFT721", - "sourceName": "contracts/MyONFT721.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "_name", - "type": "string" - }, - { - "internalType": "string", - "name": "_symbol", - "type": "string" - }, - { - "internalType": "address", - "name": "_lzEndpoint", - "type": "address" - }, - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721IncorrectOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721InsufficientApproval", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC721InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC721InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721InvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC721InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC721InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721NonexistentToken", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidDelegate", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidEndpointCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "name": "InvalidOptions", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidReceiver", - "type": "error" - }, - { - "inputs": [], - "name": "LzTokenUnavailable", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "NoPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "msgValue", - "type": "uint256" - } - ], - "name": "NotEnoughNative", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "OnlyEndpoint", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OnlyNFTOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - } - ], - "name": "OnlyPeer", - "type": "error" - }, - { - "inputs": [], - "name": "OnlySelf", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "result", - "type": "bytes" - } - ], - "name": "SimulationResult", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "indexed": false, - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "EnforcedOptionSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "inspector", - "type": "address" - } - ], - "name": "MsgInspectorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "indexed": true, - "internalType": "address", - "name": "toAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ONFTReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "indexed": true, - "internalType": "address", - "name": "fromAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ONFTSent", - "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": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "name": "PeerSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "preCrimeAddress", - "type": "address" - } - ], - "name": "PreCrimeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "SEND", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SEND_AND_COMPOSE", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - } - ], - "name": "allowInitializePath", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "approvalRequired", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "_msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "_extraOptions", - "type": "bytes" - } - ], - "name": "combineOptions", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "endpoint", - "outputs": [ - { - "internalType": "contract ILayerZeroEndpointV2", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - } - ], - "name": "enforcedOptions", - "outputs": [ - { - "internalType": "bytes", - "name": "enforcedOption", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_sender", - "type": "address" - } - ], - "name": "isComposeMsgSender", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "isPeer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceive", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - }, - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "address", - "name": "executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct InboundPacket[]", - "name": "_packets", - "type": "tuple[]" - } - ], - "name": "lzReceiveAndRevert", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceiveSimulate", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "msgInspector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "nextNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oApp", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oAppVersion", - "outputs": [ - { - "internalType": "uint64", - "name": "senderVersion", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "receiverVersion", - "type": "uint64" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "onftVersion", - "outputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - }, - { - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "peers", - "outputs": [ - { - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "preCrime", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "to", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "extraOptions", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "composeMsg", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "onftCmd", - "type": "bytes" - } - ], - "internalType": "struct SendParam", - "name": "_sendParam", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "_payInLzToken", - "type": "bool" - } - ], - "name": "quoteSend", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "msgFee", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "to", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "extraOptions", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "composeMsg", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "onftCmd", - "type": "bytes" - } - ], - "internalType": "struct SendParam", - "name": "_sendParam", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "_fee", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_refundAddress", - "type": "address" - } - ], - "name": "send", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "fee", - "type": "tuple" - } - ], - "internalType": "struct MessagingReceipt", - "name": "msgReceipt", - "type": "tuple" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "name": "setDelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "setEnforcedOptions", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_msgInspector", - "type": "address" - } - ], - "name": "setMsgInspector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "setPeer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_preCrime", - "type": "address" - } - ], - "name": "setPreCrime", - "outputs": [], - "stateMutability": "nonpayable", - "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": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60a06040523480156200001157600080fd5b50604051620038ff380380620038ff833981016040819052620000349162000277565b838383838383838381818181806001600160a01b0381166200007057604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007b8162000142565b506001600160a01b038083166080528116620000aa57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000f257600080fd5b505af115801562000107573d6000803e3d6000fd5b50505050505050505050816005908162000122919062000397565b50600662000131828262000397565b505050505050505050505062000463565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ba57600080fd5b81516001600160401b0380821115620001d757620001d762000192565b604051601f8301601f19908116603f0116810190828211818310171562000202576200020262000192565b81604052838152602092508660208588010111156200022057600080fd5b600091505b8382101562000244578582018301518183018401529082019062000225565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200027257600080fd5b919050565b600080600080608085870312156200028e57600080fd5b84516001600160401b0380821115620002a657600080fd5b620002b488838901620001a8565b95506020870151915080821115620002cb57600080fd5b50620002da87828801620001a8565b935050620002eb604086016200025a565b9150620002fb606086016200025a565b905092959194509250565b600181811c908216806200031b57607f821691505b6020821081036200033c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000392576000816000526020600020601f850160051c810160208610156200036d5750805b601f850160051c820191505b818110156200038e5782815560010162000379565b5050505b505050565b81516001600160401b03811115620003b357620003b362000192565b620003cb81620003c4845462000306565b8462000342565b602080601f831160018114620004035760008415620003ea5750858301515b600019600386901b1c1916600185901b1785556200038e565b600085815260208120601f198616915b82811015620004345788860151825594840194600190910190840162000413565b5085821015620004535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805161344f620004b06000396000818161048b0152818161090d01528181611162015281816113f70152818161167a01528181611c270152818161200601526120bf015261344f6000f3fe60806040526004361061025c5760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc1461075c578063d42438851461076f578063e985e9c51461078f578063f2fde38b146107af578063fc0c546a1461040f578063ff7bd03d146107cf57600080fd5b8063bc70b354146106bc578063bd815db0146106dc578063c6414e7b146106ef578063c87b56dd1461071c578063ca5eb5e11461073c57600080fd5b8063a72f5dd811610108578063a72f5dd8146105f2578063b21a33e41461061a578063b731ea0a1461062f578063b88d4fde1461064f578063b98bd0701461066f578063bb0b6a531461068f57600080fd5b806382413eac1461056b5780638da5cb5b1461058b57806395d89b41146105a95780639f68b964146105be578063a22cb465146105d257600080fd5b80633400288b116101dd5780635e280f11116101a15780635e280f11146104795780636352211e146104ad5780636fc1b31e146104cd57806370a08231146104ed578063715018a61461051b5780637d25a05e1461053057600080fd5b80633400288b146103cf57806342842e0e146103ef57806352ae28791461040f5780635535d461146104225780635a0dfe4d1461044257600080fd5b806313137d651161022457806313137d651461033257806317442b70146103455780631f5e13341461036757806321eb730b1461038f57806323b872dd146103af57600080fd5b806301ffc9a71461026157806306fdde0314610296578063081812fc146102b8578063095ea7b3146102f0578063111ecdad14610312575b600080fd5b34801561026d57600080fd5b5061028161027c366004612509565b6107ef565b60405190151581526020015b60405180910390f35b3480156102a257600080fd5b506102ab610841565b60405161028d9190612576565b3480156102c457600080fd5b506102d86102d3366004612589565b6108d3565b6040516001600160a01b03909116815260200161028d565b3480156102fc57600080fd5b5061031061030b3660046125b7565b6108fc565b005b34801561031e57600080fd5b506004546102d8906001600160a01b031681565b610310610340366004612643565b61090b565b34801561035157600080fd5b506040805160018152600260208201520161028d565b34801561037357600080fd5b5061037c600181565b60405161ffff909116815260200161028d565b6103a261039d3660046126f4565b6109cb565b60405161028d9190612761565b3480156103bb57600080fd5b506103106103ca3660046127a3565b610aa6565b3480156103db57600080fd5b506103106103ea3660046127fd565b610b31565b3480156103fb57600080fd5b5061031061040a3660046127a3565b610b43565b34801561041b57600080fd5b50306102d8565b34801561042e57600080fd5b506102ab61043d36600461282b565b610b63565b34801561044e57600080fd5b5061028161045d3660046127fd565b63ffffffff919091166000908152600160205260409020541490565b34801561048557600080fd5b506102d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b957600080fd5b506102d86104c8366004612589565b610c08565b3480156104d957600080fd5b506103106104e836600461285e565b610c13565b3480156104f957600080fd5b5061050d61050836600461285e565b610c70565b60405190815260200161028d565b34801561052757600080fd5b50610310610cb8565b34801561053c57600080fd5b5061055361054b3660046127fd565b600092915050565b6040516001600160401b03909116815260200161028d565b34801561057757600080fd5b5061028161058636600461287b565b610ccc565b34801561059757600080fd5b506000546001600160a01b03166102d8565b3480156105b557600080fd5b506102ab610ce1565b3480156105ca57600080fd5b506000610281565b3480156105de57600080fd5b506103106105ed3660046128ef565b610cf0565b3480156105fe57600080fd5b50604080516311f0c6d360e11b8152600160208201520161028d565b34801561062657600080fd5b5061037c600281565b34801561063b57600080fd5b506002546102d8906001600160a01b031681565b34801561065b57600080fd5b5061031061066a366004612a35565b610cfb565b34801561067b57600080fd5b5061031061068a366004612ae4565b610d12565b34801561069b57600080fd5b5061050d6106aa366004612b25565b60016020526000908152604090205481565b3480156106c857600080fd5b506102ab6106d7366004612b40565b610d2c565b6103106106ea366004612ae4565b610ed4565b3480156106fb57600080fd5b5061070f61070a366004612ba0565b61105e565b60405161028d9190612be6565b34801561072857600080fd5b506102ab610737366004612589565b6110c6565b34801561074857600080fd5b5061031061075736600461285e565b61113b565b61031061076a366004612643565b6111c1565b34801561077b57600080fd5b5061031061078a36600461285e565b6111f0565b34801561079b57600080fd5b506102816107aa366004612bfd565b611246565b3480156107bb57600080fd5b506103106107ca36600461285e565b611274565b3480156107db57600080fd5b506102816107ea366004612c2b565b6112b2565b60006001600160e01b031982166380ac58cd60e01b148061082057506001600160e01b03198216635b5e139f60e01b145b8061083b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461085090612c47565b80601f016020809104026020016040519081016040528092919081815260200182805461087c90612c47565b80156108c95780601f1061089e576101008083540402835291602001916108c9565b820191906000526020600020905b8154815290600101906020018083116108ac57829003601f168201915b5050505050905090565b60006108de826112e8565b506000828152600960205260409020546001600160a01b031661083b565b610907828233611321565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461095b576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061097590610970908a612b25565b61132e565b146109b3576109876020880188612b25565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610952565b6109c28787878787878761136a565b50505050505050565b6109d36124ac565b60208401356109f557604051631e4ec46b60e01b815260040160405180910390fd5b610a10336040860135610a0b6020880188612b25565b6114c9565b600080610a1c86611529565b9092509050610a48610a316020880188612b25565b8383610a42368a90038a018a612c7b565b88611647565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610a7d60208a018a612b25565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610ad057604051633250574960e11b815260006004820152602401610952565b6000610add838333611752565b9050836001600160a01b0316816001600160a01b031614610b2b576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610952565b50505050565b610b3961184b565b6109078282611878565b610b5e83838360405180602001604052806000815250610cfb565b505050565b600360209081526000928352604080842090915290825290208054610b8790612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb390612c47565b8015610c005780601f10610bd557610100808354040283529160200191610c00565b820191906000526020600020905b815481529060010190602001808311610be357829003601f168201915b505050505081565b600061083b826112e8565b610c1b61184b565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610c9c576040516322718ad960e21b815260006004820152602401610952565b506001600160a01b031660009081526008602052604090205490565b610cc061184b565b610cca60006118cd565b565b6001600160a01b03811630145b949350505050565b60606006805461085090612c47565b61090733838361191d565b610d06848484610aa6565b610b2b848484846119bc565b610d1a61184b565b610907610d278284612cad565b611ade565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d6090612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8c90612c47565b8015610dd95780601f10610dae57610100808354040283529160200191610dd9565b820191906000526020600020905b815481529060010190602001808311610dbc57829003601f168201915b505050505090508051600003610e295783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610cd99350505050565b6000839003610e39579050610cd9565b60028310610eb757610e8084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611be592505050565b80610e8e8460028188612d82565b604051602001610ea093929190612dac565b604051602081830303815290604052915050610cd9565b8383604051639a6d49cd60e01b8152600401610952929190612dfd565b60005b81811015610fdd5736838383818110610ef257610ef2612e11565b9050602002810190610f049190612e27565b9050610f37610f166020830183612b25565b602083013563ffffffff919091166000908152600160205260409020541490565b610f415750610fd5565b3063d045a0dc60c08301358360a0810135610f60610100830183612e48565b610f71610100890160e08a0161285e565b610f7f6101208a018a612e48565b6040518963ffffffff1660e01b8152600401610fa19796959493929190612ea3565b6000604051808303818588803b158015610fba57600080fd5b505af1158015610fce573d6000803e3d6000fd5b5050505050505b600101610ed7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa15801561101c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110449190810190612f29565b604051638351eea760e01b81526004016109529190612576565b6040805180820190915260008082526020820152602083013561109457604051631e4ec46b60e01b815260040160405180910390fd5b6000806110a085611529565b90925090506110bd6110b56020870187612b25565b838387611c11565b95945050505050565b60606110d1826112e8565b5060006110e960408051602081019091526000815290565b905060008151116111095760405180602001604052806000815250611134565b8061111384611ce9565b604051602001611124929190612f96565b6040516020818303038152906040525b9392505050565b61114361184b565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b5050505050565b3330146111e15760405163029a949d60e31b815260040160405180910390fd5b6109c2878787878787876109b3565b6111f861184b565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b61127c61184b565b6001600160a01b0381166112a657604051631e4fbdf760e01b815260006004820152602401610952565b6112af816118cd565b50565b60006020820180359060019083906112ca9086612b25565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061083b57604051637e27328960e01b815260048101849052602401610952565b610b5e8383836001611d7b565b63ffffffff81166000908152600160205260408120548061083b5760405163f6ff4fb760e01b815263ffffffff84166004820152602401610952565b600061137c6113798787611e81565b90565b9050600061138a8787611e99565b90506113a3828261139e60208d018d612b25565b611eb6565b60408611156114675760006113dd6113c160608c0160408d01612fc5565b6113ce60208d018d612b25565b6113d88b8b611ec0565b611f0b565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114339086908d906000908790600401612fe2565b600060405180830381600087803b15801561144d57600080fd5b505af1158015611461573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114a060208d018d612b25565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6114d282610c08565b6001600160a01b0316836001600160a01b03161461152057826114f483610c08565b604051634342715b60e11b81526001600160a01b03928316600482015291166024820152604401610952565b610b5e82611f3a565b6060806000611582602085013560408601356115486080880188612e48565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f7592505050565b9093509050600081611595576001611598565b60025b90506115b86115aa6020870187612b25565b826106d76060890189612e48565b6004549093506001600160a01b031615611640576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb916115fd918891889101613013565b602060405180830381865afa15801561161a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163e9190613038565b505b5050915091565b61164f6124ac565b600061165e8460000151611fda565b602085015190915015611678576116788460200151612002565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116c88c61132e565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611704929190613055565b60806040518083038185885af1158015611722573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061174791906130fe565b979650505050505050565b6000828152600760205260408120546001600160a01b039081169083161561177f5761177f8184866120e4565b6001600160a01b038116156117bd5761179c600085600080611d7b565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b038516156117ec576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cca5760405163118cdaa760e01b8152336004820152602401610952565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661194f57604051630b61174360e31b81526001600160a01b0383166004820152602401610952565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b2b57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906119fe903390889087908790600401613148565b6020604051808303816000875af1925050508015611a39575060408051601f3d908101601f19168201909252611a369181019061317b565b60015b611aa2573d808015611a67576040519150601f19603f3d011682016040523d82523d6000602084013e611a6c565b606091505b508051600003611a9a57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ba57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b60005b8151811015611bb557611b10828281518110611aff57611aff612e11565b602002602001015160400151611be5565b818181518110611b2257611b22612e11565b60200260200101516040015160036000848481518110611b4457611b44612e11565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611b7e57611b7e612e11565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611bac91906131e8565b50600101611ae1565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c6591906132a7565b600281015161ffff81166003146109075781604051639a6d49cd60e01b81526004016109529190612576565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611c748961132e565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611ca9929190613055565b6040805180830381865afa158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bd9190613332565b60606000611cf683612148565b60010190506000816001600160401b03811115611d1557611d15612928565b6040519080825280601f01601f191660200182016040528015611d3f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611d4957509392505050565b8080611d8f57506001600160a01b03821615155b15611e51576000611d9f846112e8565b90506001600160a01b03831615801590611dcb5750826001600160a01b0316816001600160a01b031614155b8015611dde5750611ddc8184611246565b155b15611e075760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610952565b8115611e4f5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611e906020828486612d82565b6111349161334e565b6000611ea9604060208486612d82565b8101906111349190612589565b610b5e8383612220565b6060611ecf8260408186612d82565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611f229392919061336c565b60405160208183030381529060405290509392505050565b6000611f496000836000611752565b90506001600160a01b03811661090757604051637e27328960e01b815260048101839052602401610952565b8051606090151580611fa9576040805160208101879052908101859052606001604051602081830303815290604052611fd0565b84843385604051602001611fc094939291906133b6565b6040516020818303038152906040525b9150935093915050565b6000813414611ffe576040516304fb820960e51b8152346004820152602401610952565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612062573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208691906133ea565b90506001600160a01b0381166120af576040516329b99a9560e11b815260040160405180910390fd5b6109076001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612285565b6120ef8383836122df565b610b5e576001600160a01b03831661211d57604051637e27328960e01b815260048101829052602401610952565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610952565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106121875772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106121b3576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106121d157662386f26fc10000830492506010015b6305f5e10083106121e9576305f5e100830492506008015b61271083106121fd57612710830492506004015b6064831061220f576064830492506002015b600a831061083b5760010192915050565b6001600160a01b03821661224a57604051633250574960e11b815260006004820152602401610952565b600061225883836000611752565b90506001600160a01b03811615610b5e576040516339e3563760e11b815260006004820152602401610952565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b2b908590612342565b60006001600160a01b03831615801590610cd95750826001600160a01b0316846001600160a01b0316148061231957506123198484611246565b80610cd95750506000908152600960205260409020546001600160a01b03908116911614919050565b60006123576001600160a01b038416836123a5565b9050805160001415801561237c57508080602001905181019061237a9190613038565b155b15610b5e57604051635274afe760e01b81526001600160a01b0384166004820152602401610952565b60606111348383600084600080856001600160a01b031684866040516123cb9190613407565b60006040518083038185875af1925050503d8060008114612408576040519150601f19603f3d011682016040523d82523d6000602084013e61240d565b606091505b509150915061241d868383612427565b9695505050505050565b60608261243c5761243782612483565b611134565b815115801561245357506001600160a01b0384163b155b1561247c57604051639996b31560e01b81526001600160a01b0385166004820152602401610952565b5080611134565b8051156124935780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b031681526020016124ee604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112af57600080fd5b60006020828403121561251b57600080fd5b8135611134816124f3565b60005b83811015612541578181015183820152602001612529565b50506000910152565b60008151808452612562816020860160208601612526565b601f01601f19169290920160200192915050565b602081526000611134602083018461254a565b60006020828403121561259b57600080fd5b5035919050565b6001600160a01b03811681146112af57600080fd5b600080604083850312156125ca57600080fd5b82356125d5816125a2565b946020939093013593505050565b6000606082840312156125f557600080fd5b50919050565b60008083601f84011261260d57600080fd5b5081356001600160401b0381111561262457600080fd5b60208301915083602082850101111561263c57600080fd5b9250929050565b600080600080600080600060e0888a03121561265e57600080fd5b61266889896125e3565b96506060880135955060808801356001600160401b038082111561268b57600080fd5b6126978b838c016125fb565b909750955060a08a013591506126ac826125a2565b90935060c089013590808211156126c257600080fd5b506126cf8a828b016125fb565b989b979a50959850939692959293505050565b600060c082840312156125f557600080fd5b6000806000838503608081121561270a57600080fd5b84356001600160401b0381111561272057600080fd5b61272c878288016126e2565b9450506040601f198201121561274157600080fd5b506020840191506060840135612756816125a2565b809150509250925092565b6000608082019050825182526001600160401b036020840151166020830152604083015161279c604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127b857600080fd5b83356127c3816125a2565b925060208401356127d3816125a2565b929592945050506040919091013590565b803563ffffffff811681146127f857600080fd5b919050565b6000806040838503121561281057600080fd5b6125d5836127e4565b803561ffff811681146127f857600080fd5b6000806040838503121561283e57600080fd5b612847836127e4565b915061285560208401612819565b90509250929050565b60006020828403121561287057600080fd5b8135611134816125a2565b60008060008060a0858703121561289157600080fd5b61289b86866125e3565b935060608501356001600160401b038111156128b657600080fd5b6128c2878288016125fb565b90945092505060808501356128d6816125a2565b939692955090935050565b80151581146112af57600080fd5b6000806040838503121561290257600080fd5b823561290d816125a2565b9150602083013561291d816128e1565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561296057612960612928565b60405290565b604051606081016001600160401b038111828210171561296057612960612928565b604051601f8201601f191681016001600160401b03811182821017156129b0576129b0612928565b604052919050565b60006001600160401b038211156129d1576129d1612928565b50601f01601f191660200190565b600082601f8301126129f057600080fd5b8135612a036129fe826129b8565b612988565b818152846020838601011115612a1857600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a4b57600080fd5b8435612a56816125a2565b93506020850135612a66816125a2565b92506040850135915060608501356001600160401b03811115612a8857600080fd5b612a94878288016129df565b91505092959194509250565b60008083601f840112612ab257600080fd5b5081356001600160401b03811115612ac957600080fd5b6020830191508360208260051b850101111561263c57600080fd5b60008060208385031215612af757600080fd5b82356001600160401b03811115612b0d57600080fd5b612b1985828601612aa0565b90969095509350505050565b600060208284031215612b3757600080fd5b611134826127e4565b60008060008060608587031215612b5657600080fd5b612b5f856127e4565b9350612b6d60208601612819565b925060408501356001600160401b03811115612b8857600080fd5b612b94878288016125fb565b95989497509550505050565b60008060408385031215612bb357600080fd5b82356001600160401b03811115612bc957600080fd5b612bd5858286016126e2565b925050602083013561291d816128e1565b81518152602080830151908201526040810161083b565b60008060408385031215612c1057600080fd5b8235612c1b816125a2565b9150602083013561291d816125a2565b600060608284031215612c3d57600080fd5b61113483836125e3565b600181811c90821680612c5b57607f821691505b6020821081036125f557634e487b7160e01b600052602260045260246000fd5b600060408284031215612c8d57600080fd5b612c9561293e565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cc757612cc7612928565b8360051b6020612cd8818301612988565b868152918501918181019036841115612cf057600080fd5b865b84811015612d7657803586811115612d0a5760008081fd5b88016060368290031215612d1e5760008081fd5b612d26612966565b612d2f826127e4565b8152612d3c868301612819565b8682015260408083013589811115612d545760008081fd5b612d60368286016129df565b9183019190915250845250918301918301612cf2565b50979650505050505050565b60008085851115612d9257600080fd5b83861115612d9f57600080fd5b5050820193919092039150565b60008451612dbe818460208901612526565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610cd9602083018486612dd4565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e3e57600080fd5b9190910192915050565b6000808335601e19843603018112612e5f57600080fd5b8301803591506001600160401b03821115612e7957600080fd5b60200191503681900382131561263c57600080fd5b6001600160401b03811681146112af57600080fd5b63ffffffff612eb1896127e4565b1681526020880135602082015260006040890135612ece81612e8e565b6001600160401b03811660408401525087606083015260e06080830152612ef960e083018789612dd4565b6001600160a01b03861660a084015282810360c0840152612f1b818587612dd4565b9a9950505050505050505050565b600060208284031215612f3b57600080fd5b81516001600160401b03811115612f5157600080fd5b8201601f81018413612f6257600080fd5b8051612f706129fe826129b8565b818152856020838501011115612f8557600080fd5b6110bd826020830160208601612526565b60008351612fa8818460208801612526565b835190830190612fbc818360208801612526565b01949350505050565b600060208284031215612fd757600080fd5b813561113481612e8e565b60018060a01b038516815283602082015261ffff8316604082015260806060820152600061241d608083018461254a565b604081526000613026604083018561254a565b82810360208401526110bd818561254a565b60006020828403121561304a57600080fd5b8151611134816128e1565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261308b60e084018261254a565b90506060850151603f198483030160a08501526130a8828261254a565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156130e057600080fd5b6130e861293e565b9050815181526020820151602082015292915050565b60006080828403121561311057600080fd5b613118612966565b82518152602083015161312a81612e8e565b602082015261313c84604085016130ce565b60408201529392505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061241d9083018461254a565b60006020828403121561318d57600080fd5b8151611134816124f3565b601f821115610b5e576000816000526020600020601f850160051c810160208610156131c15750805b601f850160051c820191505b818110156131e0578281556001016131cd565b505050505050565b81516001600160401b0381111561320157613201612928565b6132158161320f8454612c47565b84613198565b602080601f83116001811461324a57600084156132325750858301515b600019600386901b1c1916600185901b1785556131e0565b600085815260208120601f198616915b828110156132795788860151825594840194600190910190840161325a565b50858210156132975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561332457888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133108186018361254a565b9689019694505050908601906001016132d0565b509098975050505050505050565b60006040828403121561334457600080fd5b61113483836130ce565b8035602083101561083b57600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133a781600c850160208701612526565b91909101600c01949350505050565b848152836020820152826040820152600082516133da816060850160208701612526565b9190910160600195945050505050565b6000602082840312156133fc57600080fd5b8151611134816125a2565b60008251612e3e81846020870161252656fea2646970667358221220a5cab9b7a86e6c2a579014b67c58bb1f440ee40e66fb506c0dab889c19925efb64736f6c63430008160033", - "deployedBytecode": "0x60806040526004361061025c5760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc1461075c578063d42438851461076f578063e985e9c51461078f578063f2fde38b146107af578063fc0c546a1461040f578063ff7bd03d146107cf57600080fd5b8063bc70b354146106bc578063bd815db0146106dc578063c6414e7b146106ef578063c87b56dd1461071c578063ca5eb5e11461073c57600080fd5b8063a72f5dd811610108578063a72f5dd8146105f2578063b21a33e41461061a578063b731ea0a1461062f578063b88d4fde1461064f578063b98bd0701461066f578063bb0b6a531461068f57600080fd5b806382413eac1461056b5780638da5cb5b1461058b57806395d89b41146105a95780639f68b964146105be578063a22cb465146105d257600080fd5b80633400288b116101dd5780635e280f11116101a15780635e280f11146104795780636352211e146104ad5780636fc1b31e146104cd57806370a08231146104ed578063715018a61461051b5780637d25a05e1461053057600080fd5b80633400288b146103cf57806342842e0e146103ef57806352ae28791461040f5780635535d461146104225780635a0dfe4d1461044257600080fd5b806313137d651161022457806313137d651461033257806317442b70146103455780631f5e13341461036757806321eb730b1461038f57806323b872dd146103af57600080fd5b806301ffc9a71461026157806306fdde0314610296578063081812fc146102b8578063095ea7b3146102f0578063111ecdad14610312575b600080fd5b34801561026d57600080fd5b5061028161027c366004612509565b6107ef565b60405190151581526020015b60405180910390f35b3480156102a257600080fd5b506102ab610841565b60405161028d9190612576565b3480156102c457600080fd5b506102d86102d3366004612589565b6108d3565b6040516001600160a01b03909116815260200161028d565b3480156102fc57600080fd5b5061031061030b3660046125b7565b6108fc565b005b34801561031e57600080fd5b506004546102d8906001600160a01b031681565b610310610340366004612643565b61090b565b34801561035157600080fd5b506040805160018152600260208201520161028d565b34801561037357600080fd5b5061037c600181565b60405161ffff909116815260200161028d565b6103a261039d3660046126f4565b6109cb565b60405161028d9190612761565b3480156103bb57600080fd5b506103106103ca3660046127a3565b610aa6565b3480156103db57600080fd5b506103106103ea3660046127fd565b610b31565b3480156103fb57600080fd5b5061031061040a3660046127a3565b610b43565b34801561041b57600080fd5b50306102d8565b34801561042e57600080fd5b506102ab61043d36600461282b565b610b63565b34801561044e57600080fd5b5061028161045d3660046127fd565b63ffffffff919091166000908152600160205260409020541490565b34801561048557600080fd5b506102d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b957600080fd5b506102d86104c8366004612589565b610c08565b3480156104d957600080fd5b506103106104e836600461285e565b610c13565b3480156104f957600080fd5b5061050d61050836600461285e565b610c70565b60405190815260200161028d565b34801561052757600080fd5b50610310610cb8565b34801561053c57600080fd5b5061055361054b3660046127fd565b600092915050565b6040516001600160401b03909116815260200161028d565b34801561057757600080fd5b5061028161058636600461287b565b610ccc565b34801561059757600080fd5b506000546001600160a01b03166102d8565b3480156105b557600080fd5b506102ab610ce1565b3480156105ca57600080fd5b506000610281565b3480156105de57600080fd5b506103106105ed3660046128ef565b610cf0565b3480156105fe57600080fd5b50604080516311f0c6d360e11b8152600160208201520161028d565b34801561062657600080fd5b5061037c600281565b34801561063b57600080fd5b506002546102d8906001600160a01b031681565b34801561065b57600080fd5b5061031061066a366004612a35565b610cfb565b34801561067b57600080fd5b5061031061068a366004612ae4565b610d12565b34801561069b57600080fd5b5061050d6106aa366004612b25565b60016020526000908152604090205481565b3480156106c857600080fd5b506102ab6106d7366004612b40565b610d2c565b6103106106ea366004612ae4565b610ed4565b3480156106fb57600080fd5b5061070f61070a366004612ba0565b61105e565b60405161028d9190612be6565b34801561072857600080fd5b506102ab610737366004612589565b6110c6565b34801561074857600080fd5b5061031061075736600461285e565b61113b565b61031061076a366004612643565b6111c1565b34801561077b57600080fd5b5061031061078a36600461285e565b6111f0565b34801561079b57600080fd5b506102816107aa366004612bfd565b611246565b3480156107bb57600080fd5b506103106107ca36600461285e565b611274565b3480156107db57600080fd5b506102816107ea366004612c2b565b6112b2565b60006001600160e01b031982166380ac58cd60e01b148061082057506001600160e01b03198216635b5e139f60e01b145b8061083b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461085090612c47565b80601f016020809104026020016040519081016040528092919081815260200182805461087c90612c47565b80156108c95780601f1061089e576101008083540402835291602001916108c9565b820191906000526020600020905b8154815290600101906020018083116108ac57829003601f168201915b5050505050905090565b60006108de826112e8565b506000828152600960205260409020546001600160a01b031661083b565b610907828233611321565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461095b576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061097590610970908a612b25565b61132e565b146109b3576109876020880188612b25565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610952565b6109c28787878787878761136a565b50505050505050565b6109d36124ac565b60208401356109f557604051631e4ec46b60e01b815260040160405180910390fd5b610a10336040860135610a0b6020880188612b25565b6114c9565b600080610a1c86611529565b9092509050610a48610a316020880188612b25565b8383610a42368a90038a018a612c7b565b88611647565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610a7d60208a018a612b25565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610ad057604051633250574960e11b815260006004820152602401610952565b6000610add838333611752565b9050836001600160a01b0316816001600160a01b031614610b2b576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610952565b50505050565b610b3961184b565b6109078282611878565b610b5e83838360405180602001604052806000815250610cfb565b505050565b600360209081526000928352604080842090915290825290208054610b8790612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb390612c47565b8015610c005780601f10610bd557610100808354040283529160200191610c00565b820191906000526020600020905b815481529060010190602001808311610be357829003601f168201915b505050505081565b600061083b826112e8565b610c1b61184b565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610c9c576040516322718ad960e21b815260006004820152602401610952565b506001600160a01b031660009081526008602052604090205490565b610cc061184b565b610cca60006118cd565b565b6001600160a01b03811630145b949350505050565b60606006805461085090612c47565b61090733838361191d565b610d06848484610aa6565b610b2b848484846119bc565b610d1a61184b565b610907610d278284612cad565b611ade565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d6090612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8c90612c47565b8015610dd95780601f10610dae57610100808354040283529160200191610dd9565b820191906000526020600020905b815481529060010190602001808311610dbc57829003601f168201915b505050505090508051600003610e295783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610cd99350505050565b6000839003610e39579050610cd9565b60028310610eb757610e8084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611be592505050565b80610e8e8460028188612d82565b604051602001610ea093929190612dac565b604051602081830303815290604052915050610cd9565b8383604051639a6d49cd60e01b8152600401610952929190612dfd565b60005b81811015610fdd5736838383818110610ef257610ef2612e11565b9050602002810190610f049190612e27565b9050610f37610f166020830183612b25565b602083013563ffffffff919091166000908152600160205260409020541490565b610f415750610fd5565b3063d045a0dc60c08301358360a0810135610f60610100830183612e48565b610f71610100890160e08a0161285e565b610f7f6101208a018a612e48565b6040518963ffffffff1660e01b8152600401610fa19796959493929190612ea3565b6000604051808303818588803b158015610fba57600080fd5b505af1158015610fce573d6000803e3d6000fd5b5050505050505b600101610ed7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa15801561101c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110449190810190612f29565b604051638351eea760e01b81526004016109529190612576565b6040805180820190915260008082526020820152602083013561109457604051631e4ec46b60e01b815260040160405180910390fd5b6000806110a085611529565b90925090506110bd6110b56020870187612b25565b838387611c11565b95945050505050565b60606110d1826112e8565b5060006110e960408051602081019091526000815290565b905060008151116111095760405180602001604052806000815250611134565b8061111384611ce9565b604051602001611124929190612f96565b6040516020818303038152906040525b9392505050565b61114361184b565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b5050505050565b3330146111e15760405163029a949d60e31b815260040160405180910390fd5b6109c2878787878787876109b3565b6111f861184b565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b61127c61184b565b6001600160a01b0381166112a657604051631e4fbdf760e01b815260006004820152602401610952565b6112af816118cd565b50565b60006020820180359060019083906112ca9086612b25565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061083b57604051637e27328960e01b815260048101849052602401610952565b610b5e8383836001611d7b565b63ffffffff81166000908152600160205260408120548061083b5760405163f6ff4fb760e01b815263ffffffff84166004820152602401610952565b600061137c6113798787611e81565b90565b9050600061138a8787611e99565b90506113a3828261139e60208d018d612b25565b611eb6565b60408611156114675760006113dd6113c160608c0160408d01612fc5565b6113ce60208d018d612b25565b6113d88b8b611ec0565b611f0b565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114339086908d906000908790600401612fe2565b600060405180830381600087803b15801561144d57600080fd5b505af1158015611461573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114a060208d018d612b25565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6114d282610c08565b6001600160a01b0316836001600160a01b03161461152057826114f483610c08565b604051634342715b60e11b81526001600160a01b03928316600482015291166024820152604401610952565b610b5e82611f3a565b6060806000611582602085013560408601356115486080880188612e48565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f7592505050565b9093509050600081611595576001611598565b60025b90506115b86115aa6020870187612b25565b826106d76060890189612e48565b6004549093506001600160a01b031615611640576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb916115fd918891889101613013565b602060405180830381865afa15801561161a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163e9190613038565b505b5050915091565b61164f6124ac565b600061165e8460000151611fda565b602085015190915015611678576116788460200151612002565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116c88c61132e565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611704929190613055565b60806040518083038185885af1158015611722573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061174791906130fe565b979650505050505050565b6000828152600760205260408120546001600160a01b039081169083161561177f5761177f8184866120e4565b6001600160a01b038116156117bd5761179c600085600080611d7b565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b038516156117ec576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cca5760405163118cdaa760e01b8152336004820152602401610952565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661194f57604051630b61174360e31b81526001600160a01b0383166004820152602401610952565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b2b57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906119fe903390889087908790600401613148565b6020604051808303816000875af1925050508015611a39575060408051601f3d908101601f19168201909252611a369181019061317b565b60015b611aa2573d808015611a67576040519150601f19603f3d011682016040523d82523d6000602084013e611a6c565b606091505b508051600003611a9a57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ba57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b60005b8151811015611bb557611b10828281518110611aff57611aff612e11565b602002602001015160400151611be5565b818181518110611b2257611b22612e11565b60200260200101516040015160036000848481518110611b4457611b44612e11565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611b7e57611b7e612e11565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611bac91906131e8565b50600101611ae1565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c6591906132a7565b600281015161ffff81166003146109075781604051639a6d49cd60e01b81526004016109529190612576565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611c748961132e565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611ca9929190613055565b6040805180830381865afa158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bd9190613332565b60606000611cf683612148565b60010190506000816001600160401b03811115611d1557611d15612928565b6040519080825280601f01601f191660200182016040528015611d3f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611d4957509392505050565b8080611d8f57506001600160a01b03821615155b15611e51576000611d9f846112e8565b90506001600160a01b03831615801590611dcb5750826001600160a01b0316816001600160a01b031614155b8015611dde5750611ddc8184611246565b155b15611e075760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610952565b8115611e4f5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611e906020828486612d82565b6111349161334e565b6000611ea9604060208486612d82565b8101906111349190612589565b610b5e8383612220565b6060611ecf8260408186612d82565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611f229392919061336c565b60405160208183030381529060405290509392505050565b6000611f496000836000611752565b90506001600160a01b03811661090757604051637e27328960e01b815260048101839052602401610952565b8051606090151580611fa9576040805160208101879052908101859052606001604051602081830303815290604052611fd0565b84843385604051602001611fc094939291906133b6565b6040516020818303038152906040525b9150935093915050565b6000813414611ffe576040516304fb820960e51b8152346004820152602401610952565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612062573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208691906133ea565b90506001600160a01b0381166120af576040516329b99a9560e11b815260040160405180910390fd5b6109076001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612285565b6120ef8383836122df565b610b5e576001600160a01b03831661211d57604051637e27328960e01b815260048101829052602401610952565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610952565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106121875772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106121b3576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106121d157662386f26fc10000830492506010015b6305f5e10083106121e9576305f5e100830492506008015b61271083106121fd57612710830492506004015b6064831061220f576064830492506002015b600a831061083b5760010192915050565b6001600160a01b03821661224a57604051633250574960e11b815260006004820152602401610952565b600061225883836000611752565b90506001600160a01b03811615610b5e576040516339e3563760e11b815260006004820152602401610952565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b2b908590612342565b60006001600160a01b03831615801590610cd95750826001600160a01b0316846001600160a01b0316148061231957506123198484611246565b80610cd95750506000908152600960205260409020546001600160a01b03908116911614919050565b60006123576001600160a01b038416836123a5565b9050805160001415801561237c57508080602001905181019061237a9190613038565b155b15610b5e57604051635274afe760e01b81526001600160a01b0384166004820152602401610952565b60606111348383600084600080856001600160a01b031684866040516123cb9190613407565b60006040518083038185875af1925050503d8060008114612408576040519150601f19603f3d011682016040523d82523d6000602084013e61240d565b606091505b509150915061241d868383612427565b9695505050505050565b60608261243c5761243782612483565b611134565b815115801561245357506001600160a01b0384163b155b1561247c57604051639996b31560e01b81526001600160a01b0385166004820152602401610952565b5080611134565b8051156124935780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b031681526020016124ee604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112af57600080fd5b60006020828403121561251b57600080fd5b8135611134816124f3565b60005b83811015612541578181015183820152602001612529565b50506000910152565b60008151808452612562816020860160208601612526565b601f01601f19169290920160200192915050565b602081526000611134602083018461254a565b60006020828403121561259b57600080fd5b5035919050565b6001600160a01b03811681146112af57600080fd5b600080604083850312156125ca57600080fd5b82356125d5816125a2565b946020939093013593505050565b6000606082840312156125f557600080fd5b50919050565b60008083601f84011261260d57600080fd5b5081356001600160401b0381111561262457600080fd5b60208301915083602082850101111561263c57600080fd5b9250929050565b600080600080600080600060e0888a03121561265e57600080fd5b61266889896125e3565b96506060880135955060808801356001600160401b038082111561268b57600080fd5b6126978b838c016125fb565b909750955060a08a013591506126ac826125a2565b90935060c089013590808211156126c257600080fd5b506126cf8a828b016125fb565b989b979a50959850939692959293505050565b600060c082840312156125f557600080fd5b6000806000838503608081121561270a57600080fd5b84356001600160401b0381111561272057600080fd5b61272c878288016126e2565b9450506040601f198201121561274157600080fd5b506020840191506060840135612756816125a2565b809150509250925092565b6000608082019050825182526001600160401b036020840151166020830152604083015161279c604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127b857600080fd5b83356127c3816125a2565b925060208401356127d3816125a2565b929592945050506040919091013590565b803563ffffffff811681146127f857600080fd5b919050565b6000806040838503121561281057600080fd5b6125d5836127e4565b803561ffff811681146127f857600080fd5b6000806040838503121561283e57600080fd5b612847836127e4565b915061285560208401612819565b90509250929050565b60006020828403121561287057600080fd5b8135611134816125a2565b60008060008060a0858703121561289157600080fd5b61289b86866125e3565b935060608501356001600160401b038111156128b657600080fd5b6128c2878288016125fb565b90945092505060808501356128d6816125a2565b939692955090935050565b80151581146112af57600080fd5b6000806040838503121561290257600080fd5b823561290d816125a2565b9150602083013561291d816128e1565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561296057612960612928565b60405290565b604051606081016001600160401b038111828210171561296057612960612928565b604051601f8201601f191681016001600160401b03811182821017156129b0576129b0612928565b604052919050565b60006001600160401b038211156129d1576129d1612928565b50601f01601f191660200190565b600082601f8301126129f057600080fd5b8135612a036129fe826129b8565b612988565b818152846020838601011115612a1857600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a4b57600080fd5b8435612a56816125a2565b93506020850135612a66816125a2565b92506040850135915060608501356001600160401b03811115612a8857600080fd5b612a94878288016129df565b91505092959194509250565b60008083601f840112612ab257600080fd5b5081356001600160401b03811115612ac957600080fd5b6020830191508360208260051b850101111561263c57600080fd5b60008060208385031215612af757600080fd5b82356001600160401b03811115612b0d57600080fd5b612b1985828601612aa0565b90969095509350505050565b600060208284031215612b3757600080fd5b611134826127e4565b60008060008060608587031215612b5657600080fd5b612b5f856127e4565b9350612b6d60208601612819565b925060408501356001600160401b03811115612b8857600080fd5b612b94878288016125fb565b95989497509550505050565b60008060408385031215612bb357600080fd5b82356001600160401b03811115612bc957600080fd5b612bd5858286016126e2565b925050602083013561291d816128e1565b81518152602080830151908201526040810161083b565b60008060408385031215612c1057600080fd5b8235612c1b816125a2565b9150602083013561291d816125a2565b600060608284031215612c3d57600080fd5b61113483836125e3565b600181811c90821680612c5b57607f821691505b6020821081036125f557634e487b7160e01b600052602260045260246000fd5b600060408284031215612c8d57600080fd5b612c9561293e565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cc757612cc7612928565b8360051b6020612cd8818301612988565b868152918501918181019036841115612cf057600080fd5b865b84811015612d7657803586811115612d0a5760008081fd5b88016060368290031215612d1e5760008081fd5b612d26612966565b612d2f826127e4565b8152612d3c868301612819565b8682015260408083013589811115612d545760008081fd5b612d60368286016129df565b9183019190915250845250918301918301612cf2565b50979650505050505050565b60008085851115612d9257600080fd5b83861115612d9f57600080fd5b5050820193919092039150565b60008451612dbe818460208901612526565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610cd9602083018486612dd4565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e3e57600080fd5b9190910192915050565b6000808335601e19843603018112612e5f57600080fd5b8301803591506001600160401b03821115612e7957600080fd5b60200191503681900382131561263c57600080fd5b6001600160401b03811681146112af57600080fd5b63ffffffff612eb1896127e4565b1681526020880135602082015260006040890135612ece81612e8e565b6001600160401b03811660408401525087606083015260e06080830152612ef960e083018789612dd4565b6001600160a01b03861660a084015282810360c0840152612f1b818587612dd4565b9a9950505050505050505050565b600060208284031215612f3b57600080fd5b81516001600160401b03811115612f5157600080fd5b8201601f81018413612f6257600080fd5b8051612f706129fe826129b8565b818152856020838501011115612f8557600080fd5b6110bd826020830160208601612526565b60008351612fa8818460208801612526565b835190830190612fbc818360208801612526565b01949350505050565b600060208284031215612fd757600080fd5b813561113481612e8e565b60018060a01b038516815283602082015261ffff8316604082015260806060820152600061241d608083018461254a565b604081526000613026604083018561254a565b82810360208401526110bd818561254a565b60006020828403121561304a57600080fd5b8151611134816128e1565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261308b60e084018261254a565b90506060850151603f198483030160a08501526130a8828261254a565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156130e057600080fd5b6130e861293e565b9050815181526020820151602082015292915050565b60006080828403121561311057600080fd5b613118612966565b82518152602083015161312a81612e8e565b602082015261313c84604085016130ce565b60408201529392505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061241d9083018461254a565b60006020828403121561318d57600080fd5b8151611134816124f3565b601f821115610b5e576000816000526020600020601f850160051c810160208610156131c15750805b601f850160051c820191505b818110156131e0578281556001016131cd565b505050505050565b81516001600160401b0381111561320157613201612928565b6132158161320f8454612c47565b84613198565b602080601f83116001811461324a57600084156132325750858301515b600019600386901b1c1916600185901b1785556131e0565b600085815260208120601f198616915b828110156132795788860151825594840194600190910190840161325a565b50858210156132975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561332457888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133108186018361254a565b9689019694505050908601906001016132d0565b509098975050505050505050565b60006040828403121561334457600080fd5b61113483836130ce565b8035602083101561083b57600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133a781600c850160208701612526565b91909101600c01949350505050565b848152836020820152826040820152600082516133da816060850160208701612526565b9190910160600195945050505050565b6000602082840312156133fc57600080fd5b8151611134816125a2565b60008251612e3e81846020870161252656fea2646970667358221220a5cab9b7a86e6c2a579014b67c58bb1f440ee40e66fb506c0dab889c19925efb64736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/contracts/mocks/MyONFT721Mock.sol/MyONFT721Mock.dbg.json b/examples/onft721/artifacts/contracts/mocks/MyONFT721Mock.sol/MyONFT721Mock.dbg.json deleted file mode 100644 index ade803066..000000000 --- a/examples/onft721/artifacts/contracts/mocks/MyONFT721Mock.sol/MyONFT721Mock.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/contracts/mocks/MyONFT721Mock.sol/MyONFT721Mock.json b/examples/onft721/artifacts/contracts/mocks/MyONFT721Mock.sol/MyONFT721Mock.json deleted file mode 100644 index a5911ed73..000000000 --- a/examples/onft721/artifacts/contracts/mocks/MyONFT721Mock.sol/MyONFT721Mock.json +++ /dev/null @@ -1,1620 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "MyONFT721Mock", - "sourceName": "contracts/mocks/MyONFT721Mock.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "_name", - "type": "string" - }, - { - "internalType": "string", - "name": "_symbol", - "type": "string" - }, - { - "internalType": "address", - "name": "_lzEndpoint", - "type": "address" - }, - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721IncorrectOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721InsufficientApproval", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC721InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC721InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721InvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC721InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC721InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721NonexistentToken", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidDelegate", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidEndpointCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "name": "InvalidOptions", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidReceiver", - "type": "error" - }, - { - "inputs": [], - "name": "LzTokenUnavailable", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "NoPeer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "msgValue", - "type": "uint256" - } - ], - "name": "NotEnoughNative", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "OnlyEndpoint", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OnlyNFTOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - } - ], - "name": "OnlyPeer", - "type": "error" - }, - { - "inputs": [], - "name": "OnlySelf", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "SafeERC20FailedOperation", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "result", - "type": "bytes" - } - ], - "name": "SimulationResult", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "indexed": false, - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "EnforcedOptionSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "inspector", - "type": "address" - } - ], - "name": "MsgInspectorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "indexed": true, - "internalType": "address", - "name": "toAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ONFTReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "indexed": true, - "internalType": "address", - "name": "fromAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ONFTSent", - "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": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "name": "PeerSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "preCrimeAddress", - "type": "address" - } - ], - "name": "PreCrimeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "SEND", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SEND_AND_COMPOSE", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - } - ], - "name": "allowInitializePath", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "approvalRequired", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "_msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "_extraOptions", - "type": "bytes" - } - ], - "name": "combineOptions", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "endpoint", - "outputs": [ - { - "internalType": "contract ILayerZeroEndpointV2", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - } - ], - "name": "enforcedOptions", - "outputs": [ - { - "internalType": "bytes", - "name": "enforcedOption", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_sender", - "type": "address" - } - ], - "name": "isComposeMsgSender", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "isPeer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceive", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "origin", - "type": "tuple" - }, - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "address", - "name": "executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" - } - ], - "internalType": "struct InboundPacket[]", - "name": "_packets", - "type": "tuple[]" - } - ], - "name": "lzReceiveAndRevert", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "srcEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "internalType": "struct Origin", - "name": "_origin", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_guid", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - }, - { - "internalType": "address", - "name": "_executor", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_extraData", - "type": "bytes" - } - ], - "name": "lzReceiveSimulate", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "msgInspector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "nextNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oApp", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oAppVersion", - "outputs": [ - { - "internalType": "uint64", - "name": "senderVersion", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "receiverVersion", - "type": "uint64" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "onftVersion", - "outputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - }, - { - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - } - ], - "name": "peers", - "outputs": [ - { - "internalType": "bytes32", - "name": "peer", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "preCrime", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "to", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "extraOptions", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "composeMsg", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "onftCmd", - "type": "bytes" - } - ], - "internalType": "struct SendParam", - "name": "_sendParam", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "_payInLzToken", - "type": "bool" - } - ], - "name": "quoteSend", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "msgFee", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "dstEid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "to", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "extraOptions", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "composeMsg", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "onftCmd", - "type": "bytes" - } - ], - "internalType": "struct SendParam", - "name": "_sendParam", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "_fee", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_refundAddress", - "type": "address" - } - ], - "name": "send", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "guid", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "nativeFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lzTokenFee", - "type": "uint256" - } - ], - "internalType": "struct MessagingFee", - "name": "fee", - "type": "tuple" - } - ], - "internalType": "struct MessagingReceipt", - "name": "msgReceipt", - "type": "tuple" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "name": "setDelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "eid", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "msgType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "options", - "type": "bytes" - } - ], - "internalType": "struct EnforcedOptionParam[]", - "name": "_enforcedOptions", - "type": "tuple[]" - } - ], - "name": "setEnforcedOptions", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_msgInspector", - "type": "address" - } - ], - "name": "setMsgInspector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_eid", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "_peer", - "type": "bytes32" - } - ], - "name": "setPeer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_preCrime", - "type": "address" - } - ], - "name": "setPreCrime", - "outputs": [], - "stateMutability": "nonpayable", - "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": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60a06040523480156200001157600080fd5b506040516200393c3803806200393c83398101604081905262000034916200027f565b83838383838383838383838381818181806001600160a01b0381166200007457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007f816200014a565b506001600160a01b038083166080528116620000ae57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000f657600080fd5b505af11580156200010b573d6000803e3d6000fd5b5050505050505050505081600590816200012691906200039f565b5060066200013582826200039f565b5050505050505050505050505050506200046b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001c257600080fd5b81516001600160401b0380821115620001df57620001df6200019a565b604051601f8301601f19908116603f011681019082821181831017156200020a576200020a6200019a565b81604052838152602092508660208588010111156200022857600080fd5b600091505b838210156200024c57858201830151818301840152908201906200022d565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200027a57600080fd5b919050565b600080600080608085870312156200029657600080fd5b84516001600160401b0380821115620002ae57600080fd5b620002bc88838901620001b0565b95506020870151915080821115620002d357600080fd5b50620002e287828801620001b0565b935050620002f36040860162000262565b9150620003036060860162000262565b905092959194509250565b600181811c908216806200032357607f821691505b6020821081036200034457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200039a576000816000526020600020601f850160051c81016020861015620003755750805b601f850160051c820191505b81811015620003965782815560010162000381565b5050505b505050565b81516001600160401b03811115620003bb57620003bb6200019a565b620003d381620003cc84546200030e565b846200034a565b602080601f8311600181146200040b5760008415620003f25750858301515b600019600386901b1c1916600185901b17855562000396565b600085815260208120601f198616915b828110156200043c578886015182559484019460019091019084016200041b565b50858210156200045b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051613484620004b8600039600081816104b601528181610938015281816111970152818161142c015281816116af01528181611cc1015281816120a0015261215901526134846000f3fe6080604052600436106102675760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc14610787578063d42438851461079a578063e985e9c5146107ba578063f2fde38b146107da578063fc0c546a1461043a578063ff7bd03d146107fa57600080fd5b8063bc70b354146106e7578063bd815db014610707578063c6414e7b1461071a578063c87b56dd14610747578063ca5eb5e11461076757600080fd5b8063a72f5dd811610108578063a72f5dd81461061d578063b21a33e414610645578063b731ea0a1461065a578063b88d4fde1461067a578063b98bd0701461069a578063bb0b6a53146106ba57600080fd5b806382413eac146105965780638da5cb5b146105b657806395d89b41146105d45780639f68b964146105e9578063a22cb465146105fd57600080fd5b806340c10f19116101dd5780635e280f11116101a15780635e280f11146104a45780636352211e146104d85780636fc1b31e146104f857806370a0823114610518578063715018a6146105465780637d25a05e1461055b57600080fd5b806340c10f19146103fa57806342842e0e1461041a57806352ae28791461043a5780635535d4611461044d5780635a0dfe4d1461046d57600080fd5b806313137d651161022f57806313137d651461033d57806317442b70146103505780631f5e13341461037257806321eb730b1461039a57806323b872dd146103ba5780633400288b146103da57600080fd5b806301ffc9a71461026c57806306fdde03146102a1578063081812fc146102c3578063095ea7b3146102fb578063111ecdad1461031d575b600080fd5b34801561027857600080fd5b5061028c61028736600461253e565b61081a565b60405190151581526020015b60405180910390f35b3480156102ad57600080fd5b506102b661086c565b60405161029891906125ab565b3480156102cf57600080fd5b506102e36102de3660046125be565b6108fe565b6040516001600160a01b039091168152602001610298565b34801561030757600080fd5b5061031b6103163660046125ec565b610927565b005b34801561032957600080fd5b506004546102e3906001600160a01b031681565b61031b61034b366004612678565b610936565b34801561035c57600080fd5b5060408051600181526002602082015201610298565b34801561037e57600080fd5b50610387600181565b60405161ffff9091168152602001610298565b6103ad6103a8366004612729565b6109f6565b6040516102989190612796565b3480156103c657600080fd5b5061031b6103d53660046127d8565b610ad1565b3480156103e657600080fd5b5061031b6103f5366004612832565b610b5c565b34801561040657600080fd5b5061031b6104153660046125ec565b610b6e565b34801561042657600080fd5b5061031b6104353660046127d8565b610b78565b34801561044657600080fd5b50306102e3565b34801561045957600080fd5b506102b6610468366004612860565b610b98565b34801561047957600080fd5b5061028c610488366004612832565b63ffffffff919091166000908152600160205260409020541490565b3480156104b057600080fd5b506102e37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e457600080fd5b506102e36104f33660046125be565b610c3d565b34801561050457600080fd5b5061031b610513366004612893565b610c48565b34801561052457600080fd5b50610538610533366004612893565b610ca5565b604051908152602001610298565b34801561055257600080fd5b5061031b610ced565b34801561056757600080fd5b5061057e610576366004612832565b600092915050565b6040516001600160401b039091168152602001610298565b3480156105a257600080fd5b5061028c6105b13660046128b0565b610d01565b3480156105c257600080fd5b506000546001600160a01b03166102e3565b3480156105e057600080fd5b506102b6610d16565b3480156105f557600080fd5b50600061028c565b34801561060957600080fd5b5061031b610618366004612924565b610d25565b34801561062957600080fd5b50604080516311f0c6d360e11b81526001602082015201610298565b34801561065157600080fd5b50610387600281565b34801561066657600080fd5b506002546102e3906001600160a01b031681565b34801561068657600080fd5b5061031b610695366004612a6a565b610d30565b3480156106a657600080fd5b5061031b6106b5366004612b19565b610d47565b3480156106c657600080fd5b506105386106d5366004612b5a565b60016020526000908152604090205481565b3480156106f357600080fd5b506102b6610702366004612b75565b610d61565b61031b610715366004612b19565b610f09565b34801561072657600080fd5b5061073a610735366004612bd5565b611093565b6040516102989190612c1b565b34801561075357600080fd5b506102b66107623660046125be565b6110fb565b34801561077357600080fd5b5061031b610782366004612893565b611170565b61031b610795366004612678565b6111f6565b3480156107a657600080fd5b5061031b6107b5366004612893565b611225565b3480156107c657600080fd5b5061028c6107d5366004612c32565b61127b565b3480156107e657600080fd5b5061031b6107f5366004612893565b6112a9565b34801561080657600080fd5b5061028c610815366004612c60565b6112e7565b60006001600160e01b031982166380ac58cd60e01b148061084b57506001600160e01b03198216635b5e139f60e01b145b8061086657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461087b90612c7c565b80601f01602080910402602001604051908101604052809291908181526020018280546108a790612c7c565b80156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b60006109098261131d565b506000828152600960205260409020546001600160a01b0316610866565b610932828233611356565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610986576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b602087018035906109a09061099b908a612b5a565b611363565b146109de576109b26020880188612b5a565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161097d565b6109ed8787878787878761139f565b50505050505050565b6109fe6124e1565b6020840135610a2057604051631e4ec46b60e01b815260040160405180910390fd5b610a3b336040860135610a366020880188612b5a565b6114fe565b600080610a478661155e565b9092509050610a73610a5c6020880188612b5a565b8383610a6d368a90038a018a612cb0565b8861167c565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610aa860208a018a612b5a565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610afb57604051633250574960e11b81526000600482015260240161097d565b6000610b08838333611787565b9050836001600160a01b0316816001600160a01b031614610b56576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161097d565b50505050565b610b64611880565b61093282826118ad565b6109328282611902565b610b9383838360405180602001604052806000815250610d30565b505050565b600360209081526000928352604080842090915290825290208054610bbc90612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610be890612c7c565b8015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b60006108668261131d565b610c50611880565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610cd1576040516322718ad960e21b81526000600482015260240161097d565b506001600160a01b031660009081526008602052604090205490565b610cf5611880565b610cff6000611967565b565b6001600160a01b03811630145b949350505050565b60606006805461087b90612c7c565b6109323383836119b7565b610d3b848484610ad1565b610b5684848484611a56565b610d4f611880565b610932610d5c8284612ce2565b611b78565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d9590612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc190612c7c565b8015610e0e5780601f10610de357610100808354040283529160200191610e0e565b820191906000526020600020905b815481529060010190602001808311610df157829003601f168201915b505050505090508051600003610e5e5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610d0e9350505050565b6000839003610e6e579050610d0e565b60028310610eec57610eb584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c7f92505050565b80610ec38460028188612db7565b604051602001610ed593929190612de1565b604051602081830303815290604052915050610d0e565b8383604051639a6d49cd60e01b815260040161097d929190612e32565b60005b818110156110125736838383818110610f2757610f27612e46565b9050602002810190610f399190612e5c565b9050610f6c610f4b6020830183612b5a565b602083013563ffffffff919091166000908152600160205260409020541490565b610f76575061100a565b3063d045a0dc60c08301358360a0810135610f95610100830183612e7d565b610fa6610100890160e08a01612893565b610fb46101208a018a612e7d565b6040518963ffffffff1660e01b8152600401610fd69796959493929190612ed8565b6000604051808303818588803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b5050505050505b600101610f0c565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110799190810190612f5e565b604051638351eea760e01b815260040161097d91906125ab565b604080518082019091526000808252602082015260208301356110c957604051631e4ec46b60e01b815260040160405180910390fd5b6000806110d58561155e565b90925090506110f26110ea6020870187612b5a565b838387611cab565b95945050505050565b60606111068261131d565b50600061111e60408051602081019091526000815290565b9050600081511161113e5760405180602001604052806000815250611169565b8061114884611d83565b604051602001611159929190612fcb565b6040516020818303038152906040525b9392505050565b611178611880565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111db57600080fd5b505af11580156111ef573d6000803e3d6000fd5b5050505050565b3330146112165760405163029a949d60e31b815260040160405180910390fd5b6109ed878787878787876109de565b61122d611880565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c9a565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6112b1611880565b6001600160a01b0381166112db57604051631e4fbdf760e01b81526000600482015260240161097d565b6112e481611967565b50565b60006020820180359060019083906112ff9086612b5a565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061086657604051637e27328960e01b81526004810184905260240161097d565b610b938383836001611e15565b63ffffffff8116600090815260016020526040812054806108665760405163f6ff4fb760e01b815263ffffffff8416600482015260240161097d565b60006113b16113ae8787611f1b565b90565b905060006113bf8787611f33565b90506113d882826113d360208d018d612b5a565b611f50565b604086111561149c5760006114126113f660608c0160408d01612ffa565b61140360208d018d612b5a565b61140d8b8b611f5a565b611fa5565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114689086908d906000908790600401613017565b600060405180830381600087803b15801561148257600080fd5b505af1158015611496573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114d560208d018d612b5a565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b61150782610c3d565b6001600160a01b0316836001600160a01b031614611555578261152983610c3d565b604051634342715b60e11b81526001600160a01b0392831660048201529116602482015260440161097d565b610b9382611fd4565b60608060006115b76020850135604086013561157d6080880188612e7d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061200f92505050565b90935090506000816115ca5760016115cd565b60025b90506115ed6115df6020870187612b5a565b826107026060890189612e7d565b6004549093506001600160a01b031615611675576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb91611632918891889101613048565b602060405180830381865afa15801561164f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611673919061306d565b505b5050915091565b6116846124e1565b60006116938460000151612074565b6020850151909150156116ad576116ad846020015161209c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116fd8c611363565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161173992919061308a565b60806040518083038185885af1158015611757573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061177c9190613133565b979650505050505050565b6000828152600760205260408120546001600160a01b03908116908316156117b4576117b481848661217e565b6001600160a01b038116156117f2576117d1600085600080611e15565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b03851615611821576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cff5760405163118cdaa760e01b815233600482015260240161097d565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6001600160a01b03821661192c57604051633250574960e11b81526000600482015260240161097d565b600061193a83836000611787565b90506001600160a01b03811615610b93576040516339e3563760e11b81526000600482015260240161097d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166119e957604051630b61174360e31b81526001600160a01b038316600482015260240161097d565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b5657604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611a9890339088908790879060040161317d565b6020604051808303816000875af1925050508015611ad3575060408051601f3d908101601f19168201909252611ad0918101906131b0565b60015b611b3c573d808015611b01576040519150601f19603f3d011682016040523d82523d6000602084013e611b06565b606091505b508051600003611b3457604051633250574960e11b81526001600160a01b038516600482015260240161097d565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ef57604051633250574960e11b81526001600160a01b038516600482015260240161097d565b60005b8151811015611c4f57611baa828281518110611b9957611b99612e46565b602002602001015160400151611c7f565b818181518110611bbc57611bbc612e46565b60200260200101516040015160036000848481518110611bde57611bde612e46565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611c1857611c18612e46565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611c46919061321d565b50600101611b7b565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c9a91906132dc565b600281015161ffff81166003146109325781604051639a6d49cd60e01b815260040161097d91906125ab565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611d0e89611363565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611d4392919061308a565b6040805180830381865afa158015611d5f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190613367565b60606000611d90836121e2565b60010190506000816001600160401b03811115611daf57611daf61295d565b6040519080825280601f01601f191660200182016040528015611dd9576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611de357509392505050565b8080611e2957506001600160a01b03821615155b15611eeb576000611e398461131d565b90506001600160a01b03831615801590611e655750826001600160a01b0316816001600160a01b031614155b8015611e785750611e76818461127b565b155b15611ea15760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161097d565b8115611ee95783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611f2a6020828486612db7565b61116991613383565b6000611f43604060208486612db7565b81019061116991906125be565b610b938383611902565b6060611f698260408186612db7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611fbc939291906133a1565b60405160208183030381529060405290509392505050565b6000611fe36000836000611787565b90506001600160a01b03811661093257604051637e27328960e01b81526004810183905260240161097d565b805160609015158061204357604080516020810187905290810185905260600160405160208183030381529060405261206a565b8484338560405160200161205a94939291906133eb565b6040516020818303038152906040525b9150935093915050565b6000813414612098576040516304fb820960e51b815234600482015260240161097d565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612120919061341f565b90506001600160a01b038116612149576040516329b99a9560e11b815260040160405180910390fd5b6109326001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856122ba565b612189838383612314565b610b93576001600160a01b0383166121b757604051637e27328960e01b81526004810182905260240161097d565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161097d565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106122215772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061224d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061226b57662386f26fc10000830492506010015b6305f5e1008310612283576305f5e100830492506008015b612710831061229757612710830492506004015b606483106122a9576064830492506002015b600a83106108665760010192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b56908590612377565b60006001600160a01b03831615801590610d0e5750826001600160a01b0316846001600160a01b0316148061234e575061234e848461127b565b80610d0e5750506000908152600960205260409020546001600160a01b03908116911614919050565b600061238c6001600160a01b038416836123da565b905080516000141580156123b15750808060200190518101906123af919061306d565b155b15610b9357604051635274afe760e01b81526001600160a01b038416600482015260240161097d565b60606111698383600084600080856001600160a01b03168486604051612400919061343c565b60006040518083038185875af1925050503d806000811461243d576040519150601f19603f3d011682016040523d82523d6000602084013e612442565b606091505b509150915061245286838361245c565b9695505050505050565b6060826124715761246c826124b8565b611169565b815115801561248857506001600160a01b0384163b155b156124b157604051639996b31560e01b81526001600160a01b038516600482015260240161097d565b5080611169565b8051156124c85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001612523604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112e457600080fd5b60006020828403121561255057600080fd5b813561116981612528565b60005b8381101561257657818101518382015260200161255e565b50506000910152565b6000815180845261259781602086016020860161255b565b601f01601f19169290920160200192915050565b602081526000611169602083018461257f565b6000602082840312156125d057600080fd5b5035919050565b6001600160a01b03811681146112e457600080fd5b600080604083850312156125ff57600080fd5b823561260a816125d7565b946020939093013593505050565b60006060828403121561262a57600080fd5b50919050565b60008083601f84011261264257600080fd5b5081356001600160401b0381111561265957600080fd5b60208301915083602082850101111561267157600080fd5b9250929050565b600080600080600080600060e0888a03121561269357600080fd5b61269d8989612618565b96506060880135955060808801356001600160401b03808211156126c057600080fd5b6126cc8b838c01612630565b909750955060a08a013591506126e1826125d7565b90935060c089013590808211156126f757600080fd5b506127048a828b01612630565b989b979a50959850939692959293505050565b600060c0828403121561262a57600080fd5b6000806000838503608081121561273f57600080fd5b84356001600160401b0381111561275557600080fd5b61276187828801612717565b9450506040601f198201121561277657600080fd5b50602084019150606084013561278b816125d7565b809150509250925092565b6000608082019050825182526001600160401b03602084015116602083015260408301516127d1604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127ed57600080fd5b83356127f8816125d7565b92506020840135612808816125d7565b929592945050506040919091013590565b803563ffffffff8116811461282d57600080fd5b919050565b6000806040838503121561284557600080fd5b61260a83612819565b803561ffff8116811461282d57600080fd5b6000806040838503121561287357600080fd5b61287c83612819565b915061288a6020840161284e565b90509250929050565b6000602082840312156128a557600080fd5b8135611169816125d7565b60008060008060a085870312156128c657600080fd5b6128d08686612618565b935060608501356001600160401b038111156128eb57600080fd5b6128f787828801612630565b909450925050608085013561290b816125d7565b939692955090935050565b80151581146112e457600080fd5b6000806040838503121561293757600080fd5b8235612942816125d7565b9150602083013561295281612916565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156129955761299561295d565b60405290565b604051606081016001600160401b03811182821017156129955761299561295d565b604051601f8201601f191681016001600160401b03811182821017156129e5576129e561295d565b604052919050565b60006001600160401b03821115612a0657612a0661295d565b50601f01601f191660200190565b600082601f830112612a2557600080fd5b8135612a38612a33826129ed565b6129bd565b818152846020838601011115612a4d57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a8057600080fd5b8435612a8b816125d7565b93506020850135612a9b816125d7565b92506040850135915060608501356001600160401b03811115612abd57600080fd5b612ac987828801612a14565b91505092959194509250565b60008083601f840112612ae757600080fd5b5081356001600160401b03811115612afe57600080fd5b6020830191508360208260051b850101111561267157600080fd5b60008060208385031215612b2c57600080fd5b82356001600160401b03811115612b4257600080fd5b612b4e85828601612ad5565b90969095509350505050565b600060208284031215612b6c57600080fd5b61116982612819565b60008060008060608587031215612b8b57600080fd5b612b9485612819565b9350612ba26020860161284e565b925060408501356001600160401b03811115612bbd57600080fd5b612bc987828801612630565b95989497509550505050565b60008060408385031215612be857600080fd5b82356001600160401b03811115612bfe57600080fd5b612c0a85828601612717565b925050602083013561295281612916565b815181526020808301519082015260408101610866565b60008060408385031215612c4557600080fd5b8235612c50816125d7565b91506020830135612952816125d7565b600060608284031215612c7257600080fd5b6111698383612618565b600181811c90821680612c9057607f821691505b60208210810361262a57634e487b7160e01b600052602260045260246000fd5b600060408284031215612cc257600080fd5b612cca612973565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cfc57612cfc61295d565b8360051b6020612d0d8183016129bd565b868152918501918181019036841115612d2557600080fd5b865b84811015612dab57803586811115612d3f5760008081fd5b88016060368290031215612d535760008081fd5b612d5b61299b565b612d6482612819565b8152612d7186830161284e565b8682015260408083013589811115612d895760008081fd5b612d9536828601612a14565b9183019190915250845250918301918301612d27565b50979650505050505050565b60008085851115612dc757600080fd5b83861115612dd457600080fd5b5050820193919092039150565b60008451612df381846020890161255b565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610d0e602083018486612e09565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e7357600080fd5b9190910192915050565b6000808335601e19843603018112612e9457600080fd5b8301803591506001600160401b03821115612eae57600080fd5b60200191503681900382131561267157600080fd5b6001600160401b03811681146112e457600080fd5b63ffffffff612ee689612819565b1681526020880135602082015260006040890135612f0381612ec3565b6001600160401b03811660408401525087606083015260e06080830152612f2e60e083018789612e09565b6001600160a01b03861660a084015282810360c0840152612f50818587612e09565b9a9950505050505050505050565b600060208284031215612f7057600080fd5b81516001600160401b03811115612f8657600080fd5b8201601f81018413612f9757600080fd5b8051612fa5612a33826129ed565b818152856020838501011115612fba57600080fd5b6110f282602083016020860161255b565b60008351612fdd81846020880161255b565b835190830190612ff181836020880161255b565b01949350505050565b60006020828403121561300c57600080fd5b813561116981612ec3565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000612452608083018461257f565b60408152600061305b604083018561257f565b82810360208401526110f2818561257f565b60006020828403121561307f57600080fd5b815161116981612916565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526130c060e084018261257f565b90506060850151603f198483030160a08501526130dd828261257f565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561311557600080fd5b61311d612973565b9050815181526020820151602082015292915050565b60006080828403121561314557600080fd5b61314d61299b565b82518152602083015161315f81612ec3565b60208201526131718460408501613103565b60408201529392505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906124529083018461257f565b6000602082840312156131c257600080fd5b815161116981612528565b601f821115610b93576000816000526020600020601f850160051c810160208610156131f65750805b601f850160051c820191505b8181101561321557828155600101613202565b505050505050565b81516001600160401b038111156132365761323661295d565b61324a816132448454612c7c565b846131cd565b602080601f83116001811461327f57600084156132675750858301515b600019600386901b1c1916600185901b178555613215565b600085815260208120601f198616915b828110156132ae5788860151825594840194600190910190840161328f565b50858210156132cc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561335957888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133458186018361257f565b968901969450505090860190600101613305565b509098975050505050505050565b60006040828403121561337957600080fd5b6111698383613103565b8035602083101561086657600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133dc81600c85016020870161255b565b91909101600c01949350505050565b8481528360208201528260408201526000825161340f81606085016020870161255b565b9190910160600195945050505050565b60006020828403121561343157600080fd5b8151611169816125d7565b60008251612e7381846020870161255b56fea26469706673582212202ed9e0490b65660a264f1838a28a7c9b2643e0a7034d006e204af0872d53709164736f6c63430008160033", - "deployedBytecode": "0x6080604052600436106102675760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc14610787578063d42438851461079a578063e985e9c5146107ba578063f2fde38b146107da578063fc0c546a1461043a578063ff7bd03d146107fa57600080fd5b8063bc70b354146106e7578063bd815db014610707578063c6414e7b1461071a578063c87b56dd14610747578063ca5eb5e11461076757600080fd5b8063a72f5dd811610108578063a72f5dd81461061d578063b21a33e414610645578063b731ea0a1461065a578063b88d4fde1461067a578063b98bd0701461069a578063bb0b6a53146106ba57600080fd5b806382413eac146105965780638da5cb5b146105b657806395d89b41146105d45780639f68b964146105e9578063a22cb465146105fd57600080fd5b806340c10f19116101dd5780635e280f11116101a15780635e280f11146104a45780636352211e146104d85780636fc1b31e146104f857806370a0823114610518578063715018a6146105465780637d25a05e1461055b57600080fd5b806340c10f19146103fa57806342842e0e1461041a57806352ae28791461043a5780635535d4611461044d5780635a0dfe4d1461046d57600080fd5b806313137d651161022f57806313137d651461033d57806317442b70146103505780631f5e13341461037257806321eb730b1461039a57806323b872dd146103ba5780633400288b146103da57600080fd5b806301ffc9a71461026c57806306fdde03146102a1578063081812fc146102c3578063095ea7b3146102fb578063111ecdad1461031d575b600080fd5b34801561027857600080fd5b5061028c61028736600461253e565b61081a565b60405190151581526020015b60405180910390f35b3480156102ad57600080fd5b506102b661086c565b60405161029891906125ab565b3480156102cf57600080fd5b506102e36102de3660046125be565b6108fe565b6040516001600160a01b039091168152602001610298565b34801561030757600080fd5b5061031b6103163660046125ec565b610927565b005b34801561032957600080fd5b506004546102e3906001600160a01b031681565b61031b61034b366004612678565b610936565b34801561035c57600080fd5b5060408051600181526002602082015201610298565b34801561037e57600080fd5b50610387600181565b60405161ffff9091168152602001610298565b6103ad6103a8366004612729565b6109f6565b6040516102989190612796565b3480156103c657600080fd5b5061031b6103d53660046127d8565b610ad1565b3480156103e657600080fd5b5061031b6103f5366004612832565b610b5c565b34801561040657600080fd5b5061031b6104153660046125ec565b610b6e565b34801561042657600080fd5b5061031b6104353660046127d8565b610b78565b34801561044657600080fd5b50306102e3565b34801561045957600080fd5b506102b6610468366004612860565b610b98565b34801561047957600080fd5b5061028c610488366004612832565b63ffffffff919091166000908152600160205260409020541490565b3480156104b057600080fd5b506102e37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e457600080fd5b506102e36104f33660046125be565b610c3d565b34801561050457600080fd5b5061031b610513366004612893565b610c48565b34801561052457600080fd5b50610538610533366004612893565b610ca5565b604051908152602001610298565b34801561055257600080fd5b5061031b610ced565b34801561056757600080fd5b5061057e610576366004612832565b600092915050565b6040516001600160401b039091168152602001610298565b3480156105a257600080fd5b5061028c6105b13660046128b0565b610d01565b3480156105c257600080fd5b506000546001600160a01b03166102e3565b3480156105e057600080fd5b506102b6610d16565b3480156105f557600080fd5b50600061028c565b34801561060957600080fd5b5061031b610618366004612924565b610d25565b34801561062957600080fd5b50604080516311f0c6d360e11b81526001602082015201610298565b34801561065157600080fd5b50610387600281565b34801561066657600080fd5b506002546102e3906001600160a01b031681565b34801561068657600080fd5b5061031b610695366004612a6a565b610d30565b3480156106a657600080fd5b5061031b6106b5366004612b19565b610d47565b3480156106c657600080fd5b506105386106d5366004612b5a565b60016020526000908152604090205481565b3480156106f357600080fd5b506102b6610702366004612b75565b610d61565b61031b610715366004612b19565b610f09565b34801561072657600080fd5b5061073a610735366004612bd5565b611093565b6040516102989190612c1b565b34801561075357600080fd5b506102b66107623660046125be565b6110fb565b34801561077357600080fd5b5061031b610782366004612893565b611170565b61031b610795366004612678565b6111f6565b3480156107a657600080fd5b5061031b6107b5366004612893565b611225565b3480156107c657600080fd5b5061028c6107d5366004612c32565b61127b565b3480156107e657600080fd5b5061031b6107f5366004612893565b6112a9565b34801561080657600080fd5b5061028c610815366004612c60565b6112e7565b60006001600160e01b031982166380ac58cd60e01b148061084b57506001600160e01b03198216635b5e139f60e01b145b8061086657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461087b90612c7c565b80601f01602080910402602001604051908101604052809291908181526020018280546108a790612c7c565b80156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b60006109098261131d565b506000828152600960205260409020546001600160a01b0316610866565b610932828233611356565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610986576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b602087018035906109a09061099b908a612b5a565b611363565b146109de576109b26020880188612b5a565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161097d565b6109ed8787878787878761139f565b50505050505050565b6109fe6124e1565b6020840135610a2057604051631e4ec46b60e01b815260040160405180910390fd5b610a3b336040860135610a366020880188612b5a565b6114fe565b600080610a478661155e565b9092509050610a73610a5c6020880188612b5a565b8383610a6d368a90038a018a612cb0565b8861167c565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610aa860208a018a612b5a565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610afb57604051633250574960e11b81526000600482015260240161097d565b6000610b08838333611787565b9050836001600160a01b0316816001600160a01b031614610b56576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161097d565b50505050565b610b64611880565b61093282826118ad565b6109328282611902565b610b9383838360405180602001604052806000815250610d30565b505050565b600360209081526000928352604080842090915290825290208054610bbc90612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610be890612c7c565b8015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b60006108668261131d565b610c50611880565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610cd1576040516322718ad960e21b81526000600482015260240161097d565b506001600160a01b031660009081526008602052604090205490565b610cf5611880565b610cff6000611967565b565b6001600160a01b03811630145b949350505050565b60606006805461087b90612c7c565b6109323383836119b7565b610d3b848484610ad1565b610b5684848484611a56565b610d4f611880565b610932610d5c8284612ce2565b611b78565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d9590612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc190612c7c565b8015610e0e5780601f10610de357610100808354040283529160200191610e0e565b820191906000526020600020905b815481529060010190602001808311610df157829003601f168201915b505050505090508051600003610e5e5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610d0e9350505050565b6000839003610e6e579050610d0e565b60028310610eec57610eb584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c7f92505050565b80610ec38460028188612db7565b604051602001610ed593929190612de1565b604051602081830303815290604052915050610d0e565b8383604051639a6d49cd60e01b815260040161097d929190612e32565b60005b818110156110125736838383818110610f2757610f27612e46565b9050602002810190610f399190612e5c565b9050610f6c610f4b6020830183612b5a565b602083013563ffffffff919091166000908152600160205260409020541490565b610f76575061100a565b3063d045a0dc60c08301358360a0810135610f95610100830183612e7d565b610fa6610100890160e08a01612893565b610fb46101208a018a612e7d565b6040518963ffffffff1660e01b8152600401610fd69796959493929190612ed8565b6000604051808303818588803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b5050505050505b600101610f0c565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110799190810190612f5e565b604051638351eea760e01b815260040161097d91906125ab565b604080518082019091526000808252602082015260208301356110c957604051631e4ec46b60e01b815260040160405180910390fd5b6000806110d58561155e565b90925090506110f26110ea6020870187612b5a565b838387611cab565b95945050505050565b60606111068261131d565b50600061111e60408051602081019091526000815290565b9050600081511161113e5760405180602001604052806000815250611169565b8061114884611d83565b604051602001611159929190612fcb565b6040516020818303038152906040525b9392505050565b611178611880565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111db57600080fd5b505af11580156111ef573d6000803e3d6000fd5b5050505050565b3330146112165760405163029a949d60e31b815260040160405180910390fd5b6109ed878787878787876109de565b61122d611880565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c9a565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6112b1611880565b6001600160a01b0381166112db57604051631e4fbdf760e01b81526000600482015260240161097d565b6112e481611967565b50565b60006020820180359060019083906112ff9086612b5a565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061086657604051637e27328960e01b81526004810184905260240161097d565b610b938383836001611e15565b63ffffffff8116600090815260016020526040812054806108665760405163f6ff4fb760e01b815263ffffffff8416600482015260240161097d565b60006113b16113ae8787611f1b565b90565b905060006113bf8787611f33565b90506113d882826113d360208d018d612b5a565b611f50565b604086111561149c5760006114126113f660608c0160408d01612ffa565b61140360208d018d612b5a565b61140d8b8b611f5a565b611fa5565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114689086908d906000908790600401613017565b600060405180830381600087803b15801561148257600080fd5b505af1158015611496573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114d560208d018d612b5a565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b61150782610c3d565b6001600160a01b0316836001600160a01b031614611555578261152983610c3d565b604051634342715b60e11b81526001600160a01b0392831660048201529116602482015260440161097d565b610b9382611fd4565b60608060006115b76020850135604086013561157d6080880188612e7d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061200f92505050565b90935090506000816115ca5760016115cd565b60025b90506115ed6115df6020870187612b5a565b826107026060890189612e7d565b6004549093506001600160a01b031615611675576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb91611632918891889101613048565b602060405180830381865afa15801561164f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611673919061306d565b505b5050915091565b6116846124e1565b60006116938460000151612074565b6020850151909150156116ad576116ad846020015161209c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116fd8c611363565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161173992919061308a565b60806040518083038185885af1158015611757573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061177c9190613133565b979650505050505050565b6000828152600760205260408120546001600160a01b03908116908316156117b4576117b481848661217e565b6001600160a01b038116156117f2576117d1600085600080611e15565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b03851615611821576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cff5760405163118cdaa760e01b815233600482015260240161097d565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6001600160a01b03821661192c57604051633250574960e11b81526000600482015260240161097d565b600061193a83836000611787565b90506001600160a01b03811615610b93576040516339e3563760e11b81526000600482015260240161097d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166119e957604051630b61174360e31b81526001600160a01b038316600482015260240161097d565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b5657604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611a9890339088908790879060040161317d565b6020604051808303816000875af1925050508015611ad3575060408051601f3d908101601f19168201909252611ad0918101906131b0565b60015b611b3c573d808015611b01576040519150601f19603f3d011682016040523d82523d6000602084013e611b06565b606091505b508051600003611b3457604051633250574960e11b81526001600160a01b038516600482015260240161097d565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ef57604051633250574960e11b81526001600160a01b038516600482015260240161097d565b60005b8151811015611c4f57611baa828281518110611b9957611b99612e46565b602002602001015160400151611c7f565b818181518110611bbc57611bbc612e46565b60200260200101516040015160036000848481518110611bde57611bde612e46565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611c1857611c18612e46565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611c46919061321d565b50600101611b7b565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c9a91906132dc565b600281015161ffff81166003146109325781604051639a6d49cd60e01b815260040161097d91906125ab565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611d0e89611363565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611d4392919061308a565b6040805180830381865afa158015611d5f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190613367565b60606000611d90836121e2565b60010190506000816001600160401b03811115611daf57611daf61295d565b6040519080825280601f01601f191660200182016040528015611dd9576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611de357509392505050565b8080611e2957506001600160a01b03821615155b15611eeb576000611e398461131d565b90506001600160a01b03831615801590611e655750826001600160a01b0316816001600160a01b031614155b8015611e785750611e76818461127b565b155b15611ea15760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161097d565b8115611ee95783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611f2a6020828486612db7565b61116991613383565b6000611f43604060208486612db7565b81019061116991906125be565b610b938383611902565b6060611f698260408186612db7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611fbc939291906133a1565b60405160208183030381529060405290509392505050565b6000611fe36000836000611787565b90506001600160a01b03811661093257604051637e27328960e01b81526004810183905260240161097d565b805160609015158061204357604080516020810187905290810185905260600160405160208183030381529060405261206a565b8484338560405160200161205a94939291906133eb565b6040516020818303038152906040525b9150935093915050565b6000813414612098576040516304fb820960e51b815234600482015260240161097d565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612120919061341f565b90506001600160a01b038116612149576040516329b99a9560e11b815260040160405180910390fd5b6109326001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856122ba565b612189838383612314565b610b93576001600160a01b0383166121b757604051637e27328960e01b81526004810182905260240161097d565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161097d565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106122215772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061224d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061226b57662386f26fc10000830492506010015b6305f5e1008310612283576305f5e100830492506008015b612710831061229757612710830492506004015b606483106122a9576064830492506002015b600a83106108665760010192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b56908590612377565b60006001600160a01b03831615801590610d0e5750826001600160a01b0316846001600160a01b0316148061234e575061234e848461127b565b80610d0e5750506000908152600960205260409020546001600160a01b03908116911614919050565b600061238c6001600160a01b038416836123da565b905080516000141580156123b15750808060200190518101906123af919061306d565b155b15610b9357604051635274afe760e01b81526001600160a01b038416600482015260240161097d565b60606111698383600084600080856001600160a01b03168486604051612400919061343c565b60006040518083038185875af1925050503d806000811461243d576040519150601f19603f3d011682016040523d82523d6000602084013e612442565b606091505b509150915061245286838361245c565b9695505050505050565b6060826124715761246c826124b8565b611169565b815115801561248857506001600160a01b0384163b155b156124b157604051639996b31560e01b81526001600160a01b038516600482015260240161097d565b5080611169565b8051156124c85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001612523604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112e457600080fd5b60006020828403121561255057600080fd5b813561116981612528565b60005b8381101561257657818101518382015260200161255e565b50506000910152565b6000815180845261259781602086016020860161255b565b601f01601f19169290920160200192915050565b602081526000611169602083018461257f565b6000602082840312156125d057600080fd5b5035919050565b6001600160a01b03811681146112e457600080fd5b600080604083850312156125ff57600080fd5b823561260a816125d7565b946020939093013593505050565b60006060828403121561262a57600080fd5b50919050565b60008083601f84011261264257600080fd5b5081356001600160401b0381111561265957600080fd5b60208301915083602082850101111561267157600080fd5b9250929050565b600080600080600080600060e0888a03121561269357600080fd5b61269d8989612618565b96506060880135955060808801356001600160401b03808211156126c057600080fd5b6126cc8b838c01612630565b909750955060a08a013591506126e1826125d7565b90935060c089013590808211156126f757600080fd5b506127048a828b01612630565b989b979a50959850939692959293505050565b600060c0828403121561262a57600080fd5b6000806000838503608081121561273f57600080fd5b84356001600160401b0381111561275557600080fd5b61276187828801612717565b9450506040601f198201121561277657600080fd5b50602084019150606084013561278b816125d7565b809150509250925092565b6000608082019050825182526001600160401b03602084015116602083015260408301516127d1604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127ed57600080fd5b83356127f8816125d7565b92506020840135612808816125d7565b929592945050506040919091013590565b803563ffffffff8116811461282d57600080fd5b919050565b6000806040838503121561284557600080fd5b61260a83612819565b803561ffff8116811461282d57600080fd5b6000806040838503121561287357600080fd5b61287c83612819565b915061288a6020840161284e565b90509250929050565b6000602082840312156128a557600080fd5b8135611169816125d7565b60008060008060a085870312156128c657600080fd5b6128d08686612618565b935060608501356001600160401b038111156128eb57600080fd5b6128f787828801612630565b909450925050608085013561290b816125d7565b939692955090935050565b80151581146112e457600080fd5b6000806040838503121561293757600080fd5b8235612942816125d7565b9150602083013561295281612916565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156129955761299561295d565b60405290565b604051606081016001600160401b03811182821017156129955761299561295d565b604051601f8201601f191681016001600160401b03811182821017156129e5576129e561295d565b604052919050565b60006001600160401b03821115612a0657612a0661295d565b50601f01601f191660200190565b600082601f830112612a2557600080fd5b8135612a38612a33826129ed565b6129bd565b818152846020838601011115612a4d57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a8057600080fd5b8435612a8b816125d7565b93506020850135612a9b816125d7565b92506040850135915060608501356001600160401b03811115612abd57600080fd5b612ac987828801612a14565b91505092959194509250565b60008083601f840112612ae757600080fd5b5081356001600160401b03811115612afe57600080fd5b6020830191508360208260051b850101111561267157600080fd5b60008060208385031215612b2c57600080fd5b82356001600160401b03811115612b4257600080fd5b612b4e85828601612ad5565b90969095509350505050565b600060208284031215612b6c57600080fd5b61116982612819565b60008060008060608587031215612b8b57600080fd5b612b9485612819565b9350612ba26020860161284e565b925060408501356001600160401b03811115612bbd57600080fd5b612bc987828801612630565b95989497509550505050565b60008060408385031215612be857600080fd5b82356001600160401b03811115612bfe57600080fd5b612c0a85828601612717565b925050602083013561295281612916565b815181526020808301519082015260408101610866565b60008060408385031215612c4557600080fd5b8235612c50816125d7565b91506020830135612952816125d7565b600060608284031215612c7257600080fd5b6111698383612618565b600181811c90821680612c9057607f821691505b60208210810361262a57634e487b7160e01b600052602260045260246000fd5b600060408284031215612cc257600080fd5b612cca612973565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cfc57612cfc61295d565b8360051b6020612d0d8183016129bd565b868152918501918181019036841115612d2557600080fd5b865b84811015612dab57803586811115612d3f5760008081fd5b88016060368290031215612d535760008081fd5b612d5b61299b565b612d6482612819565b8152612d7186830161284e565b8682015260408083013589811115612d895760008081fd5b612d9536828601612a14565b9183019190915250845250918301918301612d27565b50979650505050505050565b60008085851115612dc757600080fd5b83861115612dd457600080fd5b5050820193919092039150565b60008451612df381846020890161255b565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610d0e602083018486612e09565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e7357600080fd5b9190910192915050565b6000808335601e19843603018112612e9457600080fd5b8301803591506001600160401b03821115612eae57600080fd5b60200191503681900382131561267157600080fd5b6001600160401b03811681146112e457600080fd5b63ffffffff612ee689612819565b1681526020880135602082015260006040890135612f0381612ec3565b6001600160401b03811660408401525087606083015260e06080830152612f2e60e083018789612e09565b6001600160a01b03861660a084015282810360c0840152612f50818587612e09565b9a9950505050505050505050565b600060208284031215612f7057600080fd5b81516001600160401b03811115612f8657600080fd5b8201601f81018413612f9757600080fd5b8051612fa5612a33826129ed565b818152856020838501011115612fba57600080fd5b6110f282602083016020860161255b565b60008351612fdd81846020880161255b565b835190830190612ff181836020880161255b565b01949350505050565b60006020828403121561300c57600080fd5b813561116981612ec3565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000612452608083018461257f565b60408152600061305b604083018561257f565b82810360208401526110f2818561257f565b60006020828403121561307f57600080fd5b815161116981612916565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526130c060e084018261257f565b90506060850151603f198483030160a08501526130dd828261257f565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561311557600080fd5b61311d612973565b9050815181526020820151602082015292915050565b60006080828403121561314557600080fd5b61314d61299b565b82518152602083015161315f81612ec3565b60208201526131718460408501613103565b60408201529392505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906124529083018461257f565b6000602082840312156131c257600080fd5b815161116981612528565b601f821115610b93576000816000526020600020601f850160051c810160208610156131f65750805b601f850160051c820191505b8181101561321557828155600101613202565b505050505050565b81516001600160401b038111156132365761323661295d565b61324a816132448454612c7c565b846131cd565b602080601f83116001811461327f57600084156132675750858301515b600019600386901b1c1916600185901b178555613215565b600085815260208120601f198616915b828110156132ae5788860151825594840194600190910190840161328f565b50858210156132cc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561335957888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133458186018361257f565b968901969450505090860190600101613305565b509098975050505050505050565b60006040828403121561337957600080fd5b6111698383613103565b8035602083101561086657600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133dc81600c85016020870161255b565b91909101600c01949350505050565b8481528360208201528260408201526000825161340f81606085016020870161255b565b9190910160600195945050505050565b60006020828403121561343157600080fd5b8151611169816125d7565b60008251612e7381846020870161255b56fea26469706673582212202ed9e0490b65660a264f1838a28a7c9b2643e0a7034d006e204af0872d53709164736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/artifacts/solidity-bytes-utils/contracts/BytesLib.sol/BytesLib.dbg.json b/examples/onft721/artifacts/solidity-bytes-utils/contracts/BytesLib.sol/BytesLib.dbg.json deleted file mode 100644 index ade803066..000000000 --- a/examples/onft721/artifacts/solidity-bytes-utils/contracts/BytesLib.sol/BytesLib.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/788a8d914e47f05fb10852ea106e611e.json" -} diff --git a/examples/onft721/artifacts/solidity-bytes-utils/contracts/BytesLib.sol/BytesLib.json b/examples/onft721/artifacts/solidity-bytes-utils/contracts/BytesLib.sol/BytesLib.json deleted file mode 100644 index 6975f1a19..000000000 --- a/examples/onft721/artifacts/solidity-bytes-utils/contracts/BytesLib.sol/BytesLib.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BytesLib", - "sourceName": "solidity-bytes-utils/contracts/BytesLib.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122043e48b1f601eca6e497a6ec2210bb4bdb35af606a0225cd05bcfcda3c772061364736f6c63430008160033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122043e48b1f601eca6e497a6ec2210bb4bdb35af606a0225cd05bcfcda3c772061364736f6c63430008160033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/examples/onft721/cache/solidity-files-cache.json b/examples/onft721/cache/solidity-files-cache.json deleted file mode 100644 index 74c47e0cb..000000000 --- a/examples/onft721/cache/solidity-files-cache.json +++ /dev/null @@ -1,2386 +0,0 @@ -{ - "_format": "hh-sol-cache-2", - "files": { - "/Users/ryandgoulding/WebstormProjects/devtools/examples/onft721/contracts/MyONFT721.sol": { - "lastModificationDate": 1719847609931, - "contentHash": "ffa1fff50db70450fefc8de65f671b77", - "sourceName": "contracts/MyONFT721.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol" - ], - "versionPragmas": [ - "^0.8.22" - ], - "artifacts": [ - "MyONFT721" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/packages/onft-evm/contracts/onft721/ONFT721.sol": { - "lastModificationDate": 1719922142984, - "contentHash": "7691c595742624ef100dad48fb5de2fe", - "sourceName": "@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC721/ERC721.sol", - "./ONFT721Core.sol" - ], - "versionPragmas": [ - "^0.8.22" - ], - "artifacts": [ - "ONFT721" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/packages/onft-evm/contracts/onft721/ONFT721Core.sol": { - "lastModificationDate": 1719922142984, - "contentHash": "ea1a3d324b383ee522eb495ae20eaa42", - "sourceName": "@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "./interfaces/IONFT721.sol", - "./libs/ONFT721MsgCodec.sol", - "../libs/ONFTComposeMsgCodec.sol", - "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "@openzeppelin/contracts/utils/math/SafeCast.sol", - "@openzeppelin/contracts/access/Ownable.sol" - ], - "versionPragmas": [ - "^0.8.22" - ], - "artifacts": [ - "ONFT721Core" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": { - "lastModificationDate": 1719866257850, - "contentHash": "1e64e2ad597dc5b2dae11346502baad4", - "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "./IERC721.sol", - "./IERC721Receiver.sol", - "./extensions/IERC721Metadata.sol", - "../../utils/Context.sol", - "../../utils/Strings.sol", - "../../utils/introspection/ERC165.sol", - "../../interfaces/draft-IERC6093.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "ERC721" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/access/Ownable.sol": { - "lastModificationDate": 1719866257929, - "contentHash": "d3c790edc9ccf808a17c5a6cd13614fd", - "sourceName": "@openzeppelin/contracts/access/Ownable.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "../utils/Context.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "Ownable" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol": { - "lastModificationDate": 1719866257848, - "contentHash": "5fff81a48e0699606f1ee7387d4a31a2", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "./OAppSender.sol", - "./OAppReceiver.sol", - "./OAppCore.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "OApp" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/packages/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol": { - "lastModificationDate": 1719847609937, - "contentHash": "2194c408707c2eadef805d14eaaaa7bb", - "sourceName": "@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.22" - ], - "artifacts": [ - "ONFTComposeMsgCodec" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol": { - "lastModificationDate": 1719866257861, - "contentHash": "d803f2d59e6fcf81c071239983389479", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@openzeppelin/contracts/access/Ownable.sol", - "./interfaces/IPreCrime.sol", - "./interfaces/IOAppPreCrimeSimulator.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "OAppPreCrimeSimulator" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": { - "lastModificationDate": 1719866257934, - "contentHash": "d72cdfaacd4b1b8e090b57f4b7200ddc", - "sourceName": "@openzeppelin/contracts/utils/math/SafeCast.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "SafeCast" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/packages/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol": { - "lastModificationDate": 1719847609940, - "contentHash": "d1b4cea081379d11205317a1c9ba8334", - "sourceName": "@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.22" - ], - "artifacts": [ - "ONFT721MsgCodec" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol": { - "lastModificationDate": 1719866257855, - "contentHash": "d7df5d5ca30b9eb573ed7d9b73dd8eda", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@openzeppelin/contracts/access/Ownable.sol", - "../interfaces/IOAppOptionsType3.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "OAppOptionsType3" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol": { - "lastModificationDate": 1719866257854, - "contentHash": "863511afe66a3ac0c83b469e7ca6cfb4", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IOAppMsgInspector" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/packages/onft-evm/contracts/onft721/interfaces/IONFT721.sol": { - "lastModificationDate": 1719922142984, - "contentHash": "bd146ce33b539c37d2bd3a4d02325dc4", - "sourceName": "@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol" - ], - "versionPragmas": [ - "^0.8.22" - ], - "artifacts": [ - "IONFT721" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol": { - "lastModificationDate": 1719866257856, - "contentHash": "aaba44fdba19c251ddcb7d80c4998e19", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "solidity-bytes-utils/contracts/BytesLib.sol", - "@openzeppelin/contracts/utils/math/SafeCast.sol", - "@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "OptionsBuilder" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/utils/Context.sol": { - "lastModificationDate": 1719866257831, - "contentHash": "67bfbc07588eb8683b3fd8f6f909563e", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "Context" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol": { - "lastModificationDate": 1719866257848, - "contentHash": "392cf9b920add3244966148ee8de682a", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@openzeppelin/contracts/access/Ownable.sol", - "./interfaces/IOAppCore.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "OAppCore" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol": { - "lastModificationDate": 1719866257850, - "contentHash": "8a54c076d80f5711e3511a0bbfcff1a1", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "./OAppCore.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "OAppSender" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol": { - "lastModificationDate": 1719866257849, - "contentHash": "3621393509939962dd64af436aa5d131", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "./interfaces/IOAppReceiver.sol", - "./OAppCore.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "OAppReceiver" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol": { - "lastModificationDate": 1719866257853, - "contentHash": "f88e6ddf8ff977739a7178f0d1a276b3", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IOAppCore" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol": { - "lastModificationDate": 1719866257728, - "contentHash": "0790766778fa8995935c093d9cf03f84", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "./IMessageLibManager.sol", - "./IMessagingComposer.sol", - "./IMessagingChannel.sol", - "./IMessagingContext.sol" - ], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "ILayerZeroEndpointV2" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol": { - "lastModificationDate": 1719866257730, - "contentHash": "a56a887b2721a98cf82842503bbf0ef0", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "IMessageLibManager" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol": { - "lastModificationDate": 1719866257731, - "contentHash": "bcc2df90697b23f02303892874f96324", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "IMessagingComposer" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol": { - "lastModificationDate": 1719866257730, - "contentHash": "bd92a8f1c9f815025e8e3e676fe40b0d", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "IMessagingChannel" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol": { - "lastModificationDate": 1719866257732, - "contentHash": "2b8bfa473f049af8c74dffbff0766abf", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "IMessagingContext" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { - "lastModificationDate": 1719866257935, - "contentHash": "697fd27924863e77c17dace2179018b2", - "sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "../IERC20.sol", - "../extensions/IERC20Permit.sol", - "../../../utils/Address.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "SafeERC20" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/utils/Address.sol": { - "lastModificationDate": 1719866257826, - "contentHash": "79c699f80eb8a9b168cb34e37816f894", - "sourceName": "@openzeppelin/contracts/utils/Address.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "Address" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "lastModificationDate": 1719866257875, - "contentHash": "5517c8678c18eb1a8ba58810e7ca39ca", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IERC20" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol": { - "lastModificationDate": 1719866257877, - "contentHash": "da291753fa4641f2c5837bfc4aa4c01b", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IERC20Permit" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol": { - "lastModificationDate": 1719866257855, - "contentHash": "8744fbd8f6967b21443fddfccede3f1e", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IOAppReceiver" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol": { - "lastModificationDate": 1719866257729, - "contentHash": "07bcbc5377578339628265a849de70f5", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "./ILayerZeroEndpointV2.sol" - ], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "ILayerZeroReceiver" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol": { - "lastModificationDate": 1719866257863, - "contentHash": "636408a0c09893cda2e9d23ceec10459", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IPreCrime" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol": { - "lastModificationDate": 1719866257863, - "contentHash": "acca130251942a833f49ab69e01bcd42", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "../libs/Packet.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IOAppPreCrimeSimulator" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol": { - "lastModificationDate": 1719866257864, - "contentHash": "49f5ad0a97a1acc3e81873e69b0ef3ab", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "PacketDecoder" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol": { - "lastModificationDate": 1719866257739, - "contentHash": "fb446531f87e319bbe661e5d6845964f", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "../../interfaces/ISendLib.sol", - "../../libs/AddressCast.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "PacketV1Codec" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol": { - "lastModificationDate": 1719866257733, - "contentHash": "2ed59a174607c55048374a27816752aa", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "./ILayerZeroEndpointV2.sol", - "./IMessageLib.sol" - ], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "ISendLib" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol": { - "lastModificationDate": 1719866257733, - "contentHash": "4ede58e59ea7779e777942a5da252697", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "AddressCast" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol": { - "lastModificationDate": 1719866257729, - "contentHash": "fa5082ec9a32dc00ab9dd5f759f3a756", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "./IMessageLibManager.sol" - ], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "IMessageLib" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "lastModificationDate": 1719866257872, - "contentHash": "de0163561b417b800d01749cbbe2147e", - "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IERC165" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-oapp-v2@2.3.3_@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@layerzerolabs+_crn4h7cekj4qt32zrcyryhghni/node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol": { - "lastModificationDate": 1719866257854, - "contentHash": "3b509d38279da870d798ed7039cfaf62", - "sourceName": "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IOAppOptionsType3" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/solidity-bytes-utils@0.8.2/node_modules/solidity-bytes-utils/contracts/BytesLib.sol": { - "lastModificationDate": 1719866256441, - "contentHash": "f4aae4537e2686b91fcd881aeed71657", - "sourceName": "solidity-bytes-utils/contracts/BytesLib.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - ">=0.8.0 <0.9.0" - ], - "artifacts": [ - "BytesLib" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol": { - "lastModificationDate": 1719866257738, - "contentHash": "d9e985d1c5d407ba110da010983bcfb6", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "../../libs/CalldataBytesLib.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "ExecutorOptions" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-messagelib-v2@2.3.3_@axelar-network+axelar-gmp-sdk-solidity@5.8.0_@chai_gelkhk2wng34tujmazd6oyayx4/node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol": { - "lastModificationDate": 1719866257840, - "contentHash": "d2b1c66f564862f65b37230b44da37c0", - "sourceName": "@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "solidity-bytes-utils/contracts/BytesLib.sol", - "@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "DVNOptions" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol": { - "lastModificationDate": 1719866257734, - "contentHash": "673ca16094a43c577ed24243c20361aa", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "CalldataBytesLib" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@layerzerolabs+lz-evm-protocol-v2@2.3.3_@openzeppelin+contracts-upgradeable@5.0.2_@openzeppel_d6exqrqyexq2bwwteuofsrsnyi/node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol": { - "lastModificationDate": 1719866257738, - "contentHash": "b2d6a04de0dde1607086d9872aac790e", - "sourceName": "@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "BitMaps" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { - "lastModificationDate": 1719866257833, - "contentHash": "4aefc698f77ecbace7f401257dfe182d", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IERC1155Errors", - "IERC20Errors", - "IERC721Errors" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/utils/Strings.sol": { - "lastModificationDate": 1719866257938, - "contentHash": "ba57ff4ddf1d9cae9d2009792795b7f6", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "./math/Math.sol", - "./math/SignedMath.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "Strings" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { - "lastModificationDate": 1719866257903, - "contentHash": "5df8fdb527e563085847cad29e3c5f2e", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "../../utils/introspection/IERC165.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IERC721" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { - "lastModificationDate": 1719866257921, - "contentHash": "fc8a9841f4bdd6329c26a00d5e75f4b3", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IERC721Receiver" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "lastModificationDate": 1719866257839, - "contentHash": "6a55c353946e471d9792965d06208295", - "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "./IERC165.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "ERC165" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { - "lastModificationDate": 1719866257920, - "contentHash": "12c206f185cb951213799561fdcaa40d", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "../IERC721.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "IERC721Metadata" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { - "lastModificationDate": 1719866257937, - "contentHash": "b6c6bdc7aaca4fe5b680760a72e09d3e", - "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "SignedMath" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/node_modules/.pnpm/@openzeppelin+contracts@5.0.2/node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - "lastModificationDate": 1719866257926, - "contentHash": "718fa8ba0ff269c92e364c1429d9de57", - "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "Math" - ] - }, - "/Users/ryandgoulding/WebstormProjects/devtools/examples/onft721/contracts/mocks/MyONFT721Mock.sol": { - "lastModificationDate": 1719847609931, - "contentHash": "9fe034dcc723ef2da4333df2346a3c71", - "sourceName": "contracts/mocks/MyONFT721Mock.sol", - "solcConfig": { - "version": "0.8.22", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "devdoc", - "userdoc", - "storageLayout", - "evm.gasEstimates" - ], - "": [ - "ast" - ] - } - }, - "metadata": { - "useLiteralContent": true - } - } - }, - "imports": [ - "../MyONFT721.sol" - ], - "versionPragmas": [ - "^0.8.22" - ], - "artifacts": [ - "MyONFT721Mock" - ] - } - } -} diff --git a/examples/onft721/out/Address.sol/Address.json b/examples/onft721/out/Address.sol/Address.json deleted file mode 100644 index aa5e98f23..000000000 --- a/examples/onft721/out/Address.sol/Address.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a0f323aca783f984347157b9fd3b216b85ff285860d792a72ec1b251072fbcb864736f6c63430008160033","sourceMap":"195:6066:44:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;195:6066:44;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a0f323aca783f984347157b9fd3b216b85ff285860d792a72ec1b251072fbcb864736f6c63430008160033","sourceMap":"195:6066:44:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Address.sol":"Address"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"}},"version":1},"id":44} \ No newline at end of file diff --git a/examples/onft721/out/AddressCast.sol/AddressCast.json b/examples/onft721/out/AddressCast.sol/AddressCast.json deleted file mode 100644 index 3cf07b736..000000000 --- a/examples/onft721/out/AddressCast.sol/AddressCast.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"AddressCast_InvalidAddress","inputs":[]},{"type":"error","name":"AddressCast_InvalidSizeForAddress","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220242a16a9a157a7e1852819b510bac6864224d1deaca6d594fb99ea8f36df8b8b64736f6c63430008160033","sourceMap":"64:1401:25:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;64:1401:25;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220242a16a9a157a7e1852819b510bac6864224d1deaca6d594fb99ea8f36df8b8b64736f6c63430008160033","sourceMap":"64:1401:25:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCast_InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressCast_InvalidSizeForAddress\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":\"AddressCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCast_InvalidAddress"},{"inputs":[],"type":"error","name":"AddressCast_InvalidSizeForAddress"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":"AddressCast"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"}},"version":1},"id":25} \ No newline at end of file diff --git a/examples/onft721/out/BitMaps.sol/BitMaps.json b/examples/onft721/out/BitMaps.sol/BitMaps.json deleted file mode 100644 index 0c8b8bf82..000000000 --- a/examples/onft721/out/BitMaps.sol/BitMaps.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220200a33f4ffb38f37649b4d4c74853421d57934c810a5d02f4c8d876697752bb764736f6c63430008160033","sourceMap":"244:506:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;244:506:27;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220200a33f4ffb38f37649b4d4c74853421d57934c810a5d02f4c8d876697752bb764736f6c63430008160033","sourceMap":"244:506:27:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":\"BitMaps\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":"BitMaps"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"}},"version":1},"id":27} \ No newline at end of file diff --git a/examples/onft721/out/BytesLib.sol/BytesLib.json b/examples/onft721/out/BytesLib.sol/BytesLib.json deleted file mode 100644 index 53b9f366c..000000000 --- a/examples/onft721/out/BytesLib.sol/BytesLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203c285c6628686c1b6ec85c21e7cb62ec623b0cc51ece82e23b31d7ebbe65c7e364736f6c63430008160033","sourceMap":"370:21307:52:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;370:21307:52;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203c285c6628686c1b6ec85c21e7cb62ec623b0cc51ece82e23b31d7ebbe65c7e364736f6c63430008160033","sourceMap":"370:21307:52:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":\"BytesLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":"BytesLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":52} \ No newline at end of file diff --git a/examples/onft721/out/CalldataBytesLib.sol/CalldataBytesLib.json b/examples/onft721/out/CalldataBytesLib.sol/CalldataBytesLib.json deleted file mode 100644 index c1353d0f1..000000000 --- a/examples/onft721/out/CalldataBytesLib.sol/CalldataBytesLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e737df72b23d89ea6a396eaa95f7ac6c68e0da215fea1b42c4cb924ee0d714f164736f6c63430008160033","sourceMap":"64:1718:26:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;64:1718:26;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e737df72b23d89ea6a396eaa95f7ac6c68e0da215fea1b42c4cb924ee0d714f164736f6c63430008160033","sourceMap":"64:1718:26:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":\"CalldataBytesLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":"CalldataBytesLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"}},"version":1},"id":26} \ No newline at end of file diff --git a/examples/onft721/out/Context.sol/Context.json b/examples/onft721/out/Context.sol/Context.json deleted file mode 100644 index 854f4bb64..000000000 --- a/examples/onft721/out/Context.sol/Context.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Context.sol":"Context"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":45} \ No newline at end of file diff --git a/examples/onft721/out/DVNOptions.sol/DVNOptions.json b/examples/onft721/out/DVNOptions.sol/DVNOptions.json deleted file mode 100644 index 47489b39c..000000000 --- a/examples/onft721/out/DVNOptions.sol/DVNOptions.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"DVN_InvalidDVNIdx","inputs":[]},{"type":"error","name":"DVN_InvalidDVNOptions","inputs":[{"name":"cursor","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122082dd4643382c68c6cc85f22ae540eb6379270e5bcdc492d5bb7a673a61813d2a64736f6c63430008160033","sourceMap":"345:6975:2:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;345:6975:2;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122082dd4643382c68c6cc85f22ae540eb6379270e5bcdc492d5bb7a673a61813d2a64736f6c63430008160033","sourceMap":"345:6975:2:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DVN_InvalidDVNIdx\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"DVN_InvalidDVNOptions\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":\"DVNOptions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"DVN_InvalidDVNIdx"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"type":"error","name":"DVN_InvalidDVNOptions"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":"DVNOptions"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":2} \ No newline at end of file diff --git a/examples/onft721/out/ERC165.sol/ERC165.json b/examples/onft721/out/ERC165.sol/ERC165.json deleted file mode 100644 index 62f4a7910..000000000 --- a/examples/onft721/out/ERC165.sol/ERC165.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":"ERC165"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":47} \ No newline at end of file diff --git a/examples/onft721/out/ERC721.sol/ERC721.json b/examples/onft721/out/ERC721.sol/ERC721.json deleted file mode 100644 index 9f1b13c72..000000000 --- a/examples/onft721/out/ERC721.sol/ERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"constructor":{"details":"Initializes the contract by setting a `name` and a `symbol` to the token collection."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":"ERC721"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":40} \ No newline at end of file diff --git a/examples/onft721/out/ExecutorOptions.sol/ExecutorOptions.json b/examples/onft721/out/ExecutorOptions.sol/ExecutorOptions.json deleted file mode 100644 index 050426204..000000000 --- a/examples/onft721/out/ExecutorOptions.sol/ExecutorOptions.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"Executor_InvalidLzComposeOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReceiveOption","inputs":[]},{"type":"error","name":"Executor_InvalidNativeDropOption","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a6c659f5efdb1a90fb02d076fa771fca9153193e7cf8760a184aae0b53431f4864736f6c63430008160033","sourceMap":"133:3427:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;133:3427:28;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a6c659f5efdb1a90fb02d076fa771fca9153193e7cf8760a184aae0b53431f4864736f6c63430008160033","sourceMap":"133:3427:28:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReceiveOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidNativeDropOption\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":\"ExecutorOptions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Executor_InvalidLzComposeOption"},{"inputs":[],"type":"error","name":"Executor_InvalidLzReceiveOption"},{"inputs":[],"type":"error","name":"Executor_InvalidNativeDropOption"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":"ExecutorOptions"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"}},"version":1},"id":28} \ No newline at end of file diff --git a/examples/onft721/out/IERC165.sol/IERC165.json b/examples/onft721/out/IERC165.sol/IERC165.json deleted file mode 100644 index d5991a072..000000000 --- a/examples/onft721/out/IERC165.sol/IERC165.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":"IERC165"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":48} \ No newline at end of file diff --git a/examples/onft721/out/IERC20.sol/IERC20.json b/examples/onft721/out/IERC20.sol/IERC20.json deleted file mode 100644 index c4fe3498f..000000000 --- a/examples/onft721/out/IERC20.sol/IERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"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\":[{\"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\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"}},"version":1},"id":37} \ No newline at end of file diff --git a/examples/onft721/out/IERC20Permit.sol/IERC20Permit.json b/examples/onft721/out/IERC20Permit.sol/IERC20Permit.json deleted file mode 100644 index 031536bab..000000000 --- a/examples/onft721/out/IERC20Permit.sol/IERC20Permit.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public { try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {} doThing(..., value); } function doThing(..., uint256 value) public { token.safeTransferFrom(msg.sender, address(this), value); ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"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"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":"IERC20Permit"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"}},"version":1},"id":38} \ No newline at end of file diff --git a/examples/onft721/out/IERC721.sol/IERC721.json b/examples/onft721/out/IERC721.sol/IERC721.json deleted file mode 100644 index 737440057..000000000 --- a/examples/onft721/out/IERC721.sol/IERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":"IERC721"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":41} \ No newline at end of file diff --git a/examples/onft721/out/IERC721Metadata.sol/IERC721Metadata.json b/examples/onft721/out/IERC721Metadata.sol/IERC721Metadata.json deleted file mode 100644 index a2a0ed5a2..000000000 --- a/examples/onft721/out/IERC721Metadata.sol/IERC721Metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":43} \ No newline at end of file diff --git a/examples/onft721/out/IERC721Receiver.sol/IERC721Receiver.json b/examples/onft721/out/IERC721Receiver.sol/IERC721Receiver.json deleted file mode 100644 index 050449309..000000000 --- a/examples/onft721/out/IERC721Receiver.sol/IERC721Receiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":"IERC721Receiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"}},"version":1},"id":42} \ No newline at end of file diff --git a/examples/onft721/out/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json b/examples/onft721/out/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json deleted file mode 100644 index d5b471632..000000000 --- a/examples/onft721/out/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"burn","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"clear","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"composeQueue","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"messageHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibraryTimeout","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"defaultSendLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eid","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"isDefault","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getRegisteredLibraries","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSendContext","inputs":[],"outputs":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"inboundNonce","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"inboundPayloadHash","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initializable","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDefaultSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegisteredLibrary","inputs":[{"name":"_lib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSendingMessage","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lazyInboundNonce","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextGuid","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nilify","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"outboundNonce","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_params","type":"tuple","internalType":"struct MessagingParams","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"},{"name":"payInLzToken","type":"bool","internalType":"bool"}]},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"receiveLibraryTimeout","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerLibrary","inputs":[{"name":"_lib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_params","type":"tuple","internalType":"struct MessagingParams","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"},{"name":"payInLzToken","type":"bool","internalType":"bool"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"sendCompose","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_params","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibraryTimeout","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultSendLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLzToken","inputs":[{"name":"_lzToken","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibraryTimeout","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSendLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"skip","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifiable","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verify","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComposeDelivered","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"ComposeSent","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"DefaultReceiveLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DefaultReceiveLibraryTimeoutSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"expiry","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DefaultSendLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateSet","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"delegate","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"InboundNonceSkipped","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"LibraryRegistered","inputs":[{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"LzComposeAlert","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"executor","type":"address","indexed":true,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LzReceiveAlert","inputs":[{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"executor","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LzTokenSet","inputs":[{"name":"token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketBurnt","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PacketDelivered","inputs":[{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"receiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketNilified","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PacketSent","inputs":[{"name":"encodedPayload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"options","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"sendLibrary","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketVerified","inputs":[{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ReceiveLibrarySet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ReceiveLibraryTimeoutSet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"timeout","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SendLibrarySet","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"burn(address,uint32,bytes32,uint64,bytes32)":"40f80683","clear(address,(uint32,bytes32,uint64),bytes32,bytes)":"2a56c1b0","composeQueue(address,address,bytes32,uint16)":"35d330b0","defaultReceiveLibrary(uint32)":"6f50a803","defaultReceiveLibraryTimeout(uint32)":"6e83f5bb","defaultSendLibrary(uint32)":"f64be4c7","eid()":"416ecebf","getConfig(address,address,uint32,uint32)":"2b3197b9","getReceiveLibrary(address,uint32)":"402f8468","getRegisteredLibraries()":"9132e5c3","getSendContext()":"14f651a9","getSendLibrary(address,uint32)":"b96a277f","inboundNonce(address,uint32,bytes32)":"a0dd43fc","inboundPayloadHash(address,uint32,bytes32,uint64)":"c9fc7bcd","initializable((uint32,bytes32,uint64),address)":"861e1ca5","isDefaultSendLibrary(address,uint32)":"dc93c8a2","isRegisteredLibrary(address)":"dc706a62","isSendingMessage()":"79624ca9","isSupportedEid(uint32)":"6750cd4c","isValidReceiveLibrary(address,uint32,address)":"9d7f9775","lazyInboundNonce(address,uint32,bytes32)":"5b17bb70","lzCompose(address,address,bytes32,uint16,bytes,bytes)":"91d20fa1","lzReceive((uint32,bytes32,uint64),address,bytes32,bytes,bytes)":"0c0c389e","lzToken()":"e4fe1d94","nativeToken()":"e1758bd8","nextGuid(address,uint32,bytes32)":"aafe5e07","nilify(address,uint32,bytes32,uint64,bytes32)":"2e80fbf3","outboundNonce(address,uint32,bytes32)":"9c6d7340","quote((uint32,bytes32,bytes,bytes,bool),address)":"ddc28c58","receiveLibraryTimeout(address,uint32)":"ef667aa1","registerLibrary(address)":"e8964e81","send((uint32,bytes32,bytes,bytes,bool),address)":"2637a450","sendCompose(address,bytes32,uint16,bytes)":"7cb59012","setConfig(address,address,(uint32,uint32,bytes)[])":"6dbd9f90","setDefaultReceiveLibrary(uint32,address,uint256)":"a718531b","setDefaultReceiveLibraryTimeout(uint32,address,uint256)":"d4b4ec8f","setDefaultSendLibrary(uint32,address)":"aafea312","setDelegate(address)":"ca5eb5e1","setLzToken(address)":"c28e0eed","setReceiveLibrary(address,uint32,address,uint256)":"6a14d715","setReceiveLibraryTimeout(address,uint32,address,uint256)":"183c834f","setSendLibrary(address,uint32,address)":"9535ff30","skip(address,uint32,bytes32,uint64)":"d70b8902","verifiable((uint32,bytes32,uint64),address)":"c9a54a99","verify((uint32,bytes32,uint64),address,bytes32)":"a825d747"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"ComposeDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ComposeSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"DefaultReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultSendLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"DelegateSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InboundNonceSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"LibraryRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzComposeAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzReceiveAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"LzTokenSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketBurnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"PacketDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketNilified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"encodedPayload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sendLibrary\",\"type\":\"address\"}],\"name\":\"PacketSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"ReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"ReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"SendLibrarySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"clear\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"}],\"name\":\"composeQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDefault\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisteredLibraries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSendContext\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"inboundPayloadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"initializable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isDefaultSendLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isRegisteredLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isValidReceiveLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"lazyInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"nextGuid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"nilify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"receiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"registerLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setDefaultSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzToken\",\"type\":\"address\"}],\"name\":\"setLzToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"verifiable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setSendLibrary(address,uint32,address)\":{\"notice\":\"------------------- OApp interfaces -------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":\"ILayerZeroEndpointV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false}],"type":"event","name":"ComposeDelivered","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false}],"type":"event","name":"ComposeSent","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"expiry","type":"uint256","indexed":false}],"type":"event","name":"DefaultReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultSendLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"address","name":"delegate","type":"address","indexed":false}],"type":"event","name":"DelegateSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false}],"type":"event","name":"InboundNonceSkipped","anonymous":false},{"inputs":[{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"LibraryRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"address","name":"executor","type":"address","indexed":true},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"LzComposeAlert","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"executor","type":"address","indexed":true},{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"LzReceiveAlert","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":false}],"type":"event","name":"LzTokenSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketBurnt","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false}],"type":"event","name":"PacketDelivered","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketNilified","anonymous":false},{"inputs":[{"internalType":"bytes","name":"encodedPayload","type":"bytes","indexed":false},{"internalType":"bytes","name":"options","type":"bytes","indexed":false},{"internalType":"address","name":"sendLibrary","type":"address","indexed":false}],"type":"event","name":"PacketSent","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketVerified","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"ReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"timeout","type":"uint256","indexed":false}],"type":"event","name":"ReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"SendLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"clear"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"}],"stateMutability":"view","type":"function","name":"composeQueue","outputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibrary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultSendLibrary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"bool","name":"isDefault","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegisteredLibraries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSendContext","outputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"inboundPayloadHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"}],"stateMutability":"view","type":"function","name":"initializable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isDefaultSendLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"view","type":"function","name":"isRegisteredLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSendingMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"view","type":"function","name":"isValidReceiveLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"lazyInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[],"stateMutability":"view","type":"function","name":"lzToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextGuid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"nilify"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct MessagingParams","name":"_params","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}]},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"quote","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"receiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerLibrary"},{"inputs":[{"internalType":"struct MessagingParams","name":"_params","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"sendCompose"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibrary"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibraryTimeout"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultSendLibrary"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"address","name":"_lzToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setLzToken"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibraryTimeout"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSendLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"}],"stateMutability":"view","type":"function","name":"verifiable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"verify"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"setSendLibrary(address,uint32,address)":{"notice":"------------------- OApp interfaces -------------------"}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":"ILayerZeroEndpointV2"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":17} \ No newline at end of file diff --git a/examples/onft721/out/ILayerZeroReceiver.sol/ILayerZeroReceiver.json b/examples/onft721/out/ILayerZeroReceiver.sol/ILayerZeroReceiver.json deleted file mode 100644 index 2875b5d45..000000000 --- a/examples/onft721/out/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowInitializePath","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":\"ILayerZeroReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":"ILayerZeroReceiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":18} \ No newline at end of file diff --git a/examples/onft721/out/IMessageLib.sol/IMessageLib.json b/examples/onft721/out/IMessageLib.sol/IMessageLib.json deleted file mode 100644 index 4da45a276..000000000 --- a/examples/onft721/out/IMessageLib.sol/IMessageLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getConfig","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_oapp","type":"address","internalType":"address"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"messageLibType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum MessageLibType"}],"stateMutability":"view"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_config","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"endpointVersion","type":"uint8","internalType":"uint8"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getConfig(uint32,address,uint32)":"9c33abf7","isSupportedEid(uint32)":"6750cd4c","messageLibType()":"1881d94d","setConfig(address,(uint32,uint32,bytes)[])":"20efd722","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_config\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":\"IMessageLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_config","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":"IMessageLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":19} \ No newline at end of file diff --git a/examples/onft721/out/IMessageLibManager.sol/IMessageLibManager.json b/examples/onft721/out/IMessageLibManager.sol/IMessageLibManager.json deleted file mode 100644 index 73cee4ad3..000000000 --- a/examples/onft721/out/IMessageLibManager.sol/IMessageLibManager.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"defaultReceiveLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibraryTimeout","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"defaultSendLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"isDefault","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getRegisteredLibraries","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isDefaultSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegisteredLibrary","inputs":[{"name":"_lib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"receiveLibraryTimeout","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerLibrary","inputs":[{"name":"_lib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_params","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibraryTimeout","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultSendLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibraryTimeout","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSendLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DefaultReceiveLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DefaultReceiveLibraryTimeoutSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"expiry","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DefaultSendLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"LibraryRegistered","inputs":[{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ReceiveLibrarySet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ReceiveLibraryTimeoutSet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"timeout","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SendLibrarySet","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"defaultReceiveLibrary(uint32)":"6f50a803","defaultReceiveLibraryTimeout(uint32)":"6e83f5bb","defaultSendLibrary(uint32)":"f64be4c7","getConfig(address,address,uint32,uint32)":"2b3197b9","getReceiveLibrary(address,uint32)":"402f8468","getRegisteredLibraries()":"9132e5c3","getSendLibrary(address,uint32)":"b96a277f","isDefaultSendLibrary(address,uint32)":"dc93c8a2","isRegisteredLibrary(address)":"dc706a62","isSupportedEid(uint32)":"6750cd4c","isValidReceiveLibrary(address,uint32,address)":"9d7f9775","receiveLibraryTimeout(address,uint32)":"ef667aa1","registerLibrary(address)":"e8964e81","setConfig(address,address,(uint32,uint32,bytes)[])":"6dbd9f90","setDefaultReceiveLibrary(uint32,address,uint256)":"a718531b","setDefaultReceiveLibraryTimeout(uint32,address,uint256)":"d4b4ec8f","setDefaultSendLibrary(uint32,address)":"aafea312","setReceiveLibrary(address,uint32,address,uint256)":"6a14d715","setReceiveLibraryTimeout(address,uint32,address,uint256)":"183c834f","setSendLibrary(address,uint32,address)":"9535ff30"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"DefaultReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultSendLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"LibraryRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"ReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"ReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"SendLibrarySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDefault\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisteredLibraries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isDefaultSendLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isRegisteredLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isValidReceiveLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"receiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"registerLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setDefaultSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setSendLibrary(address,uint32,address)\":{\"notice\":\"------------------- OApp interfaces -------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":\"IMessageLibManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"expiry","type":"uint256","indexed":false}],"type":"event","name":"DefaultReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultSendLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"LibraryRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"ReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"timeout","type":"uint256","indexed":false}],"type":"event","name":"ReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"SendLibrarySet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibrary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultSendLibrary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"bool","name":"isDefault","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegisteredLibraries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isDefaultSendLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"view","type":"function","name":"isRegisteredLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"view","type":"function","name":"isValidReceiveLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"receiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibrary"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibraryTimeout"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultSendLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibraryTimeout"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSendLibrary"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"setSendLibrary(address,uint32,address)":{"notice":"------------------- OApp interfaces -------------------"}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":"IMessageLibManager"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"}},"version":1},"id":20} \ No newline at end of file diff --git a/examples/onft721/out/IMessagingChannel.sol/IMessagingChannel.json b/examples/onft721/out/IMessagingChannel.sol/IMessagingChannel.json deleted file mode 100644 index c06e95315..000000000 --- a/examples/onft721/out/IMessagingChannel.sol/IMessagingChannel.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"burn","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eid","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"inboundNonce","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"inboundPayloadHash","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"lazyInboundNonce","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"nextGuid","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nilify","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"outboundNonce","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"skip","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"InboundNonceSkipped","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"PacketBurnt","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PacketNilified","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"burn(address,uint32,bytes32,uint64,bytes32)":"40f80683","eid()":"416ecebf","inboundNonce(address,uint32,bytes32)":"a0dd43fc","inboundPayloadHash(address,uint32,bytes32,uint64)":"c9fc7bcd","lazyInboundNonce(address,uint32,bytes32)":"5b17bb70","nextGuid(address,uint32,bytes32)":"aafe5e07","nilify(address,uint32,bytes32,uint64,bytes32)":"2e80fbf3","outboundNonce(address,uint32,bytes32)":"9c6d7340","skip(address,uint32,bytes32,uint64)":"d70b8902"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InboundNonceSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketBurnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketNilified\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"inboundPayloadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"lazyInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"nextGuid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"nilify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":\"IMessagingChannel\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false}],"type":"event","name":"InboundNonceSkipped","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketBurnt","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketNilified","anonymous":false},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"eid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"inboundPayloadHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"lazyInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextGuid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"nilify"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"skip"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":"IMessagingChannel"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"}},"version":1},"id":21} \ No newline at end of file diff --git a/examples/onft721/out/IMessagingComposer.sol/IMessagingComposer.json b/examples/onft721/out/IMessagingComposer.sol/IMessagingComposer.json deleted file mode 100644 index ad93abb6f..000000000 --- a/examples/onft721/out/IMessagingComposer.sol/IMessagingComposer.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"composeQueue","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"messageHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendCompose","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComposeDelivered","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"ComposeSent","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LzComposeAlert","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"executor","type":"address","indexed":true,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"composeQueue(address,address,bytes32,uint16)":"35d330b0","lzCompose(address,address,bytes32,uint16,bytes,bytes)":"91d20fa1","sendCompose(address,bytes32,uint16,bytes)":"7cb59012"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"ComposeDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ComposeSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzComposeAlert\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"}],\"name\":\"composeQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":\"IMessagingComposer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false}],"type":"event","name":"ComposeDelivered","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false}],"type":"event","name":"ComposeSent","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"address","name":"executor","type":"address","indexed":true},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"LzComposeAlert","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"}],"stateMutability":"view","type":"function","name":"composeQueue","outputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"sendCompose"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":"IMessagingComposer"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"}},"version":1},"id":22} \ No newline at end of file diff --git a/examples/onft721/out/IMessagingContext.sol/IMessagingContext.json b/examples/onft721/out/IMessagingContext.sol/IMessagingContext.json deleted file mode 100644 index 50be2eb2b..000000000 --- a/examples/onft721/out/IMessagingContext.sol/IMessagingContext.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getSendContext","inputs":[],"outputs":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isSendingMessage","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getSendContext()":"14f651a9","isSendingMessage()":"79624ca9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getSendContext\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":\"IMessagingContext\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"getSendContext","outputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSendingMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":"IMessagingContext"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":23} \ No newline at end of file diff --git a/examples/onft721/out/IOAppCore.sol/IOAppCore.json b/examples/onft721/out/IOAppCore.sol/IOAppCore.json deleted file mode 100644 index be274c3dc..000000000 --- a/examples/onft721/out/IOAppCore.sol/IOAppCore.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"iEndpoint","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","peers(uint32)":"bb0b6a53","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"iEndpoint\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"endpoint()\":{\"returns\":{\"iEndpoint\":\"The LayerZero endpoint as an interface.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"peer\":\"The peer address (OApp instance) associated with the corresponding endpoint.\"}},\"setDelegate(address)\":{\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}}},\"title\":\"IOAppCore\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp Core.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":\"IOAppCore\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"iEndpoint","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"}],"devdoc":{"kind":"dev","methods":{"endpoint()":{"returns":{"iEndpoint":"The LayerZero endpoint as an interface."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"peer":"The peer address (OApp instance) associated with the corresponding endpoint."}},"setDelegate(address)":{"params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp Core."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":"IOAppCore"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":7} \ No newline at end of file diff --git a/examples/onft721/out/IOAppMsgInspector.sol/IOAppMsgInspector.json b/examples/onft721/out/IOAppMsgInspector.sol/IOAppMsgInspector.json deleted file mode 100644 index 444eeca82..000000000 --- a/examples/onft721/out/IOAppMsgInspector.sol/IOAppMsgInspector.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"inspect","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"error","name":"InspectionFailed","inputs":[{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"inspect(bytes,bytes)":"043a78eb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InspectionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"inspect\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the OApp Message Inspector, allowing examination of message and options contents.\",\"kind\":\"dev\",\"methods\":{\"inspect(bytes,bytes)\":{\"details\":\"Optionally done as a revert, OR use the boolean provided to handle the failure.\",\"params\":{\"_message\":\"The message payload to be inspected.\",\"_options\":\"Additional options or parameters for inspection.\"},\"returns\":{\"valid\":\"A boolean indicating whether the inspection passed (true) or failed (false).\"}}},\"title\":\"IOAppMsgInspector\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"inspect(bytes,bytes)\":{\"notice\":\"Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":\"IOAppMsgInspector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InspectionFailed"},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"inspect","outputs":[{"internalType":"bool","name":"valid","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"inspect(bytes,bytes)":{"details":"Optionally done as a revert, OR use the boolean provided to handle the failure.","params":{"_message":"The message payload to be inspected.","_options":"Additional options or parameters for inspection."},"returns":{"valid":"A boolean indicating whether the inspection passed (true) or failed (false)."}}},"version":1},"userdoc":{"kind":"user","methods":{"inspect(bytes,bytes)":{"notice":"Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":"IOAppMsgInspector"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"}},"version":1},"id":8} \ No newline at end of file diff --git a/examples/onft721/out/IOAppOptionsType3.sol/IOAppOptionsType3.json b/examples/onft721/out/IOAppOptionsType3.sol/IOAppOptionsType3.json deleted file mode 100644 index 5b277ae46..000000000 --- a/examples/onft721/out/IOAppOptionsType3.sol/IOAppOptionsType3.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"options","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"combineOptions(uint32,uint16,bytes)":"bc70b354","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.\",\"kind\":\"dev\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OApp message type.\"},\"returns\":{\"options\":\"The combination of caller specified options AND enforced options.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}}},\"title\":\"IOAppOptionsType3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"notice\":\"Sets enforced options for specific endpoint and message type combinations.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":\"IOAppOptionsType3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"options","type":"bytes"}]},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"}],"devdoc":{"kind":"dev","methods":{"combineOptions(uint32,uint16,bytes)":{"params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OApp message type."},"returns":{"options":"The combination of caller specified options AND enforced options."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}}},"version":1},"userdoc":{"kind":"user","methods":{"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"setEnforcedOptions((uint32,uint16,bytes)[])":{"notice":"Sets enforced options for specific endpoint and message type combinations."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":"IOAppOptionsType3"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"}},"version":1},"id":9} \ No newline at end of file diff --git a/examples/onft721/out/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json b/examples/onft721/out/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json deleted file mode 100644 index 9cf74b351..000000000 --- a/examples/onft721/out/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isPeer(uint32,bytes32)":"5a0dfe4d","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","oApp()":"52ae2879","preCrime()":"b731ea0a","setPreCrime(address)":"d4243885"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the preCrime simulation functionality in an OApp.\",\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"isPeer(uint32,bytes32)\":{\"details\":\"checks if the specified peer is considered 'trusted' by the OApp.\",\"params\":{\"_eid\":\"The endpoint Id to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Mocks receiving a packet, then reverts with a series of data to infer the state/result.\",\"params\":{\"_packets\":\"An array of LayerZero InboundPacket objects representing received packets.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"preCrime()\":{\"details\":\"Retrieves the address of the preCrime contract implementation.\",\"returns\":{\"_0\":\"The address of the preCrime contract.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}}},\"title\":\"IOAppPreCrimeSimulator Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":\"IOAppPreCrimeSimulator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"}],"devdoc":{"kind":"dev","methods":{"isPeer(uint32,bytes32)":{"details":"checks if the specified peer is considered 'trusted' by the OApp.","params":{"_eid":"The endpoint Id to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Mocks receiving a packet, then reverts with a series of data to infer the state/result.","params":{"_packets":"An array of LayerZero InboundPacket objects representing received packets."}},"oApp()":{"details":"Retrieves the address of the OApp contract.","returns":{"_0":"The address of the OApp contract."}},"preCrime()":{"details":"Retrieves the address of the preCrime contract implementation.","returns":{"_0":"The address of the preCrime contract."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":"IOAppPreCrimeSimulator"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/examples/onft721/out/IOAppReceiver.sol/IOAppReceiver.json b/examples/onft721/out/IOAppReceiver.sol/IOAppReceiver.json deleted file mode 100644 index bcb92ff4c..000000000 --- a/examples/onft721/out/IOAppReceiver.sol/IOAppReceiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowInitializePath","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"isSender","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSender\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_message\":\"The lzReceive payload.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\",\"_sender\":\"The sender address.\"},\"returns\":{\"isSender\":\"Is a valid sender.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":\"IOAppReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"isSender","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_message":"The lzReceive payload.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.","_sender":"The sender address."},"returns":{"isSender":"Is a valid sender."}}},"version":1},"userdoc":{"kind":"user","methods":{"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":"IOAppReceiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":10} \ No newline at end of file diff --git a/examples/onft721/out/IONFT721.sol/IONFT721.json b/examples/onft721/out/IONFT721.sol/IONFT721.json deleted file mode 100644 index 551d44734..000000000 --- a/examples/onft721/out/IONFT721.sol/IONFT721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approvalRequired()":"9f68b964","onftVersion()":"a72f5dd8","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","token()":"fc0c546a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the ONFT721 token.Does not inherit ERC721 to accommodate usage by OFT721Adapter.\",\"kind\":\"dev\",\"methods\":{\"approvalRequired()\":{\"details\":\"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"onftVersion()\":{\"details\":\"interfaceId: This specific interface ID is '0x94642228'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID.\",\"version\":\"The version.\"}},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"_0\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"_0\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"token()\":{\"returns\":{\"_0\":\"token The address of the ERC721 token implementation.\"}}},\"title\":\"IONFT\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approvalRequired()\":{\"notice\":\"Indicates whether the OFT contract requires approval of the 'token()' to send.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the ONFT.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":\"IONFT721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"approvalRequired()":{"details":"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"onftVersion()":{"details":"interfaceId: This specific interface ID is '0x94642228'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID.","version":"The version."}},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"_0":"fee The calculated LayerZero messaging fee from the send() operation."}},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"_0":"receipt The LayerZero messaging receipt from the send() operation."}},"token()":{"returns":{"_0":"token The address of the ERC721 token implementation."}}},"version":1},"userdoc":{"kind":"user","methods":{"approvalRequired()":{"notice":"Indicates whether the OFT contract requires approval of the 'token()' to send."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"token()":{"notice":"Retrieves the address of the token associated with the ONFT."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol":"IONFT721"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":33} \ No newline at end of file diff --git a/examples/onft721/out/IPreCrime.sol/IPreCrime.json b/examples/onft721/out/IPreCrime.sol/IPreCrime.json deleted file mode 100644 index 477ccfd6a..000000000 --- a/examples/onft721/out/IPreCrime.sol/IPreCrime.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"buildSimulationResult","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_packets","type":"bytes[]","internalType":"bytes[]"},{"name":"_packetMsgValues","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"preCrime","inputs":[{"name":"_packets","type":"bytes[]","internalType":"bytes[]"},{"name":"_packetMsgValues","type":"uint256[]","internalType":"uint256[]"},{"name":"_simulations","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"simulate","inputs":[{"name":"_packets","type":"bytes[]","internalType":"bytes[]"},{"name":"_packetMsgValues","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"error","name":"CrimeFound","inputs":[{"name":"crime","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidSimulationResult","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"reason","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"OnlyOffChain","inputs":[]},{"type":"error","name":"PacketOversize","inputs":[{"name":"max","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PacketUnsorted","inputs":[]},{"type":"error","name":"SimulationFailed","inputs":[{"name":"reason","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"SimulationResultNotFound","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"buildSimulationResult()":"8e9e7099","getConfig(bytes[],uint256[])":"f0cd3836","preCrime(bytes[],uint256[],bytes[])":"10f9cf3a","simulate(bytes[],uint256[])":"50dfa937","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"crime\",\"type\":\"bytes\"}],\"name\":\"CrimeFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"InvalidSimulationResult\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyOffChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"PacketOversize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PacketUnsorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"SimulationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"SimulationResultNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"buildSimulationResult\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_packets\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_packetMsgValues\",\"type\":\"uint256[]\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_packets\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_packetMsgValues\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_simulations\",\"type\":\"bytes[]\"}],\"name\":\"preCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_packets\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_packetMsgValues\",\"type\":\"uint256[]\"}],\"name\":\"simulate\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":\"IPreCrime\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"crime","type":"bytes"}],"type":"error","name":"CrimeFound"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes","name":"reason","type":"bytes"}],"type":"error","name":"InvalidSimulationResult"},{"inputs":[],"type":"error","name":"OnlyOffChain"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"PacketOversize"},{"inputs":[],"type":"error","name":"PacketUnsorted"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"type":"error","name":"SimulationFailed"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"SimulationResultNotFound"},{"inputs":[],"stateMutability":"view","type":"function","name":"buildSimulationResult","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes[]","name":"_packets","type":"bytes[]"},{"internalType":"uint256[]","name":"_packetMsgValues","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes[]","name":"_packets","type":"bytes[]"},{"internalType":"uint256[]","name":"_packetMsgValues","type":"uint256[]"},{"internalType":"bytes[]","name":"_simulations","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"preCrime"},{"inputs":[{"internalType":"bytes[]","name":"_packets","type":"bytes[]"},{"internalType":"uint256[]","name":"_packetMsgValues","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"simulate","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":"IPreCrime"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"}},"version":1},"id":15} \ No newline at end of file diff --git a/examples/onft721/out/ISendLib.sol/ISendLib.json b/examples/onft721/out/ISendLib.sol/ISendLib.json deleted file mode 100644 index 273889c96..000000000 --- a/examples/onft721/out/ISendLib.sol/ISendLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getConfig","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_oapp","type":"address","internalType":"address"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"messageLibType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum MessageLibType"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_packet","type":"tuple","internalType":"struct Packet","components":[{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"send","inputs":[{"name":"_packet","type":"tuple","internalType":"struct Packet","components":[{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"encodedPacket","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_config","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTreasury","inputs":[{"name":"_treasury","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"endpointVersion","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawLzTokenFee","inputs":[{"name":"_lzToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getConfig(uint32,address,uint32)":"9c33abf7","isSupportedEid(uint32)":"6750cd4c","messageLibType()":"1881d94d","quote((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"d80e9bd9","send((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"4389e58f","setConfig(address,(uint32,uint32,bytes)[])":"20efd722","setTreasury(address)":"f0f44260","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","withdrawFee(address,uint256)":"fd9be522","withdrawLzTokenFee(address,address,uint256)":"200175f7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"_packet\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"_packet\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"encodedPacket\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_config\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawLzTokenFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":\"ISendLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct Packet","name":"_packet","type":"tuple","components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}]},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quote","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[{"internalType":"struct Packet","name":"_packet","type":"tuple","components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}]},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"bytes","name":"encodedPacket","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_config","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTreasury"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"},{"inputs":[{"internalType":"address","name":"_lzToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawLzTokenFee"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":"ISendLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":24} \ No newline at end of file diff --git a/examples/onft721/out/Math.sol/Math.json b/examples/onft721/out/Math.sol/Math.json deleted file mode 100644 index 6841c1539..000000000 --- a/examples/onft721/out/Math.sol/Math.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"MathOverflowedMulDiv","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d49212ba0e5ba3735da2128ee174878b350acb703d91fd9aef5ca22054607d7964736f6c63430008160033","sourceMap":"203:14914:49:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;203:14914:49;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d49212ba0e5ba3735da2128ee174878b350acb703d91fd9aef5ca22054607d7964736f6c63430008160033","sourceMap":"203:14914:49:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/math/Math.sol":"Math"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":49} \ No newline at end of file diff --git a/examples/onft721/out/MyONFT721.sol/MyONFT721.json b/examples/onft721/out/MyONFT721.sol/MyONFT721.json deleted file mode 100644 index 1fe092771..000000000 --- a/examples/onft721/out/MyONFT721.sol/MyONFT721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_lzEndpoint","type":"address","internalType":"address"},{"name":"_delegate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x60a06040523480156200001157600080fd5b50604051620038ff380380620038ff833981016040819052620000349162000277565b838383838383838381818181806001600160a01b0381166200007057604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007b8162000142565b506001600160a01b038083166080528116620000aa57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000f257600080fd5b505af115801562000107573d6000803e3d6000fd5b50505050505050505050816005908162000122919062000397565b50600662000131828262000397565b505050505050505050505062000463565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ba57600080fd5b81516001600160401b0380821115620001d757620001d762000192565b604051601f8301601f19908116603f0116810190828211818310171562000202576200020262000192565b81604052838152602092508660208588010111156200022057600080fd5b600091505b8382101562000244578582018301518183018401529082019062000225565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200027257600080fd5b919050565b600080600080608085870312156200028e57600080fd5b84516001600160401b0380821115620002a657600080fd5b620002b488838901620001a8565b95506020870151915080821115620002cb57600080fd5b50620002da87828801620001a8565b935050620002eb604086016200025a565b9150620002fb606086016200025a565b905092959194509250565b600181811c908216806200031b57607f821691505b6020821081036200033c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000392576000816000526020600020601f850160051c810160208610156200036d5750805b601f850160051c820191505b818110156200038e5782815560010162000379565b5050505b505050565b81516001600160401b03811115620003b357620003b362000192565b620003cb81620003c4845462000306565b8462000342565b602080601f831160018114620004035760008415620003ea5750858301515b600019600386901b1c1916600185901b1785556200038e565b600085815260208120601f198616915b82811015620004345788860151825594840194600190910190840162000413565b5085821015620004535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805161344f620004b06000396000818161048b0152818161090d01528181611162015281816113f70152818161167a01528181611c270152818161200601526120bf015261344f6000f3fe60806040526004361061025c5760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc1461075c578063d42438851461076f578063e985e9c51461078f578063f2fde38b146107af578063fc0c546a1461040f578063ff7bd03d146107cf57600080fd5b8063bc70b354146106bc578063bd815db0146106dc578063c6414e7b146106ef578063c87b56dd1461071c578063ca5eb5e11461073c57600080fd5b8063a72f5dd811610108578063a72f5dd8146105f2578063b21a33e41461061a578063b731ea0a1461062f578063b88d4fde1461064f578063b98bd0701461066f578063bb0b6a531461068f57600080fd5b806382413eac1461056b5780638da5cb5b1461058b57806395d89b41146105a95780639f68b964146105be578063a22cb465146105d257600080fd5b80633400288b116101dd5780635e280f11116101a15780635e280f11146104795780636352211e146104ad5780636fc1b31e146104cd57806370a08231146104ed578063715018a61461051b5780637d25a05e1461053057600080fd5b80633400288b146103cf57806342842e0e146103ef57806352ae28791461040f5780635535d461146104225780635a0dfe4d1461044257600080fd5b806313137d651161022457806313137d651461033257806317442b70146103455780631f5e13341461036757806321eb730b1461038f57806323b872dd146103af57600080fd5b806301ffc9a71461026157806306fdde0314610296578063081812fc146102b8578063095ea7b3146102f0578063111ecdad14610312575b600080fd5b34801561026d57600080fd5b5061028161027c366004612509565b6107ef565b60405190151581526020015b60405180910390f35b3480156102a257600080fd5b506102ab610841565b60405161028d9190612576565b3480156102c457600080fd5b506102d86102d3366004612589565b6108d3565b6040516001600160a01b03909116815260200161028d565b3480156102fc57600080fd5b5061031061030b3660046125b7565b6108fc565b005b34801561031e57600080fd5b506004546102d8906001600160a01b031681565b610310610340366004612643565b61090b565b34801561035157600080fd5b506040805160018152600260208201520161028d565b34801561037357600080fd5b5061037c600181565b60405161ffff909116815260200161028d565b6103a261039d3660046126f4565b6109cb565b60405161028d9190612761565b3480156103bb57600080fd5b506103106103ca3660046127a3565b610aa6565b3480156103db57600080fd5b506103106103ea3660046127fd565b610b31565b3480156103fb57600080fd5b5061031061040a3660046127a3565b610b43565b34801561041b57600080fd5b50306102d8565b34801561042e57600080fd5b506102ab61043d36600461282b565b610b63565b34801561044e57600080fd5b5061028161045d3660046127fd565b63ffffffff919091166000908152600160205260409020541490565b34801561048557600080fd5b506102d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b957600080fd5b506102d86104c8366004612589565b610c08565b3480156104d957600080fd5b506103106104e836600461285e565b610c13565b3480156104f957600080fd5b5061050d61050836600461285e565b610c70565b60405190815260200161028d565b34801561052757600080fd5b50610310610cb8565b34801561053c57600080fd5b5061055361054b3660046127fd565b600092915050565b6040516001600160401b03909116815260200161028d565b34801561057757600080fd5b5061028161058636600461287b565b610ccc565b34801561059757600080fd5b506000546001600160a01b03166102d8565b3480156105b557600080fd5b506102ab610ce1565b3480156105ca57600080fd5b506000610281565b3480156105de57600080fd5b506103106105ed3660046128ef565b610cf0565b3480156105fe57600080fd5b50604080516311f0c6d360e11b8152600160208201520161028d565b34801561062657600080fd5b5061037c600281565b34801561063b57600080fd5b506002546102d8906001600160a01b031681565b34801561065b57600080fd5b5061031061066a366004612a35565b610cfb565b34801561067b57600080fd5b5061031061068a366004612ae4565b610d12565b34801561069b57600080fd5b5061050d6106aa366004612b25565b60016020526000908152604090205481565b3480156106c857600080fd5b506102ab6106d7366004612b40565b610d2c565b6103106106ea366004612ae4565b610ed4565b3480156106fb57600080fd5b5061070f61070a366004612ba0565b61105e565b60405161028d9190612be6565b34801561072857600080fd5b506102ab610737366004612589565b6110c6565b34801561074857600080fd5b5061031061075736600461285e565b61113b565b61031061076a366004612643565b6111c1565b34801561077b57600080fd5b5061031061078a36600461285e565b6111f0565b34801561079b57600080fd5b506102816107aa366004612bfd565b611246565b3480156107bb57600080fd5b506103106107ca36600461285e565b611274565b3480156107db57600080fd5b506102816107ea366004612c2b565b6112b2565b60006001600160e01b031982166380ac58cd60e01b148061082057506001600160e01b03198216635b5e139f60e01b145b8061083b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461085090612c47565b80601f016020809104026020016040519081016040528092919081815260200182805461087c90612c47565b80156108c95780601f1061089e576101008083540402835291602001916108c9565b820191906000526020600020905b8154815290600101906020018083116108ac57829003601f168201915b5050505050905090565b60006108de826112e8565b506000828152600960205260409020546001600160a01b031661083b565b610907828233611321565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461095b576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061097590610970908a612b25565b61132e565b146109b3576109876020880188612b25565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610952565b6109c28787878787878761136a565b50505050505050565b6109d36124ac565b60208401356109f557604051631e4ec46b60e01b815260040160405180910390fd5b610a10336040860135610a0b6020880188612b25565b6114c9565b600080610a1c86611529565b9092509050610a48610a316020880188612b25565b8383610a42368a90038a018a612c7b565b88611647565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610a7d60208a018a612b25565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610ad057604051633250574960e11b815260006004820152602401610952565b6000610add838333611752565b9050836001600160a01b0316816001600160a01b031614610b2b576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610952565b50505050565b610b3961184b565b6109078282611878565b610b5e83838360405180602001604052806000815250610cfb565b505050565b600360209081526000928352604080842090915290825290208054610b8790612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb390612c47565b8015610c005780601f10610bd557610100808354040283529160200191610c00565b820191906000526020600020905b815481529060010190602001808311610be357829003601f168201915b505050505081565b600061083b826112e8565b610c1b61184b565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610c9c576040516322718ad960e21b815260006004820152602401610952565b506001600160a01b031660009081526008602052604090205490565b610cc061184b565b610cca60006118cd565b565b6001600160a01b03811630145b949350505050565b60606006805461085090612c47565b61090733838361191d565b610d06848484610aa6565b610b2b848484846119bc565b610d1a61184b565b610907610d278284612cad565b611ade565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d6090612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8c90612c47565b8015610dd95780601f10610dae57610100808354040283529160200191610dd9565b820191906000526020600020905b815481529060010190602001808311610dbc57829003601f168201915b505050505090508051600003610e295783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610cd99350505050565b6000839003610e39579050610cd9565b60028310610eb757610e8084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611be592505050565b80610e8e8460028188612d82565b604051602001610ea093929190612dac565b604051602081830303815290604052915050610cd9565b8383604051639a6d49cd60e01b8152600401610952929190612dfd565b60005b81811015610fdd5736838383818110610ef257610ef2612e11565b9050602002810190610f049190612e27565b9050610f37610f166020830183612b25565b602083013563ffffffff919091166000908152600160205260409020541490565b610f415750610fd5565b3063d045a0dc60c08301358360a0810135610f60610100830183612e48565b610f71610100890160e08a0161285e565b610f7f6101208a018a612e48565b6040518963ffffffff1660e01b8152600401610fa19796959493929190612ea3565b6000604051808303818588803b158015610fba57600080fd5b505af1158015610fce573d6000803e3d6000fd5b5050505050505b600101610ed7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa15801561101c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110449190810190612f29565b604051638351eea760e01b81526004016109529190612576565b6040805180820190915260008082526020820152602083013561109457604051631e4ec46b60e01b815260040160405180910390fd5b6000806110a085611529565b90925090506110bd6110b56020870187612b25565b838387611c11565b95945050505050565b60606110d1826112e8565b5060006110e960408051602081019091526000815290565b905060008151116111095760405180602001604052806000815250611134565b8061111384611ce9565b604051602001611124929190612f96565b6040516020818303038152906040525b9392505050565b61114361184b565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b5050505050565b3330146111e15760405163029a949d60e31b815260040160405180910390fd5b6109c2878787878787876109b3565b6111f861184b565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b61127c61184b565b6001600160a01b0381166112a657604051631e4fbdf760e01b815260006004820152602401610952565b6112af816118cd565b50565b60006020820180359060019083906112ca9086612b25565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061083b57604051637e27328960e01b815260048101849052602401610952565b610b5e8383836001611d7b565b63ffffffff81166000908152600160205260408120548061083b5760405163f6ff4fb760e01b815263ffffffff84166004820152602401610952565b600061137c6113798787611e81565b90565b9050600061138a8787611e99565b90506113a3828261139e60208d018d612b25565b611eb6565b60408611156114675760006113dd6113c160608c0160408d01612fc5565b6113ce60208d018d612b25565b6113d88b8b611ec0565b611f0b565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114339086908d906000908790600401612fe2565b600060405180830381600087803b15801561144d57600080fd5b505af1158015611461573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114a060208d018d612b25565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6114d282610c08565b6001600160a01b0316836001600160a01b03161461152057826114f483610c08565b604051634342715b60e11b81526001600160a01b03928316600482015291166024820152604401610952565b610b5e82611f3a565b6060806000611582602085013560408601356115486080880188612e48565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f7592505050565b9093509050600081611595576001611598565b60025b90506115b86115aa6020870187612b25565b826106d76060890189612e48565b6004549093506001600160a01b031615611640576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb916115fd918891889101613013565b602060405180830381865afa15801561161a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163e9190613038565b505b5050915091565b61164f6124ac565b600061165e8460000151611fda565b602085015190915015611678576116788460200151612002565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116c88c61132e565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611704929190613055565b60806040518083038185885af1158015611722573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061174791906130fe565b979650505050505050565b6000828152600760205260408120546001600160a01b039081169083161561177f5761177f8184866120e4565b6001600160a01b038116156117bd5761179c600085600080611d7b565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b038516156117ec576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cca5760405163118cdaa760e01b8152336004820152602401610952565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661194f57604051630b61174360e31b81526001600160a01b0383166004820152602401610952565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b2b57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906119fe903390889087908790600401613148565b6020604051808303816000875af1925050508015611a39575060408051601f3d908101601f19168201909252611a369181019061317b565b60015b611aa2573d808015611a67576040519150601f19603f3d011682016040523d82523d6000602084013e611a6c565b606091505b508051600003611a9a57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ba57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b60005b8151811015611bb557611b10828281518110611aff57611aff612e11565b602002602001015160400151611be5565b818181518110611b2257611b22612e11565b60200260200101516040015160036000848481518110611b4457611b44612e11565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611b7e57611b7e612e11565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611bac91906131e8565b50600101611ae1565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c6591906132a7565b600281015161ffff81166003146109075781604051639a6d49cd60e01b81526004016109529190612576565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611c748961132e565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611ca9929190613055565b6040805180830381865afa158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bd9190613332565b60606000611cf683612148565b60010190506000816001600160401b03811115611d1557611d15612928565b6040519080825280601f01601f191660200182016040528015611d3f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611d4957509392505050565b8080611d8f57506001600160a01b03821615155b15611e51576000611d9f846112e8565b90506001600160a01b03831615801590611dcb5750826001600160a01b0316816001600160a01b031614155b8015611dde5750611ddc8184611246565b155b15611e075760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610952565b8115611e4f5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611e906020828486612d82565b6111349161334e565b6000611ea9604060208486612d82565b8101906111349190612589565b610b5e8383612220565b6060611ecf8260408186612d82565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611f229392919061336c565b60405160208183030381529060405290509392505050565b6000611f496000836000611752565b90506001600160a01b03811661090757604051637e27328960e01b815260048101839052602401610952565b8051606090151580611fa9576040805160208101879052908101859052606001604051602081830303815290604052611fd0565b84843385604051602001611fc094939291906133b6565b6040516020818303038152906040525b9150935093915050565b6000813414611ffe576040516304fb820960e51b8152346004820152602401610952565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612062573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208691906133ea565b90506001600160a01b0381166120af576040516329b99a9560e11b815260040160405180910390fd5b6109076001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612285565b6120ef8383836122df565b610b5e576001600160a01b03831661211d57604051637e27328960e01b815260048101829052602401610952565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610952565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106121875772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106121b3576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106121d157662386f26fc10000830492506010015b6305f5e10083106121e9576305f5e100830492506008015b61271083106121fd57612710830492506004015b6064831061220f576064830492506002015b600a831061083b5760010192915050565b6001600160a01b03821661224a57604051633250574960e11b815260006004820152602401610952565b600061225883836000611752565b90506001600160a01b03811615610b5e576040516339e3563760e11b815260006004820152602401610952565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b2b908590612342565b60006001600160a01b03831615801590610cd95750826001600160a01b0316846001600160a01b0316148061231957506123198484611246565b80610cd95750506000908152600960205260409020546001600160a01b03908116911614919050565b60006123576001600160a01b038416836123a5565b9050805160001415801561237c57508080602001905181019061237a9190613038565b155b15610b5e57604051635274afe760e01b81526001600160a01b0384166004820152602401610952565b60606111348383600084600080856001600160a01b031684866040516123cb9190613407565b60006040518083038185875af1925050503d8060008114612408576040519150601f19603f3d011682016040523d82523d6000602084013e61240d565b606091505b509150915061241d868383612427565b9695505050505050565b60608261243c5761243782612483565b611134565b815115801561245357506001600160a01b0384163b155b1561247c57604051639996b31560e01b81526001600160a01b0385166004820152602401610952565b5080611134565b8051156124935780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b031681526020016124ee604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112af57600080fd5b60006020828403121561251b57600080fd5b8135611134816124f3565b60005b83811015612541578181015183820152602001612529565b50506000910152565b60008151808452612562816020860160208601612526565b601f01601f19169290920160200192915050565b602081526000611134602083018461254a565b60006020828403121561259b57600080fd5b5035919050565b6001600160a01b03811681146112af57600080fd5b600080604083850312156125ca57600080fd5b82356125d5816125a2565b946020939093013593505050565b6000606082840312156125f557600080fd5b50919050565b60008083601f84011261260d57600080fd5b5081356001600160401b0381111561262457600080fd5b60208301915083602082850101111561263c57600080fd5b9250929050565b600080600080600080600060e0888a03121561265e57600080fd5b61266889896125e3565b96506060880135955060808801356001600160401b038082111561268b57600080fd5b6126978b838c016125fb565b909750955060a08a013591506126ac826125a2565b90935060c089013590808211156126c257600080fd5b506126cf8a828b016125fb565b989b979a50959850939692959293505050565b600060c082840312156125f557600080fd5b6000806000838503608081121561270a57600080fd5b84356001600160401b0381111561272057600080fd5b61272c878288016126e2565b9450506040601f198201121561274157600080fd5b506020840191506060840135612756816125a2565b809150509250925092565b6000608082019050825182526001600160401b036020840151166020830152604083015161279c604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127b857600080fd5b83356127c3816125a2565b925060208401356127d3816125a2565b929592945050506040919091013590565b803563ffffffff811681146127f857600080fd5b919050565b6000806040838503121561281057600080fd5b6125d5836127e4565b803561ffff811681146127f857600080fd5b6000806040838503121561283e57600080fd5b612847836127e4565b915061285560208401612819565b90509250929050565b60006020828403121561287057600080fd5b8135611134816125a2565b60008060008060a0858703121561289157600080fd5b61289b86866125e3565b935060608501356001600160401b038111156128b657600080fd5b6128c2878288016125fb565b90945092505060808501356128d6816125a2565b939692955090935050565b80151581146112af57600080fd5b6000806040838503121561290257600080fd5b823561290d816125a2565b9150602083013561291d816128e1565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561296057612960612928565b60405290565b604051606081016001600160401b038111828210171561296057612960612928565b604051601f8201601f191681016001600160401b03811182821017156129b0576129b0612928565b604052919050565b60006001600160401b038211156129d1576129d1612928565b50601f01601f191660200190565b600082601f8301126129f057600080fd5b8135612a036129fe826129b8565b612988565b818152846020838601011115612a1857600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a4b57600080fd5b8435612a56816125a2565b93506020850135612a66816125a2565b92506040850135915060608501356001600160401b03811115612a8857600080fd5b612a94878288016129df565b91505092959194509250565b60008083601f840112612ab257600080fd5b5081356001600160401b03811115612ac957600080fd5b6020830191508360208260051b850101111561263c57600080fd5b60008060208385031215612af757600080fd5b82356001600160401b03811115612b0d57600080fd5b612b1985828601612aa0565b90969095509350505050565b600060208284031215612b3757600080fd5b611134826127e4565b60008060008060608587031215612b5657600080fd5b612b5f856127e4565b9350612b6d60208601612819565b925060408501356001600160401b03811115612b8857600080fd5b612b94878288016125fb565b95989497509550505050565b60008060408385031215612bb357600080fd5b82356001600160401b03811115612bc957600080fd5b612bd5858286016126e2565b925050602083013561291d816128e1565b81518152602080830151908201526040810161083b565b60008060408385031215612c1057600080fd5b8235612c1b816125a2565b9150602083013561291d816125a2565b600060608284031215612c3d57600080fd5b61113483836125e3565b600181811c90821680612c5b57607f821691505b6020821081036125f557634e487b7160e01b600052602260045260246000fd5b600060408284031215612c8d57600080fd5b612c9561293e565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cc757612cc7612928565b8360051b6020612cd8818301612988565b868152918501918181019036841115612cf057600080fd5b865b84811015612d7657803586811115612d0a5760008081fd5b88016060368290031215612d1e5760008081fd5b612d26612966565b612d2f826127e4565b8152612d3c868301612819565b8682015260408083013589811115612d545760008081fd5b612d60368286016129df565b9183019190915250845250918301918301612cf2565b50979650505050505050565b60008085851115612d9257600080fd5b83861115612d9f57600080fd5b5050820193919092039150565b60008451612dbe818460208901612526565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610cd9602083018486612dd4565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e3e57600080fd5b9190910192915050565b6000808335601e19843603018112612e5f57600080fd5b8301803591506001600160401b03821115612e7957600080fd5b60200191503681900382131561263c57600080fd5b6001600160401b03811681146112af57600080fd5b63ffffffff612eb1896127e4565b1681526020880135602082015260006040890135612ece81612e8e565b6001600160401b03811660408401525087606083015260e06080830152612ef960e083018789612dd4565b6001600160a01b03861660a084015282810360c0840152612f1b818587612dd4565b9a9950505050505050505050565b600060208284031215612f3b57600080fd5b81516001600160401b03811115612f5157600080fd5b8201601f81018413612f6257600080fd5b8051612f706129fe826129b8565b818152856020838501011115612f8557600080fd5b6110bd826020830160208601612526565b60008351612fa8818460208801612526565b835190830190612fbc818360208801612526565b01949350505050565b600060208284031215612fd757600080fd5b813561113481612e8e565b60018060a01b038516815283602082015261ffff8316604082015260806060820152600061241d608083018461254a565b604081526000613026604083018561254a565b82810360208401526110bd818561254a565b60006020828403121561304a57600080fd5b8151611134816128e1565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261308b60e084018261254a565b90506060850151603f198483030160a08501526130a8828261254a565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156130e057600080fd5b6130e861293e565b9050815181526020820151602082015292915050565b60006080828403121561311057600080fd5b613118612966565b82518152602083015161312a81612e8e565b602082015261313c84604085016130ce565b60408201529392505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061241d9083018461254a565b60006020828403121561318d57600080fd5b8151611134816124f3565b601f821115610b5e576000816000526020600020601f850160051c810160208610156131c15750805b601f850160051c820191505b818110156131e0578281556001016131cd565b505050505050565b81516001600160401b0381111561320157613201612928565b6132158161320f8454612c47565b84613198565b602080601f83116001811461324a57600084156132325750858301515b600019600386901b1c1916600185901b1785556131e0565b600085815260208120601f198616915b828110156132795788860151825594840194600190910190840161325a565b50858210156132975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561332457888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133108186018361254a565b9689019694505050908601906001016132d0565b509098975050505050505050565b60006040828403121561334457600080fd5b61113483836130ce565b8035602083101561083b57600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133a781600c850160208701612526565b91909101600c01949350505050565b848152836020820152826040820152600082516133da816060850160208701612526565b9190910160600195945050505050565b6000602082840312156133fc57600080fd5b8151611134816125a2565b60008251612e3e81846020870161252656fea2646970667358221220aeba70189cdddb64fe998fe477d63a2a7e6ea68c6a8a4a2989f18c0e50723cd764736f6c63430008160033","sourceMap":"147:222:0:-:0;;;183:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;325:5;332:7;341:11;354:9;325:5;332:7;341:11;354:9;341:11;354:9;341:11;354:9;;-1:-1:-1;;;;;1273:26:35;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:35;;1350:1;1322:31;;;2061:51:53;2034:18;;1322:31:35;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:4;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:4;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:4;;-1:-1:-1;;;;;2079:32:53;;;1163:31:4;;;2061:51:53;1163:20:4;;;;;;2034:18:53;;1163:31:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;965:83:3;;1952:102:32;;1455:5:40;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:40;:17;1480:7;1470;:17;:::i;:::-;;1381:113;;673:195:31;;;;183:184:0;;;;147:222;;2912:187:35;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:35;;;-1:-1:-1;;;;;;3020:17:35;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:53:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:53;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:53;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:177::-;1074:13;;-1:-1:-1;;;;;1116:31:53;;1106:42;;1096:70;;1162:1;1159;1152:12;1096:70;995:177;;;:::o;1177:733::-;1294:6;1302;1310;1318;1371:3;1359:9;1350:7;1346:23;1342:33;1339:53;;;1388:1;1385;1378:12;1339:53;1415:16;;-1:-1:-1;;;;;1480:14:53;;;1477:34;;;1507:1;1504;1497:12;1477:34;1530:61;1583:7;1574:6;1563:9;1559:22;1530:61;:::i;:::-;1520:71;;1637:2;1626:9;1622:18;1616:25;1600:41;;1666:2;1656:8;1653:16;1650:36;;;1682:1;1679;1672:12;1650:36;;1705:63;1760:7;1749:8;1738:9;1734:24;1705:63;:::i;:::-;1695:73;;;1787:49;1832:2;1821:9;1817:18;1787:49;:::i;:::-;1777:59;;1855:49;1900:2;1889:9;1885:18;1855:49;:::i;:::-;1845:59;;1177:733;;;;;;;:::o;2123:380::-;2202:1;2198:12;;;;2245;;;2266:61;;2320:4;2312:6;2308:17;2298:27;;2266:61;2373:2;2365:6;2362:14;2342:18;2339:38;2336:161;;2419:10;2414:3;2410:20;2407:1;2400:31;2454:4;2451:1;2444:15;2482:4;2479:1;2472:15;2336:161;;2123:380;;;:::o;2634:543::-;2736:2;2731:3;2728:11;2725:446;;;2772:1;2796:5;2793:1;2786:16;2840:4;2837:1;2827:18;2910:2;2898:10;2894:19;2891:1;2887:27;2881:4;2877:38;2946:4;2934:10;2931:20;2928:47;;;-1:-1:-1;2969:4:53;2928:47;3024:2;3019:3;3015:12;3012:1;3008:20;3002:4;2998:31;2988:41;;3079:82;3097:2;3090:5;3087:13;3079:82;;;3142:17;;;3123:1;3112:13;3079:82;;;3083:3;;;2725:446;2634:543;;;:::o;3353:1345::-;3473:10;;-1:-1:-1;;;;;3495:30:53;;3492:56;;;3528:18;;:::i;:::-;3557:97;3647:6;3607:38;3639:4;3633:11;3607:38;:::i;:::-;3601:4;3557:97;:::i;:::-;3709:4;;3766:2;3755:14;;3783:1;3778:663;;;;4485:1;4502:6;4499:89;;;-1:-1:-1;4554:19:53;;;4548:26;4499:89;-1:-1:-1;;3310:1:53;3306:11;;;3302:24;3298:29;3288:40;3334:1;3330:11;;;3285:57;4601:81;;3748:944;;3778:663;2581:1;2574:14;;;2618:4;2605:18;;-1:-1:-1;;3814:20:53;;;3932:236;3946:7;3943:1;3940:14;3932:236;;;4035:19;;;4029:26;4014:42;;4127:27;;;;4095:1;4083:14;;;;3962:19;;3932:236;;;3936:3;4196:6;4187:7;4184:19;4181:201;;;4257:19;;;4251:26;-1:-1:-1;;4340:1:53;4336:14;;;4352:3;4332:24;4328:37;4324:42;4309:58;4294:74;;4181:201;-1:-1:-1;;;;;4428:1:53;4412:14;;;4408:22;4395:36;;-1:-1:-1;3353:1345:53:o;:::-;147:222:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061025c5760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc1461075c578063d42438851461076f578063e985e9c51461078f578063f2fde38b146107af578063fc0c546a1461040f578063ff7bd03d146107cf57600080fd5b8063bc70b354146106bc578063bd815db0146106dc578063c6414e7b146106ef578063c87b56dd1461071c578063ca5eb5e11461073c57600080fd5b8063a72f5dd811610108578063a72f5dd8146105f2578063b21a33e41461061a578063b731ea0a1461062f578063b88d4fde1461064f578063b98bd0701461066f578063bb0b6a531461068f57600080fd5b806382413eac1461056b5780638da5cb5b1461058b57806395d89b41146105a95780639f68b964146105be578063a22cb465146105d257600080fd5b80633400288b116101dd5780635e280f11116101a15780635e280f11146104795780636352211e146104ad5780636fc1b31e146104cd57806370a08231146104ed578063715018a61461051b5780637d25a05e1461053057600080fd5b80633400288b146103cf57806342842e0e146103ef57806352ae28791461040f5780635535d461146104225780635a0dfe4d1461044257600080fd5b806313137d651161022457806313137d651461033257806317442b70146103455780631f5e13341461036757806321eb730b1461038f57806323b872dd146103af57600080fd5b806301ffc9a71461026157806306fdde0314610296578063081812fc146102b8578063095ea7b3146102f0578063111ecdad14610312575b600080fd5b34801561026d57600080fd5b5061028161027c366004612509565b6107ef565b60405190151581526020015b60405180910390f35b3480156102a257600080fd5b506102ab610841565b60405161028d9190612576565b3480156102c457600080fd5b506102d86102d3366004612589565b6108d3565b6040516001600160a01b03909116815260200161028d565b3480156102fc57600080fd5b5061031061030b3660046125b7565b6108fc565b005b34801561031e57600080fd5b506004546102d8906001600160a01b031681565b610310610340366004612643565b61090b565b34801561035157600080fd5b506040805160018152600260208201520161028d565b34801561037357600080fd5b5061037c600181565b60405161ffff909116815260200161028d565b6103a261039d3660046126f4565b6109cb565b60405161028d9190612761565b3480156103bb57600080fd5b506103106103ca3660046127a3565b610aa6565b3480156103db57600080fd5b506103106103ea3660046127fd565b610b31565b3480156103fb57600080fd5b5061031061040a3660046127a3565b610b43565b34801561041b57600080fd5b50306102d8565b34801561042e57600080fd5b506102ab61043d36600461282b565b610b63565b34801561044e57600080fd5b5061028161045d3660046127fd565b63ffffffff919091166000908152600160205260409020541490565b34801561048557600080fd5b506102d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b957600080fd5b506102d86104c8366004612589565b610c08565b3480156104d957600080fd5b506103106104e836600461285e565b610c13565b3480156104f957600080fd5b5061050d61050836600461285e565b610c70565b60405190815260200161028d565b34801561052757600080fd5b50610310610cb8565b34801561053c57600080fd5b5061055361054b3660046127fd565b600092915050565b6040516001600160401b03909116815260200161028d565b34801561057757600080fd5b5061028161058636600461287b565b610ccc565b34801561059757600080fd5b506000546001600160a01b03166102d8565b3480156105b557600080fd5b506102ab610ce1565b3480156105ca57600080fd5b506000610281565b3480156105de57600080fd5b506103106105ed3660046128ef565b610cf0565b3480156105fe57600080fd5b50604080516311f0c6d360e11b8152600160208201520161028d565b34801561062657600080fd5b5061037c600281565b34801561063b57600080fd5b506002546102d8906001600160a01b031681565b34801561065b57600080fd5b5061031061066a366004612a35565b610cfb565b34801561067b57600080fd5b5061031061068a366004612ae4565b610d12565b34801561069b57600080fd5b5061050d6106aa366004612b25565b60016020526000908152604090205481565b3480156106c857600080fd5b506102ab6106d7366004612b40565b610d2c565b6103106106ea366004612ae4565b610ed4565b3480156106fb57600080fd5b5061070f61070a366004612ba0565b61105e565b60405161028d9190612be6565b34801561072857600080fd5b506102ab610737366004612589565b6110c6565b34801561074857600080fd5b5061031061075736600461285e565b61113b565b61031061076a366004612643565b6111c1565b34801561077b57600080fd5b5061031061078a36600461285e565b6111f0565b34801561079b57600080fd5b506102816107aa366004612bfd565b611246565b3480156107bb57600080fd5b506103106107ca36600461285e565b611274565b3480156107db57600080fd5b506102816107ea366004612c2b565b6112b2565b60006001600160e01b031982166380ac58cd60e01b148061082057506001600160e01b03198216635b5e139f60e01b145b8061083b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461085090612c47565b80601f016020809104026020016040519081016040528092919081815260200182805461087c90612c47565b80156108c95780601f1061089e576101008083540402835291602001916108c9565b820191906000526020600020905b8154815290600101906020018083116108ac57829003601f168201915b5050505050905090565b60006108de826112e8565b506000828152600960205260409020546001600160a01b031661083b565b610907828233611321565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461095b576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061097590610970908a612b25565b61132e565b146109b3576109876020880188612b25565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610952565b6109c28787878787878761136a565b50505050505050565b6109d36124ac565b60208401356109f557604051631e4ec46b60e01b815260040160405180910390fd5b610a10336040860135610a0b6020880188612b25565b6114c9565b600080610a1c86611529565b9092509050610a48610a316020880188612b25565b8383610a42368a90038a018a612c7b565b88611647565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610a7d60208a018a612b25565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610ad057604051633250574960e11b815260006004820152602401610952565b6000610add838333611752565b9050836001600160a01b0316816001600160a01b031614610b2b576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610952565b50505050565b610b3961184b565b6109078282611878565b610b5e83838360405180602001604052806000815250610cfb565b505050565b600360209081526000928352604080842090915290825290208054610b8790612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb390612c47565b8015610c005780601f10610bd557610100808354040283529160200191610c00565b820191906000526020600020905b815481529060010190602001808311610be357829003601f168201915b505050505081565b600061083b826112e8565b610c1b61184b565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610c9c576040516322718ad960e21b815260006004820152602401610952565b506001600160a01b031660009081526008602052604090205490565b610cc061184b565b610cca60006118cd565b565b6001600160a01b03811630145b949350505050565b60606006805461085090612c47565b61090733838361191d565b610d06848484610aa6565b610b2b848484846119bc565b610d1a61184b565b610907610d278284612cad565b611ade565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d6090612c47565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8c90612c47565b8015610dd95780601f10610dae57610100808354040283529160200191610dd9565b820191906000526020600020905b815481529060010190602001808311610dbc57829003601f168201915b505050505090508051600003610e295783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610cd99350505050565b6000839003610e39579050610cd9565b60028310610eb757610e8084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611be592505050565b80610e8e8460028188612d82565b604051602001610ea093929190612dac565b604051602081830303815290604052915050610cd9565b8383604051639a6d49cd60e01b8152600401610952929190612dfd565b60005b81811015610fdd5736838383818110610ef257610ef2612e11565b9050602002810190610f049190612e27565b9050610f37610f166020830183612b25565b602083013563ffffffff919091166000908152600160205260409020541490565b610f415750610fd5565b3063d045a0dc60c08301358360a0810135610f60610100830183612e48565b610f71610100890160e08a0161285e565b610f7f6101208a018a612e48565b6040518963ffffffff1660e01b8152600401610fa19796959493929190612ea3565b6000604051808303818588803b158015610fba57600080fd5b505af1158015610fce573d6000803e3d6000fd5b5050505050505b600101610ed7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa15801561101c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110449190810190612f29565b604051638351eea760e01b81526004016109529190612576565b6040805180820190915260008082526020820152602083013561109457604051631e4ec46b60e01b815260040160405180910390fd5b6000806110a085611529565b90925090506110bd6110b56020870187612b25565b838387611c11565b95945050505050565b60606110d1826112e8565b5060006110e960408051602081019091526000815290565b905060008151116111095760405180602001604052806000815250611134565b8061111384611ce9565b604051602001611124929190612f96565b6040516020818303038152906040525b9392505050565b61114361184b565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b5050505050565b3330146111e15760405163029a949d60e31b815260040160405180910390fd5b6109c2878787878787876109b3565b6111f861184b565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b61127c61184b565b6001600160a01b0381166112a657604051631e4fbdf760e01b815260006004820152602401610952565b6112af816118cd565b50565b60006020820180359060019083906112ca9086612b25565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061083b57604051637e27328960e01b815260048101849052602401610952565b610b5e8383836001611d7b565b63ffffffff81166000908152600160205260408120548061083b5760405163f6ff4fb760e01b815263ffffffff84166004820152602401610952565b600061137c6113798787611e81565b90565b9050600061138a8787611e99565b90506113a3828261139e60208d018d612b25565b611eb6565b60408611156114675760006113dd6113c160608c0160408d01612fc5565b6113ce60208d018d612b25565b6113d88b8b611ec0565b611f0b565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114339086908d906000908790600401612fe2565b600060405180830381600087803b15801561144d57600080fd5b505af1158015611461573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114a060208d018d612b25565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6114d282610c08565b6001600160a01b0316836001600160a01b03161461152057826114f483610c08565b604051634342715b60e11b81526001600160a01b03928316600482015291166024820152604401610952565b610b5e82611f3a565b6060806000611582602085013560408601356115486080880188612e48565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f7592505050565b9093509050600081611595576001611598565b60025b90506115b86115aa6020870187612b25565b826106d76060890189612e48565b6004549093506001600160a01b031615611640576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb916115fd918891889101613013565b602060405180830381865afa15801561161a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163e9190613038565b505b5050915091565b61164f6124ac565b600061165e8460000151611fda565b602085015190915015611678576116788460200151612002565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116c88c61132e565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611704929190613055565b60806040518083038185885af1158015611722573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061174791906130fe565b979650505050505050565b6000828152600760205260408120546001600160a01b039081169083161561177f5761177f8184866120e4565b6001600160a01b038116156117bd5761179c600085600080611d7b565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b038516156117ec576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cca5760405163118cdaa760e01b8152336004820152602401610952565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661194f57604051630b61174360e31b81526001600160a01b0383166004820152602401610952565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b2b57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906119fe903390889087908790600401613148565b6020604051808303816000875af1925050508015611a39575060408051601f3d908101601f19168201909252611a369181019061317b565b60015b611aa2573d808015611a67576040519150601f19603f3d011682016040523d82523d6000602084013e611a6c565b606091505b508051600003611a9a57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ba57604051633250574960e11b81526001600160a01b0385166004820152602401610952565b60005b8151811015611bb557611b10828281518110611aff57611aff612e11565b602002602001015160400151611be5565b818181518110611b2257611b22612e11565b60200260200101516040015160036000848481518110611b4457611b44612e11565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611b7e57611b7e612e11565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611bac91906131e8565b50600101611ae1565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c6591906132a7565b600281015161ffff81166003146109075781604051639a6d49cd60e01b81526004016109529190612576565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611c748961132e565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611ca9929190613055565b6040805180830381865afa158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bd9190613332565b60606000611cf683612148565b60010190506000816001600160401b03811115611d1557611d15612928565b6040519080825280601f01601f191660200182016040528015611d3f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611d4957509392505050565b8080611d8f57506001600160a01b03821615155b15611e51576000611d9f846112e8565b90506001600160a01b03831615801590611dcb5750826001600160a01b0316816001600160a01b031614155b8015611dde5750611ddc8184611246565b155b15611e075760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610952565b8115611e4f5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611e906020828486612d82565b6111349161334e565b6000611ea9604060208486612d82565b8101906111349190612589565b610b5e8383612220565b6060611ecf8260408186612d82565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611f229392919061336c565b60405160208183030381529060405290509392505050565b6000611f496000836000611752565b90506001600160a01b03811661090757604051637e27328960e01b815260048101839052602401610952565b8051606090151580611fa9576040805160208101879052908101859052606001604051602081830303815290604052611fd0565b84843385604051602001611fc094939291906133b6565b6040516020818303038152906040525b9150935093915050565b6000813414611ffe576040516304fb820960e51b8152346004820152602401610952565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612062573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208691906133ea565b90506001600160a01b0381166120af576040516329b99a9560e11b815260040160405180910390fd5b6109076001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612285565b6120ef8383836122df565b610b5e576001600160a01b03831661211d57604051637e27328960e01b815260048101829052602401610952565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610952565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106121875772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106121b3576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106121d157662386f26fc10000830492506010015b6305f5e10083106121e9576305f5e100830492506008015b61271083106121fd57612710830492506004015b6064831061220f576064830492506002015b600a831061083b5760010192915050565b6001600160a01b03821661224a57604051633250574960e11b815260006004820152602401610952565b600061225883836000611752565b90506001600160a01b03811615610b5e576040516339e3563760e11b815260006004820152602401610952565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b2b908590612342565b60006001600160a01b03831615801590610cd95750826001600160a01b0316846001600160a01b0316148061231957506123198484611246565b80610cd95750506000908152600960205260409020546001600160a01b03908116911614919050565b60006123576001600160a01b038416836123a5565b9050805160001415801561237c57508080602001905181019061237a9190613038565b155b15610b5e57604051635274afe760e01b81526001600160a01b0384166004820152602401610952565b60606111348383600084600080856001600160a01b031684866040516123cb9190613407565b60006040518083038185875af1925050503d8060008114612408576040519150601f19603f3d011682016040523d82523d6000602084013e61240d565b606091505b509150915061241d868383612427565b9695505050505050565b60608261243c5761243782612483565b611134565b815115801561245357506001600160a01b0384163b155b1561247c57604051639996b31560e01b81526001600160a01b0385166004820152602401610952565b5080611134565b8051156124935780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b031681526020016124ee604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112af57600080fd5b60006020828403121561251b57600080fd5b8135611134816124f3565b60005b83811015612541578181015183820152602001612529565b50506000910152565b60008151808452612562816020860160208601612526565b601f01601f19169290920160200192915050565b602081526000611134602083018461254a565b60006020828403121561259b57600080fd5b5035919050565b6001600160a01b03811681146112af57600080fd5b600080604083850312156125ca57600080fd5b82356125d5816125a2565b946020939093013593505050565b6000606082840312156125f557600080fd5b50919050565b60008083601f84011261260d57600080fd5b5081356001600160401b0381111561262457600080fd5b60208301915083602082850101111561263c57600080fd5b9250929050565b600080600080600080600060e0888a03121561265e57600080fd5b61266889896125e3565b96506060880135955060808801356001600160401b038082111561268b57600080fd5b6126978b838c016125fb565b909750955060a08a013591506126ac826125a2565b90935060c089013590808211156126c257600080fd5b506126cf8a828b016125fb565b989b979a50959850939692959293505050565b600060c082840312156125f557600080fd5b6000806000838503608081121561270a57600080fd5b84356001600160401b0381111561272057600080fd5b61272c878288016126e2565b9450506040601f198201121561274157600080fd5b506020840191506060840135612756816125a2565b809150509250925092565b6000608082019050825182526001600160401b036020840151166020830152604083015161279c604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127b857600080fd5b83356127c3816125a2565b925060208401356127d3816125a2565b929592945050506040919091013590565b803563ffffffff811681146127f857600080fd5b919050565b6000806040838503121561281057600080fd5b6125d5836127e4565b803561ffff811681146127f857600080fd5b6000806040838503121561283e57600080fd5b612847836127e4565b915061285560208401612819565b90509250929050565b60006020828403121561287057600080fd5b8135611134816125a2565b60008060008060a0858703121561289157600080fd5b61289b86866125e3565b935060608501356001600160401b038111156128b657600080fd5b6128c2878288016125fb565b90945092505060808501356128d6816125a2565b939692955090935050565b80151581146112af57600080fd5b6000806040838503121561290257600080fd5b823561290d816125a2565b9150602083013561291d816128e1565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561296057612960612928565b60405290565b604051606081016001600160401b038111828210171561296057612960612928565b604051601f8201601f191681016001600160401b03811182821017156129b0576129b0612928565b604052919050565b60006001600160401b038211156129d1576129d1612928565b50601f01601f191660200190565b600082601f8301126129f057600080fd5b8135612a036129fe826129b8565b612988565b818152846020838601011115612a1857600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a4b57600080fd5b8435612a56816125a2565b93506020850135612a66816125a2565b92506040850135915060608501356001600160401b03811115612a8857600080fd5b612a94878288016129df565b91505092959194509250565b60008083601f840112612ab257600080fd5b5081356001600160401b03811115612ac957600080fd5b6020830191508360208260051b850101111561263c57600080fd5b60008060208385031215612af757600080fd5b82356001600160401b03811115612b0d57600080fd5b612b1985828601612aa0565b90969095509350505050565b600060208284031215612b3757600080fd5b611134826127e4565b60008060008060608587031215612b5657600080fd5b612b5f856127e4565b9350612b6d60208601612819565b925060408501356001600160401b03811115612b8857600080fd5b612b94878288016125fb565b95989497509550505050565b60008060408385031215612bb357600080fd5b82356001600160401b03811115612bc957600080fd5b612bd5858286016126e2565b925050602083013561291d816128e1565b81518152602080830151908201526040810161083b565b60008060408385031215612c1057600080fd5b8235612c1b816125a2565b9150602083013561291d816125a2565b600060608284031215612c3d57600080fd5b61113483836125e3565b600181811c90821680612c5b57607f821691505b6020821081036125f557634e487b7160e01b600052602260045260246000fd5b600060408284031215612c8d57600080fd5b612c9561293e565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cc757612cc7612928565b8360051b6020612cd8818301612988565b868152918501918181019036841115612cf057600080fd5b865b84811015612d7657803586811115612d0a5760008081fd5b88016060368290031215612d1e5760008081fd5b612d26612966565b612d2f826127e4565b8152612d3c868301612819565b8682015260408083013589811115612d545760008081fd5b612d60368286016129df565b9183019190915250845250918301918301612cf2565b50979650505050505050565b60008085851115612d9257600080fd5b83861115612d9f57600080fd5b5050820193919092039150565b60008451612dbe818460208901612526565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610cd9602083018486612dd4565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e3e57600080fd5b9190910192915050565b6000808335601e19843603018112612e5f57600080fd5b8301803591506001600160401b03821115612e7957600080fd5b60200191503681900382131561263c57600080fd5b6001600160401b03811681146112af57600080fd5b63ffffffff612eb1896127e4565b1681526020880135602082015260006040890135612ece81612e8e565b6001600160401b03811660408401525087606083015260e06080830152612ef960e083018789612dd4565b6001600160a01b03861660a084015282810360c0840152612f1b818587612dd4565b9a9950505050505050505050565b600060208284031215612f3b57600080fd5b81516001600160401b03811115612f5157600080fd5b8201601f81018413612f6257600080fd5b8051612f706129fe826129b8565b818152856020838501011115612f8557600080fd5b6110bd826020830160208601612526565b60008351612fa8818460208801612526565b835190830190612fbc818360208801612526565b01949350505050565b600060208284031215612fd757600080fd5b813561113481612e8e565b60018060a01b038516815283602082015261ffff8316604082015260806060820152600061241d608083018461254a565b604081526000613026604083018561254a565b82810360208401526110bd818561254a565b60006020828403121561304a57600080fd5b8151611134816128e1565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261308b60e084018261254a565b90506060850151603f198483030160a08501526130a8828261254a565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156130e057600080fd5b6130e861293e565b9050815181526020820151602082015292915050565b60006080828403121561311057600080fd5b613118612966565b82518152602083015161312a81612e8e565b602082015261313c84604085016130ce565b60408201529392505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061241d9083018461254a565b60006020828403121561318d57600080fd5b8151611134816124f3565b601f821115610b5e576000816000526020600020601f850160051c810160208610156131c15750805b601f850160051c820191505b818110156131e0578281556001016131cd565b505050505050565b81516001600160401b0381111561320157613201612928565b6132158161320f8454612c47565b84613198565b602080601f83116001811461324a57600084156132325750858301515b600019600386901b1c1916600185901b1785556131e0565b600085815260208120601f198616915b828110156132795788860151825594840194600190910190840161325a565b50858210156132975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561332457888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133108186018361254a565b9689019694505050908601906001016132d0565b509098975050505050505050565b60006040828403121561334457600080fd5b61113483836130ce565b8035602083101561083b57600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133a781600c850160208701612526565b91909101600c01949350505050565b848152836020820152826040820152600082516133da816060850160208701612526565b9190910160600195945050505050565b6000602082840312156133fc57600080fd5b8151611134816125a2565b60008251612e3e81846020870161252656fea2646970667358221220aeba70189cdddb64fe998fe477d63a2a7e6ea68c6a8a4a2989f18c0e50723cd764736f6c63430008160033","sourceMap":"147:222:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1561:300:40;;;;;;;;;;-1:-1:-1;1561:300:40;;;;;:::i;:::-;;:::i;:::-;;;565:14:53;;558:22;540:41;;528:2;513:18;1561:300:40;;;;;;;;2365:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3497:154::-;;;;;;;;;;-1:-1:-1;3497:154:40;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:53;;;1679:51;;1667:2;1652:18;3497:154:40;1533:203:53;3323:113:40;;;;;;;;;;-1:-1:-1;3323:113:40;;;;;:::i;:::-;;:::i;:::-;;1705:27:32;;;;;;;;;;-1:-1:-1;1705:27:32;;;;-1:-1:-1;;;;;1705:27:32;;;4368:708:5;;;;;;:::i;:::-;;:::i;1287:235:3:-;;;;;;;;;;-1:-1:-1;1287:235:3;;;843:1:6;3968:34:53;;678:1:5;4033:2:53;4018:18;;4011:43;3904:18;1287:235:3;3761:299:53;1539:31:32;;;;;;;;;;;;1569:1;1539:31;;;;;4239:6:53;4227:19;;;4209:38;;4197:2;4182:18;1539:31:32;4065:188:53;3051:701:32;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4143:578:40:-;;;;;;;;;;-1:-1:-1;4143:578:40;;;;;:::i;:::-;;:::i;1724:108:4:-;;;;;;;;;;-1:-1:-1;1724:108:4;;;;;:::i;:::-;;:::i;4787:132:40:-;;;;;;;;;;-1:-1:-1;4787:132:40;;;;;:::i;:::-;;:::i;875:93:13:-;;;;;;;;;;-1:-1:-1;956:4:13;875:93;;538::11;;;;;;;;;;-1:-1:-1;538:93:11;;;;;:::i;:::-;;:::i;7452:132:32:-;;;;;;;;;;-1:-1:-1;7452:132:32;;;;;:::i;:::-;7557:11;;;;;7534:4;7557:11;;;:5;:11;;;;;;:20;;7452:132;446:46:4;;;;;;;;;;;;;;;2185:118:40;;;;;;;;;;-1:-1:-1;2185:118:40;;;;;:::i;:::-;;:::i;7916:163:32:-;;;;;;;;;;-1:-1:-1;7916:163:32;;;;;:::i;:::-;;:::i;1920:208:40:-;;;;;;;;;;-1:-1:-1;1920:208:40;;;;;:::i;:::-;;:::i;:::-;;;7884:25:53;;;7872:2;7857:18;1920:208:40;7738:177:53;2293:101:35;;;;;;;;;;;;;:::i;3507:128:5:-;;;;;;;;;;-1:-1:-1;3507:128:5;;;;;:::i;:::-;3596:12;3507:128;;;;;;;;-1:-1:-1;;;;;8082:31:53;;;8064:50;;8052:2;8037:18;3507:128:5;7920:200:53;2013:216:5;;;;;;;;;;-1:-1:-1;2013:216:5;;;;;:::i;:::-;;:::i;1638:85:35:-;;;;;;;;;;-1:-1:-1;1684:7:35;1710:6;-1:-1:-1;;;;;1710:6:35;1638:85;;2518:93:40;;;;;;;;;;;;;:::i;1344:94:31:-;;;;;;;;;;-1:-1:-1;1403:4:31;1344:94;;3718:144:40;;;;;;;;;;-1:-1:-1;3718:144:40;;;;;:::i;:::-;;:::i;2506:145:32:-;;;;;;;;;;-1:-1:-1;2506:145:32;;;-1:-1:-1;;;9480:52:53;;2642:1:32;9563:2:53;9548:18;;9541:59;9453:18;2506:145:32;9310:296:53;1576:43:32;;;;;;;;;;;;1618:1;1576:43;;559:23:13;;;;;;;;;;-1:-1:-1;559:23:13;;;;-1:-1:-1;;;;;559:23:13;;;4985:208:40;;;;;;;;;;-1:-1:-1;4985:208:40;;;;;:::i;:::-;;:::i;1391:156:11:-;;;;;;;;;;-1:-1:-1;1391:156:11;;;;;:::i;:::-;;:::i;569:48:4:-;;;;;;;;;;-1:-1:-1;569:48:4;;;;;:::i;:::-;;;;;;;;;;;;;;3510:981:11;;;;;;;;;;-1:-1:-1;3510:981:11;;;;;:::i;:::-;;:::i;1698:1333:13:-;;;;;;:::i;:::-;;:::i;2657:388:32:-;;;;;;;;;;-1:-1:-1;2657:388:32;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2677:255:40:-;;;;;;;;;;-1:-1:-1;2677:255:40;;;;;:::i;:::-;;:::i;3252:105:4:-;;;;;;;;;;-1:-1:-1;3252:105:4;;;;;:::i;:::-;;:::i;3679:409:13:-;;;;;;:::i;:::-;;:::i;1100:139::-;;;;;;;;;;-1:-1:-1;1100:139:13;;;;;:::i;:::-;;:::i;3928:153:40:-;;;;;;;;;;-1:-1:-1;3928:153:40;;;;;:::i;:::-;;:::i;2543:215:35:-;;;;;;;;;;-1:-1:-1;2543:215:35;;;;;:::i;:::-;;:::i;2771:149:5:-;;;;;;;;;;-1:-1:-1;2771:149:5;;;;;:::i;:::-;;:::i;1561:300:40:-;1663:4;-1:-1:-1;;;;;;1698:40:40;;-1:-1:-1;;;1698:40:40;;:104;;-1:-1:-1;;;;;;;1754:48:40;;-1:-1:-1;;;1754:48:40;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:47;;;1818:36:40;1679:175;1561:300;-1:-1:-1;;1561:300:40:o;2365:89::-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:40;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:40;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:45;3394:8:40;:35::i;:::-;3323:113;;:::o;4368:708:5:-;4681:8;-1:-1:-1;;;;;4673:31:5;4694:10;4673:31;4669:68;;4713:24;;-1:-1:-1;;;4713:24:5;;4726:10;4713:24;;;1679:51:53;1652:18;;4713:24:5;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;-1:-1:-1;;;4896:40:5;;16187:10:53;16175:23;;;4896:40:5;;;16157:42:53;4921:14:5;;;;16215:18:53;;;16208:34;16130:18;;4896:40:5;15985:263:53;4833:103:5;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;3051:701:32:-;3212:34;;:::i;:::-;3262:13;;;;3258:57;;3298:17;;-1:-1:-1;;;3298:17:32;;;;;;;;;;;3258:57;3325;3332:10;3344:18;;;;3364:17;;;;3344:10;3364:17;:::i;:::-;3325:6;:57::i;:::-;3394:20;3416;3440:31;3460:10;3440:19;:31::i;:::-;3393:78;;-1:-1:-1;3393:78:32;-1:-1:-1;3588:66:32;3596:17;;;;:10;:17;:::i;:::-;3615:7;3624;3588:66;;;;;;;3633:4;3588:66;:::i;:::-;3639:14;3588:7;:66::i;:::-;3678:15;;3575:79;;-1:-1:-1;3714:10:32;;3669:76;3695:17;;;;:10;:17;:::i;:::-;3726:18;3669:76;;16187:10:53;16175:23;;;16157:42;;3726:18:32;;;;16230:2:53;16215:18;;16208:34;16130:18;3669:76:32;;;;;;;3248:504;;3051:701;;;;;:::o;4143:578:40:-;-1:-1:-1;;;;;4237:16:40;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:40;;4306:1;4276:33;;;1679:51:53;1652:18;;4276:33:40;1533:203:53;4233:87:40;4538:21;4562:34;4570:2;4574:7;735:10:45;4562:7:40;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:40;:13;-1:-1:-1;;;;;4610:21:40;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:40;;-1:-1:-1;;;;;17132:15:53;;;4654:50:40;;;17114:34:53;17164:18;;;17157:34;;;17227:15;;17207:18;;;17200:43;17049:18;;4654:50:40;16874:375:53;4606:109:40;4223:498;4143:578;;;:::o;1724:108:4:-;1531:13:35;:11;:13::i;:::-;1804:21:4::1;1813:4;1819:5;1804:8;:21::i;4787:132:40:-:0;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;538:93:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2185:118:40:-;2248:7;2274:22;2288:7;2274:13;:22::i;7916:163:32:-;1531:13:35;:11;:13::i;:::-;7999:12:32::1;:28:::0;;-1:-1:-1;;;;;;7999:28:32::1;-1:-1:-1::0;;;;;7999:28:32;::::1;::::0;;::::1;::::0;;;8042:30:::1;::::0;1679:51:53;;;8042:30:32::1;::::0;1667:2:53;1652:18;8042:30:32::1;;;;;;;;7916:163:::0;:::o;1920:208:40:-;1983:7;-1:-1:-1;;;;;2006:19:40;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:40;;2075:1;2048:30;;;1679:51:53;1652:18;;2048:30:40;1533:203:53;2002:87:40;-1:-1:-1;;;;;;2105:16:40;;;;;:9;:16;;;;;;;1920:208::o;2293:101:35:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2013:216:5:-;-1:-1:-1;;;;;2198:24:5;;2217:4;2198:24;2013:216;;;;;;;:::o;2518:93:40:-;2565:13;2597:7;2590:14;;;;;:::i;3718:144::-;3803:52;735:10:45;3836:8:40;3846;3803:18;:52::i;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;1391:156:11:-;1531:13:35;:11;:13::i;:::-;1503:37:11::1;;1523:16:::0;;1503:37:::1;:::i;:::-;:19;:37::i;3510:981::-:0;3701:21;;;3677;3701;;;:15;:21;;;;;;;;:31;;;;;;;;;;3677:55;;3653:12;;3677:21;3701:31;3677:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:8;:15;3880:1;3861:20;3857:46;;3890:13;;3883:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:20:11;;-1:-1:-1;3883:20:11;;-1:-1:-1;;;;3883:20:11;3857:46;3988:1;3964:25;;;3960:46;;3998:8;-1:-1:-1;3991:15:11;;3960:46;4153:1;4129:25;;4125:267;;4170:34;4190:13;;4170:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4170:19:11;;-1:-1:-1;;;4170:34:11:i;:::-;4353:8;4363:17;:13;4377:1;4363:13;;:17;:::i;:::-;4340:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:48;;;;;4125:267;4470:13;;4455:29;;-1:-1:-1;;;4455:29:11;;;;;;;;;:::i;1698:1333:13:-;1799:9;1794:1037;1814:19;;;1794:1037;;;1854:29;1886:8;;1895:1;1886:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1854:43;-1:-1:-1;1980:50:13;1987:20;;;;1854:43;1987:20;:::i;:::-;2009;;;;7557:11:32;;;;;7534:4;7557:11;;;:5;:11;;;;;;:20;;7452:132;1980:50:13;1975:65;;2032:8;;;1975:65;2602:4;:22;2633:12;;;;:6;2696:11;;;;2725:14;;;;2633:6;2725:14;:::i;:::-;2757:15;;;;;;;;:::i;:::-;2790:16;;;;:6;:16;:::i;:::-;2602:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:991;1794:1037;1835:3;;1794:1037;;;;2988:10;-1:-1:-1;;;;;2978:43:13;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2978:45:13;;;;;;;;;;;;:::i;:::-;2961:63;;-1:-1:-1;;;2961:63:13;;;;;;;;:::i;2657:388:32:-;-1:-1:-1;;;;;;;;;;;;;;;;;2822:13:32;;;;2818:57;;2858:17;;-1:-1:-1;;;2858:17:32;;;;;;;;;;;2818:57;2886:20;2908;2932:31;2952:10;2932:19;:31::i;:::-;2885:78;;-1:-1:-1;2885:78:32;-1:-1:-1;2980:58:32;2987:17;;;;:10;:17;:::i;:::-;3006:7;3015;3024:13;2980:6;:58::i;:::-;2973:65;2657:388;-1:-1:-1;;;;;2657:388:32:o;2677:255:40:-;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;3250:9;;;;;;;;;-1:-1:-1;3250:9:40;;;3174:92;2823:10;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;2677:255;-1:-1:-1;;;2677:255:40:o;3252:105:4:-;1531:13:35;:11;:13::i;:::-;3319:31:4::1;::::0;-1:-1:-1;;;3319:31:4;;-1:-1:-1;;;;;1697:32:53;;;3319:31:4::1;::::0;::::1;1679:51:53::0;3319:8:4::1;:20;::::0;::::1;::::0;1652:18:53;;3319:31:4::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;3679:409:13:-;3958:10;3980:4;3958:27;3954:50;;3994:10;;-1:-1:-1;;;3994:10:13;;;;;;;;;;;3954:50;4014:67;4033:7;4042:5;4049:8;;4059:9;4070:10;;4014:18;:67::i;1100:139::-;1531:13:35;:11;:13::i;:::-;1175:8:13::1;:20:::0;;-1:-1:-1;;;;;;1175:20:13::1;-1:-1:-1::0;;;;;1175:20:13;::::1;::::0;;::::1;::::0;;;1210:22:::1;::::0;1679:51:53;;;1210:22:13::1;::::0;1667:2:53;1652:18;1210:22:13::1;1533:203:53::0;3928:153:40;-1:-1:-1;;;;;4039:25:40;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;2543:215:35:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:35;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:35;;2700:1:::1;2672:31;::::0;::::1;1679:51:53::0;1652:18;;2672:31:35::1;1533:203:53::0;2623:91:35::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2771:149:5:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:5;;:37;;2771:149;-1:-1:-1;;2771:149:5:o;16138:241:40:-;16201:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:40;;16263:88;;16309:31;;-1:-1:-1;;;16309:31:40;;;;;7884:25:53;;;7857:18;;16309:31:40;7738:177:53;14418:120:40;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;2718:196:4:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;-1:-1:-1;;;2874:12:4;;23623:10:53;23611:23;;2874:12:4;;;23593:42:53;23566:18;;2874:12:4;23449:192:53;5264:817:32;5577:17;5597:36;:17;:8;;:15;:17::i;:::-;2954:2:34;2824:142;5597:36:32;5577:56;;5643:15;5661:18;:8;;:16;:18::i;:::-;5643:36;-1:-1:-1;5690:43:32;5698:9;5643:36;5718:14;;;;:7;:14;:::i;:::-;5690:7;:43::i;:::-;279:2:34;-1:-1:-1;;5744:260:32;;;5785:23;5811:80;5838:13;;;;;;;;:::i;:::-;5853:14;;;;:7;:14;:::i;:::-;5869:21;:8;;:19;:21::i;:::-;5811:26;:80::i;:::-;5905:88;;-1:-1:-1;;;5905:88:32;;5785:106;;-1:-1:-1;;;;;;5905:8:32;:20;;;;:88;;5926:9;;5937:5;;5944:1;;5785:106;;5905:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:233;5744:260;-1:-1:-1;;;;;6019:55:32;;6032:5;6019:55;6039:14;;;;:7;:14;:::i;:::-;6019:55;;;16187:10:53;16175:23;;;16157:42;;16230:2;16215:18;;16208:34;;;16130:18;6019:55:32;;;;;;;5567:514;;5264:817;;;;;;;:::o;1444:228:31:-;1562:24;1577:8;1562:14;:24::i;:::-;-1:-1:-1;;;;;1553:33:31;:5;-1:-1:-1;;;;;1553:33:31;;1549:91;;1608:5;1615:24;1630:8;1615:14;:24::i;:::-;1595:45;;-1:-1:-1;;;1595:45:31;;-1:-1:-1;;;;;24610:15:53;;;1595:45:31;;;24592:34:53;24662:15;;24642:18;;;24635:43;24527:18;;1595:45:31;24380:304:53;1549:91:31;1650:15;1656:8;1650:5;:15::i;3980:773:32:-;4085:20;;4139:15;4188:80;4211:13;;;;4226:18;;;;4246:21;;;;4211:10;4246:21;:::i;:::-;4188:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4188:22:32;;-1:-1:-1;;;4188:80:32:i;:::-;4164:104;;-1:-1:-1;4164:104:32;-1:-1:-1;4278:14:32;4164:104;4295:36;;1569:1;4295:36;;;1618:1;4295:36;4278:53;-1:-1:-1;4352:67:32;4367:17;;;;:10;:17;:::i;:::-;4386:7;4395:23;;;;:10;:23;:::i;4352:67::-;4661:12;;4342:77;;-1:-1:-1;;;;;;4661:12:32;:26;4657:89;;4707:12;;;4689:57;;-1:-1:-1;;;4689:57:32;;-1:-1:-1;;;;;4707:12:32;;;;4689:39;;:57;;4729:7;;4738;;4689:57;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4657:89;4129:624;;3980:773;;;:::o;3188:766:6:-;3389:31;;:::i;:::-;3554:20;3577:26;3588:4;:14;;;3577:10;:26::i;:::-;3617:15;;;;3554:49;;-1:-1:-1;3617:19:6;3613:53;;3638:28;3650:4;:15;;;3638:11;:28::i;:::-;3755:8;-1:-1:-1;;;;;3755:13:6;;3777:12;3809:92;;;;;;;;3825:7;3809:92;;;;;;3834:25;3851:7;3834:16;:25::i;:::-;3809:92;;;;3861:8;3809:92;;;;3871:8;3809:92;;;;3899:1;3881:4;:15;;;:19;3809:92;;;;;3919:14;3755:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3677:270;3188:766;-1:-1:-1;;;;;;;3188:766:6:o;8838:795:40:-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:40;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:40;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:40;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:40;;;9157:256;-1:-1:-1;;;;;9427:16:40;;;9423:107;;-1:-1:-1;;;;;9487:13:40;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:40;-1:-1:-1;;;;;9540:21:40;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:40:o;1796:162:35:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:35;735:10:45;1855:23:35;1851:101;;1901:40;;-1:-1:-1;;;1901:40:35;;735:10:45;1901:40:35;;;1679:51:53;1652:18;;1901:40:35;1533:203:53;2286:134:4;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;16157:42:53;;;16215:18;;16208:34;;;2393:20:4;;16130:18:53;2393:20:4;;;;;;;2286:134;;:::o;2912:187:35:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:35;;;-1:-1:-1;;;;;;3020:17:35;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;15591:312:40:-;-1:-1:-1;;;;;15698:22:40;;15694:91;;15743:31;;-1:-1:-1;;;15743:31:40;;-1:-1:-1;;;;;1697:32:53;;15743:31:40;;;1679:51:53;1652:18;;15743:31:40;1533:203:53;15694:91:40;-1:-1:-1;;;;;15794:25:40;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15794:46:40;;;;;;;;;;15855:41;;540::53;;;15855::40;;513:18:53;15855:41:40;;;;;;;15591:312;;;:::o;16918:782::-;-1:-1:-1;;;;;17034:14:40;;;:18;17030:664;;17072:71;;-1:-1:-1;;;17072:71:40;;-1:-1:-1;;;;;17072:36:40;;;;;:71;;735:10:45;;17123:4:40;;17129:7;;17138:4;;17072:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17072:71:40;;;;;;;;-1:-1:-1;;17072:71:40;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:6;:13;17398:1;17381:18;17377:293;;17430:25;;-1:-1:-1;;;17430:25:40;;-1:-1:-1;;;;;1697:32:53;;17430:25:40;;;1679:51:53;1652:18;;17430:25:40;1533:203:53;17377:293:40;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;-1:-1:-1;;;;;;17190:51:40;;-1:-1:-1;;;17190:51:40;17186:130;;17272:25;;-1:-1:-1;;;17272:25:40;;-1:-1:-1;;;;;1697:32:53;;17272:25:40;;;1679:51:53;1652:18;;17272:25:40;1533:203:53;2237:514:11;2345:9;2340:354;2364:16;:23;2360:1;:27;2340:354;;;2522:48;2542:16;2559:1;2542:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2522:19;:48::i;:::-;2656:16;2673:1;2656:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:15;:40;2600:16;2617:1;2600:19;;;;;;;;:::i;:::-;;;;;;;:23;;;2584:40;;;;;;;;;;;;;;;:69;2625:16;2642:1;2625:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:69;;;;;;;;;;;;;;;:99;;;;;;:::i;:::-;-1:-1:-1;2389:3:11;;2340:354;;;;2709:35;2727:16;2709:35;;;;;;:::i;4631:264::-;4801:1;4787:16;;4781:23;4827:28;;;463:1;4827:28;4823:65;;4879:8;4864:24;;-1:-1:-1;;;4864:24:11;;;;;;;;:::i;2038:391:6:-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:6;-1:-1:-1;;;;;2259:14:6;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;637:698:46:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;-1:-1:-1;;;;;817:18:46;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:46;-1:-1:-1;794:41:46;-1:-1:-1;955:28:46;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:46;-1:-1:-1;;;1175:2:46;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:46;1010:282;1256:21;-1:-1:-1;1312:6:46;637:698;-1:-1:-1;;;637:698:46:o;14720:662:40:-;14880:9;:31;;;-1:-1:-1;;;;;;14893:18:40;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;-1:-1:-1;;;;;;15093:18:40;;;;;;:35;;;15124:4;-1:-1:-1;;;;;15115:13:40;:5;-1:-1:-1;;;;;15115:13:40;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15189:27;;-1:-1:-1;;;15189:27:40;;-1:-1:-1;;;;;1697:32:53;;15189:27:40;;;1679:51:53;1652:18;;15189:27:40;1533:203:53;15089:142:40;15249:9;15245:81;;;15303:7;15299:2;-1:-1:-1;;;;;15283:28:40;15292:5;-1:-1:-1;;;;;15283:28:40;;;;;;;;;;;15245:81;14913:423;14876:460;-1:-1:-1;;15346:24:40;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15346:29:40;-1:-1:-1;;;;;15346:29:40;;;;;;;;;;14720:662::o;1221:144:34:-;1281:20;1336:21;230:2;1281:20;1336:4;;:21;:::i;:::-;1328:30;;;:::i;1530:176::-;1591:21;1651:36;279:2;230;1651:4;;:36;:::i;:::-;1640:59;;;;;;;:::i;1678:131:31:-;1782:20;1788:3;1793:8;1782:5;:20::i;2190:153:34:-;2254:29;2314:22;:4;279:2;2314:4;;:22;:::i;:::-;2295:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2295:41:34;;2190:153;-1:-1:-1;;;;;;2190:153:34:o;675:252:30:-;832:20;891:6;899:7;908:11;874:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;864:56;;675:252;;;;;:::o;11462:227:40:-;11513:21;11537:40;11553:1;11557:7;11574:1;11537:7;:40::i;:::-;11513:64;-1:-1:-1;;;;;;11591:27:40;;11587:96;;11641:31;;-1:-1:-1;;;11641:31:40;;;;;7884:25:53;;;7857:18;;11641:31:40;7738:177:53;657:394:34;849:18;;787:20;;849:22;;;891:153;;1009:35;;;;;;32465:19:53;;;32500:12;;;32493:28;;;32537:12;;1009:35:34;;;;;;;;;;;;891:153;;;933:7;942:8;969:10;982:11;916:78;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;891:153;881:163;;657:394;;;;;;:::o;4650:191:6:-;4716:17;4762:10;4749:9;:23;4745:62;;4781:26;;-1:-1:-1;;;4781:26:6;;4797:9;4781:26;;;7884:25:53;7857:18;;4781:26:6;7738:177:53;4745:62:6;-1:-1:-1;4824:10:6;4650:191::o;5218:410::-;5371:15;5389:8;-1:-1:-1;;;;;5389:16:6;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;;;;;;5421:21:6;;5417:54;;5451:20;;-1:-1:-1;;;5451:20:6;;;;;;;;;;;5417:54;5545:76;-1:-1:-1;;;;;5545:32:6;;5578:10;5598:8;5609:11;5545:32;:76::i;7082:368:40:-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:40;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:40;;;;;7884:25:53;;;7857:18;;7298:31:40;7738:177:53;7248:186:40;7375:44;;-1:-1:-1;;;7375:44:40;;-1:-1:-1;;;;;33502:32:53;;7375:44:40;;;33484:51:53;33551:18;;;33544:34;;;33457:18;;7375:44:40;33310:274:53;12214:916:49;12267:7;;-1:-1:-1;;;12342:17:49;;12338:103;;-1:-1:-1;;;12379:17:49;;;-1:-1:-1;12424:2:49;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:49;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:49;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:49;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:49;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:49;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:49:o;9955:327:40:-;-1:-1:-1;;;;;10022:16:40;;10018:87;;10061:33;;-1:-1:-1;;;10061:33:40;;10091:1;10061:33;;;1679:51:53;1652:18;;10061:33:40;1533:203:53;10018:87:40;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;-1:-1:-1;;;;;;10184:27:40;;;10180:96;;10234:31;;-1:-1:-1;;;10234:31:40;;10262:1;10234:31;;;1679:51:53;1652:18;;10234:31:40;1533:203:53;1702:188:39;1829:53;;;-1:-1:-1;;;;;33847:15:53;;;1829:53:39;;;33829:34:53;33899:15;;33879:18;;;33872:43;33931:18;;;;33924:34;;;1829:53:39;;;;;;;;;;33764:18:53;;;;1829:53:39;;;;;;;;-1:-1:-1;;;;;1829:53:39;-1:-1:-1;;;1829:53:39;;;1802:81;;1822:5;;1802:19;:81::i;6376:272:40:-;6479:4;-1:-1:-1;;;;;6514:21:40;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:40;:5;-1:-1:-1;;;;;6552:16:40;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;;6008:7:40;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:40;;;6608:32;;;;6495:146;-1:-1:-1;6376:272:40:o;4059:629:39:-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:39;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:39;;-1:-1:-1;;;;;1697:32:53;;4631:40:39;;;1679:51:53;1652:18;;4631:40:39;1533:203:53;2705:151:44;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:44;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:44:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:44;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:44;;-1:-1:-1;;;;;1697:32:53;;5121:24:44;;;1679:51:53;1652:18;;5121:24:44;1533:203:53;5041:119:44;-1:-1:-1;5180:10:44;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:44;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:53:-;-1:-1:-1;;;;;;88:32:53;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:53;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:53;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:53:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:53;;1348:180;-1:-1:-1;1348:180:53:o;1741:131::-;-1:-1:-1;;;;;1816:31:53;;1806:42;;1796:70;;1862:1;1859;1852:12;1877:315;1945:6;1953;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2061:9;2048:23;2080:31;2105:5;2080:31;:::i;:::-;2130:5;2182:2;2167:18;;;;2154:32;;-1:-1:-1;;;1877:315:53:o;2197:154::-;2256:5;2301:2;2292:6;2287:3;2283:16;2279:25;2276:45;;;2317:1;2314;2307:12;2276:45;-1:-1:-1;2339:6:53;2197:154;-1:-1:-1;2197:154:53:o;2356:347::-;2407:8;2417:6;2471:3;2464:4;2456:6;2452:17;2448:27;2438:55;;2489:1;2486;2479:12;2438:55;-1:-1:-1;2512:20:53;;-1:-1:-1;;;;;2544:30:53;;2541:50;;;2587:1;2584;2577:12;2541:50;2624:4;2616:6;2612:17;2600:29;;2676:3;2669:4;2660:6;2652;2648:19;2644:30;2641:39;2638:59;;;2693:1;2690;2683:12;2638:59;2356:347;;;;;:::o;2708:1048::-;2851:6;2859;2867;2875;2883;2891;2899;2952:3;2940:9;2931:7;2927:23;2923:33;2920:53;;;2969:1;2966;2959:12;2920:53;2992;3037:7;3026:9;2992:53;:::i;:::-;2982:63;;3092:2;3081:9;3077:18;3064:32;3054:42;;3147:3;3136:9;3132:19;3119:33;-1:-1:-1;;;;;3212:2:53;3204:6;3201:14;3198:34;;;3228:1;3225;3218:12;3198:34;3267:58;3317:7;3308:6;3297:9;3293:22;3267:58;:::i;:::-;3344:8;;-1:-1:-1;3241:84:53;-1:-1:-1;3429:3:53;3414:19;;3401:33;;-1:-1:-1;3443:31:53;3401:33;3443:31;:::i;:::-;3493:5;;-1:-1:-1;3551:3:53;3536:19;;3523:33;;3568:16;;;3565:36;;;3597:1;3594;3587:12;3565:36;;3636:60;3688:7;3677:8;3666:9;3662:24;3636:60;:::i;:::-;2708:1048;;;;-1:-1:-1;2708:1048:53;;-1:-1:-1;2708:1048:53;;;;3610:86;;-1:-1:-1;;;2708:1048:53:o;4258:158::-;4320:5;4365:3;4356:6;4351:3;4347:16;4343:26;4340:46;;;4382:1;4379;4372:12;4421:657;4559:6;4567;4575;4619:9;4610:7;4606:23;4649:3;4645:2;4641:12;4638:32;;;4666:1;4663;4656:12;4638:32;4706:9;4693:23;-1:-1:-1;;;;;4731:6:53;4728:30;4725:50;;;4771:1;4768;4761:12;4725:50;4794:69;4855:7;4846:6;4835:9;4831:22;4794:69;:::i;:::-;4784:79;-1:-1:-1;;4897:2:53;-1:-1:-1;;4879:16:53;;4875:25;4872:45;;;4913:1;4910;4903:12;4872:45;;4951:2;4940:9;4936:18;4926:28;;5004:2;4993:9;4989:18;4976:32;5017:31;5042:5;5017:31;:::i;:::-;5067:5;5057:15;;;4421:657;;;;;:::o;5241:469::-;5401:4;5443:3;5432:9;5428:19;5420:27;;5480:6;5474:13;5463:9;5456:32;-1:-1:-1;;;;;5548:4:53;5540:6;5536:17;5530:24;5526:49;5519:4;5508:9;5504:20;5497:79;5623:4;5615:6;5611:17;5605:24;5638:66;5698:4;5687:9;5683:20;5669:12;5161;;5149:25;;5223:4;5212:16;;;5206:23;5190:14;;5183:47;5083:153;5638:66;;5241:469;;;;:::o;5715:456::-;5792:6;5800;5808;5861:2;5849:9;5840:7;5836:23;5832:32;5829:52;;;5877:1;5874;5867:12;5829:52;5916:9;5903:23;5935:31;5960:5;5935:31;:::i;:::-;5985:5;-1:-1:-1;6042:2:53;6027:18;;6014:32;6055:33;6014:32;6055:33;:::i;:::-;5715:456;;6107:7;;-1:-1:-1;;;6161:2:53;6146:18;;;;6133:32;;5715:456::o;6176:163::-;6243:20;;6303:10;6292:22;;6282:33;;6272:61;;6329:1;6326;6319:12;6272:61;6176:163;;;:::o;6344:252::-;6411:6;6419;6472:2;6460:9;6451:7;6447:23;6443:32;6440:52;;;6488:1;6485;6478:12;6440:52;6511:28;6529:9;6511:28;:::i;6601:159::-;6668:20;;6728:6;6717:18;;6707:29;;6697:57;;6750:1;6747;6740:12;6765:256;6831:6;6839;6892:2;6880:9;6871:7;6867:23;6863:32;6860:52;;;6908:1;6905;6898:12;6860:52;6931:28;6949:9;6931:28;:::i;:::-;6921:38;;6978:37;7011:2;7000:9;6996:18;6978:37;:::i;:::-;6968:47;;6765:256;;;;;:::o;7486:247::-;7545:6;7598:2;7586:9;7577:7;7573:23;7569:32;7566:52;;;7614:1;7611;7604:12;7566:52;7653:9;7640:23;7672:31;7697:5;7672:31;:::i;8125:670::-;8239:6;8247;8255;8263;8316:3;8304:9;8295:7;8291:23;8287:33;8284:53;;;8333:1;8330;8323:12;8284:53;8356;8401:7;8390:9;8356:53;:::i;:::-;8346:63;;8460:2;8449:9;8445:18;8432:32;-1:-1:-1;;;;;8479:6:53;8476:30;8473:50;;;8519:1;8516;8509:12;8473:50;8558:58;8608:7;8599:6;8588:9;8584:22;8558:58;:::i;:::-;8635:8;;-1:-1:-1;8532:84:53;-1:-1:-1;;8720:3:53;8705:19;;8692:33;8734:31;8692:33;8734:31;:::i;:::-;8125:670;;;;-1:-1:-1;8125:670:53;;-1:-1:-1;;8125:670:53:o;8800:118::-;8886:5;8879:13;8872:21;8865:5;8862:32;8852:60;;8908:1;8905;8898:12;8923:382;8988:6;8996;9049:2;9037:9;9028:7;9024:23;9020:32;9017:52;;;9065:1;9062;9055:12;9017:52;9104:9;9091:23;9123:31;9148:5;9123:31;:::i;:::-;9173:5;-1:-1:-1;9230:2:53;9215:18;;9202:32;9243:30;9202:32;9243:30;:::i;:::-;9292:7;9282:17;;;8923:382;;;;;:::o;9611:127::-;9672:10;9667:3;9663:20;9660:1;9653:31;9703:4;9700:1;9693:15;9727:4;9724:1;9717:15;9743:251;9815:2;9809:9;;;9845:15;;-1:-1:-1;;;;;9875:34:53;;9911:22;;;9872:62;9869:88;;;9937:18;;:::i;:::-;9973:2;9966:22;9743:251;:::o;9999:253::-;10071:2;10065:9;10113:4;10101:17;;-1:-1:-1;;;;;10133:34:53;;10169:22;;;10130:62;10127:88;;;10195:18;;:::i;10257:275::-;10328:2;10322:9;10393:2;10374:13;;-1:-1:-1;;10370:27:53;10358:40;;-1:-1:-1;;;;;10413:34:53;;10449:22;;;10410:62;10407:88;;;10475:18;;:::i;:::-;10511:2;10504:22;10257:275;;-1:-1:-1;10257:275:53:o;10537:186::-;10585:4;-1:-1:-1;;;;;10610:6:53;10607:30;10604:56;;;10640:18;;:::i;:::-;-1:-1:-1;10706:2:53;10685:15;-1:-1:-1;;10681:29:53;10712:4;10677:40;;10537:186::o;10728:462::-;10770:5;10823:3;10816:4;10808:6;10804:17;10800:27;10790:55;;10841:1;10838;10831:12;10790:55;10877:6;10864:20;10908:48;10924:31;10952:2;10924:31;:::i;:::-;10908:48;:::i;:::-;10981:2;10972:7;10965:19;11027:3;11020:4;11015:2;11007:6;11003:15;10999:26;10996:35;10993:55;;;11044:1;11041;11034:12;10993:55;11109:2;11102:4;11094:6;11090:17;11083:4;11074:7;11070:18;11057:55;11157:1;11132:16;;;11150:4;11128:27;11121:38;;;;11136:7;10728:462;-1:-1:-1;;;10728:462:53:o;11195:665::-;11290:6;11298;11306;11314;11367:3;11355:9;11346:7;11342:23;11338:33;11335:53;;;11384:1;11381;11374:12;11335:53;11423:9;11410:23;11442:31;11467:5;11442:31;:::i;:::-;11492:5;-1:-1:-1;11549:2:53;11534:18;;11521:32;11562:33;11521:32;11562:33;:::i;:::-;11614:7;-1:-1:-1;11668:2:53;11653:18;;11640:32;;-1:-1:-1;11723:2:53;11708:18;;11695:32;-1:-1:-1;;;;;11739:30:53;;11736:50;;;11782:1;11779;11772:12;11736:50;11805:49;11846:7;11837:6;11826:9;11822:22;11805:49;:::i;:::-;11795:59;;;11195:665;;;;;;;:::o;11865:395::-;11956:8;11966:6;12020:3;12013:4;12005:6;12001:17;11997:27;11987:55;;12038:1;12035;12028:12;11987:55;-1:-1:-1;12061:20:53;;-1:-1:-1;;;;;12093:30:53;;12090:50;;;12136:1;12133;12126:12;12090:50;12173:4;12165:6;12161:17;12149:29;;12233:3;12226:4;12216:6;12213:1;12209:14;12201:6;12197:27;12193:38;12190:47;12187:67;;;12250:1;12247;12240:12;12265:504;12390:6;12398;12451:2;12439:9;12430:7;12426:23;12422:32;12419:52;;;12467:1;12464;12457:12;12419:52;12507:9;12494:23;-1:-1:-1;;;;;12532:6:53;12529:30;12526:50;;;12572:1;12569;12562:12;12526:50;12611:98;12701:7;12692:6;12681:9;12677:22;12611:98;:::i;:::-;12728:8;;12585:124;;-1:-1:-1;12265:504:53;-1:-1:-1;;;;12265:504:53:o;12774:184::-;12832:6;12885:2;12873:9;12864:7;12860:23;12856:32;12853:52;;;12901:1;12898;12891:12;12853:52;12924:28;12942:9;12924:28;:::i;13145:553::-;13231:6;13239;13247;13255;13308:2;13296:9;13287:7;13283:23;13279:32;13276:52;;;13324:1;13321;13314:12;13276:52;13347:28;13365:9;13347:28;:::i;:::-;13337:38;;13394:37;13427:2;13416:9;13412:18;13394:37;:::i;:::-;13384:47;;13482:2;13471:9;13467:18;13454:32;-1:-1:-1;;;;;13501:6:53;13498:30;13495:50;;;13541:1;13538;13531:12;13495:50;13580:58;13630:7;13621:6;13610:9;13606:22;13580:58;:::i;:::-;13145:553;;;;-1:-1:-1;13657:8:53;-1:-1:-1;;;;13145:553:53:o;14206:489::-;14300:6;14308;14361:2;14349:9;14340:7;14336:23;14332:32;14329:52;;;14377:1;14374;14367:12;14329:52;14417:9;14404:23;-1:-1:-1;;;;;14442:6:53;14439:30;14436:50;;;14482:1;14479;14472:12;14436:50;14505:69;14566:7;14557:6;14546:9;14542:22;14505:69;:::i;:::-;14495:79;;;14624:2;14613:9;14609:18;14596:32;14637:28;14659:5;14637:28;:::i;14700:261::-;5161:12;;5149:25;;5223:4;5212:16;;;5206:23;5190:14;;;5183:47;14894:2;14879:18;;14906:49;5083:153;14966:388;15034:6;15042;15095:2;15083:9;15074:7;15070:23;15066:32;15063:52;;;15111:1;15108;15101:12;15063:52;15150:9;15137:23;15169:31;15194:5;15169:31;:::i;:::-;15219:5;-1:-1:-1;15276:2:53;15261:18;;15248:32;15289:33;15248:32;15289:33;:::i;15359:236::-;15444:6;15497:2;15485:9;15476:7;15472:23;15468:32;15465:52;;;15513:1;15510;15503:12;15465:52;15536:53;15581:7;15570:9;15536:53;:::i;15600:380::-;15679:1;15675:12;;;;15722;;;15743:61;;15797:4;15789:6;15785:17;15775:27;;15743:61;15850:2;15842:6;15839:14;15819:18;15816:38;15813:161;;15896:10;15891:3;15887:20;15884:1;15877:31;15931:4;15928:1;15921:15;15959:4;15956:1;15949:15;16253:348;16342:6;16395:2;16383:9;16374:7;16370:23;16366:32;16363:52;;;16411:1;16408;16401:12;16363:52;16437:22;;:::i;:::-;16495:9;16482:23;16475:5;16468:38;16566:2;16555:9;16551:18;16538:32;16533:2;16526:5;16522:14;16515:56;16590:5;16580:15;;;16253:348;;;;:::o;17254:1575::-;17446:9;-1:-1:-1;;;;;17521:2:53;17513:6;17510:14;17507:40;;;17527:18;;:::i;:::-;17573:6;17570:1;17566:14;17599:4;17623:28;17647:2;17643;17639:11;17623:28;:::i;:::-;17685:19;;;17755:14;;;;17720:12;;;;17792:14;17781:26;;17778:46;;;17820:1;17817;17810:12;17778:46;17844:5;17858:938;17874:6;17869:3;17866:15;17858:938;;;17960:3;17947:17;17996:2;17983:11;17980:19;17977:109;;;18040:1;18069:2;18065;18058:14;17977:109;18109:23;;18177:4;18156:14;18152:23;;;18148:34;18145:124;;;18223:1;18252:2;18248;18241:14;18145:124;18297:22;;:::i;:::-;18348:21;18366:2;18348:21;:::i;:::-;18339:7;18332:38;18408:30;18434:2;18430;18426:11;18408:30;:::i;:::-;18403:2;18394:7;18390:16;18383:56;18462:2;18512;18508;18504:11;18491:25;18543:2;18535:6;18532:14;18529:104;;;18587:1;18616:2;18612;18605:14;18529:104;18671:49;18705:14;18696:6;18692:2;18688:15;18671:49;:::i;:::-;18653:16;;;18646:75;;;;-1:-1:-1;18734:20:53;;-1:-1:-1;18774:12:53;;;;17891;;17858:938;;;-1:-1:-1;18818:5:53;17254:1575;-1:-1:-1;;;;;;;17254:1575:53:o;18834:331::-;18939:9;18950;18992:8;18980:10;18977:24;18974:44;;;19014:1;19011;19004:12;18974:44;19043:6;19033:8;19030:20;19027:40;;;19063:1;19060;19053:12;19027:40;-1:-1:-1;;19089:23:53;;;19134:25;;;;;-1:-1:-1;18834:331:53:o;19170:476::-;19361:3;19399:6;19393:13;19415:66;19474:6;19469:3;19462:4;19454:6;19450:17;19415:66;:::i;:::-;19503:16;;19556:6;19548;19503:16;19528:35;19620:1;19582:18;;19609:13;;;-1:-1:-1;19582:18:53;;19170:476;-1:-1:-1;;;19170:476:53:o;19651:266::-;19739:6;19734:3;19727:19;19791:6;19784:5;19777:4;19772:3;19768:14;19755:43;-1:-1:-1;19843:1:53;19818:16;;;19836:4;19814:27;;;19807:38;;;;19899:2;19878:15;;;-1:-1:-1;;19874:29:53;19865:39;;;19861:50;;19651:266::o;19922:244::-;20079:2;20068:9;20061:21;20042:4;20099:61;20156:2;20145:9;20141:18;20133:6;20125;20099:61;:::i;20171:127::-;20232:10;20227:3;20223:20;20220:1;20213:31;20263:4;20260:1;20253:15;20287:4;20284:1;20277:15;20303:331;20402:4;20460:11;20447:25;20554:3;20550:8;20539;20523:14;20519:29;20515:44;20495:18;20491:69;20481:97;;20574:1;20571;20564:12;20481:97;20595:33;;;;;20303:331;-1:-1:-1;;20303:331:53:o;20639:521::-;20716:4;20722:6;20782:11;20769:25;20876:2;20872:7;20861:8;20845:14;20841:29;20837:43;20817:18;20813:68;20803:96;;20895:1;20892;20885:12;20803:96;20922:33;;20974:20;;;-1:-1:-1;;;;;;21006:30:53;;21003:50;;;21049:1;21046;21039:12;21003:50;21082:4;21070:17;;-1:-1:-1;21113:14:53;21109:27;;;21099:38;;21096:58;;;21150:1;21147;21140:12;21165:129;-1:-1:-1;;;;;21243:5:53;21239:30;21232:5;21229:41;21219:69;;21284:1;21281;21274:12;21299:992;21677:10;21650:25;21668:6;21650:25;:::i;:::-;21646:42;21635:9;21628:61;21752:4;21744:6;21740:17;21727:31;21720:4;21709:9;21705:20;21698:61;21609:4;21806;21798:6;21794:17;21781:31;21821:30;21845:5;21821:30;:::i;:::-;-1:-1:-1;;;;;21893:5:53;21889:30;21882:4;21871:9;21867:20;21860:60;;21956:6;21951:2;21940:9;21936:18;21929:34;22000:3;21994;21983:9;21979:19;21972:32;22027:62;22084:3;22073:9;22069:19;22061:6;22053;22027:62;:::i;:::-;-1:-1:-1;;;;;22126:32:53;;22146:3;22105:19;;22098:61;22196:22;;;22190:3;22175:19;;22168:51;22236:49;22200:6;22270;22262;22236:49;:::i;:::-;22228:57;21299:992;-1:-1:-1;;;;;;;;;;21299:992:53:o;22296:647::-;22375:6;22428:2;22416:9;22407:7;22403:23;22399:32;22396:52;;;22444:1;22441;22434:12;22396:52;22477:9;22471:16;-1:-1:-1;;;;;22502:6:53;22499:30;22496:50;;;22542:1;22539;22532:12;22496:50;22565:22;;22618:4;22610:13;;22606:27;-1:-1:-1;22596:55:53;;22647:1;22644;22637:12;22596:55;22676:2;22670:9;22701:48;22717:31;22745:2;22717:31;:::i;22701:48::-;22772:2;22765:5;22758:17;22812:7;22807:2;22802;22798;22794:11;22790:20;22787:33;22784:53;;;22833:1;22830;22823:12;22784:53;22846:67;22910:2;22905;22898:5;22894:14;22889:2;22885;22881:11;22846:67;:::i;22948:496::-;23127:3;23165:6;23159:13;23181:66;23240:6;23235:3;23228:4;23220:6;23216:17;23181:66;:::i;:::-;23310:13;;23269:16;;;;23332:70;23310:13;23269:16;23379:4;23367:17;;23332:70;:::i;:::-;23418:20;;22948:496;-1:-1:-1;;;;22948:496:53:o;23646:245::-;23704:6;23757:2;23745:9;23736:7;23732:23;23728:32;23725:52;;;23773:1;23770;23763:12;23725:52;23812:9;23799:23;23831:30;23855:5;23831:30;:::i;23896:479::-;24163:1;24159;24154:3;24150:11;24146:19;24138:6;24134:32;24123:9;24116:51;24203:6;24198:2;24187:9;24183:18;24176:34;24258:6;24250;24246:19;24241:2;24230:9;24226:18;24219:47;24302:3;24297:2;24286:9;24282:18;24275:31;24097:4;24323:46;24364:3;24353:9;24349:19;24341:6;24323:46;:::i;24689:379::-;24882:2;24871:9;24864:21;24845:4;24908:45;24949:2;24938:9;24934:18;24926:6;24908:45;:::i;:::-;25001:9;24993:6;24989:22;24984:2;24973:9;24969:18;24962:50;25029:33;25055:6;25047;25029:33;:::i;25073:245::-;25140:6;25193:2;25181:9;25172:7;25168:23;25164:32;25161:52;;;25209:1;25206;25199:12;25161:52;25241:9;25235:16;25260:28;25282:5;25260:28;:::i;25323:891::-;25546:2;25535:9;25528:21;25604:10;25595:6;25589:13;25585:30;25580:2;25569:9;25565:18;25558:58;25670:4;25662:6;25658:17;25652:24;25647:2;25636:9;25632:18;25625:52;25509:4;25724:2;25716:6;25712:15;25706:22;25765:4;25759:3;25748:9;25744:19;25737:33;25793:52;25840:3;25829:9;25825:19;25811:12;25793:52;:::i;:::-;25779:66;;25894:2;25886:6;25882:15;25876:22;25968:2;25964:7;25952:9;25944:6;25940:22;25936:36;25929:4;25918:9;25914:20;25907:66;25996:41;26030:6;26014:14;25996:41;:::i;:::-;26106:3;26094:16;;;;26088:23;26081:31;26074:39;26068:3;26053:19;;26046:68;-1:-1:-1;;;;;;;;26175:32:53;;;;26168:4;26153:20;;;26146:62;25982:55;25323:891::o;26219:284::-;26289:5;26337:4;26325:9;26320:3;26316:19;26312:30;26309:50;;;26355:1;26352;26345:12;26309:50;26377:22;;:::i;:::-;26368:31;;26428:9;26422:16;26415:5;26408:31;26492:2;26481:9;26477:18;26471:25;26466:2;26459:5;26455:14;26448:49;26219:284;;;;:::o;26508:525::-;26612:6;26665:3;26653:9;26644:7;26640:23;26636:33;26633:53;;;26682:1;26679;26672:12;26633:53;26708:22;;:::i;:::-;26759:9;26753:16;26746:5;26739:31;26815:2;26804:9;26800:18;26794:25;26828:32;26852:7;26828:32;:::i;:::-;26887:2;26876:14;;26869:31;26932:70;26994:7;26989:2;26974:18;;26932:70;:::i;:::-;26927:2;26916:14;;26909:94;26920:5;26508:525;-1:-1:-1;;;26508:525:53:o;27038:489::-;-1:-1:-1;;;;;27307:15:53;;;27289:34;;27359:15;;27354:2;27339:18;;27332:43;27406:2;27391:18;;27384:34;;;27454:3;27449:2;27434:18;;27427:31;;;27232:4;;27475:46;;27501:19;;27493:6;27475:46;:::i;27532:249::-;27601:6;27654:2;27642:9;27633:7;27629:23;27625:32;27622:52;;;27670:1;27667;27660:12;27622:52;27702:9;27696:16;27721:30;27745:5;27721:30;:::i;27911:542::-;28012:2;28007:3;28004:11;28001:446;;;28048:1;28072:5;28069:1;28062:16;28116:4;28113:1;28103:18;28186:2;28174:10;28170:19;28167:1;28163:27;28157:4;28153:38;28222:4;28210:10;28207:20;28204:47;;;-1:-1:-1;28245:4:53;28204:47;28300:2;28295:3;28291:12;28288:1;28284:20;28278:4;28274:31;28264:41;;28355:82;28373:2;28366:5;28363:13;28355:82;;;28418:17;;;28399:1;28388:13;28355:82;;;28359:3;;;27911:542;;;:::o;28629:1341::-;28753:3;28747:10;-1:-1:-1;;;;;28772:6:53;28769:30;28766:56;;;28802:18;;:::i;:::-;28831:96;28920:6;28880:38;28912:4;28906:11;28880:38;:::i;:::-;28874:4;28831:96;:::i;:::-;28982:4;;29039:2;29028:14;;29056:1;29051:662;;;;29757:1;29774:6;29771:89;;;-1:-1:-1;29826:19:53;;;29820:26;29771:89;-1:-1:-1;;28586:1:53;28582:11;;;28578:24;28574:29;28564:40;28610:1;28606:11;;;28561:57;29873:81;;29021:943;;29051:662;27858:1;27851:14;;;27895:4;27882:18;;-1:-1:-1;;29087:20:53;;;29204:236;29218:7;29215:1;29212:14;29204:236;;;29307:19;;;29301:26;29286:42;;29399:27;;;;29367:1;29355:14;;;;29234:19;;29204:236;;;29208:3;29468:6;29459:7;29456:19;29453:201;;;29529:19;;;29523:26;-1:-1:-1;;29612:1:53;29608:14;;;29624:3;29604:24;29600:37;29596:42;29581:58;29566:74;;29453:201;-1:-1:-1;;;;;29700:1:53;29684:14;;;29680:22;29667:36;;-1:-1:-1;28629:1341:53:o;29975:1164::-;30191:4;30220:2;30260;30249:9;30245:18;30290:2;30279:9;30272:21;30313:6;30348;30342:13;30379:6;30371;30364:22;30405:2;30395:12;;30438:2;30427:9;30423:18;30416:25;;30500:2;30490:6;30487:1;30483:14;30472:9;30468:30;30464:39;30538:2;30530:6;30526:15;30559:1;30569:541;30583:6;30580:1;30577:13;30569:541;;;30648:22;;;-1:-1:-1;;30644:36:53;30632:49;;30704:13;;30776:9;;30787:10;30772:26;30757:42;;30846:11;;;30840:18;30860:6;30836:31;30819:15;;;30812:56;30907:11;;30901:18;30740:4;30939:15;;;30932:27;;;30982:48;31014:15;;;30901:18;30982:48;:::i;:::-;31088:12;;;;30972:58;-1:-1:-1;;;31053:15:53;;;;30605:1;30598:9;30569:541;;;-1:-1:-1;31127:6:53;;29975:1164;-1:-1:-1;;;;;;;;29975:1164:53:o;31144:259::-;31244:6;31297:2;31285:9;31276:7;31272:23;31268:32;31265:52;;;31313:1;31310;31303:12;31265:52;31336:61;31389:7;31378:9;31336:61;:::i;31540:255::-;31660:19;;31699:2;31691:11;;31688:101;;;-1:-1:-1;;31760:2:53;31756:12;;;31753:1;31749:20;31745:33;31734:45;31540:255;;;;:::o;31800:503::-;32037:3;32015:16;;;-1:-1:-1;;;;;;32011:51:53;31999:64;;32118:3;32096:16;;;-1:-1:-1;;;;;;32092:43:53;32088:1;32079:11;;32072:64;32159:13;;-1:-1:-1;;32181:75:53;32159:13;32244:2;32235:12;;32228:4;32216:17;;32181:75;:::i;:::-;32276:16;;;;32294:2;32272:25;;31800:503;-1:-1:-1;;;;31800:503:53:o;32560:489::-;32803:6;32798:3;32791:19;32840:6;32835:2;32830:3;32826:12;32819:28;32877:6;32872:2;32867:3;32863:12;32856:28;32773:3;32913:6;32907:13;32929:73;32995:6;32990:2;32985:3;32981:12;32976:2;32968:6;32964:15;32929:73;:::i;:::-;33022:16;;;;33040:2;33018:25;;32560:489;-1:-1:-1;;;;;32560:489:53:o;33054:251::-;33124:6;33177:2;33165:9;33156:7;33152:23;33148:32;33145:52;;;33193:1;33190;33183:12;33145:52;33225:9;33219:16;33244:31;33269:5;33244:31;:::i;33969:287::-;34098:3;34136:6;34130:13;34152:66;34211:6;34206:3;34199:4;34191:6;34187:17;34152:66;:::i","linkReferences":{},"immutableReferences":{"598":[{"start":1163,"length":32},{"start":2317,"length":32},{"start":4450,"length":32},{"start":5111,"length":32},{"start":5754,"length":32},{"start":7207,"length":32},{"start":8198,"length":32},{"start":8383,"length":32}]}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","name()":"06fdde03","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setApprovalForAll(address,bool)":"a22cb465","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","token()":"fc0c546a","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"In the case of ONFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the underlying ERC721 implementation (ie. this contract).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MyONFT721.sol\":\"MyONFT721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/MyONFT721.sol\":{\"keccak256\":\"0x3549a204810fa418d927e6e7425fd95b63907766d5e8717958f9fa317ef64dd1\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c73af8c4ff454af2293c01d0df026b2ca624f63259b64759254cc38809e9385f\",\"dweb:/ipfs/QmRPx7XGqQh4dtYXeAARzCjPUkEg2YKmNmDdqsV1gPppcp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol\":{\"keccak256\":\"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4\",\"dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"In the case of ONFT where the contract IS the token, approval is NOT required.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"name()":{"details":"See {IERC721Metadata-name}."},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the ONFT721 contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the underlying ERC721 implementation (ie. this contract)."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/MyONFT721.sol":"MyONFT721"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/MyONFT721.sol":{"keccak256":"0x3549a204810fa418d927e6e7425fd95b63907766d5e8717958f9fa317ef64dd1","urls":["bzz-raw://c73af8c4ff454af2293c01d0df026b2ca624f63259b64759254cc38809e9385f","dweb:/ipfs/QmRPx7XGqQh4dtYXeAARzCjPUkEg2YKmNmDdqsV1gPppcp"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol":{"keccak256":"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04","urls":["bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4","dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":0} \ No newline at end of file diff --git a/examples/onft721/out/MyONFT721Mock.sol/MyONFT721Mock.json b/examples/onft721/out/MyONFT721Mock.sol/MyONFT721Mock.json deleted file mode 100644 index cd0bb35f7..000000000 --- a/examples/onft721/out/MyONFT721Mock.sol/MyONFT721Mock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_lzEndpoint","type":"address","internalType":"address"},{"name":"_delegate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x60a06040523480156200001157600080fd5b506040516200393c3803806200393c83398101604081905262000034916200027f565b83838383838383838383838381818181806001600160a01b0381166200007457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007f816200014a565b506001600160a01b038083166080528116620000ae57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000f657600080fd5b505af11580156200010b573d6000803e3d6000fd5b5050505050505050505081600590816200012691906200039f565b5060066200013582826200039f565b5050505050505050505050505050506200046b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001c257600080fd5b81516001600160401b0380821115620001df57620001df6200019a565b604051601f8301601f19908116603f011681019082821181831017156200020a576200020a6200019a565b81604052838152602092508660208588010111156200022857600080fd5b600091505b838210156200024c57858201830151818301840152908201906200022d565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200027a57600080fd5b919050565b600080600080608085870312156200029657600080fd5b84516001600160401b0380821115620002ae57600080fd5b620002bc88838901620001b0565b95506020870151915080821115620002d357600080fd5b50620002e287828801620001b0565b935050620002f36040860162000262565b9150620003036060860162000262565b905092959194509250565b600181811c908216806200032357607f821691505b6020821081036200034457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200039a576000816000526020600020601f850160051c81016020861015620003755750805b601f850160051c820191505b81811015620003965782815560010162000381565b5050505b505050565b81516001600160401b03811115620003bb57620003bb6200019a565b620003d381620003cc84546200030e565b846200034a565b602080601f8311600181146200040b5760008415620003f25750858301515b600019600386901b1c1916600185901b17855562000396565b600085815260208120601f198616915b828110156200043c578886015182559484019460019091019084016200041b565b50858210156200045b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051613484620004b8600039600081816104b601528181610938015281816111970152818161142c015281816116af01528181611cc1015281816120a0015261215901526134846000f3fe6080604052600436106102675760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc14610787578063d42438851461079a578063e985e9c5146107ba578063f2fde38b146107da578063fc0c546a1461043a578063ff7bd03d146107fa57600080fd5b8063bc70b354146106e7578063bd815db014610707578063c6414e7b1461071a578063c87b56dd14610747578063ca5eb5e11461076757600080fd5b8063a72f5dd811610108578063a72f5dd81461061d578063b21a33e414610645578063b731ea0a1461065a578063b88d4fde1461067a578063b98bd0701461069a578063bb0b6a53146106ba57600080fd5b806382413eac146105965780638da5cb5b146105b657806395d89b41146105d45780639f68b964146105e9578063a22cb465146105fd57600080fd5b806340c10f19116101dd5780635e280f11116101a15780635e280f11146104a45780636352211e146104d85780636fc1b31e146104f857806370a0823114610518578063715018a6146105465780637d25a05e1461055b57600080fd5b806340c10f19146103fa57806342842e0e1461041a57806352ae28791461043a5780635535d4611461044d5780635a0dfe4d1461046d57600080fd5b806313137d651161022f57806313137d651461033d57806317442b70146103505780631f5e13341461037257806321eb730b1461039a57806323b872dd146103ba5780633400288b146103da57600080fd5b806301ffc9a71461026c57806306fdde03146102a1578063081812fc146102c3578063095ea7b3146102fb578063111ecdad1461031d575b600080fd5b34801561027857600080fd5b5061028c61028736600461253e565b61081a565b60405190151581526020015b60405180910390f35b3480156102ad57600080fd5b506102b661086c565b60405161029891906125ab565b3480156102cf57600080fd5b506102e36102de3660046125be565b6108fe565b6040516001600160a01b039091168152602001610298565b34801561030757600080fd5b5061031b6103163660046125ec565b610927565b005b34801561032957600080fd5b506004546102e3906001600160a01b031681565b61031b61034b366004612678565b610936565b34801561035c57600080fd5b5060408051600181526002602082015201610298565b34801561037e57600080fd5b50610387600181565b60405161ffff9091168152602001610298565b6103ad6103a8366004612729565b6109f6565b6040516102989190612796565b3480156103c657600080fd5b5061031b6103d53660046127d8565b610ad1565b3480156103e657600080fd5b5061031b6103f5366004612832565b610b5c565b34801561040657600080fd5b5061031b6104153660046125ec565b610b6e565b34801561042657600080fd5b5061031b6104353660046127d8565b610b78565b34801561044657600080fd5b50306102e3565b34801561045957600080fd5b506102b6610468366004612860565b610b98565b34801561047957600080fd5b5061028c610488366004612832565b63ffffffff919091166000908152600160205260409020541490565b3480156104b057600080fd5b506102e37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e457600080fd5b506102e36104f33660046125be565b610c3d565b34801561050457600080fd5b5061031b610513366004612893565b610c48565b34801561052457600080fd5b50610538610533366004612893565b610ca5565b604051908152602001610298565b34801561055257600080fd5b5061031b610ced565b34801561056757600080fd5b5061057e610576366004612832565b600092915050565b6040516001600160401b039091168152602001610298565b3480156105a257600080fd5b5061028c6105b13660046128b0565b610d01565b3480156105c257600080fd5b506000546001600160a01b03166102e3565b3480156105e057600080fd5b506102b6610d16565b3480156105f557600080fd5b50600061028c565b34801561060957600080fd5b5061031b610618366004612924565b610d25565b34801561062957600080fd5b50604080516311f0c6d360e11b81526001602082015201610298565b34801561065157600080fd5b50610387600281565b34801561066657600080fd5b506002546102e3906001600160a01b031681565b34801561068657600080fd5b5061031b610695366004612a6a565b610d30565b3480156106a657600080fd5b5061031b6106b5366004612b19565b610d47565b3480156106c657600080fd5b506105386106d5366004612b5a565b60016020526000908152604090205481565b3480156106f357600080fd5b506102b6610702366004612b75565b610d61565b61031b610715366004612b19565b610f09565b34801561072657600080fd5b5061073a610735366004612bd5565b611093565b6040516102989190612c1b565b34801561075357600080fd5b506102b66107623660046125be565b6110fb565b34801561077357600080fd5b5061031b610782366004612893565b611170565b61031b610795366004612678565b6111f6565b3480156107a657600080fd5b5061031b6107b5366004612893565b611225565b3480156107c657600080fd5b5061028c6107d5366004612c32565b61127b565b3480156107e657600080fd5b5061031b6107f5366004612893565b6112a9565b34801561080657600080fd5b5061028c610815366004612c60565b6112e7565b60006001600160e01b031982166380ac58cd60e01b148061084b57506001600160e01b03198216635b5e139f60e01b145b8061086657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461087b90612c7c565b80601f01602080910402602001604051908101604052809291908181526020018280546108a790612c7c565b80156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b60006109098261131d565b506000828152600960205260409020546001600160a01b0316610866565b610932828233611356565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610986576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b602087018035906109a09061099b908a612b5a565b611363565b146109de576109b26020880188612b5a565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161097d565b6109ed8787878787878761139f565b50505050505050565b6109fe6124e1565b6020840135610a2057604051631e4ec46b60e01b815260040160405180910390fd5b610a3b336040860135610a366020880188612b5a565b6114fe565b600080610a478661155e565b9092509050610a73610a5c6020880188612b5a565b8383610a6d368a90038a018a612cb0565b8861167c565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610aa860208a018a612b5a565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610afb57604051633250574960e11b81526000600482015260240161097d565b6000610b08838333611787565b9050836001600160a01b0316816001600160a01b031614610b56576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161097d565b50505050565b610b64611880565b61093282826118ad565b6109328282611902565b610b9383838360405180602001604052806000815250610d30565b505050565b600360209081526000928352604080842090915290825290208054610bbc90612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610be890612c7c565b8015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b60006108668261131d565b610c50611880565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610cd1576040516322718ad960e21b81526000600482015260240161097d565b506001600160a01b031660009081526008602052604090205490565b610cf5611880565b610cff6000611967565b565b6001600160a01b03811630145b949350505050565b60606006805461087b90612c7c565b6109323383836119b7565b610d3b848484610ad1565b610b5684848484611a56565b610d4f611880565b610932610d5c8284612ce2565b611b78565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d9590612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc190612c7c565b8015610e0e5780601f10610de357610100808354040283529160200191610e0e565b820191906000526020600020905b815481529060010190602001808311610df157829003601f168201915b505050505090508051600003610e5e5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610d0e9350505050565b6000839003610e6e579050610d0e565b60028310610eec57610eb584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c7f92505050565b80610ec38460028188612db7565b604051602001610ed593929190612de1565b604051602081830303815290604052915050610d0e565b8383604051639a6d49cd60e01b815260040161097d929190612e32565b60005b818110156110125736838383818110610f2757610f27612e46565b9050602002810190610f399190612e5c565b9050610f6c610f4b6020830183612b5a565b602083013563ffffffff919091166000908152600160205260409020541490565b610f76575061100a565b3063d045a0dc60c08301358360a0810135610f95610100830183612e7d565b610fa6610100890160e08a01612893565b610fb46101208a018a612e7d565b6040518963ffffffff1660e01b8152600401610fd69796959493929190612ed8565b6000604051808303818588803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b5050505050505b600101610f0c565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110799190810190612f5e565b604051638351eea760e01b815260040161097d91906125ab565b604080518082019091526000808252602082015260208301356110c957604051631e4ec46b60e01b815260040160405180910390fd5b6000806110d58561155e565b90925090506110f26110ea6020870187612b5a565b838387611cab565b95945050505050565b60606111068261131d565b50600061111e60408051602081019091526000815290565b9050600081511161113e5760405180602001604052806000815250611169565b8061114884611d83565b604051602001611159929190612fcb565b6040516020818303038152906040525b9392505050565b611178611880565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111db57600080fd5b505af11580156111ef573d6000803e3d6000fd5b5050505050565b3330146112165760405163029a949d60e31b815260040160405180910390fd5b6109ed878787878787876109de565b61122d611880565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c9a565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6112b1611880565b6001600160a01b0381166112db57604051631e4fbdf760e01b81526000600482015260240161097d565b6112e481611967565b50565b60006020820180359060019083906112ff9086612b5a565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061086657604051637e27328960e01b81526004810184905260240161097d565b610b938383836001611e15565b63ffffffff8116600090815260016020526040812054806108665760405163f6ff4fb760e01b815263ffffffff8416600482015260240161097d565b60006113b16113ae8787611f1b565b90565b905060006113bf8787611f33565b90506113d882826113d360208d018d612b5a565b611f50565b604086111561149c5760006114126113f660608c0160408d01612ffa565b61140360208d018d612b5a565b61140d8b8b611f5a565b611fa5565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114689086908d906000908790600401613017565b600060405180830381600087803b15801561148257600080fd5b505af1158015611496573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114d560208d018d612b5a565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b61150782610c3d565b6001600160a01b0316836001600160a01b031614611555578261152983610c3d565b604051634342715b60e11b81526001600160a01b0392831660048201529116602482015260440161097d565b610b9382611fd4565b60608060006115b76020850135604086013561157d6080880188612e7d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061200f92505050565b90935090506000816115ca5760016115cd565b60025b90506115ed6115df6020870187612b5a565b826107026060890189612e7d565b6004549093506001600160a01b031615611675576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb91611632918891889101613048565b602060405180830381865afa15801561164f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611673919061306d565b505b5050915091565b6116846124e1565b60006116938460000151612074565b6020850151909150156116ad576116ad846020015161209c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116fd8c611363565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161173992919061308a565b60806040518083038185885af1158015611757573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061177c9190613133565b979650505050505050565b6000828152600760205260408120546001600160a01b03908116908316156117b4576117b481848661217e565b6001600160a01b038116156117f2576117d1600085600080611e15565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b03851615611821576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cff5760405163118cdaa760e01b815233600482015260240161097d565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6001600160a01b03821661192c57604051633250574960e11b81526000600482015260240161097d565b600061193a83836000611787565b90506001600160a01b03811615610b93576040516339e3563760e11b81526000600482015260240161097d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166119e957604051630b61174360e31b81526001600160a01b038316600482015260240161097d565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b5657604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611a9890339088908790879060040161317d565b6020604051808303816000875af1925050508015611ad3575060408051601f3d908101601f19168201909252611ad0918101906131b0565b60015b611b3c573d808015611b01576040519150601f19603f3d011682016040523d82523d6000602084013e611b06565b606091505b508051600003611b3457604051633250574960e11b81526001600160a01b038516600482015260240161097d565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ef57604051633250574960e11b81526001600160a01b038516600482015260240161097d565b60005b8151811015611c4f57611baa828281518110611b9957611b99612e46565b602002602001015160400151611c7f565b818181518110611bbc57611bbc612e46565b60200260200101516040015160036000848481518110611bde57611bde612e46565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611c1857611c18612e46565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611c46919061321d565b50600101611b7b565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c9a91906132dc565b600281015161ffff81166003146109325781604051639a6d49cd60e01b815260040161097d91906125ab565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611d0e89611363565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611d4392919061308a565b6040805180830381865afa158015611d5f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190613367565b60606000611d90836121e2565b60010190506000816001600160401b03811115611daf57611daf61295d565b6040519080825280601f01601f191660200182016040528015611dd9576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611de357509392505050565b8080611e2957506001600160a01b03821615155b15611eeb576000611e398461131d565b90506001600160a01b03831615801590611e655750826001600160a01b0316816001600160a01b031614155b8015611e785750611e76818461127b565b155b15611ea15760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161097d565b8115611ee95783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611f2a6020828486612db7565b61116991613383565b6000611f43604060208486612db7565b81019061116991906125be565b610b938383611902565b6060611f698260408186612db7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611fbc939291906133a1565b60405160208183030381529060405290509392505050565b6000611fe36000836000611787565b90506001600160a01b03811661093257604051637e27328960e01b81526004810183905260240161097d565b805160609015158061204357604080516020810187905290810185905260600160405160208183030381529060405261206a565b8484338560405160200161205a94939291906133eb565b6040516020818303038152906040525b9150935093915050565b6000813414612098576040516304fb820960e51b815234600482015260240161097d565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612120919061341f565b90506001600160a01b038116612149576040516329b99a9560e11b815260040160405180910390fd5b6109326001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856122ba565b612189838383612314565b610b93576001600160a01b0383166121b757604051637e27328960e01b81526004810182905260240161097d565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161097d565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106122215772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061224d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061226b57662386f26fc10000830492506010015b6305f5e1008310612283576305f5e100830492506008015b612710831061229757612710830492506004015b606483106122a9576064830492506002015b600a83106108665760010192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b56908590612377565b60006001600160a01b03831615801590610d0e5750826001600160a01b0316846001600160a01b0316148061234e575061234e848461127b565b80610d0e5750506000908152600960205260409020546001600160a01b03908116911614919050565b600061238c6001600160a01b038416836123da565b905080516000141580156123b15750808060200190518101906123af919061306d565b155b15610b9357604051635274afe760e01b81526001600160a01b038416600482015260240161097d565b60606111698383600084600080856001600160a01b03168486604051612400919061343c565b60006040518083038185875af1925050503d806000811461243d576040519150601f19603f3d011682016040523d82523d6000602084013e612442565b606091505b509150915061245286838361245c565b9695505050505050565b6060826124715761246c826124b8565b611169565b815115801561248857506001600160a01b0384163b155b156124b157604051639996b31560e01b81526001600160a01b038516600482015260240161097d565b5080611169565b8051156124c85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001612523604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112e457600080fd5b60006020828403121561255057600080fd5b813561116981612528565b60005b8381101561257657818101518382015260200161255e565b50506000910152565b6000815180845261259781602086016020860161255b565b601f01601f19169290920160200192915050565b602081526000611169602083018461257f565b6000602082840312156125d057600080fd5b5035919050565b6001600160a01b03811681146112e457600080fd5b600080604083850312156125ff57600080fd5b823561260a816125d7565b946020939093013593505050565b60006060828403121561262a57600080fd5b50919050565b60008083601f84011261264257600080fd5b5081356001600160401b0381111561265957600080fd5b60208301915083602082850101111561267157600080fd5b9250929050565b600080600080600080600060e0888a03121561269357600080fd5b61269d8989612618565b96506060880135955060808801356001600160401b03808211156126c057600080fd5b6126cc8b838c01612630565b909750955060a08a013591506126e1826125d7565b90935060c089013590808211156126f757600080fd5b506127048a828b01612630565b989b979a50959850939692959293505050565b600060c0828403121561262a57600080fd5b6000806000838503608081121561273f57600080fd5b84356001600160401b0381111561275557600080fd5b61276187828801612717565b9450506040601f198201121561277657600080fd5b50602084019150606084013561278b816125d7565b809150509250925092565b6000608082019050825182526001600160401b03602084015116602083015260408301516127d1604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127ed57600080fd5b83356127f8816125d7565b92506020840135612808816125d7565b929592945050506040919091013590565b803563ffffffff8116811461282d57600080fd5b919050565b6000806040838503121561284557600080fd5b61260a83612819565b803561ffff8116811461282d57600080fd5b6000806040838503121561287357600080fd5b61287c83612819565b915061288a6020840161284e565b90509250929050565b6000602082840312156128a557600080fd5b8135611169816125d7565b60008060008060a085870312156128c657600080fd5b6128d08686612618565b935060608501356001600160401b038111156128eb57600080fd5b6128f787828801612630565b909450925050608085013561290b816125d7565b939692955090935050565b80151581146112e457600080fd5b6000806040838503121561293757600080fd5b8235612942816125d7565b9150602083013561295281612916565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156129955761299561295d565b60405290565b604051606081016001600160401b03811182821017156129955761299561295d565b604051601f8201601f191681016001600160401b03811182821017156129e5576129e561295d565b604052919050565b60006001600160401b03821115612a0657612a0661295d565b50601f01601f191660200190565b600082601f830112612a2557600080fd5b8135612a38612a33826129ed565b6129bd565b818152846020838601011115612a4d57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a8057600080fd5b8435612a8b816125d7565b93506020850135612a9b816125d7565b92506040850135915060608501356001600160401b03811115612abd57600080fd5b612ac987828801612a14565b91505092959194509250565b60008083601f840112612ae757600080fd5b5081356001600160401b03811115612afe57600080fd5b6020830191508360208260051b850101111561267157600080fd5b60008060208385031215612b2c57600080fd5b82356001600160401b03811115612b4257600080fd5b612b4e85828601612ad5565b90969095509350505050565b600060208284031215612b6c57600080fd5b61116982612819565b60008060008060608587031215612b8b57600080fd5b612b9485612819565b9350612ba26020860161284e565b925060408501356001600160401b03811115612bbd57600080fd5b612bc987828801612630565b95989497509550505050565b60008060408385031215612be857600080fd5b82356001600160401b03811115612bfe57600080fd5b612c0a85828601612717565b925050602083013561295281612916565b815181526020808301519082015260408101610866565b60008060408385031215612c4557600080fd5b8235612c50816125d7565b91506020830135612952816125d7565b600060608284031215612c7257600080fd5b6111698383612618565b600181811c90821680612c9057607f821691505b60208210810361262a57634e487b7160e01b600052602260045260246000fd5b600060408284031215612cc257600080fd5b612cca612973565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cfc57612cfc61295d565b8360051b6020612d0d8183016129bd565b868152918501918181019036841115612d2557600080fd5b865b84811015612dab57803586811115612d3f5760008081fd5b88016060368290031215612d535760008081fd5b612d5b61299b565b612d6482612819565b8152612d7186830161284e565b8682015260408083013589811115612d895760008081fd5b612d9536828601612a14565b9183019190915250845250918301918301612d27565b50979650505050505050565b60008085851115612dc757600080fd5b83861115612dd457600080fd5b5050820193919092039150565b60008451612df381846020890161255b565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610d0e602083018486612e09565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e7357600080fd5b9190910192915050565b6000808335601e19843603018112612e9457600080fd5b8301803591506001600160401b03821115612eae57600080fd5b60200191503681900382131561267157600080fd5b6001600160401b03811681146112e457600080fd5b63ffffffff612ee689612819565b1681526020880135602082015260006040890135612f0381612ec3565b6001600160401b03811660408401525087606083015260e06080830152612f2e60e083018789612e09565b6001600160a01b03861660a084015282810360c0840152612f50818587612e09565b9a9950505050505050505050565b600060208284031215612f7057600080fd5b81516001600160401b03811115612f8657600080fd5b8201601f81018413612f9757600080fd5b8051612fa5612a33826129ed565b818152856020838501011115612fba57600080fd5b6110f282602083016020860161255b565b60008351612fdd81846020880161255b565b835190830190612ff181836020880161255b565b01949350505050565b60006020828403121561300c57600080fd5b813561116981612ec3565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000612452608083018461257f565b60408152600061305b604083018561257f565b82810360208401526110f2818561257f565b60006020828403121561307f57600080fd5b815161116981612916565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526130c060e084018261257f565b90506060850151603f198483030160a08501526130dd828261257f565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561311557600080fd5b61311d612973565b9050815181526020820151602082015292915050565b60006080828403121561314557600080fd5b61314d61299b565b82518152602083015161315f81612ec3565b60208201526131718460408501613103565b60408201529392505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906124529083018461257f565b6000602082840312156131c257600080fd5b815161116981612528565b601f821115610b93576000816000526020600020601f850160051c810160208610156131f65750805b601f850160051c820191505b8181101561321557828155600101613202565b505050505050565b81516001600160401b038111156132365761323661295d565b61324a816132448454612c7c565b846131cd565b602080601f83116001811461327f57600084156132675750858301515b600019600386901b1c1916600185901b178555613215565b600085815260208120601f198616915b828110156132ae5788860151825594840194600190910190840161328f565b50858210156132cc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561335957888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133458186018361257f565b968901969450505090860190600101613305565b509098975050505050505050565b60006040828403121561337957600080fd5b6111698383613103565b8035602083101561086657600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133dc81600c85016020870161255b565b91909101600c01949350505050565b8481528360208201528260408201526000825161340f81606085016020870161255b565b9190910160600195945050505050565b60006020828403121561343157600080fd5b8151611169816125d7565b60008251612e7381846020870161255b56fea2646970667358221220c7c7331459cb66f7d570b103739a6a99024dba2daf36431e72749d4cd7be5b8e64736f6c63430008160033","sourceMap":"163:323:1:-:0;;;205:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;349:5;356:7;365:11;378:9;349:5;356:7;365:11;378:9;349:5;356:7;365:11;378:9;365:11;378:9;365:11;378:9;;-1:-1:-1;;;;;1273:26:35;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:35;;1350:1;1322:31;;;2061:51:53;2034:18;;1322:31:35;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:4;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:4;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:4;;-1:-1:-1;;;;;2079:32:53;;;1163:31:4;;;2061:51:53;1163:20:4;;;;;;2034:18:53;;1163:31:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;965:83:3;;1952:102:32;;1455:5:40;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:40;:17;1480:7;1470;:17;:::i;:::-;;1381:113;;673:195:31;;;;183:184:0;;;;205:186:1;;;;163:323;;2912:187:35;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:35;;;-1:-1:-1;;;;;;3020:17:35;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:53:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:53;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:53;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:177::-;1074:13;;-1:-1:-1;;;;;1116:31:53;;1106:42;;1096:70;;1162:1;1159;1152:12;1096:70;995:177;;;:::o;1177:733::-;1294:6;1302;1310;1318;1371:3;1359:9;1350:7;1346:23;1342:33;1339:53;;;1388:1;1385;1378:12;1339:53;1415:16;;-1:-1:-1;;;;;1480:14:53;;;1477:34;;;1507:1;1504;1497:12;1477:34;1530:61;1583:7;1574:6;1563:9;1559:22;1530:61;:::i;:::-;1520:71;;1637:2;1626:9;1622:18;1616:25;1600:41;;1666:2;1656:8;1653:16;1650:36;;;1682:1;1679;1672:12;1650:36;;1705:63;1760:7;1749:8;1738:9;1734:24;1705:63;:::i;:::-;1695:73;;;1787:49;1832:2;1821:9;1817:18;1787:49;:::i;:::-;1777:59;;1855:49;1900:2;1889:9;1885:18;1855:49;:::i;:::-;1845:59;;1177:733;;;;;;;:::o;2123:380::-;2202:1;2198:12;;;;2245;;;2266:61;;2320:4;2312:6;2308:17;2298:27;;2266:61;2373:2;2365:6;2362:14;2342:18;2339:38;2336:161;;2419:10;2414:3;2410:20;2407:1;2400:31;2454:4;2451:1;2444:15;2482:4;2479:1;2472:15;2336:161;;2123:380;;;:::o;2634:543::-;2736:2;2731:3;2728:11;2725:446;;;2772:1;2796:5;2793:1;2786:16;2840:4;2837:1;2827:18;2910:2;2898:10;2894:19;2891:1;2887:27;2881:4;2877:38;2946:4;2934:10;2931:20;2928:47;;;-1:-1:-1;2969:4:53;2928:47;3024:2;3019:3;3015:12;3012:1;3008:20;3002:4;2998:31;2988:41;;3079:82;3097:2;3090:5;3087:13;3079:82;;;3142:17;;;3123:1;3112:13;3079:82;;;3083:3;;;2725:446;2634:543;;;:::o;3353:1345::-;3473:10;;-1:-1:-1;;;;;3495:30:53;;3492:56;;;3528:18;;:::i;:::-;3557:97;3647:6;3607:38;3639:4;3633:11;3607:38;:::i;:::-;3601:4;3557:97;:::i;:::-;3709:4;;3766:2;3755:14;;3783:1;3778:663;;;;4485:1;4502:6;4499:89;;;-1:-1:-1;4554:19:53;;;4548:26;4499:89;-1:-1:-1;;3310:1:53;3306:11;;;3302:24;3298:29;3288:40;3334:1;3330:11;;;3285:57;4601:81;;3748:944;;3778:663;2581:1;2574:14;;;2618:4;2605:18;;-1:-1:-1;;3814:20:53;;;3932:236;3946:7;3943:1;3940:14;3932:236;;;4035:19;;;4029:26;4014:42;;4127:27;;;;4095:1;4083:14;;;;3962:19;;3932:236;;;3936:3;4196:6;4187:7;4184:19;4181:201;;;4257:19;;;4251:26;-1:-1:-1;;4340:1:53;4336:14;;;4352:3;4332:24;4328:37;4324:42;4309:58;4294:74;;4181:201;-1:-1:-1;;;;;4428:1:53;4412:14;;;4408:22;4395:36;;-1:-1:-1;3353:1345:53:o;:::-;163:323:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106102675760003560e01c806382413eac11610144578063bc70b354116100b6578063d045a0dc1161007a578063d045a0dc14610787578063d42438851461079a578063e985e9c5146107ba578063f2fde38b146107da578063fc0c546a1461043a578063ff7bd03d146107fa57600080fd5b8063bc70b354146106e7578063bd815db014610707578063c6414e7b1461071a578063c87b56dd14610747578063ca5eb5e11461076757600080fd5b8063a72f5dd811610108578063a72f5dd81461061d578063b21a33e414610645578063b731ea0a1461065a578063b88d4fde1461067a578063b98bd0701461069a578063bb0b6a53146106ba57600080fd5b806382413eac146105965780638da5cb5b146105b657806395d89b41146105d45780639f68b964146105e9578063a22cb465146105fd57600080fd5b806340c10f19116101dd5780635e280f11116101a15780635e280f11146104a45780636352211e146104d85780636fc1b31e146104f857806370a0823114610518578063715018a6146105465780637d25a05e1461055b57600080fd5b806340c10f19146103fa57806342842e0e1461041a57806352ae28791461043a5780635535d4611461044d5780635a0dfe4d1461046d57600080fd5b806313137d651161022f57806313137d651461033d57806317442b70146103505780631f5e13341461037257806321eb730b1461039a57806323b872dd146103ba5780633400288b146103da57600080fd5b806301ffc9a71461026c57806306fdde03146102a1578063081812fc146102c3578063095ea7b3146102fb578063111ecdad1461031d575b600080fd5b34801561027857600080fd5b5061028c61028736600461253e565b61081a565b60405190151581526020015b60405180910390f35b3480156102ad57600080fd5b506102b661086c565b60405161029891906125ab565b3480156102cf57600080fd5b506102e36102de3660046125be565b6108fe565b6040516001600160a01b039091168152602001610298565b34801561030757600080fd5b5061031b6103163660046125ec565b610927565b005b34801561032957600080fd5b506004546102e3906001600160a01b031681565b61031b61034b366004612678565b610936565b34801561035c57600080fd5b5060408051600181526002602082015201610298565b34801561037e57600080fd5b50610387600181565b60405161ffff9091168152602001610298565b6103ad6103a8366004612729565b6109f6565b6040516102989190612796565b3480156103c657600080fd5b5061031b6103d53660046127d8565b610ad1565b3480156103e657600080fd5b5061031b6103f5366004612832565b610b5c565b34801561040657600080fd5b5061031b6104153660046125ec565b610b6e565b34801561042657600080fd5b5061031b6104353660046127d8565b610b78565b34801561044657600080fd5b50306102e3565b34801561045957600080fd5b506102b6610468366004612860565b610b98565b34801561047957600080fd5b5061028c610488366004612832565b63ffffffff919091166000908152600160205260409020541490565b3480156104b057600080fd5b506102e37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e457600080fd5b506102e36104f33660046125be565b610c3d565b34801561050457600080fd5b5061031b610513366004612893565b610c48565b34801561052457600080fd5b50610538610533366004612893565b610ca5565b604051908152602001610298565b34801561055257600080fd5b5061031b610ced565b34801561056757600080fd5b5061057e610576366004612832565b600092915050565b6040516001600160401b039091168152602001610298565b3480156105a257600080fd5b5061028c6105b13660046128b0565b610d01565b3480156105c257600080fd5b506000546001600160a01b03166102e3565b3480156105e057600080fd5b506102b6610d16565b3480156105f557600080fd5b50600061028c565b34801561060957600080fd5b5061031b610618366004612924565b610d25565b34801561062957600080fd5b50604080516311f0c6d360e11b81526001602082015201610298565b34801561065157600080fd5b50610387600281565b34801561066657600080fd5b506002546102e3906001600160a01b031681565b34801561068657600080fd5b5061031b610695366004612a6a565b610d30565b3480156106a657600080fd5b5061031b6106b5366004612b19565b610d47565b3480156106c657600080fd5b506105386106d5366004612b5a565b60016020526000908152604090205481565b3480156106f357600080fd5b506102b6610702366004612b75565b610d61565b61031b610715366004612b19565b610f09565b34801561072657600080fd5b5061073a610735366004612bd5565b611093565b6040516102989190612c1b565b34801561075357600080fd5b506102b66107623660046125be565b6110fb565b34801561077357600080fd5b5061031b610782366004612893565b611170565b61031b610795366004612678565b6111f6565b3480156107a657600080fd5b5061031b6107b5366004612893565b611225565b3480156107c657600080fd5b5061028c6107d5366004612c32565b61127b565b3480156107e657600080fd5b5061031b6107f5366004612893565b6112a9565b34801561080657600080fd5b5061028c610815366004612c60565b6112e7565b60006001600160e01b031982166380ac58cd60e01b148061084b57506001600160e01b03198216635b5e139f60e01b145b8061086657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461087b90612c7c565b80601f01602080910402602001604051908101604052809291908181526020018280546108a790612c7c565b80156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b60006109098261131d565b506000828152600960205260409020546001600160a01b0316610866565b610932828233611356565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610986576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b602087018035906109a09061099b908a612b5a565b611363565b146109de576109b26020880188612b5a565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161097d565b6109ed8787878787878761139f565b50505050505050565b6109fe6124e1565b6020840135610a2057604051631e4ec46b60e01b815260040160405180910390fd5b610a3b336040860135610a366020880188612b5a565b6114fe565b600080610a478661155e565b9092509050610a73610a5c6020880188612b5a565b8383610a6d368a90038a018a612cb0565b8861167c565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610aa860208a018a612b5a565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610afb57604051633250574960e11b81526000600482015260240161097d565b6000610b08838333611787565b9050836001600160a01b0316816001600160a01b031614610b56576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161097d565b50505050565b610b64611880565b61093282826118ad565b6109328282611902565b610b9383838360405180602001604052806000815250610d30565b505050565b600360209081526000928352604080842090915290825290208054610bbc90612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610be890612c7c565b8015610c355780601f10610c0a57610100808354040283529160200191610c35565b820191906000526020600020905b815481529060010190602001808311610c1857829003601f168201915b505050505081565b60006108668261131d565b610c50611880565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b038216610cd1576040516322718ad960e21b81526000600482015260240161097d565b506001600160a01b031660009081526008602052604090205490565b610cf5611880565b610cff6000611967565b565b6001600160a01b03811630145b949350505050565b60606006805461087b90612c7c565b6109323383836119b7565b610d3b848484610ad1565b610b5684848484611a56565b610d4f611880565b610932610d5c8284612ce2565b611b78565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610d9590612c7c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc190612c7c565b8015610e0e5780601f10610de357610100808354040283529160200191610e0e565b820191906000526020600020905b815481529060010190602001808311610df157829003601f168201915b505050505090508051600003610e5e5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610d0e9350505050565b6000839003610e6e579050610d0e565b60028310610eec57610eb584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c7f92505050565b80610ec38460028188612db7565b604051602001610ed593929190612de1565b604051602081830303815290604052915050610d0e565b8383604051639a6d49cd60e01b815260040161097d929190612e32565b60005b818110156110125736838383818110610f2757610f27612e46565b9050602002810190610f399190612e5c565b9050610f6c610f4b6020830183612b5a565b602083013563ffffffff919091166000908152600160205260409020541490565b610f76575061100a565b3063d045a0dc60c08301358360a0810135610f95610100830183612e7d565b610fa6610100890160e08a01612893565b610fb46101208a018a612e7d565b6040518963ffffffff1660e01b8152600401610fd69796959493929190612ed8565b6000604051808303818588803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b5050505050505b600101610f0c565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110799190810190612f5e565b604051638351eea760e01b815260040161097d91906125ab565b604080518082019091526000808252602082015260208301356110c957604051631e4ec46b60e01b815260040160405180910390fd5b6000806110d58561155e565b90925090506110f26110ea6020870187612b5a565b838387611cab565b95945050505050565b60606111068261131d565b50600061111e60408051602081019091526000815290565b9050600081511161113e5760405180602001604052806000815250611169565b8061114884611d83565b604051602001611159929190612fcb565b6040516020818303038152906040525b9392505050565b611178611880565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156111db57600080fd5b505af11580156111ef573d6000803e3d6000fd5b5050505050565b3330146112165760405163029a949d60e31b815260040160405180910390fd5b6109ed878787878787876109de565b61122d611880565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c9a565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6112b1611880565b6001600160a01b0381166112db57604051631e4fbdf760e01b81526000600482015260240161097d565b6112e481611967565b50565b60006020820180359060019083906112ff9086612b5a565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061086657604051637e27328960e01b81526004810184905260240161097d565b610b938383836001611e15565b63ffffffff8116600090815260016020526040812054806108665760405163f6ff4fb760e01b815263ffffffff8416600482015260240161097d565b60006113b16113ae8787611f1b565b90565b905060006113bf8787611f33565b90506113d882826113d360208d018d612b5a565b611f50565b604086111561149c5760006114126113f660608c0160408d01612ffa565b61140360208d018d612b5a565b61140d8b8b611f5a565b611fa5565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906114689086908d906000908790600401613017565b600060405180830381600087803b15801561148257600080fd5b505af1158015611496573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56114d560208d018d612b5a565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b61150782610c3d565b6001600160a01b0316836001600160a01b031614611555578261152983610c3d565b604051634342715b60e11b81526001600160a01b0392831660048201529116602482015260440161097d565b610b9382611fd4565b60608060006115b76020850135604086013561157d6080880188612e7d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061200f92505050565b90935090506000816115ca5760016115cd565b60025b90506115ed6115df6020870187612b5a565b826107026060890189612e7d565b6004549093506001600160a01b031615611675576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb91611632918891889101613048565b602060405180830381865afa15801561164f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611673919061306d565b505b5050915091565b6116846124e1565b60006116938460000151612074565b6020850151909150156116ad576116ad846020015161209c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016116fd8c611363565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161173992919061308a565b60806040518083038185885af1158015611757573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061177c9190613133565b979650505050505050565b6000828152600760205260408120546001600160a01b03908116908316156117b4576117b481848661217e565b6001600160a01b038116156117f2576117d1600085600080611e15565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b03851615611821576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610cff5760405163118cdaa760e01b815233600482015260240161097d565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6001600160a01b03821661192c57604051633250574960e11b81526000600482015260240161097d565b600061193a83836000611787565b90506001600160a01b03811615610b93576040516339e3563760e11b81526000600482015260240161097d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166119e957604051630b61174360e31b81526001600160a01b038316600482015260240161097d565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610b5657604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611a9890339088908790879060040161317d565b6020604051808303816000875af1925050508015611ad3575060408051601f3d908101601f19168201909252611ad0918101906131b0565b60015b611b3c573d808015611b01576040519150601f19603f3d011682016040523d82523d6000602084013e611b06565b606091505b508051600003611b3457604051633250574960e11b81526001600160a01b038516600482015260240161097d565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146111ef57604051633250574960e11b81526001600160a01b038516600482015260240161097d565b60005b8151811015611c4f57611baa828281518110611b9957611b99612e46565b602002602001015160400151611c7f565b818181518110611bbc57611bbc612e46565b60200260200101516040015160036000848481518110611bde57611bde612e46565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611c1857611c18612e46565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611c46919061321d565b50600101611b7b565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c9a91906132dc565b600281015161ffff81166003146109325781604051639a6d49cd60e01b815260040161097d91906125ab565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611d0e89611363565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611d4392919061308a565b6040805180830381865afa158015611d5f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190613367565b60606000611d90836121e2565b60010190506000816001600160401b03811115611daf57611daf61295d565b6040519080825280601f01601f191660200182016040528015611dd9576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611de357509392505050565b8080611e2957506001600160a01b03821615155b15611eeb576000611e398461131d565b90506001600160a01b03831615801590611e655750826001600160a01b0316816001600160a01b031614155b8015611e785750611e76818461127b565b155b15611ea15760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161097d565b8115611ee95783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000611f2a6020828486612db7565b61116991613383565b6000611f43604060208486612db7565b81019061116991906125be565b610b938383611902565b6060611f698260408186612db7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6060838383604051602001611fbc939291906133a1565b60405160208183030381529060405290509392505050565b6000611fe36000836000611787565b90506001600160a01b03811661093257604051637e27328960e01b81526004810183905260240161097d565b805160609015158061204357604080516020810187905290810185905260600160405160208183030381529060405261206a565b8484338560405160200161205a94939291906133eb565b6040516020818303038152906040525b9150935093915050565b6000813414612098576040516304fb820960e51b815234600482015260240161097d565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612120919061341f565b90506001600160a01b038116612149576040516329b99a9560e11b815260040160405180910390fd5b6109326001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856122ba565b612189838383612314565b610b93576001600160a01b0383166121b757604051637e27328960e01b81526004810182905260240161097d565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161097d565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106122215772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061224d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061226b57662386f26fc10000830492506010015b6305f5e1008310612283576305f5e100830492506008015b612710831061229757612710830492506004015b606483106122a9576064830492506002015b600a83106108665760010192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b56908590612377565b60006001600160a01b03831615801590610d0e5750826001600160a01b0316846001600160a01b0316148061234e575061234e848461127b565b80610d0e5750506000908152600960205260409020546001600160a01b03908116911614919050565b600061238c6001600160a01b038416836123da565b905080516000141580156123b15750808060200190518101906123af919061306d565b155b15610b9357604051635274afe760e01b81526001600160a01b038416600482015260240161097d565b60606111698383600084600080856001600160a01b03168486604051612400919061343c565b60006040518083038185875af1925050503d806000811461243d576040519150601f19603f3d011682016040523d82523d6000602084013e612442565b606091505b509150915061245286838361245c565b9695505050505050565b6060826124715761246c826124b8565b611169565b815115801561248857506001600160a01b0384163b155b156124b157604051639996b31560e01b81526001600160a01b038516600482015260240161097d565b5080611169565b8051156124c85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001612523604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146112e457600080fd5b60006020828403121561255057600080fd5b813561116981612528565b60005b8381101561257657818101518382015260200161255e565b50506000910152565b6000815180845261259781602086016020860161255b565b601f01601f19169290920160200192915050565b602081526000611169602083018461257f565b6000602082840312156125d057600080fd5b5035919050565b6001600160a01b03811681146112e457600080fd5b600080604083850312156125ff57600080fd5b823561260a816125d7565b946020939093013593505050565b60006060828403121561262a57600080fd5b50919050565b60008083601f84011261264257600080fd5b5081356001600160401b0381111561265957600080fd5b60208301915083602082850101111561267157600080fd5b9250929050565b600080600080600080600060e0888a03121561269357600080fd5b61269d8989612618565b96506060880135955060808801356001600160401b03808211156126c057600080fd5b6126cc8b838c01612630565b909750955060a08a013591506126e1826125d7565b90935060c089013590808211156126f757600080fd5b506127048a828b01612630565b989b979a50959850939692959293505050565b600060c0828403121561262a57600080fd5b6000806000838503608081121561273f57600080fd5b84356001600160401b0381111561275557600080fd5b61276187828801612717565b9450506040601f198201121561277657600080fd5b50602084019150606084013561278b816125d7565b809150509250925092565b6000608082019050825182526001600160401b03602084015116602083015260408301516127d1604084018280518252602090810151910152565b5092915050565b6000806000606084860312156127ed57600080fd5b83356127f8816125d7565b92506020840135612808816125d7565b929592945050506040919091013590565b803563ffffffff8116811461282d57600080fd5b919050565b6000806040838503121561284557600080fd5b61260a83612819565b803561ffff8116811461282d57600080fd5b6000806040838503121561287357600080fd5b61287c83612819565b915061288a6020840161284e565b90509250929050565b6000602082840312156128a557600080fd5b8135611169816125d7565b60008060008060a085870312156128c657600080fd5b6128d08686612618565b935060608501356001600160401b038111156128eb57600080fd5b6128f787828801612630565b909450925050608085013561290b816125d7565b939692955090935050565b80151581146112e457600080fd5b6000806040838503121561293757600080fd5b8235612942816125d7565b9150602083013561295281612916565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156129955761299561295d565b60405290565b604051606081016001600160401b03811182821017156129955761299561295d565b604051601f8201601f191681016001600160401b03811182821017156129e5576129e561295d565b604052919050565b60006001600160401b03821115612a0657612a0661295d565b50601f01601f191660200190565b600082601f830112612a2557600080fd5b8135612a38612a33826129ed565b6129bd565b818152846020838601011115612a4d57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a8057600080fd5b8435612a8b816125d7565b93506020850135612a9b816125d7565b92506040850135915060608501356001600160401b03811115612abd57600080fd5b612ac987828801612a14565b91505092959194509250565b60008083601f840112612ae757600080fd5b5081356001600160401b03811115612afe57600080fd5b6020830191508360208260051b850101111561267157600080fd5b60008060208385031215612b2c57600080fd5b82356001600160401b03811115612b4257600080fd5b612b4e85828601612ad5565b90969095509350505050565b600060208284031215612b6c57600080fd5b61116982612819565b60008060008060608587031215612b8b57600080fd5b612b9485612819565b9350612ba26020860161284e565b925060408501356001600160401b03811115612bbd57600080fd5b612bc987828801612630565b95989497509550505050565b60008060408385031215612be857600080fd5b82356001600160401b03811115612bfe57600080fd5b612c0a85828601612717565b925050602083013561295281612916565b815181526020808301519082015260408101610866565b60008060408385031215612c4557600080fd5b8235612c50816125d7565b91506020830135612952816125d7565b600060608284031215612c7257600080fd5b6111698383612618565b600181811c90821680612c9057607f821691505b60208210810361262a57634e487b7160e01b600052602260045260246000fd5b600060408284031215612cc257600080fd5b612cca612973565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612cfc57612cfc61295d565b8360051b6020612d0d8183016129bd565b868152918501918181019036841115612d2557600080fd5b865b84811015612dab57803586811115612d3f5760008081fd5b88016060368290031215612d535760008081fd5b612d5b61299b565b612d6482612819565b8152612d7186830161284e565b8682015260408083013589811115612d895760008081fd5b612d9536828601612a14565b9183019190915250845250918301918301612d27565b50979650505050505050565b60008085851115612dc757600080fd5b83861115612dd457600080fd5b5050820193919092039150565b60008451612df381846020890161255b565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610d0e602083018486612e09565b634e487b7160e01b600052603260045260246000fd5b6000823561013e19833603018112612e7357600080fd5b9190910192915050565b6000808335601e19843603018112612e9457600080fd5b8301803591506001600160401b03821115612eae57600080fd5b60200191503681900382131561267157600080fd5b6001600160401b03811681146112e457600080fd5b63ffffffff612ee689612819565b1681526020880135602082015260006040890135612f0381612ec3565b6001600160401b03811660408401525087606083015260e06080830152612f2e60e083018789612e09565b6001600160a01b03861660a084015282810360c0840152612f50818587612e09565b9a9950505050505050505050565b600060208284031215612f7057600080fd5b81516001600160401b03811115612f8657600080fd5b8201601f81018413612f9757600080fd5b8051612fa5612a33826129ed565b818152856020838501011115612fba57600080fd5b6110f282602083016020860161255b565b60008351612fdd81846020880161255b565b835190830190612ff181836020880161255b565b01949350505050565b60006020828403121561300c57600080fd5b813561116981612ec3565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000612452608083018461257f565b60408152600061305b604083018561257f565b82810360208401526110f2818561257f565b60006020828403121561307f57600080fd5b815161116981612916565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526130c060e084018261257f565b90506060850151603f198483030160a08501526130dd828261257f565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561311557600080fd5b61311d612973565b9050815181526020820151602082015292915050565b60006080828403121561314557600080fd5b61314d61299b565b82518152602083015161315f81612ec3565b60208201526131718460408501613103565b60408201529392505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906124529083018461257f565b6000602082840312156131c257600080fd5b815161116981612528565b601f821115610b93576000816000526020600020601f850160051c810160208610156131f65750805b601f850160051c820191505b8181101561321557828155600101613202565b505050505050565b81516001600160401b038111156132365761323661295d565b61324a816132448454612c7c565b846131cd565b602080601f83116001811461327f57600084156132675750858301515b600019600386901b1c1916600185901b178555613215565b600085815260208120601f198616915b828110156132ae5788860151825594840194600190910190840161328f565b50858210156132cc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561335957888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526133458186018361257f565b968901969450505090860190600101613305565b509098975050505050505050565b60006040828403121561337957600080fd5b6111698383613103565b8035602083101561086657600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906133dc81600c85016020870161255b565b91909101600c01949350505050565b8481528360208201528260408201526000825161340f81606085016020870161255b565b9190910160600195945050505050565b60006020828403121561343157600080fd5b8151611169816125d7565b60008251612e7381846020870161255b56fea2646970667358221220c7c7331459cb66f7d570b103739a6a99024dba2daf36431e72749d4cd7be5b8e64736f6c63430008160033","sourceMap":"163:323:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1561:300:40;;;;;;;;;;-1:-1:-1;1561:300:40;;;;;:::i;:::-;;:::i;:::-;;;565:14:53;;558:22;540:41;;528:2;513:18;1561:300:40;;;;;;;;2365:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3497:154::-;;;;;;;;;;-1:-1:-1;3497:154:40;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:53;;;1679:51;;1667:2;1652:18;3497:154:40;1533:203:53;3323:113:40;;;;;;;;;;-1:-1:-1;3323:113:40;;;;;:::i;:::-;;:::i;:::-;;1705:27:32;;;;;;;;;;-1:-1:-1;1705:27:32;;;;-1:-1:-1;;;;;1705:27:32;;;4368:708:5;;;;;;:::i;:::-;;:::i;1287:235:3:-;;;;;;;;;;-1:-1:-1;1287:235:3;;;843:1:6;3968:34:53;;678:1:5;4033:2:53;4018:18;;4011:43;3904:18;1287:235:3;3761:299:53;1539:31:32;;;;;;;;;;;;1569:1;1539:31;;;;;4239:6:53;4227:19;;;4209:38;;4197:2;4182:18;1539:31:32;4065:188:53;3051:701:32;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4143:578:40:-;;;;;;;;;;-1:-1:-1;4143:578:40;;;;;:::i;:::-;;:::i;1724:108:4:-;;;;;;;;;;-1:-1:-1;1724:108:4;;;;;:::i;:::-;;:::i;397:87:1:-;;;;;;;;;;-1:-1:-1;397:87:1;;;;;:::i;:::-;;:::i;4787:132:40:-;;;;;;;;;;-1:-1:-1;4787:132:40;;;;;:::i;:::-;;:::i;875:93:13:-;;;;;;;;;;-1:-1:-1;956:4:13;875:93;;538::11;;;;;;;;;;-1:-1:-1;538:93:11;;;;;:::i;:::-;;:::i;7452:132:32:-;;;;;;;;;;-1:-1:-1;7452:132:32;;;;;:::i;:::-;7557:11;;;;;7534:4;7557:11;;;:5;:11;;;;;;:20;;7452:132;446:46:4;;;;;;;;;;;;;;;2185:118:40;;;;;;;;;;-1:-1:-1;2185:118:40;;;;;:::i;:::-;;:::i;7916:163:32:-;;;;;;;;;;-1:-1:-1;7916:163:32;;;;;:::i;:::-;;:::i;1920:208:40:-;;;;;;;;;;-1:-1:-1;1920:208:40;;;;;:::i;:::-;;:::i;:::-;;;7884:25:53;;;7872:2;7857:18;1920:208:40;7738:177:53;2293:101:35;;;;;;;;;;;;;:::i;3507:128:5:-;;;;;;;;;;-1:-1:-1;3507:128:5;;;;;:::i;:::-;3596:12;3507:128;;;;;;;;-1:-1:-1;;;;;8082:31:53;;;8064:50;;8052:2;8037:18;3507:128:5;7920:200:53;2013:216:5;;;;;;;;;;-1:-1:-1;2013:216:5;;;;;:::i;:::-;;:::i;1638:85:35:-;;;;;;;;;;-1:-1:-1;1684:7:35;1710:6;-1:-1:-1;;;;;1710:6:35;1638:85;;2518:93:40;;;;;;;;;;;;;:::i;1344:94:31:-;;;;;;;;;;-1:-1:-1;1403:4:31;1344:94;;3718:144:40;;;;;;;;;;-1:-1:-1;3718:144:40;;;;;:::i;:::-;;:::i;2506:145:32:-;;;;;;;;;;-1:-1:-1;2506:145:32;;;-1:-1:-1;;;9480:52:53;;2642:1:32;9563:2:53;9548:18;;9541:59;9453:18;2506:145:32;9310:296:53;1576:43:32;;;;;;;;;;;;1618:1;1576:43;;559:23:13;;;;;;;;;;-1:-1:-1;559:23:13;;;;-1:-1:-1;;;;;559:23:13;;;4985:208:40;;;;;;;;;;-1:-1:-1;4985:208:40;;;;;:::i;:::-;;:::i;1391:156:11:-;;;;;;;;;;-1:-1:-1;1391:156:11;;;;;:::i;:::-;;:::i;569:48:4:-;;;;;;;;;;-1:-1:-1;569:48:4;;;;;:::i;:::-;;;;;;;;;;;;;;3510:981:11;;;;;;;;;;-1:-1:-1;3510:981:11;;;;;:::i;:::-;;:::i;1698:1333:13:-;;;;;;:::i;:::-;;:::i;2657:388:32:-;;;;;;;;;;-1:-1:-1;2657:388:32;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2677:255:40:-;;;;;;;;;;-1:-1:-1;2677:255:40;;;;;:::i;:::-;;:::i;3252:105:4:-;;;;;;;;;;-1:-1:-1;3252:105:4;;;;;:::i;:::-;;:::i;3679:409:13:-;;;;;;:::i;:::-;;:::i;1100:139::-;;;;;;;;;;-1:-1:-1;1100:139:13;;;;;:::i;:::-;;:::i;3928:153:40:-;;;;;;;;;;-1:-1:-1;3928:153:40;;;;;:::i;:::-;;:::i;2543:215:35:-;;;;;;;;;;-1:-1:-1;2543:215:35;;;;;:::i;:::-;;:::i;2771:149:5:-;;;;;;;;;;-1:-1:-1;2771:149:5;;;;;:::i;:::-;;:::i;1561:300:40:-;1663:4;-1:-1:-1;;;;;;1698:40:40;;-1:-1:-1;;;1698:40:40;;:104;;-1:-1:-1;;;;;;;1754:48:40;;-1:-1:-1;;;1754:48:40;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:47;;;1818:36:40;1679:175;1561:300;-1:-1:-1;;1561:300:40:o;2365:89::-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:40;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:40;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:45;3394:8:40;:35::i;:::-;3323:113;;:::o;4368:708:5:-;4681:8;-1:-1:-1;;;;;4673:31:5;4694:10;4673:31;4669:68;;4713:24;;-1:-1:-1;;;4713:24:5;;4726:10;4713:24;;;1679:51:53;1652:18;;4713:24:5;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;-1:-1:-1;;;4896:40:5;;16187:10:53;16175:23;;;4896:40:5;;;16157:42:53;4921:14:5;;;;16215:18:53;;;16208:34;16130:18;;4896:40:5;15985:263:53;4833:103:5;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;3051:701:32:-;3212:34;;:::i;:::-;3262:13;;;;3258:57;;3298:17;;-1:-1:-1;;;3298:17:32;;;;;;;;;;;3258:57;3325;3332:10;3344:18;;;;3364:17;;;;3344:10;3364:17;:::i;:::-;3325:6;:57::i;:::-;3394:20;3416;3440:31;3460:10;3440:19;:31::i;:::-;3393:78;;-1:-1:-1;3393:78:32;-1:-1:-1;3588:66:32;3596:17;;;;:10;:17;:::i;:::-;3615:7;3624;3588:66;;;;;;;3633:4;3588:66;:::i;:::-;3639:14;3588:7;:66::i;:::-;3678:15;;3575:79;;-1:-1:-1;3714:10:32;;3669:76;3695:17;;;;:10;:17;:::i;:::-;3726:18;3669:76;;16187:10:53;16175:23;;;16157:42;;3726:18:32;;;;16230:2:53;16215:18;;16208:34;16130:18;3669:76:32;;;;;;;3248:504;;3051:701;;;;;:::o;4143:578:40:-;-1:-1:-1;;;;;4237:16:40;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:40;;4306:1;4276:33;;;1679:51:53;1652:18;;4276:33:40;1533:203:53;4233:87:40;4538:21;4562:34;4570:2;4574:7;735:10:45;4562:7:40;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:40;:13;-1:-1:-1;;;;;4610:21:40;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:40;;-1:-1:-1;;;;;17132:15:53;;;4654:50:40;;;17114:34:53;17164:18;;;17157:34;;;17227:15;;17207:18;;;17200:43;17049:18;;4654:50:40;16874:375:53;4606:109:40;4223:498;4143:578;;;:::o;1724:108:4:-;1531:13:35;:11;:13::i;:::-;1804:21:4::1;1813:4;1819:5;1804:8;:21::i;397:87:1:-:0;458:19;464:3;469:7;458:5;:19::i;4787:132:40:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;538:93:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2185:118:40:-;2248:7;2274:22;2288:7;2274:13;:22::i;7916:163:32:-;1531:13:35;:11;:13::i;:::-;7999:12:32::1;:28:::0;;-1:-1:-1;;;;;;7999:28:32::1;-1:-1:-1::0;;;;;7999:28:32;::::1;::::0;;::::1;::::0;;;8042:30:::1;::::0;1679:51:53;;;8042:30:32::1;::::0;1667:2:53;1652:18;8042:30:32::1;;;;;;;;7916:163:::0;:::o;1920:208:40:-;1983:7;-1:-1:-1;;;;;2006:19:40;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:40;;2075:1;2048:30;;;1679:51:53;1652:18;;2048:30:40;1533:203:53;2002:87:40;-1:-1:-1;;;;;;2105:16:40;;;;;:9;:16;;;;;;;1920:208::o;2293:101:35:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2013:216:5:-;-1:-1:-1;;;;;2198:24:5;;2217:4;2198:24;2013:216;;;;;;;:::o;2518:93:40:-;2565:13;2597:7;2590:14;;;;;:::i;3718:144::-;3803:52;735:10:45;3836:8:40;3846;3803:18;:52::i;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;1391:156:11:-;1531:13:35;:11;:13::i;:::-;1503:37:11::1;;1523:16:::0;;1503:37:::1;:::i;:::-;:19;:37::i;3510:981::-:0;3701:21;;;3677;3701;;;:15;:21;;;;;;;;:31;;;;;;;;;;3677:55;;3653:12;;3677:21;3701:31;3677:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:8;:15;3880:1;3861:20;3857:46;;3890:13;;3883:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:20:11;;-1:-1:-1;3883:20:11;;-1:-1:-1;;;;3883:20:11;3857:46;3988:1;3964:25;;;3960:46;;3998:8;-1:-1:-1;3991:15:11;;3960:46;4153:1;4129:25;;4125:267;;4170:34;4190:13;;4170:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4170:19:11;;-1:-1:-1;;;4170:34:11:i;:::-;4353:8;4363:17;:13;4377:1;4363:13;;:17;:::i;:::-;4340:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:48;;;;;4125:267;4470:13;;4455:29;;-1:-1:-1;;;4455:29:11;;;;;;;;;:::i;1698:1333:13:-;1799:9;1794:1037;1814:19;;;1794:1037;;;1854:29;1886:8;;1895:1;1886:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1854:43;-1:-1:-1;1980:50:13;1987:20;;;;1854:43;1987:20;:::i;:::-;2009;;;;7557:11:32;;;;;7534:4;7557:11;;;:5;:11;;;;;;:20;;7452:132;1980:50:13;1975:65;;2032:8;;;1975:65;2602:4;:22;2633:12;;;;:6;2696:11;;;;2725:14;;;;2633:6;2725:14;:::i;:::-;2757:15;;;;;;;;:::i;:::-;2790:16;;;;:6;:16;:::i;:::-;2602:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:991;1794:1037;1835:3;;1794:1037;;;;2988:10;-1:-1:-1;;;;;2978:43:13;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2978:45:13;;;;;;;;;;;;:::i;:::-;2961:63;;-1:-1:-1;;;2961:63:13;;;;;;;;:::i;2657:388:32:-;-1:-1:-1;;;;;;;;;;;;;;;;;2822:13:32;;;;2818:57;;2858:17;;-1:-1:-1;;;2858:17:32;;;;;;;;;;;2818:57;2886:20;2908;2932:31;2952:10;2932:19;:31::i;:::-;2885:78;;-1:-1:-1;2885:78:32;-1:-1:-1;2980:58:32;2987:17;;;;:10;:17;:::i;:::-;3006:7;3015;3024:13;2980:6;:58::i;:::-;2973:65;2657:388;-1:-1:-1;;;;;2657:388:32:o;2677:255:40:-;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;3250:9;;;;;;;;;-1:-1:-1;3250:9:40;;;3174:92;2823:10;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;2677:255;-1:-1:-1;;;2677:255:40:o;3252:105:4:-;1531:13:35;:11;:13::i;:::-;3319:31:4::1;::::0;-1:-1:-1;;;3319:31:4;;-1:-1:-1;;;;;1697:32:53;;;3319:31:4::1;::::0;::::1;1679:51:53::0;3319:8:4::1;:20;::::0;::::1;::::0;1652:18:53;;3319:31:4::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;3679:409:13:-;3958:10;3980:4;3958:27;3954:50;;3994:10;;-1:-1:-1;;;3994:10:13;;;;;;;;;;;3954:50;4014:67;4033:7;4042:5;4049:8;;4059:9;4070:10;;4014:18;:67::i;1100:139::-;1531:13:35;:11;:13::i;:::-;1175:8:13::1;:20:::0;;-1:-1:-1;;;;;;1175:20:13::1;-1:-1:-1::0;;;;;1175:20:13;::::1;::::0;;::::1;::::0;;;1210:22:::1;::::0;1679:51:53;;;1210:22:13::1;::::0;1667:2:53;1652:18;1210:22:13::1;1533:203:53::0;3928:153:40;-1:-1:-1;;;;;4039:25:40;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;2543:215:35:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:35;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:35;;2700:1:::1;2672:31;::::0;::::1;1679:51:53::0;1652:18;;2672:31:35::1;1533:203:53::0;2623:91:35::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2771:149:5:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:5;;:37;;2771:149;-1:-1:-1;;2771:149:5:o;16138:241:40:-;16201:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:40;;16263:88;;16309:31;;-1:-1:-1;;;16309:31:40;;;;;7884:25:53;;;7857:18;;16309:31:40;7738:177:53;14418:120:40;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;2718:196:4:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;-1:-1:-1;;;2874:12:4;;23623:10:53;23611:23;;2874:12:4;;;23593:42:53;23566:18;;2874:12:4;23449:192:53;5264:817:32;5577:17;5597:36;:17;:8;;:15;:17::i;:::-;2954:2:34;2824:142;5597:36:32;5577:56;;5643:15;5661:18;:8;;:16;:18::i;:::-;5643:36;-1:-1:-1;5690:43:32;5698:9;5643:36;5718:14;;;;:7;:14;:::i;:::-;5690:7;:43::i;:::-;279:2:34;-1:-1:-1;;5744:260:32;;;5785:23;5811:80;5838:13;;;;;;;;:::i;:::-;5853:14;;;;:7;:14;:::i;:::-;5869:21;:8;;:19;:21::i;:::-;5811:26;:80::i;:::-;5905:88;;-1:-1:-1;;;5905:88:32;;5785:106;;-1:-1:-1;;;;;;5905:8:32;:20;;;;:88;;5926:9;;5937:5;;5944:1;;5785:106;;5905:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:233;5744:260;-1:-1:-1;;;;;6019:55:32;;6032:5;6019:55;6039:14;;;;:7;:14;:::i;:::-;6019:55;;;16187:10:53;16175:23;;;16157:42;;16230:2;16215:18;;16208:34;;;16130:18;6019:55:32;;;;;;;5567:514;;5264:817;;;;;;;:::o;1444:228:31:-;1562:24;1577:8;1562:14;:24::i;:::-;-1:-1:-1;;;;;1553:33:31;:5;-1:-1:-1;;;;;1553:33:31;;1549:91;;1608:5;1615:24;1630:8;1615:14;:24::i;:::-;1595:45;;-1:-1:-1;;;1595:45:31;;-1:-1:-1;;;;;24610:15:53;;;1595:45:31;;;24592:34:53;24662:15;;24642:18;;;24635:43;24527:18;;1595:45:31;24380:304:53;1549:91:31;1650:15;1656:8;1650:5;:15::i;3980:773:32:-;4085:20;;4139:15;4188:80;4211:13;;;;4226:18;;;;4246:21;;;;4211:10;4246:21;:::i;:::-;4188:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4188:22:32;;-1:-1:-1;;;4188:80:32:i;:::-;4164:104;;-1:-1:-1;4164:104:32;-1:-1:-1;4278:14:32;4164:104;4295:36;;1569:1;4295:36;;;1618:1;4295:36;4278:53;-1:-1:-1;4352:67:32;4367:17;;;;:10;:17;:::i;:::-;4386:7;4395:23;;;;:10;:23;:::i;4352:67::-;4661:12;;4342:77;;-1:-1:-1;;;;;;4661:12:32;:26;4657:89;;4707:12;;;4689:57;;-1:-1:-1;;;4689:57:32;;-1:-1:-1;;;;;4707:12:32;;;;4689:39;;:57;;4729:7;;4738;;4689:57;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4657:89;4129:624;;3980:773;;;:::o;3188:766:6:-;3389:31;;:::i;:::-;3554:20;3577:26;3588:4;:14;;;3577:10;:26::i;:::-;3617:15;;;;3554:49;;-1:-1:-1;3617:19:6;3613:53;;3638:28;3650:4;:15;;;3638:11;:28::i;:::-;3755:8;-1:-1:-1;;;;;3755:13:6;;3777:12;3809:92;;;;;;;;3825:7;3809:92;;;;;;3834:25;3851:7;3834:16;:25::i;:::-;3809:92;;;;3861:8;3809:92;;;;3871:8;3809:92;;;;3899:1;3881:4;:15;;;:19;3809:92;;;;;3919:14;3755:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3677:270;3188:766;-1:-1:-1;;;;;;;3188:766:6:o;8838:795:40:-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:40;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:40;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:40;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:40;;;9157:256;-1:-1:-1;;;;;9427:16:40;;;9423:107;;-1:-1:-1;;;;;9487:13:40;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:40;-1:-1:-1;;;;;9540:21:40;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:40:o;1796:162:35:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:35;735:10:45;1855:23:35;1851:101;;1901:40;;-1:-1:-1;;;1901:40:35;;735:10:45;1901:40:35;;;1679:51:53;1652:18;;1901:40:35;1533:203:53;2286:134:4;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;16157:42:53;;;16215:18;;16208:34;;;2393:20:4;;16130:18:53;2393:20:4;;;;;;;2286:134;;:::o;9955:327:40:-;-1:-1:-1;;;;;10022:16:40;;10018:87;;10061:33;;-1:-1:-1;;;10061:33:40;;10091:1;10061:33;;;1679:51:53;1652:18;;10061:33:40;1533:203:53;10018:87:40;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;-1:-1:-1;;;;;;10184:27:40;;;10180:96;;10234:31;;-1:-1:-1;;;10234:31:40;;10262:1;10234:31;;;1679:51:53;1652:18;;10234:31:40;1533:203:53;2912:187:35;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:35;;;-1:-1:-1;;;;;;3020:17:35;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;15591:312:40:-;-1:-1:-1;;;;;15698:22:40;;15694:91;;15743:31;;-1:-1:-1;;;15743:31:40;;-1:-1:-1;;;;;1697:32:53;;15743:31:40;;;1679:51:53;1652:18;;15743:31:40;1533:203:53;15694:91:40;-1:-1:-1;;;;;15794:25:40;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15794:46:40;;;;;;;;;;15855:41;;540::53;;;15855::40;;513:18:53;15855:41:40;;;;;;;15591:312;;;:::o;16918:782::-;-1:-1:-1;;;;;17034:14:40;;;:18;17030:664;;17072:71;;-1:-1:-1;;;17072:71:40;;-1:-1:-1;;;;;17072:36:40;;;;;:71;;735:10:45;;17123:4:40;;17129:7;;17138:4;;17072:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17072:71:40;;;;;;;;-1:-1:-1;;17072:71:40;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:6;:13;17398:1;17381:18;17377:293;;17430:25;;-1:-1:-1;;;17430:25:40;;-1:-1:-1;;;;;1697:32:53;;17430:25:40;;;1679:51:53;1652:18;;17430:25:40;1533:203:53;17377:293:40;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;-1:-1:-1;;;;;;17190:51:40;;-1:-1:-1;;;17190:51:40;17186:130;;17272:25;;-1:-1:-1;;;17272:25:40;;-1:-1:-1;;;;;1697:32:53;;17272:25:40;;;1679:51:53;1652:18;;17272:25:40;1533:203:53;2237:514:11;2345:9;2340:354;2364:16;:23;2360:1;:27;2340:354;;;2522:48;2542:16;2559:1;2542:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2522:19;:48::i;:::-;2656:16;2673:1;2656:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:15;:40;2600:16;2617:1;2600:19;;;;;;;;:::i;:::-;;;;;;;:23;;;2584:40;;;;;;;;;;;;;;;:69;2625:16;2642:1;2625:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:69;;;;;;;;;;;;;;;:99;;;;;;:::i;:::-;-1:-1:-1;2389:3:11;;2340:354;;;;2709:35;2727:16;2709:35;;;;;;:::i;4631:264::-;4801:1;4787:16;;4781:23;4827:28;;;463:1;4827:28;4823:65;;4879:8;4864:24;;-1:-1:-1;;;4864:24:11;;;;;;;;:::i;2038:391:6:-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:6;-1:-1:-1;;;;;2259:14:6;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;637:698:46:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;-1:-1:-1;;;;;817:18:46;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:46;-1:-1:-1;794:41:46;-1:-1:-1;955:28:46;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:46;-1:-1:-1;;;1175:2:46;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:46;1010:282;1256:21;-1:-1:-1;1312:6:46;637:698;-1:-1:-1;;;637:698:46:o;14720:662:40:-;14880:9;:31;;;-1:-1:-1;;;;;;14893:18:40;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;-1:-1:-1;;;;;;15093:18:40;;;;;;:35;;;15124:4;-1:-1:-1;;;;;15115:13:40;:5;-1:-1:-1;;;;;15115:13:40;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15189:27;;-1:-1:-1;;;15189:27:40;;-1:-1:-1;;;;;1697:32:53;;15189:27:40;;;1679:51:53;1652:18;;15189:27:40;1533:203:53;15089:142:40;15249:9;15245:81;;;15303:7;15299:2;-1:-1:-1;;;;;15283:28:40;15292:5;-1:-1:-1;;;;;15283:28:40;;;;;;;;;;;15245:81;14913:423;14876:460;-1:-1:-1;;15346:24:40;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15346:29:40;-1:-1:-1;;;;;15346:29:40;;;;;;;;;;14720:662::o;1221:144:34:-;1281:20;1336:21;230:2;1281:20;1336:4;;:21;:::i;:::-;1328:30;;;:::i;1530:176::-;1591:21;1651:36;279:2;230;1651:4;;:36;:::i;:::-;1640:59;;;;;;;:::i;1678:131:31:-;1782:20;1788:3;1793:8;1782:5;:20::i;2190:153:34:-;2254:29;2314:22;:4;279:2;2314:4;;:22;:::i;:::-;2295:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2295:41:34;;2190:153;-1:-1:-1;;;;;;2190:153:34:o;675:252:30:-;832:20;891:6;899:7;908:11;874:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;864:56;;675:252;;;;;:::o;11462:227:40:-;11513:21;11537:40;11553:1;11557:7;11574:1;11537:7;:40::i;:::-;11513:64;-1:-1:-1;;;;;;11591:27:40;;11587:96;;11641:31;;-1:-1:-1;;;11641:31:40;;;;;7884:25:53;;;7857:18;;11641:31:40;7738:177:53;657:394:34;849:18;;787:20;;849:22;;;891:153;;1009:35;;;;;;32465:19:53;;;32500:12;;;32493:28;;;32537:12;;1009:35:34;;;;;;;;;;;;891:153;;;933:7;942:8;969:10;982:11;916:78;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;891:153;881:163;;657:394;;;;;;:::o;4650:191:6:-;4716:17;4762:10;4749:9;:23;4745:62;;4781:26;;-1:-1:-1;;;4781:26:6;;4797:9;4781:26;;;7884:25:53;7857:18;;4781:26:6;7738:177:53;4745:62:6;-1:-1:-1;4824:10:6;4650:191::o;5218:410::-;5371:15;5389:8;-1:-1:-1;;;;;5389:16:6;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;;;;;;5421:21:6;;5417:54;;5451:20;;-1:-1:-1;;;5451:20:6;;;;;;;;;;;5417:54;5545:76;-1:-1:-1;;;;;5545:32:6;;5578:10;5598:8;5609:11;5545:32;:76::i;7082:368:40:-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:40;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:40;;;;;7884:25:53;;;7857:18;;7298:31:40;7738:177:53;7248:186:40;7375:44;;-1:-1:-1;;;7375:44:40;;-1:-1:-1;;;;;33502:32:53;;7375:44:40;;;33484:51:53;33551:18;;;33544:34;;;33457:18;;7375:44:40;33310:274:53;12214:916:49;12267:7;;-1:-1:-1;;;12342:17:49;;12338:103;;-1:-1:-1;;;12379:17:49;;;-1:-1:-1;12424:2:49;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:49;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:49;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:49;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:49;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:49;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:49:o;1702:188:39:-;1829:53;;;-1:-1:-1;;;;;33847:15:53;;;1829:53:39;;;33829:34:53;33899:15;;33879:18;;;33872:43;33931:18;;;;33924:34;;;1829:53:39;;;;;;;;;;33764:18:53;;;;1829:53:39;;;;;;;;-1:-1:-1;;;;;1829:53:39;-1:-1:-1;;;1829:53:39;;;1802:81;;1822:5;;1802:19;:81::i;6376:272:40:-;6479:4;-1:-1:-1;;;;;6514:21:40;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:40;:5;-1:-1:-1;;;;;6552:16:40;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;;6008:7:40;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:40;;;6608:32;;;;6495:146;-1:-1:-1;6376:272:40:o;4059:629:39:-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:39;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:39;;-1:-1:-1;;;;;1697:32:53;;4631:40:39;;;1679:51:53;1652:18;;4631:40:39;1533:203:53;2705:151:44;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:44;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:44:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:44;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:44;;-1:-1:-1;;;;;1697:32:53;;5121:24:44;;;1679:51:53;1652:18;;5121:24:44;1533:203:53;5041:119:44;-1:-1:-1;5180:10:44;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:44;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:53:-;-1:-1:-1;;;;;;88:32:53;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:53;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:53;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:53:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:53;;1348:180;-1:-1:-1;1348:180:53:o;1741:131::-;-1:-1:-1;;;;;1816:31:53;;1806:42;;1796:70;;1862:1;1859;1852:12;1877:315;1945:6;1953;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2061:9;2048:23;2080:31;2105:5;2080:31;:::i;:::-;2130:5;2182:2;2167:18;;;;2154:32;;-1:-1:-1;;;1877:315:53:o;2197:154::-;2256:5;2301:2;2292:6;2287:3;2283:16;2279:25;2276:45;;;2317:1;2314;2307:12;2276:45;-1:-1:-1;2339:6:53;2197:154;-1:-1:-1;2197:154:53:o;2356:347::-;2407:8;2417:6;2471:3;2464:4;2456:6;2452:17;2448:27;2438:55;;2489:1;2486;2479:12;2438:55;-1:-1:-1;2512:20:53;;-1:-1:-1;;;;;2544:30:53;;2541:50;;;2587:1;2584;2577:12;2541:50;2624:4;2616:6;2612:17;2600:29;;2676:3;2669:4;2660:6;2652;2648:19;2644:30;2641:39;2638:59;;;2693:1;2690;2683:12;2638:59;2356:347;;;;;:::o;2708:1048::-;2851:6;2859;2867;2875;2883;2891;2899;2952:3;2940:9;2931:7;2927:23;2923:33;2920:53;;;2969:1;2966;2959:12;2920:53;2992;3037:7;3026:9;2992:53;:::i;:::-;2982:63;;3092:2;3081:9;3077:18;3064:32;3054:42;;3147:3;3136:9;3132:19;3119:33;-1:-1:-1;;;;;3212:2:53;3204:6;3201:14;3198:34;;;3228:1;3225;3218:12;3198:34;3267:58;3317:7;3308:6;3297:9;3293:22;3267:58;:::i;:::-;3344:8;;-1:-1:-1;3241:84:53;-1:-1:-1;3429:3:53;3414:19;;3401:33;;-1:-1:-1;3443:31:53;3401:33;3443:31;:::i;:::-;3493:5;;-1:-1:-1;3551:3:53;3536:19;;3523:33;;3568:16;;;3565:36;;;3597:1;3594;3587:12;3565:36;;3636:60;3688:7;3677:8;3666:9;3662:24;3636:60;:::i;:::-;2708:1048;;;;-1:-1:-1;2708:1048:53;;-1:-1:-1;2708:1048:53;;;;3610:86;;-1:-1:-1;;;2708:1048:53:o;4258:158::-;4320:5;4365:3;4356:6;4351:3;4347:16;4343:26;4340:46;;;4382:1;4379;4372:12;4421:657;4559:6;4567;4575;4619:9;4610:7;4606:23;4649:3;4645:2;4641:12;4638:32;;;4666:1;4663;4656:12;4638:32;4706:9;4693:23;-1:-1:-1;;;;;4731:6:53;4728:30;4725:50;;;4771:1;4768;4761:12;4725:50;4794:69;4855:7;4846:6;4835:9;4831:22;4794:69;:::i;:::-;4784:79;-1:-1:-1;;4897:2:53;-1:-1:-1;;4879:16:53;;4875:25;4872:45;;;4913:1;4910;4903:12;4872:45;;4951:2;4940:9;4936:18;4926:28;;5004:2;4993:9;4989:18;4976:32;5017:31;5042:5;5017:31;:::i;:::-;5067:5;5057:15;;;4421:657;;;;;:::o;5241:469::-;5401:4;5443:3;5432:9;5428:19;5420:27;;5480:6;5474:13;5463:9;5456:32;-1:-1:-1;;;;;5548:4:53;5540:6;5536:17;5530:24;5526:49;5519:4;5508:9;5504:20;5497:79;5623:4;5615:6;5611:17;5605:24;5638:66;5698:4;5687:9;5683:20;5669:12;5161;;5149:25;;5223:4;5212:16;;;5206:23;5190:14;;5183:47;5083:153;5638:66;;5241:469;;;;:::o;5715:456::-;5792:6;5800;5808;5861:2;5849:9;5840:7;5836:23;5832:32;5829:52;;;5877:1;5874;5867:12;5829:52;5916:9;5903:23;5935:31;5960:5;5935:31;:::i;:::-;5985:5;-1:-1:-1;6042:2:53;6027:18;;6014:32;6055:33;6014:32;6055:33;:::i;:::-;5715:456;;6107:7;;-1:-1:-1;;;6161:2:53;6146:18;;;;6133:32;;5715:456::o;6176:163::-;6243:20;;6303:10;6292:22;;6282:33;;6272:61;;6329:1;6326;6319:12;6272:61;6176:163;;;:::o;6344:252::-;6411:6;6419;6472:2;6460:9;6451:7;6447:23;6443:32;6440:52;;;6488:1;6485;6478:12;6440:52;6511:28;6529:9;6511:28;:::i;6601:159::-;6668:20;;6728:6;6717:18;;6707:29;;6697:57;;6750:1;6747;6740:12;6765:256;6831:6;6839;6892:2;6880:9;6871:7;6867:23;6863:32;6860:52;;;6908:1;6905;6898:12;6860:52;6931:28;6949:9;6931:28;:::i;:::-;6921:38;;6978:37;7011:2;7000:9;6996:18;6978:37;:::i;:::-;6968:47;;6765:256;;;;;:::o;7486:247::-;7545:6;7598:2;7586:9;7577:7;7573:23;7569:32;7566:52;;;7614:1;7611;7604:12;7566:52;7653:9;7640:23;7672:31;7697:5;7672:31;:::i;8125:670::-;8239:6;8247;8255;8263;8316:3;8304:9;8295:7;8291:23;8287:33;8284:53;;;8333:1;8330;8323:12;8284:53;8356;8401:7;8390:9;8356:53;:::i;:::-;8346:63;;8460:2;8449:9;8445:18;8432:32;-1:-1:-1;;;;;8479:6:53;8476:30;8473:50;;;8519:1;8516;8509:12;8473:50;8558:58;8608:7;8599:6;8588:9;8584:22;8558:58;:::i;:::-;8635:8;;-1:-1:-1;8532:84:53;-1:-1:-1;;8720:3:53;8705:19;;8692:33;8734:31;8692:33;8734:31;:::i;:::-;8125:670;;;;-1:-1:-1;8125:670:53;;-1:-1:-1;;8125:670:53:o;8800:118::-;8886:5;8879:13;8872:21;8865:5;8862:32;8852:60;;8908:1;8905;8898:12;8923:382;8988:6;8996;9049:2;9037:9;9028:7;9024:23;9020:32;9017:52;;;9065:1;9062;9055:12;9017:52;9104:9;9091:23;9123:31;9148:5;9123:31;:::i;:::-;9173:5;-1:-1:-1;9230:2:53;9215:18;;9202:32;9243:30;9202:32;9243:30;:::i;:::-;9292:7;9282:17;;;8923:382;;;;;:::o;9611:127::-;9672:10;9667:3;9663:20;9660:1;9653:31;9703:4;9700:1;9693:15;9727:4;9724:1;9717:15;9743:251;9815:2;9809:9;;;9845:15;;-1:-1:-1;;;;;9875:34:53;;9911:22;;;9872:62;9869:88;;;9937:18;;:::i;:::-;9973:2;9966:22;9743:251;:::o;9999:253::-;10071:2;10065:9;10113:4;10101:17;;-1:-1:-1;;;;;10133:34:53;;10169:22;;;10130:62;10127:88;;;10195:18;;:::i;10257:275::-;10328:2;10322:9;10393:2;10374:13;;-1:-1:-1;;10370:27:53;10358:40;;-1:-1:-1;;;;;10413:34:53;;10449:22;;;10410:62;10407:88;;;10475:18;;:::i;:::-;10511:2;10504:22;10257:275;;-1:-1:-1;10257:275:53:o;10537:186::-;10585:4;-1:-1:-1;;;;;10610:6:53;10607:30;10604:56;;;10640:18;;:::i;:::-;-1:-1:-1;10706:2:53;10685:15;-1:-1:-1;;10681:29:53;10712:4;10677:40;;10537:186::o;10728:462::-;10770:5;10823:3;10816:4;10808:6;10804:17;10800:27;10790:55;;10841:1;10838;10831:12;10790:55;10877:6;10864:20;10908:48;10924:31;10952:2;10924:31;:::i;:::-;10908:48;:::i;:::-;10981:2;10972:7;10965:19;11027:3;11020:4;11015:2;11007:6;11003:15;10999:26;10996:35;10993:55;;;11044:1;11041;11034:12;10993:55;11109:2;11102:4;11094:6;11090:17;11083:4;11074:7;11070:18;11057:55;11157:1;11132:16;;;11150:4;11128:27;11121:38;;;;11136:7;10728:462;-1:-1:-1;;;10728:462:53:o;11195:665::-;11290:6;11298;11306;11314;11367:3;11355:9;11346:7;11342:23;11338:33;11335:53;;;11384:1;11381;11374:12;11335:53;11423:9;11410:23;11442:31;11467:5;11442:31;:::i;:::-;11492:5;-1:-1:-1;11549:2:53;11534:18;;11521:32;11562:33;11521:32;11562:33;:::i;:::-;11614:7;-1:-1:-1;11668:2:53;11653:18;;11640:32;;-1:-1:-1;11723:2:53;11708:18;;11695:32;-1:-1:-1;;;;;11739:30:53;;11736:50;;;11782:1;11779;11772:12;11736:50;11805:49;11846:7;11837:6;11826:9;11822:22;11805:49;:::i;:::-;11795:59;;;11195:665;;;;;;;:::o;11865:395::-;11956:8;11966:6;12020:3;12013:4;12005:6;12001:17;11997:27;11987:55;;12038:1;12035;12028:12;11987:55;-1:-1:-1;12061:20:53;;-1:-1:-1;;;;;12093:30:53;;12090:50;;;12136:1;12133;12126:12;12090:50;12173:4;12165:6;12161:17;12149:29;;12233:3;12226:4;12216:6;12213:1;12209:14;12201:6;12197:27;12193:38;12190:47;12187:67;;;12250:1;12247;12240:12;12265:504;12390:6;12398;12451:2;12439:9;12430:7;12426:23;12422:32;12419:52;;;12467:1;12464;12457:12;12419:52;12507:9;12494:23;-1:-1:-1;;;;;12532:6:53;12529:30;12526:50;;;12572:1;12569;12562:12;12526:50;12611:98;12701:7;12692:6;12681:9;12677:22;12611:98;:::i;:::-;12728:8;;12585:124;;-1:-1:-1;12265:504:53;-1:-1:-1;;;;12265:504:53:o;12774:184::-;12832:6;12885:2;12873:9;12864:7;12860:23;12856:32;12853:52;;;12901:1;12898;12891:12;12853:52;12924:28;12942:9;12924:28;:::i;13145:553::-;13231:6;13239;13247;13255;13308:2;13296:9;13287:7;13283:23;13279:32;13276:52;;;13324:1;13321;13314:12;13276:52;13347:28;13365:9;13347:28;:::i;:::-;13337:38;;13394:37;13427:2;13416:9;13412:18;13394:37;:::i;:::-;13384:47;;13482:2;13471:9;13467:18;13454:32;-1:-1:-1;;;;;13501:6:53;13498:30;13495:50;;;13541:1;13538;13531:12;13495:50;13580:58;13630:7;13621:6;13610:9;13606:22;13580:58;:::i;:::-;13145:553;;;;-1:-1:-1;13657:8:53;-1:-1:-1;;;;13145:553:53:o;14206:489::-;14300:6;14308;14361:2;14349:9;14340:7;14336:23;14332:32;14329:52;;;14377:1;14374;14367:12;14329:52;14417:9;14404:23;-1:-1:-1;;;;;14442:6:53;14439:30;14436:50;;;14482:1;14479;14472:12;14436:50;14505:69;14566:7;14557:6;14546:9;14542:22;14505:69;:::i;:::-;14495:79;;;14624:2;14613:9;14609:18;14596:32;14637:28;14659:5;14637:28;:::i;14700:261::-;5161:12;;5149:25;;5223:4;5212:16;;;5206:23;5190:14;;;5183:47;14894:2;14879:18;;14906:49;5083:153;14966:388;15034:6;15042;15095:2;15083:9;15074:7;15070:23;15066:32;15063:52;;;15111:1;15108;15101:12;15063:52;15150:9;15137:23;15169:31;15194:5;15169:31;:::i;:::-;15219:5;-1:-1:-1;15276:2:53;15261:18;;15248:32;15289:33;15248:32;15289:33;:::i;15359:236::-;15444:6;15497:2;15485:9;15476:7;15472:23;15468:32;15465:52;;;15513:1;15510;15503:12;15465:52;15536:53;15581:7;15570:9;15536:53;:::i;15600:380::-;15679:1;15675:12;;;;15722;;;15743:61;;15797:4;15789:6;15785:17;15775:27;;15743:61;15850:2;15842:6;15839:14;15819:18;15816:38;15813:161;;15896:10;15891:3;15887:20;15884:1;15877:31;15931:4;15928:1;15921:15;15959:4;15956:1;15949:15;16253:348;16342:6;16395:2;16383:9;16374:7;16370:23;16366:32;16363:52;;;16411:1;16408;16401:12;16363:52;16437:22;;:::i;:::-;16495:9;16482:23;16475:5;16468:38;16566:2;16555:9;16551:18;16538:32;16533:2;16526:5;16522:14;16515:56;16590:5;16580:15;;;16253:348;;;;:::o;17254:1575::-;17446:9;-1:-1:-1;;;;;17521:2:53;17513:6;17510:14;17507:40;;;17527:18;;:::i;:::-;17573:6;17570:1;17566:14;17599:4;17623:28;17647:2;17643;17639:11;17623:28;:::i;:::-;17685:19;;;17755:14;;;;17720:12;;;;17792:14;17781:26;;17778:46;;;17820:1;17817;17810:12;17778:46;17844:5;17858:938;17874:6;17869:3;17866:15;17858:938;;;17960:3;17947:17;17996:2;17983:11;17980:19;17977:109;;;18040:1;18069:2;18065;18058:14;17977:109;18109:23;;18177:4;18156:14;18152:23;;;18148:34;18145:124;;;18223:1;18252:2;18248;18241:14;18145:124;18297:22;;:::i;:::-;18348:21;18366:2;18348:21;:::i;:::-;18339:7;18332:38;18408:30;18434:2;18430;18426:11;18408:30;:::i;:::-;18403:2;18394:7;18390:16;18383:56;18462:2;18512;18508;18504:11;18491:25;18543:2;18535:6;18532:14;18529:104;;;18587:1;18616:2;18612;18605:14;18529:104;18671:49;18705:14;18696:6;18692:2;18688:15;18671:49;:::i;:::-;18653:16;;;18646:75;;;;-1:-1:-1;18734:20:53;;-1:-1:-1;18774:12:53;;;;17891;;17858:938;;;-1:-1:-1;18818:5:53;17254:1575;-1:-1:-1;;;;;;;17254:1575:53:o;18834:331::-;18939:9;18950;18992:8;18980:10;18977:24;18974:44;;;19014:1;19011;19004:12;18974:44;19043:6;19033:8;19030:20;19027:40;;;19063:1;19060;19053:12;19027:40;-1:-1:-1;;19089:23:53;;;19134:25;;;;;-1:-1:-1;18834:331:53:o;19170:476::-;19361:3;19399:6;19393:13;19415:66;19474:6;19469:3;19462:4;19454:6;19450:17;19415:66;:::i;:::-;19503:16;;19556:6;19548;19503:16;19528:35;19620:1;19582:18;;19609:13;;;-1:-1:-1;19582:18:53;;19170:476;-1:-1:-1;;;19170:476:53:o;19651:266::-;19739:6;19734:3;19727:19;19791:6;19784:5;19777:4;19772:3;19768:14;19755:43;-1:-1:-1;19843:1:53;19818:16;;;19836:4;19814:27;;;19807:38;;;;19899:2;19878:15;;;-1:-1:-1;;19874:29:53;19865:39;;;19861:50;;19651:266::o;19922:244::-;20079:2;20068:9;20061:21;20042:4;20099:61;20156:2;20145:9;20141:18;20133:6;20125;20099:61;:::i;20171:127::-;20232:10;20227:3;20223:20;20220:1;20213:31;20263:4;20260:1;20253:15;20287:4;20284:1;20277:15;20303:331;20402:4;20460:11;20447:25;20554:3;20550:8;20539;20523:14;20519:29;20515:44;20495:18;20491:69;20481:97;;20574:1;20571;20564:12;20481:97;20595:33;;;;;20303:331;-1:-1:-1;;20303:331:53:o;20639:521::-;20716:4;20722:6;20782:11;20769:25;20876:2;20872:7;20861:8;20845:14;20841:29;20837:43;20817:18;20813:68;20803:96;;20895:1;20892;20885:12;20803:96;20922:33;;20974:20;;;-1:-1:-1;;;;;;21006:30:53;;21003:50;;;21049:1;21046;21039:12;21003:50;21082:4;21070:17;;-1:-1:-1;21113:14:53;21109:27;;;21099:38;;21096:58;;;21150:1;21147;21140:12;21165:129;-1:-1:-1;;;;;21243:5:53;21239:30;21232:5;21229:41;21219:69;;21284:1;21281;21274:12;21299:992;21677:10;21650:25;21668:6;21650:25;:::i;:::-;21646:42;21635:9;21628:61;21752:4;21744:6;21740:17;21727:31;21720:4;21709:9;21705:20;21698:61;21609:4;21806;21798:6;21794:17;21781:31;21821:30;21845:5;21821:30;:::i;:::-;-1:-1:-1;;;;;21893:5:53;21889:30;21882:4;21871:9;21867:20;21860:60;;21956:6;21951:2;21940:9;21936:18;21929:34;22000:3;21994;21983:9;21979:19;21972:32;22027:62;22084:3;22073:9;22069:19;22061:6;22053;22027:62;:::i;:::-;-1:-1:-1;;;;;22126:32:53;;22146:3;22105:19;;22098:61;22196:22;;;22190:3;22175:19;;22168:51;22236:49;22200:6;22270;22262;22236:49;:::i;:::-;22228:57;21299:992;-1:-1:-1;;;;;;;;;;21299:992:53:o;22296:647::-;22375:6;22428:2;22416:9;22407:7;22403:23;22399:32;22396:52;;;22444:1;22441;22434:12;22396:52;22477:9;22471:16;-1:-1:-1;;;;;22502:6:53;22499:30;22496:50;;;22542:1;22539;22532:12;22496:50;22565:22;;22618:4;22610:13;;22606:27;-1:-1:-1;22596:55:53;;22647:1;22644;22637:12;22596:55;22676:2;22670:9;22701:48;22717:31;22745:2;22717:31;:::i;22701:48::-;22772:2;22765:5;22758:17;22812:7;22807:2;22802;22798;22794:11;22790:20;22787:33;22784:53;;;22833:1;22830;22823:12;22784:53;22846:67;22910:2;22905;22898:5;22894:14;22889:2;22885;22881:11;22846:67;:::i;22948:496::-;23127:3;23165:6;23159:13;23181:66;23240:6;23235:3;23228:4;23220:6;23216:17;23181:66;:::i;:::-;23310:13;;23269:16;;;;23332:70;23310:13;23269:16;23379:4;23367:17;;23332:70;:::i;:::-;23418:20;;22948:496;-1:-1:-1;;;;22948:496:53:o;23646:245::-;23704:6;23757:2;23745:9;23736:7;23732:23;23728:32;23725:52;;;23773:1;23770;23763:12;23725:52;23812:9;23799:23;23831:30;23855:5;23831:30;:::i;23896:479::-;24163:1;24159;24154:3;24150:11;24146:19;24138:6;24134:32;24123:9;24116:51;24203:6;24198:2;24187:9;24183:18;24176:34;24258:6;24250;24246:19;24241:2;24230:9;24226:18;24219:47;24302:3;24297:2;24286:9;24282:18;24275:31;24097:4;24323:46;24364:3;24353:9;24349:19;24341:6;24323:46;:::i;24689:379::-;24882:2;24871:9;24864:21;24845:4;24908:45;24949:2;24938:9;24934:18;24926:6;24908:45;:::i;:::-;25001:9;24993:6;24989:22;24984:2;24973:9;24969:18;24962:50;25029:33;25055:6;25047;25029:33;:::i;25073:245::-;25140:6;25193:2;25181:9;25172:7;25168:23;25164:32;25161:52;;;25209:1;25206;25199:12;25161:52;25241:9;25235:16;25260:28;25282:5;25260:28;:::i;25323:891::-;25546:2;25535:9;25528:21;25604:10;25595:6;25589:13;25585:30;25580:2;25569:9;25565:18;25558:58;25670:4;25662:6;25658:17;25652:24;25647:2;25636:9;25632:18;25625:52;25509:4;25724:2;25716:6;25712:15;25706:22;25765:4;25759:3;25748:9;25744:19;25737:33;25793:52;25840:3;25829:9;25825:19;25811:12;25793:52;:::i;:::-;25779:66;;25894:2;25886:6;25882:15;25876:22;25968:2;25964:7;25952:9;25944:6;25940:22;25936:36;25929:4;25918:9;25914:20;25907:66;25996:41;26030:6;26014:14;25996:41;:::i;:::-;26106:3;26094:16;;;;26088:23;26081:31;26074:39;26068:3;26053:19;;26046:68;-1:-1:-1;;;;;;;;26175:32:53;;;;26168:4;26153:20;;;26146:62;25982:55;25323:891::o;26219:284::-;26289:5;26337:4;26325:9;26320:3;26316:19;26312:30;26309:50;;;26355:1;26352;26345:12;26309:50;26377:22;;:::i;:::-;26368:31;;26428:9;26422:16;26415:5;26408:31;26492:2;26481:9;26477:18;26471:25;26466:2;26459:5;26455:14;26448:49;26219:284;;;;:::o;26508:525::-;26612:6;26665:3;26653:9;26644:7;26640:23;26636:33;26633:53;;;26682:1;26679;26672:12;26633:53;26708:22;;:::i;:::-;26759:9;26753:16;26746:5;26739:31;26815:2;26804:9;26800:18;26794:25;26828:32;26852:7;26828:32;:::i;:::-;26887:2;26876:14;;26869:31;26932:70;26994:7;26989:2;26974:18;;26932:70;:::i;:::-;26927:2;26916:14;;26909:94;26920:5;26508:525;-1:-1:-1;;;26508:525:53:o;27038:489::-;-1:-1:-1;;;;;27307:15:53;;;27289:34;;27359:15;;27354:2;27339:18;;27332:43;27406:2;27391:18;;27384:34;;;27454:3;27449:2;27434:18;;27427:31;;;27232:4;;27475:46;;27501:19;;27493:6;27475:46;:::i;27532:249::-;27601:6;27654:2;27642:9;27633:7;27629:23;27625:32;27622:52;;;27670:1;27667;27660:12;27622:52;27702:9;27696:16;27721:30;27745:5;27721:30;:::i;27911:542::-;28012:2;28007:3;28004:11;28001:446;;;28048:1;28072:5;28069:1;28062:16;28116:4;28113:1;28103:18;28186:2;28174:10;28170:19;28167:1;28163:27;28157:4;28153:38;28222:4;28210:10;28207:20;28204:47;;;-1:-1:-1;28245:4:53;28204:47;28300:2;28295:3;28291:12;28288:1;28284:20;28278:4;28274:31;28264:41;;28355:82;28373:2;28366:5;28363:13;28355:82;;;28418:17;;;28399:1;28388:13;28355:82;;;28359:3;;;27911:542;;;:::o;28629:1341::-;28753:3;28747:10;-1:-1:-1;;;;;28772:6:53;28769:30;28766:56;;;28802:18;;:::i;:::-;28831:96;28920:6;28880:38;28912:4;28906:11;28880:38;:::i;:::-;28874:4;28831:96;:::i;:::-;28982:4;;29039:2;29028:14;;29056:1;29051:662;;;;29757:1;29774:6;29771:89;;;-1:-1:-1;29826:19:53;;;29820:26;29771:89;-1:-1:-1;;28586:1:53;28582:11;;;28578:24;28574:29;28564:40;28610:1;28606:11;;;28561:57;29873:81;;29021:943;;29051:662;27858:1;27851:14;;;27895:4;27882:18;;-1:-1:-1;;29087:20:53;;;29204:236;29218:7;29215:1;29212:14;29204:236;;;29307:19;;;29301:26;29286:42;;29399:27;;;;29367:1;29355:14;;;;29234:19;;29204:236;;;29208:3;29468:6;29459:7;29456:19;29453:201;;;29529:19;;;29523:26;-1:-1:-1;;29612:1:53;29608:14;;;29624:3;29604:24;29600:37;29596:42;29581:58;29566:74;;29453:201;-1:-1:-1;;;;;29700:1:53;29684:14;;;29680:22;29667:36;;-1:-1:-1;28629:1341:53:o;29975:1164::-;30191:4;30220:2;30260;30249:9;30245:18;30290:2;30279:9;30272:21;30313:6;30348;30342:13;30379:6;30371;30364:22;30405:2;30395:12;;30438:2;30427:9;30423:18;30416:25;;30500:2;30490:6;30487:1;30483:14;30472:9;30468:30;30464:39;30538:2;30530:6;30526:15;30559:1;30569:541;30583:6;30580:1;30577:13;30569:541;;;30648:22;;;-1:-1:-1;;30644:36:53;30632:49;;30704:13;;30776:9;;30787:10;30772:26;30757:42;;30846:11;;;30840:18;30860:6;30836:31;30819:15;;;30812:56;30907:11;;30901:18;30740:4;30939:15;;;30932:27;;;30982:48;31014:15;;;30901:18;30982:48;:::i;:::-;31088:12;;;;30972:58;-1:-1:-1;;;31053:15:53;;;;30605:1;30598:9;30569:541;;;-1:-1:-1;31127:6:53;;29975:1164;-1:-1:-1;;;;;;;;29975:1164:53:o;31144:259::-;31244:6;31297:2;31285:9;31276:7;31272:23;31268:32;31265:52;;;31313:1;31310;31303:12;31265:52;31336:61;31389:7;31378:9;31336:61;:::i;31540:255::-;31660:19;;31699:2;31691:11;;31688:101;;;-1:-1:-1;;31760:2:53;31756:12;;;31753:1;31749:20;31745:33;31734:45;31540:255;;;;:::o;31800:503::-;32037:3;32015:16;;;-1:-1:-1;;;;;;32011:51:53;31999:64;;32118:3;32096:16;;;-1:-1:-1;;;;;;32092:43:53;32088:1;32079:11;;32072:64;32159:13;;-1:-1:-1;;32181:75:53;32159:13;32244:2;32235:12;;32228:4;32216:17;;32181:75;:::i;:::-;32276:16;;;;32294:2;32272:25;;31800:503;-1:-1:-1;;;;31800:503:53:o;32560:489::-;32803:6;32798:3;32791:19;32840:6;32835:2;32830:3;32826:12;32819:28;32877:6;32872:2;32867:3;32863:12;32856:28;32773:3;32913:6;32907:13;32929:73;32995:6;32990:2;32985:3;32981:12;32976:2;32968:6;32964:15;32929:73;:::i;:::-;33022:16;;;;33040:2;33018:25;;32560:489;-1:-1:-1;;;;;32560:489:53:o;33054:251::-;33124:6;33177:2;33165:9;33156:7;33152:23;33148:32;33145:52;;;33193:1;33190;33183:12;33145:52;33225:9;33219:16;33244:31;33269:5;33244:31;:::i;33969:287::-;34098:3;34136:6;34130:13;34152:66;34211:6;34206:3;34199:4;34191:6;34187:17;34152:66;:::i","linkReferences":{},"immutableReferences":{"598":[{"start":1206,"length":32},{"start":2360,"length":32},{"start":4503,"length":32},{"start":5164,"length":32},{"start":5807,"length":32},{"start":7361,"length":32},{"start":8352,"length":32},{"start":8537,"length":32}]}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","mint(address,uint256)":"40c10f19","msgInspector()":"111ecdad","name()":"06fdde03","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setApprovalForAll(address,bool)":"a22cb465","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","token()":"fc0c546a","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"In the case of ONFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the underlying ERC721 implementation (ie. this contract).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/MyONFT721Mock.sol\":\"MyONFT721Mock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/MyONFT721.sol\":{\"keccak256\":\"0x3549a204810fa418d927e6e7425fd95b63907766d5e8717958f9fa317ef64dd1\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c73af8c4ff454af2293c01d0df026b2ca624f63259b64759254cc38809e9385f\",\"dweb:/ipfs/QmRPx7XGqQh4dtYXeAARzCjPUkEg2YKmNmDdqsV1gPppcp\"]},\"contracts/mocks/MyONFT721Mock.sol\":{\"keccak256\":\"0x583584810df574018440b15fff208a920bcd443d5e304b0084d149bc199a341e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0f03d74885a9e6bf228b9d55e6e99a215f3567f645ee7191bd5f5b0c359f6469\",\"dweb:/ipfs/QmTDeZ7RnhJZkN2uVef4D2FMEyANi3Jj221oWHxfUKAYTJ\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol\":{\"keccak256\":\"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4\",\"dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"In the case of ONFT where the contract IS the token, approval is NOT required.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"name()":{"details":"See {IERC721Metadata-name}."},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the ONFT721 contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the underlying ERC721 implementation (ie. this contract)."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/mocks/MyONFT721Mock.sol":"MyONFT721Mock"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/MyONFT721.sol":{"keccak256":"0x3549a204810fa418d927e6e7425fd95b63907766d5e8717958f9fa317ef64dd1","urls":["bzz-raw://c73af8c4ff454af2293c01d0df026b2ca624f63259b64759254cc38809e9385f","dweb:/ipfs/QmRPx7XGqQh4dtYXeAARzCjPUkEg2YKmNmDdqsV1gPppcp"],"license":"UNLICENSED"},"contracts/mocks/MyONFT721Mock.sol":{"keccak256":"0x583584810df574018440b15fff208a920bcd443d5e304b0084d149bc199a341e","urls":["bzz-raw://0f03d74885a9e6bf228b9d55e6e99a215f3567f645ee7191bd5f5b0c359f6469","dweb:/ipfs/QmTDeZ7RnhJZkN2uVef4D2FMEyANi3Jj221oWHxfUKAYTJ"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol":{"keccak256":"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04","urls":["bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4","dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":1} \ No newline at end of file diff --git a/examples/onft721/out/OApp.sol/OApp.json b/examples/onft721/out/OApp.sol/OApp.json deleted file mode 100644 index 64af76fc6..000000000 --- a/examples/onft721/out/OApp.sol/OApp.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","endpoint()":"5e280f11","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"constructor\":{\"details\":\"Constructor to initialize the OApp with the provided endpoint and owner.\",\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_endpoint\":\"The address of the LOCAL LayerZero endpoint.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OApp\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":\"OApp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"constructor":{"details":"Constructor to initialize the OApp with the provided endpoint and owner.","params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_endpoint":"The address of the LOCAL LayerZero endpoint."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":"OApp"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/examples/onft721/out/OAppCore.sol/OAppCore.json b/examples/onft721/out/OAppCore.sol/OAppCore.json deleted file mode 100644 index 416ca2040..000000000 --- a/examples/onft721/out/OAppCore.sol/OAppCore.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the IOAppCore interface with basic OApp configurations.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Constructor to initialize the OAppCore with the provided endpoint and delegate.The delegate typically should be set as the owner of the contract.\",\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_endpoint\":\"The address of the LOCAL Layer Zero endpoint.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"endpoint\":{\"return\":\"The LayerZero endpoint as an interface.\",\"returns\":{\"_0\":\"The LayerZero endpoint as an interface.\"}},\"peers\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"return\":\"peer The peer address (OApp instance) associated with the corresponding endpoint.\",\"returns\":{\"peer\":\"The peer address (OApp instance) associated with the corresponding endpoint.\"}}},\"title\":\"OAppCore\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":\"OAppCore\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Constructor to initialize the OAppCore with the provided endpoint and delegate.The delegate typically should be set as the owner of the contract.","params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_endpoint":"The address of the LOCAL Layer Zero endpoint."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":"OAppCore"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":4} \ No newline at end of file diff --git a/examples/onft721/out/OAppOptionsType3.sol/OAppOptionsType3.json b/examples/onft721/out/OAppOptionsType3.sol/OAppOptionsType3.json deleted file mode 100644 index e8263eca0..000000000 --- a/examples/onft721/out/OAppOptionsType3.sol/OAppOptionsType3.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"combineOptions(uint32,uint16,bytes)":"bc70b354","enforcedOptions(uint32,uint16)":"5535d461","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"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\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the IOAppOptionsType3 interface with type 3 options.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OAppOptionsType3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":\"OAppOptionsType3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":"OAppOptionsType3"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":11} \ No newline at end of file diff --git a/examples/onft721/out/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json b/examples/onft721/out/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json deleted file mode 100644 index 326faa369..000000000 --- a/examples/onft721/out/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isPeer(uint32,bytes32)":"5a0dfe4d","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","oApp()":"52ae2879","owner()":"8da5cb5b","preCrime()":"b731ea0a","renounceOwnership()":"715018a6","setPreCrime(address)":"d4243885","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"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\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract serving as the base for preCrime simulation functionality in an OApp.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"isPeer(uint32,bytes32)\":{\"details\":\"checks if the specified peer is considered 'trusted' by the OApp.\",\"params\":{\"_eid\":\"The endpoint Id to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"preCrime\":{\"details\":\"Retrieves the address of the preCrime contract implementation.\",\"return\":\"The address of the preCrime contract.\",\"returns\":{\"_0\":\"The address of the preCrime contract.\"}}},\"title\":\"OAppPreCrimeSimulator\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":\"OAppPreCrimeSimulator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"isPeer(uint32,bytes32)":{"details":"checks if the specified peer is considered 'trusted' by the OApp.","params":{"_eid":"The endpoint Id to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":"OAppPreCrimeSimulator"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":13} \ No newline at end of file diff --git a/examples/onft721/out/OAppReceiver.sol/OAppReceiver.json b/examples/onft721/out/OAppReceiver.sol/OAppReceiver.json deleted file mode 100644 index 8fdbb8346..000000000 --- a/examples/onft721/out/OAppReceiver.sol/OAppReceiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","endpoint()":"5e280f11","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oAppVersion()\":{\"details\":\"Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented. ie. this is a RECEIVE only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\",\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OAppReceiver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":\"OAppReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oAppVersion()":{"details":"Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented. ie. this is a RECEIVE only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.","returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":"OAppReceiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":5} \ No newline at end of file diff --git a/examples/onft721/out/OAppSender.sol/OAppSender.json b/examples/onft721/out/OAppSender.sol/OAppSender.json deleted file mode 100644 index 952c5e3a4..000000000 --- a/examples/onft721/out/OAppSender.sol/OAppSender.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"oAppVersion()\":{\"details\":\"Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented. ie. this is a SEND only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\",\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OAppSender\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":\"OAppSender\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"oAppVersion()":{"details":"Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented. ie. this is a SEND only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions","returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":"OAppSender"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":6} \ No newline at end of file diff --git a/examples/onft721/out/ONFT721.sol/ONFT721.json b/examples/onft721/out/ONFT721.sol/ONFT721.json deleted file mode 100644 index 4c79772fd..000000000 --- a/examples/onft721/out/ONFT721.sol/ONFT721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","name()":"06fdde03","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setApprovalForAll(address,bool)":"a22cb465","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","token()":"fc0c546a","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ONFT721 is an ERC-721 token that extends the functionality of the ONFT721Core contract.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"In the case of ONFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"constructor\":{\"details\":\"Constructor for the ONFT721 contract.\",\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_lzEndpoint\":\"The LayerZero endpoint address.\",\"_name\":\"The name of the ONFT.\",\"_symbol\":\"The symbol of the ONFT.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"ONFT721 Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the underlying ERC721 implementation (ie. this contract).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol\":\"ONFT721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol\":{\"keccak256\":\"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4\",\"dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"In the case of ONFT where the contract IS the token, approval is NOT required.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"constructor":{"details":"Constructor for the ONFT721 contract.","params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_lzEndpoint":"The LayerZero endpoint address.","_name":"The name of the ONFT.","_symbol":"The symbol of the ONFT."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"name()":{"details":"See {IERC721Metadata-name}."},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the ONFT721 contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the underlying ERC721 implementation (ie. this contract)."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol":"ONFT721"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol":{"keccak256":"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04","urls":["bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4","dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":31} \ No newline at end of file diff --git a/examples/onft721/out/ONFT721Core.sol/ONFT721Core.json b/examples/onft721/out/ONFT721Core.sol/ONFT721Core.json deleted file mode 100644 index b61b2c2c3..000000000 --- a/examples/onft721/out/ONFT721Core.sol/ONFT721Core.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","token()":"fc0c546a","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract for an ONFT721 token.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"constructor\":{\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_lzEndpoint\":\"The address of the LayerZero endpoint.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"token()\":{\"returns\":{\"_0\":\"token The address of the ERC721 token implementation.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"ONFT721Core\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the OFT contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the ONFT.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol\":\"ONFT721Core\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"constructor":{"params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_lzEndpoint":"The address of the LayerZero endpoint."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"token()":{"returns":{"_0":"token The address of the ERC721 token implementation."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the OFT contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the token associated with the ONFT."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol":"ONFT721Core"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":32} \ No newline at end of file diff --git a/examples/onft721/out/ONFT721MsgCodec.sol/ONFT721MsgCodec.json b/examples/onft721/out/ONFT721MsgCodec.sol/ONFT721MsgCodec.json deleted file mode 100644 index f5126a91a..000000000 --- a/examples/onft721/out/ONFT721MsgCodec.sol/ONFT721MsgCodec.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b63cb0c5a56b0aee6363d2c07d16d7970609a9ef16a5e0317b43f703a118d83e64736f6c63430008160033","sourceMap":"160:2808:34:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;160:2808:34;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b63cb0c5a56b0aee6363d2c07d16d7970609a9ef16a5e0317b43f703a118d83e64736f6c63430008160033","sourceMap":"160:2808:34:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ONFT721MsgCodec\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for encoding and decoding ONFT721 LayerZero messages.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":\"ONFT721MsgCodec\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol":"ONFT721MsgCodec"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"}},"version":1},"id":34} \ No newline at end of file diff --git a/examples/onft721/out/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.json b/examples/onft721/out/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.json deleted file mode 100644 index 47e8e0c7f..000000000 --- a/examples/onft721/out/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209102ec16382aa99603092f666f91bfd44facf1ec9861ccf175b0ab90500ffdaf64736f6c63430008160033","sourceMap":"168:2673:30:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;168:2673:30;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209102ec16382aa99603092f666f91bfd44facf1ec9861ccf175b0ab90500ffdaf64736f6c63430008160033","sourceMap":"168:2673:30:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ONFT Composed Message Codec\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for encoding and decoding ONFT composed messages.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":\"ONFTComposeMsgCodec\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol":"ONFTComposeMsgCodec"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"}},"version":1},"id":30} \ No newline at end of file diff --git a/examples/onft721/out/OptionsBuilder.sol/OptionsBuilder.json b/examples/onft721/out/OptionsBuilder.sol/OptionsBuilder.json deleted file mode 100644 index 4b355feda..000000000 --- a/examples/onft721/out/OptionsBuilder.sol/OptionsBuilder.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"InvalidOptionType","inputs":[{"name":"optionType","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"InvalidSize","inputs":[{"name":"max","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd482397aa9178320c8ad0b7c8cba57bf8ef73d8ee4155a5f7c1cc64788ef3f064736f6c63430008160033","sourceMap":"524:7881:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;524:7881:12;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd482397aa9178320c8ad0b7c8cba57bf8ef73d8ee4155a5f7c1cc64788ef3f064736f6c63430008160033","sourceMap":"524:7881:12:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"optionType\",\"type\":\"uint16\"}],\"name\":\"InvalidOptionType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InvalidSize\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Library for building and encoding various message options.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"OptionsBuilder\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":\"OptionsBuilder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint16","name":"optionType","type":"uint16"}],"type":"error","name":"InvalidOptionType"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InvalidSize"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":"OptionsBuilder"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":12} \ No newline at end of file diff --git a/examples/onft721/out/Ownable.sol/Ownable.json b/examples/onft721/out/Ownable.sol/Ownable.json deleted file mode 100644 index d2a1f24a0..000000000 --- a/examples/onft721/out/Ownable.sol/Ownable.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the address provided by the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":"Ownable"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":35} \ No newline at end of file diff --git a/examples/onft721/out/Packet.sol/PacketDecoder.json b/examples/onft721/out/Packet.sol/PacketDecoder.json deleted file mode 100644 index 1614c9a66..000000000 --- a/examples/onft721/out/Packet.sol/PacketDecoder.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ac675b0ee2866fea3b06f627e7805e4e8315b3ef91f4b40e853aa410e137793064736f6c63430008160033","sourceMap":"942:1527:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;942:1527:16;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ac675b0ee2866fea3b06f627e7805e4e8315b3ef91f4b40e853aa410e137793064736f6c63430008160033","sourceMap":"942:1527:16:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for decoding LayerZero packets.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PacketDecoder\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":\"PacketDecoder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":"PacketDecoder"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":16} \ No newline at end of file diff --git a/examples/onft721/out/PacketV1Codec.sol/PacketV1Codec.json b/examples/onft721/out/PacketV1Codec.sol/PacketV1Codec.json deleted file mode 100644 index 9efcf4592..000000000 --- a/examples/onft721/out/PacketV1Codec.sol/PacketV1Codec.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a4657e26c47dd5ab4a8444429cc255fb539c27c4a19d340f9457ce13340c550664736f6c63430008160033","sourceMap":"179:3486:29:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;179:3486:29;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a4657e26c47dd5ab4a8444429cc255fb539c27c4a19d340f9457ce13340c550664736f6c63430008160033","sourceMap":"179:3486:29:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":\"PacketV1Codec\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":"PacketV1Codec"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":29} \ No newline at end of file diff --git a/examples/onft721/out/SafeCast.sol/SafeCast.json b/examples/onft721/out/SafeCast.sol/SafeCast.json deleted file mode 100644 index 1b9c17d91..000000000 --- a/examples/onft721/out/SafeCast.sol/SafeCast.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"SafeCastOverflowedIntDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"int256","internalType":"int256"}]},{"type":"error","name":"SafeCastOverflowedIntToUint","inputs":[{"name":"value","type":"int256","internalType":"int256"}]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeCastOverflowedUintToInt","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122064f07fcae774f80fb46e79d61c1071ff4b558e39d0d4fdec68c6ca9ec6da4ca064736f6c63430008160033","sourceMap":"764:33927:50:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;764:33927:50;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122064f07fcae774f80fb46e79d61c1071ff4b558e39d0d4fdec68c6ca9ec6da4ca064736f6c63430008160033","sourceMap":"764:33927:50:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"type":"error","name":"SafeCastOverflowedIntDowncast"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"type":"error","name":"SafeCastOverflowedIntToUint"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintToInt"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":"SafeCast"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"}},"version":1},"id":50} \ No newline at end of file diff --git a/examples/onft721/out/SafeERC20.sol/SafeERC20.json b/examples/onft721/out/SafeERC20.sol/SafeERC20.json deleted file mode 100644 index 318706717..000000000 --- a/examples/onft721/out/SafeERC20.sol/SafeERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"SafeERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206d39088ba7aad92c9f615288e527bad29865e1188334291d1df8e8e465fddd3564736f6c63430008160033","sourceMap":"751:5018:39:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;751:5018:39;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206d39088ba7aad92c9f615288e527bad29865e1188334291d1df8e8e465fddd3564736f6c63430008160033","sourceMap":"751:5018:39:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"SafeERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"errors\":{\"SafeERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"SafeERC20FailedDecreaseAllowance"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":"SafeERC20"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"}},"version":1},"id":39} \ No newline at end of file diff --git a/examples/onft721/out/SignedMath.sol/SignedMath.json b/examples/onft721/out/SignedMath.sol/SignedMath.json deleted file mode 100644 index 7b1b05222..000000000 --- a/examples/onft721/out/SignedMath.sol/SignedMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201ea81df2484154a58b1f45743e7ce35dcb212e98d858ec8e9cbfcb17829344f264736f6c63430008160033","sourceMap":"216:1047:51:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;216:1047:51;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201ea81df2484154a58b1f45743e7ce35dcb212e98d858ec8e9cbfcb17829344f264736f6c63430008160033","sourceMap":"216:1047:51:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":"SignedMath"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":51} \ No newline at end of file diff --git a/examples/onft721/out/Strings.sol/Strings.json b/examples/onft721/out/Strings.sol/Strings.json deleted file mode 100644 index 1d0bea67d..000000000 --- a/examples/onft721/out/Strings.sol/Strings.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fe74251088ba00f5f42e00d50bb5516a2eb45d51fc0e3703b1ab60674743d1a464736f6c63430008160033","sourceMap":"251:2847:46:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;251:2847:46;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fe74251088ba00f5f42e00d50bb5516a2eb45d51fc0e3703b1ab60674743d1a464736f6c63430008160033","sourceMap":"251:2847:46:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Strings.sol":"Strings"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":46} \ No newline at end of file diff --git a/examples/onft721/out/build-info/85d6127ad7a5a6bd6ecf5e674784641d.json b/examples/onft721/out/build-info/85d6127ad7a5a6bd6ecf5e674784641d.json deleted file mode 100644 index e2daba786..000000000 --- a/examples/onft721/out/build-info/85d6127ad7a5a6bd6ecf5e674784641d.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"85d6127ad7a5a6bd6ecf5e674784641d","source_id_to_path":{"0":"contracts/MyONFT721.sol","1":"contracts/mocks/MyONFT721Mock.sol","2":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol","3":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol","4":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol","5":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol","6":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol","7":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol","8":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol","9":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol","10":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol","11":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol","12":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol","13":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol","14":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol","15":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol","16":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol","17":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","18":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol","19":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol","20":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol","21":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol","22":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol","23":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol","24":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol","25":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol","26":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol","27":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol","28":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol","29":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol","30":"node_modules/@layerzerolabs/onft-evm/contracts/libs/ONFTComposeMsgCodec.sol","31":"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721.sol","32":"node_modules/@layerzerolabs/onft-evm/contracts/onft721/ONFT721Core.sol","33":"node_modules/@layerzerolabs/onft-evm/contracts/onft721/interfaces/IONFT721.sol","34":"node_modules/@layerzerolabs/onft-evm/contracts/onft721/libs/ONFT721MsgCodec.sol","35":"node_modules/@openzeppelin/contracts/access/Ownable.sol","36":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","37":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","38":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","39":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","40":"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol","41":"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol","42":"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","43":"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","44":"node_modules/@openzeppelin/contracts/utils/Address.sol","45":"node_modules/@openzeppelin/contracts/utils/Context.sol","46":"node_modules/@openzeppelin/contracts/utils/Strings.sol","47":"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol","48":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","49":"node_modules/@openzeppelin/contracts/utils/math/Math.sol","50":"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol","51":"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol","52":"node_modules/solidity-bytes-utils/contracts/BytesLib.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/examples/onft721/out/draft-IERC6093.sol/IERC1155Errors.json b/examples/onft721/out/draft-IERC6093.sol/IERC1155Errors.json deleted file mode 100644 index 3013533f5..000000000 --- a/examples/onft721/out/draft-IERC6093.sol/IERC1155Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC1155InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidArrayLength","inputs":[{"name":"idsLength","type":"uint256","internalType":"uint256"},{"name":"valuesLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155MissingApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC1155InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC1155InvalidApprover"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"type":"error","name":"ERC1155InvalidArrayLength"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC1155InvalidOperator"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC1155InvalidSender"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC1155MissingApprovalForAll"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":"IERC1155Errors"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"}},"version":1},"id":36} \ No newline at end of file diff --git a/examples/onft721/out/draft-IERC6093.sol/IERC20Errors.json b/examples/onft721/out/draft-IERC6093.sol/IERC20Errors.json deleted file mode 100644 index d3d288074..000000000 --- a/examples/onft721/out/draft-IERC6093.sol/IERC20Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":"IERC20Errors"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"}},"version":1},"id":36} \ No newline at end of file diff --git a/examples/onft721/out/draft-IERC6093.sol/IERC721Errors.json b/examples/onft721/out/draft-IERC6093.sol/IERC721Errors.json deleted file mode 100644 index 2601cc8eb..000000000 --- a/examples/onft721/out/draft-IERC6093.sol/IERC721Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":"IERC721Errors"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"}},"version":1},"id":36} \ No newline at end of file diff --git a/packages/onft-evm/cache/solidity-files-cache.json b/packages/onft-evm/cache/solidity-files-cache.json deleted file mode 100644 index ad4e145ea..000000000 --- a/packages/onft-evm/cache/solidity-files-cache.json +++ /dev/null @@ -1,8592 +0,0 @@ -{ - "_format": "", - "paths": { - "artifacts": "out", - "build_infos": "out/build-info", - "sources": "contracts", - "tests": "test", - "scripts": "script", - "libraries": [ - "/Users/ryandgoulding/WebstormProjects/devtools/packages/toolbox-foundry/lib", - "node_modules" - ] - }, - "files": { - "contracts/libs/ONFTComposeMsgCodec.sol": { - "lastModificationDate": 1719410674806, - "contentHash": "2194c408707c2eadef805d14eaaaa7bb", - "sourceName": "contracts/libs/ONFTComposeMsgCodec.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFTComposeMsgCodec": { - "0.8.22": { - "path": "ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "contracts/onft1155/ONFT1155.sol": { - "lastModificationDate": 1719410674819, - "contentHash": "7470e188736aa2dd479d5c26d1014798", - "sourceName": "contracts/onft1155/ONFT1155.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft1155/ONFT1155Core.sol", - "contracts/onft1155/interfaces/IONFT1155.sol", - "contracts/onft1155/libs/ONFT1155MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Arrays.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/Math.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT1155": { - "0.8.22": { - "path": "ONFT1155.sol/ONFT1155.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "contracts/onft1155/ONFT1155Core.sol": { - "lastModificationDate": 1719410674822, - "contentHash": "145956e2ffd9af747b62b819e47a96d2", - "sourceName": "contracts/onft1155/ONFT1155Core.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft1155/interfaces/IONFT1155.sol", - "contracts/onft1155/libs/ONFT1155MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT1155Core": { - "0.8.22": { - "path": "ONFT1155Core.sol/ONFT1155Core.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "contracts/onft1155/interfaces/IONFT1155.sol": { - "lastModificationDate": 1719410674813, - "contentHash": "02f89fc9ad12a79d7e3e79a7c13ccb26", - "sourceName": "contracts/onft1155/interfaces/IONFT1155.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "IONFT1155": { - "0.8.22": { - "path": "IONFT1155.sol/IONFT1155.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "contracts/onft1155/libs/ONFT1155MsgCodec.sol": { - "lastModificationDate": 1719410674807, - "contentHash": "3dd1f1ae57db58b3dc10a878fc9b8915", - "sourceName": "contracts/onft1155/libs/ONFT1155MsgCodec.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT1155MsgCodec": { - "0.8.22": { - "path": "ONFT1155MsgCodec.sol/ONFT1155MsgCodec.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "contracts/onft721/ONFT721.sol": { - "lastModificationDate": 1719490155188, - "contentHash": "7691c595742624ef100dad48fb5de2fe", - "sourceName": "contracts/onft721/ONFT721.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft721/ONFT721Core.sol", - "contracts/onft721/interfaces/IONFT721.sol", - "contracts/onft721/libs/ONFT721MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Strings.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/Math.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT721": { - "0.8.22": { - "path": "ONFT721.sol/ONFT721.json", - "build_id": "053fad7cf956e57ca5bb57dae35443af" - } - } - }, - "seenByCompiler": true - }, - "contracts/onft721/ONFT721A.sol": { - "lastModificationDate": 1719490155189, - "contentHash": "1f840c625873e8306ffc52e9781f3239", - "sourceName": "contracts/onft721/ONFT721A.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft721/ONFT721Core.sol", - "contracts/onft721/interfaces/IONFT721.sol", - "contracts/onft721/libs/ONFT721MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/erc721a/contracts/ERC721A.sol", - "node_modules/erc721a/contracts/IERC721A.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT721A": { - "0.8.22": { - "path": "ONFT721A.sol/ONFT721A.json", - "build_id": "053fad7cf956e57ca5bb57dae35443af" - } - } - }, - "seenByCompiler": true - }, - "contracts/onft721/ONFT721Adapter.sol": { - "lastModificationDate": 1719490155189, - "contentHash": "ff49875bbc0f97a44ec8edcc6a124434", - "sourceName": "contracts/onft721/ONFT721Adapter.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft721/ONFT721Core.sol", - "contracts/onft721/interfaces/IONFT721.sol", - "contracts/onft721/libs/ONFT721MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT721Adapter": { - "0.8.22": { - "path": "ONFT721Adapter.sol/ONFT721Adapter.json", - "build_id": "053fad7cf956e57ca5bb57dae35443af" - } - } - }, - "seenByCompiler": true - }, - "contracts/onft721/ONFT721Core.sol": { - "lastModificationDate": 1719591568632, - "contentHash": "ea1a3d324b383ee522eb495ae20eaa42", - "sourceName": "contracts/onft721/ONFT721Core.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft721/interfaces/IONFT721.sol", - "contracts/onft721/libs/ONFT721MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT721Core": { - "0.8.22": { - "path": "ONFT721Core.sol/ONFT721Core.json", - "build_id": "053fad7cf956e57ca5bb57dae35443af" - } - } - }, - "seenByCompiler": true - }, - "contracts/onft721/interfaces/IONFT721.sol": { - "lastModificationDate": 1719591491223, - "contentHash": "bd146ce33b539c37d2bd3a4d02325dc4", - "sourceName": "contracts/onft721/interfaces/IONFT721.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "IONFT721": { - "0.8.22": { - "path": "IONFT721.sol/IONFT721.json", - "build_id": "d5c893728782ee0c5738356fa353a1c0" - } - } - }, - "seenByCompiler": true - }, - "contracts/onft721/libs/ONFT721MsgCodec.sol": { - "lastModificationDate": 1719410674808, - "contentHash": "d1b4cea081379d11205317a1c9ba8334", - "sourceName": "contracts/onft721/libs/ONFT721MsgCodec.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT721MsgCodec": { - "0.8.22": { - "path": "ONFT721MsgCodec.sol/ONFT721MsgCodec.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol": { - "lastModificationDate": 1707852476777, - "contentHash": "0b85d555b2dac6680d32d9a06c865fdb", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "MessageLibBase": { - "0.8.22": { - "path": "MessageLibBase.sol/MessageLibBase.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol": { - "lastModificationDate": 1707852476778, - "contentHash": "fcd6771ac0e1bf4daa0afe7ea7a6147c", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "ReceiveLibBaseE2": { - "0.8.22": { - "path": "ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol": { - "lastModificationDate": 1707852476780, - "contentHash": "30e24e7ba40e38e1f6158f8b0cb58bbc", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "SendLibBase": { - "0.8.22": { - "path": "SendLibBase.sol/SendLibBase.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol": { - "lastModificationDate": 1707852476781, - "contentHash": "28156214103df87a44c6a17e0b6516f8", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "SendLibBaseE2": { - "0.8.22": { - "path": "SendLibBaseE2.sol/SendLibBaseE2.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol": { - "lastModificationDate": 1712179854336, - "contentHash": "6611b1246e91c7e160c7682c33af6c4e", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IExecutor": { - "0.8.22": { - "path": "IExecutor.sol/IExecutor.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol": { - "lastModificationDate": 1712179854337, - "contentHash": "ccd3c9f71ab46b75d8d606adf415eacb", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IExecutorFeeLib": { - "0.8.22": { - "path": "IExecutorFeeLib.sol/IExecutorFeeLib.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol": { - "lastModificationDate": 1707852476791, - "contentHash": "d88dda6b54baa83df374c0c09d76303a", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "ILayerZeroExecutor": { - "0.8.22": { - "path": "ILayerZeroExecutor.sol/ILayerZeroExecutor.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol": { - "lastModificationDate": 1710955096807, - "contentHash": "27af5976b18aa1a57751e74fd29edb93", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "ILayerZeroPriceFeed": { - "0.8.22": { - "path": "ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol": { - "lastModificationDate": 1707852476792, - "contentHash": "ba0a95638eb5d1a06ec7d020b83e2989", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "ILayerZeroTreasury": { - "0.8.22": { - "path": "ILayerZeroTreasury.sol/ILayerZeroTreasury.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol": { - "lastModificationDate": 1707852476792, - "contentHash": "dea42535acffea4d2bd1ec9681d88a1c", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IWorker": { - "0.8.22": { - "path": "IWorker.sol/IWorker.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol": { - "lastModificationDate": 1707852476792, - "contentHash": "6bcbea64901aae43d392623f058bc624", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "SafeCall": { - "0.8.22": { - "path": "SafeCall.sol/SafeCall.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol": { - "lastModificationDate": 1707852476794, - "contentHash": "b3fc36971e46b0709bbdbd9dc341bd73", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "ReceiveUlnBase": { - "0.8.22": { - "path": "ReceiveUlnBase.sol/ReceiveUlnBase.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol": { - "lastModificationDate": 1707852476794, - "contentHash": "79610eb602a1f933a9d63008bfa16bbf", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "SendUlnBase": { - "0.8.22": { - "path": "SendUlnBase.sol/SendUlnBase.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol": { - "lastModificationDate": 1707852476795, - "contentHash": "d0bf2c381067a9c43c25b2b1e36e1a0e", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "UlnBase": { - "0.8.22": { - "path": "UlnBase.sol/UlnBase.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol": { - "lastModificationDate": 1707852476801, - "contentHash": "d6473eb2f5eee4789e889d0a13685611", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IDVN": { - "0.8.22": { - "path": "IDVN.sol/IDVN.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol": { - "lastModificationDate": 1707852476801, - "contentHash": "987cd85145921cff7d812431333457ce", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IDVNFeeLib": { - "0.8.22": { - "path": "IDVNFeeLib.sol/IDVNFeeLib.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol": { - "lastModificationDate": 1707852476802, - "contentHash": "07d809b468afad318aa1bdd958a6909a", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "ILayerZeroDVN": { - "0.8.22": { - "path": "ILayerZeroDVN.sol/ILayerZeroDVN.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol": { - "lastModificationDate": 1707852476802, - "contentHash": "cd1037d3b9fc4e036d621778391b80f6", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IReceiveUlnE2": { - "0.8.22": { - "path": "IReceiveUlnE2.sol/IReceiveUlnE2.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol": { - "lastModificationDate": 1707852476804, - "contentHash": "d2b1c66f564862f65b37230b44da37c0", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "DVNOptions": { - "0.8.22": { - "path": "DVNOptions.sol/DVNOptions.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol": { - "lastModificationDate": 1707852476805, - "contentHash": "20cecbf89aebfddf23ef52f007923f1e", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "UlnOptions": { - "0.8.22": { - "path": "UlnOptions.sol/UlnOptions.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol": { - "lastModificationDate": 1707852476808, - "contentHash": "b20983558d7c8d45f11da14677f23d6a", - "sourceName": "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IUltraLightNode301": { - "0.8.22": { - "path": "IUltraLightNode301.sol/IUltraLightNode301.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol": { - "lastModificationDate": 1707852477612, - "contentHash": "5fff81a48e0699606f1ee7387d4a31a2", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "OApp": { - "0.8.22": { - "path": "OApp.sol/OApp.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol": { - "lastModificationDate": 1712179854457, - "contentHash": "392cf9b920add3244966148ee8de682a", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "OAppCore": { - "0.8.22": { - "path": "OAppCore.sol/OAppCore.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol": { - "lastModificationDate": 1710955096775, - "contentHash": "3621393509939962dd64af436aa5d131", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "OAppReceiver": { - "0.8.22": { - "path": "OAppReceiver.sol/OAppReceiver.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol": { - "lastModificationDate": 1707852477614, - "contentHash": "8a54c076d80f5711e3511a0bbfcff1a1", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "OAppSender": { - "0.8.22": { - "path": "OAppSender.sol/OAppSender.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol": { - "lastModificationDate": 1707852477617, - "contentHash": "7480368993edb51cc1923e51d471908d", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "IOAppComposer": { - "0.8.22": { - "path": "IOAppComposer.sol/IOAppComposer.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol": { - "lastModificationDate": 1707852477618, - "contentHash": "f88e6ddf8ff977739a7178f0d1a276b3", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "IOAppCore": { - "0.8.22": { - "path": "IOAppCore.sol/IOAppCore.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol": { - "lastModificationDate": 1707852477619, - "contentHash": "863511afe66a3ac0c83b469e7ca6cfb4", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "IOAppMsgInspector": { - "0.8.22": { - "path": "IOAppMsgInspector.sol/IOAppMsgInspector.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol": { - "lastModificationDate": 1707852477620, - "contentHash": "3b509d38279da870d798ed7039cfaf62", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "IOAppOptionsType3": { - "0.8.22": { - "path": "IOAppOptionsType3.sol/IOAppOptionsType3.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol": { - "lastModificationDate": 1710955096778, - "contentHash": "8744fbd8f6967b21443fddfccede3f1e", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "IOAppReceiver": { - "0.8.22": { - "path": "IOAppReceiver.sol/IOAppReceiver.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol": { - "lastModificationDate": 1712593932645, - "contentHash": "d7df5d5ca30b9eb573ed7d9b73dd8eda", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "OAppOptionsType3": { - "0.8.22": { - "path": "OAppOptionsType3.sol/OAppOptionsType3.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol": { - "lastModificationDate": 1707852477623, - "contentHash": "aaba44fdba19c251ddcb7d80c4998e19", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "OptionsBuilder": { - "0.8.22": { - "path": "OptionsBuilder.sol/OptionsBuilder.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol": { - "lastModificationDate": 1707852477636, - "contentHash": "d803f2d59e6fcf81c071239983389479", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "OAppPreCrimeSimulator": { - "0.8.22": { - "path": "OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol": { - "lastModificationDate": 1707852477644, - "contentHash": "acca130251942a833f49ab69e01bcd42", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "IOAppPreCrimeSimulator": { - "0.8.22": { - "path": "IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol": { - "lastModificationDate": 1707852477646, - "contentHash": "636408a0c09893cda2e9d23ceec10459", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "IPreCrime": { - "0.8.22": { - "path": "IPreCrime.sol/IPreCrime.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol": { - "lastModificationDate": 1707852477649, - "contentHash": "49f5ad0a97a1acc3e81873e69b0ef3ab", - "sourceName": "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "PacketDecoder": { - "0.8.22": { - "path": "Packet.sol/PacketDecoder.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol": { - "lastModificationDate": 1707852477260, - "contentHash": "4f5f36e689708230ec967622c4ef3d03", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "MessageLibManager": { - "0.8.22": { - "path": "MessageLibManager.sol/MessageLibManager.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol": { - "lastModificationDate": 1707852477261, - "contentHash": "9acc959d357ae787217de4696d57169a", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "MessagingChannel": { - "0.8.22": { - "path": "MessagingChannel.sol/MessagingChannel.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol": { - "lastModificationDate": 1707852477262, - "contentHash": "d0c63dabf34e7f59198338f436826cfd", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "MessagingComposer": { - "0.8.22": { - "path": "MessagingComposer.sol/MessagingComposer.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol": { - "lastModificationDate": 1707852477263, - "contentHash": "60c0bd581632272ab475f236282b70b0", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "MessagingContext": { - "0.8.22": { - "path": "MessagingContext.sol/MessagingContext.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol": { - "lastModificationDate": 1707852477264, - "contentHash": "927edd542725517555adebb52fa6c33d", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "ILayerZeroComposer": { - "0.8.22": { - "path": "ILayerZeroComposer.sol/ILayerZeroComposer.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol": { - "lastModificationDate": 1707852477265, - "contentHash": "0790766778fa8995935c093d9cf03f84", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "ILayerZeroEndpointV2": { - "0.8.22": { - "path": "ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol": { - "lastModificationDate": 1707852477265, - "contentHash": "07bcbc5377578339628265a849de70f5", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "ILayerZeroReceiver": { - "0.8.22": { - "path": "ILayerZeroReceiver.sol/ILayerZeroReceiver.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol": { - "lastModificationDate": 1707852477266, - "contentHash": "fa5082ec9a32dc00ab9dd5f759f3a756", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IMessageLib": { - "0.8.22": { - "path": "IMessageLib.sol/IMessageLib.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol": { - "lastModificationDate": 1714088302752, - "contentHash": "a56a887b2721a98cf82842503bbf0ef0", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IMessageLibManager": { - "0.8.22": { - "path": "IMessageLibManager.sol/IMessageLibManager.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol": { - "lastModificationDate": 1707852477267, - "contentHash": "bd92a8f1c9f815025e8e3e676fe40b0d", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IMessagingChannel": { - "0.8.22": { - "path": "IMessagingChannel.sol/IMessagingChannel.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol": { - "lastModificationDate": 1707852477268, - "contentHash": "bcc2df90697b23f02303892874f96324", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IMessagingComposer": { - "0.8.22": { - "path": "IMessagingComposer.sol/IMessagingComposer.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol": { - "lastModificationDate": 1707852477269, - "contentHash": "2b8bfa473f049af8c74dffbff0766abf", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0", - "artifacts": { - "IMessagingContext": { - "0.8.22": { - "path": "IMessagingContext.sol/IMessagingContext.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol": { - "lastModificationDate": 1707852477270, - "contentHash": "2ed59a174607c55048374a27816752aa", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": ">=0.8.0", - "artifacts": { - "ISendLib": { - "0.8.22": { - "path": "ISendLib.sol/ISendLib.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol": { - "lastModificationDate": 1707852477271, - "contentHash": "4ede58e59ea7779e777942a5da252697", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "AddressCast": { - "0.8.22": { - "path": "AddressCast.sol/AddressCast.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol": { - "lastModificationDate": 1707852477271, - "contentHash": "673ca16094a43c577ed24243c20361aa", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "CalldataBytesLib": { - "0.8.22": { - "path": "CalldataBytesLib.sol/CalldataBytesLib.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol": { - "lastModificationDate": 1707852477272, - "contentHash": "5e30d65ecaa3b73c091bd32a32573cba", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "Errors": { - "0.8.22": { - "path": "Errors.sol/Errors.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol": { - "lastModificationDate": 1707852477273, - "contentHash": "664c7211dae3441b1ab2ccccbd62eef4", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "GUID": { - "0.8.22": { - "path": "GUID.sol/GUID.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol": { - "lastModificationDate": 1707852477274, - "contentHash": "0762bff24288fb82803c259e336cfa6f", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "Transfer": { - "0.8.22": { - "path": "Transfer.sol/Transfer.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol": { - "lastModificationDate": 1707852477274, - "contentHash": "22ae1b35c61bd0b7628db85c1b519702", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "BlockedMessageLib": { - "0.8.22": { - "path": "BlockedMessageLib.sol/BlockedMessageLib.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol": { - "lastModificationDate": 1707852477276, - "contentHash": "b2d6a04de0dde1607086d9872aac790e", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "BitMaps": { - "0.8.22": { - "path": "BitMaps.sol/BitMaps.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol": { - "lastModificationDate": 1707852477277, - "contentHash": "d9e985d1c5d407ba110da010983bcfb6", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "ExecutorOptions": { - "0.8.22": { - "path": "ExecutorOptions.sol/ExecutorOptions.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol": { - "lastModificationDate": 1707852477278, - "contentHash": "fb446531f87e319bbe661e5d6845964f", - "sourceName": "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "PacketV1Codec": { - "0.8.22": { - "path": "PacketV1Codec.sol/PacketV1Codec.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol": { - "lastModificationDate": 1707852477824, - "contentHash": "4e122d9c2f1e115ebed5643a0eebfba1", - "sourceName": "node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.7.0", - "artifacts": { - "ILayerZeroUltraLightNodeV2": { - "0.8.22": { - "path": "ILayerZeroUltraLightNodeV2.sol/ILayerZeroUltraLightNodeV2.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol": { - "lastModificationDate": 1718745120163, - "contentHash": "13c0a24738d6caf78c71a267976d10c5", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "OptionsHelper": { - "0.8.22": { - "path": "OptionsHelper.sol/OptionsHelper.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - }, - "UlnOptionsMock": { - "0.8.22": { - "path": "OptionsHelper.sol/UlnOptionsMock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol": { - "lastModificationDate": 1718745120175, - "contentHash": "f2bce65ed82f7c8c9214c1e454f05131", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol", - "node_modules/@openzeppelin/contracts/access/AccessControl.sol", - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.18", - "artifacts": { - "TestHelperOz5": { - "0.8.22": { - "path": "TestHelperOz5.sol/TestHelperOz5.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol": { - "lastModificationDate": 1718745120174, - "contentHash": "42f4c18092346e04d395f407b765d956", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "DVNFeeLibMock": { - "0.8.22": { - "path": "DVNFeeLibMock.sol/DVNFeeLibMock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol": { - "lastModificationDate": 1718745120172, - "contentHash": "2675715ba35ee4282e8afb6d385f40d4", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol", - "node_modules/@openzeppelin/contracts/access/AccessControl.sol", - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "DVNMock": { - "0.8.22": { - "path": "DVNMock.sol/DVNMock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol": { - "lastModificationDate": 1718745120171, - "contentHash": "9e888df6c92d20b136da88dcf3abc364", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "EndpointV2Mock": { - "0.8.22": { - "path": "EndpointV2Mock.sol/EndpointV2Mock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol": { - "lastModificationDate": 1718745120173, - "contentHash": "c58454b6921d026ecfc5f58380de636a", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ExecutorFeeLibMock": { - "0.8.22": { - "path": "ExecutorFeeLibMock.sol/ExecutorFeeLibMock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol": { - "lastModificationDate": 1718745120165, - "contentHash": "d82c4d8edde097de6c4e0d3080f58c60", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol", - "node_modules/@openzeppelin/contracts/access/AccessControl.sol", - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "ExecutorMock": { - "0.8.22": { - "path": "ExecutorMock.sol/ExecutorMock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol": { - "lastModificationDate": 1718745120166, - "contentHash": "0181b7721dc61261018511063f654665", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "MultiSigMock": { - "0.8.22": { - "path": "MultiSigMock.sol/MultiSigMock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol": { - "lastModificationDate": 1718745120168, - "contentHash": "f16c62ed5306aafc3374fc9fae460fd4", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "PriceFeedMock": { - "0.8.22": { - "path": "PriceFeedMock.sol/PriceFeedMock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol": { - "lastModificationDate": 1718745120169, - "contentHash": "f842261a7840f7ca56d2624ba2c31b0a", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "ReceiveUln302Mock": { - "0.8.22": { - "path": "ReceiveUln302Mock.sol/ReceiveUln302Mock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol": { - "lastModificationDate": 1718745120167, - "contentHash": "2df252777e9c24558408d755458a8202", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol", - "node_modules/@openzeppelin/contracts/access/AccessControl.sol", - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "SendUln302Mock": { - "0.8.22": { - "path": "SendUln302Mock.sol/SendUln302Mock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol": { - "lastModificationDate": 1718745120171, - "contentHash": "74a16623553fbb5bfabc0e2e50e21bd4", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol", - "node_modules/@openzeppelin/contracts/access/AccessControl.sol", - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "SimpleMessageLibMock": { - "0.8.22": { - "path": "SimpleMessageLibMock.sol/SimpleMessageLibMock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol": { - "lastModificationDate": 1718745120170, - "contentHash": "4ab56830fc175a2c0a7300fcccd5735f", - "sourceName": "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@openzeppelin/contracts/access/AccessControl.sol", - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.0", - "artifacts": { - "WorkerMock": { - "0.8.22": { - "path": "WorkerMock.sol/WorkerMock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol": { - "lastModificationDate": 1718745120452, - "contentHash": "9febff9d09f18af5306669dc276c4c43", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.5.0", - "artifacts": { - "DSTest": { - "0.8.22": { - "path": "test.sol/DSTest.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol": { - "lastModificationDate": 1718745120471, - "contentHash": "ee13c050b1914464f1d3f90cde90204b", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "CommonBase": { - "0.8.22": { - "path": "Base.sol/CommonBase.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - }, - "ScriptBase": { - "0.8.22": { - "path": "Base.sol/ScriptBase.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - }, - "TestBase": { - "0.8.22": { - "path": "Base.sol/TestBase.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol": { - "lastModificationDate": 1718745120472, - "contentHash": "6cc2858240bcd443debbbf075490e325", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "StdAssertions": { - "0.8.22": { - "path": "StdAssertions.sol/StdAssertions.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol": { - "lastModificationDate": 1718745120473, - "contentHash": "a03fb245de8eb3a5c0be32645a086278", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "StdChains": { - "0.8.22": { - "path": "StdChains.sol/StdChains.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol": { - "lastModificationDate": 1718745120470, - "contentHash": "7922ae0087a21ee3cdb97137be18c06c", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "StdCheats": { - "0.8.22": { - "path": "StdCheats.sol/StdCheats.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - }, - "StdCheatsSafe": { - "0.8.22": { - "path": "StdCheats.sol/StdCheatsSafe.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol": { - "lastModificationDate": 1718745120473, - "contentHash": "64c896e1276a291776e5ea5aecb3870a", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "stdError": { - "0.8.22": { - "path": "StdError.sol/stdError.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol": { - "lastModificationDate": 1718745120469, - "contentHash": "0a580d6fac69e9d4b6504f747f3c0c24", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "StdInvariant": { - "0.8.22": { - "path": "StdInvariant.sol/StdInvariant.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol": { - "lastModificationDate": 1718745120468, - "contentHash": "a341308627b7eeab7589534daad58186", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol" - ], - "versionRequirement": ">=0.6.0, <0.9.0", - "artifacts": { - "stdJson": { - "0.8.22": { - "path": "StdJson.sol/stdJson.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol": { - "lastModificationDate": 1718745120471, - "contentHash": "9da8f453eba6bb98f3d75bc6822bfb29", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "stdMath": { - "0.8.22": { - "path": "StdMath.sol/stdMath.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol": { - "lastModificationDate": 1718745120469, - "contentHash": "abd6f3379e6e2a7979b18abc21aea0c1", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "stdStorage": { - "0.8.22": { - "path": "StdStorage.sol/stdStorage.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - }, - "stdStorageSafe": { - "0.8.22": { - "path": "StdStorage.sol/stdStorageSafe.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol": { - "lastModificationDate": 1718745120471, - "contentHash": "6281165a12aa639705c691fccefd855e", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol" - ], - "versionRequirement": ">=0.4.22, <0.9.0", - "artifacts": { - "StdStyle": { - "0.8.22": { - "path": "StdStyle.sol/StdStyle.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol": { - "lastModificationDate": 1718745120471, - "contentHash": "2ace460f60242ec59c9310db966aee97", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "StdUtils": { - "0.8.22": { - "path": "StdUtils.sol/StdUtils.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol": { - "lastModificationDate": 1718745120471, - "contentHash": "15866901137b5670eabf31362523bd28", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol" - ], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "Test": { - "0.8.22": { - "path": "Test.sol/Test.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol": { - "lastModificationDate": 1718745120469, - "contentHash": "c791ff15c3c9d600bd396c7ae4ee836c", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "Vm": { - "0.8.22": { - "path": "Vm.sol/Vm.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - }, - "VmSafe": { - "0.8.22": { - "path": "Vm.sol/VmSafe.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol": { - "lastModificationDate": 1718745120472, - "contentHash": "100b8a33b917da1147740d7ab8b0ded3", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.4.22, <0.9.0", - "artifacts": { - "console": { - "0.8.22": { - "path": "console.sol/console.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol": { - "lastModificationDate": 1718745120470, - "contentHash": "491ca717c1915995e78cc361485a3067", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.4.22, <0.9.0", - "artifacts": { - "console2": { - "0.8.22": { - "path": "console2.sol/console2.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol": { - "lastModificationDate": 1718745120474, - "contentHash": "7b131ca1ca32ef6378b7b9ad5488b901", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "IMulticall3": { - "0.8.22": { - "path": "IMulticall3.sol/IMulticall3.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol": { - "lastModificationDate": 1718745120468, - "contentHash": "9ec848e74c56e40afdd01ac0c873dc3b", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "MockERC20": { - "0.8.22": { - "path": "MockERC20.sol/MockERC20.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol": { - "lastModificationDate": 1718745120468, - "contentHash": "b6729ea581dcd9b4238eee9ca4d3bd89", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "IERC721TokenReceiver": { - "0.8.22": { - "path": "MockERC721.sol/IERC721TokenReceiver.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - }, - "MockERC721": { - "0.8.22": { - "path": "MockERC721.sol/MockERC721.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol": { - "lastModificationDate": 1718745120469, - "contentHash": "ac3b1bf5a444db5db3656021830258a8", - "sourceName": "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.6.2, <0.9.0", - "artifacts": { - "safeconsole": { - "0.8.22": { - "path": "safeconsole.sol/safeconsole.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/access/AccessControl.sol": { - "lastModificationDate": 1707852477419, - "contentHash": "4c80b7fdf559a9a348e832a57d072a0b", - "sourceName": "node_modules/@openzeppelin/contracts/access/AccessControl.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "AccessControl": { - "0.8.22": { - "path": "AccessControl.sol/AccessControl.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol": { - "lastModificationDate": 1707852477477, - "contentHash": "e3a14b0714caaaa82d58fa0bc3756079", - "sourceName": "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "IAccessControl": { - "0.8.22": { - "path": "IAccessControl.sol/IAccessControl.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/access/Ownable.sol": { - "lastModificationDate": 1707852477600, - "contentHash": "d3c790edc9ccf808a17c5a6cd13614fd", - "sourceName": "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": ["node_modules/@openzeppelin/contracts/utils/Context.sol"], - "versionRequirement": "^0.8.20", - "artifacts": { - "Ownable": { - "0.8.22": { - "path": "Ownable.sol/Ownable.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { - "lastModificationDate": 1707852477445, - "contentHash": "4aefc698f77ecbace7f401257dfe182d", - "sourceName": "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "IERC1155Errors": { - "0.8.22": { - "path": "draft-IERC6093.sol/IERC1155Errors.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - }, - "IERC20Errors": { - "0.8.22": { - "path": "draft-IERC6093.sol/IERC20Errors.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - }, - "IERC721Errors": { - "0.8.22": { - "path": "draft-IERC6093.sol/IERC721Errors.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol": { - "lastModificationDate": 1707852477448, - "contentHash": "917e6b867a0e67cd81ca4eb34336ca35", - "sourceName": "node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", - "node_modules/@openzeppelin/contracts/utils/Arrays.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/Math.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "ERC1155": { - "0.8.22": { - "path": "ERC1155.sol/ERC1155.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol": { - "lastModificationDate": 1707852477483, - "contentHash": "d70aa5aeb17749b65a9bde4cce2bd72c", - "sourceName": "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "IERC1155": { - "0.8.22": { - "path": "IERC1155.sol/IERC1155.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol": { - "lastModificationDate": 1707852477487, - "contentHash": "d14616defa6d417fafa47e416e3cec73", - "sourceName": "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "IERC1155Receiver": { - "0.8.22": { - "path": "IERC1155Receiver.sol/IERC1155Receiver.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol": { - "lastModificationDate": 1707852477485, - "contentHash": "96903941ac1966aa14e08bd4ab3c264e", - "sourceName": "node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "IERC1155MetadataURI": { - "0.8.22": { - "path": "IERC1155MetadataURI.sol/IERC1155MetadataURI.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "lastModificationDate": 1707852477493, - "contentHash": "5517c8678c18eb1a8ba58810e7ca39ca", - "sourceName": "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "IERC20": { - "0.8.22": { - "path": "IERC20.sol/IERC20.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol": { - "lastModificationDate": 1707852477495, - "contentHash": "da291753fa4641f2c5837bfc4aa4c01b", - "sourceName": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "IERC20Permit": { - "0.8.22": { - "path": "IERC20Permit.sol/IERC20Permit.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { - "lastModificationDate": 1707852477611, - "contentHash": "697fd27924863e77c17dace2179018b2", - "sourceName": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "SafeERC20": { - "0.8.22": { - "path": "SafeERC20.sol/SafeERC20.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": { - "lastModificationDate": 1707852477463, - "contentHash": "1e64e2ad597dc5b2dae11346502baad4", - "sourceName": "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Strings.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/Math.sol", - "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "ERC721": { - "0.8.22": { - "path": "ERC721.sol/ERC721.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { - "lastModificationDate": 1707852477556, - "contentHash": "5df8fdb527e563085847cad29e3c5f2e", - "sourceName": "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "IERC721": { - "0.8.22": { - "path": "IERC721.sol/IERC721.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { - "lastModificationDate": 1707852477584, - "contentHash": "fc8a9841f4bdd6329c26a00d5e75f4b3", - "sourceName": "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "IERC721Receiver": { - "0.8.22": { - "path": "IERC721Receiver.sol/IERC721Receiver.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { - "lastModificationDate": 1707852477582, - "contentHash": "12c206f185cb951213799561fdcaa40d", - "sourceName": "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "IERC721Metadata": { - "0.8.22": { - "path": "IERC721Metadata.sol/IERC721Metadata.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/Address.sol": { - "lastModificationDate": 1707852477424, - "contentHash": "79c699f80eb8a9b168cb34e37816f894", - "sourceName": "node_modules/@openzeppelin/contracts/utils/Address.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "Address": { - "0.8.22": { - "path": "Address.sol/Address.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/Arrays.sol": { - "lastModificationDate": 1707852477425, - "contentHash": "fabe6fe8d403b4f72dec1dc585ab1c7a", - "sourceName": "node_modules/@openzeppelin/contracts/utils/Arrays.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", - "node_modules/@openzeppelin/contracts/utils/math/Math.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "Arrays": { - "0.8.22": { - "path": "Arrays.sol/Arrays.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/Context.sol": { - "lastModificationDate": 1707852477439, - "contentHash": "67bfbc07588eb8683b3fd8f6f909563e", - "sourceName": "node_modules/@openzeppelin/contracts/utils/Context.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "Context": { - "0.8.22": { - "path": "Context.sol/Context.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/Pausable.sol": { - "lastModificationDate": 1707852477605, - "contentHash": "24e52f6ef3868e6fca664a423140bee9", - "sourceName": "node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": ["node_modules/@openzeppelin/contracts/utils/Context.sol"], - "versionRequirement": "^0.8.20", - "artifacts": { - "Pausable": { - "0.8.22": { - "path": "Pausable.sol/Pausable.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol": { - "lastModificationDate": 1707852477609, - "contentHash": "a92331adac11b453a4de0323fc948119", - "sourceName": "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "ReentrancyGuard": { - "0.8.22": { - "path": "ReentrancyGuard.sol/ReentrancyGuard.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": { - "lastModificationDate": 1707852477614, - "contentHash": "08cbccfefa284405c12b4bfa8c8c9c2b", - "sourceName": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "StorageSlot": { - "0.8.22": { - "path": "StorageSlot.sol/StorageSlot.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/Strings.sol": { - "lastModificationDate": 1707852477614, - "contentHash": "ba57ff4ddf1d9cae9d2009792795b7f6", - "sourceName": "node_modules/@openzeppelin/contracts/utils/Strings.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/utils/math/Math.sol", - "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "Strings": { - "0.8.22": { - "path": "Strings.sol/Strings.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { - "lastModificationDate": 1707852477445, - "contentHash": "b96e0d7a3c2b185342c7d083d765b61f", - "sourceName": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "ECDSA": { - "0.8.22": { - "path": "ECDSA.sol/ECDSA.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "lastModificationDate": 1707852477453, - "contentHash": "6a55c353946e471d9792965d06208295", - "sourceName": "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol" - ], - "versionRequirement": "^0.8.20", - "artifacts": { - "ERC165": { - "0.8.22": { - "path": "ERC165.sol/ERC165.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "lastModificationDate": 1707852477491, - "contentHash": "de0163561b417b800d01749cbbe2147e", - "sourceName": "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "IERC165": { - "0.8.22": { - "path": "IERC165.sol/IERC165.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - "lastModificationDate": 1707852477589, - "contentHash": "718fa8ba0ff269c92e364c1429d9de57", - "sourceName": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "Math": { - "0.8.22": { - "path": "Math.sol/Math.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": { - "lastModificationDate": 1707852477610, - "contentHash": "d72cdfaacd4b1b8e090b57f4b7200ddc", - "sourceName": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "SafeCast": { - "0.8.22": { - "path": "SafeCast.sol/SafeCast.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { - "lastModificationDate": 1707852477613, - "contentHash": "b6c6bdc7aaca4fe5b680760a72e09d3e", - "sourceName": "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "SignedMath": { - "0.8.22": { - "path": "SignedMath.sol/SignedMath.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol": { - "lastModificationDate": 1707852477442, - "contentHash": "4988631ce14d39628bfdded2662ef0e2", - "sourceName": "node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.20", - "artifacts": { - "DoubleEndedQueue": { - "0.8.22": { - "path": "DoubleEndedQueue.sol/DoubleEndedQueue.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/erc721a/contracts/ERC721A.sol": { - "lastModificationDate": 1714088303763, - "contentHash": "f00e8b038a7d958f397c9fb8d107ec1c", - "sourceName": "node_modules/erc721a/contracts/ERC721A.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": ["node_modules/erc721a/contracts/IERC721A.sol"], - "versionRequirement": "^0.8.4", - "artifacts": { - "ERC721A": { - "0.8.22": { - "path": "ERC721A.sol/ERC721A.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - }, - "ERC721A__IERC721Receiver": { - "0.8.22": { - "path": "ERC721A.sol/ERC721A__IERC721Receiver.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/erc721a/contracts/IERC721A.sol": { - "lastModificationDate": 1714088303767, - "contentHash": "f6791e37b41ad9fa583adb9845c17d51", - "sourceName": "node_modules/erc721a/contracts/IERC721A.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": "^0.8.4", - "artifacts": { - "IERC721A": { - "0.8.22": { - "path": "IERC721A.sol/IERC721A.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol": { - "lastModificationDate": 1707852477356, - "contentHash": "f4aae4537e2686b91fcd881aeed71657", - "sourceName": "node_modules/solidity-bytes-utils/contracts/BytesLib.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [], - "versionRequirement": ">=0.8.0, <0.9.0", - "artifacts": { - "BytesLib": { - "0.8.22": { - "path": "BytesLib.sol/BytesLib.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "test/mocks/ComposerMock.sol": { - "lastModificationDate": 1719410674815, - "contentHash": "14985ecb474c37b7e0e50ce4b7e316d3", - "sourceName": "test/mocks/ComposerMock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ComposerMock": { - "0.8.22": { - "path": "ComposerMock.sol/ComposerMock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "test/mocks/InspectorMock.sol": { - "lastModificationDate": 1719410674820, - "contentHash": "365c821d4618a02081717be8c13d3baf", - "sourceName": "test/mocks/InspectorMock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "InspectorMock": { - "0.8.22": { - "path": "InspectorMock.sol/InspectorMock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "test/onft/ONFTBaseTestHelper.sol": { - "lastModificationDate": 1719410674810, - "contentHash": "7501c2ca7eebd4e76e9cf30313efae2b", - "sourceName": "test/onft/ONFTBaseTestHelper.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol", - "node_modules/@openzeppelin/contracts/access/AccessControl.sol", - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFTBaseTestHelper": { - "0.8.22": { - "path": "ONFTBaseTestHelper.sol/ONFTBaseTestHelper.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "test/onft/onft1155/ONFT1155Performance.t.sol": { - "lastModificationDate": 1719410674804, - "contentHash": "5b5b8a80fba2ef68c34de1eeb5d057e4", - "sourceName": "test/onft/onft1155/ONFT1155Performance.t.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft1155/ONFT1155.sol", - "contracts/onft1155/ONFT1155Core.sol", - "contracts/onft1155/interfaces/IONFT1155.sol", - "contracts/onft1155/libs/ONFT1155MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol", - "node_modules/@openzeppelin/contracts/access/AccessControl.sol", - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Arrays.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", - "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/Math.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol", - "test/onft/ONFTBaseTestHelper.sol", - "test/onft/onft1155/mocks/ONFT1155Mock.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT1155Performance": { - "0.8.22": { - "path": "ONFT1155Performance.t.sol/ONFT1155Performance.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "test/onft/onft1155/mocks/ONFT1155Mock.sol": { - "lastModificationDate": 1719410674805, - "contentHash": "982931e14e90d619a2a64eaad2290ccd", - "sourceName": "test/onft/onft1155/mocks/ONFT1155Mock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft1155/ONFT1155.sol", - "contracts/onft1155/ONFT1155Core.sol", - "contracts/onft1155/interfaces/IONFT1155.sol", - "contracts/onft1155/libs/ONFT1155MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", - "node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Arrays.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/Math.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT1155Mock": { - "0.8.22": { - "path": "ONFT1155Mock.sol/ONFT1155Mock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "test/onft/onft721/ONFT721.t.sol": { - "lastModificationDate": 1719593318271, - "contentHash": "e2cee34aa5b554a7a71c9411fd8a0897", - "sourceName": "test/onft/onft721/ONFT721.t.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft721/ONFT721.sol", - "contracts/onft721/ONFT721Adapter.sol", - "contracts/onft721/ONFT721Core.sol", - "contracts/onft721/interfaces/IONFT721.sol", - "contracts/onft721/libs/ONFT721MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol", - "node_modules/@openzeppelin/contracts/access/AccessControl.sol", - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "node_modules/@openzeppelin/contracts/utils/Strings.sol", - "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/Math.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol", - "node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol", - "test/mocks/ComposerMock.sol", - "test/mocks/InspectorMock.sol", - "test/onft/ONFTBaseTestHelper.sol", - "test/onft/onft721/ONFT721Base.sol", - "test/onft/onft721/mocks/ERC721Mock.sol", - "test/onft/onft721/mocks/ONFT721AdapterMock.sol", - "test/onft/onft721/mocks/ONFT721Mock.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT721Test": { - "0.8.22": { - "path": "ONFT721.t.sol/ONFT721Test.json", - "build_id": "25c05f2f46e2b8bfd8d0f9be635ccbf7" - } - } - }, - "seenByCompiler": true - }, - "test/onft/onft721/ONFT721Base.sol": { - "lastModificationDate": 1719540589813, - "contentHash": "9759c0c961c54c54865067b7ac07fc41", - "sourceName": "test/onft/onft721/ONFT721Base.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft721/ONFT721.sol", - "contracts/onft721/ONFT721Adapter.sol", - "contracts/onft721/ONFT721Core.sol", - "contracts/onft721/interfaces/IONFT721.sol", - "contracts/onft721/libs/ONFT721MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol", - "node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol", - "node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol", - "node_modules/@openzeppelin/contracts/access/AccessControl.sol", - "node_modules/@openzeppelin/contracts/access/IAccessControl.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol", - "node_modules/@openzeppelin/contracts/utils/Strings.sol", - "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/Math.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol", - "node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol", - "test/mocks/InspectorMock.sol", - "test/onft/ONFTBaseTestHelper.sol", - "test/onft/onft721/mocks/ERC721Mock.sol", - "test/onft/onft721/mocks/ONFT721AdapterMock.sol", - "test/onft/onft721/mocks/ONFT721Mock.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT721Base": { - "0.8.22": { - "path": "ONFT721Base.sol/ONFT721Base.json", - "build_id": "053fad7cf956e57ca5bb57dae35443af" - } - } - }, - "seenByCompiler": true - }, - "test/onft/onft721/mocks/ERC721Mock.sol": { - "lastModificationDate": 1719410674823, - "contentHash": "a879a74569f050d1b1f267083dfca19b", - "sourceName": "test/onft/onft721/mocks/ERC721Mock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Strings.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/Math.sol", - "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ERC721Mock": { - "0.8.22": { - "path": "ERC721Mock.sol/ERC721Mock.json", - "build_id": "b1402bed17c2720dcd7877d88fedfc59" - } - } - }, - "seenByCompiler": true - }, - "test/onft/onft721/mocks/ONFT721AdapterMock.sol": { - "lastModificationDate": 1719490155190, - "contentHash": "a7bf9aa6a8a061cf3c2fa6b3dc953a8e", - "sourceName": "test/onft/onft721/mocks/ONFT721AdapterMock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft721/ONFT721Adapter.sol", - "contracts/onft721/ONFT721Core.sol", - "contracts/onft721/interfaces/IONFT721.sol", - "contracts/onft721/libs/ONFT721MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT721AdapterMock": { - "0.8.22": { - "path": "ONFT721AdapterMock.sol/ONFT721AdapterMock.json", - "build_id": "053fad7cf956e57ca5bb57dae35443af" - } - } - }, - "seenByCompiler": true - }, - "test/onft/onft721/mocks/ONFT721Mock.sol": { - "lastModificationDate": 1719490155190, - "contentHash": "cd11886cd1639e501023ff93b355043d", - "sourceName": "test/onft/onft721/mocks/ONFT721Mock.sol", - "compilerSettings": { - "solc": { - "optimizer": { "enabled": true, "runs": 200 }, - "metadata": { - "useLiteralContent": false, - "bytecodeHash": "ipfs", - "appendCBOR": true - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ] - } - }, - "evmVersion": "paris", - "viaIR": false, - "libraries": {} - }, - "vyper": { - "evmVersion": "paris", - "outputSelection": { - "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } - } - } - }, - "imports": [ - "contracts/libs/ONFTComposeMsgCodec.sol", - "contracts/onft721/ONFT721.sol", - "contracts/onft721/ONFT721Core.sol", - "contracts/onft721/interfaces/IONFT721.sol", - "contracts/onft721/libs/ONFT721MsgCodec.sol", - "node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol", - "node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol", - "node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol", - "node_modules/@openzeppelin/contracts/access/Ownable.sol", - "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol", - "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "node_modules/@openzeppelin/contracts/utils/Address.sol", - "node_modules/@openzeppelin/contracts/utils/Context.sol", - "node_modules/@openzeppelin/contracts/utils/Strings.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", - "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol", - "node_modules/@openzeppelin/contracts/utils/math/Math.sol", - "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", - "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol", - "node_modules/solidity-bytes-utils/contracts/BytesLib.sol" - ], - "versionRequirement": "^0.8.22", - "artifacts": { - "ONFT721Mock": { - "0.8.22": { - "path": "ONFT721Mock.sol/ONFT721Mock.json", - "build_id": "053fad7cf956e57ca5bb57dae35443af" - } - } - }, - "seenByCompiler": true - } - }, - "builds": [ - "053fad7cf956e57ca5bb57dae35443af", - "1247bb83e162a5cbb8514b92f362f287", - "1bf21f78486e732d5b6f317d8121dbb4", - "24d08f51644c3feceda3cbf334792082", - "25c05f2f46e2b8bfd8d0f9be635ccbf7", - "30bdbd20a41af906a797f310a3e7ffbb", - "3e9e475b3507b46890bcc7171441a3bd", - "40741d5b39436f1b031c9aeb0d2f1e4e", - "4846c3845e74a83ce7f84b2515039ce0", - "9fb3a5fd3ab8db3258ed9ed3fb334b9a", - "a2ca0c2f9777eab0206870da7a445e1d", - "b1402bed17c2720dcd7877d88fedfc59", - "b25c7489d41ce4494b60f8b9701be6b5", - "bacb888f8a5a5c86981684580ceb1811", - "d5c893728782ee0c5738356fa353a1c0", - "df8932d4151c43fa663bc02781d62bec" - ] -} diff --git a/packages/onft-evm/out/AccessControl.sol/AccessControl.json b/packages/onft-evm/out/AccessControl.sol/AccessControl.json deleted file mode 100644 index 06eae17a1..000000000 --- a/packages/onft-evm/out/AccessControl.sol/AccessControl.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/access/AccessControl.sol":"AccessControl"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":103} \ No newline at end of file diff --git a/packages/onft-evm/out/Address.sol/Address.json b/packages/onft-evm/out/Address.sol/Address.json deleted file mode 100644 index 3acb12789..000000000 --- a/packages/onft-evm/out/Address.sol/Address.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202333654c50fb430792ae762317b64e92941e532625d64e8a7611d51820b8e01564736f6c63430008160033","sourceMap":"195:6066:118:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;195:6066:118;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202333654c50fb430792ae762317b64e92941e532625d64e8a7611d51820b8e01564736f6c63430008160033","sourceMap":"195:6066:118:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Address.sol":"Address"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"}},"version":1},"id":118} \ No newline at end of file diff --git a/packages/onft-evm/out/AddressCast.sol/AddressCast.json b/packages/onft-evm/out/AddressCast.sol/AddressCast.json deleted file mode 100644 index f88541ea2..000000000 --- a/packages/onft-evm/out/AddressCast.sol/AddressCast.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"AddressCast_InvalidAddress","inputs":[]},{"type":"error","name":"AddressCast_InvalidSizeForAddress","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201db56424fdfbf4f40d99de067e8ca3c576a5ab1c532cb05cf40ab3d1f5a574cf64736f6c63430008160033","sourceMap":"64:1401:60:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;64:1401:60;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201db56424fdfbf4f40d99de067e8ca3c576a5ab1c532cb05cf40ab3d1f5a574cf64736f6c63430008160033","sourceMap":"64:1401:60:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCast_InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressCast_InvalidSizeForAddress\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":\"AddressCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCast_InvalidAddress"},{"inputs":[],"type":"error","name":"AddressCast_InvalidSizeForAddress"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":"AddressCast"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"}},"version":1},"id":60} \ No newline at end of file diff --git a/packages/onft-evm/out/Arrays.sol/Arrays.json b/packages/onft-evm/out/Arrays.sol/Arrays.json deleted file mode 100644 index 286207ceb..000000000 --- a/packages/onft-evm/out/Arrays.sol/Arrays.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122018661915a61fd24c2d2f28136b6a877ea8228cdfac8aee11e01ec37a933aa8fd64736f6c63430008160033","sourceMap":"276:4526:119:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;276:4526:119;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122018661915a61fd24c2d2f28136b6a877ea8228cdfac8aee11e01ec37a933aa8fd64736f6c63430008160033","sourceMap":"276:4526:119:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to array types.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Arrays.sol\":\"Arrays\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Arrays.sol":"Arrays"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Arrays.sol":{"keccak256":"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1","urls":["bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5","dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":119} \ No newline at end of file diff --git a/packages/onft-evm/out/Base.sol/CommonBase.json b/packages/onft-evm/out/Base.sol/CommonBase.json deleted file mode 100644 index 9b330012c..000000000 --- a/packages/onft-evm/out/Base.sol/CommonBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"id":84} \ No newline at end of file diff --git a/packages/onft-evm/out/Base.sol/ScriptBase.json b/packages/onft-evm/out/Base.sol/ScriptBase.json deleted file mode 100644 index 126d7bb9c..000000000 --- a/packages/onft-evm/out/Base.sol/ScriptBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"id":84} \ No newline at end of file diff --git a/packages/onft-evm/out/Base.sol/TestBase.json b/packages/onft-evm/out/Base.sol/TestBase.json deleted file mode 100644 index 8e9be0d90..000000000 --- a/packages/onft-evm/out/Base.sol/TestBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":"TestBase"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"id":84} \ No newline at end of file diff --git a/packages/onft-evm/out/BitMaps.sol/BitMaps.json b/packages/onft-evm/out/BitMaps.sol/BitMaps.json deleted file mode 100644 index 028b3c02a..000000000 --- a/packages/onft-evm/out/BitMaps.sol/BitMaps.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209bdf3bf0892336c9b90897f580c448a8fe83ae7c47b206366bd1c559fbf103e764736f6c63430008160033","sourceMap":"244:506:66:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;244:506:66;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209bdf3bf0892336c9b90897f580c448a8fe83ae7c47b206366bd1c559fbf103e764736f6c63430008160033","sourceMap":"244:506:66:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":\"BitMaps\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":"BitMaps"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"}},"version":1},"id":66} \ No newline at end of file diff --git a/packages/onft-evm/out/BlockedMessageLib.sol/BlockedMessageLib.json b/packages/onft-evm/out/BlockedMessageLib.sol/BlockedMessageLib.json deleted file mode 100644 index 0cfae1ca8..000000000 --- a/packages/onft-evm/out/BlockedMessageLib.sol/BlockedMessageLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"messageLibType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum MessageLibType"}],"stateMutability":"pure"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"endpointVersion","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"error","name":"LZ_NotImplemented","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506101c3806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a7146100655780631881d94d1461008d57806354fd4d501461009c5780636750cd4c146100c3575b604051632657b6c360e01b815260040160405180910390fd5b61007861007336600461010e565b6100d7565b60405190151581526020015b60405180910390f35b6002604051610084919061013f565b6040805167ffffffffffffffff815260ff6020820152600291810191909152606001610084565b6100786100d1366004610167565b50600190565b60006001600160e01b031982166325fc096160e21b148061010857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561012057600080fd5b81356001600160e01b03198116811461013857600080fd5b9392505050565b602081016003831061016157634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561017957600080fd5b813563ffffffff8116811461013857600080fdfea26469706673582212201492a62cde195effaf02cad81258b16b83979b7f432c3fe0ca641db583822bb764736f6c63430008160033","sourceMap":"269:691:65:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a7146100655780631881d94d1461008d57806354fd4d501461009c5780636750cd4c146100c3575b604051632657b6c360e01b815260040160405180910390fd5b61007861007336600461010e565b6100d7565b60405190151581526020015b60405180910390f35b6002604051610084919061013f565b6040805167ffffffffffffffff815260ff6020820152600291810191909152606001610084565b6100786100d1366004610167565b50600190565b60006001600160e01b031982166325fc096160e21b148061010857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561012057600080fd5b81356001600160e01b03198116811461013857600080fd5b9392505050565b602081016003831061016157634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561017957600080fd5b813563ffffffff8116811461013857600080fdfea26469706673582212201492a62cde195effaf02cad81258b16b83979b7f432c3fe0ca641db583822bb764736f6c63430008160033","sourceMap":"269:691:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;925:26;;-1:-1:-1;;;925:26:65;;;;;;;;;;;312:191;;;;;;:::i;:::-;;:::i;:::-;;;470:14:145;;463:22;445:41;;433:2;418:18;312:191:65;;;;;;;;669:118;751:29;669:118;;;;;;:::i;509:154::-;;;;619:16;1042:50:145;;637:15:65;1123:2:145;1108:18;;1101:45;654:1:65;1162:18:145;;;1155:45;;;;1030:2;1015:18;509:154:65;850:356:145;793:89:65;;;;;;:::i;:::-;-1:-1:-1;871:4:65;;793:89;312:191;389:4;-1:-1:-1;;;;;;412:44:65;;-1:-1:-1;;;412:44:65;;:84;;-1:-1:-1;;;;;;;;;;861:40:126;;;460:36:65;405:91;312:191;-1:-1:-1;;312:191:65:o;14:286:145:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:145;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:145:o;497:348::-;649:2;634:18;;682:1;671:13;;661:144;;727:10;722:3;718:20;715:1;708:31;762:4;759:1;752:15;790:4;787:1;780:15;661:144;814:25;;;497:348;:::o;1211:276::-;1269:6;1322:2;1310:9;1301:7;1297:23;1293:32;1290:52;;;1338:1;1335;1328:12;1290:52;1377:9;1364:23;1427:10;1420:5;1416:22;1409:5;1406:33;1396:61;;1453:1;1450;1443:12","linkReferences":{}},"methodIdentifiers":{"isSupportedEid(uint32)":"6750cd4c","messageLibType()":"1881d94d","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_NotImplemented\",\"type\":\"error\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":\"BlockedMessageLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_NotImplemented"},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"pure","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":"BlockedMessageLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":{"keccak256":"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9","urls":["bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f","dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":65} \ No newline at end of file diff --git a/packages/onft-evm/out/BytesLib.sol/BytesLib.json b/packages/onft-evm/out/BytesLib.sol/BytesLib.json deleted file mode 100644 index 048eef91a..000000000 --- a/packages/onft-evm/out/BytesLib.sol/BytesLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122034af975133f60f6133da6e2ecd6f660e385b3001d1a22b3417dfb0f19a90775a64736f6c63430008160033","sourceMap":"370:21307:134:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;370:21307:134;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122034af975133f60f6133da6e2ecd6f660e385b3001d1a22b3417dfb0f19a90775a64736f6c63430008160033","sourceMap":"370:21307:134:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":\"BytesLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":"BytesLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":134} \ No newline at end of file diff --git a/packages/onft-evm/out/CalldataBytesLib.sol/CalldataBytesLib.json b/packages/onft-evm/out/CalldataBytesLib.sol/CalldataBytesLib.json deleted file mode 100644 index bf8943818..000000000 --- a/packages/onft-evm/out/CalldataBytesLib.sol/CalldataBytesLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122045fb2cde1d927b12598f7f27cb1353d86e51e7b26a77f989f0fb6f7be3e9d8fb64736f6c63430008160033","sourceMap":"64:1718:61:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;64:1718:61;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122045fb2cde1d927b12598f7f27cb1353d86e51e7b26a77f989f0fb6f7be3e9d8fb64736f6c63430008160033","sourceMap":"64:1718:61:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":\"CalldataBytesLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":"CalldataBytesLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"}},"version":1},"id":61} \ No newline at end of file diff --git a/packages/onft-evm/out/ComposerMock.sol/ComposerMock.json b/packages/onft-evm/out/ComposerMock.sol/ComposerMock.json deleted file mode 100644 index 7190dc5c4..000000000 --- a/packages/onft-evm/out/ComposerMock.sol/ComposerMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"executor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"extraData","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"from","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"guid","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"message","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061050c806100206000396000f3fe6080604052600436106100555760003560e01c80630ae6d46b1461005a578063609d333414610083578063c34c08e5146100a5578063d0a10260146100dd578063d5ce3389146100f2578063e21f37ce14610112575b600080fd5b34801561006657600080fd5b5061007060015481565b6040519081526020015b60405180910390f35b34801561008f57600080fd5b50610098610127565b60405161007a9190610222565b3480156100b157600080fd5b506003546100c5906001600160a01b031681565b6040516001600160a01b03909116815260200161007a565b6100f06100eb3660046102d6565b6101b5565b005b3480156100fe57600080fd5b506000546100c5906001600160a01b031681565b34801561011e57600080fd5b50610098610215565b6004805461013490610374565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610374565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b505050505081565b600080546001600160a01b0319166001600160a01b038916179055600186905560026101e2858783610415565b50600380546001600160a01b0319166001600160a01b038516179055600461020b858783610415565b5050505050505050565b6002805461013490610374565b60006020808352835180602085015260005b8181101561025057858101830151858201604001528201610234565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461028857600080fd5b919050565b60008083601f84011261029f57600080fd5b50813567ffffffffffffffff8111156102b757600080fd5b6020830191508360208285010111156102cf57600080fd5b9250929050565b600080600080600080600060a0888a0312156102f157600080fd5b6102fa88610271565b965060208801359550604088013567ffffffffffffffff8082111561031e57600080fd5b61032a8b838c0161028d565b909750955085915061033e60608b01610271565b945060808a013591508082111561035457600080fd5b506103618a828b0161028d565b989b979a50959850939692959293505050565b600181811c9082168061038857607f821691505b6020821081036103a857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b601f821115610410576000816000526020600020601f850160051c810160208610156103ed5750805b601f850160051c820191505b8181101561040c578281556001016103f9565b5050505b505050565b67ffffffffffffffff83111561042d5761042d6103ae565b6104418361043b8354610374565b836103c4565b6000601f841160018114610475576000851561045d5750838201355b600019600387901b1c1916600186901b1783556104cf565b600083815260209020601f19861690835b828110156104a65786850135825560209485019460019092019101610486565b50868210156104c35760001960f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea264697066735822122018aae83154d1fdb76542fdfef3ea577783f67dc8a90b8667d1027536f3d0416264736f6c63430008160033","sourceMap":"173:576:135:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100555760003560e01c80630ae6d46b1461005a578063609d333414610083578063c34c08e5146100a5578063d0a10260146100dd578063d5ce3389146100f2578063e21f37ce14610112575b600080fd5b34801561006657600080fd5b5061007060015481565b6040519081526020015b60405180910390f35b34801561008f57600080fd5b50610098610127565b60405161007a9190610222565b3480156100b157600080fd5b506003546100c5906001600160a01b031681565b6040516001600160a01b03909116815260200161007a565b6100f06100eb3660046102d6565b6101b5565b005b3480156100fe57600080fd5b506000546100c5906001600160a01b031681565b34801561011e57600080fd5b50610098610215565b6004805461013490610374565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610374565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b505050505081565b600080546001600160a01b0319166001600160a01b038916179055600186905560026101e2858783610415565b50600380546001600160a01b0319166001600160a01b038516179055600461020b858783610415565b5050505050505050565b6002805461013490610374565b60006020808352835180602085015260005b8181101561025057858101830151858201604001528201610234565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461028857600080fd5b919050565b60008083601f84011261029f57600080fd5b50813567ffffffffffffffff8111156102b757600080fd5b6020830191508360208285010111156102cf57600080fd5b9250929050565b600080600080600080600060a0888a0312156102f157600080fd5b6102fa88610271565b965060208801359550604088013567ffffffffffffffff8082111561031e57600080fd5b61032a8b838c0161028d565b909750955085915061033e60608b01610271565b945060808a013591508082111561035457600080fd5b506103618a828b0161028d565b989b979a50959850939692959293505050565b600181811c9082168061038857607f821691505b6020821081036103a857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b601f821115610410576000816000526020600020601f850160051c810160208610156103ed5750805b601f850160051c820191505b8181101561040c578281556001016103f9565b5050505b505050565b67ffffffffffffffff83111561042d5761042d6103ae565b6104418361043b8354610374565b836103c4565b6000601f841160018114610475576000851561045d5750838201355b600019600387901b1c1916600186901b1783556104cf565b600083815260209020601f19861690835b828110156104a65786850135825560209485019460019092019101610486565b50868210156104c35760001960f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea264697066735822122018aae83154d1fdb76542fdfef3ea577783f67dc8a90b8667d1027536f3d0416264736f6c63430008160033","sourceMap":"173:576:135:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;312:19;;;;;;;;;;;;;;;;;;;160:25:145;;;148:2;133:18;312:19:135;;;;;;;;392:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;363:23::-;;;;;;;;;;-1:-1:-1;363:23:135;;;;-1:-1:-1;;;;;363:23:135;;;;;;-1:-1:-1;;;;;911:32:145;;;893:51;;881:2;866:18;363:23:135;747:203:145;421:326:135;;;;;;:::i;:::-;;:::i;:::-;;287:19;;;;;;;;;;-1:-1:-1;287:19:135;;;;-1:-1:-1;;;;;287:19:135;;;337:20;;;;;;;;;;;;;:::i;392:22::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;421:326::-;618:4;:12;;-1:-1:-1;;;;;;618:12:135;-1:-1:-1;;;;;618:12:135;;;;;-1:-1:-1;640:12:135;;;662:7;:18;672:8;;662:7;:18;:::i;:::-;-1:-1:-1;690:8:135;:20;;-1:-1:-1;;;;;;690:20:135;-1:-1:-1;;;;;690:20:135;;;;;720:9;:20;732:8;;720:9;:20;:::i;:::-;;421:326;;;;;;;:::o;337:20::-;;;;;;;:::i;196:546:145:-;306:4;335:2;364;353:9;346:21;396:6;390:13;439:6;434:2;423:9;419:18;412:34;464:1;474:140;488:6;485:1;482:13;474:140;;;583:14;;;579:23;;573:30;549:17;;;568:2;545:26;538:66;503:10;;474:140;;;478:3;663:1;658:2;649:6;638:9;634:22;630:31;623:42;733:2;726;722:7;717:2;709:6;705:15;701:29;690:9;686:45;682:54;674:62;;;;196:546;;;;:::o;955:173::-;1023:20;;-1:-1:-1;;;;;1072:31:145;;1062:42;;1052:70;;1118:1;1115;1108:12;1052:70;955:173;;;:::o;1133:347::-;1184:8;1194:6;1248:3;1241:4;1233:6;1229:17;1225:27;1215:55;;1266:1;1263;1256:12;1215:55;-1:-1:-1;1289:20:145;;1332:18;1321:30;;1318:50;;;1364:1;1361;1354:12;1318:50;1401:4;1393:6;1389:17;1377:29;;1453:3;1446:4;1437:6;1429;1425:19;1421:30;1418:39;1415:59;;;1470:1;1467;1460:12;1415:59;1133:347;;;;;:::o;1485:935::-;1602:6;1610;1618;1626;1634;1642;1650;1703:3;1691:9;1682:7;1678:23;1674:33;1671:53;;;1720:1;1717;1710:12;1671:53;1743:29;1762:9;1743:29;:::i;:::-;1733:39;;1819:2;1808:9;1804:18;1791:32;1781:42;;1874:2;1863:9;1859:18;1846:32;1897:18;1938:2;1930:6;1927:14;1924:34;;;1954:1;1951;1944:12;1924:34;1993:58;2043:7;2034:6;2023:9;2019:22;1993:58;:::i;:::-;2070:8;;-1:-1:-1;1967:84:145;-1:-1:-1;1967:84:145;;-1:-1:-1;2124:38:145;2158:2;2143:18;;2124:38;:::i;:::-;2114:48;;2215:3;2204:9;2200:19;2187:33;2171:49;;2245:2;2235:8;2232:16;2229:36;;;2261:1;2258;2251:12;2229:36;;2300:60;2352:7;2341:8;2330:9;2326:24;2300:60;:::i;:::-;1485:935;;;;-1:-1:-1;1485:935:145;;-1:-1:-1;1485:935:145;;;;2274:86;;-1:-1:-1;;;1485:935:145:o;2425:380::-;2504:1;2500:12;;;;2547;;;2568:61;;2622:4;2614:6;2610:17;2600:27;;2568:61;2675:2;2667:6;2664:14;2644:18;2641:38;2638:161;;2721:10;2716:3;2712:20;2709:1;2702:31;2756:4;2753:1;2746:15;2784:4;2781:1;2774:15;2638:161;;2425:380;;;:::o;2810:127::-;2871:10;2866:3;2862:20;2859:1;2852:31;2902:4;2899:1;2892:15;2926:4;2923:1;2916:15;3067:542;3168:2;3163:3;3160:11;3157:446;;;3204:1;3228:5;3225:1;3218:16;3272:4;3269:1;3259:18;3342:2;3330:10;3326:19;3323:1;3319:27;3313:4;3309:38;3378:4;3366:10;3363:20;3360:47;;;-1:-1:-1;3401:4:145;3360:47;3456:2;3451:3;3447:12;3444:1;3440:20;3434:4;3430:31;3420:41;;3511:82;3529:2;3522:5;3519:13;3511:82;;;3574:17;;;3555:1;3544:13;3511:82;;;3515:3;;;3157:446;3067:542;;;:::o;3785:1202::-;3907:18;3902:3;3899:27;3896:53;;;3929:18;;:::i;:::-;3958:93;4047:3;4007:38;4039:4;4033:11;4007:38;:::i;:::-;4001:4;3958:93;:::i;:::-;4077:1;4102:2;4097:3;4094:11;4119:1;4114:615;;;;4773:1;4790:3;4787:93;;;-1:-1:-1;4846:19:145;;;4833:33;4787:93;-1:-1:-1;;3742:1:145;3738:11;;;3734:24;3730:29;3720:40;3766:1;3762:11;;;3717:57;4893:78;;4087:894;;4114:615;3014:1;3007:14;;;3051:4;3038:18;;-1:-1:-1;;4150:17:145;;;4250:9;4272:229;4286:7;4283:1;4280:14;4272:229;;;4375:19;;;4362:33;4347:49;;4482:4;4467:20;;;;4435:1;4423:14;;;;4302:12;4272:229;;;4276:3;4529;4520:7;4517:16;4514:159;;;4653:1;4649:6;4643:3;4637;4634:1;4630:11;4626:21;4622:34;4618:39;4605:9;4600:3;4596:19;4583:33;4579:79;4571:6;4564:95;4514:159;;;4716:1;4710:3;4707:1;4703:11;4699:19;4693:4;4686:33;4087:894;;;3785:1202;;;:::o","linkReferences":{}},"methodIdentifiers":{"executor()":"c34c08e5","extraData()":"609d3334","from()":"d5ce3389","guid()":"0ae6d46b","lzCompose(address,bytes32,bytes,address,bytes)":"d0a10260","message()":"e21f37ce"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"executor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"from\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"message\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/ComposerMock.sol\":\"ComposerMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol\":{\"keccak256\":\"0xe5014c411acb2b59dd74ae74a1bab02cf32d94a41a548a5ab553d64aeeb55dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dfb7bc121002fc7e7931c34eb17af0ae0f0127dcc3199511c83a58a917160d\",\"dweb:/ipfs/QmPdq1wcRRBdUP169LHCLoLuPRunN9eR71TQN42FjGpowx\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]},\"test/mocks/ComposerMock.sol\":{\"keccak256\":\"0xd9f1149b739b89c64a9f98bbe8a5d797b9e2084ebd1d5278842f87f1d8c5a7a7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://365f7ef46df424b7878457044b57bc21d6337a0f9387acc31666b45cefebcdf1\",\"dweb:/ipfs/QmRTbjdVQmKxu564PmtcwF7ySUBBLsGu14dzHbUhK4vRcg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"executor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"extraData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"from","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"guid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[],"stateMutability":"view","type":"function","name":"message","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/ComposerMock.sol":"ComposerMock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol":{"keccak256":"0xe5014c411acb2b59dd74ae74a1bab02cf32d94a41a548a5ab553d64aeeb55dae","urls":["bzz-raw://29dfb7bc121002fc7e7931c34eb17af0ae0f0127dcc3199511c83a58a917160d","dweb:/ipfs/QmPdq1wcRRBdUP169LHCLoLuPRunN9eR71TQN42FjGpowx"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"},"test/mocks/ComposerMock.sol":{"keccak256":"0xd9f1149b739b89c64a9f98bbe8a5d797b9e2084ebd1d5278842f87f1d8c5a7a7","urls":["bzz-raw://365f7ef46df424b7878457044b57bc21d6337a0f9387acc31666b45cefebcdf1","dweb:/ipfs/QmRTbjdVQmKxu564PmtcwF7ySUBBLsGu14dzHbUhK4vRcg"],"license":"UNLICENSED"}},"version":1},"id":135} \ No newline at end of file diff --git a/packages/onft-evm/out/Context.sol/Context.json b/packages/onft-evm/out/Context.sol/Context.json deleted file mode 100644 index 0e330d47c..000000000 --- a/packages/onft-evm/out/Context.sol/Context.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Context.sol":"Context"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":120} \ No newline at end of file diff --git a/packages/onft-evm/out/DVNFeeLibMock.sol/DVNFeeLibMock.json b/packages/onft-evm/out/DVNFeeLibMock.sol/DVNFeeLibMock.json deleted file mode 100644 index 5746c0b09..000000000 --- a/packages/onft-evm/out/DVNFeeLibMock.sol/DVNFeeLibMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_nativeDecimalsRate","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getFee","inputs":[{"name":"_params","type":"tuple","internalType":"struct IDVNFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"sender","type":"address","internalType":"address"},{"name":"quorum","type":"uint64","internalType":"uint64"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IDVN.DstConfig","components":[{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeOnSend","inputs":[{"name":"_params","type":"tuple","internalType":"struct IDVNFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"sender","type":"address","internalType":"address"},{"name":"quorum","type":"uint64","internalType":"uint64"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IDVN.DstConfig","components":[{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawToken","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"DVN_EidNotSupported","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"DVN_InvalidDVNOptions","inputs":[{"name":"cursor","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"DVN_UnsupportedOptionType","inputs":[{"name":"optionType","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]}],"bytecode":{"object":"0x60a060405234801561001057600080fd5b50604051610e2e380380610e2e83398101604081905261002f916100b7565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610067565b506080526100d0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100c957600080fd5b5051919050565b608051610d436100eb60003960006105fa0152610d436000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063715018a6146100875780637bfa20a91461009c5780638da5cb5b146100cf578063df2b057e146100f7578063f2fde38b1461010a57600080fd5b3661006057005b600080fd5b34801561007157600080fd5b506100856100803660046109c7565b61012a565b005b34801561009357600080fd5b50610085610142565b3480156100a857600080fd5b506100bc6100b7366004610a03565b610156565b6040519081526020015b60405180910390f35b3480156100db57600080fd5b506000546040516001600160a01b0390911681526020016100c6565b6100bc610105366004610a03565b6102e6565b34801561011657600080fd5b50610085610125366004610aa5565b6103cf565b61013261040d565b61013d83838361043a565b505050565b61014a61040d565b610154600061045d565b565b60006101656020850185610ac0565b67ffffffffffffffff166000036101ad576101866040860160208701610aea565b60405163680489c560e11b815263ffffffff90911660048201526024015b60405180910390fd5b6101b783836104ad565b5060006101dc6101cd60a0880160808901610ac0565b67ffffffffffffffff1661051f565b90506000806101ee6020890189610aa5565b6001600160a01b03166388a4124c61020c60408b0160208c01610aea565b8561021a60208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff166044820152606401608060405180830381865afa158015610273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102979190610b25565b9350505091506102da828860200160208101906102b49190610b7a565b6102c460c08c0160a08d01610b7a565b6102d460608c0160408d01610b9e565b8561058b565b98975050505050505050565b60006102f56020850185610ac0565b67ffffffffffffffff16600003610316576101866040860160208701610aea565b61032083836104ad565b5060006103366101cd60a0880160808901610ac0565b90506000806103486020890189610aa5565b6001600160a01b031663c1723a1d61036660408b0160208c01610aea565b8561037460208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff1660448201526064016080604051808303816000875af1158015610273573d6000803e3d6000fd5b6103d761040d565b6001600160a01b03811661040157604051631e4fbdf760e01b8152600060048201526024016101a4565b61040a8161045d565b50565b6000546001600160a01b031633146101545760405163118cdaa760e01b81523360048201526024016101a4565b6001600160a01b0383166104525761013d8282610661565b61013d83838361070e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082156104f0576000806104c4868685610749565b604051637085244b60e01b815260ff8516600482015290965092945085935050602490910190506101a4565b8083146105135760405163013adb8360e21b8152600481018290526024016101a4565b60009150505b92915050565b60008061052d604184610bd1565b905061053a602082610bfe565b156105625761054a602082610bfe565b6105549082610c12565b61055f906020610c25565b90505b8061056f60e06044610c25565b6105799190610c25565b610584906040610c25565b9392505050565b60008061ffff86161561059e57856105a0565b845b905060006127106105b561ffff84168a610bd1565b6105bf9190610c38565b90506001600160801b03841615806105de57506001600160801b038516155b156105ec5791506106589050565b6000846001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000876001600160801b031661062d9190610bd1565b6106379190610c38565b610641908a610c25565b90508181116106505781610652565b805b93505050505b95945050505050565b6001600160a01b038216610688576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b505090508061013d57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016101a4565b6001600160a01b038216610735576040516306b7a93160e41b815260040160405180910390fd5b61013d6001600160a01b03841683836107a3565b60003681600184018161075d8888846107f5565b6002830192909150610775908990899060030161081c565b94506002820161ffff8216830161078e81838b8d610c4c565b979b909a50969850505061ffff160193505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261013d908490610841565b60006002820161080781848688610c4c565b61081091610c76565b60f01c95945050505050565b600083838381811061083057610830610ca6565b919091013560f81c95945050505050565b60006108566001600160a01b038416836108a4565b9050805160001415801561087b5750808060200190518101906108799190610cbc565b155b1561013d57604051635274afe760e01b81526001600160a01b03841660048201526024016101a4565b60606105848383600084600080856001600160a01b031684866040516108ca9190610cde565b60006040518083038185875af1925050503d8060008114610907576040519150601f19603f3d011682016040523d82523d6000602084013e61090c565b606091505b509150915061091c868383610926565b9695505050505050565b60608261093b5761093682610982565b610584565b815115801561095257506001600160a01b0384163b155b1561097b57604051639996b31560e01b81526001600160a01b03851660048201526024016101a4565b5080610584565b8051156109925780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109c257600080fd5b919050565b6000806000606084860312156109dc57600080fd5b6109e5846109ab565b92506109f3602085016109ab565b9150604084013590509250925092565b600080600080848603610140811215610a1b57600080fd5b60c0811215610a2957600080fd5b859450606060bf1982011215610a3e57600080fd5b5060c08501925061012085013567ffffffffffffffff80821115610a6157600080fd5b818701915087601f830112610a7557600080fd5b813581811115610a8457600080fd5b886020828501011115610a9657600080fd5b95989497505060200194505050565b600060208284031215610ab757600080fd5b610584826109ab565b600060208284031215610ad257600080fd5b813567ffffffffffffffff8116811461058457600080fd5b600060208284031215610afc57600080fd5b813563ffffffff8116811461058457600080fd5b6001600160801b038116811461040a57600080fd5b60008060008060808587031215610b3b57600080fd5b845193506020850151610b4d81610b10565b6040860151909350610b5e81610b10565b6060860151909250610b6f81610b10565b939692955090935050565b600060208284031215610b8c57600080fd5b813561ffff8116811461058457600080fd5b600060208284031215610bb057600080fd5b813561058481610b10565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761051957610519610bbb565b634e487b7160e01b600052601260045260246000fd5b600082610c0d57610c0d610be8565b500690565b8181038181111561051957610519610bbb565b8082018082111561051957610519610bbb565b600082610c4757610c47610be8565b500490565b60008085851115610c5c57600080fd5b83861115610c6957600080fd5b5050820193919092039150565b6001600160f01b03198135818116916002851015610c9e5780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610cce57600080fd5b8151801515811461058457600080fd5b6000825160005b81811015610cff5760208186018101518583015201610ce5565b50600092019182525091905056fea2646970667358221220a3bc24e7c5cbedac7e00899eb168625849d3210800cd0b59d0aa08cd2b3af71664736f6c63430008160033","sourceMap":"647:5287:72:-:0;;;1189:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1238:10;;1269:95:105;;1322:31;;-1:-1:-1;;;1322:31:105;;1350:1;1322:31;;;349:51:145;322:18;;1322:31:105;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1260:40:72::1;::::0;647:5287;;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:184:145:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:145;;14:184;-1:-1:-1;14:184:145:o;203:203::-;647:5287:72;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100595760003560e01c806301e3366714610065578063715018a6146100875780637bfa20a91461009c5780638da5cb5b146100cf578063df2b057e146100f7578063f2fde38b1461010a57600080fd5b3661006057005b600080fd5b34801561007157600080fd5b506100856100803660046109c7565b61012a565b005b34801561009357600080fd5b50610085610142565b3480156100a857600080fd5b506100bc6100b7366004610a03565b610156565b6040519081526020015b60405180910390f35b3480156100db57600080fd5b506000546040516001600160a01b0390911681526020016100c6565b6100bc610105366004610a03565b6102e6565b34801561011657600080fd5b50610085610125366004610aa5565b6103cf565b61013261040d565b61013d83838361043a565b505050565b61014a61040d565b610154600061045d565b565b60006101656020850185610ac0565b67ffffffffffffffff166000036101ad576101866040860160208701610aea565b60405163680489c560e11b815263ffffffff90911660048201526024015b60405180910390fd5b6101b783836104ad565b5060006101dc6101cd60a0880160808901610ac0565b67ffffffffffffffff1661051f565b90506000806101ee6020890189610aa5565b6001600160a01b03166388a4124c61020c60408b0160208c01610aea565b8561021a60208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff166044820152606401608060405180830381865afa158015610273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102979190610b25565b9350505091506102da828860200160208101906102b49190610b7a565b6102c460c08c0160a08d01610b7a565b6102d460608c0160408d01610b9e565b8561058b565b98975050505050505050565b60006102f56020850185610ac0565b67ffffffffffffffff16600003610316576101866040860160208701610aea565b61032083836104ad565b5060006103366101cd60a0880160808901610ac0565b90506000806103486020890189610aa5565b6001600160a01b031663c1723a1d61036660408b0160208c01610aea565b8561037460208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff1660448201526064016080604051808303816000875af1158015610273573d6000803e3d6000fd5b6103d761040d565b6001600160a01b03811661040157604051631e4fbdf760e01b8152600060048201526024016101a4565b61040a8161045d565b50565b6000546001600160a01b031633146101545760405163118cdaa760e01b81523360048201526024016101a4565b6001600160a01b0383166104525761013d8282610661565b61013d83838361070e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082156104f0576000806104c4868685610749565b604051637085244b60e01b815260ff8516600482015290965092945085935050602490910190506101a4565b8083146105135760405163013adb8360e21b8152600481018290526024016101a4565b60009150505b92915050565b60008061052d604184610bd1565b905061053a602082610bfe565b156105625761054a602082610bfe565b6105549082610c12565b61055f906020610c25565b90505b8061056f60e06044610c25565b6105799190610c25565b610584906040610c25565b9392505050565b60008061ffff86161561059e57856105a0565b845b905060006127106105b561ffff84168a610bd1565b6105bf9190610c38565b90506001600160801b03841615806105de57506001600160801b038516155b156105ec5791506106589050565b6000846001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000876001600160801b031661062d9190610bd1565b6106379190610c38565b610641908a610c25565b90508181116106505781610652565b805b93505050505b95945050505050565b6001600160a01b038216610688576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b505090508061013d57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016101a4565b6001600160a01b038216610735576040516306b7a93160e41b815260040160405180910390fd5b61013d6001600160a01b03841683836107a3565b60003681600184018161075d8888846107f5565b6002830192909150610775908990899060030161081c565b94506002820161ffff8216830161078e81838b8d610c4c565b979b909a50969850505061ffff160193505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261013d908490610841565b60006002820161080781848688610c4c565b61081091610c76565b60f01c95945050505050565b600083838381811061083057610830610ca6565b919091013560f81c95945050505050565b60006108566001600160a01b038416836108a4565b9050805160001415801561087b5750808060200190518101906108799190610cbc565b155b1561013d57604051635274afe760e01b81526001600160a01b03841660048201526024016101a4565b60606105848383600084600080856001600160a01b031684866040516108ca9190610cde565b60006040518083038185875af1925050503d8060008114610907576040519150601f19603f3d011682016040523d82523d6000602084013e61090c565b606091505b509150915061091c868383610926565b9695505050505050565b60608261093b5761093682610982565b610584565b815115801561095257506001600160a01b0384163b155b1561097b57604051639996b31560e01b81526001600160a01b03851660048201526024016101a4565b5080610584565b8051156109925780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109c257600080fd5b919050565b6000806000606084860312156109dc57600080fd5b6109e5846109ab565b92506109f3602085016109ab565b9150604084013590509250925092565b600080600080848603610140811215610a1b57600080fd5b60c0811215610a2957600080fd5b859450606060bf1982011215610a3e57600080fd5b5060c08501925061012085013567ffffffffffffffff80821115610a6157600080fd5b818701915087601f830112610a7557600080fd5b813581811115610a8457600080fd5b886020828501011115610a9657600080fd5b95989497505060200194505050565b600060208284031215610ab757600080fd5b610584826109ab565b600060208284031215610ad257600080fd5b813567ffffffffffffffff8116811461058457600080fd5b600060208284031215610afc57600080fd5b813563ffffffff8116811461058457600080fd5b6001600160801b038116811461040a57600080fd5b60008060008060808587031215610b3b57600080fd5b845193506020850151610b4d81610b10565b6040860151909350610b5e81610b10565b6060860151909250610b6f81610b10565b939692955090935050565b600060208284031215610b8c57600080fd5b813561ffff8116811461058457600080fd5b600060208284031215610bb057600080fd5b813561058481610b10565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761051957610519610bbb565b634e487b7160e01b600052601260045260246000fd5b600082610c0d57610c0d610be8565b500690565b8181038181111561051957610519610bbb565b8082018082111561051957610519610bbb565b600082610c4757610c47610be8565b500490565b60008085851115610c5c57600080fd5b83861115610c6957600080fd5b5050820193919092039150565b6001600160f01b03198135818116916002851015610c9e5780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610cce57600080fd5b8151801515811461058457600080fd5b6000825160005b81811015610cff5760208186018101518583015201610ce5565b50600092019182525091905056fea2646970667358221220a3bc24e7c5cbedac7e00899eb168625849d3210800cd0b59d0aa08cd2b3af71664736f6c63430008160033","sourceMap":"647:5287:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1396:203;;;;;;;;;;-1:-1:-1;1396:203:72;;;;;:::i;:::-;;:::i;:::-;;2293:101:105;;;;;;;;;;;;;:::i;3322:816:72:-;;;;;;;;;;-1:-1:-1;3322:816:72;;;;;:::i;:::-;;:::i;:::-;;;1557:25:145;;;1545:2;1530:18;3322:816:72;;;;;;;;1638:85:105;;;;;;;;;;-1:-1:-1;1684:7:105;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:105;;;1739:51:145;;1727:2;1712:18;1638:85:105;1593:203:145;1853:1259:72;;;;;;:::i;:::-;;:::i;2543:215:105:-;;;;;;;;;;-1:-1:-1;2543:215:105;;;;;:::i;:::-;;:::i;1396:203:72:-;1531:13:105;:11;:13::i;:::-;1548:44:72::1;1571:6;1579:3;1584:7;1548:22;:44::i;:::-;1396:203:::0;;;:::o;2293:101:105:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;3322:816:72:-;3480:7;3503:14;;;;:10;:14;:::i;:::-;:19;;3521:1;3503:19;3499:67;;3551:14;;;;;;;;:::i;:::-;3531:35;;-1:-1:-1;;;3531:35:72;;2736:10:145;2724:23;;;3531:35:72;;;2706:42:145;2679:18;;3531:35:72;;;;;;;;3499:67;3577:27;3595:8;;3577:17;:27::i;:::-;-1:-1:-1;3635:20:72;3658:32;3675:14;;;;;;;;:::i;:::-;3658:32;;:16;:32::i;:::-;3635:55;-1:-1:-1;3701:11:72;;3764:17;;;;:7;:17;:::i;:::-;-1:-1:-1;;;;;3744:55:72;;3813:14;;;;;;;;:::i;:::-;3841:12;3867:14;;;;:10;:14;:::i;:::-;3744:147;;-1:-1:-1;;;;;;3744:147:72;;;;;;;;2976:23:145;;;;3744:147:72;;;2958:42:145;3016:18;;;3009:34;;;;3091:18;3079:31;3059:18;;;3052:59;2931:18;;3744:147:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3700:191;;;;;;3920:211;3951:3;3972:10;:24;;;;;;;;;;:::i;:::-;4014:28;;;;;;;;:::i;:::-;4060:25;;;;;;;;:::i;:::-;4103:14;3920:13;:211::i;:::-;3901:230;3322:816;-1:-1:-1;;;;;;;;3322:816:72:o;1853:1259::-;2020:7;2043:14;;;;:10;:14;:::i;:::-;:19;;2061:1;2043:19;2039:67;;2091:14;;;;;;;;:::i;2039:67::-;2117:27;2135:8;;2117:17;:27::i;:::-;-1:-1:-1;2181:20:72;2204:32;2221:14;;;;;;;;:::i;2204:32::-;2181:55;-1:-1:-1;2673:11:72;;2736:17;;;;:7;:17;:::i;:::-;-1:-1:-1;;;;;2716:56:72;;2786:14;;;;;;;;:::i;:::-;2814:12;2840:14;;;;:10;:14;:::i;:::-;2716:148;;-1:-1:-1;;;;;;2716:148:72;;;;;;;;2976:23:145;;;;2716:148:72;;;2958:42:145;3016:18;;;3009:34;;;;3091:18;3079:31;3059:18;;;3052:59;2931:18;;2716:148:72;;;;;;;;;;;;;;;;;;;;;;;2543:215:105;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:105;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:105;;2700:1:::1;2672:31;::::0;::::1;1739:51:145::0;1712:18;;2672:31:105::1;1593:203:145::0;2623:91:105::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:105;735:10:120;1855:23:105;1851:101;;1901:40;;-1:-1:-1;;;1901:40:105;;735:10:120;1901:40:105;;;1739:51:145;1712:18;;1901:40:105;1593:203:145;896:222:64;-1:-1:-1;;;;;987:22:64;;983:129;;1025:19;1032:3;1037:6;1025;:19::i;983:129::-;1075:26;1081:6;1089:3;1094:6;1075:5;:26::i;2912:187:105:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;5364:479:72:-;5439:7;;5489:24;;5482:220;;5530:16;;5571:30;:8;;5594:6;5571:22;:30::i;:::-;5654:37;;-1:-1:-1;;;5654:37:72;;4560:4:145;4548:17;;5654:37:72;;;4530:36:145;5529:72:72;;-1:-1:-1;5529:72:72;;-1:-1:-1;5529:72:72;;-1:-1:-1;;4503:18:145;;;;;-1:-1:-1;5654:37:72;4388:184:145;5482:220:72;5715:25;;;5711:78;;5749:40;;-1:-1:-1;;;5749:40:72;;;;;1557:25:145;;;1530:18;;5749:40:72;1411:177:145;5711:78:72;5807:1;5800:8;;;5364:479;;;;;:::o;4212:510::-;4278:7;;4327:29;884:2;4327:7;:29;:::i;:::-;4297:59;-1:-1:-1;4370:24:72;4392:2;4297:59;4370:24;:::i;:::-;:29;4366:135;;4460:24;4482:2;4460:19;:24;:::i;:::-;4437:48;;:19;:48;:::i;:::-;:53;;4488:2;4437:53;:::i;:::-;4415:75;;4366:135;4691:19;4640:48;1071:3;779:2;4640:48;:::i;:::-;:70;;;;:::i;:::-;:75;;4713:2;4640:75;:::i;:::-;4633:82;4212:510;-1:-1:-1;;;4212:510:72:o;4728:630::-;4912:7;;4954:9;;;;:30;;4980:4;4954:30;;;4966:11;4954:30;4931:53;-1:-1:-1;4995:25:72;5048:5;5024:20;;;;:4;:20;:::i;:::-;5023:30;;;;:::i;:::-;4995:58;-1:-1:-1;;;;;;5067:20:72;;;;:39;;-1:-1:-1;;;;;;5091:15:72;;;5067:39;5063:94;;;5129:17;-1:-1:-1;5122:24:72;;-1:-1:-1;5122:24:72;5063:94;5167:26;5239:15;-1:-1:-1;;;;;5203:51:72;5217:18;5204:10;-1:-1:-1;;;;;5204:31:72;;;;;:::i;:::-;5203:51;;;;:::i;:::-;5196:58;;:4;:58;:::i;:::-;5167:87;;5293:17;5272:18;:38;:79;;5334:17;5272:79;;;5313:18;5272:79;5265:86;;;;;4728:630;;;;;;;;:::o;438:252:64:-;-1:-1:-1;;;;;506:19:64;;502:58;;534:26;;-1:-1:-1;;;534:26:64;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:64;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;-1:-1:-1;;;649:34:64;;-1:-1:-1;;;;;5921:32:145;;649:34:64;;;5903:51:145;5970:18;;;5963:34;;;5876:18;;649:34:64;5729:274:145;696:194:64;-1:-1:-1;;;;;779:19:64;;775:58;;807:26;;-1:-1:-1;;;807:26:64;;;;;;;;;;;775:58;843:40;-1:-1:-1;;;;;843:27:64;;871:3;876:6;843:27;:40::i;6549:769:29:-;6659:16;6677:21;6659:16;6799:1;6789:11;;6659:16;6861:22;:8;;6789:11;6861:14;:22::i;:::-;6907:1;6897:11;;;6847:36;;-1:-1:-1;6968:25:29;;:8;;;;6982:10;;6968:13;:25::i;:::-;6955:38;-1:-1:-1;7139:1:29;7130:10;;7206:13;;;;;7242:31;7206:13;7130:10;7242:8;;:31;:::i;:::-;6549:769;;7233:40;;-1:-1:-1;7233:40:29;;-1:-1:-1;;;7287:14:29;;;;-1:-1:-1;;;6549:769:29:o;1303:160:113:-;1412:43;;;-1:-1:-1;;;;;5921:32:145;;1412:43:113;;;5903:51:145;5970:18;;;;5963:34;;;1412:43:113;;;;;;;;;;5876:18:145;;;;1412:43:113;;;;;;;;-1:-1:-1;;;;;1412:43:113;-1:-1:-1;;;1412:43:113;;;1385:71;;1405:5;;1385:19;:71::i;229:215:61:-;306:6;371:1;362:10;;407:18;362:10;:6;407;;:18;:::i;:::-;400:26;;;:::i;:::-;393:34;;;229:215;-1:-1:-1;;;;;229:215:61:o;95:128::-;171:5;201:6;;208;201:14;;;;;;;:::i;:::-;;;;;;;;;95:128;-1:-1:-1;;;;;95:128:61:o;4059:629:113:-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:113;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:113;;-1:-1:-1;;;;;1757:32:145;;4631:40:113;;;1739:51:145;1712:18;;4631:40:113;1593:203:145;2705:151:118;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:118;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:118:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:118;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:118;;-1:-1:-1;;;;;1757:32:145;;5121:24:118;;;1739:51:145;1712:18;;5121:24:118;1593:203:145;5041:119:118;-1:-1:-1;5180:10:118;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:118;;;;;;;;;;;14:173:145;82:20;;-1:-1:-1;;;;;131:31:145;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:328::-;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:52;;;354:1;351;344:12;306:52;377:29;396:9;377:29;:::i;:::-;367:39;;425:38;459:2;448:9;444:18;425:38;:::i;:::-;415:48;;510:2;499:9;495:18;482:32;472:42;;192:328;;;;;:::o;525:881::-;671:6;679;687;695;739:9;730:7;726:23;769:3;765:2;761:12;758:32;;;786:1;783;776:12;758:32;810:3;806:2;802:12;799:32;;;827:1;824;817:12;799:32;850:9;;-1:-1:-1;894:2:145;-1:-1:-1;;875:17:145;;871:26;868:46;;;910:1;907;900:12;868:46;;948:3;937:9;933:19;923:29;;1003:3;992:9;988:19;975:33;1027:18;1068:2;1060:6;1057:14;1054:34;;;1084:1;1081;1074:12;1054:34;1122:6;1111:9;1107:22;1097:32;;1167:7;1160:4;1156:2;1152:13;1148:27;1138:55;;1189:1;1186;1179:12;1138:55;1229:2;1216:16;1255:2;1247:6;1244:14;1241:34;;;1271:1;1268;1261:12;1241:34;1318:7;1311:4;1302:6;1298:2;1294:15;1290:26;1287:39;1284:59;;;1339:1;1336;1329:12;1284:59;525:881;;;;-1:-1:-1;;1370:4:145;1362:13;;-1:-1:-1;;;525:881:145:o;1801:186::-;1860:6;1913:2;1901:9;1892:7;1888:23;1884:32;1881:52;;;1929:1;1926;1919:12;1881:52;1952:29;1971:9;1952:29;:::i;1992:284::-;2050:6;2103:2;2091:9;2082:7;2078:23;2074:32;2071:52;;;2119:1;2116;2109:12;2071:52;2158:9;2145:23;2208:18;2201:5;2197:30;2190:5;2187:41;2177:69;;2242:1;2239;2232:12;2281:276;2339:6;2392:2;2380:9;2371:7;2367:23;2363:32;2360:52;;;2408:1;2405;2398:12;2360:52;2447:9;2434:23;2497:10;2490:5;2486:22;2479:5;2476:33;2466:61;;2523:1;2520;2513:12;3122:146;-1:-1:-1;;;;;3201:5:145;3197:46;3190:5;3187:57;3177:85;;3258:1;3255;3248:12;3273:581;3370:6;3378;3386;3394;3447:3;3435:9;3426:7;3422:23;3418:33;3415:53;;;3464:1;3461;3454:12;3415:53;3493:9;3487:16;3477:26;;3546:2;3535:9;3531:18;3525:25;3559:31;3584:5;3559:31;:::i;:::-;3659:2;3644:18;;3638:25;3609:5;;-1:-1:-1;3672:33:145;3638:25;3672:33;:::i;:::-;3776:2;3761:18;;3755:25;3724:7;;-1:-1:-1;3789:33:145;3755:25;3789:33;:::i;:::-;3273:581;;;;-1:-1:-1;3273:581:145;;-1:-1:-1;;3273:581:145:o;3859:272::-;3917:6;3970:2;3958:9;3949:7;3945:23;3941:32;3938:52;;;3986:1;3983;3976:12;3938:52;4025:9;4012:23;4075:6;4068:5;4064:18;4057:5;4054:29;4044:57;;4097:1;4094;4087:12;4136:247;4195:6;4248:2;4236:9;4227:7;4223:23;4219:32;4216:52;;;4264:1;4261;4254:12;4216:52;4303:9;4290:23;4322:31;4347:5;4322:31;:::i;4577:127::-;4638:10;4633:3;4629:20;4626:1;4619:31;4669:4;4666:1;4659:15;4693:4;4690:1;4683:15;4709:168;4782:9;;;4813;;4830:15;;;4824:22;;4810:37;4800:71;;4851:18;;:::i;4882:127::-;4943:10;4938:3;4934:20;4931:1;4924:31;4974:4;4971:1;4964:15;4998:4;4995:1;4988:15;5014:112;5046:1;5072;5062:35;;5077:18;;:::i;:::-;-1:-1:-1;5111:9:145;;5014:112::o;5131:128::-;5198:9;;;5219:11;;;5216:37;;;5233:18;;:::i;5264:125::-;5329:9;;;5350:10;;;5347:36;;;5363:18;;:::i;5394:120::-;5434:1;5460;5450:35;;5465:18;;:::i;:::-;-1:-1:-1;5499:9:145;;5394:120::o;6008:331::-;6113:9;6124;6166:8;6154:10;6151:24;6148:44;;;6188:1;6185;6178:12;6148:44;6217:6;6207:8;6204:20;6201:40;;;6237:1;6234;6227:12;6201:40;-1:-1:-1;;6263:23:145;;;6308:25;;;;;-1:-1:-1;6008:331:145:o;6344:318::-;-1:-1:-1;;;;;;6464:19:145;;6535:11;;;;6566:1;6558:10;;6555:101;;;6643:2;6637;6630:3;6627:1;6623:11;6620:1;6616:19;6612:28;6608:2;6604:37;6600:46;6591:55;;6555:101;;;6344:318;;;;:::o;6667:127::-;6728:10;6723:3;6719:20;6716:1;6709:31;6759:4;6756:1;6749:15;6783:4;6780:1;6773:15;6799:277;6866:6;6919:2;6907:9;6898:7;6894:23;6890:32;6887:52;;;6935:1;6932;6925:12;6887:52;6967:9;6961:16;7020:5;7013:13;7006:21;6999:5;6996:32;6986:60;;7042:1;7039;7032:12;7081:412;7210:3;7248:6;7242:13;7273:1;7283:129;7297:6;7294:1;7291:13;7283:129;;;7395:4;7379:14;;;7375:25;;7369:32;7356:11;;;7349:53;7312:12;7283:129;;;-1:-1:-1;7467:1:145;7431:16;;7456:13;;;-1:-1:-1;7431:16:145;7081:412;-1:-1:-1;7081:412:145:o","linkReferences":{},"immutableReferences":{"14477":[{"start":1530,"length":32}]}},"methodIdentifiers":{"getFee((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)":"7bfa20a9","getFeeOnSend((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)":"df2b057e","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","withdrawToken(address,address,uint256)":"01e33667"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nativeDecimalsRate\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"DVN_EidNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"DVN_InvalidDVNOptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"optionType\",\"type\":\"uint8\"}],\"name\":\"DVN_UnsupportedOptionType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"quorum\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IDVNFeeLib.FeeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"internalType\":\"struct IDVN.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"quorum\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IDVNFeeLib.FeeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"internalType\":\"struct IDVN.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFeeOnSend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"getFee((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)\":{\"details\":\"get fee view function\",\"params\":{\"\":\"//_options options\",\"_dstConfig\":\"dst config\",\"_params\":\"fee params\"}},\"getFeeOnSend((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)\":{\"details\":\"get fee function that can change state. e.g. paying priceFeed\",\"params\":{\"\":\"//_options options\",\"_dstConfig\":\"dst config\",\"_params\":\"fee params\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol\":\"DVNFeeLibMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9\",\"dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":{\"keccak256\":\"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55\",\"dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol\":{\"keccak256\":\"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677\",\"dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_nativeDecimalsRate","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"DVN_EidNotSupported"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"type":"error","name":"DVN_InvalidDVNOptions"},{"inputs":[{"internalType":"uint8","name":"optionType","type":"uint8"}],"type":"error","name":"DVN_UnsupportedOptionType"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"struct IDVNFeeLib.FeeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint64","name":"quorum","type":"uint64"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IDVN.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IDVNFeeLib.FeeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint64","name":"quorum","type":"uint64"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IDVN.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"getFeeOnSend","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawToken"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getFee((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)":{"details":"get fee view function","params":{"":"//_options options","_dstConfig":"dst config","_params":"fee params"}},"getFeeOnSend((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)":{"details":"get fee function that can change state. e.g. paying priceFeed","params":{"":"//_options options","_dstConfig":"dst config","_params":"fee params"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol":"DVNFeeLibMock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f","urls":["bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9","dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":{"keccak256":"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73","urls":["bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55","dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol":{"keccak256":"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef","urls":["bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677","dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":72} \ No newline at end of file diff --git a/packages/onft-evm/out/DVNMock.sol/DVNMock.json b/packages/onft-evm/out/DVNMock.sol/DVNMock.json deleted file mode 100644 index 02ef43624..000000000 --- a/packages/onft-evm/out/DVNMock.sol/DVNMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_vid","type":"uint32","internalType":"uint32"},{"name":"_messageLibs","type":"address[]","internalType":"address[]"},{"name":"_priceFeed","type":"address","internalType":"address"},{"name":"_signers","type":"address[]","internalType":"address[]"},{"name":"_quorum","type":"uint64","internalType":"uint64"},{"name":"_admins","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowlistSize","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"assignJob","inputs":[{"name":"_param","type":"tuple","internalType":"struct ILayerZeroDVN.AssignJobParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"packetHeader","type":"bytes","internalType":"bytes"},{"name":"payloadHash","type":"bytes32","internalType":"bytes32"},{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"sender","type":"address","internalType":"address"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"totalFee","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"assignJob","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"","type":"uint16","internalType":"uint16"},{"name":"_confirmations","type":"uint64","internalType":"uint64"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"totalFee","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"defaultMultiplierBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"dstConfig","inputs":[{"name":"dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"execute","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct ExecuteParam[]","components":[{"name":"vid","type":"uint32","internalType":"uint32"},{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"expiration","type":"uint256","internalType":"uint256"},{"name":"signatures","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFee","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_confirmations","type":"uint64","internalType":"uint64"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFee","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"","type":"uint16","internalType":"uint16"},{"name":"_confirmations","type":"uint64","internalType":"uint64"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint8[]","internalType":"uint8[]"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"_role","type":"bytes32","internalType":"bytes32"},{"name":"_account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasAcl","inputs":[{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hashCallData","inputs":[{"name":"_vid","type":"uint32","internalType":"uint32"},{"name":"_target","type":"address","internalType":"address"},{"name":"_callData","type":"bytes","internalType":"bytes"},{"name":"_expiration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"priceFeed","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quorum","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"quorumChangeAdmin","inputs":[{"name":"_param","type":"tuple","internalType":"struct ExecuteParam","components":[{"name":"vid","type":"uint32","internalType":"uint32"},{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"expiration","type":"uint256","internalType":"uint256"},{"name":"signatures","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"revokeRole","inputs":[{"name":"_role","type":"bytes32","internalType":"bytes32"},{"name":"_account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultMultiplierBps","inputs":[{"name":"_multiplierBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDstConfig","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct IDVN.DstConfigParam[]","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPaused","inputs":[{"name":"_paused","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPriceFeed","inputs":[{"name":"_priceFeed","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setQuorum","inputs":[{"name":"_quorum","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSigner","inputs":[{"name":"_signer","type":"address","internalType":"address"},{"name":"_active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_optionTypes","type":"uint8[]","internalType":"uint8[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWorkerFeeLib","inputs":[{"name":"_workerFeeLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signerSize","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"signers","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[{"name":"active","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"usedHashes","inputs":[{"name":"executableHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"used","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifySignatures","inputs":[{"name":"_hash","type":"bytes32","internalType":"bytes32"},{"name":"_signatures","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint8","internalType":"enum MultiSigMock.Errors"}],"stateMutability":"view"},{"type":"function","name":"vid","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_lib","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawFeeFromUlnV2","inputs":[{"name":"_lib","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address payable"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawToken","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"workerFeeLib","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"ExecuteFailed","inputs":[{"name":"_index","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"HashAlreadyUsed","inputs":[{"name":"param","type":"tuple","indexed":false,"internalType":"struct ExecuteParam","components":[{"name":"vid","type":"uint32","internalType":"uint32"},{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"expiration","type":"uint256","internalType":"uint256"},{"name":"signatures","type":"bytes","internalType":"bytes"}]},{"name":"_hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDefaultMultiplierBps","inputs":[{"name":"multiplierBps","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"SetDstConfig","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct IDVN.DstConfigParam[]","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}]}],"anonymous":false},{"type":"event","name":"SetPriceFeed","inputs":[{"name":"priceFeed","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetSupportedOptionTypes","inputs":[{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"optionTypes","type":"uint8[]","indexed":false,"internalType":"uint8[]"}],"anonymous":false},{"type":"event","name":"SetWorkerLib","inputs":[{"name":"workerLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdateQuorum","inputs":[{"name":"_quorum","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"UpdateSigner","inputs":[{"name":"_signer","type":"address","indexed":false,"internalType":"address"},{"name":"_active","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"VerifierFeePaid","inputs":[{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"VerifySignaturesFailed","inputs":[{"name":"idx","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"lib","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"DVN_DuplicatedHash","inputs":[{"name":"executableHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"DVN_InstructionExpired","inputs":[]},{"type":"error","name":"DVN_InvalidRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"DVN_InvalidSignatures","inputs":[]},{"type":"error","name":"DVN_InvalidTarget","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"DVN_InvalidVid","inputs":[{"name":"vid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"DVN_OnlySelf","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"MultiSig_OnlySigner","inputs":[]},{"type":"error","name":"MultiSig_QuorumIsZero","inputs":[]},{"type":"error","name":"MultiSig_SignersSizeIsLessThanQuorum","inputs":[{"name":"signersSize","type":"uint64","internalType":"uint64"},{"name":"quorum","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"MultiSig_StateAlreadySet","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"active","type":"bool","internalType":"bool"}]},{"type":"error","name":"MultiSig_UnorderedSigners","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]},{"type":"error","name":"Worker_NotAllowed","inputs":[]},{"type":"error","name":"Worker_OnlyMessageLib","inputs":[]},{"type":"error","name":"Worker_RoleRenouncingDisabled","inputs":[]}],"bytecode":{"object":"0x60a06040523480156200001157600080fd5b50604051620038e7380380620038e78339810160408190526200003491620004de565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b03861617905582828686612ee060008660005b8551811015620000d657620000cc7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000b857620000b8620005b1565b60200260200101516200027d60201b60201c565b5060010162000074565b5060005b815181101562000128576200011e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000b857620000b8620005b1565b50600101620000da565b505050505050806001600160401b03166000036200015957604051635f86e17760e01b815260040160405180910390fd5b806001600160401b0316825110156200019f5781516040516378e2c15760e11b81526001600160401b039182166004820152908216602482015260440160405180910390fd5b6000805b835181101562000231576000848281518110620001c457620001c4620005b1565b60200260200101519050826001600160a01b0316816001600160a01b03161162000201576040516305fa937f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600460205260409020805460ff1916600190811790915590925001620001a3565b50509051600580546001600160401b0393841668010000000000000000026001600160801b0319909116939092169290921717905550505063ffffffff90921660805250620006049050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83148015620002d057506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b156200031d5760018054601590620002f890600160a81b90046001600160401b0316620005c7565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b62000329838362000335565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16620003da576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620003913390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200032f565b5060006200032f565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200041157600080fd5b919050565b600082601f8301126200042857600080fd5b815160206001600160401b0380831115620004475762000447620003e3565b8260051b604051601f19603f830116810181811084821117156200046f576200046f620003e3565b60405293845260208187018101949081019250878511156200049057600080fd5b6020870191505b84821015620004bb57620004ab82620003f9565b8352918301919083019062000497565b979650505050505050565b80516001600160401b03811681146200041157600080fd5b60008060008060008060c08789031215620004f857600080fd5b865163ffffffff811681146200050d57600080fd5b60208801519096506001600160401b03808211156200052b57600080fd5b620005398a838b0162000416565b96506200054960408a01620003f9565b955060608901519150808211156200056057600080fd5b6200056e8a838b0162000416565b94506200057e60808a01620004c6565b935060a08901519150808211156200059557600080fd5b50620005a489828a0162000416565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b03198101620005fa57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6080516132b96200062e6000396000818161074c015281816112280152611b1001526132b96000f3fe60806040526004361061022f5760003560e01c80638585c9451161012e578063c7a823e0116100ab578063d547741f1161006f578063d547741f146107aa578063dafe0ccc146107ca578063f010cb23146107ea578063f3b4ebd01461080a578063fd62e7501461082a57600080fd5b8063c7a823e0146106cc578063c7b2370b146106fa578063cd88b9031461071a578063cf34c7681461073a578063d2ae21041461078357600080fd5b8063aef18bf7116100f2578063aef18bf714610617578063b143044b14610647578063c358de0a14610667578063c416aa5114610687578063c5e193cd146106ac57600080fd5b80638585c9451461052a57806391d148541461054a57806395d376d71461056a5780639e9449651461057d578063a217fddf1461060257600080fd5b80632f2ff15d116101bc5780635553fb8e116101805780635553fb8e1461046a5780635c975abb1461048a578063724e78da146104a2578063736c0d5b146104c2578063741bef1a146104f257600080fd5b80632f2ff15d146103ca57806330bb3aac146103ea57806331cb61051461040a57806336568abe1461042a57806352d3b8711461044a57600080fd5b806316c38b3c1161020357806316c38b3c146102e05780631703a01814610300578063248a9ca31461033f57806326e67a371461037d5780632de11376146103aa57600080fd5b8062bf2e801461023457806301e336671461026e57806301ffc9a7146102905780631095b6d7146102c0575b600080fd5b34801561024057600080fd5b5060015461025690600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561027a57600080fd5b5061028e610289366004612695565b61084a565b005b34801561029c57600080fd5b506102b06102ab3660046126d6565b610873565b6040519015158152602001610265565b3480156102cc57600080fd5b5061028e6102db366004612695565b6108aa565b3480156102ec57600080fd5b5061028e6102fb36600461270e565b6109ac565b34801561030c57600080fd5b5060055461032790600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610265565b34801561034b57600080fd5b5061036f61035a36600461272b565b60009081526020819052604090206001015490565b604051908152602001610265565b34801561038957600080fd5b5061039d610398366004612758565b6109d1565b6040516102659190612773565b3480156103b657600080fd5b506102b06103c53660046127ba565b610a58565b3480156103d657600080fd5b5061028e6103e53660046127d7565b610add565b3480156103f657600080fd5b5061036f610405366004612866565b610bb2565b34801561041657600080fd5b5061028e6104253660046128dd565b610cca565b34801561043657600080fd5b5061028e6104453660046127d7565b610cf4565b34801561045657600080fd5b5061028e61046536600461290b565b610d0d565b34801561047657600080fd5b5061036f610485366004612991565b610e86565b34801561049657600080fd5b5060015460ff166102b0565b3480156104ae57600080fd5b5061028e6104bd3660046127ba565b610f9e565b3480156104ce57600080fd5b506102b06104dd3660046127ba565b60046020526000908152604090205460ff1681565b3480156104fe57600080fd5b50600254610512906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b34801561053657600080fd5b5061028e6105453660046129e7565b61100c565b34801561055657600080fd5b506102b06105653660046127d7565b611038565b61036f610578366004612a1a565b611061565b34801561058957600080fd5b506105d1610598366004612758565b6006602052600090815260409020546001600160401b03811690600160401b810461ffff1690600160501b90046001600160801b031683565b604080516001600160401b03909416845261ffff90921660208401526001600160801b031690820152606001610265565b34801561060e57600080fd5b5061036f600081565b34801561062357600080fd5b506102b061063236600461272b565b60076020526000908152604090205460ff1681565b34801561065357600080fd5b5061028e610662366004612ac6565b6111d7565b34801561067357600080fd5b5061028e610682366004612b07565b61148c565b34801561069357600080fd5b506001546105129061010090046001600160a01b031681565b3480156106b857600080fd5b5061036f6106c7366004612991565b6114f4565b3480156106d857600080fd5b506106ec6106e7366004612b22565b611661565b604051610265929190612b76565b34801561070657600080fd5b5061028e6107153660046127ba565b61183f565b34801561072657600080fd5b5061028e610735366004612baa565b6118ad565b34801561074657600080fd5b5061076e7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610265565b34801561078f57600080fd5b5060015461032790600160a81b90046001600160401b031681565b3480156107b657600080fd5b5061028e6107c53660046127d7565b6118ec565b3480156107d657600080fd5b5061028e6107e5366004612695565b6119a0565b3480156107f657600080fd5b5061036f610805366004612bef565b611a55565b34801561081657600080fd5b5061028e610825366004612c59565b611a91565b34801561083657600080fd5b50600554610327906001600160401b031681565b60008051602061324483398151915261086281611c3f565b61086d848484611c49565b50505050565b60006001600160e01b03198216637965db0b60e01b14806108a457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000805160206132448339815191526108c281611c3f565b6108da60008051602061322483398151915285611038565b6108f757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561094157600080fd5b505af1158015610955573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b60006109b781611c3f565b81156109c9576109c5611c71565b5050565b6109c5611cc5565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610a4c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610a1d5790505b50505050509050919050565b6000610a847f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611038565b15610a9157506000919050565b600154600160a81b90046001600160401b03161580610ac35750610ac360008051602061326483398151915283611038565b15610ad057506001919050565b506000919050565b919050565b81600080516020613264833981519152811480610b1957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610b31575060008051602061322483398151915281145b15610b5b57303314610b5657604051637d5d391d60e11b815260040160405180910390fd5b610ba8565b6000805160206132448339815191528103610b8757610b56600080516020613244833981519152611c3f565b604051634a7ee1b960e11b8152600481018290526024015b60405180910390fd5b61086d8383611cfe565b600083610bbe81610a58565b610bdb57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290526001600160401b03808c16858701528a84166060860152600554600160401b900416608085015260015461ffff600160e81b82041660a086015260009283526006909152908490209351637bfa20a960e01b8152929361010090910490911691637bfa20a991610c7d918591908a908a90600401612d1d565b602060405180830381865afa158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbe9190612d77565b98975050505050505050565b303314610cea57604051637d5d391d60e11b815260040160405180910390fd5b6109c58282611d82565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020613244833981519152610d2581611c3f565b60005b82811015610e475736848483818110610d4357610d43612d90565b90506080020190506040518060600160405280826020016020810190610d6991906129e7565b6001600160401b03168152602001610d876060840160408501612b07565b61ffff168152602001610da06080840160608501612dbd565b6001600160801b0316905260066000610dbc6020850185612758565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516001600160801b0316600160501b026fffffffffffffffffffffffffffffffff60501b1961ffff909516600160401b0269ffffffffffffffffffff199094166001600160401b0390931692909217929092179290921691909117905550600101610d28565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051610e79929190612dd8565b60405180910390a1505050565b600081610e9281610a58565b610eaf57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808a1660208085018290526001600160401b03808b16868801528985166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451637bfa20a960e01b8152939461010090920490921692637bfa20a992610f52928692600401612ebc565b602060405180830381865afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190612d77565b979650505050505050565b600080516020613244833981519152610fb681611c3f565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b30331461102c57604051637d5d391d60e11b815260040160405180910390fd5b61103581611edd565b50565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600060008051602061322483398151915261107b81611c3f565b61108b60a08601608087016127ba565b61109481610a58565b6110b157604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c081019091526002546001600160a01b031681526000906020808201906110df908a018a612758565b63ffffffff1681526020016110fa60808a0160608b016129e7565b6001600160401b0316815260200161111860a08a0160808b016127ba565b6001600160a01b039081168252600554600160401b90046001600160401b0316602080840191909152600154600160e81b810461ffff16604090940193909352929350610100909104169063df2b057e90839060069060009061117d908d018d612758565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b81526004016111b89493929190612d1d565b6020604051808303816000875af1158015610f6f573d6000803e3d6000fd5b6000805160206132448339815191526111ef81611c3f565b60005b8281101561086d573684848381811061120d5761120d612d90565b905060200281019061121f9190612f15565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112556020830183612758565b63ffffffff16146112665750611484565b428160600135116112775750611484565b60006112b06112896020840184612758565b61129960408501602086016127ba565b6112a66040860186612f35565b8660600135611a55565b905060006112c5826106e76080860186612f35565b50905080611308576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611484565b600061132861131a6040860186612f35565b61132391612f7b565b611fab565b905080156113a35760008381526007602052604090205460ff1615611389577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611378929190612ff0565b60405180910390a150505050611484565b6000838152600760205260409020805460ff191660011790555b6000806113b660408701602088016127ba565b6001600160a01b03166113cc6040880188612f35565b6040516113da92919061308b565b6000604051808303816000865af19150503d8060008114611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50915091508161147d578215611443576000858152600760205260409020805460ff191690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf878260405161147492919061309b565b60405180910390a15b5050505050505b6001016111f2565b6000805160206132448339815191526114a481611c3f565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611000565b600060008051602061322483398151915261150e81611c3f565b8261151881610a58565b61153557604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808b1660208085018290526001600160401b03808c16868801528a85166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451636f9582bf60e11b815293946101009092049092169263df2b057e926115d8928692600401612ebc565b6020604051808303816000875af11580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612d77565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef8460405161164e91815260200190565b60405180910390a1505050949350505050565b600554600090819061168490600160401b90046001600160401b031660416130ca565b83146116965750600090506001611837565b60006116ef866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b600554600160401b90046001600160401b031681101561182b57366000888861171f8560416130ca565b9061172b8660016130e1565b6117369060416130ca565b92611743939291906130f4565b9150915060008061178a8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fe492505050565b50909250905060008160038111156117a4576117a4612b60565b146117bd57600060019850985050505050505050611837565b856001600160a01b0316826001600160a01b0316116117ea57600060029850985050505050505050611837565b6001600160a01b03821660009081526004602052604090205460ff1661181e57600060039850985050505050505050611837565b50935050506001016116f5565b50600160009350935050505b935093915050565b60008051602061324483398151915261185781611c3f565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611000565b6000805160206132448339815191526118c581611c3f565b63ffffffff841660009081526003602052604090206118e59084846125c2565b5050505050565b8160008051602061326483398151915281148061192857507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611940575060008051602061322483398151915281145b1561196a5730331461196557604051637d5d391d60e11b815260040160405180910390fd5b611996565b6000805160206132448339815191528103610b8757611965600080516020613244833981519152611c3f565b61086d8383612031565b6000805160206132448339815191526119b881611c3f565b6119d060008051602061322483398151915285611038565b6119ed57604051635ee08b9760e01b815260040160405180910390fd5b6040516303d8c5ef60e11b81526001600160a01b038481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001611a7095949392919061311e565b60405160208183030381529060405280519060200120905095945050505050565b42816060013511611ab557604051630bbaf26360e01b815260040160405180910390fd5b30611ac660408301602084016127ba565b6001600160a01b031614611b0957611ae460408201602083016127ba565b604051631ce0bfcd60e01b81526001600160a01b039091166004820152602401610b9f565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611b3d6020830183612758565b63ffffffff1614611b7757611b556020820182612758565b60405163134bf0e160e11b815263ffffffff9091166004820152602401610b9f565b6000611b896112896020840184612758565b90506000611b9e826106e76080860186612f35565b50905080611bbf57604051630af656f760e11b815260040160405180910390fd5b60008281526007602052604090205460ff1615611bf257604051634eb522d360e11b815260048101839052602401610b9f565b60008281526007602052604090819020805460ff1916600117905561086d9060008051602061324483398151915290611c2d90860186612f35565b810190611c3a91906127ba565b611cfe565b61103581336120a9565b6001600160a01b038316611c6657611c6182826120e2565b505050565b611c6183838361218f565b611c796121ca565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b611ccd6121f0565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ca8565b600060008051602061326483398151915283148015611d245750611d228383611038565b155b15611d6e5760018054601590611d4990600160a81b90046001600160401b0316613164565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612213565b5060019392505050565b6001600160a01b03821660009081526004602052604090205481151560ff909116151503611dd6576040516302c6469560e51b81526001600160a01b03831660048201528115156024820152604401610b9f565b6001600160a01b0382166000908152600460205260408120805460ff191683151517905581611e1c57600554611e17906001906001600160401b031661318a565b611e33565b600554611e33906001600160401b031660016131b1565b6005549091506001600160401b03600160401b9091048116908216811115611e81576040516378e2c15760e11b81526001600160401b03808416600483015282166024820152604401610b9f565b6005805467ffffffffffffffff19166001600160401b038416179055604080516001600160a01b038616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce910161099e565b806001600160401b0316600003611f0757604051635f86e17760e01b815260040160405180910390fd5b6005546001600160401b03908116908216811015611f4b576040516378e2c15760e11b81526001600160401b03808316600483015283166024820152604401610b9f565b600580546fffffffffffffffff00000000000000001916600160401b6001600160401b038516908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611000565b60006001600160e01b03198216630111a9b760e11b148015906108a457506001600160e01b0319821663704316e560e01b141592915050565b6000806000835160410361201e5760208401516040850151606086015160001a612010888285856122a5565b95509550955050505061202a565b50508151600091506002905b9250925092565b60006000805160206132648339815191528314801561205557506120558383611038565b1561209f576001805460159061207a90600160a81b90046001600160401b03166131d1565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612374565b6120b38282611038565b6109c55760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610b9f565b6001600160a01b038216612109576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612156576040519150601f19603f3d011682016040523d82523d6000602084013e61215b565b606091505b5050905080611c6157604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610b9f565b6001600160a01b0382166121b6576040516306b7a93160e41b815260040160405180910390fd5b611c616001600160a01b03841683836123df565b60015460ff16156121ee5760405163d93c066560e01b815260040160405180910390fd5b565b60015460ff166121ee57604051638dfc202b60e01b815260040160405180910390fd5b600061221f8383611038565b61229d576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556122553390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016108a4565b5060006108a4565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156122e0575060009150600390508261236a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612334573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123605750600092506001915082905061236a565b9250600091508190505b9450945094915050565b60006123808383611038565b1561229d576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016108a4565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b179052611c619185919060009061243d9084168361248b565b9050805160001415801561246257508080602001905181019061246091906131f4565b155b15611c6157604051635274afe760e01b81526001600160a01b0384166004820152602401610b9f565b6060612499838360006124a0565b9392505050565b6060814710156124c55760405163cd78605960e01b8152306004820152602401610b9f565b600080856001600160a01b031684866040516124e19190613211565b60006040518083038185875af1925050503d806000811461251e576040519150601f19603f3d011682016040523d82523d6000602084013e612523565b606091505b509150915061253386838361253d565b9695505050505050565b6060826125525761254d82612599565b612499565b815115801561256957506001600160a01b0384163b155b1561259257604051639996b31560e01b81526001600160a01b0385166004820152602401610b9f565b5080612499565b8051156125a95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f0160209004810192821561265b5791602002820160005b8382111561262c57833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026125eb565b80156126595782816101000a81549060ff021916905560010160208160000104928301926001030261262c565b505b5061266792915061266b565b5090565b5b80821115612667576000815560010161266c565b6001600160a01b038116811461103557600080fd5b6000806000606084860312156126aa57600080fd5b83356126b581612680565b925060208401356126c581612680565b929592945050506040919091013590565b6000602082840312156126e857600080fd5b81356001600160e01b03198116811461249957600080fd5b801515811461103557600080fd5b60006020828403121561272057600080fd5b813561249981612700565b60006020828403121561273d57600080fd5b5035919050565b803563ffffffff81168114610ad857600080fd5b60006020828403121561276a57600080fd5b61249982612744565b6020808252825182820181905260009190848201906040850190845b818110156127ae57835160ff168352928401929184019160010161278f565b50909695505050505050565b6000602082840312156127cc57600080fd5b813561249981612680565b600080604083850312156127ea57600080fd5b8235915060208301356127fc81612680565b809150509250929050565b80356001600160401b0381168114610ad857600080fd5b60008083601f84011261283057600080fd5b5081356001600160401b0381111561284757600080fd5b60208301915083602082850101111561285f57600080fd5b9250929050565b60008060008060006080868803121561287e57600080fd5b61288786612744565b945061289560208701612807565b935060408601356128a581612680565b925060608601356001600160401b038111156128c057600080fd5b6128cc8882890161281e565b969995985093965092949392505050565b600080604083850312156128f057600080fd5b82356128fb81612680565b915060208301356127fc81612700565b6000806020838503121561291e57600080fd5b82356001600160401b038082111561293557600080fd5b818501915085601f83011261294957600080fd5b81358181111561295857600080fd5b8660208260071b850101111561296d57600080fd5b60209290920196919550909350505050565b803561ffff81168114610ad857600080fd5b600080600080608085870312156129a757600080fd5b6129b08561297f565b93506129be6020860161297f565b92506129cc60408601612807565b915060608501356129dc81612680565b939692955090935050565b6000602082840312156129f957600080fd5b61249982612807565b600060a08284031215612a1457600080fd5b50919050565b600080600060408486031215612a2f57600080fd5b83356001600160401b0380821115612a4657600080fd5b612a5287838801612a02565b94506020860135915080821115612a6857600080fd5b50612a758682870161281e565b9497909650939450505050565b60008083601f840112612a9457600080fd5b5081356001600160401b03811115612aab57600080fd5b6020830191508360208260051b850101111561285f57600080fd5b60008060208385031215612ad957600080fd5b82356001600160401b03811115612aef57600080fd5b612afb85828601612a82565b90969095509350505050565b600060208284031215612b1957600080fd5b6124998261297f565b600080600060408486031215612b3757600080fd5b8335925060208401356001600160401b03811115612b5457600080fd5b612a758682870161281e565b634e487b7160e01b600052602160045260246000fd5b82151581526040810160048310612b9d57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b600080600060408486031215612bbf57600080fd5b612bc884612744565b925060208401356001600160401b03811115612be357600080fd5b612a7586828701612a82565b600080600080600060808688031215612c0757600080fd5b612c1086612744565b94506020860135612c2081612680565b935060408601356001600160401b03811115612c3b57600080fd5b612c478882890161281e565b96999598509660600135949350505050565b600060208284031215612c6b57600080fd5b81356001600160401b03811115612c8157600080fd5b612c8d84828501612a02565b949350505050565b60018060a01b0380825116835263ffffffff602083015116602084015260408201516001600160401b03808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000610140612d2c8388612c95565b612d6360c0840187546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b80610120840152610f938184018587612cf4565b600060208284031215612d8957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b80356001600160801b0381168114610ad857600080fd5b600060208284031215612dcf57600080fd5b61249982612da6565b6020808252818101839052600090604080840186845b87811015612e5f5763ffffffff612e0483612744565b1683526001600160401b03612e1a868401612807565b168584015261ffff612e2d85840161297f565b168484015260606001600160801b03612e47828501612da6565b16908401526080928301929190910190600101612dee565b5090979650505050505050565b60005b83811015612e87578181015183820152602001612e6f565b50506000910152565b60008151808452612ea8816020860160208601612e6c565b601f01601f19169290920160200192915050565b6000610140612ecb8387612c95565b612f0260c0840186546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b8061012084015261253381840185612e90565b60008235609e19833603018112612f2b57600080fd5b9190910192915050565b6000808335601e19843603018112612f4c57600080fd5b8301803591506001600160401b03821115612f6657600080fd5b60200191503681900382131561285f57600080fd5b6001600160e01b03198135818116916004851015612fa35780818660040360031b1b83161692505b505092915050565b6000808335601e19843603018112612fc257600080fd5b83016020810192503590506001600160401b03811115612fe157600080fd5b80360382131561285f57600080fd5b6040815263ffffffff61300284612744565b1660408201526000602084013561301881612680565b6001600160a01b031660608301526130336040850185612fab565b60a0608085015261304860e085018284612cf4565b915050606085013560a08401526130626080860186612fab565b848303603f190160c0860152613079838284612cf4565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000612c8d6040830184612e90565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a4576108a46130b4565b808201808211156108a4576108a46130b4565b6000808585111561310457600080fd5b8386111561311157600080fd5b5050820193919092039150565b63ffffffff60e01b8660e01b1681526bffffffffffffffffffffffff198560601b1660048201528360188201528183603883013760009101603801908152949350505050565b60006001600160401b03808316818103613180576131806130b4565b6001019392505050565b6001600160401b038281168282160390808211156131aa576131aa6130b4565b5092915050565b6001600160401b038181168382160190808211156131aa576131aa6130b4565b60006001600160401b038216806131ea576131ea6130b4565b6000190192915050565b60006020828403121561320657600080fd5b815161249981612700565b60008251612f2b818460208701612e6c56fe724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19dea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177574845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bcaa26469706673582212203b61bbdddbd40de2a99f40cf79bc54fd320e09acc6ea01dd4f473c7f674ee39f64736f6c63430008160033","sourceMap":"777:12817:73:-:0;;;2202:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1231:7:121;:15;;-1:-1:-1;;;;;;1699:44:82;-1:-1:-1;;;1699:44:82;;;1753:9;:22;;-1:-1:-1;;;;;;1753:22:82;-1:-1:-1;;;;;1753:22:82;;;;;2473:8:73;2483:7;2408:12;1753:22:82;2434:5:73;-1:-1:-1;2455:7:73;1945:9:82;1940:120;1964:12;:19;1960:1;:23;1940:120;;;2004:45;654:29;2033:12;2046:1;2033:15;;;;;;;;:::i;:::-;;;;;;;2004:10;;;:45;;:::i;:::-;-1:-1:-1;1985:3:82;;1940:120;;;;2075:9;2070:104;2094:7;:14;2090:1;:18;2070:104;;;2129:34;858:23;2152:7;2160:1;2152:10;;;;;;;;:::i;2129:34::-;-1:-1:-1;2110:3:82;;2070:104;;;;1504:676;;;;;972:7:77;-1:-1:-1;;;;;972:12:77;983:1;972:12;968:73;;1007:23;;-1:-1:-1;;;1007:23:77;;;;;;;;;;;968:73;1072:7;-1:-1:-1;;;;;1054:25:77;:8;:15;:25;1050:133;;;1146:15;;1102:70;;-1:-1:-1;;;1102:70:77;;-1:-1:-1;;;;;2976:15:145;;;1102:70:77;;;2958:34:145;3028:15;;;3008:18;;;3001:43;2894:18;;1102:70:77;;;;;;;1050:133;1192:18;1238:9;1233:274;1257:8;:15;1253:1;:19;1233:274;;;1293:14;1310:8;1319:1;1310:11;;;;;;;;:::i;:::-;;;;;;;1293:28;;1349:10;-1:-1:-1;;;;;1339:20:77;:6;-1:-1:-1;;;;;1339:20:77;;1335:93;;1386:27;;-1:-1:-1;;;1386:27:77;;;;;;;;;;;1335:93;-1:-1:-1;;;;;1441:15:77;;;;;;:7;:15;;;;;:22;;-1:-1:-1;;1441:22:77;1459:4;1441:22;;;;;;1449:6;;-1:-1:-1;1274:3:77;1233:274;;;-1:-1:-1;;1536:15:77;;1516:10;:36;;-1:-1:-1;;;;;1562:16:77;;;;;-1:-1:-1;;;;;;1562:16:77;;;1516:36;;;;1562:16;;;;;;;-1:-1:-1;;;2502:10:73::2;::::0;;::::2;;::::0;-1:-1:-1;777:12817:73;;-1:-1:-1;777:12817:73;5627:259:82;5707:4;727:22;5727:5;:18;:47;;;;-1:-1:-1;2931:4:103;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:103;;;;;;;;;;;;5749:25:82;5727:47;5723:93;;;5792:13;5790:15;;5792:13;;5790:15;;-1:-1:-1;;;5790:15:82;;-1:-1:-1;;;;;5790:15:82;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;5790:15:82;;;;;-1:-1:-1;;;;;5790:15:82;;;;;;5723:93;5825:33;5842:5;5849:8;5825:16;:33::i;:::-;;5875:4;5868:11;;5627:259;;;;;:::o;6179:316:103:-;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:103;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:103;;;;;;;;;:36;;-1:-1:-1;;6315:36:103;6347:4;6315:36;;;6397:12;735:10:120;;656:96;6397:12:103;-1:-1:-1;;;;;6370:40:103;6388:7;-1:-1:-1;;;;;6370:40:103;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:103;6424:11;;6272:217;-1:-1:-1;6473:5:103;6466:12;;14:127:145;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:145;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:929::-;393:5;446:3;439:4;431:6;427:17;423:27;413:55;;464:1;461;454:12;413:55;487:13;;519:4;-1:-1:-1;;;;;572:10:145;;;569:36;;;585:18;;:::i;:::-;631:2;628:1;624:10;663:2;657:9;726:2;722:7;717:2;713;709:11;705:25;697:6;693:38;781:6;769:10;766:22;761:2;749:10;746:18;743:46;740:72;;;792:18;;:::i;:::-;828:2;821:22;878:18;;;924:4;956:15;;;952:26;;;912:17;;;;-1:-1:-1;990:15:145;;;987:35;;;1018:1;1015;1008:12;987:35;1054:4;1046:6;1042:17;1031:28;;1068:159;1084:6;1079:3;1076:15;1068:159;;;1150:34;1180:3;1150:34;:::i;:::-;1138:47;;1205:12;;;;1101;;;;1068:159;;;1245:6;328:929;-1:-1:-1;;;;;;;328:929:145:o;1262:175::-;1340:13;;-1:-1:-1;;;;;1382:30:145;;1372:41;;1362:69;;1427:1;1424;1417:12;1442:1172;1630:6;1638;1646;1654;1662;1670;1723:3;1711:9;1702:7;1698:23;1694:33;1691:53;;;1740:1;1737;1730:12;1691:53;1772:9;1766:16;1822:10;1815:5;1811:22;1804:5;1801:33;1791:61;;1848:1;1845;1838:12;1791:61;1920:2;1905:18;;1899:25;1871:5;;-1:-1:-1;;;;;;1973:14:145;;;1970:34;;;2000:1;1997;1990:12;1970:34;2023:72;2087:7;2078:6;2067:9;2063:22;2023:72;:::i;:::-;2013:82;;2114:49;2159:2;2148:9;2144:18;2114:49;:::i;:::-;2104:59;;2209:2;2198:9;2194:18;2188:25;2172:41;;2238:2;2228:8;2225:16;2222:36;;;2254:1;2251;2244:12;2222:36;2277:74;2343:7;2332:8;2321:9;2317:24;2277:74;:::i;:::-;2267:84;;2370:49;2414:3;2403:9;2399:19;2370:49;:::i;:::-;2360:59;;2465:3;2454:9;2450:19;2444:26;2428:42;;2495:2;2485:8;2482:16;2479:36;;;2511:1;2508;2501:12;2479:36;;2534:74;2600:7;2589:8;2578:9;2574:24;2534:74;:::i;:::-;2524:84;;;1442:1172;;;;;;;;:::o;2619:127::-;2680:10;2675:3;2671:20;2668:1;2661:31;2711:4;2708:1;2701:15;2735:4;2732:1;2725:15;3055:306;3093:3;-1:-1:-1;;;;;3163:14:145;;;-1:-1:-1;;;;;;3189:15:145;;3186:138;;3246:10;3241:3;3237:20;3234:1;3227:31;3281:4;3278:1;3271:15;3309:4;3306:1;3299:15;3186:138;3353:1;3340:15;;3055:306;-1:-1:-1;;;3055:306:145:o;:::-;777:12817:73;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061022f5760003560e01c80638585c9451161012e578063c7a823e0116100ab578063d547741f1161006f578063d547741f146107aa578063dafe0ccc146107ca578063f010cb23146107ea578063f3b4ebd01461080a578063fd62e7501461082a57600080fd5b8063c7a823e0146106cc578063c7b2370b146106fa578063cd88b9031461071a578063cf34c7681461073a578063d2ae21041461078357600080fd5b8063aef18bf7116100f2578063aef18bf714610617578063b143044b14610647578063c358de0a14610667578063c416aa5114610687578063c5e193cd146106ac57600080fd5b80638585c9451461052a57806391d148541461054a57806395d376d71461056a5780639e9449651461057d578063a217fddf1461060257600080fd5b80632f2ff15d116101bc5780635553fb8e116101805780635553fb8e1461046a5780635c975abb1461048a578063724e78da146104a2578063736c0d5b146104c2578063741bef1a146104f257600080fd5b80632f2ff15d146103ca57806330bb3aac146103ea57806331cb61051461040a57806336568abe1461042a57806352d3b8711461044a57600080fd5b806316c38b3c1161020357806316c38b3c146102e05780631703a01814610300578063248a9ca31461033f57806326e67a371461037d5780632de11376146103aa57600080fd5b8062bf2e801461023457806301e336671461026e57806301ffc9a7146102905780631095b6d7146102c0575b600080fd5b34801561024057600080fd5b5060015461025690600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561027a57600080fd5b5061028e610289366004612695565b61084a565b005b34801561029c57600080fd5b506102b06102ab3660046126d6565b610873565b6040519015158152602001610265565b3480156102cc57600080fd5b5061028e6102db366004612695565b6108aa565b3480156102ec57600080fd5b5061028e6102fb36600461270e565b6109ac565b34801561030c57600080fd5b5060055461032790600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610265565b34801561034b57600080fd5b5061036f61035a36600461272b565b60009081526020819052604090206001015490565b604051908152602001610265565b34801561038957600080fd5b5061039d610398366004612758565b6109d1565b6040516102659190612773565b3480156103b657600080fd5b506102b06103c53660046127ba565b610a58565b3480156103d657600080fd5b5061028e6103e53660046127d7565b610add565b3480156103f657600080fd5b5061036f610405366004612866565b610bb2565b34801561041657600080fd5b5061028e6104253660046128dd565b610cca565b34801561043657600080fd5b5061028e6104453660046127d7565b610cf4565b34801561045657600080fd5b5061028e61046536600461290b565b610d0d565b34801561047657600080fd5b5061036f610485366004612991565b610e86565b34801561049657600080fd5b5060015460ff166102b0565b3480156104ae57600080fd5b5061028e6104bd3660046127ba565b610f9e565b3480156104ce57600080fd5b506102b06104dd3660046127ba565b60046020526000908152604090205460ff1681565b3480156104fe57600080fd5b50600254610512906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b34801561053657600080fd5b5061028e6105453660046129e7565b61100c565b34801561055657600080fd5b506102b06105653660046127d7565b611038565b61036f610578366004612a1a565b611061565b34801561058957600080fd5b506105d1610598366004612758565b6006602052600090815260409020546001600160401b03811690600160401b810461ffff1690600160501b90046001600160801b031683565b604080516001600160401b03909416845261ffff90921660208401526001600160801b031690820152606001610265565b34801561060e57600080fd5b5061036f600081565b34801561062357600080fd5b506102b061063236600461272b565b60076020526000908152604090205460ff1681565b34801561065357600080fd5b5061028e610662366004612ac6565b6111d7565b34801561067357600080fd5b5061028e610682366004612b07565b61148c565b34801561069357600080fd5b506001546105129061010090046001600160a01b031681565b3480156106b857600080fd5b5061036f6106c7366004612991565b6114f4565b3480156106d857600080fd5b506106ec6106e7366004612b22565b611661565b604051610265929190612b76565b34801561070657600080fd5b5061028e6107153660046127ba565b61183f565b34801561072657600080fd5b5061028e610735366004612baa565b6118ad565b34801561074657600080fd5b5061076e7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610265565b34801561078f57600080fd5b5060015461032790600160a81b90046001600160401b031681565b3480156107b657600080fd5b5061028e6107c53660046127d7565b6118ec565b3480156107d657600080fd5b5061028e6107e5366004612695565b6119a0565b3480156107f657600080fd5b5061036f610805366004612bef565b611a55565b34801561081657600080fd5b5061028e610825366004612c59565b611a91565b34801561083657600080fd5b50600554610327906001600160401b031681565b60008051602061324483398151915261086281611c3f565b61086d848484611c49565b50505050565b60006001600160e01b03198216637965db0b60e01b14806108a457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000805160206132448339815191526108c281611c3f565b6108da60008051602061322483398151915285611038565b6108f757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561094157600080fd5b505af1158015610955573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b60006109b781611c3f565b81156109c9576109c5611c71565b5050565b6109c5611cc5565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610a4c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610a1d5790505b50505050509050919050565b6000610a847f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611038565b15610a9157506000919050565b600154600160a81b90046001600160401b03161580610ac35750610ac360008051602061326483398151915283611038565b15610ad057506001919050565b506000919050565b919050565b81600080516020613264833981519152811480610b1957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610b31575060008051602061322483398151915281145b15610b5b57303314610b5657604051637d5d391d60e11b815260040160405180910390fd5b610ba8565b6000805160206132448339815191528103610b8757610b56600080516020613244833981519152611c3f565b604051634a7ee1b960e11b8152600481018290526024015b60405180910390fd5b61086d8383611cfe565b600083610bbe81610a58565b610bdb57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290526001600160401b03808c16858701528a84166060860152600554600160401b900416608085015260015461ffff600160e81b82041660a086015260009283526006909152908490209351637bfa20a960e01b8152929361010090910490911691637bfa20a991610c7d918591908a908a90600401612d1d565b602060405180830381865afa158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbe9190612d77565b98975050505050505050565b303314610cea57604051637d5d391d60e11b815260040160405180910390fd5b6109c58282611d82565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020613244833981519152610d2581611c3f565b60005b82811015610e475736848483818110610d4357610d43612d90565b90506080020190506040518060600160405280826020016020810190610d6991906129e7565b6001600160401b03168152602001610d876060840160408501612b07565b61ffff168152602001610da06080840160608501612dbd565b6001600160801b0316905260066000610dbc6020850185612758565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516001600160801b0316600160501b026fffffffffffffffffffffffffffffffff60501b1961ffff909516600160401b0269ffffffffffffffffffff199094166001600160401b0390931692909217929092179290921691909117905550600101610d28565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051610e79929190612dd8565b60405180910390a1505050565b600081610e9281610a58565b610eaf57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808a1660208085018290526001600160401b03808b16868801528985166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451637bfa20a960e01b8152939461010090920490921692637bfa20a992610f52928692600401612ebc565b602060405180830381865afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190612d77565b979650505050505050565b600080516020613244833981519152610fb681611c3f565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b30331461102c57604051637d5d391d60e11b815260040160405180910390fd5b61103581611edd565b50565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600060008051602061322483398151915261107b81611c3f565b61108b60a08601608087016127ba565b61109481610a58565b6110b157604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c081019091526002546001600160a01b031681526000906020808201906110df908a018a612758565b63ffffffff1681526020016110fa60808a0160608b016129e7565b6001600160401b0316815260200161111860a08a0160808b016127ba565b6001600160a01b039081168252600554600160401b90046001600160401b0316602080840191909152600154600160e81b810461ffff16604090940193909352929350610100909104169063df2b057e90839060069060009061117d908d018d612758565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b81526004016111b89493929190612d1d565b6020604051808303816000875af1158015610f6f573d6000803e3d6000fd5b6000805160206132448339815191526111ef81611c3f565b60005b8281101561086d573684848381811061120d5761120d612d90565b905060200281019061121f9190612f15565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112556020830183612758565b63ffffffff16146112665750611484565b428160600135116112775750611484565b60006112b06112896020840184612758565b61129960408501602086016127ba565b6112a66040860186612f35565b8660600135611a55565b905060006112c5826106e76080860186612f35565b50905080611308576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611484565b600061132861131a6040860186612f35565b61132391612f7b565b611fab565b905080156113a35760008381526007602052604090205460ff1615611389577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611378929190612ff0565b60405180910390a150505050611484565b6000838152600760205260409020805460ff191660011790555b6000806113b660408701602088016127ba565b6001600160a01b03166113cc6040880188612f35565b6040516113da92919061308b565b6000604051808303816000865af19150503d8060008114611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50915091508161147d578215611443576000858152600760205260409020805460ff191690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf878260405161147492919061309b565b60405180910390a15b5050505050505b6001016111f2565b6000805160206132448339815191526114a481611c3f565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611000565b600060008051602061322483398151915261150e81611c3f565b8261151881610a58565b61153557604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808b1660208085018290526001600160401b03808c16868801528a85166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451636f9582bf60e11b815293946101009092049092169263df2b057e926115d8928692600401612ebc565b6020604051808303816000875af11580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612d77565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef8460405161164e91815260200190565b60405180910390a1505050949350505050565b600554600090819061168490600160401b90046001600160401b031660416130ca565b83146116965750600090506001611837565b60006116ef866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b600554600160401b90046001600160401b031681101561182b57366000888861171f8560416130ca565b9061172b8660016130e1565b6117369060416130ca565b92611743939291906130f4565b9150915060008061178a8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fe492505050565b50909250905060008160038111156117a4576117a4612b60565b146117bd57600060019850985050505050505050611837565b856001600160a01b0316826001600160a01b0316116117ea57600060029850985050505050505050611837565b6001600160a01b03821660009081526004602052604090205460ff1661181e57600060039850985050505050505050611837565b50935050506001016116f5565b50600160009350935050505b935093915050565b60008051602061324483398151915261185781611c3f565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611000565b6000805160206132448339815191526118c581611c3f565b63ffffffff841660009081526003602052604090206118e59084846125c2565b5050505050565b8160008051602061326483398151915281148061192857507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611940575060008051602061322483398151915281145b1561196a5730331461196557604051637d5d391d60e11b815260040160405180910390fd5b611996565b6000805160206132448339815191528103610b8757611965600080516020613244833981519152611c3f565b61086d8383612031565b6000805160206132448339815191526119b881611c3f565b6119d060008051602061322483398151915285611038565b6119ed57604051635ee08b9760e01b815260040160405180910390fd5b6040516303d8c5ef60e11b81526001600160a01b038481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001611a7095949392919061311e565b60405160208183030381529060405280519060200120905095945050505050565b42816060013511611ab557604051630bbaf26360e01b815260040160405180910390fd5b30611ac660408301602084016127ba565b6001600160a01b031614611b0957611ae460408201602083016127ba565b604051631ce0bfcd60e01b81526001600160a01b039091166004820152602401610b9f565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611b3d6020830183612758565b63ffffffff1614611b7757611b556020820182612758565b60405163134bf0e160e11b815263ffffffff9091166004820152602401610b9f565b6000611b896112896020840184612758565b90506000611b9e826106e76080860186612f35565b50905080611bbf57604051630af656f760e11b815260040160405180910390fd5b60008281526007602052604090205460ff1615611bf257604051634eb522d360e11b815260048101839052602401610b9f565b60008281526007602052604090819020805460ff1916600117905561086d9060008051602061324483398151915290611c2d90860186612f35565b810190611c3a91906127ba565b611cfe565b61103581336120a9565b6001600160a01b038316611c6657611c6182826120e2565b505050565b611c6183838361218f565b611c796121ca565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b611ccd6121f0565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ca8565b600060008051602061326483398151915283148015611d245750611d228383611038565b155b15611d6e5760018054601590611d4990600160a81b90046001600160401b0316613164565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612213565b5060019392505050565b6001600160a01b03821660009081526004602052604090205481151560ff909116151503611dd6576040516302c6469560e51b81526001600160a01b03831660048201528115156024820152604401610b9f565b6001600160a01b0382166000908152600460205260408120805460ff191683151517905581611e1c57600554611e17906001906001600160401b031661318a565b611e33565b600554611e33906001600160401b031660016131b1565b6005549091506001600160401b03600160401b9091048116908216811115611e81576040516378e2c15760e11b81526001600160401b03808416600483015282166024820152604401610b9f565b6005805467ffffffffffffffff19166001600160401b038416179055604080516001600160a01b038616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce910161099e565b806001600160401b0316600003611f0757604051635f86e17760e01b815260040160405180910390fd5b6005546001600160401b03908116908216811015611f4b576040516378e2c15760e11b81526001600160401b03808316600483015283166024820152604401610b9f565b600580546fffffffffffffffff00000000000000001916600160401b6001600160401b038516908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611000565b60006001600160e01b03198216630111a9b760e11b148015906108a457506001600160e01b0319821663704316e560e01b141592915050565b6000806000835160410361201e5760208401516040850151606086015160001a612010888285856122a5565b95509550955050505061202a565b50508151600091506002905b9250925092565b60006000805160206132648339815191528314801561205557506120558383611038565b1561209f576001805460159061207a90600160a81b90046001600160401b03166131d1565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612374565b6120b38282611038565b6109c55760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610b9f565b6001600160a01b038216612109576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612156576040519150601f19603f3d011682016040523d82523d6000602084013e61215b565b606091505b5050905080611c6157604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610b9f565b6001600160a01b0382166121b6576040516306b7a93160e41b815260040160405180910390fd5b611c616001600160a01b03841683836123df565b60015460ff16156121ee5760405163d93c066560e01b815260040160405180910390fd5b565b60015460ff166121ee57604051638dfc202b60e01b815260040160405180910390fd5b600061221f8383611038565b61229d576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556122553390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016108a4565b5060006108a4565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156122e0575060009150600390508261236a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612334573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123605750600092506001915082905061236a565b9250600091508190505b9450945094915050565b60006123808383611038565b1561229d576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016108a4565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b179052611c619185919060009061243d9084168361248b565b9050805160001415801561246257508080602001905181019061246091906131f4565b155b15611c6157604051635274afe760e01b81526001600160a01b0384166004820152602401610b9f565b6060612499838360006124a0565b9392505050565b6060814710156124c55760405163cd78605960e01b8152306004820152602401610b9f565b600080856001600160a01b031684866040516124e19190613211565b60006040518083038185875af1925050503d806000811461251e576040519150601f19603f3d011682016040523d82523d6000602084013e612523565b606091505b509150915061253386838361253d565b9695505050505050565b6060826125525761254d82612599565b612499565b815115801561256957506001600160a01b0384163b155b1561259257604051639996b31560e01b81526001600160a01b0385166004820152602401610b9f565b5080612499565b8051156125a95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f0160209004810192821561265b5791602002820160005b8382111561262c57833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026125eb565b80156126595782816101000a81549060ff021916905560010160208160000104928301926001030261262c565b505b5061266792915061266b565b5090565b5b80821115612667576000815560010161266c565b6001600160a01b038116811461103557600080fd5b6000806000606084860312156126aa57600080fd5b83356126b581612680565b925060208401356126c581612680565b929592945050506040919091013590565b6000602082840312156126e857600080fd5b81356001600160e01b03198116811461249957600080fd5b801515811461103557600080fd5b60006020828403121561272057600080fd5b813561249981612700565b60006020828403121561273d57600080fd5b5035919050565b803563ffffffff81168114610ad857600080fd5b60006020828403121561276a57600080fd5b61249982612744565b6020808252825182820181905260009190848201906040850190845b818110156127ae57835160ff168352928401929184019160010161278f565b50909695505050505050565b6000602082840312156127cc57600080fd5b813561249981612680565b600080604083850312156127ea57600080fd5b8235915060208301356127fc81612680565b809150509250929050565b80356001600160401b0381168114610ad857600080fd5b60008083601f84011261283057600080fd5b5081356001600160401b0381111561284757600080fd5b60208301915083602082850101111561285f57600080fd5b9250929050565b60008060008060006080868803121561287e57600080fd5b61288786612744565b945061289560208701612807565b935060408601356128a581612680565b925060608601356001600160401b038111156128c057600080fd5b6128cc8882890161281e565b969995985093965092949392505050565b600080604083850312156128f057600080fd5b82356128fb81612680565b915060208301356127fc81612700565b6000806020838503121561291e57600080fd5b82356001600160401b038082111561293557600080fd5b818501915085601f83011261294957600080fd5b81358181111561295857600080fd5b8660208260071b850101111561296d57600080fd5b60209290920196919550909350505050565b803561ffff81168114610ad857600080fd5b600080600080608085870312156129a757600080fd5b6129b08561297f565b93506129be6020860161297f565b92506129cc60408601612807565b915060608501356129dc81612680565b939692955090935050565b6000602082840312156129f957600080fd5b61249982612807565b600060a08284031215612a1457600080fd5b50919050565b600080600060408486031215612a2f57600080fd5b83356001600160401b0380821115612a4657600080fd5b612a5287838801612a02565b94506020860135915080821115612a6857600080fd5b50612a758682870161281e565b9497909650939450505050565b60008083601f840112612a9457600080fd5b5081356001600160401b03811115612aab57600080fd5b6020830191508360208260051b850101111561285f57600080fd5b60008060208385031215612ad957600080fd5b82356001600160401b03811115612aef57600080fd5b612afb85828601612a82565b90969095509350505050565b600060208284031215612b1957600080fd5b6124998261297f565b600080600060408486031215612b3757600080fd5b8335925060208401356001600160401b03811115612b5457600080fd5b612a758682870161281e565b634e487b7160e01b600052602160045260246000fd5b82151581526040810160048310612b9d57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b600080600060408486031215612bbf57600080fd5b612bc884612744565b925060208401356001600160401b03811115612be357600080fd5b612a7586828701612a82565b600080600080600060808688031215612c0757600080fd5b612c1086612744565b94506020860135612c2081612680565b935060408601356001600160401b03811115612c3b57600080fd5b612c478882890161281e565b96999598509660600135949350505050565b600060208284031215612c6b57600080fd5b81356001600160401b03811115612c8157600080fd5b612c8d84828501612a02565b949350505050565b60018060a01b0380825116835263ffffffff602083015116602084015260408201516001600160401b03808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000610140612d2c8388612c95565b612d6360c0840187546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b80610120840152610f938184018587612cf4565b600060208284031215612d8957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b80356001600160801b0381168114610ad857600080fd5b600060208284031215612dcf57600080fd5b61249982612da6565b6020808252818101839052600090604080840186845b87811015612e5f5763ffffffff612e0483612744565b1683526001600160401b03612e1a868401612807565b168584015261ffff612e2d85840161297f565b168484015260606001600160801b03612e47828501612da6565b16908401526080928301929190910190600101612dee565b5090979650505050505050565b60005b83811015612e87578181015183820152602001612e6f565b50506000910152565b60008151808452612ea8816020860160208601612e6c565b601f01601f19169290920160200192915050565b6000610140612ecb8387612c95565b612f0260c0840186546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b8061012084015261253381840185612e90565b60008235609e19833603018112612f2b57600080fd5b9190910192915050565b6000808335601e19843603018112612f4c57600080fd5b8301803591506001600160401b03821115612f6657600080fd5b60200191503681900382131561285f57600080fd5b6001600160e01b03198135818116916004851015612fa35780818660040360031b1b83161692505b505092915050565b6000808335601e19843603018112612fc257600080fd5b83016020810192503590506001600160401b03811115612fe157600080fd5b80360382131561285f57600080fd5b6040815263ffffffff61300284612744565b1660408201526000602084013561301881612680565b6001600160a01b031660608301526130336040850185612fab565b60a0608085015261304860e085018284612cf4565b915050606085013560a08401526130626080860186612fab565b848303603f190160c0860152613079838284612cf4565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000612c8d6040830184612e90565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a4576108a46130b4565b808201808211156108a4576108a46130b4565b6000808585111561310457600080fd5b8386111561311157600080fd5b5050820193919092039150565b63ffffffff60e01b8660e01b1681526bffffffffffffffffffffffff198560601b1660048201528360188201528183603883013760009101603801908152949350505050565b60006001600160401b03808316818103613180576131806130b4565b6001019392505050565b6001600160401b038281168282160390808211156131aa576131aa6130b4565b5092915050565b6001600160401b038181168382160190808211156131aa576131aa6130b4565b60006001600160401b038216806131ea576131ea6130b4565b6000190192915050565b60006020828403121561320657600080fd5b815161249981612700565b60008251612f2b818460208701612e6c56fe724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19dea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177574845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bcaa26469706673582212203b61bbdddbd40de2a99f40cf79bc54fd320e09acc6ea01dd4f473c7f674ee39f64736f6c63430008160033","sourceMap":"777:12817:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;955:34:82;;;;;;;;;;-1:-1:-1;955:34:82;;;;-1:-1:-1;;;955:34:82;;;;;;;;;188:6:145;176:19;;;158:38;;146:2;131:18;955:34:82;;;;;;;;4782:214;;;;;;;;;;-1:-1:-1;4782:214:82;;;;;:::i;:::-;;:::i;:::-;;2565:202:103;;;;;;;;;;-1:-1:-1;2565:202:103;;;;;:::i;:::-;;:::i;:::-;;;1260:14:145;;1253:22;1235:41;;1223:2;1208:18;2565:202:103;1095:187:145;4319:273:82;;;;;;;;;;-1:-1:-1;4319:273:82;;;;;:::i;:::-;;:::i;3186:174::-;;;;;;;;;;-1:-1:-1;3186:174:82;;;;;:::i;:::-;;:::i;390:20:77:-;;;;;;;;;;-1:-1:-1;390:20:77;;;;-1:-1:-1;;;390:20:77;;-1:-1:-1;;;;;390:20:77;;;;;;-1:-1:-1;;;;;1818:31:145;;;1800:50;;1788:2;1773:18;390:20:77;1656:200:145;3810:120:103;;;;;;;;;;-1:-1:-1;3810:120:103;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;;;;2192:25:145;;;2180:2;2165:18;3810:120:103;2046:177:145;5247:135:82;;;;;;;;;;-1:-1:-1;5247:135:82;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2678:285::-;;;;;;;;;;-1:-1:-1;2678:285:82;;;;;:::i;:::-;;:::i;4311:135:73:-;;;;;;;;;;-1:-1:-1;4311:135:73;;;;;:::i;:::-;;:::i;11007:505::-;;;;;;;;;;-1:-1:-1;11007:505:73;;;;;:::i;:::-;;:::i;3719:113::-;;;;;;;;;;-1:-1:-1;3719:113:73;;;;;:::i;:::-;;:::i;6390:137:82:-;;;;;;;;;;-1:-1:-1;6390:137:82;;;;;:::i;:::-;;:::i;6006:354:73:-;;;;;;;;;;-1:-1:-1;6006:354:73;;;;;:::i;:::-;;:::i;11805:510::-;;;;;;;;;;-1:-1:-1;11805:510:73;;;;;:::i;:::-;;:::i;1850:84:121:-;;;;;;;;;;-1:-1:-1;1920:7:121;;;;1850:84;;3481:150:82;;;;;;;;;;-1:-1:-1;3481:150:82;;;;;:::i;:::-;;:::i;301:53:77:-;;;;;;;;;;-1:-1:-1;301:53:77;;;;;:::i;:::-;;;;;;;;;;;;;;;;995:24:82;;;;;;;;;;-1:-1:-1;995:24:82;;;;-1:-1:-1;;;;;995:24:82;;;;;;-1:-1:-1;;;;;7043:32:145;;;7025:51;;7013:2;6998:18;995:24:82;6879:203:145;3942:89:73;;;;;;;;;;-1:-1:-1;3942:89:73;;;;;:::i;:::-;;:::i;2854:136:103:-;;;;;;;;;;-1:-1:-1;2854:136:103;;;;;:::i;:::-;;:::i;9139:549:73:-;;;;;;:::i;:::-;;:::i;977:52::-;;;;;;;;;;-1:-1:-1;977:52:73;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;977:52:73;;;-1:-1:-1;;;977:52:73;;;;;-1:-1:-1;;;977:52:73;;-1:-1:-1;;;;;977:52:73;;;;;;;-1:-1:-1;;;;;8343:31:145;;;8325:50;;8423:6;8411:19;;;8406:2;8391:18;;8384:47;-1:-1:-1;;;;;8467:47:145;8447:18;;;8440:75;8313:2;8298:18;977:52:73;8127:394:145;2187:49:103;;;;;;;;;;-1:-1:-1;2187:49:103;2232:4;2187:49;;1035:62:73;;;;;;;;;;-1:-1:-1;1035:62:73;;;;;:::i;:::-;;;;;;;;;;;;;;;;6658:1636;;;;;;;;;;-1:-1:-1;6658:1636:73;;;;;:::i;:::-;;:::i;3924:194:82:-;;;;;;;;;;-1:-1:-1;3924:194:82;;;;;:::i;:::-;;:::i;888:27::-;;;;;;;;;;-1:-1:-1;888:27:82;;;;;;;-1:-1:-1;;;;;888:27:82;;;10023:635:73;;;;;;;;;;-1:-1:-1;10023:635:73;;;;;:::i;:::-;;:::i;2495:1181:77:-;;;;;;;;;;-1:-1:-1;2495:1181:77;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;3689:165:82:-;;;;;;;;;;-1:-1:-1;3689:165:82;;;;;:::i;:::-;;:::i;5002:::-;;;;;;;;;;-1:-1:-1;5002:165:82;;;;;:::i;:::-;;:::i;943:27:73:-;;;;;;;;;;;;;;;;;;11351:10:145;11339:23;;;11321:42;;11309:2;11294:18;943:27:73;11177:192:145;922:27:82;;;;;;;;;;-1:-1:-1;922:27:82;;;;-1:-1:-1;;;922:27:82;;-1:-1:-1;;;;;922:27:82;;;4649:137:73;;;;;;;;;;-1:-1:-1;4649:137:73;;;;;:::i;:::-;;:::i;8535:292::-;;;;;;;;;;-1:-1:-1;8535:292:73;;;;;:::i;:::-;;:::i;12472:257::-;;;;;;;;;;-1:-1:-1;12472:257:73;;;;;:::i;:::-;;:::i;5020:863::-;;;;;;;;;;-1:-1:-1;5020:863:73;;;;;:::i;:::-;;:::i;360:24:77:-;;;;;;;;;;-1:-1:-1;360:24:77;;;;-1:-1:-1;;;;;360:24:77;;;4782:214:82;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;4945:44:82::1;4968:6;4976:3;4981:7;4945:22;:44::i;:::-;4782:214:::0;;;;:::o;2565:202:103:-;2650:4;-1:-1:-1;;;;;;2673:47:103;;-1:-1:-1;;;2673:47:103;;:87;;-1:-1:-1;;;;;;;;;;861:40:126;;;2724:36:103;2666:94;2565:202;-1:-1:-1;;2565:202:103:o;4319:273:82:-;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;4429:31:82::1;-1:-1:-1::0;;;;;;;;;;;4455:4:82::1;4429:7;:31::i;:::-;4424:68;;4469:23;;-1:-1:-1::0;;;4469:23:82::1;;;;;;;;;;;4424:68;4502:40;::::0;-1:-1:-1;;;4502:40:82;;-1:-1:-1;;;;;13099:32:145;;;4502:40:82::1;::::0;::::1;13081:51:145::0;13148:18;;;13141:34;;;4502:26:82;::::1;::::0;::::1;::::0;13054:18:145;;4502:40:82::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4557:28:82::1;::::0;;-1:-1:-1;;;;;13444:15:145;;;13426:34;;13496:15;;13491:2;13476:18;;13469:43;13528:18;;;13521:34;;;4557:28:82::1;::::0;-1:-1:-1;13376:2:145;13361:18;;-1:-1:-1;4557:28:82::1;;;;;;;;4319:273:::0;;;;:::o;3186:174::-;2232:4:103;2464:16;2232:4;2464:10;:16::i;:::-;3271:7:82::1;3267:87;;;3294:8;:6;:8::i;:::-;3186:174:::0;;:::o;3267:87::-:1;3333:10;:8;:10::i;5247:135::-:0;5349:26;;;;;;;:20;:26;;;;;;;;;5342:33;;;;;;;;;;;;;;;;;5316:14;;5342:33;;;5349:26;5342:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5247:135;;;:::o;2678:285::-;2732:4;2752:26;792:21;2770:7;2752;:26::i;:::-;2748:209;;;-1:-1:-1;2801:5:82;;2678:285;-1:-1:-1;2678:285:82:o;2748:209::-;2827:13;;-1:-1:-1;;;2827:13:82;;-1:-1:-1;;;;;2827:13:82;:18;;:49;;;2849:27;-1:-1:-1;;;;;;;;;;;2868:7:82;2849;:27::i;:::-;2823:134;;;-1:-1:-1;2899:4:82;;2678:285;-1:-1:-1;2678:285:82:o;2823:134::-;-1:-1:-1;2941:5:82;;2678:285;-1:-1:-1;2678:285:82:o;2823:134::-;2678:285;;;:::o;4311:135:73:-;4395:5;-1:-1:-1;;;;;;;;;;;2952:5:73;:18;:39;;;;792:21:82;2974:5:73;:17;2952:39;:68;;;;-1:-1:-1;;;;;;;;;;;2995:5:73;:25;2952:68;2948:382;;;3077:4;3086:10;3069:27;3065:87;;3123:14;;-1:-1:-1;;;3123:14:73;;;;;;;;;;;3065:87;2948:382;;;-1:-1:-1;;;;;;;;;;;3172:5:73;:19;3168:162;;3237:22;-1:-1:-1;;;;;;;;;;;3237:10:73;:22::i;3168:162::-;3297:22;;-1:-1:-1;;;3297:22:73;;;;;2192:25:145;;;2165:18;;3297:22:73;;;;;;;;3168:162;4412:27:::1;4423:5;4430:8;4412:10;:27::i;11007:505::-:0;11182:11;11164:7;2304:15:82;2311:7;2304:6;:15::i;:::-;2299:73;;2342:19;;-1:-1:-1;;;2342:19:82;;;;;;;;;;;2299:73;11242:177:73::1;::::0;;::::1;::::0;::::1;::::0;;11276:9:::1;::::0;-1:-1:-1;;;;;11276:9:73;;::::1;11242:177:::0;;::::1;::::0;::::1;;::::0;;::::1;::::0;;;-1:-1:-1;;;;;11242:177:73;;::::1;::::0;;;;;;::::1;::::0;;;;11369:6:::1;::::0;-1:-1:-1;;;11369:6:73;::::1;;11242:177:::0;;;;11276:9;11389:20;::::1;-1:-1:-1::0;;;11389:20:73;::::1;;11242:177:::0;;;;11205:34:::1;11476:18:::0;;;:9:::1;:18:::0;;;;;;;11436:69;;-1:-1:-1;;;11436:69:73;;11242:177;;11276:9:::1;11447:12:::0;;::::1;::::0;;::::1;::::0;11436:31:::1;::::0;:69:::1;::::0;11242:177;;11476:18;11496:8;;;;11436:69:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11429:76:::0;11007:505;-1:-1:-1;;;;;;;;11007:505:73:o;3719:113::-;3395:4;3404:10;3387:27;3383:79;;3437:14;;-1:-1:-1;;;3437:14:73;;;;;;;;;;;3383:79;3797:28:::1;3808:7;3817;3797:10;:28::i;6390:137:82:-:0;6489:31;;-1:-1:-1;;;6489:31:82;;;;;;;;;;;6006:354:73;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;6108:9:73::1;6103:215;6123:18:::0;;::::1;6103:215;;;6162:29;6194:7;;6202:1;6194:10;;;;;;;:::i;:::-;;;;;;6162:42;;6244:63;;;;;;;;6254:5;:9;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6244:63:73::1;::::0;;::::1;;6265:19;::::0;;;::::1;::::0;::::1;;:::i;:::-;6244:63;;::::0;;::::1;;6286:20;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;6244:63:73::1;::::0;;6218:9:::1;:23;6228:12;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;6218:23;;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;6218:23:73;:89;;;;;;::::1;::::0;;;;::::1;::::0;-1:-1:-1;;;;;6218:89:73::1;-1:-1:-1::0;;;6218:89:73::1;-1:-1:-1::0;;;;6218:89:73::1;::::0;;::::1;-1:-1:-1::0;;;6218:89:73::1;-1:-1:-1::0;;6218:89:73;;;-1:-1:-1;;;;;6218:89:73;;::::1;::::0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;6218:89:73;6143:3:::1;6103:215;;;;6332:21;6345:7;;6332:21;;;;;;;:::i;:::-;;;;;;;;6006:354:::0;;;:::o;11805:510::-;11984:11;11966:7;2304:15:82;2311:7;2304:6;:15::i;:::-;2299:73;;2342:19;;-1:-1:-1;;;2342:19:82;;;;;;;;;;;2299:73;12044:177:73::1;::::0;;::::1;::::0;::::1;::::0;;12078:9:::1;::::0;-1:-1:-1;;;;;12078:9:73;;::::1;12044:177:::0;;::::1;::::0;;::::1;;::::0;;::::1;::::0;;;-1:-1:-1;;;;;12044:177:73;;::::1;::::0;;;;;;::::1;::::0;;;;12171:6:::1;::::0;-1:-1:-1;;;12171:6:73;::::1;;12044:177:::0;;;;12078:9;12191:20;-1:-1:-1;;;12191:20:73;::::1;::::0;;::::1;12044:177:::0;;;;12007:34:::1;12278:18:::0;;;:9:::1;:18:::0;;;;;12298:9;;;;::::1;::::0;;;;;12238:70;;-1:-1:-1;;;12238:70:73;;12044:177;;12078:9:::1;12249:12:::0;;::::1;::::0;;::::1;::::0;12238:31:::1;::::0;:70:::1;::::0;12044:177;;12238:70:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12231:77:::0;11805:510;-1:-1:-1;;;;;;;11805:510:73:o;3481:150:82:-;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;3563:9:82::1;:22:::0;;-1:-1:-1;;;;;;3563:22:82::1;-1:-1:-1::0;;;;;3563:22:82;::::1;::::0;;::::1;::::0;;;3600:24:::1;::::0;7025:51:145;;;3600:24:82::1;::::0;7013:2:145;6998:18;3600:24:82::1;;;;;;;;3481:150:::0;;:::o;3942:89:73:-;3395:4;3404:10;3387:27;3383:79;;3437:14;;-1:-1:-1;;;3437:14:73;;;;;;;;;;;3383:79;4005:19:::1;4016:7;4005:10;:19::i;:::-;3942:89:::0;:::o;2854:136:103:-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:103;;;;;;;;;;;;;;;2854:136::o;9139:549:73:-;9313:16;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;9289:13:73::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;2304:15:82;2311:7;2304:6;:15::i;:::-;2299:73;;2342:19;;-1:-1:-1::0;;;2342:19:82::1;;;;;;;;;;;2299:73;9381:195:73::2;::::0;;::::2;::::0;::::2;::::0;;;9415:9:::2;::::0;-1:-1:-1;;;;;9415:9:73::2;9381:195:::0;;9341:37:::2;::::0;9381:195:::2;::::0;;::::2;::::0;9438:13:::2;::::0;;::::2;:6:::0;:13:::2;:::i;:::-;9381:195;;::::0;;::::2;;9465:20;::::0;;;::::2;::::0;::::2;;:::i;:::-;-1:-1:-1::0;;;;;9381:195:73::2;::::0;;::::2;;9499:13;::::0;;;::::2;::::0;::::2;;:::i;:::-;-1:-1:-1::0;;;;;9381:195:73;;::::2;::::0;;9526:6:::2;::::0;-1:-1:-1;;;9526:6:73;::::2;-1:-1:-1::0;;;;;9526:6:73::2;9381:195;::::0;;::::2;::::0;;;;9546:20:::2;::::0;-1:-1:-1;;;9546:20:73;::::2;;;9381:195:::0;;;;;;;;9341:235;;-1:-1:-1;9526:6:73::2;9608:12:::0;;::::2;;::::0;9597:37:::2;::::0;9341:235;;9646:9:::2;::::0;-1:-1:-1;;9656:13:73::2;::::0;;::::2;::::0;::::2;:::i;:::-;9646:24;;;;;;;;;;;;;;;9672:8;;9597:84;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;6658:1636:::0;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;6753:9:73::1;6748:1540;6768:18:::0;;::::1;6748:1540;;;6807:27;6837:7;;6845:1;6837:10;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;6807:40:::0;-1:-1:-1;6903:16:73::1;6916:3;6903:16;:9;;::::0;::::1;6807:40:::0;6903:9:::1;:::i;:::-;:16;;;6899:63;;6939:8;;;6899:63;7034:15;7014:5;:16;;;:35;7010:82;;7069:8;;;7010:82;7148:12;7163:71;7176:9;;::::0;::::1;:5:::0;:9:::1;:::i;:::-;7187:12;::::0;;;::::1;::::0;::::1;;:::i;:::-;7201:14;;::::0;::::1;:5:::0;:14:::1;:::i;:::-;7217:5;:16;;;7163:12;:71::i;:::-;7148:86:::0;-1:-1:-1;7285:14:73::1;7305:40;7148:86:::0;7328:16:::1;;::::0;::::1;:5:::0;:16:::1;:::i;7305:40::-;7284:61;;;7364:9;7359:105;;7398:25;::::0;2192::145;;;7398::73::1;::::0;2180:2:145;2165:18;7398:25:73::1;;;;;;;7441:8;;;;;7359:105;7514:20;7537:40;7561:14;;::::0;::::1;:5:::0;:14:::1;:::i;:::-;7554:22;::::0;::::1;:::i;:::-;7537:16;:40::i;:::-;7514:63;;7595:15;7591:286;;;7634:16;::::0;;;:10:::1;:16;::::0;;;;;::::1;;7630:233;;;7679:28;7695:5;7702:4;7679:28;;;;;;;:::i;:::-;;;;;;;;7729:8;;;;;;7630:233;7784:16;::::0;;;:10:::1;:16;::::0;;;;:23;;-1:-1:-1;;7784:23:73::1;7803:4;7784:23;::::0;;7630:233:::1;7892:12;::::0;7930::::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;7930:17:73::1;7948:14;;::::0;::::1;:5:::0;:14:::1;:::i;:::-;7930:33;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7891:72;;;;7982:7;7977:301;;8013:15;8009:162;;;8147:5;8128:16:::0;;;:10:::1;:16;::::0;;;;:24;;-1:-1:-1;;8128:24:73::1;::::0;;8009:162:::1;8238:25;8252:1;8255:7;8238:25;;;;;;;:::i;:::-;;;;;;;;7977:301;6793:1495;;;;;;6748:1540;6788:3;;6748:1540;;3924:194:82::0;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;4020:20:82::1;:37:::0;;-1:-1:-1;;;;4020:37:82::1;-1:-1:-1::0;;;4020:37:82::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;4072:39:::1;::::0;158:38:145;;;4072:39:82::1;::::0;146:2:145;131:18;4072:39:82::1;14:188:145::0;10023:635:73;10229:16;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;10211:7:73::1;2304:15:82;2311:7;2304:6;:15::i;:::-;2299:73;;2342:19;;-1:-1:-1::0;;;2342:19:82::1;;;;;;;;;;;2299:73;10294:177:73::2;::::0;;::::2;::::0;::::2;::::0;;10328:9:::2;::::0;-1:-1:-1;;;;;10328:9:73;;::::2;10294:177:::0;;::::2;::::0;;::::2;;::::0;;::::2;::::0;;;-1:-1:-1;;;;;10294:177:73;;::::2;::::0;;;;;;::::2;::::0;;;;10421:6:::2;::::0;-1:-1:-1;;;10421:6:73;::::2;;10294:177:::0;;;;10328:9;10441:20;-1:-1:-1;;;10441:20:73;::::2;::::0;;::::2;10294:177:::0;;;;10257:34:::2;10581:18:::0;;;:9:::2;:18:::0;;;;;10601:9;;;;::::2;::::0;;;;;10535:76;;-1:-1:-1;;;10535:76:73;;10294:177;;10328:9:::2;10546:12:::0;;::::2;::::0;;::::2;::::0;10535:37:::2;::::0;:76:::2;::::0;10294:177;;10535:76:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10524:87;;10626:25;10642:8;10626:25;;;;2192::145::0;;2180:2;2165:18;;2046:177;10626:25:73::2;;;;;;;;10247:411;2490:1:103::1;10023:635:73::0;;;;;;;:::o;2495:1181:77:-;2643:6;;2585:4;;;;2635:20;;-1:-1:-1;;;2643:6:77;;-1:-1:-1;;;;;2643:6:77;2653:2;2635:20;:::i;:::-;2613:42;;2609:110;;-1:-1:-1;2679:5:77;;-1:-1:-1;2686:21:77;2671:37;;2609:110;2729:21;2753:31;2778:5;3797:66;;24783::145;3797::77;;;24771:79:145;24866:12;;;24859:28;;;3761:7:77;;24903:12:145;;3797:66:77;;;;;;;;;;;;3787:77;;;;;;3780:84;;3682:189;;;;2753:31;2729:55;;2795:18;2885:9;2880:751;2904:6;;-1:-1:-1;;;2904:6:77;;-1:-1:-1;;;;;2904:6:77;2900:10;;2880:751;;;2931:24;;2958:11;;2970:6;:1;2974:2;2970:6;:::i;:::-;2958:32;2978:5;:1;2982;2978:5;:::i;:::-;2977:12;;2987:2;2977:12;:::i;:::-;2958:32;;;;;;;:::i;:::-;2931:59;;;;3079:21;3102:24;3162:88;3196:13;3227:9;;3162:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3162:16:77;;-1:-1:-1;;;3162:88:77:i;:::-;-1:-1:-1;3078:172:77;;-1:-1:-1;3078:172:77;-1:-1:-1;3278:26:77;3269:5;:35;;;;;;;;:::i;:::-;;3265:78;;3314:5;3321:21;3306:37;;;;;;;;;;;;;3265:78;3378:10;-1:-1:-1;;;;;3361:27:77;:13;-1:-1:-1;;;;;3361:27:77;;3357:72;;3398:5;3405:23;3390:39;;;;;;;;;;;;;3357:72;-1:-1:-1;;;;;3480:22:77;;;;;;:7;:22;;;;;;;;3475:72;;3512:5;3519:27;3504:43;;;;;;;;;;;;;3475:72;-1:-1:-1;3607:13:77;-1:-1:-1;;;2912:3:77;;2880:751;;;;3648:4;3654:14;3640:29;;;;;;2495:1181;;;;;;;:::o;3689:165:82:-;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;3777:12:82::1;:28:::0;;-1:-1:-1;;;;;;3777:28:82::1;;-1:-1:-1::0;;;;;3777:28:82;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;3820:27:::1;::::0;7025:51:145;;;3820:27:82::1;::::0;7013:2:145;6998:18;3820:27:82::1;6879:203:145::0;5002:165:82;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;5119:26:82::1;::::0;::::1;;::::0;;;:20:::1;:26;::::0;;;;:41:::1;::::0;5148:12;;5119:41:::1;:::i;:::-;;5002:165:::0;;;;:::o;4649:137:73:-;4734:5;-1:-1:-1;;;;;;;;;;;2952:5:73;:18;:39;;;;792:21:82;2974:5:73;:17;2952:39;:68;;;;-1:-1:-1;;;;;;;;;;;2995:5:73;:25;2952:68;2948:382;;;3077:4;3086:10;3069:27;3065:87;;3123:14;;-1:-1:-1;;;3123:14:73;;;;;;;;;;;3065:87;2948:382;;;-1:-1:-1;;;;;;;;;;;3172:5:73;:19;3168:162;;3237:22;-1:-1:-1;;;;;;;;;;;3237:10:73;:22::i;3168:162::-;4751:28:::1;4763:5;4770:8;4751:11;:28::i;8535:292::-:0;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;8662:31:73::1;-1:-1:-1::0;;;;;;;;;;;8688:4:73::1;8662:7;:31::i;:::-;8657:93;;8716:23;;-1:-1:-1::0;;;8716:23:73::1;;;;;;;;;;;8657:93;8759:61;::::0;-1:-1:-1;;;8759:61:73;;-1:-1:-1;;;;;13099:32:145;;;8759:61:73::1;::::0;::::1;13081:51:145::0;13148:18;;;13141:34;;;8759:47:73;::::1;::::0;::::1;::::0;13054:18:145;;8759:61:73::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8535:292:::0;;;;:::o;12472:257::-;12630:7;12683:4;12689:7;12698:11;12711:9;;12666:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;12656:66;;;;;;12649:73;;12472:257;;;;;;;:::o;5020:863::-;5121:15;5100:6;:17;;;:36;5096:98;;5159:24;;-1:-1:-1;;;5159:24:73;;;;;;;;;;;5096:98;5232:4;5207:13;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5207:30:73;;5203:100;;5278:13;;;;;;;;:::i;:::-;5260:32;;-1:-1:-1;;;5260:32:73;;-1:-1:-1;;;;;7043:32:145;;;5260::73;;;7025:51:145;6998:18;;5260:32:73;6879:203:145;5203:100:73;5316:17;5330:3;5316:17;:10;;;;:6;:10;:::i;:::-;:17;;;5312:81;;5371:10;;;;:6;:10;:::i;:::-;5356:26;;-1:-1:-1;;;5356:26:73;;11351:10:145;11339:23;;;5356:26:73;;;11321:42:145;11294:18;;5356:26:73;11177:192:145;5312:81:73;5441:12;5456:75;5469:10;;;;:6;:10;:::i;5456:75::-;5441:90;-1:-1:-1;5542:14:73;5562:41;5441:90;5585:17;;;;:6;:17;:::i;5562:41::-;5541:62;;;5618:9;5613:71;;5650:23;;-1:-1:-1;;;5650:23:73;;;;;;;;;;;5613:71;5697:16;;;;:10;:16;;;;;;;;5693:78;;;5736:24;;-1:-1:-1;;;5736:24:73;;;;;2192:25:145;;;2165:18;;5736:24:73;2046:177:145;5693:78:73;5781:16;;;;:10;:16;;;;;;;:23;;-1:-1:-1;;5781:23:73;5800:4;5781:23;;;5814:62;;-1:-1:-1;;;;;;;;;;;858:23:82;5848:15:73;;;;:6;:15;:::i;:::-;5837:38;;;;;;;:::i;:::-;5814:10;:62::i;3199:103:103:-;3265:30;3276:4;735:10:120;3265::103;:30::i;896:222:64:-;-1:-1:-1;;;;;987:22:64;;983:129;;1025:19;1032:3;1037:6;1025;:19::i;:::-;896:222;;;:::o;983:129::-;1075:26;1081:6;1089:3;1094:6;1075:5;:26::i;2463:115:121:-;1474:19;:17;:19::i;:::-;2532:4:::1;2522:14:::0;;-1:-1:-1;;2522:14:121::1;::::0;::::1;::::0;;2551:20:::1;735:10:120::0;2558:12:121::1;2551:20;::::0;-1:-1:-1;;;;;7043:32:145;;;7025:51;;7013:2;6998:18;2551:20:121::1;;;;;;;2463:115::o:0;2710:117::-;1721:16;:14;:16::i;:::-;2768:7:::1;:15:::0;;-1:-1:-1;;2768:15:121::1;::::0;;2798:22:::1;735:10:120::0;2807:12:121::1;656:96:120::0;5627:259:82;5707:4;-1:-1:-1;;;;;;;;;;;5727:5:82;:18;:47;;;;;5750:24;5758:5;5765:8;5750:7;:24::i;:::-;5749:25;5727:47;5723:93;;;5792:13;5790:15;;5792:13;;5790:15;;-1:-1:-1;;;5790:15:82;;-1:-1:-1;;;;;5790:15:82;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;5790:15:82;;;;;-1:-1:-1;;;;;5790:15:82;;;;;;5723:93;5825:33;5842:5;5849:8;5825:16;:33::i;:::-;-1:-1:-1;5875:4:82;;5627:259;-1:-1:-1;;;5627:259:82:o;1591:529:77:-;-1:-1:-1;;;;;1665:16:77;;;;;;:7;:16;;;;;;:27;;;:16;;;;:27;;;1661:107;;1715:42;;-1:-1:-1;;;1715:42:77;;-1:-1:-1;;;;;23761:32:145;;1715:42:77;;;23743:51:145;23837:14;;23830:22;23810:18;;;23803:50;23716:18;;1715:42:77;23575:284:145;1661:107:77;-1:-1:-1;;;;;1777:16:77;;;;;;:7;:16;;;;;:26;;-1:-1:-1;;1777:26:77;;;;;;;;1834:41;;1861:10;;:14;;1874:1;;-1:-1:-1;;;;;1861:10:77;:14;:::i;:::-;1834:41;;;1844:10;;:14;;-1:-1:-1;;;;;1844:10:77;;:14;:::i;:::-;1902:6;;1813:62;;-1:-1:-1;;;;;;;;;1902:6:77;;;;;;1922:21;;;-1:-1:-1;1918:117:77;;;1966:58;;-1:-1:-1;;;1966:58:77;;-1:-1:-1;;;;;24462:15:145;;;1966:58:77;;;24444:34:145;24514:15;;24494:18;;;24487:43;24380:18;;1966:58:77;24237:299:145;1918:117:77;2044:10;:24;;-1:-1:-1;;2044:24:77;-1:-1:-1;;;;;2044:24:77;;;;;2083:30;;;-1:-1:-1;;;;;23761:32:145;;23743:51;;23837:14;;23830:22;23825:2;23810:18;;23803:50;2083:30:77;;23716:18:145;2083:30:77;23575:284:145;2126:363:77;2185:7;-1:-1:-1;;;;;2185:12:77;2196:1;2185:12;2181:73;;2220:23;;-1:-1:-1;;;2220:23:77;;;;;;;;;;;2181:73;2284:10;;-1:-1:-1;;;;;2284:10:77;;;;2308:21;;;;2304:117;;;2352:58;;-1:-1:-1;;;2352:58:77;;-1:-1:-1;;;;;24462:15:145;;;2352:58:77;;;24444:34:145;24514:15;;24494:18;;;24487:43;24380:18;;2352:58:77;24237:299:145;2304:117:77;2430:6;:16;;-1:-1:-1;;2430:16:77;-1:-1:-1;;;;;;;;2430:16:77;;;;;;;;;;;;2461:21;;1800:50:145;;;2461:21:77;;1788:2:145;1773:18;2461:21:77;1656:200:145;13207:385:73;13277:4;-1:-1:-1;;;;;;13367:45:73;;-1:-1:-1;;;13367:45:73;;;;:171;;-1:-1:-1;;;;;;;13476:62:73;;-1:-1:-1;;;13476:62:73;;13348:190;13207:385;-1:-1:-1;;13207:385:73:o;2129:766:125:-;2210:7;2219:12;2233:7;2256:9;:16;2276:2;2256:22;2252:637;;2592:4;2577:20;;2571:27;2641:4;2626:20;;2620:27;2698:4;2683:20;;2677:27;2294:9;2669:36;2739:25;2750:4;2669:36;2571:27;2620;2739:10;:25::i;:::-;2732:32;;;;;;;;;;;2252:637;-1:-1:-1;;2860:16:125;;2811:1;;-1:-1:-1;2815:35:125;;2252:637;2129:766;;;;;:::o;6056:260:82:-;6137:4;-1:-1:-1;;;;;;;;;;;6157:5:82;:18;:46;;;;;6179:24;6187:5;6194:8;6179:7;:24::i;:::-;6153:92;;;6221:13;6219:15;;6221:13;;6219:15;;-1:-1:-1;;;6219:15:82;;-1:-1:-1;;;;;6219:15:82;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;6219:15:82;;;;;-1:-1:-1;;;;;6219:15:82;;;;;;6153:92;6254:34;6272:5;6279:8;6254:17;:34::i;3432:197:103:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:103;;-1:-1:-1;;;;;13099:32:145;;3565:47:103;;;13081:51:145;13148:18;;;13141:34;;;13054:18;;3565:47:103;12907:274:145;438:252:64;-1:-1:-1;;;;;506:19:64;;502:58;;534:26;;-1:-1:-1;;;534:26:64;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:64;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;-1:-1:-1;;;649:34:64;;-1:-1:-1;;;;;13099:32:145;;649:34:64;;;13081:51:145;13148:18;;;13141:34;;;13054:18;;649:34:64;12907:274:145;696:194:64;-1:-1:-1;;;;;779:19:64;;775:58;;807:26;;-1:-1:-1;;;807:26:64;;;;;;;;;;;775:58;843:40;-1:-1:-1;;;;;843:27:64;;871:3;876:6;843:27;:40::i;2002:128:121:-;1920:7;;;;2063:61;;;2098:15;;-1:-1:-1;;;2098:15:121;;;;;;;;;;;2063:61;2002:128::o;2202:126::-;1920:7;;;;2260:62;;2296:15;;-1:-1:-1;;;2296:15:121;;;;;;;;;;;6179:316:103;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:103;;;;;;;;;:36;;-1:-1:-1;;6315:36:103;6347:4;6315:36;;;6397:12;735:10:120;;656:96;6397:12:103;-1:-1:-1;;;;;6370:40:103;6388:7;-1:-1:-1;;;;;6370:40:103;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:103;6424:11;;6272:217;-1:-1:-1;6473:5:103;6466:12;;5140:1530:125;5266:7;;;6199:66;6186:79;;6182:164;;;-1:-1:-1;6297:1:125;;-1:-1:-1;6301:30:125;;-1:-1:-1;6333:1:125;6281:54;;6182:164;6457:24;;;6440:14;6457:24;;;;;;;;;25840:25:145;;;25913:4;25901:17;;25881:18;;;25874:45;;;;25935:18;;;25928:34;;;25978:18;;;25971:34;;;6457:24:125;;25812:19:145;;6457:24:125;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6457:24:125;;-1:-1:-1;;6457:24:125;;;-1:-1:-1;;;;;;;6495:20:125;;6491:113;;-1:-1:-1;6547:1:125;;-1:-1:-1;6551:29:125;;-1:-1:-1;6547:1:125;;-1:-1:-1;6531:62:125;;6491:113;6622:6;-1:-1:-1;6630:20:125;;-1:-1:-1;6630:20:125;;-1:-1:-1;5140:1530:125;;;;;;;;;:::o;6730:317:103:-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:12;;;;;;;;;;;-1:-1:-1;;;;;6866:29:103;;;;;;;;;;:37;;-1:-1:-1;;6866:37:103;;;6922:40;735:10:120;;6866:12:103;;6922:40;;6898:5;6922:40;-1:-1:-1;6983:4:103;6976:11;;1303:160:113;1412:43;;;-1:-1:-1;;;;;13099:32:145;;;1412:43:113;;;13081:51:145;13148:18;;;;13141:34;;;1412:43:113;;;;;;;;;;13054:18:145;;;;1412:43:113;;;;;;;;-1:-1:-1;;;;;1412:43:113;-1:-1:-1;;;1412:43:113;;;1385:71;;1405:5;;1412:43;-1:-1:-1;;4504:33:113;;1427:14;;1412:43;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:113;;-1:-1:-1;;;;;7043:32:145;;4631:40:113;;;7025:51:145;6998:18;;4631:40:113;6879:203:145;2705:151:118;2780:12;2811:38;2833:6;2841:4;2847:1;2811:21;:38::i;:::-;2804:45;2705:151;-1:-1:-1;;;2705:151:118:o;3180:392::-;3279:12;3331:5;3307:21;:29;3303:108;;;3359:41;;-1:-1:-1;;;3359:41:118;;3394:4;3359:41;;;7025:51:145;6998:18;;3359:41:118;6879:203:145;3303:108:118;3421:12;3435:23;3462:6;-1:-1:-1;;;;;3462:11:118;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:118:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:118;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:118;;-1:-1:-1;;;;;7043:32:145;;5121:24:118;;;7025:51:145;6998:18;;5121:24:118;6879:203:145;5041:119:118;-1:-1:-1;5180:10:118;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:118;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;207:131:145;-1:-1:-1;;;;;282:31:145;;272:42;;262:70;;328:1;325;318:12;343:456;420:6;428;436;489:2;477:9;468:7;464:23;460:32;457:52;;;505:1;502;495:12;457:52;544:9;531:23;563:31;588:5;563:31;:::i;:::-;613:5;-1:-1:-1;670:2:145;655:18;;642:32;683:33;642:32;683:33;:::i;:::-;343:456;;735:7;;-1:-1:-1;;;789:2:145;774:18;;;;761:32;;343:456::o;804:286::-;862:6;915:2;903:9;894:7;890:23;886:32;883:52;;;931:1;928;921:12;883:52;957:23;;-1:-1:-1;;;;;;1009:32:145;;999:43;;989:71;;1056:1;1053;1046:12;1287:118;1373:5;1366:13;1359:21;1352:5;1349:32;1339:60;;1395:1;1392;1385:12;1410:241;1466:6;1519:2;1507:9;1498:7;1494:23;1490:32;1487:52;;;1535:1;1532;1525:12;1487:52;1574:9;1561:23;1593:28;1615:5;1593:28;:::i;1861:180::-;1920:6;1973:2;1961:9;1952:7;1948:23;1944:32;1941:52;;;1989:1;1986;1979:12;1941:52;-1:-1:-1;2012:23:145;;1861:180;-1:-1:-1;1861:180:145:o;2228:163::-;2295:20;;2355:10;2344:22;;2334:33;;2324:61;;2381:1;2378;2371:12;2396:184;2454:6;2507:2;2495:9;2486:7;2482:23;2478:32;2475:52;;;2523:1;2520;2513:12;2475:52;2546:28;2564:9;2546:28;:::i;2585:639::-;2752:2;2804:21;;;2874:13;;2777:18;;;2896:22;;;2723:4;;2752:2;2975:15;;;;2949:2;2934:18;;;2723:4;3018:180;3032:6;3029:1;3026:13;3018:180;;;3097:13;;3112:4;3093:24;3081:37;;3173:15;;;;3138:12;;;;3054:1;3047:9;3018:180;;;-1:-1:-1;3215:3:145;;2585:639;-1:-1:-1;;;;;;2585:639:145:o;3229:247::-;3288:6;3341:2;3329:9;3320:7;3316:23;3312:32;3309:52;;;3357:1;3354;3347:12;3309:52;3396:9;3383:23;3415:31;3440:5;3415:31;:::i;3481:315::-;3549:6;3557;3610:2;3598:9;3589:7;3585:23;3581:32;3578:52;;;3626:1;3623;3616:12;3578:52;3662:9;3649:23;3639:33;;3722:2;3711:9;3707:18;3694:32;3735:31;3760:5;3735:31;:::i;:::-;3785:5;3775:15;;;3481:315;;;;;:::o;3801:171::-;3868:20;;-1:-1:-1;;;;;3917:30:145;;3907:41;;3897:69;;3962:1;3959;3952:12;3977:347;4028:8;4038:6;4092:3;4085:4;4077:6;4073:17;4069:27;4059:55;;4110:1;4107;4100:12;4059:55;-1:-1:-1;4133:20:145;;-1:-1:-1;;;;;4165:30:145;;4162:50;;;4208:1;4205;4198:12;4162:50;4245:4;4237:6;4233:17;4221:29;;4297:3;4290:4;4281:6;4273;4269:19;4265:30;4262:39;4259:59;;;4314:1;4311;4304:12;4259:59;3977:347;;;;;:::o;4329:689::-;4424:6;4432;4440;4448;4456;4509:3;4497:9;4488:7;4484:23;4480:33;4477:53;;;4526:1;4523;4516:12;4477:53;4549:28;4567:9;4549:28;:::i;:::-;4539:38;;4596:37;4629:2;4618:9;4614:18;4596:37;:::i;:::-;4586:47;;4683:2;4672:9;4668:18;4655:32;4696:31;4721:5;4696:31;:::i;:::-;4746:5;-1:-1:-1;4802:2:145;4787:18;;4774:32;-1:-1:-1;;;;;4818:30:145;;4815:50;;;4861:1;4858;4851:12;4815:50;4900:58;4950:7;4941:6;4930:9;4926:22;4900:58;:::i;:::-;4329:689;;;;-1:-1:-1;4329:689:145;;-1:-1:-1;4977:8:145;;4874:84;4329:689;-1:-1:-1;;;4329:689:145:o;5205:382::-;5270:6;5278;5331:2;5319:9;5310:7;5306:23;5302:32;5299:52;;;5347:1;5344;5337:12;5299:52;5386:9;5373:23;5405:31;5430:5;5405:31;:::i;:::-;5455:5;-1:-1:-1;5512:2:145;5497:18;;5484:32;5525:30;5484:32;5525:30;:::i;5592:649::-;5712:6;5720;5773:2;5761:9;5752:7;5748:23;5744:32;5741:52;;;5789:1;5786;5779:12;5741:52;5829:9;5816:23;-1:-1:-1;;;;;5899:2:145;5891:6;5888:14;5885:34;;;5915:1;5912;5905:12;5885:34;5953:6;5942:9;5938:22;5928:32;;5998:7;5991:4;5987:2;5983:13;5979:27;5969:55;;6020:1;6017;6010:12;5969:55;6060:2;6047:16;6086:2;6078:6;6075:14;6072:34;;;6102:1;6099;6092:12;6072:34;6155:7;6150:2;6140:6;6137:1;6133:14;6129:2;6125:23;6121:32;6118:45;6115:65;;;6176:1;6173;6166:12;6115:65;6207:2;6199:11;;;;;6229:6;;-1:-1:-1;5592:649:145;;-1:-1:-1;;;;5592:649:145:o;6246:159::-;6313:20;;6373:6;6362:18;;6352:29;;6342:57;;6395:1;6392;6385:12;6410:464;6493:6;6501;6509;6517;6570:3;6558:9;6549:7;6545:23;6541:33;6538:53;;;6587:1;6584;6577:12;6538:53;6610:28;6628:9;6610:28;:::i;:::-;6600:38;;6657:37;6690:2;6679:9;6675:18;6657:37;:::i;:::-;6647:47;;6713:37;6746:2;6735:9;6731:18;6713:37;:::i;:::-;6703:47;;6800:2;6789:9;6785:18;6772:32;6813:31;6838:5;6813:31;:::i;:::-;6410:464;;;;-1:-1:-1;6410:464:145;;-1:-1:-1;;6410:464:145:o;7087:184::-;7145:6;7198:2;7186:9;7177:7;7173:23;7169:32;7166:52;;;7214:1;7211;7204:12;7166:52;7237:28;7255:9;7237:28;:::i;7276:163::-;7343:5;7388:3;7379:6;7374:3;7370:16;7366:26;7363:46;;;7405:1;7402;7395:12;7363:46;-1:-1:-1;7427:6:145;7276:163;-1:-1:-1;7276:163:145:o;7444:678::-;7557:6;7565;7573;7626:2;7614:9;7605:7;7601:23;7597:32;7594:52;;;7642:1;7639;7632:12;7594:52;7682:9;7669:23;-1:-1:-1;;;;;7752:2:145;7744:6;7741:14;7738:34;;;7768:1;7765;7758:12;7738:34;7791:74;7857:7;7848:6;7837:9;7833:22;7791:74;:::i;:::-;7781:84;;7918:2;7907:9;7903:18;7890:32;7874:48;;7947:2;7937:8;7934:16;7931:36;;;7963:1;7960;7953:12;7931:36;;8002:60;8054:7;8043:8;8032:9;8028:24;8002:60;:::i;:::-;7444:678;;8081:8;;-1:-1:-1;7976:86:145;;-1:-1:-1;;;;7444:678:145:o;8526:388::-;8610:8;8620:6;8674:3;8667:4;8659:6;8655:17;8651:27;8641:55;;8692:1;8689;8682:12;8641:55;-1:-1:-1;8715:20:145;;-1:-1:-1;;;;;8747:30:145;;8744:50;;;8790:1;8787;8780:12;8744:50;8827:4;8819:6;8815:17;8803:29;;8887:3;8880:4;8870:6;8867:1;8863:14;8855:6;8851:27;8847:38;8844:47;8841:67;;;8904:1;8901;8894:12;8919:491;9038:6;9046;9099:2;9087:9;9078:7;9074:23;9070:32;9067:52;;;9115:1;9112;9105:12;9067:52;9155:9;9142:23;-1:-1:-1;;;;;9180:6:145;9177:30;9174:50;;;9220:1;9217;9210:12;9174:50;9259:91;9342:7;9333:6;9322:9;9318:22;9259:91;:::i;:::-;9369:8;;9233:117;;-1:-1:-1;8919:491:145;-1:-1:-1;;;;8919:491:145:o;9415:184::-;9473:6;9526:2;9514:9;9505:7;9501:23;9497:32;9494:52;;;9542:1;9539;9532:12;9494:52;9565:28;9583:9;9565:28;:::i;9604:477::-;9683:6;9691;9699;9752:2;9740:9;9731:7;9727:23;9723:32;9720:52;;;9768:1;9765;9758:12;9720:52;9804:9;9791:23;9781:33;;9865:2;9854:9;9850:18;9837:32;-1:-1:-1;;;;;9884:6:145;9881:30;9878:50;;;9924:1;9921;9914:12;9878:50;9963:58;10013:7;10004:6;9993:9;9989:22;9963:58;:::i;10086:127::-;10147:10;10142:3;10138:20;10135:1;10128:31;10178:4;10175:1;10168:15;10202:4;10199:1;10192:15;10218:421;10421:14;;10414:22;10396:41;;10384:2;10369:18;;10467:1;10456:13;;10446:144;;10512:10;10507:3;10503:20;10500:1;10493:31;10547:4;10544:1;10537:15;10575:4;10572:1;10565:15;10446:144;10626:6;10621:2;10610:9;10606:18;10599:34;10218:421;;;;;:::o;10644:528::-;10736:6;10744;10752;10805:2;10793:9;10784:7;10780:23;10776:32;10773:52;;;10821:1;10818;10811:12;10773:52;10844:28;10862:9;10844:28;:::i;:::-;10834:38;;10923:2;10912:9;10908:18;10895:32;-1:-1:-1;;;;;10942:6:145;10939:30;10936:50;;;10982:1;10979;10972:12;10936:50;11021:91;11104:7;11095:6;11084:9;11080:22;11021:91;:::i;11843:685::-;11939:6;11947;11955;11963;11971;12024:3;12012:9;12003:7;11999:23;11995:33;11992:53;;;12041:1;12038;12031:12;11992:53;12064:28;12082:9;12064:28;:::i;:::-;12054:38;;12142:2;12131:9;12127:18;12114:32;12155:31;12180:5;12155:31;:::i;:::-;12205:5;-1:-1:-1;12261:2:145;12246:18;;12233:32;-1:-1:-1;;;;;12277:30:145;;12274:50;;;12320:1;12317;12310:12;12274:50;12359:58;12409:7;12400:6;12389:9;12385:22;12359:58;:::i;:::-;11843:685;;;;-1:-1:-1;12436:8:145;12518:2;12503:18;12490:32;;11843:685;-1:-1:-1;;;;11843:685:145:o;12533:369::-;12625:6;12678:2;12666:9;12657:7;12653:23;12649:32;12646:52;;;12694:1;12691;12684:12;12646:52;12734:9;12721:23;-1:-1:-1;;;;;12759:6:145;12756:30;12753:50;;;12799:1;12796;12789:12;12753:50;12822:74;12888:7;12879:6;12868:9;12864:22;12822:74;:::i;:::-;12812:84;12533:369;-1:-1:-1;;;;12533:369:145:o;13566:556::-;13656:1;13652;13647:3;13643:11;13639:19;13697:2;13689:5;13683:12;13679:21;13674:3;13667:34;13762:10;13754:4;13747:5;13743:16;13737:23;13733:40;13726:4;13721:3;13717:14;13710:64;13820:4;13813:5;13809:16;13803:23;-1:-1:-1;;;;;13913:2:145;13899:12;13895:21;13888:4;13883:3;13879:14;13872:45;13978:2;13970:4;13963:5;13959:16;13953:23;13949:32;13942:4;13937:3;13933:14;13926:56;14043:2;14035:4;14028:5;14024:16;14018:23;14014:32;14007:4;14002:3;13998:14;13991:56;;;;14108:6;14100:4;14093:5;14089:16;14083:23;14079:36;14072:4;14067:3;14063:14;14056:60;13566:556;;:::o;14448:266::-;14536:6;14531:3;14524:19;14588:6;14581:5;14574:4;14569:3;14565:14;14552:43;-1:-1:-1;14640:1:145;14615:16;;;14633:4;14611:27;;;14604:38;;;;14696:2;14675:15;;;-1:-1:-1;;14671:29:145;14662:39;;;14658:50;;14448:266::o;14719:565::-;15000:4;15029:3;15041:46;15077:9;15069:6;15041:46;:::i;:::-;15096:64;15155:3;15144:9;15140:19;15132:6;14215:12;-1:-1:-1;;;;;14248:34:145;;14236:47;;14323:2;14319:18;;;14339:6;14315:31;14308:4;14299:14;;14292:55;14385:2;14381:18;;;;-1:-1:-1;;;;;14377:59:145;14363:12;;14356:81;14127:316;15096:64;15197:2;15191:3;15180:9;15176:19;15169:31;15217:61;15274:2;15263:9;15259:18;15251:6;15243;15217:61;:::i;15289:184::-;15359:6;15412:2;15400:9;15391:7;15387:23;15383:32;15380:52;;;15428:1;15425;15418:12;15380:52;-1:-1:-1;15451:16:145;;15289:184;-1:-1:-1;15289:184:145:o;15478:127::-;15539:10;15534:3;15530:20;15527:1;15520:31;15570:4;15567:1;15560:15;15594:4;15591:1;15584:15;15610:188;15678:20;;-1:-1:-1;;;;;15727:46:145;;15717:57;;15707:85;;15788:1;15785;15778:12;15803:186;15862:6;15915:2;15903:9;15894:7;15890:23;15886:32;15883:52;;;15931:1;15928;15921:12;15883:52;15954:29;15973:9;15954:29;:::i;15994:1054::-;16241:2;16293:21;;;16266:18;;;16349:22;;;16212:4;;16390:2;16408:18;;;16449:6;16212:4;16483:539;16497:6;16494:1;16491:13;16483:539;;;16589:10;16562:25;16580:6;16562:25;:::i;:::-;16558:42;16553:3;16546:55;-1:-1:-1;;;;;16639:34:145;16669:2;16661:6;16657:15;16639:34;:::i;:::-;16635:59;16630:2;16625:3;16621:12;16614:81;16769:6;16733:34;16763:2;16755:6;16751:15;16733:34;:::i;:::-;16729:47;16724:2;16719:3;16715:12;16708:69;16800:4;-1:-1:-1;;;;;16842:35:145;16873:2;16865:6;16861:15;16842:35;:::i;:::-;16838:76;16824:12;;;16817:98;16938:4;16962:12;;;;16997:15;;;;;16519:1;16512:9;16483:539;;;-1:-1:-1;17039:3:145;;15994:1054;-1:-1:-1;;;;;;;15994:1054:145:o;17053:250::-;17138:1;17148:113;17162:6;17159:1;17156:13;17148:113;;;17238:11;;;17232:18;17219:11;;;17212:39;17184:2;17177:10;17148:113;;;-1:-1:-1;;17295:1:145;17277:16;;17270:27;17053:250::o;17308:270::-;17349:3;17387:5;17381:12;17414:6;17409:3;17402:19;17430:76;17499:6;17492:4;17487:3;17483:14;17476:4;17469:5;17465:16;17430:76;:::i;:::-;17560:2;17539:15;-1:-1:-1;;17535:29:145;17526:39;;;;17567:4;17522:50;;17308:270;-1:-1:-1;;17308:270:145:o;17583:538::-;17854:4;17883:3;17895:46;17931:9;17923:6;17895:46;:::i;:::-;17950:64;18009:3;17998:9;17994:19;17986:6;14215:12;-1:-1:-1;;;;;14248:34:145;;14236:47;;14323:2;14319:18;;;14339:6;14315:31;14308:4;14299:14;;14292:55;14385:2;14381:18;;;;-1:-1:-1;;;;;14377:59:145;14363:12;;14356:81;14127:316;17950:64;18051:2;18045:3;18034:9;18030:19;18023:31;18071:44;18111:2;18100:9;18096:18;18088:6;18071:44;:::i;18126:331::-;18225:4;18283:11;18270:25;18377:3;18373:8;18362;18346:14;18342:29;18338:44;18318:18;18314:69;18304:97;;18397:1;18394;18387:12;18304:97;18418:33;;;;;18126:331;-1:-1:-1;;18126:331:145:o;18462:521::-;18539:4;18545:6;18605:11;18592:25;18699:2;18695:7;18684:8;18668:14;18664:29;18660:43;18640:18;18636:68;18626:96;;18718:1;18715;18708:12;18626:96;18745:33;;18797:20;;;-1:-1:-1;;;;;;18829:30:145;;18826:50;;;18872:1;18869;18862:12;18826:50;18905:4;18893:17;;-1:-1:-1;18936:14:145;18932:27;;;18922:38;;18919:58;;;18973:1;18970;18963:12;18988:323;-1:-1:-1;;;;;;19108:19:145;;19184:11;;;;19215:1;19207:10;;19204:101;;;19292:2;19286;19279:3;19276:1;19272:11;19269:1;19265:19;19261:28;19257:2;19253:37;19249:46;19240:55;;19204:101;;;18988:323;;;;:::o;19316:500::-;19374:5;19381:6;19441:3;19428:17;19527:2;19523:7;19512:8;19496:14;19492:29;19488:43;19468:18;19464:68;19454:96;;19546:1;19543;19536:12;19454:96;19574:33;;19678:4;19665:18;;;-1:-1:-1;19626:21:145;;-1:-1:-1;;;;;;19695:30:145;;19692:50;;;19738:1;19735;19728:12;19692:50;19785:6;19769:14;19765:27;19758:5;19754:39;19751:59;;;19806:1;19803;19796:12;19821:1079;20042:2;20031:9;20024:21;20112:10;20085:25;20103:6;20085:25;:::i;:::-;20081:42;20076:2;20065:9;20061:18;20054:70;20005:4;20171;20163:6;20159:17;20146:31;20186;20211:5;20186:31;:::i;:::-;-1:-1:-1;;;;;20253:31:145;20248:2;20233:18;;20226:59;20328:55;20379:2;20367:15;;20371:6;20328:55;:::i;:::-;20420:4;20414:3;20403:9;20399:19;20392:33;20448:74;20517:3;20506:9;20502:19;20488:12;20474;20448:74;:::i;:::-;20434:88;;;20585:2;20577:6;20573:15;20560:29;20553:4;20542:9;20538:20;20531:59;20637:56;20688:3;20680:6;20676:16;20668:6;20637:56;:::i;:::-;20734:22;;;-1:-1:-1;;20730:36:145;20724:3;20709:19;;20702:65;20784;20738:6;20826:14;20810;20784:65;:::i;:::-;20776:73;;;;;20887:6;20880:4;20869:9;20865:20;20858:36;19821:1079;;;;;:::o;20905:271::-;21088:6;21080;21075:3;21062:33;21044:3;21114:16;;21139:13;;;21114:16;20905:271;-1:-1:-1;20905:271:145:o;21181:288::-;21356:6;21345:9;21338:25;21399:2;21394;21383:9;21379:18;21372:30;21319:4;21419:44;21459:2;21448:9;21444:18;21436:6;21419:44;:::i;21474:127::-;21535:10;21530:3;21526:20;21523:1;21516:31;21566:4;21563:1;21556:15;21590:4;21587:1;21580:15;21606:168;21679:9;;;21710;;21727:15;;;21721:22;;21707:37;21697:71;;21748:18;;:::i;21779:125::-;21844:9;;;21865:10;;;21862:36;;;21878:18;;:::i;21909:331::-;22014:9;22025;22067:8;22055:10;22052:24;22049:44;;;22089:1;22086;22079:12;22049:44;22118:6;22108:8;22105:20;22102:40;;;22138:1;22135;22128:12;22102:40;-1:-1:-1;;22164:23:145;;;22209:25;;;;;-1:-1:-1;21909:331:145:o;22540:556::-;22822:10;22817:3;22813:20;22804:6;22799:3;22795:16;22791:43;22786:3;22779:56;22889:26;22885:31;22876:6;22872:2;22868:15;22864:53;22860:1;22855:3;22851:11;22844:74;22948:6;22943:2;22938:3;22934:12;22927:28;22999:6;22991;22986:2;22981:3;22977:12;22964:42;22761:3;23029:16;;23047:2;23025:25;23059:13;;;23025:25;22540:556;-1:-1:-1;;;;22540:556:145:o;23361:209::-;23399:3;-1:-1:-1;;;;;23480:2:145;23473:5;23469:14;23507:2;23498:7;23495:15;23492:41;;23513:18;;:::i;:::-;23562:1;23549:15;;23361:209;-1:-1:-1;;;23361:209:145:o;23864:183::-;-1:-1:-1;;;;;23983:10:145;;;23971;;;23967:27;;24006:12;;;24003:38;;;24021:18;;:::i;:::-;24003:38;23864:183;;;;:::o;24052:180::-;-1:-1:-1;;;;;24157:10:145;;;24169;;;24153:27;;24192:11;;;24189:37;;;24206:18;;:::i;24926:193::-;24964:3;-1:-1:-1;;;;;25001:5:145;24997:30;25046:7;25036:41;;25057:18;;:::i;:::-;-1:-1:-1;;25093:20:145;;24926:193;-1:-1:-1;;24926:193:145:o;26016:245::-;26083:6;26136:2;26124:9;26115:7;26111:23;26107:32;26104:52;;;26152:1;26149;26142:12;26104:52;26184:9;26178:16;26203:28;26225:5;26203:28;:::i;26266:287::-;26395:3;26433:6;26427:13;26449:66;26508:6;26503:3;26496:4;26488:6;26484:17;26449:66;:::i","linkReferences":{},"immutableReferences":{"14829":[{"start":1868,"length":32},{"start":4648,"length":32},{"start":6928,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","allowlistSize()":"d2ae2104","assignJob((uint32,bytes,bytes32,uint64,address),bytes)":"95d376d7","assignJob(uint16,uint16,uint64,address)":"c5e193cd","defaultMultiplierBps()":"00bf2e80","dstConfig(uint32)":"9e944965","execute((uint32,address,bytes,uint256,bytes)[])":"b143044b","getFee(uint16,uint16,uint64,address)":"5553fb8e","getFee(uint32,uint64,address,bytes)":"30bb3aac","getRoleAdmin(bytes32)":"248a9ca3","getSupportedOptionTypes(uint32)":"26e67a37","grantRole(bytes32,address)":"2f2ff15d","hasAcl(address)":"2de11376","hasRole(bytes32,address)":"91d14854","hashCallData(uint32,address,bytes,uint256)":"f010cb23","paused()":"5c975abb","priceFeed()":"741bef1a","quorum()":"1703a018","quorumChangeAdmin((uint32,address,bytes,uint256,bytes))":"f3b4ebd0","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDefaultMultiplierBps(uint16)":"c358de0a","setDstConfig((uint32,uint64,uint16,uint128)[])":"52d3b871","setPaused(bool)":"16c38b3c","setPriceFeed(address)":"724e78da","setQuorum(uint64)":"8585c945","setSigner(address,bool)":"31cb6105","setSupportedOptionTypes(uint32,uint8[])":"cd88b903","setWorkerFeeLib(address)":"c7b2370b","signerSize()":"fd62e750","signers(address)":"736c0d5b","supportsInterface(bytes4)":"01ffc9a7","usedHashes(bytes32)":"aef18bf7","verifySignatures(bytes32,bytes)":"c7a823e0","vid()":"cf34c768","withdrawFee(address,address,uint256)":"1095b6d7","withdrawFeeFromUlnV2(address,address,uint256)":"dafe0ccc","withdrawToken(address,address,uint256)":"01e33667","workerFeeLib()":"c416aa51"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_vid\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"_messageLibs\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"_priceFeed\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_signers\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"_quorum\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"_admins\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"executableHash\",\"type\":\"bytes32\"}],\"name\":\"DVN_DuplicatedHash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DVN_InstructionExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"DVN_InvalidRole\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DVN_InvalidSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"DVN_InvalidTarget\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"vid\",\"type\":\"uint32\"}],\"name\":\"DVN_InvalidVid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DVN_OnlySelf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MultiSig_OnlySigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MultiSig_QuorumIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"signersSize\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"quorum\",\"type\":\"uint64\"}],\"name\":\"MultiSig_SignersSizeIsLessThanQuorum\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"MultiSig_StateAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MultiSig_UnorderedSigners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_OnlyMessageLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_RoleRenouncingDisabled\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"ExecuteFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"vid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct ExecuteParam\",\"name\":\"param\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"HashAlreadyUsed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"}],\"name\":\"SetDefaultMultiplierBps\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"indexed\":false,\"internalType\":\"struct IDVN.DstConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"SetDstConfig\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"name\":\"SetPriceFeed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint8[]\",\"name\":\"optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"SetSupportedOptionTypes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"workerLib\",\"type\":\"address\"}],\"name\":\"SetWorkerLib\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_quorum\",\"type\":\"uint64\"}],\"name\":\"UpdateQuorum\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_signer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_active\",\"type\":\"bool\"}],\"name\":\"UpdateSigner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"VerifierFeePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"VerifySignaturesFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowlistSize\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"packetHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"internalType\":\"struct ILayerZeroDVN.AssignJobParam\",\"name\":\"_param\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"assignJob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalFee\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"_confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"assignJob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalFee\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultMultiplierBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"}],\"name\":\"dstConfig\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"vid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"internalType\":\"struct ExecuteParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"_confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"_confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSupportedOptionTypes\",\"outputs\":[{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"hasAcl\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_vid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_expiration\",\"type\":\"uint256\"}],\"name\":\"hashCallData\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceFeed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"vid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"internalType\":\"struct ExecuteParam\",\"name\":\"_param\",\"type\":\"tuple\"}],\"name\":\"quorumChangeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_multiplierBps\",\"type\":\"uint16\"}],\"name\":\"setDefaultMultiplierBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"internalType\":\"struct IDVN.DstConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setDstConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_paused\",\"type\":\"bool\"}],\"name\":\"setPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_priceFeed\",\"type\":\"address\"}],\"name\":\"setPriceFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_quorum\",\"type\":\"uint64\"}],\"name\":\"setQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_signer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_active\",\"type\":\"bool\"}],\"name\":\"setSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint8[]\",\"name\":\"_optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"setSupportedOptionTypes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_workerFeeLib\",\"type\":\"address\"}],\"name\":\"setWorkerFeeLib\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signerSize\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"signers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"executableHash\",\"type\":\"bytes32\"}],\"name\":\"usedHashes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"used\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signatures\",\"type\":\"bytes\"}],\"name\":\"verifySignatures\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"enum MultiSigMock.Errors\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFeeFromUlnV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"workerFeeLib\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"assignJob((uint32,bytes,bytes32,uint64,address),bytes)\":{\"details\":\"for ULN301, ULN302 and more to assign jobdvn network can reject job from _sender by adding/removing them from allowlist/denylist\",\"params\":{\"_options\":\"dvn options\",\"_param\":\"assign job param\"}},\"assignJob(uint16,uint16,uint64,address)\":{\"details\":\"to support ULNv2dvn network can reject job from _sender by adding/removing them from allowlist/denylist\",\"params\":{\"\":\"//_outboundProofType outbound proof type\",\"_confirmations\":\"block confirmations\",\"_dstEid\":\"destination EndpointId\",\"_sender\":\"message sender address\"}},\"constructor\":{\"details\":\"DVN doesn't have a roleAdmin (address(0x0))Supports all of ULNv2, ULN301, ULN302 and more\",\"params\":{\"_admins\":\"array of admin addresses that are granted the ADMIN_ROLE\",\"_messageLibs\":\"array of message lib addresses that are granted the MESSAGE_LIB_ROLE\",\"_priceFeed\":\"price feed address\",\"_quorum\":\"quorum for multisig\",\"_signers\":\"array of signer addresses for multisig\",\"_vid\":\"unique identifier for this DVN instance\"}},\"execute((uint32,address,bytes,uint256,bytes)[])\":{\"details\":\"takes a list of instructions and executes them in orderif any of the instructions fail, it will emit an error event and continue to execute the rest of the instructions\",\"params\":{\"_params\":\"array of ExecuteParam, includes target, callData, expiration, signatures\"}},\"getFee(uint16,uint16,uint64,address)\":{\"details\":\"to support ULNv2getFee can revert if _sender doesn't pass ACL\",\"params\":{\"\":\"//_outboundProofType outbound proof type\",\"_confirmations\":\"block confirmations\",\"_dstEid\":\"destination EndpointId\",\"_sender\":\"message sender address\"}},\"getFee(uint32,uint64,address,bytes)\":{\"details\":\"getFee can revert if _sender doesn't pass ACL\",\"params\":{\"_confirmations\":\"block confirmations\",\"_dstEid\":\"destination EndpointId\",\"_options\":\"dvn options\",\"_sender\":\"message sender address\"},\"returns\":{\"fee\":\"fee in native amount\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"overrides AccessControl to allow self/admin to grant role'function sig 0x2f2ff15d\",\"params\":{\"_account\":\"account to grant role to\",\"_role\":\"role to grant\"}},\"hasAcl(address)\":{\"details\":\"Access control list using allowlist and denylist1) if one address is in the denylist -> deny2) else if address in the allowlist OR allowlist is empty (allows everyone)-> allow3) else deny\",\"params\":{\"_sender\":\"address to check\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"hashCallData(uint32,address,bytes,uint256)\":{\"params\":{\"_callData\":\"call data\",\"_expiration\":\"expiration timestamp\",\"_target\":\"target address\"},\"returns\":{\"_0\":\"hash of above\"}},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"quorumChangeAdmin((uint32,address,bytes,uint256,bytes))\":{\"details\":\"calldata in the case is abi.encode new admin address\"},\"renounceRole(bytes32,address)\":{\"details\":\"overrides AccessControl to disable renouncing of roles\"},\"revokeRole(bytes32,address)\":{\"details\":\"overrides AccessControl to allow self/admin to revoke rolefunction sig 0xd547741f\",\"params\":{\"_account\":\"account to revoke role from\",\"_role\":\"role to revoke\"}},\"setDefaultMultiplierBps(uint16)\":{\"params\":{\"_multiplierBps\":\"default multiplier for worker fee\"}},\"setDstConfig((uint32,uint64,uint16,uint128)[])\":{\"params\":{\"_params\":\"array of DstConfigParam\"}},\"setPaused(bool)\":{\"details\":\"flag to pause execution of workers (if used with whenNotPaused modifier)\",\"params\":{\"_paused\":\"true to pause, false to unpause\"}},\"setPriceFeed(address)\":{\"params\":{\"_priceFeed\":\"price feed address\"}},\"setQuorum(uint64)\":{\"details\":\"set quorum for multisigfunction sig 0x8585c945\",\"params\":{\"_quorum\":\"to set\"}},\"setSigner(address,bool)\":{\"details\":\"set signers for multisigfunction sig 0x31cb6105\",\"params\":{\"_active\":\"true to add, false to remove\",\"_signer\":\"signer address\"}},\"setWorkerFeeLib(address)\":{\"params\":{\"_workerFeeLib\":\"worker fee lib address\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"withdrawFee(address,address,uint256)\":{\"details\":\"supports withdrawing fee from ULN301, ULN302 and more\",\"params\":{\"_amount\":\"amount to withdraw\",\"_lib\":\"message lib address\",\"_to\":\"address to withdraw fee to\"}},\"withdrawFeeFromUlnV2(address,address,uint256)\":{\"details\":\"to support ULNv2the withdrawFee function for ULN30X is built in the Worker contract\",\"params\":{\"_amount\":\"amount to withdraw\",\"_lib\":\"message lib address\",\"_to\":\"address to withdraw to\"}},\"withdrawToken(address,address,uint256)\":{\"details\":\"supports withdrawing token from the contract\",\"params\":{\"_amount\":\"amount to withdraw\",\"_to\":\"address to withdraw token to\",\"_token\":\"token address\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"quorumChangeAdmin((uint32,address,bytes,uint256,bytes))\":{\"notice\":\"function for quorum to change admin without going through execute function\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol\":\"DVNMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9\",\"dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":{\"keccak256\":\"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55\",\"dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol\":{\"keccak256\":\"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc\",\"dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol\":{\"keccak256\":\"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda\",\"dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol\":{\"keccak256\":\"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590\",\"dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol\":{\"keccak256\":\"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f\",\"dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol\":{\"keccak256\":\"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1\",\"dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"_vid","type":"uint32"},{"internalType":"address[]","name":"_messageLibs","type":"address[]"},{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"address[]","name":"_signers","type":"address[]"},{"internalType":"uint64","name":"_quorum","type":"uint64"},{"internalType":"address[]","name":"_admins","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"bytes32","name":"executableHash","type":"bytes32"}],"type":"error","name":"DVN_DuplicatedHash"},{"inputs":[],"type":"error","name":"DVN_InstructionExpired"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"type":"error","name":"DVN_InvalidRole"},{"inputs":[],"type":"error","name":"DVN_InvalidSignatures"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"DVN_InvalidTarget"},{"inputs":[{"internalType":"uint32","name":"vid","type":"uint32"}],"type":"error","name":"DVN_InvalidVid"},{"inputs":[],"type":"error","name":"DVN_OnlySelf"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"MultiSig_OnlySigner"},{"inputs":[],"type":"error","name":"MultiSig_QuorumIsZero"},{"inputs":[{"internalType":"uint64","name":"signersSize","type":"uint64"},{"internalType":"uint64","name":"quorum","type":"uint64"}],"type":"error","name":"MultiSig_SignersSizeIsLessThanQuorum"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bool","name":"active","type":"bool"}],"type":"error","name":"MultiSig_StateAlreadySet"},{"inputs":[],"type":"error","name":"MultiSig_UnorderedSigners"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"},{"inputs":[],"type":"error","name":"Worker_NotAllowed"},{"inputs":[],"type":"error","name":"Worker_OnlyMessageLib"},{"inputs":[],"type":"error","name":"Worker_RoleRenouncingDisabled"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256","indexed":false},{"internalType":"bytes","name":"_data","type":"bytes","indexed":false}],"type":"event","name":"ExecuteFailed","anonymous":false},{"inputs":[{"internalType":"struct ExecuteParam","name":"param","type":"tuple","components":[{"internalType":"uint32","name":"vid","type":"uint32"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"indexed":false},{"internalType":"bytes32","name":"_hash","type":"bytes32","indexed":false}],"type":"event","name":"HashAlreadyUsed","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"uint16","name":"multiplierBps","type":"uint16","indexed":false}],"type":"event","name":"SetDefaultMultiplierBps","anonymous":false},{"inputs":[{"internalType":"struct IDVN.DstConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}],"indexed":false}],"type":"event","name":"SetDstConfig","anonymous":false},{"inputs":[{"internalType":"address","name":"priceFeed","type":"address","indexed":false}],"type":"event","name":"SetPriceFeed","anonymous":false},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"uint8[]","name":"optionTypes","type":"uint8[]","indexed":false}],"type":"event","name":"SetSupportedOptionTypes","anonymous":false},{"inputs":[{"internalType":"address","name":"workerLib","type":"address","indexed":false}],"type":"event","name":"SetWorkerLib","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"uint64","name":"_quorum","type":"uint64","indexed":false}],"type":"event","name":"UpdateQuorum","anonymous":false},{"inputs":[{"internalType":"address","name":"_signer","type":"address","indexed":false},{"internalType":"bool","name":"_active","type":"bool","indexed":false}],"type":"event","name":"UpdateSigner","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"VerifierFeePaid","anonymous":false},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256","indexed":false}],"type":"event","name":"VerifySignaturesFailed","anonymous":false},{"inputs":[{"internalType":"address","name":"lib","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allowlistSize","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct ILayerZeroDVN.AssignJobParam","name":"_param","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes","name":"packetHeader","type":"bytes"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"},{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"address","name":"sender","type":"address"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"assignJob","outputs":[{"internalType":"uint256","name":"totalFee","type":"uint256"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint64","name":"_confirmations","type":"uint64"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"assignJob","outputs":[{"internalType":"uint256","name":"totalFee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultMultiplierBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"dstConfig","outputs":[{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}]},{"inputs":[{"internalType":"struct ExecuteParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"vid","type":"uint32"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes","name":"signatures","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"execute"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"uint64","name":"_confirmations","type":"uint64"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint64","name":"_confirmations","type":"uint64"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSupportedOptionTypes","outputs":[{"internalType":"uint8[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"},{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"hasAcl","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_vid","type":"uint32"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_callData","type":"bytes"},{"internalType":"uint256","name":"_expiration","type":"uint256"}],"stateMutability":"pure","type":"function","name":"hashCallData","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"priceFeed","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorum","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct ExecuteParam","name":"_param","type":"tuple","components":[{"internalType":"uint32","name":"vid","type":"uint32"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes","name":"signatures","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"quorumChangeAdmin"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"},{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"uint16","name":"_multiplierBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultMultiplierBps"},{"inputs":[{"internalType":"struct IDVN.DstConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}]}],"stateMutability":"nonpayable","type":"function","name":"setDstConfig"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPaused"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPriceFeed"},{"inputs":[{"internalType":"uint64","name":"_quorum","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setQuorum"},{"inputs":[{"internalType":"address","name":"_signer","type":"address"},{"internalType":"bool","name":"_active","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setSigner"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint8[]","name":"_optionTypes","type":"uint8[]"}],"stateMutability":"nonpayable","type":"function","name":"setSupportedOptionTypes"},{"inputs":[{"internalType":"address","name":"_workerFeeLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setWorkerFeeLib"},{"inputs":[],"stateMutability":"view","type":"function","name":"signerSize","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"view","type":"function","name":"signers","outputs":[{"internalType":"bool","name":"active","type":"bool"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"executableHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"usedHashes","outputs":[{"internalType":"bool","name":"used","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"bytes","name":"_signatures","type":"bytes"}],"stateMutability":"view","type":"function","name":"verifySignatures","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"enum MultiSigMock.Errors","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"},{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFeeFromUlnV2"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawToken"},{"inputs":[],"stateMutability":"view","type":"function","name":"workerFeeLib","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"assignJob((uint32,bytes,bytes32,uint64,address),bytes)":{"details":"for ULN301, ULN302 and more to assign jobdvn network can reject job from _sender by adding/removing them from allowlist/denylist","params":{"_options":"dvn options","_param":"assign job param"}},"assignJob(uint16,uint16,uint64,address)":{"details":"to support ULNv2dvn network can reject job from _sender by adding/removing them from allowlist/denylist","params":{"":"//_outboundProofType outbound proof type","_confirmations":"block confirmations","_dstEid":"destination EndpointId","_sender":"message sender address"}},"constructor":{"details":"DVN doesn't have a roleAdmin (address(0x0))Supports all of ULNv2, ULN301, ULN302 and more","params":{"_admins":"array of admin addresses that are granted the ADMIN_ROLE","_messageLibs":"array of message lib addresses that are granted the MESSAGE_LIB_ROLE","_priceFeed":"price feed address","_quorum":"quorum for multisig","_signers":"array of signer addresses for multisig","_vid":"unique identifier for this DVN instance"}},"execute((uint32,address,bytes,uint256,bytes)[])":{"details":"takes a list of instructions and executes them in orderif any of the instructions fail, it will emit an error event and continue to execute the rest of the instructions","params":{"_params":"array of ExecuteParam, includes target, callData, expiration, signatures"}},"getFee(uint16,uint16,uint64,address)":{"details":"to support ULNv2getFee can revert if _sender doesn't pass ACL","params":{"":"//_outboundProofType outbound proof type","_confirmations":"block confirmations","_dstEid":"destination EndpointId","_sender":"message sender address"}},"getFee(uint32,uint64,address,bytes)":{"details":"getFee can revert if _sender doesn't pass ACL","params":{"_confirmations":"block confirmations","_dstEid":"destination EndpointId","_options":"dvn options","_sender":"message sender address"},"returns":{"fee":"fee in native amount"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"overrides AccessControl to allow self/admin to grant role'function sig 0x2f2ff15d","params":{"_account":"account to grant role to","_role":"role to grant"}},"hasAcl(address)":{"details":"Access control list using allowlist and denylist1) if one address is in the denylist -> deny2) else if address in the allowlist OR allowlist is empty (allows everyone)-> allow3) else deny","params":{"_sender":"address to check"}},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"hashCallData(uint32,address,bytes,uint256)":{"params":{"_callData":"call data","_expiration":"expiration timestamp","_target":"target address"},"returns":{"_0":"hash of above"}},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"quorumChangeAdmin((uint32,address,bytes,uint256,bytes))":{"details":"calldata in the case is abi.encode new admin address"},"renounceRole(bytes32,address)":{"details":"overrides AccessControl to disable renouncing of roles"},"revokeRole(bytes32,address)":{"details":"overrides AccessControl to allow self/admin to revoke rolefunction sig 0xd547741f","params":{"_account":"account to revoke role from","_role":"role to revoke"}},"setDefaultMultiplierBps(uint16)":{"params":{"_multiplierBps":"default multiplier for worker fee"}},"setDstConfig((uint32,uint64,uint16,uint128)[])":{"params":{"_params":"array of DstConfigParam"}},"setPaused(bool)":{"details":"flag to pause execution of workers (if used with whenNotPaused modifier)","params":{"_paused":"true to pause, false to unpause"}},"setPriceFeed(address)":{"params":{"_priceFeed":"price feed address"}},"setQuorum(uint64)":{"details":"set quorum for multisigfunction sig 0x8585c945","params":{"_quorum":"to set"}},"setSigner(address,bool)":{"details":"set signers for multisigfunction sig 0x31cb6105","params":{"_active":"true to add, false to remove","_signer":"signer address"}},"setWorkerFeeLib(address)":{"params":{"_workerFeeLib":"worker fee lib address"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"withdrawFee(address,address,uint256)":{"details":"supports withdrawing fee from ULN301, ULN302 and more","params":{"_amount":"amount to withdraw","_lib":"message lib address","_to":"address to withdraw fee to"}},"withdrawFeeFromUlnV2(address,address,uint256)":{"details":"to support ULNv2the withdrawFee function for ULN30X is built in the Worker contract","params":{"_amount":"amount to withdraw","_lib":"message lib address","_to":"address to withdraw to"}},"withdrawToken(address,address,uint256)":{"details":"supports withdrawing token from the contract","params":{"_amount":"amount to withdraw","_to":"address to withdraw token to","_token":"token address"}}},"version":1},"userdoc":{"kind":"user","methods":{"quorumChangeAdmin((uint32,address,bytes,uint256,bytes))":{"notice":"function for quorum to change admin without going through execute function"}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol":"DVNMock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f","urls":["bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9","dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":{"keccak256":"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73","urls":["bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55","dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol":{"keccak256":"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91","urls":["bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc","dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol":{"keccak256":"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22","urls":["bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda","dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa"],"license":"BUSL-1.1"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol":{"keccak256":"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada","urls":["bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590","dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol":{"keccak256":"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830","urls":["bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f","dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol":{"keccak256":"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97","urls":["bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1","dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":73} \ No newline at end of file diff --git a/packages/onft-evm/out/DVNOptions.sol/DVNOptions.json b/packages/onft-evm/out/DVNOptions.sol/DVNOptions.json deleted file mode 100644 index e22576ce6..000000000 --- a/packages/onft-evm/out/DVNOptions.sol/DVNOptions.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"DVN_InvalidDVNIdx","inputs":[]},{"type":"error","name":"DVN_InvalidDVNOptions","inputs":[{"name":"cursor","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207b962d2ec107ef2ede9a697972bea9ee42eaeb2c8109057e152aa03a444b22e364736f6c63430008160033","sourceMap":"345:6975:29:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;345:6975:29;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207b962d2ec107ef2ede9a697972bea9ee42eaeb2c8109057e152aa03a444b22e364736f6c63430008160033","sourceMap":"345:6975:29:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DVN_InvalidDVNIdx\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"DVN_InvalidDVNOptions\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":\"DVNOptions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"DVN_InvalidDVNIdx"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"type":"error","name":"DVN_InvalidDVNOptions"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":"DVNOptions"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":29} \ No newline at end of file diff --git a/packages/onft-evm/out/DoubleEndedQueue.sol/DoubleEndedQueue.json b/packages/onft-evm/out/DoubleEndedQueue.sol/DoubleEndedQueue.json deleted file mode 100644 index 00f1cbd69..000000000 --- a/packages/onft-evm/out/DoubleEndedQueue.sol/DoubleEndedQueue.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"QueueEmpty","inputs":[]},{"type":"error","name":"QueueFull","inputs":[]},{"type":"error","name":"QueueOutOfBounds","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a754e04f4d43f1b7ebaa2a2c96911034cb9ed151b1b588798d6af16f65ec492964736f6c63430008160033","sourceMap":"782:5071:131:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;782:5071:131;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a754e04f4d43f1b7ebaa2a2c96911034cb9ed151b1b588798d6af16f65ec492964736f6c63430008160033","sourceMap":"782:5071:131:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"QueueEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueFull\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueOutOfBounds\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"A sequence of items with the ability to efficiently push and pop items (i.e. insert and remove) on both ends of the sequence (called front and back). Among other access patterns, it can be used to implement efficient LIFO and FIFO queues. Storage use is optimized, and all operations are O(1) constant time. This includes {clear}, given that the existing queue contents are left in storage. The struct is called `Bytes32Deque`. Other types can be cast to and from `bytes32`. This data structure can only be used in storage, and not in memory. ```solidity DoubleEndedQueue.Bytes32Deque queue; ```\",\"errors\":{\"QueueEmpty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}],\"QueueFull()\":[{\"details\":\"A push operation couldn't be completed due to the queue being full.\"}],\"QueueOutOfBounds()\":[{\"details\":\"An operation (e.g. {at}) couldn't be completed due to an index being out of bounds.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":\"DoubleEndedQueue\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8\",\"dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"QueueEmpty"},{"inputs":[],"type":"error","name":"QueueFull"},{"inputs":[],"type":"error","name":"QueueOutOfBounds"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":"DoubleEndedQueue"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"keccak256":"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67","urls":["bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8","dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp"],"license":"MIT"}},"version":1},"id":131} \ No newline at end of file diff --git a/packages/onft-evm/out/ECDSA.sol/ECDSA.json b/packages/onft-evm/out/ECDSA.sol/ECDSA.json deleted file mode 100644 index 41938ae45..000000000 --- a/packages/onft-evm/out/ECDSA.sol/ECDSA.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204d492364061b1a84079d5ecce5d9608017bdc24839aad8f40b19ea5e12eb197964736f6c63430008160033","sourceMap":"344:7386:125:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;344:7386:125;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204d492364061b1a84079d5ecce5d9608017bdc24839aad8f40b19ea5e12eb197964736f6c63430008160033","sourceMap":"344:7386:125:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":"ECDSA"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"}},"version":1},"id":125} \ No newline at end of file diff --git a/packages/onft-evm/out/ERC1155.sol/ERC1155.json b/packages/onft-evm/out/ERC1155.sol/ERC1155.json deleted file mode 100644 index df0dcd229..000000000 --- a/packages/onft-evm/out/ERC1155.sol/ERC1155.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"uri","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC1155InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidArrayLength","inputs":[{"name":"idsLength","type":"uint256","internalType":"uint256"},{"name":"valuesLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155MissingApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the basic standard multi-token. See https://eips.ethereum.org/EIPS/eip-1155 Originally based on code by Enjin: https://github.com/enjin/erc-1155\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"constructor\":{\"details\":\"See {_setURI}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":\"ERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"node_modules/@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC1155InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC1155InvalidApprover"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"type":"error","name":"ERC1155InvalidArrayLength"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC1155InvalidOperator"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC1155InvalidSender"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC1155MissingApprovalForAll"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address,uint256)":{"details":"See {IERC1155-balanceOf}."},"balanceOfBatch(address[],uint256[])":{"details":"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length."},"constructor":{"details":"See {_setURI}."},"isApprovedForAll(address,address)":{"details":"See {IERC1155-isApprovedForAll}."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"See {IERC1155-safeBatchTransferFrom}."},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"See {IERC1155-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC1155-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"uri(uint256)":{"details":"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\{id\\}` substring with the actual token type ID."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol":"ERC1155"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"keccak256":"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde","urls":["bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026","dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"keccak256":"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce","urls":["bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182","dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3","urls":["bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23","dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"keccak256":"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68","urls":["bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522","dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Arrays.sol":{"keccak256":"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1","urls":["bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5","dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":107} \ No newline at end of file diff --git a/packages/onft-evm/out/ERC165.sol/ERC165.json b/packages/onft-evm/out/ERC165.sol/ERC165.json deleted file mode 100644 index f4f2da817..000000000 --- a/packages/onft-evm/out/ERC165.sol/ERC165.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":"ERC165"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":126} \ No newline at end of file diff --git a/packages/onft-evm/out/ERC721.sol/ERC721.json b/packages/onft-evm/out/ERC721.sol/ERC721.json deleted file mode 100644 index e97eb4c55..000000000 --- a/packages/onft-evm/out/ERC721.sol/ERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"constructor":{"details":"Initializes the contract by setting a `name` and a `symbol` to the token collection."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":"ERC721"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":114} \ No newline at end of file diff --git a/packages/onft-evm/out/ERC721A.sol/ERC721A.json b/packages/onft-evm/out/ERC721A.sol/ERC721A.json deleted file mode 100644 index ee001e1d1..000000000 --- a/packages/onft-evm/out/ERC721A.sol/ERC721A.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ApprovalCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"ApprovalQueryForNonexistentToken","inputs":[]},{"type":"error","name":"BalanceQueryForZeroAddress","inputs":[]},{"type":"error","name":"MintERC2309QuantityExceedsLimit","inputs":[]},{"type":"error","name":"MintToZeroAddress","inputs":[]},{"type":"error","name":"MintZeroQuantity","inputs":[]},{"type":"error","name":"NotCompatibleWithSpotMints","inputs":[]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","inputs":[]},{"type":"error","name":"SequentialMintExceedsLimit","inputs":[]},{"type":"error","name":"SequentialUpToTooSmall","inputs":[]},{"type":"error","name":"SpotMintTokenIdTooSmall","inputs":[]},{"type":"error","name":"TokenAlreadyExists","inputs":[]},{"type":"error","name":"TransferCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"TransferFromIncorrectOwner","inputs":[]},{"type":"error","name":"TransferToNonERC721ReceiverImplementer","inputs":[]},{"type":"error","name":"TransferToZeroAddress","inputs":[]},{"type":"error","name":"URIQueryForNonexistentToken","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506040516200107d3803806200107d833981016040819052620000349162000126565b600262000042838262000221565b50600362000051828262000221565b50506000805550620002ed565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008657600080fd5b81516001600160401b0380821115620000a357620000a36200005e565b604051601f8301601f19908116603f01168101908282118183101715620000ce57620000ce6200005e565b8160405283815260209250866020858801011115620000ec57600080fd5b600091505b83821015620001105785820183015181830184015290820190620000f1565b6000602085830101528094505050505092915050565b600080604083850312156200013a57600080fd5b82516001600160401b03808211156200015257600080fd5b620001608683870162000074565b935060208501519150808211156200017757600080fd5b50620001868582860162000074565b9150509250929050565b600181811c90821680620001a557607f821691505b602082108103620001c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021c576000816000526020600020601f850160051c81016020861015620001f75750805b601f850160051c820191505b81811015620002185782815560010162000203565b5050505b505050565b81516001600160401b038111156200023d576200023d6200005e565b62000255816200024e845462000190565b84620001cc565b602080601f8311600181146200028d5760008415620002745750858301515b600019600386901b1c1916600185901b17855562000218565b600085815260208120601f198616915b82811015620002be578886015182559484019460019091019084016200029d565b5085821015620002dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610d8080620002fd6000396000f3fe6080604052600436106100dd5760003560e01c80636352211e1161007f578063a22cb46511610059578063a22cb46514610224578063b88d4fde14610244578063c87b56dd14610257578063e985e9c51461027757600080fd5b80636352211e146101cf57806370a08231146101ef57806395d89b411461020f57600080fd5b8063095ea7b3116100bb578063095ea7b31461017157806318160ddd1461018657806323b872dd146101a957806342842e0e146101bc57600080fd5b806301ffc9a7146100e257806306fdde0314610117578063081812fc14610139575b600080fd5b3480156100ee57600080fd5b506101026100fd3660046109d0565b6102c0565b60405190151581526020015b60405180910390f35b34801561012357600080fd5b5061012c610312565b60405161010e9190610a3d565b34801561014557600080fd5b50610159610154366004610a50565b6103a4565b6040516001600160a01b03909116815260200161010e565b61018461017f366004610a80565b6103df565b005b34801561019257600080fd5b50600154600054035b60405190815260200161010e565b6101846101b7366004610aaa565b6103ef565b6101846101ca366004610aaa565b610554565b3480156101db57600080fd5b506101596101ea366004610a50565b610574565b3480156101fb57600080fd5b5061019b61020a366004610ae6565b61057f565b34801561021b57600080fd5b5061012c6105c5565b34801561023057600080fd5b5061018461023f366004610b01565b6105d4565b610184610252366004610b53565b610640565b34801561026357600080fd5b5061012c610272366004610a50565b610681565b34801561028357600080fd5b50610102610292366004610c2f565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b60006301ffc9a760e01b6001600160e01b0319831614806102f157506380ac58cd60e01b6001600160e01b03198316145b8061030c5750635b5e139f60e01b6001600160e01b03198316145b92915050565b60606002805461032190610c62565b80601f016020809104026020016040519081016040528092919081815260200182805461034d90610c62565b801561039a5780601f1061036f5761010080835404028352916020019161039a565b820191906000526020600020905b81548152906001019060200180831161037d57829003601f168201915b5050505050905090565b60006103af82610709565b6103c3576103c36333d1c03960e21b61074e565b506000908152600660205260409020546001600160a01b031690565b6103eb82826001610758565b5050565b60006103fa826107fb565b6001600160a01b0394851694909150811684146104205761042062a1148160e81b61074e565b60008281526006602052604090208054338082146001600160a01b03881690911417610464576104508633610292565b61046457610464632ce44b5f60e11b61074e565b801561046f57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003610501576001840160008181526004602052604081205490036104ff5760005481146104ff5760008181526004602052604090208490555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a48060000361054b5761054b633a954ecd60e21b61074e565b50505050505050565b61056f83838360405180602001604052806000815250610640565b505050565b600061030c826107fb565b60006001600160a01b03821661059f5761059f6323d3ad8160e21b61074e565b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b60606003805461032190610c62565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61064b8484846103ef565b6001600160a01b0383163b1561067b5761066784848484610891565b61067b5761067b6368d2bf6b60e11b61074e565b50505050565b606061068c82610709565b6106a0576106a0630a14c4b560e41b61074e565b60006106b760408051602081019091526000815290565b905080516000036106d75760405180602001604052806000815250610702565b806106e184610973565b6040516020016106f2929190610c9c565b6040516020818303038152906040525b9392505050565b600080548210156107495760005b506000828152600460205260408120549081900361073f5761073883610ccb565b9250610717565b600160e01b161590505b919050565b8060005260046000fd5b600061076383610574565b905081801561077b5750336001600160a01b03821614155b1561079e5761078a8133610292565b61079e5761079e6367d9dca160e11b61074e565b60008381526006602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b6000818152600460205260409020548060000361086e57600054821061082b5761082b636f96cda160e11b61074e565b5b5060001901600081815260046020526040902054801561082c57600160e01b811660000361085957919050565b610869636f96cda160e11b61074e565b61082c565b600160e01b811660000361088157919050565b610749636f96cda160e11b61074e565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906108c6903390899088908890600401610cf0565b6020604051808303816000875af1925050508015610901575060408051601f3d908101601f191682019092526108fe91810190610d2d565b60015b610956573d80801561092f576040519150601f19603f3d011682016040523d82523d6000602084013e610934565b606091505b50805160000361094e5761094e6368d2bf6b60e11b61074e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a90048061098d5750819003601f19909101908152919050565b6001600160e01b0319811681146109cd57600080fd5b50565b6000602082840312156109e257600080fd5b8135610702816109b7565b60005b83811015610a085781810151838201526020016109f0565b50506000910152565b60008151808452610a298160208601602086016109ed565b601f01601f19169290920160200192915050565b6020815260006107026020830184610a11565b600060208284031215610a6257600080fd5b5035919050565b80356001600160a01b038116811461074957600080fd5b60008060408385031215610a9357600080fd5b610a9c83610a69565b946020939093013593505050565b600080600060608486031215610abf57600080fd5b610ac884610a69565b9250610ad660208501610a69565b9150604084013590509250925092565b600060208284031215610af857600080fd5b61070282610a69565b60008060408385031215610b1457600080fd5b610b1d83610a69565b915060208301358015158114610b3257600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610b6957600080fd5b610b7285610a69565b9350610b8060208601610a69565b925060408501359150606085013567ffffffffffffffff80821115610ba457600080fd5b818701915087601f830112610bb857600080fd5b813581811115610bca57610bca610b3d565b604051601f8201601f19908116603f01168101908382118183101715610bf257610bf2610b3d565b816040528281528a6020848701011115610c0b57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610c4257600080fd5b610c4b83610a69565b9150610c5960208401610a69565b90509250929050565b600181811c90821680610c7657607f821691505b602082108103610c9657634e487b7160e01b600052602260045260246000fd5b50919050565b60008351610cae8184602088016109ed565b835190830190610cc28183602088016109ed565b01949350505050565b600081610ce857634e487b7160e01b600052601160045260246000fd5b506000190190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610d2390830184610a11565b9695505050505050565b600060208284031215610d3f57600080fd5b8151610702816109b756fea26469706673582212206a0cee7ba2bfc3467e27986f51dd535ecee30d3a14923d3881f3fec8d3e038be64736f6c63430008160033","sourceMap":"1053:48812:132:-:0;;;5261:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5327:5;:13;5335:5;5327;:13;:::i;:::-;-1:-1:-1;5350:7:132;:17;5360:7;5350;:17;:::i;:::-;-1:-1:-1;;6022:7:132;5377:31;;-1:-1:-1;1053:48812:132;;14:127:145;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:145;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:145;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:562::-;1094:6;1102;1155:2;1143:9;1134:7;1130:23;1126:32;1123:52;;;1171:1;1168;1161:12;1123:52;1198:16;;-1:-1:-1;;;;;1263:14:145;;;1260:34;;;1290:1;1287;1280:12;1260:34;1313:61;1366:7;1357:6;1346:9;1342:22;1313:61;:::i;:::-;1303:71;;1420:2;1409:9;1405:18;1399:25;1383:41;;1449:2;1439:8;1436:16;1433:36;;;1465:1;1462;1455:12;1433:36;;1488:63;1543:7;1532:8;1521:9;1517:24;1488:63;:::i;:::-;1478:73;;;995:562;;;;;:::o;1562:380::-;1641:1;1637:12;;;;1684;;;1705:61;;1759:4;1751:6;1747:17;1737:27;;1705:61;1812:2;1804:6;1801:14;1781:18;1778:38;1775:161;;1858:10;1853:3;1849:20;1846:1;1839:31;1893:4;1890:1;1883:15;1921:4;1918:1;1911:15;1775:161;;1562:380;;;:::o;2073:543::-;2175:2;2170:3;2167:11;2164:446;;;2211:1;2235:5;2232:1;2225:16;2279:4;2276:1;2266:18;2349:2;2337:10;2333:19;2330:1;2326:27;2320:4;2316:38;2385:4;2373:10;2370:20;2367:47;;;-1:-1:-1;2408:4:145;2367:47;2463:2;2458:3;2454:12;2451:1;2447:20;2441:4;2437:31;2427:41;;2518:82;2536:2;2529:5;2526:13;2518:82;;;2581:17;;;2562:1;2551:13;2518:82;;;2522:3;;;2164:446;2073:543;;;:::o;2792:1345::-;2912:10;;-1:-1:-1;;;;;2934:30:145;;2931:56;;;2967:18;;:::i;:::-;2996:97;3086:6;3046:38;3078:4;3072:11;3046:38;:::i;:::-;3040:4;2996:97;:::i;:::-;3148:4;;3205:2;3194:14;;3222:1;3217:663;;;;3924:1;3941:6;3938:89;;;-1:-1:-1;3993:19:145;;;3987:26;3938:89;-1:-1:-1;;2749:1:145;2745:11;;;2741:24;2737:29;2727:40;2773:1;2769:11;;;2724:57;4040:81;;3187:944;;3217:663;2020:1;2013:14;;;2057:4;2044:18;;-1:-1:-1;;3253:20:145;;;3371:236;3385:7;3382:1;3379:14;3371:236;;;3474:19;;;3468:26;3453:42;;3566:27;;;;3534:1;3522:14;;;;3401:19;;3371:236;;;3375:3;3635:6;3626:7;3623:19;3620:201;;;3696:19;;;3690:26;-1:-1:-1;;3779:1:145;3775:14;;;3791:3;3771:24;3767:37;3763:42;3748:58;3733:74;;3620:201;-1:-1:-1;;;;;3867:1:145;3851:14;;;3847:22;3834:36;;-1:-1:-1;2792:1345:145:o;:::-;1053:48812:132;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100dd5760003560e01c80636352211e1161007f578063a22cb46511610059578063a22cb46514610224578063b88d4fde14610244578063c87b56dd14610257578063e985e9c51461027757600080fd5b80636352211e146101cf57806370a08231146101ef57806395d89b411461020f57600080fd5b8063095ea7b3116100bb578063095ea7b31461017157806318160ddd1461018657806323b872dd146101a957806342842e0e146101bc57600080fd5b806301ffc9a7146100e257806306fdde0314610117578063081812fc14610139575b600080fd5b3480156100ee57600080fd5b506101026100fd3660046109d0565b6102c0565b60405190151581526020015b60405180910390f35b34801561012357600080fd5b5061012c610312565b60405161010e9190610a3d565b34801561014557600080fd5b50610159610154366004610a50565b6103a4565b6040516001600160a01b03909116815260200161010e565b61018461017f366004610a80565b6103df565b005b34801561019257600080fd5b50600154600054035b60405190815260200161010e565b6101846101b7366004610aaa565b6103ef565b6101846101ca366004610aaa565b610554565b3480156101db57600080fd5b506101596101ea366004610a50565b610574565b3480156101fb57600080fd5b5061019b61020a366004610ae6565b61057f565b34801561021b57600080fd5b5061012c6105c5565b34801561023057600080fd5b5061018461023f366004610b01565b6105d4565b610184610252366004610b53565b610640565b34801561026357600080fd5b5061012c610272366004610a50565b610681565b34801561028357600080fd5b50610102610292366004610c2f565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b60006301ffc9a760e01b6001600160e01b0319831614806102f157506380ac58cd60e01b6001600160e01b03198316145b8061030c5750635b5e139f60e01b6001600160e01b03198316145b92915050565b60606002805461032190610c62565b80601f016020809104026020016040519081016040528092919081815260200182805461034d90610c62565b801561039a5780601f1061036f5761010080835404028352916020019161039a565b820191906000526020600020905b81548152906001019060200180831161037d57829003601f168201915b5050505050905090565b60006103af82610709565b6103c3576103c36333d1c03960e21b61074e565b506000908152600660205260409020546001600160a01b031690565b6103eb82826001610758565b5050565b60006103fa826107fb565b6001600160a01b0394851694909150811684146104205761042062a1148160e81b61074e565b60008281526006602052604090208054338082146001600160a01b03881690911417610464576104508633610292565b61046457610464632ce44b5f60e11b61074e565b801561046f57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003610501576001840160008181526004602052604081205490036104ff5760005481146104ff5760008181526004602052604090208490555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a48060000361054b5761054b633a954ecd60e21b61074e565b50505050505050565b61056f83838360405180602001604052806000815250610640565b505050565b600061030c826107fb565b60006001600160a01b03821661059f5761059f6323d3ad8160e21b61074e565b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b60606003805461032190610c62565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61064b8484846103ef565b6001600160a01b0383163b1561067b5761066784848484610891565b61067b5761067b6368d2bf6b60e11b61074e565b50505050565b606061068c82610709565b6106a0576106a0630a14c4b560e41b61074e565b60006106b760408051602081019091526000815290565b905080516000036106d75760405180602001604052806000815250610702565b806106e184610973565b6040516020016106f2929190610c9c565b6040516020818303038152906040525b9392505050565b600080548210156107495760005b506000828152600460205260408120549081900361073f5761073883610ccb565b9250610717565b600160e01b161590505b919050565b8060005260046000fd5b600061076383610574565b905081801561077b5750336001600160a01b03821614155b1561079e5761078a8133610292565b61079e5761079e6367d9dca160e11b61074e565b60008381526006602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b6000818152600460205260409020548060000361086e57600054821061082b5761082b636f96cda160e11b61074e565b5b5060001901600081815260046020526040902054801561082c57600160e01b811660000361085957919050565b610869636f96cda160e11b61074e565b61082c565b600160e01b811660000361088157919050565b610749636f96cda160e11b61074e565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906108c6903390899088908890600401610cf0565b6020604051808303816000875af1925050508015610901575060408051601f3d908101601f191682019092526108fe91810190610d2d565b60015b610956573d80801561092f576040519150601f19603f3d011682016040523d82523d6000602084013e610934565b606091505b50805160000361094e5761094e6368d2bf6b60e11b61074e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a90048061098d5750819003601f19909101908152919050565b6001600160e01b0319811681146109cd57600080fd5b50565b6000602082840312156109e257600080fd5b8135610702816109b7565b60005b83811015610a085781810151838201526020016109f0565b50506000910152565b60008151808452610a298160208601602086016109ed565b601f01601f19169290920160200192915050565b6020815260006107026020830184610a11565b600060208284031215610a6257600080fd5b5035919050565b80356001600160a01b038116811461074957600080fd5b60008060408385031215610a9357600080fd5b610a9c83610a69565b946020939093013593505050565b600080600060608486031215610abf57600080fd5b610ac884610a69565b9250610ad660208501610a69565b9150604084013590509250925092565b600060208284031215610af857600080fd5b61070282610a69565b60008060408385031215610b1457600080fd5b610b1d83610a69565b915060208301358015158114610b3257600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610b6957600080fd5b610b7285610a69565b9350610b8060208601610a69565b925060408501359150606085013567ffffffffffffffff80821115610ba457600080fd5b818701915087601f830112610bb857600080fd5b813581811115610bca57610bca610b3d565b604051601f8201601f19908116603f01168101908382118183101715610bf257610bf2610b3d565b816040528281528a6020848701011115610c0b57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610c4257600080fd5b610c4b83610a69565b9150610c5960208401610a69565b90509250929050565b600181811c90821680610c7657607f821691505b602082108103610c9657634e487b7160e01b600052602260045260246000fd5b50919050565b60008351610cae8184602088016109ed565b835190830190610cc28183602088016109ed565b01949350505050565b600081610ce857634e487b7160e01b600052601160045260246000fd5b506000190190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610d2390830184610a11565b9695505050505050565b600060208284031215610d3f57600080fd5b8151610702816109b756fea26469706673582212206a0cee7ba2bfc3467e27986f51dd535ecee30d3a14923d3881f3fec8d3e038be64736f6c63430008160033","sourceMap":"1053:48812:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10689:630;;;;;;;;;;-1:-1:-1;10689:630:132;;;;;:::i;:::-;;:::i;:::-;;;565:14:145;;558:22;540:41;;528:2;513:18;10689:630:132;;;;;;;;11573:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18636:223::-;;;;;;;;;;-1:-1:-1;18636:223:132;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:145;;;1679:51;;1667:2;1652:18;18636:223:132;1533:203:145;18364:122:132;;;;;;:::i;:::-;;:::i;:::-;;6890:564;;;;;;;;;;-1:-1:-1;7328:12:132;;6951:14;7312:13;:28;6890:564;;;2324:25:145;;;2312:2;2297:18;6890:564:132;2178:177:145;22796:3447:132;;;;;;:::i;:::-;;:::i;26334:187::-;;;;;;:::i;:::-;;:::i;12934:150::-;;;;;;;;;;-1:-1:-1;12934:150:132;;;;;:::i;:::-;;:::i;8570:239::-;;;;;;;;;;-1:-1:-1;8570:239:132;;;;;:::i;:::-;;:::i;11742:102::-;;;;;;;;;;;;;:::i;19186:231::-;;;;;;;;;;-1:-1:-1;19186:231:132;;;;;:::i;:::-;;:::i;27102:405::-;;;;;;:::i;:::-;;:::i;11945:322::-;;;;;;;;;;-1:-1:-1;11945:322:132;;;;;:::i;:::-;;:::i;19567:162::-;;;;;;;;;;-1:-1:-1;19567:162:132;;;;;:::i;:::-;-1:-1:-1;;;;;19687:25:132;;;19664:4;19687:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;19567:162;10689:630;10774:4;-1:-1:-1;;;;;;;;;11092:25:132;;;;:101;;-1:-1:-1;;;;;;;;;;11168:25:132;;;11092:101;:177;;;-1:-1:-1;;;;;;;;;;11244:25:132;;;11092:177;11073:196;10689:630;-1:-1:-1;;10689:630:132:o;11573:98::-;11627:13;11659:5;11652:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11573:98;:::o;18636:223::-;18712:7;18736:16;18744:7;18736;:16::i;:::-;18731:73;;18754:50;-1:-1:-1;;;18754:7:132;:50::i;:::-;-1:-1:-1;18822:24:132;;;;:15;:24;;;;;:30;-1:-1:-1;;;;;18822:30:132;;18636:223::o;18364:122::-;18452:27;18461:2;18465:7;18474:4;18452:8;:27::i;:::-;18364:122;;:::o;22796:3447::-;22933:27;22963;22982:7;22963:18;:27::i;:::-;-1:-1:-1;;;;;23115:22:132;;;;22933:57;;-1:-1:-1;23173:45:132;;;;23169:95;;23220:44;-1:-1:-1;;;23220:7:132;:44::i;:::-;23276:27;21929:24;;;:15;:24;;;;;22153:26;;47819:10;21566:30;;;-1:-1:-1;;;;;21263:28:132;;21544:20;;;21541:56;23459:188;;23551:43;23568:4;47819:10;19567:162;:::i;23551:43::-;23546:101;;23596:51;-1:-1:-1;;;23596:7:132;:51::i;:::-;23790:15;23787:157;;;23928:1;23907:19;23900:30;23787:157;-1:-1:-1;;;;;24316:24:132;;;;;;;:18;:24;;;;;;24314:26;;-1:-1:-1;;24314:26:132;;;24384:22;;;;;;;;;24382:24;;-1:-1:-1;24382:24:132;;;17492:11;17467:23;17463:41;17450:63;-1:-1:-1;;;17450:63:132;24670:26;;;;:17;:26;;;;;:172;;;;-1:-1:-1;;;24959:47:132;;:52;;24955:617;;25063:1;25053:11;;25031:19;25184:30;;;:17;:30;;;;;;:35;;25180:378;;25320:13;;25305:11;:28;25301:239;;25465:30;;;;:17;:30;;;;;:52;;;25301:239;25013:559;24955:617;-1:-1:-1;;;;;25700:20:132;;26071:7;25700:20;26003:4;25946:25;25681:16;;25814:292;26129:8;26141:1;26129:13;26125:58;;26144:39;-1:-1:-1;;;26144:7:132;:39::i;:::-;22923:3320;;;;22796:3447;;;:::o;26334:187::-;26475:39;26492:4;26498:2;26502:7;26475:39;;;;;;;;;;;;:16;:39::i;:::-;26334:187;;;:::o;12934:150::-;13006:7;13048:27;13067:7;13048:18;:27::i;8570:239::-;8642:7;-1:-1:-1;;;;;8665:19:132;;8661:69;;8686:44;-1:-1:-1;;;8686:7:132;:44::i;:::-;-1:-1:-1;;;;;;8747:25:132;;;;;:18;:25;;;;;;1518:13;8747:55;;8570:239::o;11742:102::-;11798:13;11830:7;11823:14;;;;;:::i;19186:231::-;47819:10;19280:39;;;;:18;:39;;;;;;;;-1:-1:-1;;;;;19280:49:132;;;;;;;;;;;;:60;;-1:-1:-1;;19280:60:132;;;;;;;;;;19355:55;;540:41:145;;;19280:49:132;;47819:10;19355:55;;513:18:145;19355:55:132;;;;;;;19186:231;;:::o;27102:405::-;27271:31;27284:4;27290:2;27294:7;27271:12;:31::i;:::-;-1:-1:-1;;;;;27316:14:132;;;:19;27312:189;;27354:56;27385:4;27391:2;27395:7;27404:5;27354:30;:56::i;:::-;27349:152;;27430:56;-1:-1:-1;;;27430:7:132;:56::i;:::-;27102:405;;;;:::o;11945:322::-;12018:13;12048:16;12056:7;12048;:16::i;:::-;12043:68;;12066:45;-1:-1:-1;;;12066:7:132;:45::i;:::-;12122:21;12146:10;12588:9;;;;;;;;;-1:-1:-1;12588:9:132;;;12512:92;12146:10;12122:34;;12179:7;12173:21;12198:1;12173:26;:87;;;;;;;;;;;;;;;;;12226:7;12235:18;12245:7;12235:9;:18::i;:::-;12209:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;12173:87;12166:94;11945:322;-1:-1:-1;;;11945:322:132:o;19978:465::-;20043:11;20231:13;;20221:7;:23;20217:210;;;20264:14;20296:60;-1:-1:-1;20313:26:132;;;;:17;:26;;;;;;;20303:42;;;20296:60;;20347:9;;;:::i;:::-;;;20296:60;;;-1:-1:-1;;;20383:24:132;:29;;-1:-1:-1;20217:210:132;19978:465;;;:::o;49703:160::-;49802:13;49796:4;49789:27;49842:4;49836;49829:18;41333:460;41457:13;41473:16;41481:7;41473;:16::i;:::-;41457:32;;41504:13;:45;;;;-1:-1:-1;47819:10:132;-1:-1:-1;;;;;41521:28:132;;;;41504:45;41500:198;;;41568:44;41585:5;47819:10;19567:162;:::i;41568:44::-;41563:135;;41632:51;-1:-1:-1;;;41632:7:132;:51::i;:::-;41708:24;;;;:15;:24;;;;;;:35;;-1:-1:-1;;;;;;41708:35:132;-1:-1:-1;;;;;41708:35:132;;;;;;;;;41758:28;;41708:24;;41758:28;;;;;;;41447:346;41333:460;;;:::o;14380:2173::-;14528:26;;;;:17;:26;;;;;;14847:6;14857:1;14847:11;14843:1270;;14893:13;;14882:7;:24;14878:77;;14908:47;-1:-1:-1;;;14908:7:132;:47::i;:::-;15502:597;-1:-1:-1;;;15596:9:132;15578:28;;;;:17;:28;;;;;;15650:25;;15502:597;15650:25;-1:-1:-1;;;15701:6:132;:24;15729:1;15701:29;15697:48;;14380:2173;;;:::o;15697:48::-;16033:47;-1:-1:-1;;;16033:7:132;:47::i;:::-;15502:597;;14843:1270;-1:-1:-1;;;16435:6:132;:24;16463:1;16435:29;16431:48;;14380:2173;;;:::o;16431:48::-;16499:47;-1:-1:-1;;;16499:7:132;:47::i;29533:673::-;29711:88;;-1:-1:-1;;;29711:88:132;;29691:4;;-1:-1:-1;;;;;29711:45:132;;;;;:88;;47819:10;;29778:4;;29784:7;;29793:5;;29711:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29711:88:132;;;;;;;;-1:-1:-1;;29711:88:132;;;;;;;;;;;;:::i;:::-;;;29707:493;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29989:6;:13;30006:1;29989:18;29985:113;;30027:56;-1:-1:-1;;;30027:7:132;:56::i;:::-;30168:6;30162:13;30153:6;30149:2;30145:15;30138:38;29707:493;-1:-1:-1;;;;;;29867:64:132;-1:-1:-1;;;29867:64:132;;-1:-1:-1;29533:673:132;;;;;;:::o;47933:1708::-;47998:17;48426:4;48419;48413:11;48409:22;48516:1;48510:4;48503:15;48589:4;48586:1;48582:12;48575:19;;;48669:1;48664:3;48657:14;48770:3;49004:5;48986:419;49051:1;49046:3;49042:11;49035:18;;49219:2;49213:4;49209:13;49205:2;49201:22;49196:3;49188:36;49311:2;49301:13;;49366:25;48986:419;49366:25;-1:-1:-1;49433:13:132;;;-1:-1:-1;;49546:14:132;;;49606:19;;;49546:14;47933:1708;-1:-1:-1;47933:1708:132:o;14:131:145:-;-1:-1:-1;;;;;;88:32:145;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:145;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:145;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:145:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:145;;1348:180;-1:-1:-1;1348:180:145:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:145;;1848:42;;1838:70;;1904:1;1901;1894:12;1919:254;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:145:o;2360:328::-;2437:6;2445;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2545:29;2564:9;2545:29;:::i;:::-;2535:39;;2593:38;2627:2;2616:9;2612:18;2593:38;:::i;:::-;2583:48;;2678:2;2667:9;2663:18;2650:32;2640:42;;2360:328;;;;;:::o;2693:186::-;2752:6;2805:2;2793:9;2784:7;2780:23;2776:32;2773:52;;;2821:1;2818;2811:12;2773:52;2844:29;2863:9;2844:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:1138;3463:6;3471;3479;3487;3540:3;3528:9;3519:7;3515:23;3511:33;3508:53;;;3557:1;3554;3547:12;3508:53;3580:29;3599:9;3580:29;:::i;:::-;3570:39;;3628:38;3662:2;3651:9;3647:18;3628:38;:::i;:::-;3618:48;;3713:2;3702:9;3698:18;3685:32;3675:42;;3768:2;3757:9;3753:18;3740:32;3791:18;3832:2;3824:6;3821:14;3818:34;;;3848:1;3845;3838:12;3818:34;3886:6;3875:9;3871:22;3861:32;;3931:7;3924:4;3920:2;3916:13;3912:27;3902:55;;3953:1;3950;3943:12;3902:55;3989:2;3976:16;4011:2;4007;4004:10;4001:36;;;4017:18;;:::i;:::-;4092:2;4086:9;4060:2;4146:13;;-1:-1:-1;;4142:22:145;;;4166:2;4138:31;4134:40;4122:53;;;4190:18;;;4210:22;;;4187:46;4184:72;;;4236:18;;:::i;:::-;4276:10;4272:2;4265:22;4311:2;4303:6;4296:18;4351:7;4346:2;4341;4337;4333:11;4329:20;4326:33;4323:53;;;4372:1;4369;4362:12;4323:53;4428:2;4423;4419;4415:11;4410:2;4402:6;4398:15;4385:46;4473:1;4468:2;4463;4455:6;4451:15;4447:24;4440:35;4494:6;4484:16;;;;;;;3368:1138;;;;;;;:::o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:380::-;4855:1;4851:12;;;;4898;;;4919:61;;4973:4;4965:6;4961:17;4951:27;;4919:61;5026:2;5018:6;5015:14;4995:18;4992:38;4989:161;;5072:10;5067:3;5063:20;5060:1;5053:31;5107:4;5104:1;5097:15;5135:4;5132:1;5125:15;4989:161;;4776:380;;;:::o;5161:496::-;5340:3;5378:6;5372:13;5394:66;5453:6;5448:3;5441:4;5433:6;5429:17;5394:66;:::i;:::-;5523:13;;5482:16;;;;5545:70;5523:13;5482:16;5592:4;5580:17;;5545:70;:::i;:::-;5631:20;;5161:496;-1:-1:-1;;;;5161:496:145:o;5662:233::-;5701:3;5729:5;5719:136;;5777:10;5772:3;5768:20;5765:1;5758:31;5812:4;5809:1;5802:15;5840:4;5837:1;5830:15;5719:136;-1:-1:-1;;;5871:18:145;;5662:233::o;5900:489::-;-1:-1:-1;;;;;6169:15:145;;;6151:34;;6221:15;;6216:2;6201:18;;6194:43;6268:2;6253:18;;6246:34;;;6316:3;6311:2;6296:18;;6289:31;;;6094:4;;6337:46;;6363:19;;6355:6;6337:46;:::i;:::-;6329:54;5900:489;-1:-1:-1;;;;;;5900:489:145:o;6394:249::-;6463:6;6516:2;6504:9;6495:7;6491:23;6487:32;6484:52;;;6532:1;6529;6522:12;6484:52;6564:9;6558:16;6583:30;6607:5;6583:30;:::i","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCompatibleWithSpotMints\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SequentialMintExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SequentialUpToTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SpotMintTokenIdTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the [ERC721](https://eips.ethereum.org/EIPS/eip-721) Non-Fungible Token Standard, including the Metadata extension. Optimized for lower gas during batch mints. Token IDs are minted in sequential order (e.g. 0, 1, 2, 3, ...) starting from `_startTokenId()`. The `_sequentialUpTo()` function can be overriden to enable spot mints (i.e. non-consecutive mints) for `tokenId`s greater than `_sequentialUpTo()`. Assumptions: - An owner cannot have more than 2**64 - 1 (max value of uint64) of supply. - The maximum token ID cannot exceed 2**256 - 1 (max value of uint256).\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in `owner`'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}.\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, tokenId, '')`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) to learn more about how these ids are created. This function call must use less than 30000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"totalSupply()\":{\"details\":\"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC721A\",\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"NotCompatibleWithSpotMints()\":[{\"notice\":\"The feature is not compatible with spot mints.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"SequentialMintExceedsLimit()\":[{\"notice\":\"The `tokenId` of a sequential mint exceeds `_sequentialUpTo()`.\"}],\"SequentialUpToTooSmall()\":[{\"notice\":\"`_sequentialUpTo()` must be greater than `_startTokenId()`.\"}],\"SpotMintTokenIdTooSmall()\":[{\"notice\":\"Spot minting requires a `tokenId` greater than `_sequentialUpTo()`.\"}],\"TokenAlreadyExists()\":[{\"notice\":\"Cannot mint over a token that already exists.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/erc721a/contracts/ERC721A.sol\":\"ERC721A\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/erc721a/contracts/ERC721A.sol\":{\"keccak256\":\"0xede758d13ccce2f54a4bcd16816456109b290759d43988205539cf632f4c8a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b63befef8f79ec44ebe5db096767cab6772485c2b01a431759e7fcdcf7fd0bb1\",\"dweb:/ipfs/QmV45KT2ai7PnVRhpJKjB29A15VGnhsvxxBFrrUSwhe2fr\"]},\"node_modules/erc721a/contracts/IERC721A.sol\":{\"keccak256\":\"0xc9a2a00612e0d121aef3f716877ada17177d5b2d5a4c780d22cade46da2ff294\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1435542fc553d2fb9181191f126a1f97e2cc5570c2459c862f54ba415a22bf02\",\"dweb:/ipfs/QmaQJ14ajkHgymY5TtoxHnpiN5u4TpwXCqKr2B6DM8SHkn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ApprovalCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"ApprovalQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"BalanceQueryForZeroAddress"},{"inputs":[],"type":"error","name":"MintERC2309QuantityExceedsLimit"},{"inputs":[],"type":"error","name":"MintToZeroAddress"},{"inputs":[],"type":"error","name":"MintZeroQuantity"},{"inputs":[],"type":"error","name":"NotCompatibleWithSpotMints"},{"inputs":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"inputs":[],"type":"error","name":"SequentialMintExceedsLimit"},{"inputs":[],"type":"error","name":"SequentialUpToTooSmall"},{"inputs":[],"type":"error","name":"SpotMintTokenIdTooSmall"},{"inputs":[],"type":"error","name":"TokenAlreadyExists"},{"inputs":[],"type":"error","name":"TransferCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"TransferFromIncorrectOwner"},{"inputs":[],"type":"error","name":"TransferToNonERC721ReceiverImplementer"},{"inputs":[],"type":"error","name":"TransferToZeroAddress"},{"inputs":[],"type":"error","name":"URIQueryForNonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"toTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"ConsecutiveTransfer","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator."},"balanceOf(address)":{"details":"Returns the number of tokens in `owner`'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}."},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Equivalent to `safeTransferFrom(from, to, tokenId, '')`."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) to learn more about how these ids are created. This function call must use less than 30000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"totalSupply()":{"details":"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/erc721a/contracts/ERC721A.sol":"ERC721A"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/erc721a/contracts/ERC721A.sol":{"keccak256":"0xede758d13ccce2f54a4bcd16816456109b290759d43988205539cf632f4c8a55","urls":["bzz-raw://b63befef8f79ec44ebe5db096767cab6772485c2b01a431759e7fcdcf7fd0bb1","dweb:/ipfs/QmV45KT2ai7PnVRhpJKjB29A15VGnhsvxxBFrrUSwhe2fr"],"license":"MIT"},"node_modules/erc721a/contracts/IERC721A.sol":{"keccak256":"0xc9a2a00612e0d121aef3f716877ada17177d5b2d5a4c780d22cade46da2ff294","urls":["bzz-raw://1435542fc553d2fb9181191f126a1f97e2cc5570c2459c862f54ba415a22bf02","dweb:/ipfs/QmaQJ14ajkHgymY5TtoxHnpiN5u4TpwXCqKr2B6DM8SHkn"],"license":"MIT"}},"version":1},"id":132} \ No newline at end of file diff --git a/packages/onft-evm/out/ERC721A.sol/ERC721A__IERC721Receiver.json b/packages/onft-evm/out/ERC721A.sol/ERC721A__IERC721Receiver.json deleted file mode 100644 index 88b08084b..000000000 --- a/packages/onft-evm/out/ERC721A.sol/ERC721A__IERC721Receiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of ERC721 token receiver.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/erc721a/contracts/ERC721A.sol\":\"ERC721A__IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/erc721a/contracts/ERC721A.sol\":{\"keccak256\":\"0xede758d13ccce2f54a4bcd16816456109b290759d43988205539cf632f4c8a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b63befef8f79ec44ebe5db096767cab6772485c2b01a431759e7fcdcf7fd0bb1\",\"dweb:/ipfs/QmV45KT2ai7PnVRhpJKjB29A15VGnhsvxxBFrrUSwhe2fr\"]},\"node_modules/erc721a/contracts/IERC721A.sol\":{\"keccak256\":\"0xc9a2a00612e0d121aef3f716877ada17177d5b2d5a4c780d22cade46da2ff294\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1435542fc553d2fb9181191f126a1f97e2cc5570c2459c862f54ba415a22bf02\",\"dweb:/ipfs/QmaQJ14ajkHgymY5TtoxHnpiN5u4TpwXCqKr2B6DM8SHkn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/erc721a/contracts/ERC721A.sol":"ERC721A__IERC721Receiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/erc721a/contracts/ERC721A.sol":{"keccak256":"0xede758d13ccce2f54a4bcd16816456109b290759d43988205539cf632f4c8a55","urls":["bzz-raw://b63befef8f79ec44ebe5db096767cab6772485c2b01a431759e7fcdcf7fd0bb1","dweb:/ipfs/QmV45KT2ai7PnVRhpJKjB29A15VGnhsvxxBFrrUSwhe2fr"],"license":"MIT"},"node_modules/erc721a/contracts/IERC721A.sol":{"keccak256":"0xc9a2a00612e0d121aef3f716877ada17177d5b2d5a4c780d22cade46da2ff294","urls":["bzz-raw://1435542fc553d2fb9181191f126a1f97e2cc5570c2459c862f54ba415a22bf02","dweb:/ipfs/QmaQJ14ajkHgymY5TtoxHnpiN5u4TpwXCqKr2B6DM8SHkn"],"license":"MIT"}},"version":1},"id":132} \ No newline at end of file diff --git a/packages/onft-evm/out/ERC721Mock.sol/ERC721Mock.json b/packages/onft-evm/out/ERC721Mock.sol/ERC721Mock.json deleted file mode 100644 index b12251465..000000000 --- a/packages/onft-evm/out/ERC721Mock.sol/ERC721Mock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506040516200127738038062001277833981016040819052620000349162000126565b8181600062000044838262000221565b50600162000053828262000221565b5050505050620002ed565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008657600080fd5b81516001600160401b0380821115620000a357620000a36200005e565b604051601f8301601f19908116603f01168101908282118183101715620000ce57620000ce6200005e565b8160405283815260209250866020858801011115620000ec57600080fd5b600091505b83821015620001105785820183015181830184015290820190620000f1565b6000602085830101528094505050505092915050565b600080604083850312156200013a57600080fd5b82516001600160401b03808211156200015257600080fd5b620001608683870162000074565b935060208501519150808211156200017757600080fd5b50620001868582860162000074565b9150509250929050565b600181811c90821680620001a557607f821691505b602082108103620001c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021c576000816000526020600020601f850160051c81016020861015620001f75750805b601f850160051c820191505b81811015620002185782815560010162000203565b5050505b505050565b81516001600160401b038111156200023d576200023d6200005e565b62000255816200024e845462000190565b84620001cc565b602080601f8311600181146200028d5760008415620002745750858301515b600019600386901b1c1916600185901b17855562000218565b600085815260208120601f198616915b82811015620002be578886015182559484019460019091019084016200029d565b5085821015620002dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610f7a80620002fd6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806340c10f191461017f57806342842e0e1461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610bea565b61022d565b60405190151581526020015b60405180910390f35b61011f61027f565b60405161010e9190610c57565b61013f61013a366004610c6a565b610311565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610c9f565b61033a565b005b61016a61017a366004610cc9565b610349565b61016a61018d366004610c9f565b6103d9565b61016a6101a0366004610cc9565b6103e3565b61013f6101b3366004610c6a565b610403565b6101cb6101c6366004610d05565b61040e565b60405190815260200161010e565b61011f610456565b61016a6101ef366004610d20565b610465565b61016a610202366004610d72565b610470565b61011f610215366004610c6a565b610487565b610102610228366004610e4e565b6104fc565b60006001600160e01b031982166380ac58cd60e01b148061025e57506001600160e01b03198216635b5e139f60e01b145b8061027957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461028e90610e81565b80601f01602080910402602001604051908101604052809291908181526020018280546102ba90610e81565b80156103075780601f106102dc57610100808354040283529160200191610307565b820191906000526020600020905b8154815290600101906020018083116102ea57829003601f168201915b5050505050905090565b600061031c8261052a565b506000828152600460205260409020546001600160a01b0316610279565b610345828233610563565b5050565b6001600160a01b03821661037857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610385838333610570565b9050836001600160a01b0316816001600160a01b0316146103d3576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161036f565b50505050565b6103458282610669565b6103fe83838360405180602001604052806000815250610470565b505050565b60006102798261052a565b60006001600160a01b03821661043a576040516322718ad960e21b81526000600482015260240161036f565b506001600160a01b031660009081526003602052604090205490565b60606001805461028e90610e81565b6103453383836106ce565b61047b848484610349565b6103d38484848461076d565b60606104928261052a565b5060006104aa60408051602081019091526000815290565b905060008151116104ca57604051806020016040528060008152506104f5565b806104d484610896565b6040516020016104e5929190610ebb565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260408120546001600160a01b03168061027957604051637e27328960e01b81526004810184905260240161036f565b6103fe8383836001610929565b6000828152600260205260408120546001600160a01b039081169083161561059d5761059d818486610a2f565b6001600160a01b038116156105db576105ba600085600080610929565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b0385161561060a576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661069357604051633250574960e11b81526000600482015260240161036f565b60006106a183836000610570565b90506001600160a01b038116156103fe576040516339e3563760e11b81526000600482015260240161036f565b6001600160a01b03821661070057604051630b61174360e31b81526001600160a01b038316600482015260240161036f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156103d357604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906107af903390889087908790600401610eea565b6020604051808303816000875af19250505080156107ea575060408051601f3d908101601f191682019092526107e791810190610f27565b60015b610853573d808015610818576040519150601f19603f3d011682016040523d82523d6000602084013e61081d565b606091505b50805160000361084b57604051633250574960e11b81526001600160a01b038516600482015260240161036f565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461088f57604051633250574960e11b81526001600160a01b038516600482015260240161036f565b5050505050565b606060006108a383610a93565b600101905060008167ffffffffffffffff8111156108c3576108c3610d5c565b6040519080825280601f01601f1916602001820160405280156108ed576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846108f757509392505050565b808061093d57506001600160a01b03821615155b156109ff57600061094d8461052a565b90506001600160a01b038316158015906109795750826001600160a01b0316816001600160a01b031614155b801561098c575061098a81846104fc565b155b156109b55760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161036f565b81156109fd5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a3a838383610b6b565b6103fe576001600160a01b038316610a6857604051637e27328960e01b81526004810182905260240161036f565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161036f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ad25772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610afe576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610b1c57662386f26fc10000830492506010015b6305f5e1008310610b34576305f5e100830492506008015b6127108310610b4857612710830492506004015b60648310610b5a576064830492506002015b600a83106102795760010192915050565b60006001600160a01b03831615801590610bc95750826001600160a01b0316846001600160a01b03161480610ba55750610ba584846104fc565b80610bc957506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610be757600080fd5b50565b600060208284031215610bfc57600080fd5b81356104f581610bd1565b60005b83811015610c22578181015183820152602001610c0a565b50506000910152565b60008151808452610c43816020860160208601610c07565b601f01601f19169290920160200192915050565b6020815260006104f56020830184610c2b565b600060208284031215610c7c57600080fd5b5035919050565b80356001600160a01b0381168114610c9a57600080fd5b919050565b60008060408385031215610cb257600080fd5b610cbb83610c83565b946020939093013593505050565b600080600060608486031215610cde57600080fd5b610ce784610c83565b9250610cf560208501610c83565b9150604084013590509250925092565b600060208284031215610d1757600080fd5b6104f582610c83565b60008060408385031215610d3357600080fd5b610d3c83610c83565b915060208301358015158114610d5157600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610d8857600080fd5b610d9185610c83565b9350610d9f60208601610c83565b925060408501359150606085013567ffffffffffffffff80821115610dc357600080fd5b818701915087601f830112610dd757600080fd5b813581811115610de957610de9610d5c565b604051601f8201601f19908116603f01168101908382118183101715610e1157610e11610d5c565b816040528281528a6020848701011115610e2a57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610e6157600080fd5b610e6a83610c83565b9150610e7860208401610c83565b90509250929050565b600181811c90821680610e9557607f821691505b602082108103610eb557634e487b7160e01b600052602260045260246000fd5b50919050565b60008351610ecd818460208801610c07565b835190830190610ee1818360208801610c07565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1d90830184610c2b565b9695505050505050565b600060208284031215610f3957600080fd5b81516104f581610bd156fea264697066735822122088cc6c10546349f88c7fe8c1e7f85adb8574de2cf8b22462707399dc43c8019364736f6c63430008160033","sourceMap":"140:214:142:-:0;;;176:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;239:5;246:7;1447:5:114;:13;239:5:142;1447::114;:13;:::i;:::-;-1:-1:-1;1470:7:114;:17;1480:7;1470;:17;:::i;:::-;;1381:113;;176:81:142;;140:214;;14:127:145;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:145;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:145;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:562::-;1094:6;1102;1155:2;1143:9;1134:7;1130:23;1126:32;1123:52;;;1171:1;1168;1161:12;1123:52;1198:16;;-1:-1:-1;;;;;1263:14:145;;;1260:34;;;1290:1;1287;1280:12;1260:34;1313:61;1366:7;1357:6;1346:9;1342:22;1313:61;:::i;:::-;1303:71;;1420:2;1409:9;1405:18;1399:25;1383:41;;1449:2;1439:8;1436:16;1433:36;;;1465:1;1462;1455:12;1433:36;;1488:63;1543:7;1532:8;1521:9;1517:24;1488:63;:::i;:::-;1478:73;;;995:562;;;;;:::o;1562:380::-;1641:1;1637:12;;;;1684;;;1705:61;;1759:4;1751:6;1747:17;1737:27;;1705:61;1812:2;1804:6;1801:14;1781:18;1778:38;1775:161;;1858:10;1853:3;1849:20;1846:1;1839:31;1893:4;1890:1;1883:15;1921:4;1918:1;1911:15;1775:161;;1562:380;;;:::o;2073:543::-;2175:2;2170:3;2167:11;2164:446;;;2211:1;2235:5;2232:1;2225:16;2279:4;2276:1;2266:18;2349:2;2337:10;2333:19;2330:1;2326:27;2320:4;2316:38;2385:4;2373:10;2370:20;2367:47;;;-1:-1:-1;2408:4:145;2367:47;2463:2;2458:3;2454:12;2451:1;2447:20;2441:4;2437:31;2427:41;;2518:82;2536:2;2529:5;2526:13;2518:82;;;2581:17;;;2562:1;2551:13;2518:82;;;2522:3;;;2164:446;2073:543;;;:::o;2792:1345::-;2912:10;;-1:-1:-1;;;;;2934:30:145;;2931:56;;;2967:18;;:::i;:::-;2996:97;3086:6;3046:38;3078:4;3072:11;3046:38;:::i;:::-;3040:4;2996:97;:::i;:::-;3148:4;;3205:2;3194:14;;3222:1;3217:663;;;;3924:1;3941:6;3938:89;;;-1:-1:-1;3993:19:145;;;3987:26;3938:89;-1:-1:-1;;2749:1:145;2745:11;;;2741:24;2737:29;2727:40;2773:1;2769:11;;;2724:57;4040:81;;3187:944;;3217:663;2020:1;2013:14;;;2057:4;2044:18;;-1:-1:-1;;3253:20:145;;;3371:236;3385:7;3382:1;3379:14;3371:236;;;3474:19;;;3468:26;3453:42;;3566:27;;;;3534:1;3522:14;;;;3401:19;;3371:236;;;3375:3;3635:6;3626:7;3623:19;3620:201;;;3696:19;;;3690:26;-1:-1:-1;;3779:1:145;3775:14;;;3791:3;3771:24;3767:37;3763:42;3748:58;3733:74;;3620:201;-1:-1:-1;;;;;3867:1:145;3851:14;;;3847:22;3834:36;;-1:-1:-1;2792:1345:145:o;:::-;140:214:142;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806340c10f191461017f57806342842e0e1461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610bea565b61022d565b60405190151581526020015b60405180910390f35b61011f61027f565b60405161010e9190610c57565b61013f61013a366004610c6a565b610311565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610c9f565b61033a565b005b61016a61017a366004610cc9565b610349565b61016a61018d366004610c9f565b6103d9565b61016a6101a0366004610cc9565b6103e3565b61013f6101b3366004610c6a565b610403565b6101cb6101c6366004610d05565b61040e565b60405190815260200161010e565b61011f610456565b61016a6101ef366004610d20565b610465565b61016a610202366004610d72565b610470565b61011f610215366004610c6a565b610487565b610102610228366004610e4e565b6104fc565b60006001600160e01b031982166380ac58cd60e01b148061025e57506001600160e01b03198216635b5e139f60e01b145b8061027957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461028e90610e81565b80601f01602080910402602001604051908101604052809291908181526020018280546102ba90610e81565b80156103075780601f106102dc57610100808354040283529160200191610307565b820191906000526020600020905b8154815290600101906020018083116102ea57829003601f168201915b5050505050905090565b600061031c8261052a565b506000828152600460205260409020546001600160a01b0316610279565b610345828233610563565b5050565b6001600160a01b03821661037857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610385838333610570565b9050836001600160a01b0316816001600160a01b0316146103d3576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161036f565b50505050565b6103458282610669565b6103fe83838360405180602001604052806000815250610470565b505050565b60006102798261052a565b60006001600160a01b03821661043a576040516322718ad960e21b81526000600482015260240161036f565b506001600160a01b031660009081526003602052604090205490565b60606001805461028e90610e81565b6103453383836106ce565b61047b848484610349565b6103d38484848461076d565b60606104928261052a565b5060006104aa60408051602081019091526000815290565b905060008151116104ca57604051806020016040528060008152506104f5565b806104d484610896565b6040516020016104e5929190610ebb565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260408120546001600160a01b03168061027957604051637e27328960e01b81526004810184905260240161036f565b6103fe8383836001610929565b6000828152600260205260408120546001600160a01b039081169083161561059d5761059d818486610a2f565b6001600160a01b038116156105db576105ba600085600080610929565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b0385161561060a576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661069357604051633250574960e11b81526000600482015260240161036f565b60006106a183836000610570565b90506001600160a01b038116156103fe576040516339e3563760e11b81526000600482015260240161036f565b6001600160a01b03821661070057604051630b61174360e31b81526001600160a01b038316600482015260240161036f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156103d357604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906107af903390889087908790600401610eea565b6020604051808303816000875af19250505080156107ea575060408051601f3d908101601f191682019092526107e791810190610f27565b60015b610853573d808015610818576040519150601f19603f3d011682016040523d82523d6000602084013e61081d565b606091505b50805160000361084b57604051633250574960e11b81526001600160a01b038516600482015260240161036f565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461088f57604051633250574960e11b81526001600160a01b038516600482015260240161036f565b5050505050565b606060006108a383610a93565b600101905060008167ffffffffffffffff8111156108c3576108c3610d5c565b6040519080825280601f01601f1916602001820160405280156108ed576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846108f757509392505050565b808061093d57506001600160a01b03821615155b156109ff57600061094d8461052a565b90506001600160a01b038316158015906109795750826001600160a01b0316816001600160a01b031614155b801561098c575061098a81846104fc565b155b156109b55760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161036f565b81156109fd5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a3a838383610b6b565b6103fe576001600160a01b038316610a6857604051637e27328960e01b81526004810182905260240161036f565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161036f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ad25772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610afe576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610b1c57662386f26fc10000830492506010015b6305f5e1008310610b34576305f5e100830492506008015b6127108310610b4857612710830492506004015b60648310610b5a576064830492506002015b600a83106102795760010192915050565b60006001600160a01b03831615801590610bc95750826001600160a01b0316846001600160a01b03161480610ba55750610ba584846104fc565b80610bc957506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610be757600080fd5b50565b600060208284031215610bfc57600080fd5b81356104f581610bd1565b60005b83811015610c22578181015183820152602001610c0a565b50506000910152565b60008151808452610c43816020860160208601610c07565b601f01601f19169290920160200192915050565b6020815260006104f56020830184610c2b565b600060208284031215610c7c57600080fd5b5035919050565b80356001600160a01b0381168114610c9a57600080fd5b919050565b60008060408385031215610cb257600080fd5b610cbb83610c83565b946020939093013593505050565b600080600060608486031215610cde57600080fd5b610ce784610c83565b9250610cf560208501610c83565b9150604084013590509250925092565b600060208284031215610d1757600080fd5b6104f582610c83565b60008060408385031215610d3357600080fd5b610d3c83610c83565b915060208301358015158114610d5157600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610d8857600080fd5b610d9185610c83565b9350610d9f60208601610c83565b925060408501359150606085013567ffffffffffffffff80821115610dc357600080fd5b818701915087601f830112610dd757600080fd5b813581811115610de957610de9610d5c565b604051601f8201601f19908116603f01168101908382118183101715610e1157610e11610d5c565b816040528281528a6020848701011115610e2a57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610e6157600080fd5b610e6a83610c83565b9150610e7860208401610c83565b90509250929050565b600181811c90821680610e9557607f821691505b602082108103610eb557634e487b7160e01b600052602260045260246000fd5b50919050565b60008351610ecd818460208801610c07565b835190830190610ee1818360208801610c07565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1d90830184610c2b565b9695505050505050565b600060208284031215610f3957600080fd5b81516104f581610bd156fea264697066735822122088cc6c10546349f88c7fe8c1e7f85adb8574de2cf8b22462707399dc43c8019364736f6c63430008160033","sourceMap":"140:214:142:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1561:300:114;;;;;;:::i;:::-;;:::i;:::-;;;565:14:145;;558:22;540:41;;528:2;513:18;1561:300:114;;;;;;;;2365:89;;;:::i;:::-;;;;;;;:::i;3497:154::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:145;;;1679:51;;1667:2;1652:18;3497:154:114;1533:203:145;3323:113:114;;;;;;:::i;:::-;;:::i;:::-;;4143:578;;;;;;:::i;:::-;;:::i;263:89:142:-;;;;;;:::i;:::-;;:::i;4787:132:114:-;;;;;;:::i;:::-;;:::i;2185:118::-;;;;;;:::i;:::-;;:::i;1920:208::-;;;;;;:::i;:::-;;:::i;:::-;;;2848:25:145;;;2836:2;2821:18;1920:208:114;2702:177:145;2518:93:114;;;:::i;3718:144::-;;;;;;:::i;:::-;;:::i;4985:208::-;;;;;;:::i;:::-;;:::i;2677:255::-;;;;;;:::i;:::-;;:::i;3928:153::-;;;;;;:::i;:::-;;:::i;1561:300::-;1663:4;-1:-1:-1;;;;;;1698:40:114;;-1:-1:-1;;;1698:40:114;;:104;;-1:-1:-1;;;;;;;1754:48:114;;-1:-1:-1;;;1754:48:114;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:126;;;1818:36:114;1679:175;1561:300;-1:-1:-1;;1561:300:114:o;2365:89::-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:114;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:114;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:120;3394:8:114;:35::i;:::-;3323:113;;:::o;4143:578::-;-1:-1:-1;;;;;4237:16:114;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:114;;4306:1;4276:33;;;1679:51:145;1652:18;;4276:33:114;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;735:10:120;4562:7:114;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:114;:13;-1:-1:-1;;;;;4610:21:114;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:114;;-1:-1:-1;;;;;5419:15:145;;;4654:50:114;;;5401:34:145;5451:18;;;5444:34;;;5514:15;;5494:18;;;5487:43;5336:18;;4654:50:114;5161:375:145;4606:109:114;4223:498;4143:578;;;:::o;263:89:142:-;325:20;331:3;336:8;325:5;:20::i;4787:132:114:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;2185:118::-;2248:7;2274:22;2288:7;2274:13;:22::i;1920:208::-;1983:7;-1:-1:-1;;;;;2006:19:114;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:114;;2075:1;2048:30;;;1679:51:145;1652:18;;2048:30:114;1533:203:145;2002:87:114;-1:-1:-1;;;;;;2105:16:114;;;;;:9;:16;;;;;;;1920:208::o;2518:93::-;2565:13;2597:7;2590:14;;;;;:::i;3718:144::-;3803:52;735:10:120;3836:8:114;3846;3803:18;:52::i;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;2677:255::-;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;3250:9;;;;;;;;;-1:-1:-1;3250:9:114;;;3174:92;2823:10;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;2677:255;-1:-1:-1;;;2677:255:114:o;3928:153::-;-1:-1:-1;;;;;4039:25:114;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;16138:241::-;16201:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:114;;16263:88;;16309:31;;-1:-1:-1;;;16309:31:114;;;;;2848:25:145;;;2821:18;;16309:31:114;2702:177:145;14418:120:114;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;8838:795::-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:114;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:114;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:114;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:114;;;9157:256;-1:-1:-1;;;;;9427:16:114;;;9423:107;;-1:-1:-1;;;;;9487:13:114;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:114;-1:-1:-1;;;;;9540:21:114;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:114:o;9955:327::-;-1:-1:-1;;;;;10022:16:114;;10018:87;;10061:33;;-1:-1:-1;;;10061:33:114;;10091:1;10061:33;;;1679:51:145;1652:18;;10061:33:114;1533:203:145;10018:87:114;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;-1:-1:-1;;;;;;10184:27:114;;;10180:96;;10234:31;;-1:-1:-1;;;10234:31:114;;10262:1;10234:31;;;1679:51:145;1652:18;;10234:31:114;1533:203:145;15591:312:114;-1:-1:-1;;;;;15698:22:114;;15694:91;;15743:31;;-1:-1:-1;;;15743:31:114;;-1:-1:-1;;;;;1697:32:145;;15743:31:114;;;1679:51:145;1652:18;;15743:31:114;1533:203:145;15694:91:114;-1:-1:-1;;;;;15794:25:114;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15794:46:114;;;;;;;;;;15855:41;;540::145;;;15855::114;;513:18:145;15855:41:114;;;;;;;15591:312;;;:::o;16918:782::-;-1:-1:-1;;;;;17034:14:114;;;:18;17030:664;;17072:71;;-1:-1:-1;;;17072:71:114;;-1:-1:-1;;;;;17072:36:114;;;;;:71;;735:10:120;;17123:4:114;;17129:7;;17138:4;;17072:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17072:71:114;;;;;;;;-1:-1:-1;;17072:71:114;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:6;:13;17398:1;17381:18;17377:293;;17430:25;;-1:-1:-1;;;17430:25:114;;-1:-1:-1;;;;;1697:32:145;;17430:25:114;;;1679:51:145;1652:18;;17430:25:114;1533:203:145;17377:293:114;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;-1:-1:-1;;;;;;17190:51:114;;-1:-1:-1;;;17190:51:114;17186:130;;17272:25;;-1:-1:-1;;;17272:25:114;;-1:-1:-1;;;;;1697:32:145;;17272:25:114;;;1679:51:145;1652:18;;17272:25:114;1533:203:145;17186:130:114;17144:186;16918:782;;;;:::o;637:698:124:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:124;-1:-1:-1;794:41:124;-1:-1:-1;955:28:124;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:124;-1:-1:-1;;;1175:2:124;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:124;1010:282;1256:21;-1:-1:-1;1312:6:124;637:698;-1:-1:-1;;;637:698:124:o;14720:662:114:-;14880:9;:31;;;-1:-1:-1;;;;;;14893:18:114;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;-1:-1:-1;;;;;;15093:18:114;;;;;;:35;;;15124:4;-1:-1:-1;;;;;15115:13:114;:5;-1:-1:-1;;;;;15115:13:114;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15189:27;;-1:-1:-1;;;15189:27:114;;-1:-1:-1;;;;;1697:32:145;;15189:27:114;;;1679:51:145;1652:18;;15189:27:114;1533:203:145;15089:142:114;15249:9;15245:81;;;15303:7;15299:2;-1:-1:-1;;;;;15283:28:114;15292:5;-1:-1:-1;;;;;15283:28:114;;;;;;;;;;;15245:81;14913:423;14876:460;-1:-1:-1;;15346:24:114;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15346:29:114;-1:-1:-1;;;;;15346:29:114;;;;;;;;;;14720:662::o;7082:368::-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:114;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:114;;;;;2848:25:145;;;2821:18;;7298:31:114;2702:177:145;7248:186:114;7375:44;;-1:-1:-1;;;7375:44:114;;-1:-1:-1;;;;;7114:32:145;;7375:44:114;;;7096:51:145;7163:18;;;7156:34;;;7069:18;;7375:44:114;6922:274:145;12214:916:128;12267:7;;-1:-1:-1;;;12342:17:128;;12338:103;;-1:-1:-1;;;12379:17:128;;;-1:-1:-1;12424:2:128;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:128;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:128;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:128;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:128;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:128;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:128:o;6376:272:114:-;6479:4;-1:-1:-1;;;;;6514:21:114;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:114;:5;-1:-1:-1;;;;;6552:16:114;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;6008:7:114;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6608:32:114;;;6034:24;;6608:32;6552:88;6495:146;6376:272;-1:-1:-1;;;;6376:272:114:o;14:131:145:-;-1:-1:-1;;;;;;88:32:145;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:145;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:145;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:145:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:145;;1348:180;-1:-1:-1;1348:180:145:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:145;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:145:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:1138;3463:6;3471;3479;3487;3540:3;3528:9;3519:7;3515:23;3511:33;3508:53;;;3557:1;3554;3547:12;3508:53;3580:29;3599:9;3580:29;:::i;:::-;3570:39;;3628:38;3662:2;3651:9;3647:18;3628:38;:::i;:::-;3618:48;;3713:2;3702:9;3698:18;3685:32;3675:42;;3768:2;3757:9;3753:18;3740:32;3791:18;3832:2;3824:6;3821:14;3818:34;;;3848:1;3845;3838:12;3818:34;3886:6;3875:9;3871:22;3861:32;;3931:7;3924:4;3920:2;3916:13;3912:27;3902:55;;3953:1;3950;3943:12;3902:55;3989:2;3976:16;4011:2;4007;4004:10;4001:36;;;4017:18;;:::i;:::-;4092:2;4086:9;4060:2;4146:13;;-1:-1:-1;;4142:22:145;;;4166:2;4138:31;4134:40;4122:53;;;4190:18;;;4210:22;;;4187:46;4184:72;;;4236:18;;:::i;:::-;4276:10;4272:2;4265:22;4311:2;4303:6;4296:18;4351:7;4346:2;4341;4337;4333:11;4329:20;4326:33;4323:53;;;4372:1;4369;4362:12;4323:53;4428:2;4423;4419;4415:11;4410:2;4402:6;4398:15;4385:46;4473:1;4468:2;4463;4455:6;4451:15;4447:24;4440:35;4494:6;4484:16;;;;;;;3368:1138;;;;;;;:::o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:380::-;4855:1;4851:12;;;;4898;;;4919:61;;4973:4;4965:6;4961:17;4951:27;;4919:61;5026:2;5018:6;5015:14;4995:18;4992:38;4989:161;;5072:10;5067:3;5063:20;5060:1;5053:31;5107:4;5104:1;5097:15;5135:4;5132:1;5125:15;4989:161;;4776:380;;;:::o;5541:496::-;5720:3;5758:6;5752:13;5774:66;5833:6;5828:3;5821:4;5813:6;5809:17;5774:66;:::i;:::-;5903:13;;5862:16;;;;5925:70;5903:13;5862:16;5972:4;5960:17;;5925:70;:::i;:::-;6011:20;;5541:496;-1:-1:-1;;;;5541:496:145:o;6042:489::-;-1:-1:-1;;;;;6311:15:145;;;6293:34;;6363:15;;6358:2;6343:18;;6336:43;6410:2;6395:18;;6388:34;;;6458:3;6453:2;6438:18;;6431:31;;;6236:4;;6479:46;;6505:19;;6497:6;6479:46;:::i;:::-;6471:54;6042:489;-1:-1:-1;;;;;;6042:489:145:o;6536:249::-;6605:6;6658:2;6646:9;6637:7;6633:23;6629:32;6626:52;;;6674:1;6671;6664:12;6626:52;6706:9;6700:16;6725:30;6749:5;6725:30;:::i","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256)":"40c10f19","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/onft/onft721/mocks/ERC721Mock.sol\":\"ERC721Mock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"test/onft/onft721/mocks/ERC721Mock.sol\":{\"keccak256\":\"0x6b9a321f3f1e9de4bb6ec64f01264717108e77da7173a3e735d3830542a4e8fe\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cd5b0ecd6121979c0289d8d53c24286793e43c31d337c61fdea408ec1e78135\",\"dweb:/ipfs/QmTrhHATg38ZkspBW1qz5dXcJHeHvMo42PoM3WZtq6KSGY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/onft/onft721/mocks/ERC721Mock.sol":"ERC721Mock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"test/onft/onft721/mocks/ERC721Mock.sol":{"keccak256":"0x6b9a321f3f1e9de4bb6ec64f01264717108e77da7173a3e735d3830542a4e8fe","urls":["bzz-raw://3cd5b0ecd6121979c0289d8d53c24286793e43c31d337c61fdea408ec1e78135","dweb:/ipfs/QmTrhHATg38ZkspBW1qz5dXcJHeHvMo42PoM3WZtq6KSGY"],"license":"UNLICENSED"}},"version":1},"id":142} \ No newline at end of file diff --git a/packages/onft-evm/out/EndpointV2Mock.sol/EndpointV2Mock.json b/packages/onft-evm/out/EndpointV2Mock.sol/EndpointV2Mock.json deleted file mode 100644 index 6c70de71c..000000000 --- a/packages/onft-evm/out/EndpointV2Mock.sol/EndpointV2Mock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"EMPTY_PAYLOAD_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NIL_PAYLOAD_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blockedLibrary","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"clear","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"composeQueue","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"index","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"messageHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibrary","inputs":[{"name":"srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibraryTimeout","inputs":[{"name":"srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"defaultSendLibrary","inputs":[{"name":"dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"delegates","inputs":[{"name":"oapp","type":"address","internalType":"address"}],"outputs":[{"name":"delegate","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eid","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"isDefault","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getRegisteredLibraries","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSendContext","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"inboundNonce","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"inboundPayloadHash","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"inboundNonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"payloadHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initializable","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDefaultSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegisteredLibrary","inputs":[{"name":"lib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSendingMessage","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_actualReceiveLib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lazyInboundNonce","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzComposeAlert","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_gas","type":"uint256","internalType":"uint256"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"},{"name":"_reason","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAlert","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_gas","type":"uint256","internalType":"uint256"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"},{"name":"_reason","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lzToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextGuid","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nilify","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"outboundNonce","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_params","type":"tuple","internalType":"struct MessagingParams","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"},{"name":"payInLzToken","type":"bool","internalType":"bool"}]},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"receiveLibraryTimeout","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"recoverToken","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerLibrary","inputs":[{"name":"_lib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_params","type":"tuple","internalType":"struct MessagingParams","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"},{"name":"payInLzToken","type":"bool","internalType":"bool"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"sendCompose","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_params","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibraryTimeout","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultSendLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLzToken","inputs":[{"name":"_lzToken","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibraryTimeout","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSendLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"skip","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifiable","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verify","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComposeDelivered","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"ComposeSent","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"DefaultReceiveLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DefaultReceiveLibraryTimeoutSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"expiry","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DefaultSendLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateSet","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"delegate","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"InboundNonceSkipped","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"LibraryRegistered","inputs":[{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"LzComposeAlert","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"executor","type":"address","indexed":true,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LzReceiveAlert","inputs":[{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"executor","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LzTokenSet","inputs":[{"name":"token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketBurnt","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PacketDelivered","inputs":[{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"receiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketNilified","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PacketSent","inputs":[{"name":"encodedPayload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"options","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"sendLibrary","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketVerified","inputs":[{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ReceiveLibrarySet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ReceiveLibraryTimeoutSet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"timeout","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SendLibrarySet","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"LZ_AlreadyRegistered","inputs":[]},{"type":"error","name":"LZ_ComposeExists","inputs":[]},{"type":"error","name":"LZ_ComposeNotFound","inputs":[{"name":"expected","type":"bytes32","internalType":"bytes32"},{"name":"actual","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"LZ_DefaultReceiveLibUnavailable","inputs":[]},{"type":"error","name":"LZ_DefaultSendLibUnavailable","inputs":[]},{"type":"error","name":"LZ_InsufficientFee","inputs":[{"name":"requiredNative","type":"uint256","internalType":"uint256"},{"name":"suppliedNative","type":"uint256","internalType":"uint256"},{"name":"requiredLzToken","type":"uint256","internalType":"uint256"},{"name":"suppliedLzToken","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_InvalidExpiry","inputs":[]},{"type":"error","name":"LZ_InvalidNonce","inputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"LZ_InvalidPayloadHash","inputs":[]},{"type":"error","name":"LZ_InvalidReceiveLibrary","inputs":[]},{"type":"error","name":"LZ_LzTokenUnavailable","inputs":[]},{"type":"error","name":"LZ_OnlyNonDefaultLib","inputs":[]},{"type":"error","name":"LZ_OnlyReceiveLib","inputs":[]},{"type":"error","name":"LZ_OnlyRegisteredLib","inputs":[]},{"type":"error","name":"LZ_OnlyRegisteredOrDefaultLib","inputs":[]},{"type":"error","name":"LZ_OnlySendLib","inputs":[]},{"type":"error","name":"LZ_PathNotInitializable","inputs":[]},{"type":"error","name":"LZ_PathNotVerifiable","inputs":[]},{"type":"error","name":"LZ_PayloadHashNotFound","inputs":[{"name":"expected","type":"bytes32","internalType":"bytes32"},{"name":"actual","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"LZ_SameValue","inputs":[]},{"type":"error","name":"LZ_SendReentrancy","inputs":[]},{"type":"error","name":"LZ_Unauthorized","inputs":[]},{"type":"error","name":"LZ_UnsupportedEid","inputs":[]},{"type":"error","name":"LZ_UnsupportedInterface","inputs":[]},{"type":"error","name":"LZ_ZeroLzTokenFee","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]}],"bytecode":{"object":"0x60c06040526001600d553480156200001657600080fd5b50604051620055c1380380620055c18339810160408190526200003991620002cd565b81816001600160a01b0381166200006b57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200007681620000cd565b5063ffffffff166080526040516200008e90620002bf565b604051809103906000f080158015620000ab573d6000803e3d6000fd5b506001600160a01b031660a0819052620000c5906200011d565b50506200034a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001276200028e565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019991906200031f565b620001b75760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620001f25760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910160405180910390a150565b6000546001600160a01b03163314620002bd5760405163118cdaa760e01b815233600482015260240162000062565b565b6101e380620053de83390190565b60008060408385031215620002e157600080fd5b825163ffffffff81168114620002f657600080fd5b60208401519092506001600160a01b03811681146200031457600080fd5b809150509250929050565b6000602082840312156200033257600080fd5b815180151581146200034357600080fd5b9392505050565b60805160a05161504b6200039360003960006107810152600081816105310152818161278901528181612f7b01528181612fe20152818161355301526135ba015261504b6000f3fe6080604052600436106103505760003560e01c80639132e5c3116101c6578063c9fc7bcd116100f7578063ddc28c5811610095578063e8964e811161006f578063e8964e8114610b8f578063ef667aa114610baf578063f2fde38b14610bfa578063f64be4c714610c1a57600080fd5b8063ddc28c5814610b2e578063e1758bd814610b5b578063e4fe1d9414610b6f57600080fd5b8063d4b4ec8f116100d1578063d4b4ec8f14610a72578063d70b890214610a92578063dc706a6214610ab2578063dc93c8a214610ae257600080fd5b8063c9fc7bcd146109f6578063ca5eb5e114610a3d578063cb5026b914610a5d57600080fd5b8063a7229fd911610164578063aafea3121161013e578063aafea31214610976578063b96a277f14610996578063c28e0eed146109b6578063c9a54a99146109d657600080fd5b8063a7229fd914610916578063a825d74714610936578063aafe5e071461095657600080fd5b80639c6d7340116101a05780639c6d73401461086f5780639d7f9775146108b6578063a0dd43fc146108d6578063a718531b146108f657600080fd5b80639132e5c31461081a57806391d20fa11461083c5780639535ff301461084f57600080fd5b80635b17bb70116102a05780636f50a8031161023e57806379624ca91161021857806379624ca9146107a35780637cb59012146107bc578063861e1ca5146107dc5780638da5cb5b146107fc57600080fd5b80636f50a80314610724578063715018a61461075a578063733180911461076f57600080fd5b80636a14d7151161027a5780636a14d715146106655780636bf73fa3146106855780636dbd9f90146106a55780636e83f5bb146106c557600080fd5b80635b17bb70146105b65780636750cd4c14610615578063697fe6b61461064557600080fd5b80632baf0be71161030d578063402f8468116102e7578063402f8468146104c057806340f80683146104ff578063416ecebf1461051f578063587cde1e1461056857600080fd5b80632baf0be7146104355780632e80fbf31461045957806335d330b01461047957600080fd5b80630c0c389e1461035557806314f651a91461036a578063183c834f146103a85780632637a450146103c85780632a56c1b0146103e85780632b3197b914610408575b600080fd5b610368610363366004613ef7565b610c50565b005b34801561037657600080fd5b5061037f610d4e565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103b457600080fd5b506103686103c3366004613fa6565b610d80565b6103db6103d6366004613ff1565b611027565b60405161039f9190614043565b3480156103f457600080fd5b50610368610403366004614085565b61114d565b34801561041457600080fd5b506104286104233660046140f4565b6111ed565b60405161039f9190614198565b34801561044157600080fd5b5061044b60001981565b60405190815260200161039f565b34801561046557600080fd5b506103686104743660046141c2565b6112b8565b34801561048557600080fd5b5061044b610494366004614229565b600c60209081526000948552604080862082529385528385208152918452828420909152825290205481565b3480156104cc57600080fd5b506104e06104db36600461426b565b611427565b604080516001600160a01b03909316835290151560208301520161039f565b34801561050b57600080fd5b5061036861051a3660046141c2565b6114a5565b34801561052b57600080fd5b506105537f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161039f565b34801561057457600080fd5b5061059e610583366004614295565b600f602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161039f565b3480156105c257600080fd5b506105fd6105d13660046142b0565b60016020908152600093845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161039f565b34801561062157600080fd5b506106356106303660046142ec565b61160b565b604051901515815260200161039f565b34801561065157600080fd5b50610368610660366004614307565b61165b565b34801561067157600080fd5b50610368610680366004613fa6565b6116d0565b34801561069157600080fd5b506103686106a0366004614402565b611aae565b3480156106b157600080fd5b506103686106c03660046144e5565b611b18565b3480156106d157600080fd5b506107056106e03660046142ec565b600b60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161039f565b34801561073057600080fd5b5061059e61073f3660046142ec565b600a602052600090815260409020546001600160a01b031681565b34801561076657600080fd5b50610368611bba565b34801561077b57600080fd5b5061059e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107af57600080fd5b50600d5460011415610635565b3480156107c857600080fd5b506103686107d7366004614575565b611bce565b3480156107e857600080fd5b506106356107f73660046145c6565b611cba565b34801561080857600080fd5b506000546001600160a01b031661059e565b34801561082657600080fd5b5061082f611d26565b60405161039f91906145f1565b61036861084a36600461463e565b611d88565b34801561085b57600080fd5b5061036861086a3660046146e8565b611f18565b34801561087b57600080fd5b506105fd61088a3660046142b0565b60036020908152600093845260408085208252928452828420905282529020546001600160401b031681565b3480156108c257600080fd5b506106356108d13660046146e8565b61217c565b3480156108e257600080fd5b506105fd6108f13660046142b0565b612256565b34801561090257600080fd5b5061036861091136600461472b565b6122b6565b34801561092257600080fd5b50610368610931366004614757565b6125d6565b34801561094257600080fd5b50610368610951366004614775565b6125ee565b34801561096257600080fd5b5061044b6109713660046142b0565b612739565b34801561098257600080fd5b506103686109913660046147b2565b6127b9565b3480156109a257600080fd5b5061059e6109b136600461426b565b6129e2565b3480156109c257600080fd5b506103686109d1366004614295565b612a51565b3480156109e257600080fd5b506106356109f13660046145c6565b612aae565b348015610a0257600080fd5b5061044b610a113660046147ce565b600260209081526000948552604080862082529385528385208152918452828420909152825290205481565b348015610a4957600080fd5b50610368610a58366004614295565b612b13565b348015610a6957600080fd5b5061044b600081565b348015610a7e57600080fd5b50610368610a8d36600461472b565b612b73565b348015610a9e57600080fd5b50610368610aad3660046147ce565b612db1565b348015610abe57600080fd5b50610635610acd366004614295565b60056020526000908152604090205460ff1681565b348015610aee57600080fd5b50610635610afd36600461426b565b6001600160a01b03918216600090815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610b3a57600080fd5b50610b4e610b49366004613ff1565b612ea0565b60405161039f9190614810565b348015610b6757600080fd5b50600061059e565b348015610b7b57600080fd5b50600e5461059e906001600160a01b031681565b348015610b9b57600080fd5b50610368610baa366004614295565b61310c565b348015610bbb57600080fd5b50610705610bca36600461426b565b6008602090815260009283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610c0657600080fd5b50610368610c15366004614295565b613270565b348015610c2657600080fd5b5061059e610c353660046142ec565b6009602052600090815260409020546001600160a01b031681565b610c9f86610c6160208a018a6142ec565b60208a0135610c7660608c0160408d01614827565b898989604051602001610c8b93929190614842565b6040516020818303038152906040526132ae565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610cda908b908a908a908a9033908b908b906004016148be565b6000604051808303818588803b158015610cf357600080fd5b505af1158015610d07573d6000803e3d6000fd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d3d929190614915565b60405180910390a150505050505050565b600080610d5e600d546001141590565b610d6a57600080610d78565b610d78600d5460a081901c91565b915091509091565b6001600160a01b038216600090815260056020526040902054829060ff16610dbb57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e5e576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f9190614951565b6002811115610e4057610e4061493b565b03610e5e576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610efa576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190614980565b610efa57604051630e476aa960e21b815260040160405180910390fd5b610f0388613469565b6000610f0f8989611427565b9150508015610f3157604051633c075f7560e01b815260040160405180910390fd5b85600003610f79576001600160a01b038916600090815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610fdf565b438611610f99576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b03898116600090815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051611014949392919061499d565b60405180910390a1505050505050505050565b61102f613e40565b61103c60208401846142ec565b336001600d54146110605760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561108e908601608087016149cd565b80156110a35750600e546001600160a01b0316155b156110c157604051632d7b695560e11b815260040160405180910390fd5b6000806110ce33886134ba565b9150915060006110db3490565b905060006110f76110f260a08b0160808c016149cd565b613766565b905061110884604001518383613802565b600e5460408501516020015161112a916001600160a01b03169083868c613850565b60408401515161113c9083858b61387d565b50506001600d555095945050505050565b61115685613469565b600083838360405160200161116d93929190614842565b60408051601f1981840301815291905290506111ab8661119060208801886142ec565b60208801356111a560608a0160408b01614827565b856132ae565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111dd929190614915565b60405180910390a1505050505050565b6001600160a01b038316600090815260056020526040902054606090849060ff1661122b57604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf790606401600060405180830381865afa158015611286573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ae9190810190614a7d565b9695505050505050565b6112c185613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461133357604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b039081169084161180159061137f575080155b156113a857604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190206000199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb55292906111dd90879087908a9088908890614ab1565b6001600160a01b03808316600090815260076020908152604080832063ffffffff86168452909152812054909116908161149e5763ffffffff83166000908152600a60205260409020546001600160a01b031691508161149a57604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b6114ae85613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461151b57604051637182306f60e01b8152600481018290526024810183905260440161132a565b80158061156557506001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561158e57604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e906111dd90879087908a9088908890614ab1565b63ffffffff81166000908152600960205260408120546001600160a01b031615801590611655575063ffffffff82166000908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116ba9a99989796959493929190614aee565b60405180910390a4505050505050505050505050565b6001600160a01b038216600090815260056020526040902054829060ff1615801561170357506001600160a01b03811615155b156117215760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b038116156117c4576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117959190614951565b60028111156117a6576117a661493b565b036117c4576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615611860576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190614980565b61186057604051630e476aa960e21b815260040160405180910390fd5b61186988613469565b6001600160a01b03808916600090815260076020908152604080832063ffffffff8c168452909152902054811690871681036118b85760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03898116600081815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a18515611a32576001600160a01b038116158061195b57506001600160a01b038716155b1561197957604051633c075f7560e01b815260040160405180910390fd5b60006040518060400160405280836001600160a01b0316815260200188436119a19190614b6d565b90526001600160a01b038b8116600090815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611a24918d918d91879161499d565b60405180910390a150611aa3565b6001600160a01b038916600090815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611014918c918c9186919061499d565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611b039a99989796959493929190614b80565b60405180910390a35050505050505050505050565b6001600160a01b038316600090815260056020526040902054839060ff16611b5357604051631bc58ef360e11b815260040160405180910390fd5b611b5c85613469565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b8c90889087908790600401614bdf565b600060405180830381600087803b158015611ba657600080fd5b505af1158015611aa3573d6000803e3d6000fd5b611bc26138a7565b611bcc60006138d4565b565b336000908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611c2457604051630542086560e21b815260040160405180910390fd5b8181604051611c34929190614cd2565b60408051918290038220336000818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611cab919088908890889088908890614ce2565b60405180910390a15050505050565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590611cea908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613924565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050505050905090565b6001600160a01b038089166000908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611dd39087908790614cd2565b60405180910390209050808214611e07576040516335ca595f60e01b8152600481018390526024810182905260440161132a565b6001600160a01b03808b166000908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611e76908e908d908c908c9033908d908d90600401614d2c565b6000604051808303818588803b158015611e8f57600080fd5b505af1158015611ea3573d6000803e3d6000fd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611f0494939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b038116600090815260056020526040902054819060ff16158015611f4b57506001600160a01b03811615155b15611f695760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b0381161561200c576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdd9190614951565b6002811115611fee57611fee61493b565b0361200c57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b038216156120a8576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190614980565b6120a857604051630e476aa960e21b815260040160405180910390fd5b6120b187613469565b6001600160a01b03878116600090815260066020908152604080832063ffffffff8b1684529091529020548187169116036120ff5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03878116600081815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d3d565b600080600061218b8686611427565b91509150816001600160a01b0316846001600160a01b0316036121b357600192505050611d1f565b6000816121e8576001600160a01b038716600090815260086020908152604080832063ffffffff8a16845290915290206121fe565b63ffffffff86166000908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156122385750438160200151115b156122495760019350505050611d1f565b5060009695505050505050565b6001600160a01b038316600090815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b6122a1858585846001016139a8565b156122ae57600101612292565b949350505050565b6122be6138a7565b6001600160a01b038216600090815260056020526040902054829060ff166122f957604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b0381161561239c576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236d9190614951565b600281111561237e5761237e61493b565b0361239c576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612438576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156123f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241b9190614980565b61243857604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87166000908152600a60205260409020546001600160a01b03908116908716810361247b5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88166000818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156125695763ffffffff88166000908152600b6020526040902080546001600160a01b0319166001600160a01b0383161781556125228743614b6d565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89161255b918c918691614d7f565b60405180910390a1506125cc565b63ffffffff88166000908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916125c3918b918591614d7f565b60405180910390a15b5050505050505050565b6125de6138a7565b6125e98383836139f5565b505050565b612605826125ff60208601866142ec565b3361217c565b612622576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040822090829061264b908701876142ec565b63ffffffff168152602080820192909252604090810160009081208784013582529092529020546001600160401b03169050612688848483613924565b6126a55760405163751cb20f60e01b815260040160405180910390fd5b6126b0848483613a18565b6126cc5760405162bbf0e560e11b815260040160405180910390fd5b6126f8836126dd60208701876142ec565b60208701356126f26060890160408a01614827565b86613ad5565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161272b93929190614da6565b60405180910390a150505050565b6001600160a01b038316600090815260036020908152604080832063ffffffff8616845282528083208484529091528120548190612781906001600160401b03166001614dce565b90506127b0817f0000000000000000000000000000000000000000000000000000000000000000878787613b3b565b95945050505050565b6127c16138a7565b6001600160a01b038116600090815260056020526040902054819060ff166127fc57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b0381161561289f576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561284c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128709190614951565b60028111156128815761288161493b565b0361289f57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561293b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156128fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291e9190614980565b61293b57604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86166000908152600960205260409020546001600160a01b0380871691160361297c5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff861660008181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f591016111dd565b6001600160a01b03808316600090815260066020908152604080832063ffffffff861684529091529020541680611655575063ffffffff81166000908152600960205260409020546001600160a01b03168061165557604051636c1ccdb560e01b815260040160405180910390fd5b612a596138a7565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590612ade908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613a18565b336000818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d79839819101612aa3565b6001600160a01b038216600090815260056020526040902054829060ff16612bae57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612c51576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c229190614951565b6002811115612c3357612c3361493b565b03612c51576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612ced576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd09190614980565b612ced57604051630e476aa960e21b815260040160405180910390fd5b612cf56138a7565b84600003612d295763ffffffff87166000908152600b6020526040812080546001600160a01b031916815560010155612d7e565b438511612d49576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87166000908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610d3d93929190614d7f565b612dba84613469565b612dc5848484612256565b612dd0906001614dce565b6001600160401b0316816001600160401b031614612e0c57604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001600160a01b038416600081815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161272b565b6040805180820190915260008082526020820152612ec460a08401608085016149cd565b8015612ed95750600e546001600160a01b0316155b15612ef757604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b03821660009081526003602090815260408220908290612f20908701876142ec565b63ffffffff16815260208082019290925260409081016000908120878401358252909252902054612f5b906001600160401b03166001614dce565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001866000016020810190612fc791906142ec565b63ffffffff1681526020018660200135815260200161301f847f0000000000000000000000000000000000000000000000000000000000000000888a600001602081019061301591906142ec565b8b60200135613b3b565b81526020016130316040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061307e9050856109b160208901896142ec565b90506001600160a01b03811663d80e9bd98361309d60608a018a614dee565b6130ad60a08c0160808d016149cd565b6040518563ffffffff1660e01b81526004016130cc9493929190614e34565b6040805180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190614f28565b6131146138a7565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561315f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131839190614980565b6131a05760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156131da5760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af59101612aa3565b6132786138a7565b6001600160a01b0381166132a257604051631e4fbdf760e01b81526000600482015260240161132a565b6132ab816138d4565b50565b6001600160a01b038516600090815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b0390811690841681101561339c57600181015b846001600160401b0316816001600160401b03161161334f5761331f888888846139a8565b61334757604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001016132fa565b506001600160a01b038716600090815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b038916600090815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461341657604051637182306f60e01b8152600481018290526024810184905260440161132a565b50506001600160a01b03909516600090815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b0382161480159061349c57506001600160a01b038181166000908152600f6020526040902054163314155b156132ab5760405163c4c5259360e01b815260040160405180910390fd5b6134c2613e40565b600080613533856134d660208701876142ec565b6001600160a01b0391909116600090815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b0316815260200186600001602081019061359f91906142ec565b63ffffffff168152602001866020013581526020016135ed847f00000000000000000000000000000000000000000000000000000000000000008a8a600001602081019061301591906142ec565b81526020016135ff6040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061364c9050876109b160208901896142ec565b90506000806001600160a01b038316634389e58f8561366e60608c018c614dee565b61367e60a08e0160808f016149cd565b6040518563ffffffff1660e01b815260040161369d9493929190614e34565b6000604051808303816000875af11580156136bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136e49190810190614f44565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161371860608b018b614dee565b866040516137299493929190614f92565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b600081156137fd57600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156137b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137da9190614fd2565b9050806000036137fd57604051631775123760e01b815260040160405180910390fd5b919050565b82518210806138145750808360200151115b156125e95782516020840151604051634f3ec0d360e01b815260048101929092526024820184905260448201526064810182905260840161132a565b831561386157613861858386613bb4565b82841015613876576138768582868603613bb4565b5050505050565b831561388d5761388d8285613bef565b828410156138a1576138a181858503613bef565b50505050565b6000546001600160a01b03163314611bcc5760405163118cdaa760e01b815233600482015260240161132a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080826001600160401b031611806122ae5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d90613967908790600401614feb565b602060405180830381865afa158015613984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ae9190614980565b6001600160a01b038416600090815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b038316613a0d576125e98282613bef565b6125e9838383613bb4565b60006001600160401b038216613a346060860160408701614827565b6001600160401b031611806122ae57506001600160a01b03831660009081526002602090815260408220908290613a6d908801886142ec565b63ffffffff1663ffffffff1681526020019081526020016000206000866020013581526020019081526020016000206000866040016020810190613ab19190614827565b6001600160401b031681526020810191909152604001600020541415949350505050565b80613af3576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b03909416600090815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b600085856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b6001600160a01b038216613bdb576040516306b7a93160e41b815260040160405180910390fd5b6125e96001600160a01b0384168383613c9c565b6001600160a01b038216613c16576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613c63576040519150601f19603f3d011682016040523d82523d6000602084013e613c68565b606091505b50509050806125e957604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161132a565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b1790526125e991859190600090613cfa90841683613d48565b90508051600014158015613d1f575080806020019051810190613d1d9190614980565b155b156125e957604051635274afe760e01b81526001600160a01b038416600482015260240161132a565b6060611d1f8383600084600080856001600160a01b03168486604051613d6e9190614ff9565b60006040518083038185875af1925050503d8060008114613dab576040519150601f19603f3d011682016040523d82523d6000602084013e613db0565b606091505b50915091506112ae868383606082613dd057613dcb82613e17565b611d1f565b8151158015613de757506001600160a01b0384163b155b15613e1057604051639996b31560e01b81526001600160a01b038516600482015260240161132a565b5080611d1f565b805115613e275780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001613e82604051806040016040528060008152602001600081525090565b905290565b600060608284031215613e9957600080fd5b50919050565b80356001600160a01b03811681146137fd57600080fd5b60008083601f840112613ec857600080fd5b5081356001600160401b03811115613edf57600080fd5b60208301915083602082850101111561149e57600080fd5b600080600080600080600060e0888a031215613f1257600080fd5b613f1c8989613e87565b9650613f2a60608901613e9f565b95506080880135945060a08801356001600160401b0380821115613f4d57600080fd5b613f598b838c01613eb6565b909650945060c08a0135915080821115613f7257600080fd5b50613f7f8a828b01613eb6565b989b979a50959850939692959293505050565b803563ffffffff811681146137fd57600080fd5b60008060008060808587031215613fbc57600080fd5b613fc585613e9f565b9350613fd360208601613f92565b9250613fe160408601613e9f565b9396929550929360600135925050565b6000806040838503121561400457600080fd5b82356001600160401b0381111561401a57600080fd5b830160a0818603121561402c57600080fd5b915061403a60208401613e9f565b90509250929050565b6000608082019050825182526001600160401b036020840151166020830152604083015161407e604084018280518252602090810151910152565b5092915050565b600080600080600060c0868803121561409d57600080fd5b6140a686613e9f565b94506140b58760208801613e87565b93506080860135925060a08601356001600160401b038111156140d757600080fd5b6140e388828901613eb6565b969995985093965092949392505050565b6000806000806080858703121561410a57600080fd5b61411385613e9f565b935061412160208601613e9f565b925061412f60408601613f92565b915061413d60608601613f92565b905092959194509250565b60005b8381101561416357818101518382015260200161414b565b50506000910152565b60008151808452614184816020860160208601614148565b601f01601f19169290920160200192915050565b602081526000611d1f602083018461416c565b80356001600160401b03811681146137fd57600080fd5b600080600080600060a086880312156141da57600080fd5b6141e386613e9f565b94506141f160208701613f92565b935060408601359250614206606087016141ab565b949793965091946080013592915050565b803561ffff811681146137fd57600080fd5b6000806000806080858703121561423f57600080fd5b61424885613e9f565b935061425660208601613e9f565b92506040850135915061413d60608601614217565b6000806040838503121561427e57600080fd5b61428783613e9f565b915061403a60208401613f92565b6000602082840312156142a757600080fd5b611d1f82613e9f565b6000806000606084860312156142c557600080fd5b6142ce84613e9f565b92506142dc60208501613f92565b9150604084013590509250925092565b6000602082840312156142fe57600080fd5b611d1f82613f92565b6000806000806000806000806000806000806101208d8f03121561432a57600080fd5b6143338d613e9f565b9b5061434160208e01613e9f565b9a5060408d0135995061435660608e01614217565b985060808d0135975060a08d013596506001600160401b0360c08e0135111561437e57600080fd5b61438e8e60c08f01358f01613eb6565b90965094506001600160401b0360e08e013511156143ab57600080fd5b6143bb8e60e08f01358f01613eb6565b90945092506001600160401b036101008e013511156143d957600080fd5b6143ea8e6101008f01358f01613eb6565b81935080925050509295989b509295989b509295989b565b60008060008060008060008060008060006101408c8e03121561442457600080fd5b61442e8d8d613e87565b9a5061443c60608d01613e9f565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e0135111561446c57600080fd5b61447c8e60e08f01358f01613eb6565b90975095506101008d013581101561449357600080fd5b6144a48e6101008f01358f01613eb6565b90955093506101208d01358110156144bb57600080fd5b506144cd8d6101208e01358e01613eb6565b81935080925050509295989b509295989b9093969950565b600080600080606085870312156144fb57600080fd5b61450485613e9f565b935061451260208601613e9f565b925060408501356001600160401b038082111561452e57600080fd5b818701915087601f83011261454257600080fd5b81358181111561455157600080fd5b8860208260051b850101111561456657600080fd5b95989497505060200194505050565b60008060008060006080868803121561458d57600080fd5b61459686613e9f565b9450602086013593506145ab60408701614217565b925060608601356001600160401b038111156140d757600080fd5b600080608083850312156145d957600080fd5b6145e38484613e87565b915061403a60608401613e9f565b6020808252825182820181905260009190848201906040850190845b818110156146325783516001600160a01b03168352928401929184019160010161460d565b50909695505050505050565b60008060008060008060008060c0898b03121561465a57600080fd5b61466389613e9f565b975061467160208a01613e9f565b96506040890135955061468660608a01614217565b945060808901356001600160401b03808211156146a257600080fd5b6146ae8c838d01613eb6565b909650945060a08b01359150808211156146c757600080fd5b506146d48b828c01613eb6565b999c989b5096995094979396929594505050565b6000806000606084860312156146fd57600080fd5b61470684613e9f565b925061471460208501613f92565b915061472260408501613e9f565b90509250925092565b60008060006060848603121561474057600080fd5b61474984613f92565b92506142dc60208501613e9f565b60008060006060848603121561476c57600080fd5b61474984613e9f565b600080600060a0848603121561478a57600080fd5b6147948585613e87565b92506147a260608501613e9f565b9150608084013590509250925092565b600080604083850312156147c557600080fd5b61402c83613f92565b600080600080608085870312156147e457600080fd5b6147ed85613e9f565b93506147fb60208601613f92565b92506040850135915061413d606086016141ab565b815181526020808301519082015260408101611655565b60006020828403121561483957600080fd5b611d1f826141ab565b838152818360208301376000910160200190815292915050565b63ffffffff61486a82613f92565b168252602081013560208301526001600160401b0361488b604083016141ab565b1660408301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6148c8818961485c565b86606082015260e0608082015260006148e560e083018789614895565b6001600160a01b03861660a084015282810360c0840152614907818587614895565b9a9950505050505050505050565b60808101614923828561485c565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561496357600080fd5b815160038110611d1f57600080fd5b80151581146132ab57600080fd5b60006020828403121561499257600080fd5b8151611d1f81614972565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b6000602082840312156149df57600080fd5b8135611d1f81614972565b634e487b7160e01b600052604160045260246000fd5b600082601f830112614a1157600080fd5b81516001600160401b0380821115614a2b57614a2b6149ea565b604051601f8301601f19908116603f01168101908282118183101715614a5357614a536149ea565b81604052838152866020858801011115614a6c57600080fd5b6112ae846020830160208901614148565b600060208284031215614a8f57600080fd5b81516001600160401b03811115614aa557600080fd5b6122ae84828501614a00565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201526000614b1e60e08301888a614895565b82810360a0840152614b31818789614895565b905082810360c0840152614b46818587614895565b9d9c50505050505050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561165557611655614b57565b6000610120614b8f838e61485c565b8b60608401528a60808401528960a08401528060c0840152614bb4818401898b614895565b905082810360e0840152614bc9818789614895565b9050828103610100840152614b46818587614895565b6001600160a01b03841681526040602080830182905282820184905260009190606090818501600587901b8601830188865b89811015614cc257888303605f190184528135368c9003605e19018112614c3757600080fd5b8b0163ffffffff80614c4883613f92565b16855280614c57888401613f92565b16878601525087810135601e19823603018112614c7357600080fd5b0185810190356001600160401b03811115614c8d57600080fd5b803603821315614c9c57600080fd5b8789860152614cae8886018284614895565b958701959450505090840190600101614c11565b50909a9950505050505050505050565b8183823760009101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a060808201819052600090614d209083018486614895565b98975050505050505050565b600060018060a01b03808a16835288602084015260a06040840152614d5560a08401888a614895565b81871660608501528381036080850152614d70818688614895565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614db4828661485c565b6001600160a01b0393909316606082015260800152919050565b6001600160401b0381811683821601908082111561407e5761407e614b57565b6000808335601e19843603018112614e0557600080fd5b8301803591506001600160401b03821115614e1f57600080fd5b60200191503681900382131561149e57600080fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a0830152850151600090614e8360c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614eb461014084018261416c565b90508281036020840152614ec9818688614895565b9150506127b0604083018415159052565b600060408284031215614eec57600080fd5b604051604081018181106001600160401b0382111715614f0e57614f0e6149ea565b604052825181526020928301519281019290925250919050565b600060408284031215614f3a57600080fd5b611d1f8383614eda565b60008060608385031215614f5757600080fd5b614f618484614eda565b915060408301516001600160401b03811115614f7c57600080fd5b614f8885828601614a00565b9150509250929050565b606081526000614fa5606083018761416c565b8281036020840152614fb8818688614895565b91505060018060a01b038316604083015295945050505050565b600060208284031215614fe457600080fd5b5051919050565b60608101611655828461485c565b6000825161500b818460208701614148565b919091019291505056fea264697066735822122060b78f73c9ab9c1651b5848f9a662a4d7443b5174845f63dab183c0e0ef4aa8b64736f6c63430008160033608060405234801561001057600080fd5b506101c3806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a7146100655780631881d94d1461008d57806354fd4d501461009c5780636750cd4c146100c3575b604051632657b6c360e01b815260040160405180910390fd5b61007861007336600461010e565b6100d7565b60405190151581526020015b60405180910390f35b6002604051610084919061013f565b6040805167ffffffffffffffff815260ff6020820152600291810191909152606001610084565b6100786100d1366004610167565b50600190565b60006001600160e01b031982166325fc096160e21b148061010857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561012057600080fd5b81356001600160e01b03198116811461013857600080fd5b9392505050565b602081016003831061016157634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561017957600080fd5b813563ffffffff8116811461013857600080fdfea26469706673582212201492a62cde195effaf02cad81258b16b83979b7f432c3fe0ca641db583822bb764736f6c63430008160033","sourceMap":"2770:15372:74:-:0;;;527:1:50;534:42;;3175:82:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3249:4;3224:6;-1:-1:-1;;;;;1273:26:105;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:105;;1350:1;1322:31;;;620:51:145;593:18;;1322:31:105;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;1064:10:48;;;;1634:23:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1609:49:47;;;;;1668:31;;:15;:31::i;:::-;3175:82:74;;2770:15372;;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;6264:511:47:-;1531:13:105;:11;:13::i;:::-;6376:62:47::1;::::0;-1:-1:-1;;;6376:62:47;;-1:-1:-1;;;6376:62:47::1;::::0;::::1;826:52:145::0;-1:-1:-1;;;;;6376:31:47;::::1;::::0;::::1;::::0;799:18:145;;6376:62:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6371:108;;6447:32;;-1:-1:-1::0;;;6447:32:47::1;;;;;;;;;;;6371:108;-1:-1:-1::0;;;;;6534:25:47;::::1;;::::0;;;:19:::1;:25;::::0;;;;;::::1;;6530:67;;;6568:29;;-1:-1:-1::0;;;6568:29:47::1;;;;;;;;;;;6530:67;-1:-1:-1::0;;;;;6657:25:47;::::1;;::::0;;;:19:::1;:25;::::0;;;;;;;:32;;-1:-1:-1;;6657:32:47::1;6685:4;6657:32:::0;;::::1;::::0;;;6699:19:::1;:30:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;6699:30:47::1;::::0;::::1;::::0;;6745:23;;620:51:145;;;6745:23:47::1;::::0;593:18:145;6745:23:47::1;;;;;;;6264:511:::0;:::o;1796:162:105:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:105;735:10:120;1855:23:105;1851:101;;1901:40;;-1:-1:-1;;;1901:40:105;;735:10:120;1901:40:105;;;620:51:145;593:18;;1901:40:105;474:203:145;1851:101:105;1796:162::o;2770:15372:74:-;;;;;;;;:::o;14:455:145:-;92:6;100;153:2;141:9;132:7;128:23;124:32;121:52;;;169:1;166;159:12;121:52;201:9;195:16;251:10;244:5;240:22;233:5;230:33;220:61;;277:1;274;267:12;220:61;350:2;335:18;;329:25;300:5;;-1:-1:-1;;;;;;385:33:145;;373:46;;363:74;;433:1;430;423:12;363:74;456:7;446:17;;;14:455;;;;;:::o;889:277::-;956:6;1009:2;997:9;988:7;984:23;980:32;977:52;;;1025:1;1022;1015:12;977:52;1057:9;1051:16;1110:5;1103:13;1096:21;1089:5;1086:32;1076:60;;1132:1;1129;1122:12;1076:60;1155:5;889:277;-1:-1:-1;;;889:277:145:o;:::-;2770:15372:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106103505760003560e01c80639132e5c3116101c6578063c9fc7bcd116100f7578063ddc28c5811610095578063e8964e811161006f578063e8964e8114610b8f578063ef667aa114610baf578063f2fde38b14610bfa578063f64be4c714610c1a57600080fd5b8063ddc28c5814610b2e578063e1758bd814610b5b578063e4fe1d9414610b6f57600080fd5b8063d4b4ec8f116100d1578063d4b4ec8f14610a72578063d70b890214610a92578063dc706a6214610ab2578063dc93c8a214610ae257600080fd5b8063c9fc7bcd146109f6578063ca5eb5e114610a3d578063cb5026b914610a5d57600080fd5b8063a7229fd911610164578063aafea3121161013e578063aafea31214610976578063b96a277f14610996578063c28e0eed146109b6578063c9a54a99146109d657600080fd5b8063a7229fd914610916578063a825d74714610936578063aafe5e071461095657600080fd5b80639c6d7340116101a05780639c6d73401461086f5780639d7f9775146108b6578063a0dd43fc146108d6578063a718531b146108f657600080fd5b80639132e5c31461081a57806391d20fa11461083c5780639535ff301461084f57600080fd5b80635b17bb70116102a05780636f50a8031161023e57806379624ca91161021857806379624ca9146107a35780637cb59012146107bc578063861e1ca5146107dc5780638da5cb5b146107fc57600080fd5b80636f50a80314610724578063715018a61461075a578063733180911461076f57600080fd5b80636a14d7151161027a5780636a14d715146106655780636bf73fa3146106855780636dbd9f90146106a55780636e83f5bb146106c557600080fd5b80635b17bb70146105b65780636750cd4c14610615578063697fe6b61461064557600080fd5b80632baf0be71161030d578063402f8468116102e7578063402f8468146104c057806340f80683146104ff578063416ecebf1461051f578063587cde1e1461056857600080fd5b80632baf0be7146104355780632e80fbf31461045957806335d330b01461047957600080fd5b80630c0c389e1461035557806314f651a91461036a578063183c834f146103a85780632637a450146103c85780632a56c1b0146103e85780632b3197b914610408575b600080fd5b610368610363366004613ef7565b610c50565b005b34801561037657600080fd5b5061037f610d4e565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103b457600080fd5b506103686103c3366004613fa6565b610d80565b6103db6103d6366004613ff1565b611027565b60405161039f9190614043565b3480156103f457600080fd5b50610368610403366004614085565b61114d565b34801561041457600080fd5b506104286104233660046140f4565b6111ed565b60405161039f9190614198565b34801561044157600080fd5b5061044b60001981565b60405190815260200161039f565b34801561046557600080fd5b506103686104743660046141c2565b6112b8565b34801561048557600080fd5b5061044b610494366004614229565b600c60209081526000948552604080862082529385528385208152918452828420909152825290205481565b3480156104cc57600080fd5b506104e06104db36600461426b565b611427565b604080516001600160a01b03909316835290151560208301520161039f565b34801561050b57600080fd5b5061036861051a3660046141c2565b6114a5565b34801561052b57600080fd5b506105537f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161039f565b34801561057457600080fd5b5061059e610583366004614295565b600f602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161039f565b3480156105c257600080fd5b506105fd6105d13660046142b0565b60016020908152600093845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161039f565b34801561062157600080fd5b506106356106303660046142ec565b61160b565b604051901515815260200161039f565b34801561065157600080fd5b50610368610660366004614307565b61165b565b34801561067157600080fd5b50610368610680366004613fa6565b6116d0565b34801561069157600080fd5b506103686106a0366004614402565b611aae565b3480156106b157600080fd5b506103686106c03660046144e5565b611b18565b3480156106d157600080fd5b506107056106e03660046142ec565b600b60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161039f565b34801561073057600080fd5b5061059e61073f3660046142ec565b600a602052600090815260409020546001600160a01b031681565b34801561076657600080fd5b50610368611bba565b34801561077b57600080fd5b5061059e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107af57600080fd5b50600d5460011415610635565b3480156107c857600080fd5b506103686107d7366004614575565b611bce565b3480156107e857600080fd5b506106356107f73660046145c6565b611cba565b34801561080857600080fd5b506000546001600160a01b031661059e565b34801561082657600080fd5b5061082f611d26565b60405161039f91906145f1565b61036861084a36600461463e565b611d88565b34801561085b57600080fd5b5061036861086a3660046146e8565b611f18565b34801561087b57600080fd5b506105fd61088a3660046142b0565b60036020908152600093845260408085208252928452828420905282529020546001600160401b031681565b3480156108c257600080fd5b506106356108d13660046146e8565b61217c565b3480156108e257600080fd5b506105fd6108f13660046142b0565b612256565b34801561090257600080fd5b5061036861091136600461472b565b6122b6565b34801561092257600080fd5b50610368610931366004614757565b6125d6565b34801561094257600080fd5b50610368610951366004614775565b6125ee565b34801561096257600080fd5b5061044b6109713660046142b0565b612739565b34801561098257600080fd5b506103686109913660046147b2565b6127b9565b3480156109a257600080fd5b5061059e6109b136600461426b565b6129e2565b3480156109c257600080fd5b506103686109d1366004614295565b612a51565b3480156109e257600080fd5b506106356109f13660046145c6565b612aae565b348015610a0257600080fd5b5061044b610a113660046147ce565b600260209081526000948552604080862082529385528385208152918452828420909152825290205481565b348015610a4957600080fd5b50610368610a58366004614295565b612b13565b348015610a6957600080fd5b5061044b600081565b348015610a7e57600080fd5b50610368610a8d36600461472b565b612b73565b348015610a9e57600080fd5b50610368610aad3660046147ce565b612db1565b348015610abe57600080fd5b50610635610acd366004614295565b60056020526000908152604090205460ff1681565b348015610aee57600080fd5b50610635610afd36600461426b565b6001600160a01b03918216600090815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610b3a57600080fd5b50610b4e610b49366004613ff1565b612ea0565b60405161039f9190614810565b348015610b6757600080fd5b50600061059e565b348015610b7b57600080fd5b50600e5461059e906001600160a01b031681565b348015610b9b57600080fd5b50610368610baa366004614295565b61310c565b348015610bbb57600080fd5b50610705610bca36600461426b565b6008602090815260009283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610c0657600080fd5b50610368610c15366004614295565b613270565b348015610c2657600080fd5b5061059e610c353660046142ec565b6009602052600090815260409020546001600160a01b031681565b610c9f86610c6160208a018a6142ec565b60208a0135610c7660608c0160408d01614827565b898989604051602001610c8b93929190614842565b6040516020818303038152906040526132ae565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610cda908b908a908a908a9033908b908b906004016148be565b6000604051808303818588803b158015610cf357600080fd5b505af1158015610d07573d6000803e3d6000fd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d3d929190614915565b60405180910390a150505050505050565b600080610d5e600d546001141590565b610d6a57600080610d78565b610d78600d5460a081901c91565b915091509091565b6001600160a01b038216600090815260056020526040902054829060ff16610dbb57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e5e576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f9190614951565b6002811115610e4057610e4061493b565b03610e5e576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610efa576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190614980565b610efa57604051630e476aa960e21b815260040160405180910390fd5b610f0388613469565b6000610f0f8989611427565b9150508015610f3157604051633c075f7560e01b815260040160405180910390fd5b85600003610f79576001600160a01b038916600090815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610fdf565b438611610f99576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b03898116600090815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051611014949392919061499d565b60405180910390a1505050505050505050565b61102f613e40565b61103c60208401846142ec565b336001600d54146110605760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561108e908601608087016149cd565b80156110a35750600e546001600160a01b0316155b156110c157604051632d7b695560e11b815260040160405180910390fd5b6000806110ce33886134ba565b9150915060006110db3490565b905060006110f76110f260a08b0160808c016149cd565b613766565b905061110884604001518383613802565b600e5460408501516020015161112a916001600160a01b03169083868c613850565b60408401515161113c9083858b61387d565b50506001600d555095945050505050565b61115685613469565b600083838360405160200161116d93929190614842565b60408051601f1981840301815291905290506111ab8661119060208801886142ec565b60208801356111a560608a0160408b01614827565b856132ae565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111dd929190614915565b60405180910390a1505050505050565b6001600160a01b038316600090815260056020526040902054606090849060ff1661122b57604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf790606401600060405180830381865afa158015611286573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ae9190810190614a7d565b9695505050505050565b6112c185613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461133357604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b039081169084161180159061137f575080155b156113a857604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190206000199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb55292906111dd90879087908a9088908890614ab1565b6001600160a01b03808316600090815260076020908152604080832063ffffffff86168452909152812054909116908161149e5763ffffffff83166000908152600a60205260409020546001600160a01b031691508161149a57604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b6114ae85613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461151b57604051637182306f60e01b8152600481018290526024810183905260440161132a565b80158061156557506001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561158e57604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e906111dd90879087908a9088908890614ab1565b63ffffffff81166000908152600960205260408120546001600160a01b031615801590611655575063ffffffff82166000908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116ba9a99989796959493929190614aee565b60405180910390a4505050505050505050505050565b6001600160a01b038216600090815260056020526040902054829060ff1615801561170357506001600160a01b03811615155b156117215760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b038116156117c4576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117959190614951565b60028111156117a6576117a661493b565b036117c4576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615611860576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190614980565b61186057604051630e476aa960e21b815260040160405180910390fd5b61186988613469565b6001600160a01b03808916600090815260076020908152604080832063ffffffff8c168452909152902054811690871681036118b85760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03898116600081815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a18515611a32576001600160a01b038116158061195b57506001600160a01b038716155b1561197957604051633c075f7560e01b815260040160405180910390fd5b60006040518060400160405280836001600160a01b0316815260200188436119a19190614b6d565b90526001600160a01b038b8116600090815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611a24918d918d91879161499d565b60405180910390a150611aa3565b6001600160a01b038916600090815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611014918c918c9186919061499d565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611b039a99989796959493929190614b80565b60405180910390a35050505050505050505050565b6001600160a01b038316600090815260056020526040902054839060ff16611b5357604051631bc58ef360e11b815260040160405180910390fd5b611b5c85613469565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b8c90889087908790600401614bdf565b600060405180830381600087803b158015611ba657600080fd5b505af1158015611aa3573d6000803e3d6000fd5b611bc26138a7565b611bcc60006138d4565b565b336000908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611c2457604051630542086560e21b815260040160405180910390fd5b8181604051611c34929190614cd2565b60408051918290038220336000818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611cab919088908890889088908890614ce2565b60405180910390a15050505050565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590611cea908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613924565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050505050905090565b6001600160a01b038089166000908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611dd39087908790614cd2565b60405180910390209050808214611e07576040516335ca595f60e01b8152600481018390526024810182905260440161132a565b6001600160a01b03808b166000908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611e76908e908d908c908c9033908d908d90600401614d2c565b6000604051808303818588803b158015611e8f57600080fd5b505af1158015611ea3573d6000803e3d6000fd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611f0494939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b038116600090815260056020526040902054819060ff16158015611f4b57506001600160a01b03811615155b15611f695760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b0381161561200c576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdd9190614951565b6002811115611fee57611fee61493b565b0361200c57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b038216156120a8576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190614980565b6120a857604051630e476aa960e21b815260040160405180910390fd5b6120b187613469565b6001600160a01b03878116600090815260066020908152604080832063ffffffff8b1684529091529020548187169116036120ff5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03878116600081815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d3d565b600080600061218b8686611427565b91509150816001600160a01b0316846001600160a01b0316036121b357600192505050611d1f565b6000816121e8576001600160a01b038716600090815260086020908152604080832063ffffffff8a16845290915290206121fe565b63ffffffff86166000908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156122385750438160200151115b156122495760019350505050611d1f565b5060009695505050505050565b6001600160a01b038316600090815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b6122a1858585846001016139a8565b156122ae57600101612292565b949350505050565b6122be6138a7565b6001600160a01b038216600090815260056020526040902054829060ff166122f957604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b0381161561239c576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236d9190614951565b600281111561237e5761237e61493b565b0361239c576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612438576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156123f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241b9190614980565b61243857604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87166000908152600a60205260409020546001600160a01b03908116908716810361247b5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88166000818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156125695763ffffffff88166000908152600b6020526040902080546001600160a01b0319166001600160a01b0383161781556125228743614b6d565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89161255b918c918691614d7f565b60405180910390a1506125cc565b63ffffffff88166000908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916125c3918b918591614d7f565b60405180910390a15b5050505050505050565b6125de6138a7565b6125e98383836139f5565b505050565b612605826125ff60208601866142ec565b3361217c565b612622576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040822090829061264b908701876142ec565b63ffffffff168152602080820192909252604090810160009081208784013582529092529020546001600160401b03169050612688848483613924565b6126a55760405163751cb20f60e01b815260040160405180910390fd5b6126b0848483613a18565b6126cc5760405162bbf0e560e11b815260040160405180910390fd5b6126f8836126dd60208701876142ec565b60208701356126f26060890160408a01614827565b86613ad5565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161272b93929190614da6565b60405180910390a150505050565b6001600160a01b038316600090815260036020908152604080832063ffffffff8616845282528083208484529091528120548190612781906001600160401b03166001614dce565b90506127b0817f0000000000000000000000000000000000000000000000000000000000000000878787613b3b565b95945050505050565b6127c16138a7565b6001600160a01b038116600090815260056020526040902054819060ff166127fc57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b0381161561289f576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561284c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128709190614951565b60028111156128815761288161493b565b0361289f57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561293b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156128fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291e9190614980565b61293b57604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86166000908152600960205260409020546001600160a01b0380871691160361297c5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff861660008181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f591016111dd565b6001600160a01b03808316600090815260066020908152604080832063ffffffff861684529091529020541680611655575063ffffffff81166000908152600960205260409020546001600160a01b03168061165557604051636c1ccdb560e01b815260040160405180910390fd5b612a596138a7565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590612ade908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613a18565b336000818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d79839819101612aa3565b6001600160a01b038216600090815260056020526040902054829060ff16612bae57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612c51576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c229190614951565b6002811115612c3357612c3361493b565b03612c51576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612ced576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd09190614980565b612ced57604051630e476aa960e21b815260040160405180910390fd5b612cf56138a7565b84600003612d295763ffffffff87166000908152600b6020526040812080546001600160a01b031916815560010155612d7e565b438511612d49576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87166000908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610d3d93929190614d7f565b612dba84613469565b612dc5848484612256565b612dd0906001614dce565b6001600160401b0316816001600160401b031614612e0c57604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001600160a01b038416600081815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161272b565b6040805180820190915260008082526020820152612ec460a08401608085016149cd565b8015612ed95750600e546001600160a01b0316155b15612ef757604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b03821660009081526003602090815260408220908290612f20908701876142ec565b63ffffffff16815260208082019290925260409081016000908120878401358252909252902054612f5b906001600160401b03166001614dce565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001866000016020810190612fc791906142ec565b63ffffffff1681526020018660200135815260200161301f847f0000000000000000000000000000000000000000000000000000000000000000888a600001602081019061301591906142ec565b8b60200135613b3b565b81526020016130316040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061307e9050856109b160208901896142ec565b90506001600160a01b03811663d80e9bd98361309d60608a018a614dee565b6130ad60a08c0160808d016149cd565b6040518563ffffffff1660e01b81526004016130cc9493929190614e34565b6040805180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190614f28565b6131146138a7565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561315f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131839190614980565b6131a05760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156131da5760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af59101612aa3565b6132786138a7565b6001600160a01b0381166132a257604051631e4fbdf760e01b81526000600482015260240161132a565b6132ab816138d4565b50565b6001600160a01b038516600090815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b0390811690841681101561339c57600181015b846001600160401b0316816001600160401b03161161334f5761331f888888846139a8565b61334757604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001016132fa565b506001600160a01b038716600090815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b038916600090815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461341657604051637182306f60e01b8152600481018290526024810184905260440161132a565b50506001600160a01b03909516600090815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b0382161480159061349c57506001600160a01b038181166000908152600f6020526040902054163314155b156132ab5760405163c4c5259360e01b815260040160405180910390fd5b6134c2613e40565b600080613533856134d660208701876142ec565b6001600160a01b0391909116600090815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b0316815260200186600001602081019061359f91906142ec565b63ffffffff168152602001866020013581526020016135ed847f00000000000000000000000000000000000000000000000000000000000000008a8a600001602081019061301591906142ec565b81526020016135ff6040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061364c9050876109b160208901896142ec565b90506000806001600160a01b038316634389e58f8561366e60608c018c614dee565b61367e60a08e0160808f016149cd565b6040518563ffffffff1660e01b815260040161369d9493929190614e34565b6000604051808303816000875af11580156136bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136e49190810190614f44565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161371860608b018b614dee565b866040516137299493929190614f92565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b600081156137fd57600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156137b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137da9190614fd2565b9050806000036137fd57604051631775123760e01b815260040160405180910390fd5b919050565b82518210806138145750808360200151115b156125e95782516020840151604051634f3ec0d360e01b815260048101929092526024820184905260448201526064810182905260840161132a565b831561386157613861858386613bb4565b82841015613876576138768582868603613bb4565b5050505050565b831561388d5761388d8285613bef565b828410156138a1576138a181858503613bef565b50505050565b6000546001600160a01b03163314611bcc5760405163118cdaa760e01b815233600482015260240161132a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080826001600160401b031611806122ae5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d90613967908790600401614feb565b602060405180830381865afa158015613984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ae9190614980565b6001600160a01b038416600090815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b038316613a0d576125e98282613bef565b6125e9838383613bb4565b60006001600160401b038216613a346060860160408701614827565b6001600160401b031611806122ae57506001600160a01b03831660009081526002602090815260408220908290613a6d908801886142ec565b63ffffffff1663ffffffff1681526020019081526020016000206000866020013581526020019081526020016000206000866040016020810190613ab19190614827565b6001600160401b031681526020810191909152604001600020541415949350505050565b80613af3576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b03909416600090815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b600085856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b6001600160a01b038216613bdb576040516306b7a93160e41b815260040160405180910390fd5b6125e96001600160a01b0384168383613c9c565b6001600160a01b038216613c16576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613c63576040519150601f19603f3d011682016040523d82523d6000602084013e613c68565b606091505b50509050806125e957604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161132a565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b1790526125e991859190600090613cfa90841683613d48565b90508051600014158015613d1f575080806020019051810190613d1d9190614980565b155b156125e957604051635274afe760e01b81526001600160a01b038416600482015260240161132a565b6060611d1f8383600084600080856001600160a01b03168486604051613d6e9190614ff9565b60006040518083038185875af1925050503d8060008114613dab576040519150601f19603f3d011682016040523d82523d6000602084013e613db0565b606091505b50915091506112ae868383606082613dd057613dcb82613e17565b611d1f565b8151158015613de757506001600160a01b0384163b155b15613e1057604051639996b31560e01b81526001600160a01b038516600482015260240161132a565b5080611d1f565b805115613e275780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001613e82604051806040016040528060008152602001600081525090565b905290565b600060608284031215613e9957600080fd5b50919050565b80356001600160a01b03811681146137fd57600080fd5b60008083601f840112613ec857600080fd5b5081356001600160401b03811115613edf57600080fd5b60208301915083602082850101111561149e57600080fd5b600080600080600080600060e0888a031215613f1257600080fd5b613f1c8989613e87565b9650613f2a60608901613e9f565b95506080880135945060a08801356001600160401b0380821115613f4d57600080fd5b613f598b838c01613eb6565b909650945060c08a0135915080821115613f7257600080fd5b50613f7f8a828b01613eb6565b989b979a50959850939692959293505050565b803563ffffffff811681146137fd57600080fd5b60008060008060808587031215613fbc57600080fd5b613fc585613e9f565b9350613fd360208601613f92565b9250613fe160408601613e9f565b9396929550929360600135925050565b6000806040838503121561400457600080fd5b82356001600160401b0381111561401a57600080fd5b830160a0818603121561402c57600080fd5b915061403a60208401613e9f565b90509250929050565b6000608082019050825182526001600160401b036020840151166020830152604083015161407e604084018280518252602090810151910152565b5092915050565b600080600080600060c0868803121561409d57600080fd5b6140a686613e9f565b94506140b58760208801613e87565b93506080860135925060a08601356001600160401b038111156140d757600080fd5b6140e388828901613eb6565b969995985093965092949392505050565b6000806000806080858703121561410a57600080fd5b61411385613e9f565b935061412160208601613e9f565b925061412f60408601613f92565b915061413d60608601613f92565b905092959194509250565b60005b8381101561416357818101518382015260200161414b565b50506000910152565b60008151808452614184816020860160208601614148565b601f01601f19169290920160200192915050565b602081526000611d1f602083018461416c565b80356001600160401b03811681146137fd57600080fd5b600080600080600060a086880312156141da57600080fd5b6141e386613e9f565b94506141f160208701613f92565b935060408601359250614206606087016141ab565b949793965091946080013592915050565b803561ffff811681146137fd57600080fd5b6000806000806080858703121561423f57600080fd5b61424885613e9f565b935061425660208601613e9f565b92506040850135915061413d60608601614217565b6000806040838503121561427e57600080fd5b61428783613e9f565b915061403a60208401613f92565b6000602082840312156142a757600080fd5b611d1f82613e9f565b6000806000606084860312156142c557600080fd5b6142ce84613e9f565b92506142dc60208501613f92565b9150604084013590509250925092565b6000602082840312156142fe57600080fd5b611d1f82613f92565b6000806000806000806000806000806000806101208d8f03121561432a57600080fd5b6143338d613e9f565b9b5061434160208e01613e9f565b9a5060408d0135995061435660608e01614217565b985060808d0135975060a08d013596506001600160401b0360c08e0135111561437e57600080fd5b61438e8e60c08f01358f01613eb6565b90965094506001600160401b0360e08e013511156143ab57600080fd5b6143bb8e60e08f01358f01613eb6565b90945092506001600160401b036101008e013511156143d957600080fd5b6143ea8e6101008f01358f01613eb6565b81935080925050509295989b509295989b509295989b565b60008060008060008060008060008060006101408c8e03121561442457600080fd5b61442e8d8d613e87565b9a5061443c60608d01613e9f565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e0135111561446c57600080fd5b61447c8e60e08f01358f01613eb6565b90975095506101008d013581101561449357600080fd5b6144a48e6101008f01358f01613eb6565b90955093506101208d01358110156144bb57600080fd5b506144cd8d6101208e01358e01613eb6565b81935080925050509295989b509295989b9093969950565b600080600080606085870312156144fb57600080fd5b61450485613e9f565b935061451260208601613e9f565b925060408501356001600160401b038082111561452e57600080fd5b818701915087601f83011261454257600080fd5b81358181111561455157600080fd5b8860208260051b850101111561456657600080fd5b95989497505060200194505050565b60008060008060006080868803121561458d57600080fd5b61459686613e9f565b9450602086013593506145ab60408701614217565b925060608601356001600160401b038111156140d757600080fd5b600080608083850312156145d957600080fd5b6145e38484613e87565b915061403a60608401613e9f565b6020808252825182820181905260009190848201906040850190845b818110156146325783516001600160a01b03168352928401929184019160010161460d565b50909695505050505050565b60008060008060008060008060c0898b03121561465a57600080fd5b61466389613e9f565b975061467160208a01613e9f565b96506040890135955061468660608a01614217565b945060808901356001600160401b03808211156146a257600080fd5b6146ae8c838d01613eb6565b909650945060a08b01359150808211156146c757600080fd5b506146d48b828c01613eb6565b999c989b5096995094979396929594505050565b6000806000606084860312156146fd57600080fd5b61470684613e9f565b925061471460208501613f92565b915061472260408501613e9f565b90509250925092565b60008060006060848603121561474057600080fd5b61474984613f92565b92506142dc60208501613e9f565b60008060006060848603121561476c57600080fd5b61474984613e9f565b600080600060a0848603121561478a57600080fd5b6147948585613e87565b92506147a260608501613e9f565b9150608084013590509250925092565b600080604083850312156147c557600080fd5b61402c83613f92565b600080600080608085870312156147e457600080fd5b6147ed85613e9f565b93506147fb60208601613f92565b92506040850135915061413d606086016141ab565b815181526020808301519082015260408101611655565b60006020828403121561483957600080fd5b611d1f826141ab565b838152818360208301376000910160200190815292915050565b63ffffffff61486a82613f92565b168252602081013560208301526001600160401b0361488b604083016141ab565b1660408301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6148c8818961485c565b86606082015260e0608082015260006148e560e083018789614895565b6001600160a01b03861660a084015282810360c0840152614907818587614895565b9a9950505050505050505050565b60808101614923828561485c565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561496357600080fd5b815160038110611d1f57600080fd5b80151581146132ab57600080fd5b60006020828403121561499257600080fd5b8151611d1f81614972565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b6000602082840312156149df57600080fd5b8135611d1f81614972565b634e487b7160e01b600052604160045260246000fd5b600082601f830112614a1157600080fd5b81516001600160401b0380821115614a2b57614a2b6149ea565b604051601f8301601f19908116603f01168101908282118183101715614a5357614a536149ea565b81604052838152866020858801011115614a6c57600080fd5b6112ae846020830160208901614148565b600060208284031215614a8f57600080fd5b81516001600160401b03811115614aa557600080fd5b6122ae84828501614a00565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201526000614b1e60e08301888a614895565b82810360a0840152614b31818789614895565b905082810360c0840152614b46818587614895565b9d9c50505050505050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561165557611655614b57565b6000610120614b8f838e61485c565b8b60608401528a60808401528960a08401528060c0840152614bb4818401898b614895565b905082810360e0840152614bc9818789614895565b9050828103610100840152614b46818587614895565b6001600160a01b03841681526040602080830182905282820184905260009190606090818501600587901b8601830188865b89811015614cc257888303605f190184528135368c9003605e19018112614c3757600080fd5b8b0163ffffffff80614c4883613f92565b16855280614c57888401613f92565b16878601525087810135601e19823603018112614c7357600080fd5b0185810190356001600160401b03811115614c8d57600080fd5b803603821315614c9c57600080fd5b8789860152614cae8886018284614895565b958701959450505090840190600101614c11565b50909a9950505050505050505050565b8183823760009101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a060808201819052600090614d209083018486614895565b98975050505050505050565b600060018060a01b03808a16835288602084015260a06040840152614d5560a08401888a614895565b81871660608501528381036080850152614d70818688614895565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614db4828661485c565b6001600160a01b0393909316606082015260800152919050565b6001600160401b0381811683821601908082111561407e5761407e614b57565b6000808335601e19843603018112614e0557600080fd5b8301803591506001600160401b03821115614e1f57600080fd5b60200191503681900382131561149e57600080fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a0830152850151600090614e8360c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614eb461014084018261416c565b90508281036020840152614ec9818688614895565b9150506127b0604083018415159052565b600060408284031215614eec57600080fd5b604051604081018181106001600160401b0382111715614f0e57614f0e6149ea565b604052825181526020928301519281019290925250919050565b600060408284031215614f3a57600080fd5b611d1f8383614eda565b60008060608385031215614f5757600080fd5b614f618484614eda565b915060408301516001600160401b03811115614f7c57600080fd5b614f8885828601614a00565b9150509250929050565b606081526000614fa5606083018761416c565b8281036020840152614fb8818688614895565b91505060018060a01b038316604083015295945050505050565b600060208284031215614fe457600080fd5b5051919050565b60608101611655828461485c565b6000825161500b818460208701614148565b919091019291505056fea264697066735822122060b78f73c9ab9c1651b5848f9a662a4d7443b5174845f63dab183c0e0ef4aa8b64736f6c63430008160033","sourceMap":"2770:15372:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9753:572;;;;;;:::i;:::-;;:::i;:::-;;1153:158:50;;;;;;;;;;;;;:::i;:::-;;;;1996:10:145;1984:23;;;1966:42;;-1:-1:-1;;;;;2044:32:145;;;2039:2;2024:18;;2017:60;1939:18;1153:158:50;;;;;;;;13111:942:47;;;;;;;;;;-1:-1:-1;13111:942:47;;;;;:::i;:::-;;:::i;5245:1210:74:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11390:344::-;;;;;;;;;;-1:-1:-1;11390:344:74;;;;;:::i;:::-;;:::i;14475:261:47:-;;;;;;;;;;-1:-1:-1;14475:261:47;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;344:69:48:-;;;;;;;;;;-1:-1:-1;344:69:48;-1:-1:-1;;344:69:48;;;;;5759:25:145;;;5747:2;5732:18;344:69:48;5613:177:145;4815:687:48;;;;;;;;;;-1:-1:-1;4815:687:48;;;;;:::i;:::-;;:::i;455:145:49:-;;;;;;;;;;-1:-1:-1;455:145:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4135:379:47;;;;;;;;;;-1:-1:-1;4135:379:47;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;7559:32:145;;;7541:51;;7635:14;;7628:22;7623:2;7608:18;;7601:50;7514:18;4135:379:47;7373:284:145;5920:644:48;;;;;;;;;;-1:-1:-1;5920:644:48;;;;;:::i;:::-;;:::i;486:27::-;;;;;;;;;;;;;;;;;;7836:10:145;7824:23;;;7806:42;;7794:2;7779:18;486:27:48;7662:192:145;2947:58:74;;;;;;;;;;-1:-1:-1;2947:58:74;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2947:58:74;;;;;;-1:-1:-1;;;;;8214:32:145;;;8196:51;;8184:2;8169:18;2947:58:74;8050:203:145;520:126:48;;;;;;;;;;-1:-1:-1;520:126:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;520:126:48;;;;;;-1:-1:-1;;;;;8751:31:145;;;8733:50;;8721:2;8706:18;520:126:48;8589:200:145;9954:173:47;;;;;;;;;;-1:-1:-1;9954:173:47;;;;;:::i;:::-;;:::i;:::-;;;9148:14:145;;9141:22;9123:41;;9111:2;9096:18;9954:173:47;8983:187:145;3537:395:49;;;;;;;;;;-1:-1:-1;3537:395:49;;;;;:::i;:::-;;:::i;11204:1559:47:-;;;;;;;;;;-1:-1:-1;11204:1559:47;;;;;:::i;:::-;;:::i;10627:388:74:-;;;;;;;;;;-1:-1:-1;10627:388:74;;;;;:::i;:::-;;:::i;14185:208:47:-;;;;;;;;;;-1:-1:-1;14185:208:47;;;;;:::i;:::-;;:::i;1509:69::-;;;;;;;;;;-1:-1:-1;1509:69:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1509:69:47;;;;;;;;;;-1:-1:-1;;;;;13014:32:145;;;12996:51;;13078:2;13063:18;;13056:34;;;;12969:18;1509:69:47;12822:274:145;1437:66:47;;;;;;;;;;-1:-1:-1;1437:66:47;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1437:66:47;;;2293:101:105;;;;;;;;;;;;;:::i;744:39:47:-;;;;;;;;;;;;;;;969:106:50;;;;;;;;;;-1:-1:-1;1041:12:50;;527:1;1041:27;;969:106;;1065:402:49;;;;;;;;;;-1:-1:-1;1065:402:49;;;;;:::i;:::-;;:::i;17710:215:74:-;;;;;;;;;;-1:-1:-1;17710:215:74;;;;;:::i;:::-;;:::i;1638:85:105:-;;;;;;;;;;-1:-1:-1;1684:7:105;1710:6;-1:-1:-1;;;;;1710:6:105;1638:85;;2858:118:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2144:1048:49:-;;;;;;:::i;:::-;;:::i;10340:450:47:-;;;;;;;;;;-1:-1:-1;10340:450:47;;;;;:::i;:::-;;:::i;825:115:48:-;;;;;;;;;;-1:-1:-1;825:115:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;825:115:48;;;4887:1218:47;;;;;;;;;;-1:-1:-1;4887:1218:47;;;;;:::i;:::-;;:::i;2523:425:48:-;;;;;;;;;;-1:-1:-1;2523:425:48;;;;;:::i;:::-;;:::i;7763:1045:47:-;;;;;;;;;;-1:-1:-1;7763:1045:47;;;;;:::i;:::-;;:::i;12477:148:74:-;;;;;;;;;;-1:-1:-1;12477:148:74;;;;;:::i;:::-;;:::i;8373:709::-;;;;;;;;;;-1:-1:-1;8373:709:74;;;;;:::i;:::-;;:::i;8256:259:48:-;;;;;;;;;;-1:-1:-1;8256:259:48;;;;;:::i;:::-;;:::i;7038:400:47:-;;;;;;;;;;-1:-1:-1;7038:400:47;;;;;:::i;:::-;;:::i;3524:317::-;;;;;;;;;;-1:-1:-1;3524:317:47;;;;;:::i;:::-;;:::i;12081:133:74:-;;;;;;;;;;-1:-1:-1;12081:133:74;;;;;:::i;:::-;;:::i;17931:209::-;;;;;;;;;;-1:-1:-1;17931:209:74;;;;;:::i;:::-;;:::i;652:167:48:-;;;;;;;;;;-1:-1:-1;652:167:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16136:148:74;;;;;;;;;;-1:-1:-1;16136:148:74;;;;;:::i;:::-;;:::i;283:55:48:-;;;;;;;;;;-1:-1:-1;283:55:48;336:1;283:55;;9156:710:47;;;;;;;;;;-1:-1:-1;9156:710:47;;;;;:::i;:::-;;:::i;4016:359:48:-;;;;;;;;;;-1:-1:-1;4016:359:48;;;;;:::i;:::-;;:::i;948:55:47:-;;;;;;;;;;-1:-1:-1;948:55:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;3847:158;;;;;;;;;;-1:-1:-1;3847:158:47;;;;;:::i;:::-;-1:-1:-1;;;;;3954:20:47;;;3931:4;3954:20;;;:11;:20;;;;;;;;:29;;;;;;;;;;;;;:44;;3847:158;3962:1043:74;;;;;;;;;;-1:-1:-1;3962:1043:74;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15945:99::-;;;;;;;;;;-1:-1:-1;15999:7:74;15945:99;;2918:22;;;;;;;;;;-1:-1:-1;2918:22:74;;;;-1:-1:-1;;;;;2918:22:74;;;6264:511:47;;;;;;;;;;-1:-1:-1;6264:511:47;;;;;:::i;:::-;;:::i;1270:91::-;;;;;;;;;;-1:-1:-1;1270:91:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1270:91:47;;;;;;2543:215:105;;;;;;;;;;-1:-1:-1;2543:215:105;;;;;:::i;:::-;;:::i;1368:63:47:-;;;;;;;;;;-1:-1:-1;1368:63:47;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1368:63:47;;;9753:572:74;10043:106;10057:9;10068:14;;;;:7;:14;:::i;:::-;10084;;;;10100:13;;;;;;;;:::i;:::-;10132:5;10139:8;;10115:33;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10043:13;:106::i;:::-;-1:-1:-1;10159:109:74;;-1:-1:-1;;;10159:109:74;;-1:-1:-1;;;;;10159:39:74;;;;;10207:9;;10159:109;;10219:7;;10228:5;;10235:8;;;;10245:10;;10257;;;;10159:109;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10283:35;10299:7;10308:9;10283:35;;;;;;;:::i;:::-;;;;;;;;9753:572;;;;;;;:::o;1153:158:50:-;1202:6;1210:7;1236:18;1041:12;;527:1;1041:27;;;969:106;1236:18;:68;;1290:1;1301;1236:68;;;1257:29;1273:12;;1437:3;1425:15;;;;1317:160;1257:29;1229:75;;;;1153:158;;:::o;13111:942:47:-;-1:-1:-1;;;;;1765:25:47;;;;;;:19;:25;;;;;;13266:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:47;;;;;;;;;;;1760:68;13285:4;-1:-1:-1;;;;;2114:19:47;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:47::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;-1:-1:-1::0;;;2219:26:47::1;;;;;;;;;;;2149:96;13308:4:::0;13314;-1:-1:-1;;;;;2711:19:47;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:47;;7836:10:145;7824:23;;2751:38:47::2;::::0;::::2;7806:42:145::0;-1:-1:-1;;;;;2751:32:47;::::2;::::0;::::2;::::0;7779:18:145;;2751:38:47::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:47::2;;;;;;;;;;;2746:78;13330:24:::3;13348:5;13330:17;:24::i;:::-;13368:14;13386:30;13404:5;13411:4;13386:17;:30::i;:::-;13365:51;;;13498:9;13494:51;;;13516:29;;-1:-1:-1::0;;;13516:29:47::3;;;;;;;;;;;13494:51;13560:7;13571:1;13560:12:::0;13556:424:::3;;-1:-1:-1::0;;;;;13649:28:47;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;13642:41;;-1:-1:-1;;;;;;13642:41:47::3;::::0;;;::::3;::::0;13556:424:::3;;;13779:12;13768:7;:23;13764:61;;13800:25;;-1:-1:-1::0;;;13800:25:47::3;;;;;;;;;;;13764:61;-1:-1:-1::0;;;;;13865:28:47;;::::3;13839:23;13865:28:::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;13913:18;;-1:-1:-1;;;;;;13913:18:47::3;::::0;;::::3;::::0;;;::::3;::::0;;-1:-1:-1;13945:14:47::3;:24:::0;;;13556:424:::3;13994:52;14019:5;14026:4;14032;14038:7;13994:52;;;;;;;;;:::i;:::-;;;;;;;;13320:733;2265:1:::2;;1838::::1;13111:942:::0;;;;;:::o;5245:1210:74:-;5405:23;;:::i;:::-;5368:14;;;;:7;:14;:::i;:::-;5384:10;527:1:50;733:12;;:27;729:66;;769:26;;-1:-1:-1;;;769:26:50;;;;;;;;;;;729:66;-1:-1:-1;;;841:3:50;821:23;;;;;;;-1:-1:-1;;;;;820:44:50;;;805:12;:59;5444:20:74::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;:47;;;;-1:-1:-1::0;5468:7:74::1;::::0;-1:-1:-1;;;;;5468:7:74::1;:23:::0;5444:47:::1;5440:90;;;5500:30;;-1:-1:-1::0;;;5500:30:74::1;;;;;;;;;;;5440:90;5566:31;5599:20:::0;5623:26:::1;5629:10;5641:7;5623:5;:26::i;:::-;5565:84;;;;5980:22;6005:17;15195:9:::0;;15111:100;6005:17:::1;5980:42:::0;-1:-1:-1;6032:23:74::1;6058:38;6075:20;::::0;;;::::1;::::0;::::1;;:::i;:::-;6058:16;:38::i;:::-;6032:64;;6106:65;6126:7;:11;;;6139:14;6155:15;6106:19;:65::i;:::-;6224:7;::::0;6233:11:::1;::::0;::::1;::::0;:22:::1;;::::0;6214:89:::1;::::0;-1:-1:-1;;;;;6224:7:74::1;::::0;6257:15;6274:12;6288:14;6214:9:::1;:89::i;:::-;6355:11;::::0;::::1;::::0;:21;6344:79:::1;::::0;6378:14;6394:12;6408:14;6344:10:::1;:79::i;:::-;-1:-1:-1::0;;527:1:50;885:12;:26;-1:-1:-1;6441:7:74;5245:1210;-1:-1:-1;;;;;5245:1210:74:o;11390:344::-;11504:24;11522:5;11504:17;:24::i;:::-;11539:20;11579:5;11586:8;;11562:33;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;11562:33:74;;;;;;;;;;-1:-1:-1;11605:76:74;11619:5;11626:14;11562:33;11626:14;;:7;:14;:::i;:::-;11642;;;;11658:13;;;;;;;;:::i;:::-;11673:7;11605:13;:76::i;:::-;;11696:31;11712:7;11721:5;11696:31;;;;;;;:::i;:::-;;;;;;;;11494:240;11390:344;;;;;:::o;14475:261:47:-;-1:-1:-1;;;;;1765:25:47;;;;;;:19;:25;;;;;;14638:19;;14623:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:47;;;;;;;;;;;1760:68;14676:53:::1;::::0;-1:-1:-1;;;14676:53:47;;21966:10:145;22003:15;;;14676:53:47::1;::::0;::::1;21985:34:145::0;-1:-1:-1;;;;;22055:32:145;;;22035:18;;;22028:60;22124:15;;;22104:18;;;22097:43;14676:27:47;::::1;::::0;::::1;::::0;21929:18:145;;14676:53:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;14676:53:47::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;14669:60:::0;14475:261;-1:-1:-1;;;;;;14475:261:47:o;4815:687:48:-;4935:24;4953:5;4935:17;:24::i;:::-;-1:-1:-1;;;;;4995:25:48;;4970:22;4995:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;4995:51:48;;;;;;;;;;5060:30;;;5056:102;;5099:59;;-1:-1:-1;;;5099:59:48;;;;;23500:25:145;;;23541:18;;;23534:34;;;23473:18;;5099:59:48;;;;;;;;5056:102;-1:-1:-1;;;;;5182:23:48;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;:41;;;;;;;;;-1:-1:-1;;;;;5182:41:48;;;5172:51;;;;;;;:91;;-1:-1:-1;5227:36:48;;5172:91;5168:146;;;5284:30;;-1:-1:-1;;;5284:30:48;;-1:-1:-1;;;;;8751:31:145;;5284:30:48;;;8733:50:145;8706:18;;5284:30:48;8589:200:145;5168:146:48;-1:-1:-1;;;;;5349:25:48;;387:26;5349:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;5349:51:48;;;;;;;;;;;-1:-1:-1;;5349:70:48;;5434:61;;;;;5375:7;;5384;;5368:5;;5393:6;;5482:12;;5434:61;:::i;4135:379:47:-;-1:-1:-1;;;;;4263:25:47;;;4218:11;4263:25;;;:14;:25;;;;;;;;:34;;;;;;;;;;;;;;;;4307:201;;4351:30;;;;;;;:21;:30;;;;;;-1:-1:-1;;;;;4351:30:47;;-1:-1:-1;4351:30:47;4395:72;;4427:40;;-1:-1:-1;;;4427:40:47;;;;;;;;;;;4395:72;-1:-1:-1;4493:4:47;4307:201;4135:379;;;;;:::o;5920:644:48:-;6038:24;6056:5;6038:17;:24::i;:::-;-1:-1:-1;;;;;6098:25:48;;6073:22;6098:25;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;6098:51:48;;;;;;;;;;6163:30;;;6159:102;;6202:59;;-1:-1:-1;;;6202:59:48;;;;;23500:25:145;;;23541:18;;;23534:34;;;23473:18;;6202:59:48;23326:248:145;6159:102:48;6275:36;;;:90;;-1:-1:-1;;;;;;6324:23:48;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;:41;;;;;;;;;-1:-1:-1;;;;;6324:41:48;;;6315:50;;;;6275:90;6271:145;;;6386:30;;-1:-1:-1;;;6386:30:48;;-1:-1:-1;;;;;8751:31:145;;6386:30:48;;;8733:50:145;8706:18;;6386:30:48;8589:200:145;6271:145:48;-1:-1:-1;;;;;6433:25:48;;;;;;:18;:25;;;;;;;;:34;;;;;;;;;;:43;;;;;;;;-1:-1:-1;;;;;6433:51:48;;;;;;;;;;6426:58;;;;6499;;;;;6459:7;;6468;;6452:5;;6477:6;;6544:12;;6499:58;:::i;9954:173:47:-;10037:24;;;10014:4;10037:24;;;:18;:24;;;;;;-1:-1:-1;;;;;10037:24:47;:38;;;;:83;;-1:-1:-1;10079:27:47;;;10118:1;10079:27;;;:21;:27;;;;;;-1:-1:-1;;;;;10079:27:47;:41;;10037:83;10030:90;9954:173;-1:-1:-1;;9954:173:47:o;3537:395:49:-;3854:10;-1:-1:-1;;;;;3827:98:49;3849:3;-1:-1:-1;;;;;3827:98:49;3842:5;-1:-1:-1;;;;;3827:98:49;;3866:5;3873:6;3881:4;3887:6;3895:8;;3905:10;;3917:7;;3827:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3537:395;;;;;;;;;;;;:::o;11204:1559:47:-;-1:-1:-1;;;;;2341:25:47;;;;;;:19;:25;;;;;;11369:7;;2341:25;;2340:26;:49;;;;-1:-1:-1;;;;;;2370:19:47;;;;2340:49;2336:100;;;2398:38;;-1:-1:-1;;;2398:38:47;;;;;;;;;;;2336:100;11391:7;-1:-1:-1;;;;;2114:19:47;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:47::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;-1:-1:-1::0;;;2219:26:47::1;;;;;;;;;;;2149:96;11417:7:::0;11426:4;-1:-1:-1;;;;;2711:19:47;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:47;;7836:10:145;7824:23;;2751:38:47::2;::::0;::::2;7806:42:145::0;-1:-1:-1;;;;;2751:32:47;::::2;::::0;::::2;::::0;7779:18:145;;2751:38:47::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:47::2;;;;;;;;;;;2746:78;11442:24:::3;11460:5;11442:17;:24::i;:::-;-1:-1:-1::0;;;;;11494:21:47;;::::3;11477:14;11494:21:::0;;;:14:::3;:21;::::0;;;;;;;:27:::3;::::0;::::3;::::0;;;;;;;;;::::3;::::0;11570:17;::::3;::::0;;11566:51:::3;;11596:21;;-1:-1:-1::0;;;11596:21:47::3;;;;;;;;;;;11566:51;-1:-1:-1::0;;;;;11627:21:47;;::::3;;::::0;;;:14:::3;:21;::::0;;;;;;;:27:::3;::::0;::::3;::::0;;;;;;;;;;:37;;-1:-1:-1;;;;;;11627:37:47::3;::::0;;::::3;::::0;;::::3;::::0;;11679:39;;25272:34:145;;;25322:18;;;25315:51;;;;25382:18;;25375:43;;;;11679:39:47::3;::::0;25222:2:145;25207:18;11679:39:47::3;;;;;;;11733:16:::0;;11729:1028:::3;;-1:-1:-1::0;;;;;12251:21:47;::::3;::::0;;:47:::3;;-1:-1:-1::0;;;;;;12276:22:47;::::3;::::0;12251:47:::3;12247:89;;;12307:29;;-1:-1:-1::0;;;12307:29:47::3;;;;;;;;;;;12247:89;12383:22;12408:61;;;;;;;;12423:6;-1:-1:-1::0;;;;;12408:61:47::3;;;;;12454:12;12439;:27;;;;:::i;:::-;12408:61:::0;;-1:-1:-1;;;;;12483:28:47;;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;;:44;;;;-1:-1:-1;;;;;;12483:44:47::3;::::0;::::3;::::0;;;::::3;::::0;;;::::3;::::0;-1:-1:-1;12483:44:47;;::::3;::::0;;;12546:61;12483:44;;-1:-1:-1;12546:61:47::3;::::0;::::3;::::0;12483:28;;:34;;12584:6;;12546:61:::3;:::i;:::-;;;;;;;;11751:867;11729:1028;;;-1:-1:-1::0;;;;;12645:28:47;::::3;;::::0;;;:21:::3;:28;::::0;;;;;;;:34:::3;::::0;::::3;::::0;;;;;;;;12638:41;;-1:-1:-1;;;;;;12638:41:47::3;::::0;;;::::3;::::0;;;12698:48;::::3;::::0;::::3;::::0;12667:5;;12674:4;;12736:6;;12645:28;12698:48:::3;:::i;11729:1028::-;11432:1331;2265:1:::2;;2446::::1;11204:1559:::0;;;;;:::o;10627:388:74:-;10936:10;-1:-1:-1;;;;;10910:98:74;10925:9;-1:-1:-1;;;;;10910:98:74;;10948:7;10957:5;10964:4;10970:6;10978:8;;10988:10;;11000:7;;10910:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;10627:388;;;;;;;;;;;:::o;14185:208:47:-;-1:-1:-1;;;;;1765:25:47;;;;;;:19;:25;;;;;;14292:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:47;;;;;;;;;;;1760:68;14308:24:::1;14326:5;14308:17;:24::i;:::-;14343:43;::::0;-1:-1:-1;;;14343:43:47;;-1:-1:-1;;;;;14343:27:47;::::1;::::0;::::1;::::0;:43:::1;::::0;14371:5;;14378:7;;;;14343:43:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;2293:101:105::0;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1065:402:49:-;1232:10;372:1;1219:24;;;:12;:24;;;;;;;;-1:-1:-1;;;;;1219:29:49;;;;;;;;;:36;;;;;;;;:44;;;;;;;;;;;:63;1215:101;;1291:25;;-1:-1:-1;;;1291:25:49;;;;;;;;;;;1215:101;1383:8;;1373:19;;;;;;;:::i;:::-;;;;;;;;;;1339:10;1326:24;;;;:12;:24;;;;;;;-1:-1:-1;;;;;1326:29:49;;;;;;;;;:36;;;;;;;;:44;;;;;;;;;;;:66;1407:53;;;;1339:10;1351:3;;1356:5;;1363:6;;1451:8;;;;1407:53;:::i;:::-;;;;;;;;1065:402;;;;;:::o;17710:215:74:-;-1:-1:-1;;;;;17858:27:74;;17800:4;17858:27;;;:16;:27;;;;;;;17823:95;;17838:7;;17847:9;;17800:4;;17886:14;;;;17838:7;17886:14;:::i;:::-;17858:43;;;;;;;;;;;;;;;;-1:-1:-1;17858:43:74;;;17902:14;;;;17858:59;;;;;;;;-1:-1:-1;;;;;17858:59:74;17823:14;:95::i;:::-;17816:102;17710:215;-1:-1:-1;;;17710:215:74:o;2858:118:47:-;2915:16;2950:19;2943:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2943:26:47;;;;;;;;;;;;;;;;;;;;;;;2858:118;:::o;2144:1048:49:-;-1:-1:-1;;;;;2408:19:49;;;2385:20;2408:19;;;:12;:19;;;;;;;;:24;;;;;;;;;;;:31;;;;;;;;:39;;;;;;;;;;;2478:19;;;;2488:8;;;;2478:19;:::i;:::-;;;;;;;;2457:40;;2527:10;2511:12;:26;2507:90;;2546:51;;-1:-1:-1;;;2546:51:49;;;;;23500:25:145;;;23541:18;;;23534:34;;;23473:18;;2546:51:49;23326:248:145;2507:90:49;-1:-1:-1;;;;;2953:19:49;;;429;2953;;;:12;:19;;;;;;;;:24;;;;;;;;;;;;:31;;;;;;;;:39;;;;;;;;;;;;445:1;2953:63;;3026:101;-1:-1:-1;;;3026:101:49;;:33;;3068:9;;3026:101;;2966:5;;2978;;3094:8;;;;3104:10;;3116;;;;3026:101;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3142:43;3159:5;3166:3;3171:5;3178:6;3142:43;;;;;;;;-1:-1:-1;;;;;30932:15:145;;;30914:34;;30984:15;;;;30979:2;30964:18;;30957:43;31031:2;31016:18;;31009:34;31091:6;31079:19;;;;31074:2;31059:18;;31052:47;30863:3;30848:19;;30647:458;3142:43:49;;;;;;;;2344:848;;2144:1048;;;;;;;;:::o;10340:450:47:-;-1:-1:-1;;;;;2341:25:47;;;;;;:19;:25;;;;;;10472:7;;2341:25;;2340:26;:49;;;;-1:-1:-1;;;;;;2370:19:47;;;;2340:49;2336:100;;;2398:38;;-1:-1:-1;;;2398:38:47;;;;;;;;;;;2336:100;10491:7;-1:-1:-1;;;;;1899:19:47;::::1;::::0;1895:146:::1;;1976:22;1950:4;-1:-1:-1::0;;;;;1938:32:47::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;::::0;1934:96:::1;;2007:23;;-1:-1:-1::0;;;2007:23:47::1;;;;;;;;;;;1934:96;10517:7:::0;10526:4;-1:-1:-1;;;;;2711:19:47;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:47;;7836:10:145;7824:23;;2751:38:47::2;::::0;::::2;7806:42:145::0;-1:-1:-1;;;;;2751:32:47;::::2;::::0;::::2;::::0;7779:18:145;;2751:38:47::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:47::2;;;;;;;;;;;2746:78;10542:24:::3;10560:5;10542:17;:24::i;:::-;-1:-1:-1::0;;;;;10623:18:47;;::::3;;::::0;;;:11:::3;:18;::::0;;;;;;;:24:::3;::::0;::::3;::::0;;;;;;;;:35;;::::3;:24:::0;::::3;:35:::0;10619:69:::3;;10667:21;;-1:-1:-1::0;;;10667:21:47::3;;;;;;;;;;;10619:69;-1:-1:-1::0;;;;;10698:18:47;;::::3;;::::0;;;:11:::3;:18;::::0;;;;;;;:24:::3;::::0;::::3;::::0;;;;;;;;;;:34;;-1:-1:-1;;;;;;10698:34:47::3;::::0;;::::3;::::0;;::::3;::::0;;10747:36;;25272:34:145;;;25322:18;;;25315:51;;;;25382:18;;25375:43;;;;10747:36:47::3;::::0;25222:2:145;25207:18;10747:36:47::3;25034:390:145::0;4887:1218:47;5031:4;5134:26;5162:14;5180:37;5198:9;5209:7;5180:17;:37::i;:::-;5133:84;;;;5252:18;-1:-1:-1;;;;;5231:39:47;:17;-1:-1:-1;;;;;5231:39:47;;5227:81;;5293:4;5286:11;;;;;;5227:81;5514:22;5539:9;:117;;-1:-1:-1;;;;;5615:32:47;;;;;;:21;:32;;;;;;;;:41;;;;;;;;;;5539:117;;;5563:37;;;;;;;:28;:37;;;;;5539:117;5514:142;;;;;;;;;;;-1:-1:-1;;;;;5514:142:47;;;;;;;;;;;;;;;;;-1:-1:-1;5886:32:47;;;:65;;;;;5939:12;5922:7;:14;;;:29;5886:65;5882:158;;;6025:4;6018:11;;;;;;;5882:158;-1:-1:-1;6093:5:47;;4887:1218;-1:-1:-1;;;;;;4887:1218:47:o;2523:425:48:-;-1:-1:-1;;;;;2657:27:48;;2618:6;2657:27;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;;-1:-1:-1;;;;;2657:45:48;2788:116;2795:61;2811:9;2822:7;2831;2840:11;2854:1;2840:15;2795;:61::i;:::-;2788:116;;;2876:13;;2788:116;;;2930:11;2523:425;-1:-1:-1;;;;2523:425:48:o;7763:1045:47:-;1531:13:105;:11;:13::i;:::-;-1:-1:-1;;;;;1765:25:47;::::1;;::::0;;;:19:::1;:25;::::0;;;;;7913:7;;1765:25:::1;;1760:68;;1799:29;;-1:-1:-1::0;;;1799:29:47::1;;;;;;;;;;;1760:68;7935:7:::0;-1:-1:-1;;;;;2114:19:47;::::2;::::0;2110:146:::2;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:47::2;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::2;;2219:26;;-1:-1:-1::0;;;2219:26:47::2;;;;;;;;;;;2149:96;7961:7:::0;7970:4;-1:-1:-1;;;;;2711:19:47;::::3;::::0;2707:128:::3;;2751:38;::::0;-1:-1:-1;;;2751:38:47;;7836:10:145;7824:23;;2751:38:47::3;::::0;::::3;7806:42:145::0;-1:-1:-1;;;;;2751:32:47;::::3;::::0;::::3;::::0;7779:18:145;;2751:38:47::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:47::3;;;;;;;;;;;2746:78;8003:27:::4;::::0;::::4;7986:14;8003:27:::0;;;:21:::4;:27;::::0;;;;;-1:-1:-1;;;;;8003:27:47;;::::4;::::0;8086:17;::::4;::::0;;8082:51:::4;;8112:21;;-1:-1:-1::0;;;8112:21:47::4;;;;;;;;;;;8082:51;8144:27;::::0;::::4;;::::0;;;:21:::4;:27;::::0;;;;;;;;:37;;-1:-1:-1;;;;;;8144:37:47::4;-1:-1:-1::0;;;;;8144:37:47;::::4;::::0;;::::4;::::0;;;8196:39;;1966:42:145;;;2024:18;;;2017:60;8196:39:47::4;::::0;1939:18:145;8196:39:47::4;;;;;;;8250:16:::0;;8246:556:::4;;8390:34;::::0;::::4;8364:23;8390:34:::0;;;:28:::4;:34;::::0;;;;8438:20;;-1:-1:-1;;;;;;8438:20:47::4;-1:-1:-1::0;;;;;8438:20:47;::::4;;::::0;;8489:27:::4;8504:12:::0;8489::::4;:27;:::i;:::-;8472:14;::::0;::::4;:44:::0;;;8535:61:::4;::::0;::::4;::::0;::::4;::::0;8567:4;;8573:6;;8535:61:::4;:::i;:::-;;;;;;;;8268:339;8246:556;;;8690:34;::::0;::::4;;::::0;;;:28:::4;:34;::::0;;;;;8683:41;;-1:-1:-1;;;;;;8683:41:47::4;::::0;;;::::4;::::0;;;8743:48;::::4;::::0;::::4;::::0;8719:4;;8781:6;;8743:48:::4;:::i;:::-;;;;;;;;8246:556;7976:832;2265:1:::3;;1838::::2;1554::105::1;7763:1045:47::0;;;:::o;12477:148:74:-;1531:13:105;:11;:13::i;:::-;12574:44:74::1;12597:6;12605:3;12610:7;12574:22;:44::i;:::-;12477:148:::0;;;:::o;8373:709::-;8479:60;8501:9;8512:14;;;;:7;:14;:::i;:::-;8528:10;8479:21;:60::i;:::-;8474:107;;8548:33;;-1:-1:-1;;;8548:33:74;;;;;;;;;;;8474:107;-1:-1:-1;;;;;8611:27:74;;8592:16;8611:27;;;:16;:27;;;;;;;;8592:16;;8639:14;;;;:7;:14;:::i;:::-;8611:43;;;;;;;;;;;;;;;;-1:-1:-1;8611:43:74;;;8655:14;;;;8611:59;;;;;;;;-1:-1:-1;;;;;8611:59:74;;-1:-1:-1;8685:45:74;8655:7;8709:9;8611:59;8685:14;:45::i;:::-;8680:91;;8739:32;;-1:-1:-1;;;8739:32:74;;;;;;;;;;;8680:91;8786:42;8798:7;8807:9;8818;8786:11;:42::i;:::-;8781:85;;8837:29;;-1:-1:-1;;;8837:29:74;;;;;;;;;;;8781:85;8932:80;8941:9;8952:14;;;;:7;:14;:::i;:::-;8968;;;;8984:13;;;;;;;;:::i;:::-;8999:12;8932:8;:80::i;:::-;9027:48;9042:7;9051:9;9062:12;9027:48;;;;;;;;:::i;:::-;;;;;;;;8464:618;8373:709;;;:::o;8256:259:48:-;-1:-1:-1;;;;;8387:22:48;;8349:7;8387:22;;;:13;:22;;;;;;;;:31;;;;;;;;;;:42;;;;;;;;;8349:7;;8387:46;;-1:-1:-1;;;;;8387:42:48;;:46;:::i;:::-;8368:65;;8450:58;8464:9;8475:3;8480:7;8489;8498:9;8450:13;:58::i;:::-;8443:65;8256:259;-1:-1:-1;;;;;8256:259:48:o;7038:400:47:-;1531:13:105;:11;:13::i;:::-;-1:-1:-1;;;;;1765:25:47;::::1;;::::0;;;:19:::1;:25;::::0;;;;;7155:7;;1765:25:::1;;1760:68;;1799:29;;-1:-1:-1::0;;;1799:29:47::1;;;;;;;;;;;1760:68;7174:7:::0;-1:-1:-1;;;;;1899:19:47;::::2;::::0;1895:146:::2;;1976:22;1950:4;-1:-1:-1::0;;;;;1938:32:47::2;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;::::0;1934:96:::2;;2007:23;;-1:-1:-1::0;;;2007:23:47::2;;;;;;;;;;;1934:96;7200:7:::0;7209:4;-1:-1:-1;;;;;2711:19:47;::::3;::::0;2707:128:::3;;2751:38;::::0;-1:-1:-1;;;2751:38:47;;7836:10:145;7824:23;;2751:38:47::3;::::0;::::3;7806:42:145::0;-1:-1:-1;;;;;2751:32:47;::::3;::::0;::::3;::::0;7779:18:145;;2751:38:47::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:47::3;;;;;;;;;;;2746:78;7271:24:::4;::::0;::::4;;::::0;;;:18:::4;:24;::::0;;;;;-1:-1:-1;;;;;7271:35:47;;::::4;:24:::0;::::4;:35:::0;7267:69:::4;;7315:21;;-1:-1:-1::0;;;7315:21:47::4;;;;;;;;;;;7267:69;7346:24;::::0;::::4;;::::0;;;:18:::4;:24;::::0;;;;;;;;:34;;-1:-1:-1;;;;;;7346:34:47::4;-1:-1:-1::0;;;;;7346:34:47;::::4;::::0;;::::4;::::0;;;7395:36;;1966:42:145;;;2024:18;;;2017:60;7395:36:47::4;::::0;1939:18:145;7395:36:47::4;1794:289:145::0;3524:317:47;-1:-1:-1;;;;;3631:20:47;;;3602:11;3631:20;;;:11;:20;;;;;;;;:29;;;;;;;;;;;;;3670:165;;-1:-1:-1;3714:27:47;;;;;;;:18;:27;;;;;;-1:-1:-1;;;;;3714:27:47;;3755:69;;3787:37;;-1:-1:-1;;;3787:37:47;;;;;;;;;;;12081:133:74;1531:13:105;:11;:13::i;:::-;12154:7:74::1;:18:::0;;-1:-1:-1;;;;;;12154:18:74::1;-1:-1:-1::0;;;;;12154:18:74;::::1;::::0;;::::1;::::0;;;12187:20:::1;::::0;8196:51:145;;;12187:20:74::1;::::0;8184:2:145;8169:18;12187:20:74::1;;;;;;;;12081:133:::0;:::o;17931:209::-;-1:-1:-1;;;;;18073:27:74;;18018:4;18073:27;;;:16;:27;;;;;;;18041:92;;18053:7;;18062:9;;18018:4;;18101:14;;;;18053:7;18101:14;:::i;:::-;18073:43;;;;;;;;;;;;;;;;-1:-1:-1;18073:43:74;;;18117:14;;;;18073:59;;;;;;;;-1:-1:-1;;;;;18073:59:74;18041:11;:92::i;16136:148::-;16205:10;16195:21;;;;:9;:21;;;;;;;;;:33;;-1:-1:-1;;;;;;16195:33:74;-1:-1:-1;;;;;16195:33:74;;;;;;;;16243:34;;32674::145;;;32724:18;;;32717:43;16243:34:74;;32609:18:145;16243:34:74;32462:304:145;9156:710:47;-1:-1:-1;;;;;1765:25:47;;;;;;:19;:25;;;;;;9295:4;;1765:25;;1760:68;;1799:29;;-1:-1:-1;;;1799:29:47;;;;;;;;;;;1760:68;9314:4;-1:-1:-1;;;;;2114:19:47;::::1;::::0;2110:146:::1;;2191:19;2165:4;-1:-1:-1::0;;;;;2153:32:47::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;;;;;:::i;:::-;::::0;2149:96:::1;;2219:26;;-1:-1:-1::0;;;2219:26:47::1;;;;;;;;;;;2149:96;9337:4:::0;9343;-1:-1:-1;;;;;2711:19:47;::::2;::::0;2707:128:::2;;2751:38;::::0;-1:-1:-1;;;2751:38:47;;7836:10:145;7824:23;;2751:38:47::2;::::0;::::2;7806:42:145::0;-1:-1:-1;;;;;2751:32:47;::::2;::::0;::::2;::::0;7779:18:145;;2751:38:47::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2746:78;;2798:26;;-1:-1:-1::0;;;2798:26:47::2;;;;;;;;;;;2746:78;1531:13:105::3;:11;:13::i;:::-;9373:7:47::4;9384:1;9373:12:::0;9369:424:::4;;9462:34;::::0;::::4;;::::0;;;:28:::4;:34;::::0;;;;9455:41;;-1:-1:-1;;;;;;9455:41:47::4;::::0;;;::::4;::::0;9369:424:::4;;;9592:12;9581:7;:23;9577:61;;9613:25;;-1:-1:-1::0;;;9613:25:47::4;;;;;;;;;;;9577:61;9678:34;::::0;::::4;9652:23;9678:34:::0;;;:28:::4;:34;::::0;;;;9726:18;;-1:-1:-1;;;;;;9726:18:47::4;-1:-1:-1::0;;;;;9726:18:47;::::4;;::::0;;-1:-1:-1;9758:14:47::4;:24:::0;;;9369:424:::4;9807:52;9839:4;9845;9851:7;9807:52;;;;;;;;:::i;4016:359:48:-:0;4112:24;4130:5;4112:17;:24::i;:::-;4161:37;4174:5;4181:7;4190;4161:12;:37::i;:::-;:41;;4201:1;4161:41;:::i;:::-;-1:-1:-1;;;;;4151:51:48;:6;-1:-1:-1;;;;;4151:51:48;;4147:94;;4211:30;;-1:-1:-1;;;4211:30:48;;-1:-1:-1;;;;;8751:31:145;;4211:30:48;;;8733:50:145;8706:18;;4211:30:48;8589:200:145;4147:94:48;-1:-1:-1;;;;;4251:23:48;;;;;;:16;:23;;;;;;;;:32;;;;;;;;;;;;:41;;;;;;;;;:50;;-1:-1:-1;;4251:50:48;-1:-1:-1;;;;;4251:50:48;;;;;;;;4316:52;;32998:42:145;;;33056:18;;;33049:34;;;33099:18;;33092:60;;;;33183:2;33168:18;;33161:59;;;;4316:52:48;;32985:3:145;32970:19;4316:52:48;32771:455:145;3962:1043:74;-1:-1:-1;;;;;;;;;;;;;;;;;4141:20:74;;;;;;;;:::i;:::-;:47;;;;-1:-1:-1;4165:7:74;;-1:-1:-1;;;;;4165:7:74;:23;4141:47;4137:90;;;4197:30;;-1:-1:-1;;;4197:30:74;;;;;;;;;;;4137:90;-1:-1:-1;;;;;4295:22:74;;4280:12;4295:22;;;:13;:22;;;;;;;;4280:12;;4318:14;;;;:7;:14;:::i;:::-;4295:38;;;;;;;;;;;;;;;;-1:-1:-1;4295:38:74;;;4334:16;;;;4295:56;;;;;;;;:60;;-1:-1:-1;;;;;4295:56:74;;:60;:::i;:::-;4280:75;;4410:20;4433:300;;;;;;;;4461:5;-1:-1:-1;;;;;4433:300:74;;;;;4488:3;4433:300;;;;;;4513:7;-1:-1:-1;;;;;4433:300:74;;;;;4542:7;:14;;;;;;;;;;:::i;:::-;4433:300;;;;;;4580:7;:16;;;4433:300;;;;4616:68;4630:5;4637:3;4642:7;4651;:14;;;;;;;;;;:::i;:::-;4667:7;:16;;;4616:13;:68::i;:::-;4433:300;;;;4707:15;;;;:7;:15;:::i;:::-;4433:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4433:300:74;;;;-1:-1:-1;4410:323:74;;-1:-1:-1;4433:300:74;-1:-1:-1;4866:39:74;;-1:-1:-1;4881:7:74;4890:14;;;;:7;:14;:::i;4866:39::-;4843:62;-1:-1:-1;;;;;;4923:28:74;;;4952:6;4960:15;;;;:7;:15;:::i;:::-;4977:20;;;;;;;;:::i;:::-;4923:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6264:511:47:-;1531:13:105;:11;:13::i;:::-;6376:62:47::1;::::0;-1:-1:-1;;;6376:62:47;;-1:-1:-1;;;6376:62:47::1;::::0;::::1;35740:52:145::0;-1:-1:-1;;;;;6376:31:47;::::1;::::0;::::1;::::0;35713:18:145;;6376:62:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6371:108;;6447:32;;-1:-1:-1::0;;;6447:32:47::1;;;;;;;;;;;6371:108;-1:-1:-1::0;;;;;6534:25:47;::::1;;::::0;;;:19:::1;:25;::::0;;;;;::::1;;6530:67;;;6568:29;;-1:-1:-1::0;;;6568:29:47::1;;;;;;;;;;;6530:67;-1:-1:-1::0;;;;;6657:25:47;::::1;;::::0;;;:19:::1;:25;::::0;;;;;;;:32;;-1:-1:-1;;6657:32:47::1;6685:4;6657:32:::0;;::::1;::::0;;;6699:19:::1;:30:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;6699:30:47::1;::::0;::::1;::::0;;6745:23;;8196:51:145;;;6745:23:47::1;::::0;8169:18:145;6745:23:47::1;8050:203:145::0;2543:215:105;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:105;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:105;;2700:1:::1;2672:31;::::0;::::1;8196:51:145::0;8169:18;;2672:31:105::1;8050:203:145::0;2623:91:105::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;6931:1169:48:-;-1:-1:-1;;;;;7160:27:48;;7108:18;7160:27;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;;-1:-1:-1;;;;;7160:45:48;;;;7219:21;;;-1:-1:-1;7215:417:48;;;7388:1;7373:16;;7357:179;7396:6;-1:-1:-1;;;;;7391:11:48;:1;-1:-1:-1;;;;;7391:11:48;;7357:179;;7436:47;7452:9;7463:7;7472;7481:1;7436:15;:47::i;:::-;7431:86;;7492:25;;-1:-1:-1;;;7492:25:48;;-1:-1:-1;;;;;8751:31:145;;7492:25:48;;;8733:50:145;8706:18;;7492:25:48;8589:200:145;7431:86:48;7404:3;;7357:179;;;-1:-1:-1;;;;;;7553:27:48;;;;;;:16;:27;;;;;;;;:36;;;;;;;;;;:45;;;;;;;;:54;;-1:-1:-1;;7553:54:48;-1:-1:-1;;;;;7553:54:48;;;;;7215:417;7771:19;;;;;;;;;;-1:-1:-1;;;;;7823:29:48;;7800:20;7823:29;;;:18;:29;;;;;;:38;;;;;;;;;;:47;;;;;;;;-1:-1:-1;;;;;7823:55:48;;;;;;;;;;;;7771:19;;-1:-1:-1;7892:26:48;;;7888:94;;7927:55;;-1:-1:-1;;;7927:55:48;;;;;23500:25:145;;;23541:18;;;23534:34;;;23473:18;;7927:55:48;23326:248:145;7888:94:48;-1:-1:-1;;;;;;;8038:29:48;;;;;;;:18;:29;;;;;;;;:38;;;;;;;;;;;;:47;;;;;;;;;-1:-1:-1;;;;;8038:55:48;;;;;;;;;;;;8031:62;;;;-1:-1:-1;6931:1169:48;:::o;17257:209:74:-;17373:10;-1:-1:-1;;;;;17373:19:74;;;;;;:53;;-1:-1:-1;;;;;;17410:16:74;;;;;;;:9;:16;;;;;;;17396:10;:30;;17373:53;17369:90;;;17435:24;;-1:-1:-1;;;17435:24:74;;;;;;;;;;;6698:1355;6804:23;;:::i;:::-;6829:7;;6911:52;6921:7;6930:14;;;;:7;:14;:::i;:::-;-1:-1:-1;;;;;1291:22:48;;;;1233:12;1291:22;;;:13;6946:16:74;1291:22:48;;;;;;;:31;;;;;;;;;;;;;6946:16:74;;;;1291:42:48;;;;;1289:44;;-1:-1:-1;;1289:44:48;;;-1:-1:-1;;;;;1289:44:48;;;;;;;;;;;;1144:206;6911:52:74;6890:73;;7018:20;7041:312;;;;;;;;7069:11;-1:-1:-1;;;;;7041:312:74;;;;;7102:3;7041:312;;;;;;7127:7;-1:-1:-1;;;;;7041:312:74;;;;;7156:7;:14;;;;;;;;;;:::i;:::-;7041:312;;;;;;7194:7;:16;;;7041:312;;;;7230:74;7244:11;7257:3;7262:7;7271;:14;;;;;;;;;;:::i;7230:74::-;7041:312;;;;7327:15;;;;:7;:15;:::i;:::-;7041:312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7041:312:74;;;;-1:-1:-1;7018:335:74;;-1:-1:-1;7041:312:74;-1:-1:-1;7441:39:74;;-1:-1:-1;7456:7:74;7465:14;;;;:7;:14;:::i;7441:39::-;7418:62;-1:-1:-1;7553:23:74;;-1:-1:-1;;;;;7608:27:74;;;7649:6;7669:15;;;;:7;:15;:::i;:::-;7698:20;;;;;;;;:::i;:::-;7608:120;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7608:120:74;;;;;;;;;;;;:::i;:::-;7552:176;;-1:-1:-1;7552:176:74;-1:-1:-1;7909:56:74;7552:176;7935:15;;;;:7;:15;:::i;:::-;7952:12;7909:56;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;7984:47:74;;;;;;;;8001:11;;;;;7984:47;;-1:-1:-1;;;;;7984:47:74;;;;;;;;;;;;;;;-1:-1:-1;8033:12:74;-1:-1:-1;6698:1355:74;;;;;:::o;14358:669::-;14427:16;14459:13;14455:566;;;14506:7;;14499:40;;-1:-1:-1;;;14499:40:74;;14533:4;14499:40;;;8196:51:145;-1:-1:-1;;;;;14506:7:74;;;;14499:25;;8169:18:145;;14499:40:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14488:51;;14962:8;14974:1;14962:13;14958:52;;14984:26;;-1:-1:-1;;;14984:26:74;;;;;;;;;;;14958:52;14358:669;;;:::o;15288:488::-;15463:19;;:40;-1:-1:-1;15463:40:74;:86;;;15530:19;15507:9;:20;;;:42;15463:86;15459:311;;;15615:19;;15688:20;;;;15572:187;;-1:-1:-1;;;15572:187:74;;;;;37205:25:145;;;;37246:18;;;37239:34;;;37289:18;;;37282:34;37332:18;;;37325:34;;;37177:19;;15572:187:74;36974:391:145;12948:476:74;13133:13;;13129:88;;13162:44;13177:6;13185:9;13196;13162:14;:44::i;:::-;13242:9;13230;:21;13226:192;;;13332:61;13347:6;13355:14;13383:9;13371;:21;13332:14;:61::i;:::-;12948:476;;;;;:::o;13809:447::-;13979:13;;13975:81;;14008:37;14024:9;14035;14008:15;:37::i;:::-;14081:9;14069;:21;14065:185;;;14171:54;14187:14;14215:9;14203;:21;14171:15;:54::i;:::-;13809:447;;;;:::o;1796:162:105:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:105;735:10:120;1855:23:105;1851:101;;1901:40;;-1:-1:-1;;;1901:40:105;;735:10:120;1901:40:105;;;8196:51:145;8169:18;;1901:40:105;8050:203:145;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;16358:323:74:-;16505:4;16560:1;16540:17;-1:-1:-1;;;;;16540:21:74;;:134;;;-1:-1:-1;16616:58:74;;-1:-1:-1;;;;;;16616:58:74;;-1:-1:-1;;;;;16616:49:74;;;;;:58;;16666:7;;16616:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3076:260:48:-;-1:-1:-1;;;;;3252:29:48;;3229:4;3252:29;;;:18;:29;;;;;;;;:38;;;;;;;;;;:47;;;;;;;;-1:-1:-1;;;;;3252:55:48;;;;;;;;;;:77;;3076:260;;;;;;:::o;896:222:64:-;-1:-1:-1;;;;;987:22:64;;983:129;;1025:19;1032:3;1037:6;1025;:19::i;983:129::-;1075:26;1081:6;1089:3;1094:6;1075:5;:26::i;16744:438:74:-;16888:4;-1:-1:-1;;;;;16923:33:74;;:13;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16923:33:74;;:199;;;-1:-1:-1;;;;;;17024:29:74;;336:1:48;17024:29:74;;;:18;:29;;;;;;;;336:1:48;;17054:14:74;;;;:7;:14;:::i;:::-;17024:45;;;;;;;;;;;;;;;:61;17070:7;:14;;;17024:61;;;;;;;;;;;:76;17086:7;:13;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17024:76:74;;;;;;;;;;;;-1:-1:-1;17024:76:74;;:98;;;16744:438;-1:-1:-1;;;;16744:438:74:o;1608:336:48:-;1784:12;1780:77;;1827:30;;-1:-1:-1;;;1827:30:48;;;;;;;;;;;1780:77;-1:-1:-1;;;;;1867:29:48;;;;;;;:18;:29;;;;;;;;:38;;;;;;;;;;;;:47;;;;;;;;;-1:-1:-1;;;;;1867:55:48;;;;;;;;:70;1608:336::o;169:288:63:-;339:7;392:6;400:7;-1:-1:-1;;;;;409:17:63;;375:74;;37902:3:145;37880:16;;;;-1:-1:-1;;;;;;37876:51:145;375:74:63;;;37864:64:145;37951:3;38000:16;;;-1:-1:-1;;;;;;37996:25:145;;;37983:11;;;37976:46;38038:12;;;38031:28;;;;38093:16;;;;38089:25;38075:12;;;38068:47;38131:12;;;38124:28;;;38168:12;;375:74:63;;;;;;;;;;;;365:85;;;;;;358:92;;169:288;;;;;;;:::o;696:194:64:-;-1:-1:-1;;;;;779:19:64;;775:58;;807:26;;-1:-1:-1;;;807:26:64;;;;;;;;;;;775:58;843:40;-1:-1:-1;;;;;843:27:64;;871:3;876:6;843:27;:40::i;438:252::-;-1:-1:-1;;;;;506:19:64;;502:58;;534:26;;-1:-1:-1;;;534:26:64;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:64;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;-1:-1:-1;;;649:34:64;;-1:-1:-1;;;;;13014:32:145;;649:34:64;;;12996:51:145;13063:18;;;13056:34;;;12969:18;;649:34:64;12822:274:145;1303:160:113;1412:43;;;-1:-1:-1;;;;;13014:32:145;;;1412:43:113;;;12996:51:145;13063:18;;;;13056:34;;;1412:43:113;;;;;;;;;;12969:18:145;;;;1412:43:113;;;;;;;;-1:-1:-1;;;;;1412:43:113;-1:-1:-1;;;1412:43:113;;;1385:71;;1405:5;;1412:43;-1:-1:-1;;4504:33:113;;1427:14;;1412:43;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:113;;-1:-1:-1;;;;;8214:32:145;;4631:40:113;;;8196:51:145;8169:18;;4631:40:113;8050:203:145;2705:151:118;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:118;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:118;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:118;;-1:-1:-1;;;;;8214:32:145;;5121:24:118;;;8196:51:145;8169:18;;5121:24:118;8050:203:145;5041:119:118;-1:-1:-1;5180:10:118;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:118;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:154:145:-;73:5;118:2;109:6;104:3;100:16;96:25;93:45;;;134:1;131;124:12;93:45;-1:-1:-1;156:6:145;14:154;-1:-1:-1;14:154:145:o;173:173::-;241:20;;-1:-1:-1;;;;;290:31:145;;280:42;;270:70;;336:1;333;326:12;351:347;402:8;412:6;466:3;459:4;451:6;447:17;443:27;433:55;;484:1;481;474:12;433:55;-1:-1:-1;507:20:145;;-1:-1:-1;;;;;539:30:145;;536:50;;;582:1;579;572:12;536:50;619:4;611:6;607:17;595:29;;671:3;664:4;655:6;647;643:19;639:30;636:39;633:59;;;688:1;685;678:12;703:987;846:6;854;862;870;878;886;894;947:3;935:9;926:7;922:23;918:33;915:53;;;964:1;961;954:12;915:53;987;1032:7;1021:9;987:53;:::i;:::-;977:63;;1059:38;1093:2;1082:9;1078:18;1059:38;:::i;:::-;1049:48;;1144:3;1133:9;1129:19;1116:33;1106:43;;1200:3;1189:9;1185:19;1172:33;-1:-1:-1;;;;;1265:2:145;1257:6;1254:14;1251:34;;;1281:1;1278;1271:12;1251:34;1320:58;1370:7;1361:6;1350:9;1346:22;1320:58;:::i;:::-;1397:8;;-1:-1:-1;1294:84:145;-1:-1:-1;1485:3:145;1470:19;;1457:33;;-1:-1:-1;1502:16:145;;;1499:36;;;1531:1;1528;1521:12;1499:36;;1570:60;1622:7;1611:8;1600:9;1596:24;1570:60;:::i;:::-;703:987;;;;-1:-1:-1;703:987:145;;-1:-1:-1;703:987:145;;;;1544:86;;-1:-1:-1;;;703:987:145:o;2088:163::-;2155:20;;2215:10;2204:22;;2194:33;;2184:61;;2241:1;2238;2231:12;2256:401;2341:6;2349;2357;2365;2418:3;2406:9;2397:7;2393:23;2389:33;2386:53;;;2435:1;2432;2425:12;2386:53;2458:29;2477:9;2458:29;:::i;:::-;2448:39;;2506:37;2539:2;2528:9;2524:18;2506:37;:::i;:::-;2496:47;;2562:38;2596:2;2585:9;2581:18;2562:38;:::i;:::-;2256:401;;;;-1:-1:-1;2552:48:145;;2647:2;2632:18;2619:32;;-1:-1:-1;;2256:401:145:o;2662:469::-;2765:6;2773;2826:2;2814:9;2805:7;2801:23;2797:32;2794:52;;;2842:1;2839;2832:12;2794:52;2882:9;2869:23;-1:-1:-1;;;;;2907:6:145;2904:30;2901:50;;;2947:1;2944;2937:12;2901:50;2970:22;;3026:3;3008:16;;;3004:26;3001:46;;;3043:1;3040;3033:12;3001:46;3066:2;-1:-1:-1;3087:38:145;3121:2;3106:18;;3087:38;:::i;:::-;3077:48;;2662:469;;;;;:::o;3294:::-;3454:4;3496:3;3485:9;3481:19;3473:27;;3533:6;3527:13;3516:9;3509:32;-1:-1:-1;;;;;3601:4:145;3593:6;3589:17;3583:24;3579:49;3572:4;3561:9;3557:20;3550:79;3676:4;3668:6;3664:17;3658:24;3691:66;3751:4;3740:9;3736:20;3722:12;3214;;3202:25;;3276:4;3265:16;;;3259:23;3243:14;;3236:47;3136:153;3691:66;;3294:469;;;;:::o;3768:678::-;3891:6;3899;3907;3915;3923;3976:3;3964:9;3955:7;3951:23;3947:33;3944:53;;;3993:1;3990;3983:12;3944:53;4016:29;4035:9;4016:29;:::i;:::-;4006:39;;4064:62;4118:7;4113:2;4102:9;4098:18;4064:62;:::i;:::-;4054:72;;4173:3;4162:9;4158:19;4145:33;4135:43;;4229:3;4218:9;4214:19;4201:33;-1:-1:-1;;;;;4249:6:145;4246:30;4243:50;;;4289:1;4286;4279:12;4243:50;4328:58;4378:7;4369:6;4358:9;4354:22;4328:58;:::i;:::-;3768:678;;;;-1:-1:-1;3768:678:145;;-1:-1:-1;4405:8:145;;4302:84;3768:678;-1:-1:-1;;;3768:678:145:o;4451:405::-;4535:6;4543;4551;4559;4612:3;4600:9;4591:7;4587:23;4583:33;4580:53;;;4629:1;4626;4619:12;4580:53;4652:29;4671:9;4652:29;:::i;:::-;4642:39;;4700:38;4734:2;4723:9;4719:18;4700:38;:::i;:::-;4690:48;;4757:37;4790:2;4779:9;4775:18;4757:37;:::i;:::-;4747:47;;4813:37;4846:2;4835:9;4831:18;4813:37;:::i;:::-;4803:47;;4451:405;;;;;;;:::o;4861:250::-;4946:1;4956:113;4970:6;4967:1;4964:13;4956:113;;;5046:11;;;5040:18;5027:11;;;5020:39;4992:2;4985:10;4956:113;;;-1:-1:-1;;5103:1:145;5085:16;;5078:27;4861:250::o;5116:270::-;5157:3;5195:5;5189:12;5222:6;5217:3;5210:19;5238:76;5307:6;5300:4;5295:3;5291:14;5284:4;5277:5;5273:16;5238:76;:::i;:::-;5368:2;5347:15;-1:-1:-1;;5343:29:145;5334:39;;;;5375:4;5330:50;;5116:270;-1:-1:-1;;5116:270:145:o;5391:217::-;5538:2;5527:9;5520:21;5501:4;5558:44;5598:2;5587:9;5583:18;5575:6;5558:44;:::i;5795:171::-;5862:20;;-1:-1:-1;;;;;5911:30:145;;5901:41;;5891:69;;5956:1;5953;5946:12;5971:468;6064:6;6072;6080;6088;6096;6149:3;6137:9;6128:7;6124:23;6120:33;6117:53;;;6166:1;6163;6156:12;6117:53;6189:29;6208:9;6189:29;:::i;:::-;6179:39;;6237:37;6270:2;6259:9;6255:18;6237:37;:::i;:::-;6227:47;;6321:2;6310:9;6306:18;6293:32;6283:42;;6344:37;6377:2;6366:9;6362:18;6344:37;:::i;:::-;5971:468;;;;-1:-1:-1;5971:468:145;;6428:3;6413:19;6400:33;;5971:468;-1:-1:-1;;5971:468:145:o;6444:159::-;6511:20;;6571:6;6560:18;;6550:29;;6540:57;;6593:1;6590;6583:12;6608:401;6693:6;6701;6709;6717;6770:3;6758:9;6749:7;6745:23;6741:33;6738:53;;;6787:1;6784;6777:12;6738:53;6810:29;6829:9;6810:29;:::i;:::-;6800:39;;6858:38;6892:2;6881:9;6877:18;6858:38;:::i;:::-;6848:48;;6943:2;6932:9;6928:18;6915:32;6905:42;;6966:37;6999:2;6988:9;6984:18;6966:37;:::i;7014:258::-;7081:6;7089;7142:2;7130:9;7121:7;7117:23;7113:32;7110:52;;;7158:1;7155;7148:12;7110:52;7181:29;7200:9;7181:29;:::i;:::-;7171:39;;7229:37;7262:2;7251:9;7247:18;7229:37;:::i;7859:186::-;7918:6;7971:2;7959:9;7950:7;7946:23;7942:32;7939:52;;;7987:1;7984;7977:12;7939:52;8010:29;8029:9;8010:29;:::i;8258:326::-;8334:6;8342;8350;8403:2;8391:9;8382:7;8378:23;8374:32;8371:52;;;8419:1;8416;8409:12;8371:52;8442:29;8461:9;8442:29;:::i;:::-;8432:39;;8490:37;8523:2;8512:9;8508:18;8490:37;:::i;:::-;8480:47;;8574:2;8563:9;8559:18;8546:32;8536:42;;8258:326;;;;;:::o;8794:184::-;8852:6;8905:2;8893:9;8884:7;8880:23;8876:32;8873:52;;;8921:1;8918;8911:12;8873:52;8944:28;8962:9;8944:28;:::i;9175:1435::-;9338:6;9346;9354;9362;9370;9378;9386;9394;9402;9410;9418:7;9427;9481:3;9469:9;9460:7;9456:23;9452:33;9449:53;;;9498:1;9495;9488:12;9449:53;9521:29;9540:9;9521:29;:::i;:::-;9511:39;;9569:38;9603:2;9592:9;9588:18;9569:38;:::i;:::-;9559:48;;9654:2;9643:9;9639:18;9626:32;9616:42;;9677:37;9710:2;9699:9;9695:18;9677:37;:::i;:::-;9667:47;;9761:3;9750:9;9746:19;9733:33;9723:43;;9813:3;9802:9;9798:19;9785:33;9775:43;;-1:-1:-1;;;;;9861:3:145;9850:9;9846:19;9833:33;9830:57;9827:77;;;9900:1;9897;9890:12;9827:77;9939:85;10016:7;10008:3;9997:9;9993:19;9980:33;9969:9;9965:49;9939:85;:::i;:::-;10043:8;;-1:-1:-1;10070:8:145;-1:-1:-1;;;;;;10121:3:145;10106:19;;10093:33;10090:57;10087:77;;;10160:1;10157;10150:12;10087:77;10199:85;10276:7;10268:3;10257:9;10253:19;10240:33;10229:9;10225:49;10199:85;:::i;:::-;10303:8;;-1:-1:-1;10330:8:145;-1:-1:-1;;;;;;10381:3:145;10366:19;;10353:33;10350:57;10347:77;;;10420:1;10417;10410:12;10347:77;10461:85;10538:7;10530:3;10519:9;10515:19;10502:33;10491:9;10487:49;10461:85;:::i;:::-;10566:9;10555:20;;10595:9;10584:20;;;;9175:1435;;;;;;;;;;;;;;:::o;10615:1399::-;10796:6;10804;10812;10820;10828;10836;10844;10852;10860;10868;10876:7;10930:3;10918:9;10909:7;10905:23;10901:33;10898:53;;;10947:1;10944;10937:12;10898:53;10970;11015:7;11004:9;10970:53;:::i;:::-;10960:63;;11042:38;11076:2;11065:9;11061:18;11042:38;:::i;:::-;11032:48;;11127:3;11116:9;11112:19;11099:33;11089:43;;11179:3;11168:9;11164:19;11151:33;11141:43;;11231:3;11220:9;11216:19;11203:33;11193:43;;-1:-1:-1;;;;;11323:2:145;11316:3;11305:9;11301:19;11288:33;11285:41;11282:61;;;11339:1;11336;11329:12;11282:61;11378:85;11455:7;11447:3;11436:9;11432:19;11419:33;11408:9;11404:49;11378:85;:::i;:::-;11482:8;;-1:-1:-1;11509:8:145;-1:-1:-1;11560:3:145;11545:19;;11532:33;11529:41;-1:-1:-1;11526:61:145;;;11583:1;11580;11573:12;11526:61;11622:85;11699:7;11691:3;11680:9;11676:19;11663:33;11652:9;11648:49;11622:85;:::i;:::-;11726:8;;-1:-1:-1;11753:8:145;-1:-1:-1;11804:3:145;11789:19;;11776:33;11773:41;-1:-1:-1;11770:61:145;;;11827:1;11824;11817:12;11770:61;;11867:85;11944:7;11936:3;11925:9;11921:19;11908:33;11897:9;11893:49;11867:85;:::i;:::-;11971:8;11961:18;;11999:9;11988:20;;;;10615:1399;;;;;;;;;;;;;;:::o;12019:798::-;12158:6;12166;12174;12182;12235:2;12223:9;12214:7;12210:23;12206:32;12203:52;;;12251:1;12248;12241:12;12203:52;12274:29;12293:9;12274:29;:::i;:::-;12264:39;;12322:38;12356:2;12345:9;12341:18;12322:38;:::i;:::-;12312:48;;12411:2;12400:9;12396:18;12383:32;-1:-1:-1;;;;;12475:2:145;12467:6;12464:14;12461:34;;;12491:1;12488;12481:12;12461:34;12529:6;12518:9;12514:22;12504:32;;12574:7;12567:4;12563:2;12559:13;12555:27;12545:55;;12596:1;12593;12586:12;12545:55;12636:2;12623:16;12662:2;12654:6;12651:14;12648:34;;;12678:1;12675;12668:12;12648:34;12731:7;12726:2;12716:6;12713:1;12709:14;12705:2;12701:23;12697:32;12694:45;12691:65;;;12752:1;12749;12742:12;12691:65;12019:798;;;;-1:-1:-1;;12783:2:145;12775:11;;-1:-1:-1;;;12019:798:145:o;13101:624::-;13197:6;13205;13213;13221;13229;13282:3;13270:9;13261:7;13257:23;13253:33;13250:53;;;13299:1;13296;13289:12;13250:53;13322:29;13341:9;13322:29;:::i;:::-;13312:39;;13398:2;13387:9;13383:18;13370:32;13360:42;;13421:37;13454:2;13443:9;13439:18;13421:37;:::i;:::-;13411:47;;13509:2;13498:9;13494:18;13481:32;-1:-1:-1;;;;;13528:6:145;13525:30;13522:50;;;13568:1;13565;13558:12;13730:311;13824:6;13832;13885:3;13873:9;13864:7;13860:23;13856:33;13853:53;;;13902:1;13899;13892:12;13853:53;13925;13970:7;13959:9;13925:53;:::i;:::-;13915:63;;13997:38;14031:2;14020:9;14016:18;13997:38;:::i;14046:658::-;14217:2;14269:21;;;14339:13;;14242:18;;;14361:22;;;14188:4;;14217:2;14440:15;;;;14414:2;14399:18;;;14188:4;14483:195;14497:6;14494:1;14491:13;14483:195;;;14562:13;;-1:-1:-1;;;;;14558:39:145;14546:52;;14653:15;;;;14618:12;;;;14594:1;14512:9;14483:195;;;-1:-1:-1;14695:3:145;;14046:658;-1:-1:-1;;;;;;14046:658:145:o;14709:1008::-;14834:6;14842;14850;14858;14866;14874;14882;14890;14943:3;14931:9;14922:7;14918:23;14914:33;14911:53;;;14960:1;14957;14950:12;14911:53;14983:29;15002:9;14983:29;:::i;:::-;14973:39;;15031:38;15065:2;15054:9;15050:18;15031:38;:::i;:::-;15021:48;;15116:2;15105:9;15101:18;15088:32;15078:42;;15139:37;15172:2;15161:9;15157:18;15139:37;:::i;:::-;15129:47;;15227:3;15216:9;15212:19;15199:33;-1:-1:-1;;;;;15292:2:145;15284:6;15281:14;15278:34;;;15308:1;15305;15298:12;15278:34;15347:58;15397:7;15388:6;15377:9;15373:22;15347:58;:::i;:::-;15424:8;;-1:-1:-1;15321:84:145;-1:-1:-1;15512:3:145;15497:19;;15484:33;;-1:-1:-1;15529:16:145;;;15526:36;;;15558:1;15555;15548:12;15526:36;;15597:60;15649:7;15638:8;15627:9;15623:24;15597:60;:::i;:::-;14709:1008;;;;-1:-1:-1;14709:1008:145;;-1:-1:-1;14709:1008:145;;;;;;15676:8;-1:-1:-1;;;14709:1008:145:o;15722:332::-;15798:6;15806;15814;15867:2;15855:9;15846:7;15842:23;15838:32;15835:52;;;15883:1;15880;15873:12;15835:52;15906:29;15925:9;15906:29;:::i;:::-;15896:39;;15954:37;15987:2;15976:9;15972:18;15954:37;:::i;:::-;15944:47;;16010:38;16044:2;16033:9;16029:18;16010:38;:::i;:::-;16000:48;;15722:332;;;;;:::o;16059:326::-;16135:6;16143;16151;16204:2;16192:9;16183:7;16179:23;16175:32;16172:52;;;16220:1;16217;16210:12;16172:52;16243:28;16261:9;16243:28;:::i;:::-;16233:38;;16290;16324:2;16313:9;16309:18;16290:38;:::i;16390:328::-;16467:6;16475;16483;16536:2;16524:9;16515:7;16511:23;16507:32;16504:52;;;16552:1;16549;16542:12;16504:52;16575:29;16594:9;16575:29;:::i;16723:380::-;16826:6;16834;16842;16895:3;16883:9;16874:7;16870:23;16866:33;16863:53;;;16912:1;16909;16902:12;16863:53;16935;16980:7;16969:9;16935:53;:::i;:::-;16925:63;;17007:38;17041:2;17030:9;17026:18;17007:38;:::i;:::-;16997:48;;17092:3;17081:9;17077:19;17064:33;17054:43;;16723:380;;;;;:::o;17108:258::-;17175:6;17183;17236:2;17224:9;17215:7;17211:23;17207:32;17204:52;;;17252:1;17249;17242:12;17204:52;17275:28;17293:9;17275:28;:::i;17371:399::-;17455:6;17463;17471;17479;17532:3;17520:9;17511:7;17507:23;17503:33;17500:53;;;17549:1;17546;17539:12;17500:53;17572:29;17591:9;17572:29;:::i;:::-;17562:39;;17620:37;17653:2;17642:9;17638:18;17620:37;:::i;:::-;17610:47;;17704:2;17693:9;17689:18;17676:32;17666:42;;17727:37;17760:2;17749:9;17745:18;17727:37;:::i;17775:261::-;3214:12;;3202:25;;3276:4;3265:16;;;3259:23;3243:14;;;3236:47;17969:2;17954:18;;17981:49;3136:153;18041:184;18099:6;18152:2;18140:9;18131:7;18127:23;18123:32;18120:52;;;18168:1;18165;18158:12;18120:52;18191:28;18209:9;18191:28;:::i;18230:345::-;18427:6;18422:3;18415:19;18478:6;18470;18465:2;18460:3;18456:12;18443:42;18397:3;18508:16;;18526:2;18504:25;18538:13;;;18504:25;18230:345;-1:-1:-1;;18230:345:145:o;18580:285::-;18691:10;18665:24;18683:5;18665:24;:::i;:::-;18661:41;18656:3;18649:54;18759:4;18752:5;18748:16;18735:30;18728:4;18723:3;18719:14;18712:54;-1:-1:-1;;;;;18802:35:145;18831:4;18824:5;18820:16;18802:35;:::i;:::-;18798:60;18791:4;18786:3;18782:14;18775:84;;;18580:285::o;18870:266::-;18958:6;18953:3;18946:19;19010:6;19003:5;18996:4;18991:3;18987:14;18974:43;-1:-1:-1;19062:1:145;19037:16;;;19055:4;19033:27;;;19026:38;;;;19118:2;19097:15;;;-1:-1:-1;;19093:29:145;19084:39;;;19080:50;;18870:266::o;19141:752::-;19470:52;19512:9;19504:6;19470:52;:::i;:::-;19558:6;19553:2;19542:9;19538:18;19531:34;19602:3;19596;19585:9;19581:19;19574:32;19451:4;19629:62;19686:3;19675:9;19671:19;19663:6;19655;19629:62;:::i;:::-;-1:-1:-1;;;;;19728:32:145;;19748:3;19707:19;;19700:61;19798:22;;;19792:3;19777:19;;19770:51;19838:49;19802:6;19872;19864;19838:49;:::i;:::-;19830:57;19141:752;-1:-1:-1;;;;;;;;;;19141:752:145:o;19898:352::-;20110:3;20095:19;;20123:52;20099:9;20157:6;20123:52;:::i;:::-;-1:-1:-1;;;;;20211:32:145;;;;20206:2;20191:18;;;;20184:60;19898:352;;-1:-1:-1;19898:352:145:o;20255:127::-;20316:10;20311:3;20307:20;20304:1;20297:31;20347:4;20344:1;20337:15;20371:4;20368:1;20361:15;20387:280;20477:6;20530:2;20518:9;20509:7;20505:23;20501:32;20498:52;;;20546:1;20543;20536:12;20498:52;20578:9;20572:16;20617:1;20610:5;20607:12;20597:40;;20633:1;20630;20623:12;20672:118;20758:5;20751:13;20744:21;20737:5;20734:32;20724:60;;20780:1;20777;20770:12;20795:245;20862:6;20915:2;20903:9;20894:7;20890:23;20886:32;20883:52;;;20931:1;20928;20921:12;20883:52;20963:9;20957:16;20982:28;21004:5;20982:28;:::i;21045:462::-;-1:-1:-1;;;;;21330:15:145;;;21312:34;;21394:10;21382:23;;;;21377:2;21362:18;;21355:51;21442:15;;21437:2;21422:18;;21415:43;21489:2;21474:18;;21467:34;;;;21261:3;21246:19;;21045:462::o;21512:241::-;21568:6;21621:2;21609:9;21600:7;21596:23;21592:32;21589:52;;;21637:1;21634;21627:12;21589:52;21676:9;21663:23;21695:28;21717:5;21695:28;:::i;22151:127::-;22212:10;22207:3;22203:20;22200:1;22193:31;22243:4;22240:1;22233:15;22267:4;22264:1;22257:15;22283:698;22336:5;22389:3;22382:4;22374:6;22370:17;22366:27;22356:55;;22407:1;22404;22397:12;22356:55;22436:6;22430:13;-1:-1:-1;;;;;22499:2:145;22495;22492:10;22489:36;;;22505:18;;:::i;:::-;22580:2;22574:9;22548:2;22634:13;;-1:-1:-1;;22630:22:145;;;22654:2;22626:31;22622:40;22610:53;;;22678:18;;;22698:22;;;22675:46;22672:72;;;22724:18;;:::i;:::-;22764:10;22760:2;22753:22;22799:2;22791:6;22784:18;22845:3;22838:4;22833:2;22825:6;22821:15;22817:26;22814:35;22811:55;;;22862:1;22859;22852:12;22811:55;22875:76;22948:2;22941:4;22933:6;22929:17;22922:4;22914:6;22910:17;22875:76;:::i;22986:335::-;23065:6;23118:2;23106:9;23097:7;23093:23;23089:32;23086:52;;;23134:1;23131;23124:12;23086:52;23167:9;23161:16;-1:-1:-1;;;;;23192:6:145;23189:30;23186:50;;;23232:1;23229;23222:12;23186:50;23255:60;23307:7;23298:6;23287:9;23283:22;23255:60;:::i;23579:527::-;23864:10;23852:23;;;;23834:42;;23907:2;23892:18;;23885:34;;;;-1:-1:-1;;;;;23955:32:145;;;;23950:2;23935:18;;23928:60;-1:-1:-1;;;;;24024:31:145;24019:2;24004:18;;23997:59;24087:3;24072:19;;24065:35;23821:3;23806:19;;23579:527::o;24111:918::-;24490:6;24479:9;24472:25;24545:6;24537;24533:19;24528:2;24517:9;24513:18;24506:47;24589:6;24584:2;24573:9;24569:18;24562:34;24632:6;24627:2;24616:9;24612:18;24605:34;24676:3;24670;24659:9;24655:19;24648:32;24453:4;24703:62;24760:3;24749:9;24745:19;24737:6;24729;24703:62;:::i;:::-;24814:9;24806:6;24802:22;24796:3;24785:9;24781:19;24774:51;24848:49;24890:6;24882;24874;24848:49;:::i;:::-;24834:63;;24946:9;24938:6;24934:22;24928:3;24917:9;24913:19;24906:51;24974:49;25016:6;25008;25000;24974:49;:::i;:::-;24966:57;24111:918;-1:-1:-1;;;;;;;;;;;;;24111:918:145:o;25429:127::-;25490:10;25485:3;25481:20;25478:1;25471:31;25521:4;25518:1;25511:15;25545:4;25542:1;25535:15;25561:125;25626:9;;;25647:10;;;25644:36;;;25660:18;;:::i;26166:1006::-;26560:4;26589:3;26601:52;26643:9;26635:6;26601:52;:::i;:::-;26689:6;26684:2;26673:9;26669:18;26662:34;26733:6;26727:3;26716:9;26712:19;26705:35;26777:6;26771:3;26760:9;26756:19;26749:35;26821:2;26815:3;26804:9;26800:19;26793:31;26847:61;26904:2;26893:9;26889:18;26881:6;26873;26847:61;:::i;:::-;26833:75;;26957:9;26949:6;26945:22;26939:3;26928:9;26924:19;26917:51;26991:49;27033:6;27025;27017;26991:49;:::i;:::-;26977:63;;27089:9;27081:6;27077:22;27071:3;27060:9;27056:19;27049:51;27117:49;27159:6;27151;27143;27117:49;:::i;27177:1878::-;-1:-1:-1;;;;;27524:32:145;;27506:51;;27454:2;27576;27594:18;;;27587:30;;;27479:18;;;27652:22;;;27425:4;;27454:2;27693;;27711:18;;;27775:1;27771:14;;;27756:30;;27752:39;;27814:6;27425:4;27848:1178;27862:6;27859:1;27856:13;27848:1178;;;27927:22;;;-1:-1:-1;;27923:36:145;27911:49;;27999:20;;28074:14;28070:27;;;-1:-1:-1;;28066:41:145;28042:66;;28032:94;;28122:1;28119;28112:12;28032:94;28152:31;;28206:10;;28248:24;28152:31;28248:24;:::i;:::-;28244:33;28236:6;28229:49;28354:2;28319:33;28348:2;28341:5;28337:14;28319:33;:::i;:::-;28315:42;28310:2;28302:6;28298:15;28291:67;;28423:2;28416:5;28412:14;28399:28;28512:2;28508:7;28500:5;28484:14;28480:26;28476:40;28454:20;28450:67;28440:95;;28531:1;28528;28521:12;28440:95;28563:32;28671:16;;;;28622:21;-1:-1:-1;;;;;28703:30:145;;28700:50;;;28746:1;28743;28736:12;28700:50;28799:6;28783:14;28779:27;28770:7;28766:41;28763:61;;;28820:1;28817;28810:12;28763:61;28861:2;28856;28848:6;28844:15;28837:27;28887:59;28942:2;28934:6;28930:15;28922:6;28913:7;28887:59;:::i;:::-;29004:12;;;;28877:69;-1:-1:-1;;;28969:15:145;;;;27884:1;27877:9;27848:1178;;;-1:-1:-1;29043:6:145;;27177:1878;-1:-1:-1;;;;;;;;;;27177:1878:145:o;29060:271::-;29243:6;29235;29230:3;29217:33;29199:3;29269:16;;29294:13;;;29269:16;29060:271;-1:-1:-1;29060:271:145:o;29336:598::-;-1:-1:-1;;;;;29641:15:145;;;29623:34;;29693:15;;29688:2;29673:18;;29666:43;29740:2;29725:18;;29718:34;;;29800:6;29788:19;;29783:2;29768:18;;29761:47;29603:3;29839;29824:19;;29817:32;;;29566:4;;29866:62;;29908:19;;29900:6;29892;29866:62;:::i;:::-;29858:70;29336:598;-1:-1:-1;;;;;;;;29336:598:145:o;29939:703::-;30199:4;30245:1;30241;30236:3;30232:11;30228:19;30286:2;30278:6;30274:15;30263:9;30256:34;30326:6;30321:2;30310:9;30306:18;30299:34;30369:3;30364:2;30353:9;30349:18;30342:31;30396:62;30453:3;30442:9;30438:19;30430:6;30422;30396:62;:::i;:::-;30506:2;30498:6;30494:15;30489:2;30478:9;30474:18;30467:43;30559:9;30551:6;30547:22;30541:3;30530:9;30526:19;30519:51;30587:49;30629:6;30621;30613;30587:49;:::i;:::-;30579:57;29939:703;-1:-1:-1;;;;;;;;;;;29939:703:145:o;31110:360::-;31340:10;31328:23;;;;31310:42;;-1:-1:-1;;;;;31388:32:145;;;;31383:2;31368:18;;31361:60;31452:2;31437:18;;31430:34;31298:2;31283:18;;31110:360::o;31848:424::-;32088:3;32073:19;;32101:52;32077:9;32135:6;32101:52;:::i;:::-;-1:-1:-1;;;;;32189:32:145;;;;32184:2;32169:18;;32162:60;32253:3;32238:19;32231:35;31848:424;;-1:-1:-1;31848:424:145:o;32277:180::-;-1:-1:-1;;;;;32382:10:145;;;32394;;;32378:27;;32417:11;;;32414:37;;;32431:18;;:::i;33231:521::-;33308:4;33314:6;33374:11;33361:25;33468:2;33464:7;33453:8;33437:14;33433:29;33429:43;33409:18;33405:68;33395:96;;33487:1;33484;33477:12;33395:96;33514:33;;33566:20;;;-1:-1:-1;;;;;;33598:30:145;;33595:50;;;33641:1;33638;33631:12;33595:50;33674:4;33662:17;;-1:-1:-1;33705:14:145;33701:27;;;33691:38;;33688:58;;;33742:1;33739;33732:12;33757:1087;34014:2;33996:21;;;34057:13;;-1:-1:-1;;;;;34053:38:145;34033:18;;;34026:66;34151:4;34139:17;;34133:24;34159:10;34129:41;34123:3;34108:19;;34101:70;34230:4;34218:17;;34212:24;-1:-1:-1;;;;;34208:50:145;34246:3;34187:19;;34180:79;34294:15;;34288:22;-1:-1:-1;;34319:52:145;34366:3;34351:19;;34288:22;1771:10;1760:22;1748:35;;1695:94;34319:52;;34427:3;34419:6;34415:16;34409:23;34402:4;34391:9;34387:20;34380:53;34488:3;34480:6;34476:16;34470:23;34464:3;34453:9;34449:19;34442:52;34543:3;34535:6;34531:16;34525:23;34585:4;34579:3;34568:9;34564:19;34557:33;34610:53;34658:3;34647:9;34643:19;34627:14;34610:53;:::i;:::-;34599:64;;34710:9;34705:3;34701:19;34694:4;34683:9;34679:20;34672:49;34738:46;34780:3;34772:6;34764;34738:46;:::i;:::-;34730:54;;;34793:45;34832:4;34821:9;34817:20;34809:6;7347:13;7340:21;7328:34;;7277:91;34849:478;34919:5;34967:4;34955:9;34950:3;34946:19;34942:30;34939:50;;;34985:1;34982;34975:12;34939:50;35018:4;35012:11;35062:4;35054:6;35050:17;35133:6;35121:10;35118:22;-1:-1:-1;;;;;35085:10:145;35082:34;35079:62;35076:88;;;35144:18;;:::i;:::-;35180:4;35173:24;35245:16;;35230:32;;35316:2;35301:18;;;35295:25;35278:15;;;35271:50;;;;-1:-1:-1;35215:6:145;34849:478;-1:-1:-1;34849:478:145:o;35332:259::-;35432:6;35485:2;35473:9;35464:7;35460:23;35456:32;35453:52;;;35501:1;35498;35491:12;35453:52;35524:61;35577:7;35566:9;35524:61;:::i;35803:471::-;35921:6;35929;35982:2;35970:9;35961:7;35957:23;35953:32;35950:52;;;35998:1;35995;35988:12;35950:52;36021:61;36074:7;36063:9;36021:61;:::i;:::-;36011:71;;36126:2;36115:9;36111:18;36105:25;-1:-1:-1;;;;;36145:6:145;36142:30;36139:50;;;36185:1;36182;36175:12;36139:50;36208:60;36260:7;36251:6;36240:9;36236:22;36208:60;:::i;:::-;36198:70;;;35803:471;;;;;:::o;36279:501::-;36510:2;36499:9;36492:21;36473:4;36536:44;36576:2;36565:9;36561:18;36553:6;36536:44;:::i;:::-;36628:9;36620:6;36616:22;36611:2;36600:9;36596:18;36589:50;36656:49;36698:6;36690;36682;36656:49;:::i;:::-;36648:57;;;36770:1;36766;36761:3;36757:11;36753:19;36745:6;36741:32;36736:2;36725:9;36721:18;36714:60;36279:501;;;;;;;:::o;36785:184::-;36855:6;36908:2;36896:9;36887:7;36883:23;36879:32;36876:52;;;36924:1;36921;36914:12;36876:52;-1:-1:-1;36947:16:145;;36785:184;-1:-1:-1;36785:184:145:o;37370:254::-;37554:2;37539:18;;37566:52;37543:9;37600:6;37566:52;:::i;38401:287::-;38530:3;38568:6;38562:13;38584:66;38643:6;38638:3;38631:4;38623:6;38619:17;38584:66;:::i;:::-;38666:16;;;;;38401:287;-1:-1:-1;;38401:287:145:o","linkReferences":{},"immutableReferences":{"8008":[{"start":1921,"length":32}],"8989":[{"start":1329,"length":32},{"start":10121,"length":32},{"start":12155,"length":32},{"start":12258,"length":32},{"start":13651,"length":32},{"start":13754,"length":32}]}},"methodIdentifiers":{"EMPTY_PAYLOAD_HASH()":"cb5026b9","NIL_PAYLOAD_HASH()":"2baf0be7","blockedLibrary()":"73318091","burn(address,uint32,bytes32,uint64,bytes32)":"40f80683","clear(address,(uint32,bytes32,uint64),bytes32,bytes)":"2a56c1b0","composeQueue(address,address,bytes32,uint16)":"35d330b0","defaultReceiveLibrary(uint32)":"6f50a803","defaultReceiveLibraryTimeout(uint32)":"6e83f5bb","defaultSendLibrary(uint32)":"f64be4c7","delegates(address)":"587cde1e","eid()":"416ecebf","getConfig(address,address,uint32,uint32)":"2b3197b9","getReceiveLibrary(address,uint32)":"402f8468","getRegisteredLibraries()":"9132e5c3","getSendContext()":"14f651a9","getSendLibrary(address,uint32)":"b96a277f","inboundNonce(address,uint32,bytes32)":"a0dd43fc","inboundPayloadHash(address,uint32,bytes32,uint64)":"c9fc7bcd","initializable((uint32,bytes32,uint64),address)":"861e1ca5","isDefaultSendLibrary(address,uint32)":"dc93c8a2","isRegisteredLibrary(address)":"dc706a62","isSendingMessage()":"79624ca9","isSupportedEid(uint32)":"6750cd4c","isValidReceiveLibrary(address,uint32,address)":"9d7f9775","lazyInboundNonce(address,uint32,bytes32)":"5b17bb70","lzCompose(address,address,bytes32,uint16,bytes,bytes)":"91d20fa1","lzComposeAlert(address,address,bytes32,uint16,uint256,uint256,bytes,bytes,bytes)":"697fe6b6","lzReceive((uint32,bytes32,uint64),address,bytes32,bytes,bytes)":"0c0c389e","lzReceiveAlert((uint32,bytes32,uint64),address,bytes32,uint256,uint256,bytes,bytes,bytes)":"6bf73fa3","lzToken()":"e4fe1d94","nativeToken()":"e1758bd8","nextGuid(address,uint32,bytes32)":"aafe5e07","nilify(address,uint32,bytes32,uint64,bytes32)":"2e80fbf3","outboundNonce(address,uint32,bytes32)":"9c6d7340","owner()":"8da5cb5b","quote((uint32,bytes32,bytes,bytes,bool),address)":"ddc28c58","receiveLibraryTimeout(address,uint32)":"ef667aa1","recoverToken(address,address,uint256)":"a7229fd9","registerLibrary(address)":"e8964e81","renounceOwnership()":"715018a6","send((uint32,bytes32,bytes,bytes,bool),address)":"2637a450","sendCompose(address,bytes32,uint16,bytes)":"7cb59012","setConfig(address,address,(uint32,uint32,bytes)[])":"6dbd9f90","setDefaultReceiveLibrary(uint32,address,uint256)":"a718531b","setDefaultReceiveLibraryTimeout(uint32,address,uint256)":"d4b4ec8f","setDefaultSendLibrary(uint32,address)":"aafea312","setDelegate(address)":"ca5eb5e1","setLzToken(address)":"c28e0eed","setReceiveLibrary(address,uint32,address,uint256)":"6a14d715","setReceiveLibraryTimeout(address,uint32,address,uint256)":"183c834f","setSendLibrary(address,uint32,address)":"9535ff30","skip(address,uint32,bytes32,uint64)":"d70b8902","transferOwnership(address)":"f2fde38b","verifiable((uint32,bytes32,uint64),address)":"c9a54a99","verify((uint32,bytes32,uint64),address,bytes32)":"a825d747"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ComposeExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"LZ_ComposeNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_DefaultReceiveLibUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_DefaultSendLibUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requiredNative\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"suppliedNative\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredLzToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"suppliedLzToken\",\"type\":\"uint256\"}],\"name\":\"LZ_InsufficientFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_InvalidExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"LZ_InvalidNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_InvalidPayloadHash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_InvalidReceiveLibrary\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyNonDefaultLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyReceiveLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyRegisteredLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyRegisteredOrDefaultLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlySendLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_PathNotInitializable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_PathNotVerifiable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"LZ_PayloadHashNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_SameValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_SendReentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_UnsupportedEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_UnsupportedInterface\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ZeroLzTokenFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"ComposeDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ComposeSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"DefaultReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultSendLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"DelegateSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InboundNonceSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"LibraryRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzComposeAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzReceiveAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"LzTokenSet\",\"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\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketBurnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"PacketDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketNilified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"encodedPayload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sendLibrary\",\"type\":\"address\"}],\"name\":\"PacketSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"ReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"ReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"SendLibrarySet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"EMPTY_PAYLOAD_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NIL_PAYLOAD_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockedLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"clear\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"composeQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"}],\"name\":\"defaultSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"}],\"name\":\"getReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDefault\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisteredLibraries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSendContext\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"getSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"inboundNonce\",\"type\":\"uint64\"}],\"name\":\"inboundPayloadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"initializable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"isDefaultSendLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"name\":\"isRegisteredLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_actualReceiveLib\",\"type\":\"address\"}],\"name\":\"isValidReceiveLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"lazyInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"lzComposeAlert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"lzReceiveAlert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"nextGuid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"nilify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"}],\"name\":\"receiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"recoverToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"registerLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setDefaultSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzToken\",\"type\":\"address\"}],\"name\":\"setLzToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"verifiable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"burn(address,uint32,bytes32,uint64,bytes32)\":{\"details\":\"Marks a nonce as unexecutable and un-verifiable. The nonce can never be re-verified or executed.Reverts if the provided _payloadHash does not match the currently verified payload hash.Only packets with nonces less than or equal to the lazy inbound nonce can be burned.Reverts if the nonce has already been executed.Authenticated by the caller\"},\"clear(address,(uint32,bytes32,uint64),bytes32,bytes)\":{\"details\":\"Oapp uses this interface to clear a message.this is a PULL mode versus the PUSH mode of lzReceivethe cleared message can be ignored by the app (effectively burnt)authenticated by oapp\",\"params\":{\"_guid\":\"the guid of the message\",\"_message\":\"the message\",\"_origin\":\"the origin of the message\"}},\"constructor\":{\"params\":{\"_eid\":\"the unique Endpoint Id for this deploy that all other Endpoints can use to send to it\"}},\"getConfig(address,address,uint32,uint32)\":{\"details\":\"a view function to query the current configuration of the OApp\"},\"getReceiveLibrary(address,uint32)\":{\"details\":\"the receiveLibrary can be lazily resolved that if not set it will point to the default configured by LayerZero\"},\"getSendContext()\":{\"details\":\"returns (eid, sender) if sending message, (0, 0) otherwise\"},\"getSendLibrary(address,uint32)\":{\"details\":\"If the Oapp does not have a selected Send Library, this function will resolve to the default library configured by LayerZero\",\"params\":{\"_dstEid\":\"The destination endpoint id\",\"_sender\":\"The address of the Oapp that is sending the message\"},\"returns\":{\"lib\":\"address of the Send Library\"}},\"inboundNonce(address,uint32,bytes32)\":{\"details\":\"returns the max index of the longest gapless sequence of verified msg nonces.the uninitialized value is 0. the first nonce is always 1it starts from the lazyInboundNonce (last checkpoint) and iteratively check if the next nonce has been verifiedthis function can OOG if too many backlogs, but it can be trivially fixed by just clearing some prior messagesNOTE: Oapp explicitly skipped nonces count as \\\"verified\\\" for these purposeseg. [1,2,3,4,6,7] => 4, [1,2,6,8,10] => 2, [1,3,4,5,6] => 1\"},\"isSendingMessage()\":{\"details\":\"returns true if sending message\"},\"isSupportedEid(uint32)\":{\"details\":\"returns true only if both the default send/receive libraries are set\"},\"isValidReceiveLibrary(address,uint32,address)\":{\"details\":\"called when the endpoint checks if the msgLib attempting to verify the msg is the configured msgLib of the Oappthis check provides the ability for Oapp to lock in a trusted msgLibit will fist check if the msgLib is the currently configured one. then check if the msgLib is the one in grace period of msgLib versioning upgrade\"},\"lzCompose(address,address,bytes32,uint16,bytes,bytes)\":{\"details\":\"execute a composed messages from the sender to the composer (receiver)the execution provides the execution context (caller, extraData) to the receiver. the receiver can optionally assert the caller and validate the untrusted extraDatacan not re-entrant\",\"params\":{\"_extraData\":\"the extra data provided by the executor. this data is untrusted and should be validated.\",\"_from\":\"the address which sends the composed message. in most cases, it is the Oapp's address.\",\"_guid\":\"the message guid\",\"_message\":\"the message\",\"_to\":\"the address which receives the composed message\"}},\"lzComposeAlert(address,address,bytes32,uint16,uint256,uint256,bytes,bytes,bytes)\":{\"params\":{\"_extraData\":\"the extra data provided by the executor\",\"_from\":\"the address which sends the composed message\",\"_guid\":\"the message guid\",\"_message\":\"the message\",\"_reason\":\"the reason why the message is not received\",\"_to\":\"the address which receives the composed message\"}},\"lzReceive((uint32,bytes32,uint64),address,bytes32,bytes,bytes)\":{\"details\":\"MESSAGING STEP 3 - the last stepexecute a verified message to the designated receiverthe execution provides the execution context (caller, extraData) to the receiver. the receiver can optionally assert the caller and validate the untrusted extraDatacant reentrant because the payload is cleared before execution\",\"params\":{\"_extraData\":\"the extra data provided by the executor. this data is untrusted and should be validated.\",\"_guid\":\"the guid of the message\",\"_message\":\"the message\",\"_origin\":\"the origin of the message\",\"_receiver\":\"the receiver of the message\"}},\"lzReceiveAlert((uint32,bytes32,uint64),address,bytes32,uint256,uint256,bytes,bytes,bytes)\":{\"params\":{\"_extraData\":\"the extra data provided by the executor.\",\"_guid\":\"the guid of the message\",\"_message\":\"the message\",\"_origin\":\"the origin of the message\",\"_reason\":\"the reason for failure\",\"_receiver\":\"the receiver of the message\"}},\"nativeToken()\":{\"details\":\"override this if the endpoint is charging ERC20 tokens as native\",\"returns\":{\"_0\":\"0x0 if using native. otherwise the address of the native ERC20 token\"}},\"nextGuid(address,uint32,bytes32)\":{\"details\":\"returns the GUID for the next message given the paththe Oapp might want to include the GUID into the message in some cases\"},\"nilify(address,uint32,bytes32,uint64,bytes32)\":{\"details\":\"Marks a packet as verified, but disallows execution until it is re-verified.Reverts if the provided _payloadHash does not match the currently verified payload hash.A non-verified nonce can be nilified by passing EMPTY_PAYLOAD_HASH for _payloadHash.Assumes the computational intractability of finding a payload that hashes to bytes32.max.Authenticated by the caller\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"quote((uint32,bytes32,bytes,bytes,bool),address)\":{\"details\":\"MESSAGING STEP 0\",\"params\":{\"_params\":\"the messaging parameters\",\"_sender\":\"the sender of the message\"}},\"recoverToken(address,address,uint256)\":{\"details\":\"recover the token sent to this contract by mistakeonly owner\",\"params\":{\"_amount\":\"the amount to send\",\"_to\":\"the address to send the token to\",\"_token\":\"the token to recover. if 0x0 then it is native token\"}},\"registerLibrary(address)\":{\"details\":\"all libraries have to implement the erc165 interface to prevent wrong configurationsonly owner\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"send((uint32,bytes32,bytes,bytes,bool),address)\":{\"details\":\"MESSAGING STEP 1 - OApp need to transfer the fees to the endpoint before sending the message\",\"params\":{\"_params\":\"the messaging parameters\",\"_refundAddress\":\"the address to refund both the native and lzToken\"}},\"sendCompose(address,bytes32,uint16,bytes)\":{\"details\":\"the Oapp sends the lzCompose message to the endpointthe composer MUST assert the sender because anyone can send compose msg with this functionwith the same GUID, the Oapp can send compose to multiple _composer at the same timeauthenticated by the msg.sender\",\"params\":{\"_guid\":\"the message guid\",\"_message\":\"the message\",\"_to\":\"the address which will receive the composed message\"}},\"setConfig(address,address,(uint32,uint32,bytes)[])\":{\"details\":\"authenticated by the _oapp\"},\"setDefaultReceiveLibrary(uint32,address,uint256)\":{\"details\":\"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.only owner\"},\"setDefaultReceiveLibraryTimeout(uint32,address,uint256)\":{\"details\":\"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2) force remove the current configuration (3) change to a new configuration\",\"params\":{\"_expiry\":\"the block number when lib expires\"}},\"setDefaultSendLibrary(uint32,address)\":{\"details\":\"owner setting the defaultSendLibrarycan set to the blockedLibrary, which is a registered librarythe msgLib must enable the support before they can be registered to the endpoint as the defaultonly owner\"},\"setLzToken(address)\":{\"details\":\"allows reconfiguration to recover from wrong configurationsusers should never approve the EndpointV2 contract to spend their non-layerzero tokensoverride this function if the endpoint is charging ERC20 tokens as nativeonly owner\",\"params\":{\"_lzToken\":\"the new layer zero token address\"}},\"setReceiveLibrary(address,uint32,address,uint256)\":{\"details\":\"Oapp setting the receiveLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.authenticated by the Oapp\",\"params\":{\"_gracePeriod\":\"the number of blocks from now until oldLib expires\"}},\"setReceiveLibraryTimeout(address,uint32,address,uint256)\":{\"details\":\"Oapp setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2) force remove the current configuration (3) change to a new configuration\",\"params\":{\"_expiry\":\"the block number when lib expires\"}},\"setSendLibrary(address,uint32,address)\":{\"details\":\"Oapp setting the sendLibrarymust be a registered library (including blockLibrary) with the eid support enabledauthenticated by the Oapp\"},\"skip(address,uint32,bytes32,uint64)\":{\"details\":\"the caller must provide _nonce to prevent skipping the unintended nonceit could happen in some race conditions, e.g. to skip nonce 3, but nonce 3 was consumed firstusage: skipping the next nonce to prevent message verification, e.g. skip a message when Precrime throws alertsif the Oapp wants to skip a verified message, it should call the clear() function insteadafter skipping, the lazyInboundNonce is set to the provided nonce, which makes the inboundNonce also the provided nonceie. allows the Oapp to increment the lazyInboundNonce without having had that corresponding msg be verified\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"verify((uint32,bytes32,uint64),address,bytes32)\":{\"details\":\"MESSAGING STEP 2 - on the destination chainconfigured receive library verifies a message\",\"params\":{\"_origin\":\"a struct holding the srcEid, nonce, and sender of the message\",\"_payloadHash\":\"the payload hash of the message\",\"_receiver\":\"the receiver of the message\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSendLibrary(address,uint32)\":{\"notice\":\"The Send Library is the Oapp specified library that will be used to send the message to the destination endpoint. If the Oapp does not specify a Send Library, the default Send Library will be used.\"},\"quote((uint32,bytes32,bytes,bytes,bool),address)\":{\"notice\":\"This view function gives the application built on top of LayerZero the ability to requests a quote with the same parameters as they would to send their message. Since the quotes are given on chain there is a race condition in which the prices could change between the time the user gets their quote and the time they submit their message. If the price moves up and the user doesn't send enough funds the transaction will revert, if the price goes down the _refundAddress provided by the app will be refunded the difference.\"},\"setDelegate(address)\":{\"notice\":\"delegate is authorized by the oapp to configure anything in layerzero\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol\":\"EndpointV2Mock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":{\"keccak256\":\"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241\",\"dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":{\"keccak256\":\"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c\",\"dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":{\"keccak256\":\"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a\",\"dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":{\"keccak256\":\"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54\",\"dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol\":{\"keccak256\":\"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045\",\"dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"LZ_AlreadyRegistered"},{"inputs":[],"type":"error","name":"LZ_ComposeExists"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"actual","type":"bytes32"}],"type":"error","name":"LZ_ComposeNotFound"},{"inputs":[],"type":"error","name":"LZ_DefaultReceiveLibUnavailable"},{"inputs":[],"type":"error","name":"LZ_DefaultSendLibUnavailable"},{"inputs":[{"internalType":"uint256","name":"requiredNative","type":"uint256"},{"internalType":"uint256","name":"suppliedNative","type":"uint256"},{"internalType":"uint256","name":"requiredLzToken","type":"uint256"},{"internalType":"uint256","name":"suppliedLzToken","type":"uint256"}],"type":"error","name":"LZ_InsufficientFee"},{"inputs":[],"type":"error","name":"LZ_InvalidExpiry"},{"inputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"type":"error","name":"LZ_InvalidNonce"},{"inputs":[],"type":"error","name":"LZ_InvalidPayloadHash"},{"inputs":[],"type":"error","name":"LZ_InvalidReceiveLibrary"},{"inputs":[],"type":"error","name":"LZ_LzTokenUnavailable"},{"inputs":[],"type":"error","name":"LZ_OnlyNonDefaultLib"},{"inputs":[],"type":"error","name":"LZ_OnlyReceiveLib"},{"inputs":[],"type":"error","name":"LZ_OnlyRegisteredLib"},{"inputs":[],"type":"error","name":"LZ_OnlyRegisteredOrDefaultLib"},{"inputs":[],"type":"error","name":"LZ_OnlySendLib"},{"inputs":[],"type":"error","name":"LZ_PathNotInitializable"},{"inputs":[],"type":"error","name":"LZ_PathNotVerifiable"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"actual","type":"bytes32"}],"type":"error","name":"LZ_PayloadHashNotFound"},{"inputs":[],"type":"error","name":"LZ_SameValue"},{"inputs":[],"type":"error","name":"LZ_SendReentrancy"},{"inputs":[],"type":"error","name":"LZ_Unauthorized"},{"inputs":[],"type":"error","name":"LZ_UnsupportedEid"},{"inputs":[],"type":"error","name":"LZ_UnsupportedInterface"},{"inputs":[],"type":"error","name":"LZ_ZeroLzTokenFee"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false}],"type":"event","name":"ComposeDelivered","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false}],"type":"event","name":"ComposeSent","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"expiry","type":"uint256","indexed":false}],"type":"event","name":"DefaultReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultSendLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"address","name":"delegate","type":"address","indexed":false}],"type":"event","name":"DelegateSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false}],"type":"event","name":"InboundNonceSkipped","anonymous":false},{"inputs":[{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"LibraryRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"address","name":"executor","type":"address","indexed":true},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"LzComposeAlert","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"executor","type":"address","indexed":true},{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"LzReceiveAlert","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":false}],"type":"event","name":"LzTokenSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketBurnt","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false}],"type":"event","name":"PacketDelivered","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketNilified","anonymous":false},{"inputs":[{"internalType":"bytes","name":"encodedPayload","type":"bytes","indexed":false},{"internalType":"bytes","name":"options","type":"bytes","indexed":false},{"internalType":"address","name":"sendLibrary","type":"address","indexed":false}],"type":"event","name":"PacketSent","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketVerified","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"ReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"timeout","type":"uint256","indexed":false}],"type":"event","name":"ReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"SendLibrarySet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"EMPTY_PAYLOAD_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NIL_PAYLOAD_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blockedLibrary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"clear"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint16","name":"index","type":"uint16"}],"stateMutability":"view","type":"function","name":"composeQueue","outputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}]},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"address","name":"oapp","type":"address"}],"stateMutability":"view","type":"function","name":"delegates","outputs":[{"internalType":"address","name":"delegate","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"bool","name":"isDefault","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegisteredLibraries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSendContext","outputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"inboundNonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"inboundPayloadHash","outputs":[{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"}],"stateMutability":"view","type":"function","name":"initializable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isDefaultSendLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"lib","type":"address"}],"stateMutability":"view","type":"function","name":"isRegisteredLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSendingMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"address","name":"_actualReceiveLib","type":"address"}],"stateMutability":"view","type":"function","name":"isValidReceiveLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"lazyInboundNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"uint256","name":"_gas","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"},{"internalType":"bytes","name":"_reason","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"lzComposeAlert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint256","name":"_gas","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"},{"internalType":"bytes","name":"_reason","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"lzReceiveAlert"},{"inputs":[],"stateMutability":"view","type":"function","name":"lzToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextGuid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"nilify"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"outboundNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct MessagingParams","name":"_params","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}]},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"quote","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint32","name":"srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"receiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"recoverToken"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerLibrary"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct MessagingParams","name":"_params","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"sendCompose"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibrary"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibraryTimeout"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultSendLibrary"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"address","name":"_lzToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setLzToken"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibraryTimeout"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSendLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"}],"stateMutability":"view","type":"function","name":"verifiable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"verify"}],"devdoc":{"kind":"dev","methods":{"burn(address,uint32,bytes32,uint64,bytes32)":{"details":"Marks a nonce as unexecutable and un-verifiable. The nonce can never be re-verified or executed.Reverts if the provided _payloadHash does not match the currently verified payload hash.Only packets with nonces less than or equal to the lazy inbound nonce can be burned.Reverts if the nonce has already been executed.Authenticated by the caller"},"clear(address,(uint32,bytes32,uint64),bytes32,bytes)":{"details":"Oapp uses this interface to clear a message.this is a PULL mode versus the PUSH mode of lzReceivethe cleared message can be ignored by the app (effectively burnt)authenticated by oapp","params":{"_guid":"the guid of the message","_message":"the message","_origin":"the origin of the message"}},"constructor":{"params":{"_eid":"the unique Endpoint Id for this deploy that all other Endpoints can use to send to it"}},"getConfig(address,address,uint32,uint32)":{"details":"a view function to query the current configuration of the OApp"},"getReceiveLibrary(address,uint32)":{"details":"the receiveLibrary can be lazily resolved that if not set it will point to the default configured by LayerZero"},"getSendContext()":{"details":"returns (eid, sender) if sending message, (0, 0) otherwise"},"getSendLibrary(address,uint32)":{"details":"If the Oapp does not have a selected Send Library, this function will resolve to the default library configured by LayerZero","params":{"_dstEid":"The destination endpoint id","_sender":"The address of the Oapp that is sending the message"},"returns":{"lib":"address of the Send Library"}},"inboundNonce(address,uint32,bytes32)":{"details":"returns the max index of the longest gapless sequence of verified msg nonces.the uninitialized value is 0. the first nonce is always 1it starts from the lazyInboundNonce (last checkpoint) and iteratively check if the next nonce has been verifiedthis function can OOG if too many backlogs, but it can be trivially fixed by just clearing some prior messagesNOTE: Oapp explicitly skipped nonces count as \"verified\" for these purposeseg. [1,2,3,4,6,7] => 4, [1,2,6,8,10] => 2, [1,3,4,5,6] => 1"},"isSendingMessage()":{"details":"returns true if sending message"},"isSupportedEid(uint32)":{"details":"returns true only if both the default send/receive libraries are set"},"isValidReceiveLibrary(address,uint32,address)":{"details":"called when the endpoint checks if the msgLib attempting to verify the msg is the configured msgLib of the Oappthis check provides the ability for Oapp to lock in a trusted msgLibit will fist check if the msgLib is the currently configured one. then check if the msgLib is the one in grace period of msgLib versioning upgrade"},"lzCompose(address,address,bytes32,uint16,bytes,bytes)":{"details":"execute a composed messages from the sender to the composer (receiver)the execution provides the execution context (caller, extraData) to the receiver. the receiver can optionally assert the caller and validate the untrusted extraDatacan not re-entrant","params":{"_extraData":"the extra data provided by the executor. this data is untrusted and should be validated.","_from":"the address which sends the composed message. in most cases, it is the Oapp's address.","_guid":"the message guid","_message":"the message","_to":"the address which receives the composed message"}},"lzComposeAlert(address,address,bytes32,uint16,uint256,uint256,bytes,bytes,bytes)":{"params":{"_extraData":"the extra data provided by the executor","_from":"the address which sends the composed message","_guid":"the message guid","_message":"the message","_reason":"the reason why the message is not received","_to":"the address which receives the composed message"}},"lzReceive((uint32,bytes32,uint64),address,bytes32,bytes,bytes)":{"details":"MESSAGING STEP 3 - the last stepexecute a verified message to the designated receiverthe execution provides the execution context (caller, extraData) to the receiver. the receiver can optionally assert the caller and validate the untrusted extraDatacant reentrant because the payload is cleared before execution","params":{"_extraData":"the extra data provided by the executor. this data is untrusted and should be validated.","_guid":"the guid of the message","_message":"the message","_origin":"the origin of the message","_receiver":"the receiver of the message"}},"lzReceiveAlert((uint32,bytes32,uint64),address,bytes32,uint256,uint256,bytes,bytes,bytes)":{"params":{"_extraData":"the extra data provided by the executor.","_guid":"the guid of the message","_message":"the message","_origin":"the origin of the message","_reason":"the reason for failure","_receiver":"the receiver of the message"}},"nativeToken()":{"details":"override this if the endpoint is charging ERC20 tokens as native","returns":{"_0":"0x0 if using native. otherwise the address of the native ERC20 token"}},"nextGuid(address,uint32,bytes32)":{"details":"returns the GUID for the next message given the paththe Oapp might want to include the GUID into the message in some cases"},"nilify(address,uint32,bytes32,uint64,bytes32)":{"details":"Marks a packet as verified, but disallows execution until it is re-verified.Reverts if the provided _payloadHash does not match the currently verified payload hash.A non-verified nonce can be nilified by passing EMPTY_PAYLOAD_HASH for _payloadHash.Assumes the computational intractability of finding a payload that hashes to bytes32.max.Authenticated by the caller"},"owner()":{"details":"Returns the address of the current owner."},"quote((uint32,bytes32,bytes,bytes,bool),address)":{"details":"MESSAGING STEP 0","params":{"_params":"the messaging parameters","_sender":"the sender of the message"}},"recoverToken(address,address,uint256)":{"details":"recover the token sent to this contract by mistakeonly owner","params":{"_amount":"the amount to send","_to":"the address to send the token to","_token":"the token to recover. if 0x0 then it is native token"}},"registerLibrary(address)":{"details":"all libraries have to implement the erc165 interface to prevent wrong configurationsonly owner"},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"send((uint32,bytes32,bytes,bytes,bool),address)":{"details":"MESSAGING STEP 1 - OApp need to transfer the fees to the endpoint before sending the message","params":{"_params":"the messaging parameters","_refundAddress":"the address to refund both the native and lzToken"}},"sendCompose(address,bytes32,uint16,bytes)":{"details":"the Oapp sends the lzCompose message to the endpointthe composer MUST assert the sender because anyone can send compose msg with this functionwith the same GUID, the Oapp can send compose to multiple _composer at the same timeauthenticated by the msg.sender","params":{"_guid":"the message guid","_message":"the message","_to":"the address which will receive the composed message"}},"setConfig(address,address,(uint32,uint32,bytes)[])":{"details":"authenticated by the _oapp"},"setDefaultReceiveLibrary(uint32,address,uint256)":{"details":"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.only owner"},"setDefaultReceiveLibraryTimeout(uint32,address,uint256)":{"details":"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2) force remove the current configuration (3) change to a new configuration","params":{"_expiry":"the block number when lib expires"}},"setDefaultSendLibrary(uint32,address)":{"details":"owner setting the defaultSendLibrarycan set to the blockedLibrary, which is a registered librarythe msgLib must enable the support before they can be registered to the endpoint as the defaultonly owner"},"setLzToken(address)":{"details":"allows reconfiguration to recover from wrong configurationsusers should never approve the EndpointV2 contract to spend their non-layerzero tokensoverride this function if the endpoint is charging ERC20 tokens as nativeonly owner","params":{"_lzToken":"the new layer zero token address"}},"setReceiveLibrary(address,uint32,address,uint256)":{"details":"Oapp setting the receiveLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.authenticated by the Oapp","params":{"_gracePeriod":"the number of blocks from now until oldLib expires"}},"setReceiveLibraryTimeout(address,uint32,address,uint256)":{"details":"Oapp setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2) force remove the current configuration (3) change to a new configuration","params":{"_expiry":"the block number when lib expires"}},"setSendLibrary(address,uint32,address)":{"details":"Oapp setting the sendLibrarymust be a registered library (including blockLibrary) with the eid support enabledauthenticated by the Oapp"},"skip(address,uint32,bytes32,uint64)":{"details":"the caller must provide _nonce to prevent skipping the unintended nonceit could happen in some race conditions, e.g. to skip nonce 3, but nonce 3 was consumed firstusage: skipping the next nonce to prevent message verification, e.g. skip a message when Precrime throws alertsif the Oapp wants to skip a verified message, it should call the clear() function insteadafter skipping, the lazyInboundNonce is set to the provided nonce, which makes the inboundNonce also the provided nonceie. allows the Oapp to increment the lazyInboundNonce without having had that corresponding msg be verified"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"verify((uint32,bytes32,uint64),address,bytes32)":{"details":"MESSAGING STEP 2 - on the destination chainconfigured receive library verifies a message","params":{"_origin":"a struct holding the srcEid, nonce, and sender of the message","_payloadHash":"the payload hash of the message","_receiver":"the receiver of the message"}}},"version":1},"userdoc":{"kind":"user","methods":{"getSendLibrary(address,uint32)":{"notice":"The Send Library is the Oapp specified library that will be used to send the message to the destination endpoint. If the Oapp does not specify a Send Library, the default Send Library will be used."},"quote((uint32,bytes32,bytes,bytes,bool),address)":{"notice":"This view function gives the application built on top of LayerZero the ability to requests a quote with the same parameters as they would to send their message. Since the quotes are given on chain there is a race condition in which the prices could change between the time the user gets their quote and the time they submit their message. If the price moves up and the user doesn't send enough funds the transaction will revert, if the price goes down the _refundAddress provided by the app will be refunded the difference."},"setDelegate(address)":{"notice":"delegate is authorized by the oapp to configure anything in layerzero"}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol":"EndpointV2Mock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol":{"keccak256":"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a","urls":["bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241","dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol":{"keccak256":"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73","urls":["bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c","dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol":{"keccak256":"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1","urls":["bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a","dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol":{"keccak256":"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420","urls":["bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54","dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":{"keccak256":"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5","urls":["bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b","dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":{"keccak256":"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9","urls":["bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f","dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol":{"keccak256":"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff","urls":["bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045","dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":74} \ No newline at end of file diff --git a/packages/onft-evm/out/Errors.sol/Errors.json b/packages/onft-evm/out/Errors.sol/Errors.json deleted file mode 100644 index e3bf92934..000000000 --- a/packages/onft-evm/out/Errors.sol/Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"LZ_AlreadyRegistered","inputs":[]},{"type":"error","name":"LZ_ComposeExists","inputs":[]},{"type":"error","name":"LZ_ComposeNotFound","inputs":[{"name":"expected","type":"bytes32","internalType":"bytes32"},{"name":"actual","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"LZ_DefaultReceiveLibUnavailable","inputs":[]},{"type":"error","name":"LZ_DefaultSendLibUnavailable","inputs":[]},{"type":"error","name":"LZ_InsufficientFee","inputs":[{"name":"requiredNative","type":"uint256","internalType":"uint256"},{"name":"suppliedNative","type":"uint256","internalType":"uint256"},{"name":"requiredLzToken","type":"uint256","internalType":"uint256"},{"name":"suppliedLzToken","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_InvalidAmount","inputs":[{"name":"required","type":"uint256","internalType":"uint256"},{"name":"supplied","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_InvalidArgument","inputs":[]},{"type":"error","name":"LZ_InvalidExpiry","inputs":[]},{"type":"error","name":"LZ_InvalidNonce","inputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"LZ_InvalidPayloadHash","inputs":[]},{"type":"error","name":"LZ_InvalidReceiveLibrary","inputs":[]},{"type":"error","name":"LZ_LzTokenUnavailable","inputs":[]},{"type":"error","name":"LZ_NotImplemented","inputs":[]},{"type":"error","name":"LZ_OnlyNonDefaultLib","inputs":[]},{"type":"error","name":"LZ_OnlyReceiveLib","inputs":[]},{"type":"error","name":"LZ_OnlyRegisteredLib","inputs":[]},{"type":"error","name":"LZ_OnlyRegisteredOrDefaultLib","inputs":[]},{"type":"error","name":"LZ_OnlySendLib","inputs":[]},{"type":"error","name":"LZ_PathNotInitializable","inputs":[]},{"type":"error","name":"LZ_PathNotVerifiable","inputs":[]},{"type":"error","name":"LZ_PayloadHashNotFound","inputs":[{"name":"expected","type":"bytes32","internalType":"bytes32"},{"name":"actual","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"LZ_SameValue","inputs":[]},{"type":"error","name":"LZ_SendReentrancy","inputs":[]},{"type":"error","name":"LZ_Unauthorized","inputs":[]},{"type":"error","name":"LZ_UnsupportedEid","inputs":[]},{"type":"error","name":"LZ_UnsupportedInterface","inputs":[]},{"type":"error","name":"LZ_ZeroLzTokenFee","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e399f919a78cb03943e702834a72f685d81ec64a360b10a599e1a0190e0598ca64736f6c63430008160033","sourceMap":"64:1199:62:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;64:1199:62;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e399f919a78cb03943e702834a72f685d81ec64a360b10a599e1a0190e0598ca64736f6c63430008160033","sourceMap":"64:1199:62:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ComposeExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"LZ_ComposeNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_DefaultReceiveLibUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_DefaultSendLibUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requiredNative\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"suppliedNative\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredLzToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"suppliedLzToken\",\"type\":\"uint256\"}],\"name\":\"LZ_InsufficientFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supplied\",\"type\":\"uint256\"}],\"name\":\"LZ_InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_InvalidArgument\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_InvalidExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"LZ_InvalidNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_InvalidPayloadHash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_InvalidReceiveLibrary\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyNonDefaultLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyReceiveLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyRegisteredLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyRegisteredOrDefaultLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlySendLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_PathNotInitializable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_PathNotVerifiable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"LZ_PayloadHashNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_SameValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_SendReentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_UnsupportedEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_UnsupportedInterface\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ZeroLzTokenFee\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":\"Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_AlreadyRegistered"},{"inputs":[],"type":"error","name":"LZ_ComposeExists"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"actual","type":"bytes32"}],"type":"error","name":"LZ_ComposeNotFound"},{"inputs":[],"type":"error","name":"LZ_DefaultReceiveLibUnavailable"},{"inputs":[],"type":"error","name":"LZ_DefaultSendLibUnavailable"},{"inputs":[{"internalType":"uint256","name":"requiredNative","type":"uint256"},{"internalType":"uint256","name":"suppliedNative","type":"uint256"},{"internalType":"uint256","name":"requiredLzToken","type":"uint256"},{"internalType":"uint256","name":"suppliedLzToken","type":"uint256"}],"type":"error","name":"LZ_InsufficientFee"},{"inputs":[{"internalType":"uint256","name":"required","type":"uint256"},{"internalType":"uint256","name":"supplied","type":"uint256"}],"type":"error","name":"LZ_InvalidAmount"},{"inputs":[],"type":"error","name":"LZ_InvalidArgument"},{"inputs":[],"type":"error","name":"LZ_InvalidExpiry"},{"inputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"type":"error","name":"LZ_InvalidNonce"},{"inputs":[],"type":"error","name":"LZ_InvalidPayloadHash"},{"inputs":[],"type":"error","name":"LZ_InvalidReceiveLibrary"},{"inputs":[],"type":"error","name":"LZ_LzTokenUnavailable"},{"inputs":[],"type":"error","name":"LZ_NotImplemented"},{"inputs":[],"type":"error","name":"LZ_OnlyNonDefaultLib"},{"inputs":[],"type":"error","name":"LZ_OnlyReceiveLib"},{"inputs":[],"type":"error","name":"LZ_OnlyRegisteredLib"},{"inputs":[],"type":"error","name":"LZ_OnlyRegisteredOrDefaultLib"},{"inputs":[],"type":"error","name":"LZ_OnlySendLib"},{"inputs":[],"type":"error","name":"LZ_PathNotInitializable"},{"inputs":[],"type":"error","name":"LZ_PathNotVerifiable"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"actual","type":"bytes32"}],"type":"error","name":"LZ_PayloadHashNotFound"},{"inputs":[],"type":"error","name":"LZ_SameValue"},{"inputs":[],"type":"error","name":"LZ_SendReentrancy"},{"inputs":[],"type":"error","name":"LZ_Unauthorized"},{"inputs":[],"type":"error","name":"LZ_UnsupportedEid"},{"inputs":[],"type":"error","name":"LZ_UnsupportedInterface"},{"inputs":[],"type":"error","name":"LZ_ZeroLzTokenFee"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":"Errors"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"}},"version":1},"id":62} \ No newline at end of file diff --git a/packages/onft-evm/out/ExecutorFeeLibMock.sol/ExecutorFeeLibMock.json b/packages/onft-evm/out/ExecutorFeeLibMock.sol/ExecutorFeeLibMock.json deleted file mode 100644 index 6e864bd06..000000000 --- a/packages/onft-evm/out/ExecutorFeeLibMock.sol/ExecutorFeeLibMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getFee","inputs":[{"name":"_params","type":"tuple","internalType":"struct IExecutorFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"calldataSize","type":"uint256","internalType":"uint256"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IExecutor.DstConfig","components":[{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeOnSend","inputs":[{"name":"_params","type":"tuple","internalType":"struct IExecutorFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"calldataSize","type":"uint256","internalType":"uint256"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IExecutor.DstConfig","components":[{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawToken","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Executor_EidNotSupported","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"Executor_InvalidExecutorOptions","inputs":[{"name":"cursor","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Executor_InvalidLzComposeOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReceiveOption","inputs":[]},{"type":"error","name":"Executor_InvalidNativeDropOption","inputs":[]},{"type":"error","name":"Executor_NativeAmountExceedsCap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"cap","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Executor_NoOptions","inputs":[]},{"type":"error","name":"Executor_UnsupportedOptionType","inputs":[{"name":"optionType","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"Executor_ZeroLzComposeGasProvided","inputs":[]},{"type":"error","name":"Executor_ZeroLzReceiveGasProvided","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]}],"bytecode":{"object":"0x60a060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610052565b50670de0b6b3a76400006080526100a2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60805161119a6100bd60003960006107cb015261119a6000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063434ee01614610087578063566ef762146100ba578063715018a6146100da5780638da5cb5b146100ef578063f2fde38b1461011757600080fd5b3661006057005b600080fd5b34801561007157600080fd5b50610085610080366004610dc9565b610137565b005b34801561009357600080fd5b506100a76100a2366004610e1d565b61014f565b6040519081526020015b60405180910390f35b3480156100c657600080fd5b506100a76100d5366004610e1d565b610328565b3480156100e657600080fd5b506100856103fb565b3480156100fb57600080fd5b506000546040516001600160a01b0390911681526020016100b1565b34801561012357600080fd5b50610085610132366004610eaf565b61040f565b61013f61044d565b61014a83838361047a565b505050565b600061015e6020850185610eca565b67ffffffffffffffff166000036101a65761017f6040860160208701610ef4565b60405163c3baa0b760e01b815263ffffffff90911660048201526024015b60405180910390fd5b6000806101f96101c56101bf60408a0160208b01610ef4565b50600090565b6101d26020890189610eca565b6101e260a08a0160808b01610eca565b6101f260808b0160608c01610f2f565b898961049d565b9092509050600080808061021060208c018c610eaf565b6001600160a01b03166388a4124c61022e60408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa158015610281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a59190610f4c565b929650909450925090506102ef846102c360408d0160208e01610fa1565b8d60800160208101906102d69190610fa1565b8d60400160208101906102e99190610f2f565b8561075b565b965061030f8684848e608001602081019061030a9190610fa1565b610832565b6103199088610fdb565b9b9a5050505050505050505050565b60006103376020850185610eca565b67ffffffffffffffff166000036103585761017f6040860160208701610ef4565b6000806103716101c56101bf60408a0160208b01610ef4565b9092509050600080808061038860208c018c610eaf565b6001600160a01b031663c1723a1d6103a660408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af1158015610281573d6000803e3d6000fd5b61040361044d565b61040d600061088a565b565b61041761044d565b6001600160a01b03811661044157604051631e4fbdf760e01b81526000600482015260240161019d565b61044a8161088a565b50565b6000546001600160a01b0316331461040d5760405163118cdaa760e01b815233600482015260240161019d565b6001600160a01b0383166104925761014a82826108da565b61014a838383610987565b6000808281036104bf5760405162575ea160e01b815260040160405180910390fd5b5067ffffffffffffffff861660008089815b868410156106a15760003681806104e98c8c8a6109c2565b9a509195509350915087905060001960ff85160161057c5760008061050e8585610a18565b9150915087801561052857506000816001600160801b0316115b1561054b5760405163052e551560e01b815260ff8716600482015260240161019d565b61055e6001600160801b0382168d610fdb565b9b506105736001600160801b03831688610fdb565b96505050610698565b60011960ff8516016105b25760006105948484610a7d565b5090506105aa6001600160801b0382168c610fdb565b9a5050610698565b60021960ff8516016106655785156105e25760405163052e551560e01b815260ff8516600482015260240161019d565b6000806105ef8585610abb565b9250925050816001600160801b031660000361061e5760405163a169d0e160e01b815260040160405180910390fd5b6106316001600160801b0382168d610fdb565b9b508f67ffffffffffffffff16826106499190610fee565b61065c906001600160801b03168c610fdb565b9a505050610698565b60031960ff85160161067a5760019650610698565b60405163052e551560e01b815260ff8516600482015260240161019d565b505050506104d1565b8387146106c457604051634c83bb7560e11b81526004810185905260240161019d565b886001600160801b03168611156106ff576040516242670160e11b8152600481018790526001600160801b038a16602482015260440161019d565b8060000361072057604051630e5eb8f360e41b815260040160405180910390fd5b61072a8186610fdb565b9450821561074c57606461073f866066611015565b610749919061102c565b94505b50505050965096945050505050565b60008061ffff86161561076e5785610770565b845b9050600061271061078561ffff84168a611015565b61078f919061102c565b90506001600160801b03841615806107ae57506001600160801b038516155b156107bc5791506108299050565b600088856001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000886001600160801b03166107fe9190611015565b610808919061102c565b6108129190610fdb565b90508181116108215781610823565b805b93505050505b95945050505050565b60008415610882576127108261ffff16846001600160801b0316866001600160801b0316886108619190611015565b61086b919061102c565b6108759190611015565b61087f919061102c565b90505b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216610901576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461094e576040519150601f19603f3d011682016040523d82523d6000602084013e610953565b606091505b505090508061014a57604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161019d565b6001600160a01b0382166109ae576040516306b7a93160e41b815260040160405180910390fd5b61014a6001600160a01b0384168383610b2f565b6000368160018401816109d6888884610b81565b6002929092019190506109ea888884610baa565b94506001820161ffff82168301610a0381838b8d61104e565b979b909a50969850505061ffff160193505050565b60008060108314801590610a2d575060208314155b15610a4b57604051634796aee160e01b815260040160405180910390fd5b610a5784846000610bcf565b915060208314610a68576000610a74565b610a7484846010610bcf565b90509250929050565b60008060308314610aa1576040516361d0c2c760e11b815260040160405180910390fd5b610aad84846000610bcf565b9150610a7484846010610bf6565b6000808060128414801590610ad1575060228414155b15610aef57604051638b4aa70b60e01b815260040160405180910390fd5b610afb85856000610b81565b9250610b0985856002610bcf565b915060228414610b1a576000610b26565b610b2685856012610bcf565b90509250925092565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261014a908490610c11565b600060028201610b938184868861104e565b610b9c91611078565b60f01c9150505b9392505050565b6000838383818110610bbe57610bbe6110a8565b919091013560f81c95945050505050565b600060108201610be18184868861104e565b610bea916110be565b60801c95945050505050565b600060208201610c088184868861104e565b610829916110f5565b6000610c266001600160a01b03841683610c74565b90508051600014158015610c4b575080806020019051810190610c499190611113565b155b1561014a57604051635274afe760e01b81526001600160a01b038416600482015260240161019d565b6060610c8283836000610c8b565b90505b92915050565b606081471015610cb05760405163cd78605960e01b815230600482015260240161019d565b600080856001600160a01b03168486604051610ccc9190611135565b60006040518083038185875af1925050503d8060008114610d09576040519150601f19603f3d011682016040523d82523d6000602084013e610d0e565b606091505b5091509150610d1e868383610d28565b9695505050505050565b606082610d3d57610d3882610d84565b610ba3565b8151158015610d5457506001600160a01b0384163b155b15610d7d57604051639996b31560e01b81526001600160a01b038516600482015260240161019d565b5080610ba3565b805115610d945780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610dc457600080fd5b919050565b600080600060608486031215610dde57600080fd5b610de784610dad565b9250610df560208501610dad565b9150604084013590509250925092565b600060a08284031215610e1757600080fd5b50919050565b6000806000806101608587031215610e3457600080fd5b610e3e8686610e05565b9350610e4d8660a08701610e05565b925061014085013567ffffffffffffffff80821115610e6b57600080fd5b818701915087601f830112610e7f57600080fd5b813581811115610e8e57600080fd5b886020828501011115610ea057600080fd5b95989497505060200194505050565b600060208284031215610ec157600080fd5b610c8282610dad565b600060208284031215610edc57600080fd5b813567ffffffffffffffff81168114610ba357600080fd5b600060208284031215610f0657600080fd5b813563ffffffff81168114610ba357600080fd5b6001600160801b038116811461044a57600080fd5b600060208284031215610f4157600080fd5b8135610ba381610f1a565b60008060008060808587031215610f6257600080fd5b845193506020850151610f7481610f1a565b6040860151909350610f8581610f1a565b6060860151909250610f9681610f1a565b939692955090935050565b600060208284031215610fb357600080fd5b813561ffff81168114610ba357600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610c8557610c85610fc5565b6001600160801b0381811683821601908082111561100e5761100e610fc5565b5092915050565b8082028115828204841417610c8557610c85610fc5565b60008261104957634e487b7160e01b600052601260045260246000fd5b500490565b6000808585111561105e57600080fd5b8386111561106b57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156110a05780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b6fffffffffffffffffffffffffffffffff1981358181169160108510156110a05760109490940360031b84901b1690921692915050565b80356020831015610c8557600019602084900360031b1b1692915050565b60006020828403121561112557600080fd5b81518015158114610ba357600080fd5b6000825160005b81811015611156576020818601810151858301520161113c565b50600092019182525091905056fea26469706673582212203780ea40a0f93eab5083efacc1d316a7c83f03997bd6b3821d356fbf88b94a5164736f6c63430008160033","sourceMap":"726:7448:75:-:0;;;934:76;;;;;;;;;-1:-1:-1;956:10:75;;1269:95:105;;1322:31;;-1:-1:-1;;;1322:31:105;;1350:1;1322:31;;;160:51:145;133:18;;1322:31:105;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;999:4:75::1;978:25;::::0;726:7448;;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:203:145:-;726:7448:75;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100595760003560e01c806301e3366714610065578063434ee01614610087578063566ef762146100ba578063715018a6146100da5780638da5cb5b146100ef578063f2fde38b1461011757600080fd5b3661006057005b600080fd5b34801561007157600080fd5b50610085610080366004610dc9565b610137565b005b34801561009357600080fd5b506100a76100a2366004610e1d565b61014f565b6040519081526020015b60405180910390f35b3480156100c657600080fd5b506100a76100d5366004610e1d565b610328565b3480156100e657600080fd5b506100856103fb565b3480156100fb57600080fd5b506000546040516001600160a01b0390911681526020016100b1565b34801561012357600080fd5b50610085610132366004610eaf565b61040f565b61013f61044d565b61014a83838361047a565b505050565b600061015e6020850185610eca565b67ffffffffffffffff166000036101a65761017f6040860160208701610ef4565b60405163c3baa0b760e01b815263ffffffff90911660048201526024015b60405180910390fd5b6000806101f96101c56101bf60408a0160208b01610ef4565b50600090565b6101d26020890189610eca565b6101e260a08a0160808b01610eca565b6101f260808b0160608c01610f2f565b898961049d565b9092509050600080808061021060208c018c610eaf565b6001600160a01b03166388a4124c61022e60408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa158015610281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a59190610f4c565b929650909450925090506102ef846102c360408d0160208e01610fa1565b8d60800160208101906102d69190610fa1565b8d60400160208101906102e99190610f2f565b8561075b565b965061030f8684848e608001602081019061030a9190610fa1565b610832565b6103199088610fdb565b9b9a5050505050505050505050565b60006103376020850185610eca565b67ffffffffffffffff166000036103585761017f6040860160208701610ef4565b6000806103716101c56101bf60408a0160208b01610ef4565b9092509050600080808061038860208c018c610eaf565b6001600160a01b031663c1723a1d6103a660408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af1158015610281573d6000803e3d6000fd5b61040361044d565b61040d600061088a565b565b61041761044d565b6001600160a01b03811661044157604051631e4fbdf760e01b81526000600482015260240161019d565b61044a8161088a565b50565b6000546001600160a01b0316331461040d5760405163118cdaa760e01b815233600482015260240161019d565b6001600160a01b0383166104925761014a82826108da565b61014a838383610987565b6000808281036104bf5760405162575ea160e01b815260040160405180910390fd5b5067ffffffffffffffff861660008089815b868410156106a15760003681806104e98c8c8a6109c2565b9a509195509350915087905060001960ff85160161057c5760008061050e8585610a18565b9150915087801561052857506000816001600160801b0316115b1561054b5760405163052e551560e01b815260ff8716600482015260240161019d565b61055e6001600160801b0382168d610fdb565b9b506105736001600160801b03831688610fdb565b96505050610698565b60011960ff8516016105b25760006105948484610a7d565b5090506105aa6001600160801b0382168c610fdb565b9a5050610698565b60021960ff8516016106655785156105e25760405163052e551560e01b815260ff8516600482015260240161019d565b6000806105ef8585610abb565b9250925050816001600160801b031660000361061e5760405163a169d0e160e01b815260040160405180910390fd5b6106316001600160801b0382168d610fdb565b9b508f67ffffffffffffffff16826106499190610fee565b61065c906001600160801b03168c610fdb565b9a505050610698565b60031960ff85160161067a5760019650610698565b60405163052e551560e01b815260ff8516600482015260240161019d565b505050506104d1565b8387146106c457604051634c83bb7560e11b81526004810185905260240161019d565b886001600160801b03168611156106ff576040516242670160e11b8152600481018790526001600160801b038a16602482015260440161019d565b8060000361072057604051630e5eb8f360e41b815260040160405180910390fd5b61072a8186610fdb565b9450821561074c57606461073f866066611015565b610749919061102c565b94505b50505050965096945050505050565b60008061ffff86161561076e5785610770565b845b9050600061271061078561ffff84168a611015565b61078f919061102c565b90506001600160801b03841615806107ae57506001600160801b038516155b156107bc5791506108299050565b600088856001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000886001600160801b03166107fe9190611015565b610808919061102c565b6108129190610fdb565b90508181116108215781610823565b805b93505050505b95945050505050565b60008415610882576127108261ffff16846001600160801b0316866001600160801b0316886108619190611015565b61086b919061102c565b6108759190611015565b61087f919061102c565b90505b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216610901576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461094e576040519150601f19603f3d011682016040523d82523d6000602084013e610953565b606091505b505090508061014a57604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161019d565b6001600160a01b0382166109ae576040516306b7a93160e41b815260040160405180910390fd5b61014a6001600160a01b0384168383610b2f565b6000368160018401816109d6888884610b81565b6002929092019190506109ea888884610baa565b94506001820161ffff82168301610a0381838b8d61104e565b979b909a50969850505061ffff160193505050565b60008060108314801590610a2d575060208314155b15610a4b57604051634796aee160e01b815260040160405180910390fd5b610a5784846000610bcf565b915060208314610a68576000610a74565b610a7484846010610bcf565b90509250929050565b60008060308314610aa1576040516361d0c2c760e11b815260040160405180910390fd5b610aad84846000610bcf565b9150610a7484846010610bf6565b6000808060128414801590610ad1575060228414155b15610aef57604051638b4aa70b60e01b815260040160405180910390fd5b610afb85856000610b81565b9250610b0985856002610bcf565b915060228414610b1a576000610b26565b610b2685856012610bcf565b90509250925092565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261014a908490610c11565b600060028201610b938184868861104e565b610b9c91611078565b60f01c9150505b9392505050565b6000838383818110610bbe57610bbe6110a8565b919091013560f81c95945050505050565b600060108201610be18184868861104e565b610bea916110be565b60801c95945050505050565b600060208201610c088184868861104e565b610829916110f5565b6000610c266001600160a01b03841683610c74565b90508051600014158015610c4b575080806020019051810190610c499190611113565b155b1561014a57604051635274afe760e01b81526001600160a01b038416600482015260240161019d565b6060610c8283836000610c8b565b90505b92915050565b606081471015610cb05760405163cd78605960e01b815230600482015260240161019d565b600080856001600160a01b03168486604051610ccc9190611135565b60006040518083038185875af1925050503d8060008114610d09576040519150601f19603f3d011682016040523d82523d6000602084013e610d0e565b606091505b5091509150610d1e868383610d28565b9695505050505050565b606082610d3d57610d3882610d84565b610ba3565b8151158015610d5457506001600160a01b0384163b155b15610d7d57604051639996b31560e01b81526001600160a01b038516600482015260240161019d565b5080610ba3565b805115610d945780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610dc457600080fd5b919050565b600080600060608486031215610dde57600080fd5b610de784610dad565b9250610df560208501610dad565b9150604084013590509250925092565b600060a08284031215610e1757600080fd5b50919050565b6000806000806101608587031215610e3457600080fd5b610e3e8686610e05565b9350610e4d8660a08701610e05565b925061014085013567ffffffffffffffff80821115610e6b57600080fd5b818701915087601f830112610e7f57600080fd5b813581811115610e8e57600080fd5b886020828501011115610ea057600080fd5b95989497505060200194505050565b600060208284031215610ec157600080fd5b610c8282610dad565b600060208284031215610edc57600080fd5b813567ffffffffffffffff81168114610ba357600080fd5b600060208284031215610f0657600080fd5b813563ffffffff81168114610ba357600080fd5b6001600160801b038116811461044a57600080fd5b600060208284031215610f4157600080fd5b8135610ba381610f1a565b60008060008060808587031215610f6257600080fd5b845193506020850151610f7481610f1a565b6040860151909350610f8581610f1a565b6060860151909250610f9681610f1a565b939692955090935050565b600060208284031215610fb357600080fd5b813561ffff81168114610ba357600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610c8557610c85610fc5565b6001600160801b0381811683821601908082111561100e5761100e610fc5565b5092915050565b8082028115828204841417610c8557610c85610fc5565b60008261104957634e487b7160e01b600052601260045260246000fd5b500490565b6000808585111561105e57600080fd5b8386111561106b57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156110a05780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b6fffffffffffffffffffffffffffffffff1981358181169160108510156110a05760109490940360031b84901b1690921692915050565b80356020831015610c8557600019602084900360031b1b1692915050565b60006020828403121561112557600080fd5b81518015158114610ba357600080fd5b6000825160005b81811015611156576020818601810151858301520161113c565b50600092019182525091905056fea26469706673582212203780ea40a0f93eab5083efacc1d316a7c83f03997bd6b3821d356fbf88b94a5164736f6c63430008160033","sourceMap":"726:7448:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1099:203;;;;;;;;;;-1:-1:-1;1099:203:75;;;;;:::i;:::-;;:::i;:::-;;2753:1216;;;;;;;;;;-1:-1:-1;2753:1216:75;;;;;:::i;:::-;;:::i;:::-;;;1697:25:145;;;1685:2;1670:18;2753:1216:75;;;;;;;;1390:1279;;;;;;;;;;-1:-1:-1;1390:1279:75;;;;;:::i;:::-;;:::i;2293:101:105:-;;;;;;;;;;;;;:::i;1638:85::-;;;;;;;;;;-1:-1:-1;1684:7:105;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:105;;;1879:51:145;;1867:2;1852:18;1638:85:105;1733:203:145;2543:215:105;;;;;;;;;;-1:-1:-1;2543:215:105;;;;;:::i;:::-;;:::i;1099:203:75:-;1531:13:105;:11;:13::i;:::-;1251:44:75::1;1274:6;1282:3;1287:7;1251:22;:44::i;:::-;1099:203:::0;;;:::o;2753:1216::-;2916:11;2943:27;;;;:10;:27;:::i;:::-;:32;;2974:1;2943:32;2939:85;;3009:14;;;;;;;;:::i;:::-;2984:40;;-1:-1:-1;;;2984:40:75;;2876:10:145;2864:23;;;2984:40:75;;;2846:42:145;2819:18;;2984:40:75;;;;;;;;2939:85;3036:22;;3080:208;3116:24;3125:14;;;;;;;;:::i;:::-;-1:-1:-1;7885:4:75;;7819:101;3116:24;3154:27;;;;:10;:27;:::i;:::-;3195;;;;;;;;:::i;:::-;3236:20;;;;;;;;:::i;:::-;3270:8;;3080:22;:208::i;:::-;3035:253;;-1:-1:-1;3035:253:75;-1:-1:-1;3313:19:75;;;;3476:17;;;;:7;:17;:::i;:::-;-1:-1:-1;;;;;3456:55:75;;3512:14;;;;;;;;:::i;:::-;3456:103;;-1:-1:-1;;;;;;3456:103:75;;;;;;;;3520:23:145;;;;3456:103:75;;;3502:42:145;3528:20:75;;;;3560:18:145;;;3553:34;3603:18;;;3596:34;;;3475:18;;3456:103:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3299:260;;-1:-1:-1;3299:260:75;;-1:-1:-1;3299:260:75;-1:-1:-1;3299:260:75;-1:-1:-1;3576:200:75;3299:260;3633:24;;;;;;;;:::i;:::-;3671:7;:28;;;;;;;;;;:::i;:::-;3713:10;:25;;;;;;;;;;:::i;:::-;3752:14;3576:18;:200::i;:::-;3570:206;;3793:169;3837:14;3865:10;3889:21;3924:7;:28;;;;;;;;;;:::i;:::-;3793:30;:169::i;:::-;3786:176;;;;:::i;:::-;;2753:1216;-1:-1:-1;;;;;;;;;;;2753:1216:75:o;1390:1279::-;1554:11;1581:27;;;;:10;:27;:::i;:::-;:32;;1612:1;1581:32;1577:85;;1647:14;;;;;;;;:::i;1577:85::-;1674:22;;1718:208;1754:24;1763:14;;;;;;;;:::i;1718:208::-;1673:253;;-1:-1:-1;1673:253:75;-1:-1:-1;2012:19:75;;;;2175:17;;;;:7;:17;:::i;:::-;-1:-1:-1;;;;;2155:56:75;;2212:14;;;;;;;;:::i;:::-;2155:104;;-1:-1:-1;;;;;;2155:104:75;;;;;;;;3520:23:145;;;;2155:104:75;;;3502:42:145;2228:20:75;;;;3560:18:145;;;3553:34;3603:18;;;3596:34;;;3475:18;;2155:104:75;;;;;;;;;;;;;;;;;;;;;;;2293:101:105;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2543:215::-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:105;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:105;;2700:1:::1;2672:31;::::0;::::1;1879:51:145::0;1852:18;;2672:31:105::1;1733:203:145::0;2623:91:105::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:105;735:10:120;1855:23:105;1851:101;;1901:40;;-1:-1:-1;;;1901:40:105;;735:10:120;1901:40:105;;;1879:51:145;1852:18;;1901:40:105;1733:203:145;896:222:64;-1:-1:-1;;;;;987:22:64;;983:129;;1025:19;1032:3;1037:6;1025;:19::i;983:129::-;1075:26;1081:6;1089:3;1094:6;1075:5;:26::i;4121:2727:75:-;4332:17;;4383:20;;;4379:78;;4426:20;;-1:-1:-1;;;4426:20:75;;;;;;;;;;;4379:78;-1:-1:-1;4525:28:75;;;4467:14;;4608:6;4467:14;4672:1794;4679:24;;;4672:1794;;;4720:16;4738:21;4720:16;;4782:35;:8;;4810:6;4782:27;:35::i;:::-;4719:98;-1:-1:-1;4719:98:75;;-1:-1:-1;4719:98:75;-1:-1:-1;4719:98:75;-1:-1:-1;4719:98:75;;-1:-1:-1;;;4868:51:75;;;;4864:1592;;4940:11;4953:13;4970:45;5008:6;;4970:37;:45::i;:::-;4939:76;;;;5107:5;:18;;;;;5124:1;5116:5;-1:-1:-1;;;;;5116:9:75;;5107:18;5103:73;;;5134:42;;-1:-1:-1;;;5134:42:75;;4938:4:145;4926:17;;5134:42:75;;;4908:36:145;4881:18;;5134:42:75;4766:184:145;5103:73:75;5195:18;-1:-1:-1;;;;;5195:18:75;;;;:::i;:::-;;-1:-1:-1;5231:19:75;-1:-1:-1;;;;;5231:19:75;;;;:::i;:::-;;;4921:344;;4864:1592;;;-1:-1:-1;;5275:53:75;;;;5271:1185;;5349:24;5379:46;5418:6;;5379:38;:46::i;:::-;-1:-1:-1;5348:77:75;-1:-1:-1;5443:29:75;-1:-1:-1;;;;;5443:29:75;;;;:::i;:::-;;;5330:157;5271:1185;;;-1:-1:-1;;5497:51:75;;;;5493:963;;5630:5;5626:60;;;5644:42;;-1:-1:-1;;;5644:42:75;;4938:4:145;4926:17;;5644:42:75;;;4908:36:145;4881:18;;5644:42:75;4766:184:145;5626:60:75;5708:11;5721:13;5738:45;5776:6;;5738:37;:45::i;:::-;5705:78;;;;;5805:3;-1:-1:-1;;;;;5805:8:75;5812:1;5805:8;5801:56;;5822:35;;-1:-1:-1;;;5822:35:75;;;;;;;;;;;5801:56;5876:18;-1:-1:-1;;;;;5876:18:75;;;;:::i;:::-;;;6218:17;6212:23;;:3;:23;;;;:::i;:::-;6200:35;;-1:-1:-1;;;;;6200:35:75;;;:::i;:::-;;;5550:700;;5493:963;;;-1:-1:-1;;6260:59:75;;;;6256:200;;6349:4;6339:14;;6256:200;;;6399:42;;-1:-1:-1;;;6399:42:75;;4938:4:145;4926:17;;6399:42:75;;;4908:36:145;4881:18;;6399:42:75;4766:184:145;6256:200:75;4705:1761;;;;4672:1794;;;6479:25;;;6475:77;;6513:39;;-1:-1:-1;;;6513:39:75;;;;;1697:25:145;;;1670:18;;6513:39:75;1551:177:145;6475:77:75;6578:10;-1:-1:-1;;;;;6566:22:75;:9;:22;6562:89;;;6597:54;;-1:-1:-1;;;6597:54:75;;;;;5331:25:145;;;-1:-1:-1;;;;;5392:47:145;;5372:18;;;5365:75;5304:18;;6597:54:75;5157:289:145;6562:89:75;6665:12;6681:1;6665:17;6661:65;;6691:35;;-1:-1:-1;;;6691:35:75;;;;;;;;;;;6661:65;6736:24;6748:12;6736:24;;:::i;:::-;;;6775:7;6771:71;;;6828:3;6810:14;:8;6821:3;6810:14;:::i;:::-;6809:22;;;;:::i;:::-;6798:33;;6771:71;4369:2479;;;;4121:2727;;;;;;;;;:::o;6854:619::-;7043:7;;7085:9;;;;:30;;7111:4;7085:30;;;7097:11;7085:30;7062:53;-1:-1:-1;7126:25:75;7179:5;7155:20;;;;:4;:20;:::i;:::-;7154:30;;;;:::i;:::-;7126:58;-1:-1:-1;;;;;;7199:20:75;;;;:39;;-1:-1:-1;;;;;;7223:15:75;;;7199:39;7195:94;;;7261:17;-1:-1:-1;7254:24:75;;-1:-1:-1;7254:24:75;7195:94;7298:21;7376:4;7358:15;-1:-1:-1;;;;;7322:51:75;7336:18;7323:10;-1:-1:-1;;;;;7323:31:75;;;;;:::i;:::-;7322:51;;;;:::i;:::-;:58;;;;:::i;:::-;7298:82;;7413:17;7397:13;:33;:69;;7449:17;7397:69;;;7433:13;7397:69;7390:76;;;;;6854:619;;;;;;;;:::o;7516:297::-;7685:11;7712:10;;7708:99;;7791:5;7776:11;7745:42;;7766:6;-1:-1:-1;;;;;7746:26:75;7756:6;-1:-1:-1;;;;;7747:15:75;:6;:15;;;;:::i;:::-;7746:26;;;;:::i;:::-;7745:42;;;;:::i;:::-;7744:52;;;;:::i;:::-;7738:58;;7708:99;7516:297;;;;;;:::o;2912:187:105:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;438:252:64:-;-1:-1:-1;;;;;506:19:64;;502:58;;534:26;;-1:-1:-1;;;534:26:64;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:64;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;-1:-1:-1;;;649:34:64;;-1:-1:-1;;;;;6248:32:145;;649:34:64;;;6230:51:145;6297:18;;;6290:34;;;6203:18;;649:34:64;6056:274:145;696:194:64;-1:-1:-1;;;;;779:19:64;;775:58;;807:26;;-1:-1:-1;;;807:26:64;;;;;;;;;;;775:58;843:40;-1:-1:-1;;;;;843:27:64;;871:3;876:6;843:27;:40::i;1251:742:67:-;1366:16;1384:21;1366:16;1506:1;1496:11;;1366:16;1568:22;:8;;1496:11;1568:14;:22::i;:::-;1614:1;1604:11;;;;;1554:36;-1:-1:-1;1675:21:67;:8;;1604:11;1675:13;:21::i;:::-;1662:34;-1:-1:-1;1826:1:67;1817:10;;1881:13;;;;;1917:31;1881:13;1817:10;1917:8;;:31;:::i;:::-;1251:742;;1908:40;;-1:-1:-1;1908:40:67;;-1:-1:-1;;;1962:14:67;;;;-1:-1:-1;;;1251:742:67:o;1999:309::-;2077:11;;2137:2;2119:20;;;;;:44;;-1:-1:-1;2161:2:67;2143:20;;;2119:44;2115:90;;;2172:33;;-1:-1:-1;;;2172:33:67;;;;;;;;;;;2115:90;2221:17;:7;;2236:1;2221:14;:17::i;:::-;2215:23;-1:-1:-1;2274:2:67;2256:20;;:45;;2300:1;2256:45;;;2279:18;:7;;2294:2;2279:14;:18::i;:::-;2248:53;;1999:309;;;;;:::o;2314:271::-;2393:14;;2459:2;2441:20;;2437:67;;2470:34;;-1:-1:-1;;;2470:34:67;;;;;;;;;;;2437:67;2523:17;:7;;2538:1;2523:14;:17::i;:::-;2514:26;-1:-1:-1;2561:17:67;:7;;2575:2;2561:13;:17::i;2591:371::-;2683:12;;;2757:2;2739:20;;;;;:44;;-1:-1:-1;2781:2:67;2763:20;;;2739:44;2735:90;;;2792:33;;-1:-1:-1;;;2792:33:67;;;;;;;;;;;2735:90;2843:16;:7;;2857:1;2843:13;:16::i;:::-;2835:24;-1:-1:-1;2875:17:67;:7;;2890:1;2875:14;:17::i;:::-;2869:23;-1:-1:-1;2928:2:67;2910:20;;:45;;2954:1;2910:45;;;2933:18;:7;;2948:2;2933:14;:18::i;:::-;2902:53;;2591:371;;;;;:::o;1303:160:113:-;1412:43;;;-1:-1:-1;;;;;6248:32:145;;1412:43:113;;;6230:51:145;6297:18;;;;6290:34;;;1412:43:113;;;;;;;;;;6203:18:145;;;;1412:43:113;;;;;;;;-1:-1:-1;;;;;1412:43:113;-1:-1:-1;;;1412:43:113;;;1385:71;;1405:5;;1385:19;:71::i;229:215:61:-;306:6;371:1;362:10;;407:18;362:10;:6;407;;:18;:::i;:::-;400:26;;;:::i;:::-;393:34;;386:41;;;229:215;;;;;;:::o;95:128::-;171:5;201:6;;208;201:14;;;;;;;:::i;:::-;;;;;;;;;95:128;-1:-1:-1;;;;;95:128:61:o;892:220::-;970:7;1036:2;1027:11;;1075:18;1027:11;:6;1075;;:18;:::i;:::-;1067:27;;;:::i;:::-;1059:36;;;892:220;-1:-1:-1;;;;;892:220:61:o;1570:210::-;1647:7;1713:2;1704:11;;1744:18;1704:11;:6;1744;;:18;:::i;:::-;1736:27;;;:::i;4059:629:113:-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:113;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:113;;-1:-1:-1;;;;;1897:32:145;;4631:40:113;;;1879:51:145;1852:18;;4631:40:113;1733:203:145;2705:151:118;2780:12;2811:38;2833:6;2841:4;2847:1;2811:21;:38::i;:::-;2804:45;;2705:151;;;;;:::o;3180:392::-;3279:12;3331:5;3307:21;:29;3303:108;;;3359:41;;-1:-1:-1;;;3359:41:118;;3394:4;3359:41;;;1879:51:145;1852:18;;3359:41:118;1733:203:145;3303:108:118;3421:12;3435:23;3462:6;-1:-1:-1;;;;;3462:11:118;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:118:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:118;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:118;;-1:-1:-1;;;;;1897:32:145;;5121:24:118;;;1879:51:145;1852:18;;5121:24:118;1733:203:145;5041:119:118;-1:-1:-1;5180:10:118;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:118;;;;;;;;;;;14:173:145;82:20;;-1:-1:-1;;;;;131:31:145;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:328::-;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:52;;;354:1;351;344:12;306:52;377:29;396:9;377:29;:::i;:::-;367:39;;425:38;459:2;448:9;444:18;425:38;:::i;:::-;415:48;;510:2;499:9;495:18;482:32;472:42;;192:328;;;;;:::o;525:158::-;587:5;632:3;623:6;618:3;614:16;610:26;607:46;;;649:1;646;639:12;607:46;-1:-1:-1;671:6:145;525:158;-1:-1:-1;525:158:145:o;688:858::-;834:6;842;850;858;911:3;899:9;890:7;886:23;882:33;879:53;;;928:1;925;918:12;879:53;951:56;999:7;988:9;951:56;:::i;:::-;941:66;;1026;1084:7;1078:3;1067:9;1063:19;1026:66;:::i;:::-;1016:76;;1143:3;1132:9;1128:19;1115:33;1167:18;1208:2;1200:6;1197:14;1194:34;;;1224:1;1221;1214:12;1194:34;1262:6;1251:9;1247:22;1237:32;;1307:7;1300:4;1296:2;1292:13;1288:27;1278:55;;1329:1;1326;1319:12;1278:55;1369:2;1356:16;1395:2;1387:6;1384:14;1381:34;;;1411:1;1408;1401:12;1381:34;1458:7;1451:4;1442:6;1438:2;1434:15;1430:26;1427:39;1424:59;;;1479:1;1476;1469:12;1424:59;688:858;;;;-1:-1:-1;;1510:4:145;1502:13;;-1:-1:-1;;;688:858:145:o;1941:186::-;2000:6;2053:2;2041:9;2032:7;2028:23;2024:32;2021:52;;;2069:1;2066;2059:12;2021:52;2092:29;2111:9;2092:29;:::i;2132:284::-;2190:6;2243:2;2231:9;2222:7;2218:23;2214:32;2211:52;;;2259:1;2256;2249:12;2211:52;2298:9;2285:23;2348:18;2341:5;2337:30;2330:5;2327:41;2317:69;;2382:1;2379;2372:12;2421:276;2479:6;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;2587:9;2574:23;2637:10;2630:5;2626:22;2619:5;2616:33;2606:61;;2663:1;2660;2653:12;2899:146;-1:-1:-1;;;;;2978:5:145;2974:46;2967:5;2964:57;2954:85;;3035:1;3032;3025:12;3050:247;3109:6;3162:2;3150:9;3141:7;3137:23;3133:32;3130:52;;;3178:1;3175;3168:12;3130:52;3217:9;3204:23;3236:31;3261:5;3236:31;:::i;3641:581::-;3738:6;3746;3754;3762;3815:3;3803:9;3794:7;3790:23;3786:33;3783:53;;;3832:1;3829;3822:12;3783:53;3861:9;3855:16;3845:26;;3914:2;3903:9;3899:18;3893:25;3927:31;3952:5;3927:31;:::i;:::-;4027:2;4012:18;;4006:25;3977:5;;-1:-1:-1;4040:33:145;4006:25;4040:33;:::i;:::-;4144:2;4129:18;;4123:25;4092:7;;-1:-1:-1;4157:33:145;4123:25;4157:33;:::i;:::-;3641:581;;;;-1:-1:-1;3641:581:145;;-1:-1:-1;;3641:581:145:o;4227:272::-;4285:6;4338:2;4326:9;4317:7;4313:23;4309:32;4306:52;;;4354:1;4351;4344:12;4306:52;4393:9;4380:23;4443:6;4436:5;4432:18;4425:5;4422:29;4412:57;;4465:1;4462;4455:12;4504:127;4565:10;4560:3;4556:20;4553:1;4546:31;4596:4;4593:1;4586:15;4620:4;4617:1;4610:15;4636:125;4701:9;;;4722:10;;;4719:36;;;4735:18;;:::i;4955:197::-;-1:-1:-1;;;;;5077:10:145;;;5089;;;5073:27;;5112:11;;;5109:37;;;5126:18;;:::i;:::-;5109:37;4955:197;;;;:::o;5451:168::-;5524:9;;;5555;;5572:15;;;5566:22;;5552:37;5542:71;;5593:18;;:::i;5624:217::-;5664:1;5690;5680:132;;5734:10;5729:3;5725:20;5722:1;5715:31;5769:4;5766:1;5759:15;5797:4;5794:1;5787:15;5680:132;-1:-1:-1;5826:9:145;;5624:217::o;6335:331::-;6440:9;6451;6493:8;6481:10;6478:24;6475:44;;;6515:1;6512;6505:12;6475:44;6544:6;6534:8;6531:20;6528:40;;;6564:1;6561;6554:12;6528:40;-1:-1:-1;;6590:23:145;;;6635:25;;;;;-1:-1:-1;6335:331:145:o;6671:318::-;-1:-1:-1;;;;;;6791:19:145;;6862:11;;;;6893:1;6885:10;;6882:101;;;6970:2;6964;6957:3;6954:1;6950:11;6947:1;6943:19;6939:28;6935:2;6931:37;6927:46;6918:55;;6882:101;;;6671:318;;;;:::o;6994:127::-;7055:10;7050:3;7046:20;7043:1;7036:31;7086:4;7083:1;7076:15;7110:4;7107:1;7100:15;7126:345;-1:-1:-1;;7247:19:145;;7342:11;;;;7373:2;7365:11;;7362:103;;;7435:2;7431:12;;;;7428:1;7424:20;7420:29;;;7412:38;7408:47;;;;7126:345;-1:-1:-1;;7126:345:145:o;7476:255::-;7596:19;;7635:2;7627:11;;7624:101;;;-1:-1:-1;;7696:2:145;7692:12;;;7689:1;7685:20;7681:33;7670:45;7476:255;;;;:::o;7736:277::-;7803:6;7856:2;7844:9;7835:7;7831:23;7827:32;7824:52;;;7872:1;7869;7862:12;7824:52;7904:9;7898:16;7957:5;7950:13;7943:21;7936:5;7933:32;7923:60;;7979:1;7976;7969:12;8018:412;8147:3;8185:6;8179:13;8210:1;8220:129;8234:6;8231:1;8228:13;8220:129;;;8332:4;8316:14;;;8312:25;;8306:32;8293:11;;;8286:53;8249:12;8220:129;;;-1:-1:-1;8404:1:145;8368:16;;8393:13;;;-1:-1:-1;8368:16:145;8018:412;-1:-1:-1;8018:412:145:o","linkReferences":{},"immutableReferences":{"16528":[{"start":1995,"length":32}]}},"methodIdentifiers":{"getFee((address,uint32,address,uint256,uint16),(uint64,uint16,uint128,uint128,uint64),bytes)":"434ee016","getFeeOnSend((address,uint32,address,uint256,uint16),(uint64,uint16,uint128,uint128,uint64),bytes)":"566ef762","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","withdrawToken(address,address,uint256)":"01e33667"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"Executor_EidNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"Executor_InvalidExecutorOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReceiveOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidNativeDropOption\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"}],\"name\":\"Executor_NativeAmountExceedsCap\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_NoOptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"optionType\",\"type\":\"uint8\"}],\"name\":\"Executor_UnsupportedOptionType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_ZeroLzComposeGasProvided\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_ZeroLzReceiveGasProvided\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"calldataSize\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IExecutorFeeLib.FeeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"lzReceiveBaseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"nativeCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"lzComposeBaseGas\",\"type\":\"uint64\"}],\"internalType\":\"struct IExecutor.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"calldataSize\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IExecutorFeeLib.FeeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"lzReceiveBaseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"nativeCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"lzComposeBaseGas\",\"type\":\"uint64\"}],\"internalType\":\"struct IExecutor.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFeeOnSend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol\":\"ExecutorFeeLibMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":{\"keccak256\":\"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f\",\"dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol\":{\"keccak256\":\"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032\",\"dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol\":{\"keccak256\":\"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13\",\"dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"Executor_EidNotSupported"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"type":"error","name":"Executor_InvalidExecutorOptions"},{"inputs":[],"type":"error","name":"Executor_InvalidLzComposeOption"},{"inputs":[],"type":"error","name":"Executor_InvalidLzReceiveOption"},{"inputs":[],"type":"error","name":"Executor_InvalidNativeDropOption"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"cap","type":"uint256"}],"type":"error","name":"Executor_NativeAmountExceedsCap"},{"inputs":[],"type":"error","name":"Executor_NoOptions"},{"inputs":[{"internalType":"uint8","name":"optionType","type":"uint8"}],"type":"error","name":"Executor_UnsupportedOptionType"},{"inputs":[],"type":"error","name":"Executor_ZeroLzComposeGasProvided"},{"inputs":[],"type":"error","name":"Executor_ZeroLzReceiveGasProvided"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"struct IExecutorFeeLib.FeeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"calldataSize","type":"uint256"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IExecutor.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"lzReceiveBaseGas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"},{"internalType":"uint128","name":"nativeCap","type":"uint128"},{"internalType":"uint64","name":"lzComposeBaseGas","type":"uint64"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"struct IExecutorFeeLib.FeeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"calldataSize","type":"uint256"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IExecutor.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"lzReceiveBaseGas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"},{"internalType":"uint128","name":"nativeCap","type":"uint128"},{"internalType":"uint64","name":"lzComposeBaseGas","type":"uint64"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"getFeeOnSend","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawToken"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol":"ExecutorFeeLibMock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":{"keccak256":"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a","urls":["bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f","dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol":{"keccak256":"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3","urls":["bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032","dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol":{"keccak256":"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21","urls":["bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13","dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":75} \ No newline at end of file diff --git a/packages/onft-evm/out/ExecutorMock.sol/ExecutorMock.json b/packages/onft-evm/out/ExecutorMock.sol/ExecutorMock.json deleted file mode 100644 index 01a3504a7..000000000 --- a/packages/onft-evm/out/ExecutorMock.sol/ExecutorMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_endpoint","type":"address","internalType":"address"},{"name":"_receiveUln301","type":"address","internalType":"address"},{"name":"_messageLibs","type":"address[]","internalType":"address[]"},{"name":"_priceFeed","type":"address","internalType":"address"},{"name":"_roleAdmin","type":"address","internalType":"address"},{"name":"_admins","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowlistSize","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"assignJob","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_calldataSize","type":"uint256","internalType":"uint256"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"defaultMultiplierBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"dstConfig","inputs":[{"name":"dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"execute301","inputs":[{"name":"_packet","type":"bytes","internalType":"bytes"},{"name":"_gasLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFee","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_calldataSize","type":"uint256","internalType":"uint256"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint8[]","internalType":"uint8[]"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasAcl","inputs":[{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"localEid","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"nativeDrop","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_oapp","type":"address","internalType":"address"},{"name":"_nativeDropParams","type":"tuple[]","internalType":"struct IExecutor.NativeDropParams[]","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"_nativeDropGasLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nativeDropAndExecute301","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_nativeDropParams","type":"tuple[]","internalType":"struct IExecutor.NativeDropParams[]","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"_nativeDropGasLimit","type":"uint256","internalType":"uint256"},{"name":"_packet","type":"bytes","internalType":"bytes"},{"name":"_gasLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nativeDropAndExecute302","inputs":[{"name":"_nativeDropParams","type":"tuple[]","internalType":"struct IExecutor.NativeDropParams[]","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"_nativeDropGasLimit","type":"uint256","internalType":"uint256"},{"name":"_executionParams","type":"tuple","internalType":"struct IExecutor.ExecutionParams","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"},{"name":"gasLimit","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"priceFeed","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"receiveUln301","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultMultiplierBps","inputs":[{"name":"_multiplierBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDstConfig","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct IExecutor.DstConfigParam[]","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPaused","inputs":[{"name":"_paused","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPriceFeed","inputs":[{"name":"_priceFeed","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_optionTypes","type":"uint8[]","internalType":"uint8[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWorkerFeeLib","inputs":[{"name":"_workerFeeLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_lib","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawToken","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"workerFeeLib","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"DstConfigSet","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct IExecutor.DstConfigParam[]","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"}]}],"anonymous":false},{"type":"event","name":"NativeDropApplied","inputs":[{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oapp","type":"address","indexed":false,"internalType":"address"},{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct IExecutor.NativeDropParams[]","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"success","type":"bool[]","indexed":false,"internalType":"bool[]"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDefaultMultiplierBps","inputs":[{"name":"multiplierBps","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"SetPriceFeed","inputs":[{"name":"priceFeed","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetSupportedOptionTypes","inputs":[{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"optionTypes","type":"uint8[]","indexed":false,"internalType":"uint8[]"}],"anonymous":false},{"type":"event","name":"SetWorkerLib","inputs":[{"name":"workerLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"lib","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]},{"type":"error","name":"Worker_NotAllowed","inputs":[]},{"type":"error","name":"Worker_OnlyMessageLib","inputs":[]},{"type":"error","name":"Worker_RoleRenouncingDisabled","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162002c7038038062002c7083398101604081905262000034916200046f565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b038581169190911790915584908490612ee090859085908216156200008f576200008d60008362000226565b505b60005b8551811015620000f457620000ea7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000d657620000d662000523565b60200260200101516200022660201b60201c565b5060010162000092565b5060005b815181101562000146576200013c7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000d657620000d662000523565b50600101620000f8565b505060016004908155600680546001600160a01b0319166001600160a01b038d169081179091556040805163416ecebf60e01b8152905191965063416ecebf95508083019450602093509091908290030181865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d3919062000539565b6006805463ffffffff92909216600160a01b0263ffffffff60a01b199092169190911790555050600780546001600160a01b039094166001600160a01b03199094169390931790925550620005a5915050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156200027957506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b15620002c65760018054601590620002a190600160a81b90046001600160401b031662000568565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b620002d28383620002de565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1662000383576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556200033a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620002d8565b506000620002d8565b80516001600160a01b0381168114620003a457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003d157600080fd5b815160206001600160401b0380831115620003f057620003f0620003a9565b8260051b604051601f19603f83011681018181108482111715620004185762000418620003a9565b60405293845260208187018101949081019250878511156200043957600080fd5b6020870191505b84821015620004645762000454826200038c565b8352918301919083019062000440565b979650505050505050565b60008060008060008060c087890312156200048957600080fd5b62000494876200038c565b9550620004a4602088016200038c565b60408801519095506001600160401b0380821115620004c257600080fd5b620004d08a838b01620003bf565b9550620004e060608a016200038c565b9450620004f060808a016200038c565b935060a08901519150808211156200050757600080fd5b506200051689828a01620003bf565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156200054c57600080fd5b815163ffffffff811681146200056157600080fd5b9392505050565b60006001600160401b038281166002600160401b031981016200059b57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6126bb80620005b56000396000f3fe6080604052600436106101e25760003560e01c8063709eb66411610102578063a217fddf11610095578063c7b2370b11610064578063c7b2370b14610649578063cd88b90314610669578063d2ae210414610689578063d547741f146106c857600080fd5b8063a217fddf146105cf578063c2803b2c146105e4578063c358de0a14610604578063c416aa511461062457600080fd5b8063741bef1a116100d1578063741bef1a146104cd5780638624ba07146104ed57806391d14854146105005780639e9449651461052057600080fd5b8063709eb66414610434578063717e8a4214610454578063724e78da14610474578063726075371461049457600080fd5b80632f2ff15d1161017a5780633d85ac33116101495780633d85ac33146103b1578063475b6d9e146103d15780635c975abb146103e45780635e280f11146103fc57600080fd5b80632f2ff15d1461033e5780633146646a1461035e57806336568abe1461037e5780633927c0751461039e57600080fd5b806316c38b3c116101b657806316c38b3c14610293578063248a9ca3146102b357806326e67a37146102f15780632de113761461031e57600080fd5b8062bf2e80146101e757806301e336671461022157806301ffc9a7146102435780631095b6d714610273575b600080fd5b3480156101f357600080fd5b5060015461020990600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561022d57600080fd5b5061024161023c366004611a9c565b6106e8565b005b34801561024f57600080fd5b5061026361025e366004611ad8565b610711565b6040519015158152602001610218565b34801561027f57600080fd5b5061024161028e366004611a9c565b610748565b34801561029f57600080fd5b506102416102ae366004611b10565b61085b565b3480156102bf57600080fd5b506102e36102ce366004611b2d565b60009081526020819052604090206001015490565b604051908152602001610218565b3480156102fd57600080fd5b5061031161030c366004611b5a565b610880565b6040516102189190611b75565b34801561032a57600080fd5b50610263610339366004611bbc565b610907565b34801561034a57600080fd5b50610241610359366004611bd7565b61099e565b34801561036a57600080fd5b50610241610379366004611c4b565b6109c3565b34801561038a57600080fd5b50610241610399366004611bd7565b610a53565b6102416103ac366004611cf2565b610a6c565b3480156103bd57600080fd5b506102416103cc366004611e33565b610b27565b6102416103df366004611f4e565b610c9e565b3480156103f057600080fd5b5060015460ff16610263565b34801561040857600080fd5b5060065461041c906001600160a01b031681565b6040516001600160a01b039091168152602001610218565b34801561044057600080fd5b506102e361044f366004611fcc565b610ce0565b34801561046057600080fd5b506102e361046f366004611fcc565b610de7565b34801561048057600080fd5b5061024161048f366004611bbc565b610f13565b3480156104a057600080fd5b506006546104b890600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610218565b3480156104d957600080fd5b5060025461041c906001600160a01b031681565b6102416104fb36600461203a565b610f79565b34801561050c57600080fd5b5061026361051b366004611bd7565b611084565b34801561052c57600080fd5b5061058c61053b366004611b5a565b600560205260009081526040902080546001909101546001600160401b038083169261ffff600160401b820416926001600160801b03600160501b90920482169291811691600160801b9091041685565b604080516001600160401b03968716815261ffff90951660208601526001600160801b03938416908501529116606083015291909116608082015260a001610218565b3480156105db57600080fd5b506102e3600081565b3480156105f057600080fd5b5060075461041c906001600160a01b031681565b34801561061057600080fd5b5061024161061f3660046120b2565b6110ad565b34801561063057600080fd5b5060015461041c9061010090046001600160a01b031681565b34801561065557600080fd5b50610241610664366004611bbc565b611115565b34801561067557600080fd5b506102416106843660046120cd565b611183565b34801561069557600080fd5b506001546106b090600160a81b90046001600160401b031681565b6040516001600160401b039091168152602001610218565b3480156106d457600080fd5b506102416106e3366004611bd7565b6111bb565b600080516020612666833981519152610700816111e0565b61070b8484846111ed565b50505050565b60006001600160e01b03198216637965db0b60e01b148061074257506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020612666833981519152610760816111e0565b61078a7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de85611084565b6107a757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610866816111e0565b811561087857610874611215565b5050565b610874611269565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156108fb57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108cc5790505b50505050509050919050565b60006109337f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611084565b1561094057506000919050565b600154600160a81b90046001600160401b0316158061098457506109847f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83611084565b1561099157506001919050565b506000919050565b919050565b6000828152602081905260409020600101546109b9816111e0565b61070b83836112a2565b6000805160206126668339815191526109db816111e0565b6109e3611338565b600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610a179087908790879060040161217b565b600060405180830381600087803b158015610a3157600080fd5b505af1158015610a45573d6000803e3d6000fd5b5050505061070b6001600455565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020612666833981519152610a84816111e0565b610a8c611338565b610aac88610a9a8686611362565b610aa48787611385565b8a8a8a61139e565b50600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610ae19087908790879060040161217b565b600060405180830381600087803b158015610afb57600080fd5b505af1158015610b0f573d6000803e3d6000fd5b50505050610b1d6001600455565b5050505050505050565b600080516020612666833981519152610b3f816111e0565b60005b8251811015610c62576000838281518110610b5f57610b5f61219f565b6020908102919091018101516040805160a08082018352838501516001600160401b03908116835260608086015161ffff9081168589019081526080808901516001600160801b03908116888a01908152968a01518116948801948552888a01518616918801918252985163ffffffff1660009081526005909a529690982094518554985194518816600160501b026fffffffffffffffffffffffffffffffff60501b1995909216600160401b0269ffffffffffffffffffff1990991690841617979097179290921695909517825551600191820180549351909516600160801b026001600160c01b031990931693169290921717909155919091019050610b42565b507fb99f6de5e22c60c178b03bfacf2daeb4b6089f5b37e0fe2c48a5d5141191fc5382604051610c9291906121b5565b60405180910390a15050565b600080516020612666833981519152610cb6816111e0565b610cbe611338565b610ccc87878787878761139e565b50610cd76001600455565b50505050505050565b600084610cec81610907565b610d0957604051634ab5ebcd60e01b815260040160405180910390fd5b610d11611505565b6040805160a0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290528a831684860152606084018a905260015461ffff600160e81b8204166080860152600092835260059091529084902093516321a7700b60e11b815292936101009091049091169163434ee01691610d9a918591908a908a90600401612252565b602060405180830381865afa158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb9190612306565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de610e13816111e0565b85610e1d81610907565b610e3a57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160a0810182526002546001600160a01b03908116825263ffffffff8b1660208084018290528b831684860152606084018b905260015461ffff600160e81b820416608086015260009283526005909152908490209351632b377bb160e11b815292936101009091049091169163566ef76291610ec3918591908b908b90600401612252565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f069190612306565b9998505050505050505050565b600080516020612666833981519152610f2b816111e0565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d90602001610c92565b600080516020612666833981519152610f91816111e0565b610f99611338565b600654600090610fc7906020850190600160a01b900463ffffffff16610fbf8287611bbc565b89898961139e565b90506000610fd58234612335565b6006549091506001600160a01b0316630c0c389e60e08601358360208801610ffd818a611bbc565b60808a013561100f60a08c018c612348565b61101c60c08e018e612348565b6040518a63ffffffff1660e01b815260040161103e97969594939291906123c7565b6000604051808303818589803b15801561105757600080fd5b5088f115801561106b573d6000803e3d6000fd5b505050505050505061107d6001600455565b5050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206126668339815191526110c5816111e0565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610c92565b60008051602061266683398151915261112d816111e0565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610c92565b60008051602061266683398151915261119b816111e0565b63ffffffff8416600090815260036020526040902061107d9084846119c7565b6000828152602081905260409020600101546111d6816111e0565b61070b838361152b565b6111ea81336115b5565b50565b6001600160a01b03831661120a5761120582826115f3565b505050565b6112058383836116a0565b61121d611505565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b6112716116db565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361124c565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156112da57506112d88383611084565b155b1561132457600180546015906112ff90600160a81b90046001600160401b031661241d565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836116fe565b5060019392505050565b60026004540361135b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600455565b60006113726031602d8486612443565b61137b9161246d565b60e01c9392505050565b60006113976113948484611790565b90565b9392505050565b600080836001600160401b038111156113b9576113b9611d85565b6040519080825280602002602001820160405280156113e2578160200160208202803683370190505b50905060005b848110156114b85760008686838181106114045761140461219f565b90506040020180360381019061141a919061249d565b9050600081600001516001600160a01b031682602001518790604051600060405180830381858888f193505050503d8060008114611474576040519150601f19603f3d011682016040523d82523d6000602084013e611479565b606091505b50509050808484815181106114905761149061219f565b9115156020928302919091018201528201516114ac90866124f3565b945050506001016113e8565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c34688888888888866040516114f296959493929190612544565b60405180910390a1509695505050505050565b60015460ff16156115295760405163d93c066560e01b815260040160405180910390fd5b565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8314801561156157506115618383611084565b156115ab576001805460159061158690600160a81b90046001600160401b03166125d8565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836117a9565b6115bf8282611084565b6108745760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044015b60405180910390fd5b6001600160a01b03821661161a576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611667576040519150601f19603f3d011682016040523d82523d6000602084013e61166c565b606091505b505090508061120557604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016115ea565b6001600160a01b0382166116c7576040516306b7a93160e41b815260040160405180910390fd5b6112056001600160a01b0384168383611814565b60015460ff1661152957604051638dfc202b60e01b815260040160405180910390fd5b600061170a8383611084565b611788576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117403390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610742565b506000610742565b60006117a0605160318486612443565b611397916125fb565b60006117b58383611084565b15611788576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610742565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b17905261120591859190600090611872908416836118c0565b905080516000141580156118975750808060200190518101906118959190612619565b155b1561120557604051635274afe760e01b81526001600160a01b03841660048201526024016115ea565b60606113978383600084600080856001600160a01b031684866040516118e69190612636565b60006040518083038185875af1925050503d8060008114611923576040519150601f19603f3d011682016040523d82523d6000602084013e611928565b606091505b5091509150611938868383611942565b9695505050505050565b606082611957576119528261199e565b611397565b815115801561196e57506001600160a01b0384163b155b1561199757604051639996b31560e01b81526001600160a01b03851660048201526024016115ea565b5080611397565b8051156119ae5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f01602090048101928215611a605791602002820160005b83821115611a3157833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026119f0565b8015611a5e5782816101000a81549060ff0219169055600101602081600001049283019260010302611a31565b505b50611a6c929150611a70565b5090565b5b80821115611a6c5760008155600101611a71565b80356001600160a01b038116811461099957600080fd5b600080600060608486031215611ab157600080fd5b611aba84611a85565b9250611ac860208501611a85565b9150604084013590509250925092565b600060208284031215611aea57600080fd5b81356001600160e01b03198116811461139757600080fd5b80151581146111ea57600080fd5b600060208284031215611b2257600080fd5b813561139781611b02565b600060208284031215611b3f57600080fd5b5035919050565b803563ffffffff8116811461099957600080fd5b600060208284031215611b6c57600080fd5b61139782611b46565b6020808252825182820181905260009190848201906040850190845b81811015611bb057835160ff1683529284019291840191600101611b91565b50909695505050505050565b600060208284031215611bce57600080fd5b61139782611a85565b60008060408385031215611bea57600080fd5b82359150611bfa60208401611a85565b90509250929050565b60008083601f840112611c1557600080fd5b5081356001600160401b03811115611c2c57600080fd5b602083019150836020828501011115611c4457600080fd5b9250929050565b600080600060408486031215611c6057600080fd5b83356001600160401b03811115611c7657600080fd5b611c8286828701611c03565b909790965060209590950135949350505050565b600060608284031215611ca857600080fd5b50919050565b60008083601f840112611cc057600080fd5b5081356001600160401b03811115611cd757600080fd5b6020830191508360208260061b8501011115611c4457600080fd5b600080600080600080600060e0888a031215611d0d57600080fd5b611d178989611c96565b965060608801356001600160401b0380821115611d3357600080fd5b611d3f8b838c01611cae565b909850965060808a0135955060a08a0135915080821115611d5f57600080fd5b50611d6c8a828b01611c03565b989b979a5095989497959660c090950135949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611dbd57611dbd611d85565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611deb57611deb611d85565b604052919050565b80356001600160401b038116811461099957600080fd5b803561ffff8116811461099957600080fd5b80356001600160801b038116811461099957600080fd5b60006020808385031215611e4657600080fd5b82356001600160401b0380821115611e5d57600080fd5b818501915085601f830112611e7157600080fd5b813581811115611e8357611e83611d85565b611e91848260051b01611dc3565b818152848101925060c0918202840185019188831115611eb057600080fd5b938501935b82851015611f425780858a031215611ecd5760008081fd5b611ed5611d9b565b611ede86611b46565b8152611eeb878701611df3565b878201526040611efc818801611df3565b908201526060611f0d878201611e0a565b908201526080611f1e878201611e1c565b9082015260a0611f2f878201611e1c565b9082015284529384019392850192611eb5565b50979650505050505050565b60008060008060008060e08789031215611f6757600080fd5b611f718888611c96565b9550611f7f60608801611b46565b9450611f8d60808801611a85565b935060a08701356001600160401b03811115611fa857600080fd5b611fb489828a01611cae565b979a969950949794969560c090950135949350505050565b600080600080600060808688031215611fe457600080fd5b611fed86611b46565b9450611ffb60208701611a85565b93506040860135925060608601356001600160401b0381111561201d57600080fd5b61202988828901611c03565b969995985093965092949392505050565b6000806000806060858703121561205057600080fd5b84356001600160401b038082111561206757600080fd5b61207388838901611cae565b909650945060208701359350604087013591508082111561209357600080fd5b50850161010081880312156120a757600080fd5b939692955090935050565b6000602082840312156120c457600080fd5b61139782611e0a565b6000806000604084860312156120e257600080fd5b6120eb84611b46565b925060208401356001600160401b038082111561210757600080fd5b818601915086601f83011261211b57600080fd5b81358181111561212a57600080fd5b8760208260051b850101111561213f57600080fd5b6020830194508093505050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061218f604083018587612152565b9050826020830152949350505050565b634e487b7160e01b600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015612245578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016121d2565b5091979650505050505050565b84516001600160a01b03908116825260208087015163ffffffff1690830152604080870151909116818301526060808701519083015260808087015161ffff9081168285015286546001600160401b0380821660a08701529381901c90911660c085015260501c6001600160801b0390811660e08501526001870154908116610100850152901c1661012082015261016061014082018190526000906122fb8382018587612152565b979650505050505050565b60006020828403121561231857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107425761074261231f565b6000808335601e1984360301811261235f57600080fd5b8301803591506001600160401b0382111561237957600080fd5b602001915036819003821315611c4457600080fd5b63ffffffff61239c82611b46565b168252602081013560208301526001600160401b036123bd60408301611df3565b1660408301525050565b6123d1818961238e565b60018060a01b038716606082015285608082015260e060a082015260006123fc60e083018688612152565b82810360c084015261240f818587612152565b9a9950505050505050505050565b60006001600160401b038083168181036124395761243961231f565b6001019392505050565b6000808585111561245357600080fd5b8386111561246057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156124955780818660040360031b1b83161692505b505092915050565b6000604082840312156124af57600080fd5b604051604081018181106001600160401b03821117156124d1576124d1611d85565b6040526124dd83611a85565b8152602083013560208201528091505092915050565b808201808211156107425761074261231f565b60008151808452602080850194506020840160005b8381101561253957815115158752958201959082019060010161251b565b509495945050505050565b600060e08201612554838a61238e565b63ffffffff881660608401526001600160a01b03878116608085015260e060a0850152908590528590610100840160005b878110156125b6578261259785611a85565b1682526020848101359083015260409384019390910190600101612585565b5084810360c08601526125c98187612506565b9b9a5050505050505050505050565b60006001600160401b038216806125f1576125f161231f565b6000190192915050565b8035602083101561074257600019602084900360031b1b1692915050565b60006020828403121561262b57600080fd5b815161139781611b02565b6000825160005b81811015612657576020818601810151858301520161263d565b50600092019182525091905056fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220cab19ebaa8e6602c84c9f9f739a45b5571c5513ee60da41f638da9127243412364736f6c63430008160033","sourceMap":"881:4900:76:-:0;;;1173:402;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1231:7:121;:15;;-1:-1:-1;;;;;;1699:44:82;-1:-1:-1;;;1699:44:82;;;1753:9;:22;;-1:-1:-1;;;;;;1753:22:82;-1:-1:-1;;;;;1753:22:82;;;;;;;;;;1386:12:76;;1753:22:82;;1412:5:76;;1419:10;;1431:7;;1790:26:82;;;1786:144;;1832:42;2232:4:103;1863:10:82;1832;:42::i;:::-;;1786:144;1945:9;1940:120;1964:12;:19;1960:1;:23;1940:120;;;2004:45;654:29;2033:12;2046:1;2033:15;;;;;;;;:::i;:::-;;;;;;;2004:10;;;:45;;:::i;:::-;-1:-1:-1;1985:3:82;;1940:120;;;;2075:9;2070:104;2094:7;:14;2090:1;:18;2070:104;;;2129:34;858:23;2152:7;2160:1;2152:10;;;;;;;;:::i;2129:34::-;-1:-1:-1;2110:3:82;;2070:104;;;-1:-1:-1;;1713:1:122;1917:7;:21;;;1450:8:76::1;:20:::0;;-1:-1:-1;;;;;;1450:20:76::1;-1:-1:-1::0;;;;;1450:20:76;::::1;::::0;;::::1;::::0;;;1491:37:::1;::::0;;-1:-1:-1;;;1491:37:76;;;;1450:20;;-1:-1:-1;1491:35:76::1;::::0;-1:-1:-1;1491:37:76;;::::1;::::0;-1:-1:-1;1491:37:76::1;::::0;-1:-1:-1;1491:37:76;;;;;;;;1450:20;1491:37:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1480:8;:48:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;1480:48:76::1;-1:-1:-1::0;;;;1480:48:76;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;1538:13:76::1;:30:::0;;-1:-1:-1;;;;;1538:30:76;;::::1;-1:-1:-1::0;;;;;;1538:30:76;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;881:4900:76;;-1:-1:-1;;881:4900:76;5627:259:82;5707:4;727:22;5727:5;:18;:47;;;;-1:-1:-1;2931:4:103;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:103;;;;;;;;;;;;5749:25:82;5727:47;5723:93;;;5792:13;5790:15;;5792:13;;5790:15;;-1:-1:-1;;;5790:15:82;;-1:-1:-1;;;;;5790:15:82;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;5790:15:82;;;;;-1:-1:-1;;;;;5790:15:82;;;;;;5723:93;5825:33;5842:5;5849:8;5825:16;:33::i;:::-;;5875:4;5868:11;;5627:259;;;;;:::o;6179:316:103:-;6256:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:103;;;;;;;;;;;;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:103;;;;;;;;;:36;;-1:-1:-1;;6315:36:103;6347:4;6315:36;;;6397:12;735:10:120;;656:96;6397:12:103;-1:-1:-1;;;;;6370:40:103;6388:7;-1:-1:-1;;;;;6370:40:103;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:103;6424:11;;6272:217;-1:-1:-1;6473:5:103;6466:12;;14:177:145;93:13;;-1:-1:-1;;;;;135:31:145;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:929;393:5;446:3;439:4;431:6;427:17;423:27;413:55;;464:1;461;454:12;413:55;487:13;;519:4;-1:-1:-1;;;;;572:10:145;;;569:36;;;585:18;;:::i;:::-;631:2;628:1;624:10;663:2;657:9;726:2;722:7;717:2;713;709:11;705:25;697:6;693:38;781:6;769:10;766:22;761:2;749:10;746:18;743:46;740:72;;;792:18;;:::i;:::-;828:2;821:22;878:18;;;924:4;956:15;;;952:26;;;912:17;;;;-1:-1:-1;990:15:145;;;987:35;;;1018:1;1015;1008:12;987:35;1054:4;1046:6;1042:17;1031:28;;1068:159;1084:6;1079:3;1076:15;1068:159;;;1150:34;1180:3;1150:34;:::i;:::-;1138:47;;1205:12;;;;1101;;;;1068:159;;;1245:6;328:929;-1:-1:-1;;;;;;;328:929:145:o;1262:957::-;1427:6;1435;1443;1451;1459;1467;1520:3;1508:9;1499:7;1495:23;1491:33;1488:53;;;1537:1;1534;1527:12;1488:53;1560:40;1590:9;1560:40;:::i;:::-;1550:50;;1619:49;1664:2;1653:9;1649:18;1619:49;:::i;:::-;1712:2;1697:18;;1691:25;1609:59;;-1:-1:-1;;;;;;1765:14:145;;;1762:34;;;1792:1;1789;1782:12;1762:34;1815:72;1879:7;1870:6;1859:9;1855:22;1815:72;:::i;:::-;1805:82;;1906:49;1951:2;1940:9;1936:18;1906:49;:::i;:::-;1896:59;;1974:50;2019:3;2008:9;2004:19;1974:50;:::i;:::-;1964:60;;2070:3;2059:9;2055:19;2049:26;2033:42;;2100:2;2090:8;2087:16;2084:36;;;2116:1;2113;2106:12;2084:36;;2139:74;2205:7;2194:8;2183:9;2179:24;2139:74;:::i;:::-;2129:84;;;1262:957;;;;;;;;:::o;2224:127::-;2285:10;2280:3;2276:20;2273:1;2266:31;2316:4;2313:1;2306:15;2340:4;2337:1;2330:15;2356:280;2425:6;2478:2;2466:9;2457:7;2453:23;2449:32;2446:52;;;2494:1;2491;2484:12;2446:52;2526:9;2520:16;2576:10;2569:5;2565:22;2558:5;2555:33;2545:61;;2602:1;2599;2592:12;2545:61;2625:5;2356:280;-1:-1:-1;;;2356:280:145:o;2641:306::-;2679:3;-1:-1:-1;;;;;2749:14:145;;;-1:-1:-1;;;;;;2775:15:145;;2772:138;;2832:10;2827:3;2823:20;2820:1;2813:31;2867:4;2864:1;2857:15;2895:4;2892:1;2885:15;2772:138;2939:1;2926:15;;2641:306;-1:-1:-1;;;2641:306:145:o;:::-;881:4900:76;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101e25760003560e01c8063709eb66411610102578063a217fddf11610095578063c7b2370b11610064578063c7b2370b14610649578063cd88b90314610669578063d2ae210414610689578063d547741f146106c857600080fd5b8063a217fddf146105cf578063c2803b2c146105e4578063c358de0a14610604578063c416aa511461062457600080fd5b8063741bef1a116100d1578063741bef1a146104cd5780638624ba07146104ed57806391d14854146105005780639e9449651461052057600080fd5b8063709eb66414610434578063717e8a4214610454578063724e78da14610474578063726075371461049457600080fd5b80632f2ff15d1161017a5780633d85ac33116101495780633d85ac33146103b1578063475b6d9e146103d15780635c975abb146103e45780635e280f11146103fc57600080fd5b80632f2ff15d1461033e5780633146646a1461035e57806336568abe1461037e5780633927c0751461039e57600080fd5b806316c38b3c116101b657806316c38b3c14610293578063248a9ca3146102b357806326e67a37146102f15780632de113761461031e57600080fd5b8062bf2e80146101e757806301e336671461022157806301ffc9a7146102435780631095b6d714610273575b600080fd5b3480156101f357600080fd5b5060015461020990600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561022d57600080fd5b5061024161023c366004611a9c565b6106e8565b005b34801561024f57600080fd5b5061026361025e366004611ad8565b610711565b6040519015158152602001610218565b34801561027f57600080fd5b5061024161028e366004611a9c565b610748565b34801561029f57600080fd5b506102416102ae366004611b10565b61085b565b3480156102bf57600080fd5b506102e36102ce366004611b2d565b60009081526020819052604090206001015490565b604051908152602001610218565b3480156102fd57600080fd5b5061031161030c366004611b5a565b610880565b6040516102189190611b75565b34801561032a57600080fd5b50610263610339366004611bbc565b610907565b34801561034a57600080fd5b50610241610359366004611bd7565b61099e565b34801561036a57600080fd5b50610241610379366004611c4b565b6109c3565b34801561038a57600080fd5b50610241610399366004611bd7565b610a53565b6102416103ac366004611cf2565b610a6c565b3480156103bd57600080fd5b506102416103cc366004611e33565b610b27565b6102416103df366004611f4e565b610c9e565b3480156103f057600080fd5b5060015460ff16610263565b34801561040857600080fd5b5060065461041c906001600160a01b031681565b6040516001600160a01b039091168152602001610218565b34801561044057600080fd5b506102e361044f366004611fcc565b610ce0565b34801561046057600080fd5b506102e361046f366004611fcc565b610de7565b34801561048057600080fd5b5061024161048f366004611bbc565b610f13565b3480156104a057600080fd5b506006546104b890600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610218565b3480156104d957600080fd5b5060025461041c906001600160a01b031681565b6102416104fb36600461203a565b610f79565b34801561050c57600080fd5b5061026361051b366004611bd7565b611084565b34801561052c57600080fd5b5061058c61053b366004611b5a565b600560205260009081526040902080546001909101546001600160401b038083169261ffff600160401b820416926001600160801b03600160501b90920482169291811691600160801b9091041685565b604080516001600160401b03968716815261ffff90951660208601526001600160801b03938416908501529116606083015291909116608082015260a001610218565b3480156105db57600080fd5b506102e3600081565b3480156105f057600080fd5b5060075461041c906001600160a01b031681565b34801561061057600080fd5b5061024161061f3660046120b2565b6110ad565b34801561063057600080fd5b5060015461041c9061010090046001600160a01b031681565b34801561065557600080fd5b50610241610664366004611bbc565b611115565b34801561067557600080fd5b506102416106843660046120cd565b611183565b34801561069557600080fd5b506001546106b090600160a81b90046001600160401b031681565b6040516001600160401b039091168152602001610218565b3480156106d457600080fd5b506102416106e3366004611bd7565b6111bb565b600080516020612666833981519152610700816111e0565b61070b8484846111ed565b50505050565b60006001600160e01b03198216637965db0b60e01b148061074257506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020612666833981519152610760816111e0565b61078a7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de85611084565b6107a757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610866816111e0565b811561087857610874611215565b5050565b610874611269565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156108fb57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108cc5790505b50505050509050919050565b60006109337f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611084565b1561094057506000919050565b600154600160a81b90046001600160401b0316158061098457506109847f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83611084565b1561099157506001919050565b506000919050565b919050565b6000828152602081905260409020600101546109b9816111e0565b61070b83836112a2565b6000805160206126668339815191526109db816111e0565b6109e3611338565b600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610a179087908790879060040161217b565b600060405180830381600087803b158015610a3157600080fd5b505af1158015610a45573d6000803e3d6000fd5b5050505061070b6001600455565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020612666833981519152610a84816111e0565b610a8c611338565b610aac88610a9a8686611362565b610aa48787611385565b8a8a8a61139e565b50600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610ae19087908790879060040161217b565b600060405180830381600087803b158015610afb57600080fd5b505af1158015610b0f573d6000803e3d6000fd5b50505050610b1d6001600455565b5050505050505050565b600080516020612666833981519152610b3f816111e0565b60005b8251811015610c62576000838281518110610b5f57610b5f61219f565b6020908102919091018101516040805160a08082018352838501516001600160401b03908116835260608086015161ffff9081168589019081526080808901516001600160801b03908116888a01908152968a01518116948801948552888a01518616918801918252985163ffffffff1660009081526005909a529690982094518554985194518816600160501b026fffffffffffffffffffffffffffffffff60501b1995909216600160401b0269ffffffffffffffffffff1990991690841617979097179290921695909517825551600191820180549351909516600160801b026001600160c01b031990931693169290921717909155919091019050610b42565b507fb99f6de5e22c60c178b03bfacf2daeb4b6089f5b37e0fe2c48a5d5141191fc5382604051610c9291906121b5565b60405180910390a15050565b600080516020612666833981519152610cb6816111e0565b610cbe611338565b610ccc87878787878761139e565b50610cd76001600455565b50505050505050565b600084610cec81610907565b610d0957604051634ab5ebcd60e01b815260040160405180910390fd5b610d11611505565b6040805160a0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290528a831684860152606084018a905260015461ffff600160e81b8204166080860152600092835260059091529084902093516321a7700b60e11b815292936101009091049091169163434ee01691610d9a918591908a908a90600401612252565b602060405180830381865afa158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb9190612306565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de610e13816111e0565b85610e1d81610907565b610e3a57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160a0810182526002546001600160a01b03908116825263ffffffff8b1660208084018290528b831684860152606084018b905260015461ffff600160e81b820416608086015260009283526005909152908490209351632b377bb160e11b815292936101009091049091169163566ef76291610ec3918591908b908b90600401612252565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f069190612306565b9998505050505050505050565b600080516020612666833981519152610f2b816111e0565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d90602001610c92565b600080516020612666833981519152610f91816111e0565b610f99611338565b600654600090610fc7906020850190600160a01b900463ffffffff16610fbf8287611bbc565b89898961139e565b90506000610fd58234612335565b6006549091506001600160a01b0316630c0c389e60e08601358360208801610ffd818a611bbc565b60808a013561100f60a08c018c612348565b61101c60c08e018e612348565b6040518a63ffffffff1660e01b815260040161103e97969594939291906123c7565b6000604051808303818589803b15801561105757600080fd5b5088f115801561106b573d6000803e3d6000fd5b505050505050505061107d6001600455565b5050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206126668339815191526110c5816111e0565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610c92565b60008051602061266683398151915261112d816111e0565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610c92565b60008051602061266683398151915261119b816111e0565b63ffffffff8416600090815260036020526040902061107d9084846119c7565b6000828152602081905260409020600101546111d6816111e0565b61070b838361152b565b6111ea81336115b5565b50565b6001600160a01b03831661120a5761120582826115f3565b505050565b6112058383836116a0565b61121d611505565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b6112716116db565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361124c565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156112da57506112d88383611084565b155b1561132457600180546015906112ff90600160a81b90046001600160401b031661241d565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836116fe565b5060019392505050565b60026004540361135b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600455565b60006113726031602d8486612443565b61137b9161246d565b60e01c9392505050565b60006113976113948484611790565b90565b9392505050565b600080836001600160401b038111156113b9576113b9611d85565b6040519080825280602002602001820160405280156113e2578160200160208202803683370190505b50905060005b848110156114b85760008686838181106114045761140461219f565b90506040020180360381019061141a919061249d565b9050600081600001516001600160a01b031682602001518790604051600060405180830381858888f193505050503d8060008114611474576040519150601f19603f3d011682016040523d82523d6000602084013e611479565b606091505b50509050808484815181106114905761149061219f565b9115156020928302919091018201528201516114ac90866124f3565b945050506001016113e8565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c34688888888888866040516114f296959493929190612544565b60405180910390a1509695505050505050565b60015460ff16156115295760405163d93c066560e01b815260040160405180910390fd5b565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8314801561156157506115618383611084565b156115ab576001805460159061158690600160a81b90046001600160401b03166125d8565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836117a9565b6115bf8282611084565b6108745760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044015b60405180910390fd5b6001600160a01b03821661161a576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611667576040519150601f19603f3d011682016040523d82523d6000602084013e61166c565b606091505b505090508061120557604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016115ea565b6001600160a01b0382166116c7576040516306b7a93160e41b815260040160405180910390fd5b6112056001600160a01b0384168383611814565b60015460ff1661152957604051638dfc202b60e01b815260040160405180910390fd5b600061170a8383611084565b611788576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117403390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610742565b506000610742565b60006117a0605160318486612443565b611397916125fb565b60006117b58383611084565b15611788576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610742565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b17905261120591859190600090611872908416836118c0565b905080516000141580156118975750808060200190518101906118959190612619565b155b1561120557604051635274afe760e01b81526001600160a01b03841660048201526024016115ea565b60606113978383600084600080856001600160a01b031684866040516118e69190612636565b60006040518083038185875af1925050503d8060008114611923576040519150601f19603f3d011682016040523d82523d6000602084013e611928565b606091505b5091509150611938868383611942565b9695505050505050565b606082611957576119528261199e565b611397565b815115801561196e57506001600160a01b0384163b155b1561199757604051639996b31560e01b81526001600160a01b03851660048201526024016115ea565b5080611397565b8051156119ae5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f01602090048101928215611a605791602002820160005b83821115611a3157833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026119f0565b8015611a5e5782816101000a81549060ff0219169055600101602081600001049283019260010302611a31565b505b50611a6c929150611a70565b5090565b5b80821115611a6c5760008155600101611a71565b80356001600160a01b038116811461099957600080fd5b600080600060608486031215611ab157600080fd5b611aba84611a85565b9250611ac860208501611a85565b9150604084013590509250925092565b600060208284031215611aea57600080fd5b81356001600160e01b03198116811461139757600080fd5b80151581146111ea57600080fd5b600060208284031215611b2257600080fd5b813561139781611b02565b600060208284031215611b3f57600080fd5b5035919050565b803563ffffffff8116811461099957600080fd5b600060208284031215611b6c57600080fd5b61139782611b46565b6020808252825182820181905260009190848201906040850190845b81811015611bb057835160ff1683529284019291840191600101611b91565b50909695505050505050565b600060208284031215611bce57600080fd5b61139782611a85565b60008060408385031215611bea57600080fd5b82359150611bfa60208401611a85565b90509250929050565b60008083601f840112611c1557600080fd5b5081356001600160401b03811115611c2c57600080fd5b602083019150836020828501011115611c4457600080fd5b9250929050565b600080600060408486031215611c6057600080fd5b83356001600160401b03811115611c7657600080fd5b611c8286828701611c03565b909790965060209590950135949350505050565b600060608284031215611ca857600080fd5b50919050565b60008083601f840112611cc057600080fd5b5081356001600160401b03811115611cd757600080fd5b6020830191508360208260061b8501011115611c4457600080fd5b600080600080600080600060e0888a031215611d0d57600080fd5b611d178989611c96565b965060608801356001600160401b0380821115611d3357600080fd5b611d3f8b838c01611cae565b909850965060808a0135955060a08a0135915080821115611d5f57600080fd5b50611d6c8a828b01611c03565b989b979a5095989497959660c090950135949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611dbd57611dbd611d85565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611deb57611deb611d85565b604052919050565b80356001600160401b038116811461099957600080fd5b803561ffff8116811461099957600080fd5b80356001600160801b038116811461099957600080fd5b60006020808385031215611e4657600080fd5b82356001600160401b0380821115611e5d57600080fd5b818501915085601f830112611e7157600080fd5b813581811115611e8357611e83611d85565b611e91848260051b01611dc3565b818152848101925060c0918202840185019188831115611eb057600080fd5b938501935b82851015611f425780858a031215611ecd5760008081fd5b611ed5611d9b565b611ede86611b46565b8152611eeb878701611df3565b878201526040611efc818801611df3565b908201526060611f0d878201611e0a565b908201526080611f1e878201611e1c565b9082015260a0611f2f878201611e1c565b9082015284529384019392850192611eb5565b50979650505050505050565b60008060008060008060e08789031215611f6757600080fd5b611f718888611c96565b9550611f7f60608801611b46565b9450611f8d60808801611a85565b935060a08701356001600160401b03811115611fa857600080fd5b611fb489828a01611cae565b979a969950949794969560c090950135949350505050565b600080600080600060808688031215611fe457600080fd5b611fed86611b46565b9450611ffb60208701611a85565b93506040860135925060608601356001600160401b0381111561201d57600080fd5b61202988828901611c03565b969995985093965092949392505050565b6000806000806060858703121561205057600080fd5b84356001600160401b038082111561206757600080fd5b61207388838901611cae565b909650945060208701359350604087013591508082111561209357600080fd5b50850161010081880312156120a757600080fd5b939692955090935050565b6000602082840312156120c457600080fd5b61139782611e0a565b6000806000604084860312156120e257600080fd5b6120eb84611b46565b925060208401356001600160401b038082111561210757600080fd5b818601915086601f83011261211b57600080fd5b81358181111561212a57600080fd5b8760208260051b850101111561213f57600080fd5b6020830194508093505050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061218f604083018587612152565b9050826020830152949350505050565b634e487b7160e01b600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015612245578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016121d2565b5091979650505050505050565b84516001600160a01b03908116825260208087015163ffffffff1690830152604080870151909116818301526060808701519083015260808087015161ffff9081168285015286546001600160401b0380821660a08701529381901c90911660c085015260501c6001600160801b0390811660e08501526001870154908116610100850152901c1661012082015261016061014082018190526000906122fb8382018587612152565b979650505050505050565b60006020828403121561231857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107425761074261231f565b6000808335601e1984360301811261235f57600080fd5b8301803591506001600160401b0382111561237957600080fd5b602001915036819003821315611c4457600080fd5b63ffffffff61239c82611b46565b168252602081013560208301526001600160401b036123bd60408301611df3565b1660408301525050565b6123d1818961238e565b60018060a01b038716606082015285608082015260e060a082015260006123fc60e083018688612152565b82810360c084015261240f818587612152565b9a9950505050505050505050565b60006001600160401b038083168181036124395761243961231f565b6001019392505050565b6000808585111561245357600080fd5b8386111561246057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156124955780818660040360031b1b83161692505b505092915050565b6000604082840312156124af57600080fd5b604051604081018181106001600160401b03821117156124d1576124d1611d85565b6040526124dd83611a85565b8152602083013560208201528091505092915050565b808201808211156107425761074261231f565b60008151808452602080850194506020840160005b8381101561253957815115158752958201959082019060010161251b565b509495945050505050565b600060e08201612554838a61238e565b63ffffffff881660608401526001600160a01b03878116608085015260e060a0850152908590528590610100840160005b878110156125b6578261259785611a85565b1682526020848101359083015260409384019390910190600101612585565b5084810360c08601526125c98187612506565b9b9a5050505050505050505050565b60006001600160401b038216806125f1576125f161231f565b6000190192915050565b8035602083101561074257600019602084900360031b1b1692915050565b60006020828403121561262b57600080fd5b815161139781611b02565b6000825160005b81811015612657576020818601810151858301520161263d565b50600092019182525091905056fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220cab19ebaa8e6602c84c9f9f739a45b5571c5513ee60da41f638da9127243412364736f6c63430008160033","sourceMap":"881:4900:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;955:34:82;;;;;;;;;;-1:-1:-1;955:34:82;;;;-1:-1:-1;;;955:34:82;;;;;;;;;188:6:145;176:19;;;158:38;;146:2;131:18;955:34:82;;;;;;;;4782:214;;;;;;;;;;-1:-1:-1;4782:214:82;;;;;:::i;:::-;;:::i;:::-;;2565:202:103;;;;;;;;;;-1:-1:-1;2565:202:103;;;;;:::i;:::-;;:::i;:::-;;;1174:14:145;;1167:22;1149:41;;1137:2;1122:18;2565:202:103;1009:187:145;4319:273:82;;;;;;;;;;-1:-1:-1;4319:273:82;;;;;:::i;:::-;;:::i;3186:174::-;;;;;;;;;;-1:-1:-1;3186:174:82;;;;;:::i;:::-;;:::i;3810:120:103:-;;;;;;;;;;-1:-1:-1;3810:120:103;;;;;:::i;:::-;3875:7;3901:12;;;;;;;;;;:22;;;;3810:120;;;;1901:25:145;;;1889:2;1874:18;3810:120:103;1755:177:145;5247:135:82;;;;;;;;;;-1:-1:-1;5247:135:82;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2678:285::-;;;;;;;;;;-1:-1:-1;2678:285:82;;;;;:::i;:::-;;:::i;4226:136:103:-;;;;;;;;;;-1:-1:-1;4226:136:103;;;;;:::i;:::-;;:::i;2934:195:76:-;;;;;;;;;;-1:-1:-1;2934:195:76;;;;;:::i;:::-;;:::i;6390:137:82:-;;;;;;;;;;-1:-1:-1;6390:137:82;;;;;:::i;:::-;;:::i;2454:474:76:-;;;;;;:::i;:::-;;:::i;1602:498::-;;;;;;;;;;-1:-1:-1;1602:498:76;;;;;:::i;:::-;;:::i;2106:342::-;;;;;;:::i;:::-;;:::i;1850:84:121:-;;;;;;;;;;-1:-1:-1;1920:7:121;;;;1850:84;;1061:23:76;;;;;;;;;;-1:-1:-1;1061:23:76;;;;-1:-1:-1;;;;;1061:23:76;;;;;;-1:-1:-1;;;;;9723:32:145;;;9705:51;;9693:2;9678:18;1061:23:76;9559:203:145;4556:512:76;;;;;;;;;;-1:-1:-1;4556:512:76;;;;;:::i;:::-;;:::i;3997:529::-;;;;;;;;;;-1:-1:-1;3997:529:76;;;;;:::i;:::-;;:::i;3481:150:82:-;;;;;;;;;;-1:-1:-1;3481:150:82;;;;;:::i;:::-;;:::i;1090:22:76:-;;;;;;;;;;-1:-1:-1;1090:22:76;;;;-1:-1:-1;;;1090:22:76;;;;;;;;;10752:10:145;10740:23;;;10722:42;;10710:2;10695:18;1090:22:76;10578:192:145;995:24:82;;;;;;;;;;-1:-1:-1;995:24:82;;;;-1:-1:-1;;;;;995:24:82;;;3135:829:76;;;;;;:::i;:::-;;:::i;2854:136:103:-;;;;;;;;;;-1:-1:-1;2854:136:103;;;;;:::i;:::-;;:::i;983:52:76:-;;;;;;;;;;-1:-1:-1;983:52:76;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;983:52:76;;;;;-1:-1:-1;;;983:52:76;;;;-1:-1:-1;;;;;;;;983:52:76;;;;;;;;;;-1:-1:-1;;;983:52:76;;;;;;;;;;-1:-1:-1;;;;;11948:15:145;;;11930:34;;12012:6;12000:19;;;11995:2;11980:18;;11973:47;-1:-1:-1;;;;;12109:15:145;;;12089:18;;;12082:43;12161:15;;12156:2;12141:18;;12134:43;12214:15;;;;12208:3;12193:19;;12186:44;11880:3;11865:19;983:52:76;11640:596:145;2187:49:103;;;;;;;;;;-1:-1:-1;2187:49:103;2232:4;2187:49;;1138:28:76;;;;;;;;;;-1:-1:-1;1138:28:76;;;;-1:-1:-1;;;;;1138:28:76;;;3924:194:82;;;;;;;;;;-1:-1:-1;3924:194:82;;;;;:::i;:::-;;:::i;888:27::-;;;;;;;;;;-1:-1:-1;888:27:82;;;;;;;-1:-1:-1;;;;;888:27:82;;;3689:165;;;;;;;;;;-1:-1:-1;3689:165:82;;;;;:::i;:::-;;:::i;5002:::-;;;;;;;;;;-1:-1:-1;5002:165:82;;;;;:::i;:::-;;:::i;922:27::-;;;;;;;;;;-1:-1:-1;922:27:82;;;;-1:-1:-1;;;922:27:82;;-1:-1:-1;;;;;922:27:82;;;;;;-1:-1:-1;;;;;13282:31:145;;;13264:50;;13252:2;13237:18;922:27:82;13120:200:145;4642:138:103;;;;;;;;;;-1:-1:-1;4642:138:103;;;;;:::i;:::-;;:::i;4782:214:82:-;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;4945:44:82::1;4968:6;4976:3;4981:7;4945:22;:44::i;:::-;4782:214:::0;;;;:::o;2565:202:103:-;2650:4;-1:-1:-1;;;;;;2673:47:103;;-1:-1:-1;;;2673:47:103;;:87;;-1:-1:-1;;;;;;;;;;861:40:126;;;2724:36:103;2666:94;2565:202;-1:-1:-1;;2565:202:103:o;4319:273:82:-;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;4429:31:82::1;654:29;4455:4;4429:7;:31::i;:::-;4424:68;;4469:23;;-1:-1:-1::0;;;4469:23:82::1;;;;;;;;;;;4424:68;4502:40;::::0;-1:-1:-1;;;4502:40:82;;-1:-1:-1;;;;;13517:32:145;;;4502:40:82::1;::::0;::::1;13499:51:145::0;13566:18;;;13559:34;;;4502:26:82;::::1;::::0;::::1;::::0;13472:18:145;;4502:40:82::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4557:28:82::1;::::0;;-1:-1:-1;;;;;13862:15:145;;;13844:34;;13914:15;;13909:2;13894:18;;13887:43;13946:18;;;13939:34;;;4557:28:82::1;::::0;-1:-1:-1;13794:2:145;13779:18;;-1:-1:-1;4557:28:82::1;;;;;;;4319:273:::0;;;;:::o;3186:174::-;2232:4:103;2464:16;2232:4;2464:10;:16::i;:::-;3271:7:82::1;3267:87;;;3294:8;:6;:8::i;:::-;3186:174:::0;;:::o;3267:87::-:1;3333:10;:8;:10::i;5247:135::-:0;5349:26;;;;;;;:20;:26;;;;;;;;;5342:33;;;;;;;;;;;;;;;;;5316:14;;5342:33;;;5349:26;5342:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5247:135;;;:::o;2678:285::-;2732:4;2752:26;792:21;2770:7;2752;:26::i;:::-;2748:209;;;-1:-1:-1;2801:5:82;;2678:285;-1:-1:-1;2678:285:82:o;2748:209::-;2827:13;;-1:-1:-1;;;2827:13:82;;-1:-1:-1;;;;;2827:13:82;:18;;:49;;;2849:27;727:22;2868:7;2849;:27::i;:::-;2823:134;;;-1:-1:-1;2899:4:82;;2678:285;-1:-1:-1;2678:285:82:o;2823:134::-;-1:-1:-1;2941:5:82;;2678:285;-1:-1:-1;2678:285:82:o;2823:134::-;2678:285;;;:::o;4226:136:103:-;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;2934:195:76:-:0;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;2356:21:122::1;:19;:21::i;:::-;3069:13:76::2;::::0;3050:72:::2;::::0;-1:-1:-1;;;3050:72:76;;-1:-1:-1;;;;;3069:13:76;;::::2;::::0;3050:52:::2;::::0;:72:::2;::::0;3103:7;;;;3112:9;;3050:72:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2398:20:122::1;1713:1:::0;2924:7;:21;2744:208;6390:137:82;6489:31;;-1:-1:-1;;;6489:31:82;;;;;;;;;;;2454:474:76;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;2356:21:122::1;:19;:21::i;:::-;2738:101:76::2;2750:7;2759:16;:7;;:14;:16::i;:::-;2777:21;:7;;:19;:21::i;:::-;2800:17;;2819:19;2738:11;:101::i;:::-;-1:-1:-1::0;2868:13:76::2;::::0;2849:72:::2;::::0;-1:-1:-1;;;2849:72:76;;-1:-1:-1;;;;;2868:13:76;;::::2;::::0;2849:52:::2;::::0;:72:::2;::::0;2902:7;;;;2911:9;;2849:72:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2398:20:122::1;1713:1:::0;2924:7;:21;2744:208;2398:20:::1;2454:474:76::0;;;;;;;;:::o;1602:498::-;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;1702:9:76::1;1697:361;1721:7;:14;1717:1;:18;1697:361;;;1756:27;1786:7;1794:1;1786:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;1836:211:::1;::::0;;::::1;::::0;;::::1;::::0;;1863:22;;::::1;::::0;-1:-1:-1;;;;;1836:211:76;;::::1;::::0;;1903:19:::1;::::0;;::::1;::::0;1836:211:::1;::::0;;::::1;::::0;;::::1;::::0;;;1940:20:::1;::::0;;::::1;::::0;-1:-1:-1;;;;;1836:211:76;;::::1;::::0;;;;;;1978:15;;::::1;::::0;1836:211;::::1;::::0;;;;;;2011:22;;::::1;::::0;1836:211;::::1;::::0;;;;;;1820:12;;1810:23:::1;;-1:-1:-1::0;1810:23:76;;;:9:::1;:23:::0;;;;;;;:237;;;;;;;;;::::1;-1:-1:-1::0;;;1810:237:76::1;-1:-1:-1::0;;;;1810:237:76;;;::::1;-1:-1:-1::0;;;1810:237:76::1;-1:-1:-1::0;;1810:237:76;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;;::::1;-1:-1:-1::0;;;1810:237:76::1;-1:-1:-1::0;;;;;;1810:237:76;;;;::::1;::::0;;;;::::1;::::0;;;1737:3;;;::::1;::::0;-1:-1:-1;1697:361:76::1;;;;2072:21;2085:7;2072:21;;;;;;:::i;:::-;;;;;;;;1602:498:::0;;:::o;2106:342::-;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;2356:21:122::1;:19;:21::i;:::-;2365:76:76::2;2377:7;2386;2395:5;2402:17;;2421:19;2365:11;:76::i;:::-;;2398:20:122::1;1713:1:::0;2924:7;:21;2744:208;2398:20:::1;2106:342:76::0;;;;;;;:::o;4556:512::-;4745:11;4713:7;2304:15:82;2311:7;2304:6;:15::i;:::-;2299:73;;2342:19;;-1:-1:-1;;;2342:19:82;;;;;;;;;;;2299:73;1474:19:121::1;:17;:19::i;:::-;4810:161:76::2;::::0;;::::2;::::0;::::2;::::0;;4849:9:::2;::::0;-1:-1:-1;;;;;4849:9:76;;::::2;4810:161:::0;;::::2;::::0;::::2;;::::0;;::::2;::::0;;;;;::::2;::::0;;;;;;;;;;4849:9;4941:20;::::2;-1:-1:-1::0;;;4941:20:76;::::2;;4810:161:::0;;;;4768:39:::2;5032:18:::0;;;:9:::2;:18:::0;;;;;;;4987:74;;-1:-1:-1;;;4987:74:76;;4810:161;;4849:9:::2;5003:12:::0;;::::2;::::0;;::::2;::::0;4987:36:::2;::::0;:74:::2;::::0;4810:161;;5032:18;5052:8;;;;4987:74:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4981:80:::0;4556:512;-1:-1:-1;;;;;;;;4556:512:76:o;3997:529::-;4197:11;654:29:82;2464:16:103;2475:4;2464:10;:16::i;:::-;4179:7:76::1;2304:15:82;2311:7;2304:6;:15::i;:::-;2299:73;;2342:19;;-1:-1:-1::0;;;2342:19:82::1;;;;;;;;;;;2299:73;4262:161:76::2;::::0;;::::2;::::0;::::2;::::0;;4301:9:::2;::::0;-1:-1:-1;;;;;4301:9:76;;::::2;4262:161:::0;;::::2;::::0;::::2;;::::0;;::::2;::::0;;;;;::::2;::::0;;;;;;;;;;4301:9;4393:20;::::2;-1:-1:-1::0;;;4393:20:76;::::2;;4262:161:::0;;;;4220:39:::2;4490:18:::0;;;:9:::2;:18:::0;;;;;;;4439:80;;-1:-1:-1;;;4439:80:76;;4262:161;;4301:9:::2;4455:12:::0;;::::2;::::0;;::::2;::::0;4439:42:::2;::::0;:80:::2;::::0;4262:161;;4490:18;4510:8;;;;4439:80:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4433:86:::0;3997:529;-1:-1:-1;;;;;;;;;3997:529:76:o;3481:150:82:-;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;3563:9:82::1;:22:::0;;-1:-1:-1;;;;;;3563:22:82::1;-1:-1:-1::0;;;;;3563:22:82;::::1;::::0;;::::1;::::0;;;3600:24:::1;::::0;9705:51:145;;;3600:24:82::1;::::0;9693:2:145;9678:18;3600:24:82::1;9559:203:145::0;3135:829:76;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;2356:21:122::1;:19;:21::i;:::-;3456:8:76::2;::::0;3378:13:::2;::::0;3394:183:::2;::::0;3419:23:::2;::::0;::::2;::::0;-1:-1:-1;;;3456:8:76;::::2;;;3478:25;3419:23:::0;;3478:25:::2;:::i;:::-;3517:17;;3548:19;3394:11;:183::i;:::-;3378:199:::0;-1:-1:-1;3588:13:76::2;3604:17;3378:199:::0;3604:9:::2;:17;:::i;:::-;3691:8;::::0;3588:33;;-1:-1:-1;;;;;;3691:8:76::2;3670:40;3731:25;::::0;::::2;;3588:33:::0;3772:23:::2;::::0;::::2;3809:25;3772:23:::0;3731:16;3809:25:::2;:::i;:::-;3848:21;::::0;::::2;;3883:24;;::::0;::::2;3848:16:::0;3883:24:::2;:::i;:::-;3921:26;;::::0;::::2;:16:::0;:26:::2;:::i;:::-;3670:287;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;3368:596;;2398:20:122::1;1713:1:::0;2924:7;:21;2744:208;2398:20:::1;3135:829:76::0;;;;;:::o;2854:136:103:-;2931:4;2954:12;;;;;;;;;;;-1:-1:-1;;;;;2954:29:103;;;;;;;;;;;;;;;2854:136::o;3924:194:82:-;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;4020:20:82::1;:37:::0;;-1:-1:-1;;;;4020:37:82::1;-1:-1:-1::0;;;4020:37:82::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;4072:39:::1;::::0;158:38:145;;;4072:39:82::1;::::0;146:2:145;131:18;4072:39:82::1;14:188:145::0;3689:165:82;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;3777:12:82::1;:28:::0;;-1:-1:-1;;;;;;3777:28:82::1;;-1:-1:-1::0;;;;;3777:28:82;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;3820:27:::1;::::0;9705:51:145;;;3820:27:82::1;::::0;9693:2:145;9678:18;3820:27:82::1;9559:203:145::0;5002:165:82;-1:-1:-1;;;;;;;;;;;2464:16:103;2475:4;2464:10;:16::i;:::-;5119:26:82::1;::::0;::::1;;::::0;;;:20:::1;:26;::::0;;;;:41:::1;::::0;5148:12;;5119:41:::1;:::i;4642:138:103:-:0;3875:7;3901:12;;;;;;;;;;:22;;;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;3199:103::-:0;3265:30;3276:4;735:10:120;3265::103;:30::i;:::-;3199:103;:::o;896:222:64:-;-1:-1:-1;;;;;987:22:64;;983:129;;1025:19;1032:3;1037:6;1025;:19::i;:::-;896:222;;;:::o;983:129::-;1075:26;1081:6;1089:3;1094:6;1075:5;:26::i;2463:115:121:-;1474:19;:17;:19::i;:::-;2532:4:::1;2522:14:::0;;-1:-1:-1;;2522:14:121::1;::::0;::::1;::::0;;2551:20:::1;735:10:120::0;2558:12:121::1;2551:20;::::0;-1:-1:-1;;;;;9723:32:145;;;9705:51;;9693:2;9678:18;2551:20:121::1;;;;;;;2463:115::o:0;2710:117::-;1721:16;:14;:16::i;:::-;2768:7:::1;:15:::0;;-1:-1:-1;;2768:15:121::1;::::0;;2798:22:::1;735:10:120::0;2807:12:121::1;656:96:120::0;5627:259:82;5707:4;727:22;5727:5;:18;:47;;;;;5750:24;5758:5;5765:8;5750:7;:24::i;:::-;5749:25;5727:47;5723:93;;;5792:13;5790:15;;5792:13;;5790:15;;-1:-1:-1;;;5790:15:82;;-1:-1:-1;;;;;5790:15:82;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;5790:15:82;;;;;-1:-1:-1;;;;;5790:15:82;;;;;;5723:93;5825:33;5842:5;5849:8;5825:16;:33::i;:::-;-1:-1:-1;5875:4:82;;5627:259;-1:-1:-1;;;5627:259:82:o;2431:307:122:-;1755:1;2558:7;;:18;2554:86;;2599:30;;-1:-1:-1;;;2599:30:122;;;;;;;;;;;2554:86;1755:1;2714:7;:17;2431:307::o;2671:150:68:-;2734:6;2773:39;706:2;655;2773:7;;:39;:::i;:::-;2766:47;;;:::i;:::-;2759:55;;;2671:150;-1:-1:-1;;;2671:150:68:o;2976:130::-;3044:7;3070:29;:17;3079:7;;3070:8;:17::i;:::-;1210:15:60;1084:151;3070:29:68;3063:36;2976:130;-1:-1:-1;;;2976:130:68:o;5074:705:76:-;5291:13;;5351:17;-1:-1:-1;;;;;5340:36:76;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5340:36:76;;5316:60;;5391:9;5386:302;5406:28;;;5386:302;;;5455:29;5487:17;;5505:1;5487:20;;;;;;;:::i;:::-;;;;;;5455:52;;;;;;;;;;:::i;:::-;;;5523:9;5538:5;:14;;;-1:-1:-1;;;;;5538:19:76;5566:5;:12;;;5585:19;5538:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5522:88;;;5638:4;5625:7;5633:1;5625:10;;;;;;;;:::i;:::-;:17;;;:10;;;;;;;;;;:17;5665:12;;;5656:21;;;;:::i;:::-;;-1:-1:-1;;;5436:3:76;;5386:302;;;;5702:70;5720:7;5729;5738:5;5745:17;;5764:7;5702:70;;;;;;;;;;;:::i;:::-;;;;;;;;5306:473;5074:705;;;;;;;;:::o;2002:128:121:-;1920:7;;;;2063:61;;;2098:15;;-1:-1:-1;;;2098:15:121;;;;;;;;;;;2063:61;2002:128::o;6056:260:82:-;6137:4;727:22;6157:5;:18;:46;;;;;6179:24;6187:5;6194:8;6179:7;:24::i;:::-;6153:92;;;6221:13;6219:15;;6221:13;;6219:15;;-1:-1:-1;;;6219:15:82;;-1:-1:-1;;;;;6219:15:82;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;6219:15:82;;;;;-1:-1:-1;;;;;6219:15:82;;;;;;6153:92;6254:34;6272:5;6279:8;6254:17;:34::i;3432:197:103:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3565:47;;-1:-1:-1;;;3565:47:103;;-1:-1:-1;;;;;13517:32:145;;3565:47:103;;;13499:51:145;13566:18;;;13559:34;;;13472:18;;3565:47:103;;;;;;;;438:252:64;-1:-1:-1;;;;;506:19:64;;502:58;;534:26;;-1:-1:-1;;;534:26:64;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:64;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;-1:-1:-1;;;649:34:64;;-1:-1:-1;;;;;13517:32:145;;649:34:64;;;13499:51:145;13566:18;;;13559:34;;;13472:18;;649:34:64;13325:274:145;696:194:64;-1:-1:-1;;;;;779:19:64;;775:58;;807:26;;-1:-1:-1;;;807:26:64;;;;;;;;;;;775:58;843:40;-1:-1:-1;;;;;843:27:64;;871:3;876:6;843:27;:40::i;2202:126:121:-;1920:7;;;;2260:62;;2296:15;;-1:-1:-1;;;2296:15:121;;;;;;;;;;;6179:316:103;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6315:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6315:29:103;;;;;;;;;:36;;-1:-1:-1;;6315:36:103;6347:4;6315:36;;;6397:12;735:10:120;;656:96;6397:12:103;-1:-1:-1;;;;;6370:40:103;6388:7;-1:-1:-1;;;;;6370:40:103;6382:4;6370:40;;;;;;;;;;-1:-1:-1;6431:4:103;6424:11;;6272:217;-1:-1:-1;6473:5:103;6466:12;;2827:143:68;2892:7;2926:36;785:2;706;2926:7;;:36;:::i;:::-;2918:45;;;:::i;6730:317:103:-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:12;;;;;;;;;;;-1:-1:-1;;;;;6866:29:103;;;;;;;;;;:37;;-1:-1:-1;;6866:37:103;;;6922:40;735:10:120;;6866:12:103;;6922:40;;6898:5;6922:40;-1:-1:-1;6983:4:103;6976:11;;1303:160:113;1412:43;;;-1:-1:-1;;;;;13517:32:145;;;1412:43:113;;;13499:51:145;13566:18;;;;13559:34;;;1412:43:113;;;;;;;;;;13472:18:145;;;;1412:43:113;;;;;;;;-1:-1:-1;;;;;1412:43:113;-1:-1:-1;;;1412:43:113;;;1385:71;;1405:5;;1412:43;-1:-1:-1;;4504:33:113;;1427:14;;1412:43;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:113;;-1:-1:-1;;;;;9723:32:145;;4631:40:113;;;9705:51:145;9678:18;;4631:40:113;9559:203:145;2705:151:118;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:118;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:118:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:118;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:118;;-1:-1:-1;;;;;9723:32:145;;5121:24:118;;;9705:51:145;9678:18;;5121:24:118;9559:203:145;5041:119:118;-1:-1:-1;5180:10:118;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:118;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;207:173:145;275:20;;-1:-1:-1;;;;;324:31:145;;314:42;;304:70;;370:1;367;360:12;385:328;462:6;470;478;531:2;519:9;510:7;506:23;502:32;499:52;;;547:1;544;537:12;499:52;570:29;589:9;570:29;:::i;:::-;560:39;;618:38;652:2;641:9;637:18;618:38;:::i;:::-;608:48;;703:2;692:9;688:18;675:32;665:42;;385:328;;;;;:::o;718:286::-;776:6;829:2;817:9;808:7;804:23;800:32;797:52;;;845:1;842;835:12;797:52;871:23;;-1:-1:-1;;;;;;923:32:145;;913:43;;903:71;;970:1;967;960:12;1201:118;1287:5;1280:13;1273:21;1266:5;1263:32;1253:60;;1309:1;1306;1299:12;1324:241;1380:6;1433:2;1421:9;1412:7;1408:23;1404:32;1401:52;;;1449:1;1446;1439:12;1401:52;1488:9;1475:23;1507:28;1529:5;1507:28;:::i;1570:180::-;1629:6;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;-1:-1:-1;1721:23:145;;1570:180;-1:-1:-1;1570:180:145:o;1937:163::-;2004:20;;2064:10;2053:22;;2043:33;;2033:61;;2090:1;2087;2080:12;2105:184;2163:6;2216:2;2204:9;2195:7;2191:23;2187:32;2184:52;;;2232:1;2229;2222:12;2184:52;2255:28;2273:9;2255:28;:::i;2294:639::-;2461:2;2513:21;;;2583:13;;2486:18;;;2605:22;;;2432:4;;2461:2;2684:15;;;;2658:2;2643:18;;;2432:4;2727:180;2741:6;2738:1;2735:13;2727:180;;;2806:13;;2821:4;2802:24;2790:37;;2882:15;;;;2847:12;;;;2763:1;2756:9;2727:180;;;-1:-1:-1;2924:3:145;;2294:639;-1:-1:-1;;;;;;2294:639:145:o;2938:186::-;2997:6;3050:2;3038:9;3029:7;3025:23;3021:32;3018:52;;;3066:1;3063;3056:12;3018:52;3089:29;3108:9;3089:29;:::i;3129:254::-;3197:6;3205;3258:2;3246:9;3237:7;3233:23;3229:32;3226:52;;;3274:1;3271;3264:12;3226:52;3310:9;3297:23;3287:33;;3339:38;3373:2;3362:9;3358:18;3339:38;:::i;:::-;3329:48;;3129:254;;;;;:::o;3388:347::-;3439:8;3449:6;3503:3;3496:4;3488:6;3484:17;3480:27;3470:55;;3521:1;3518;3511:12;3470:55;-1:-1:-1;3544:20:145;;-1:-1:-1;;;;;3576:30:145;;3573:50;;;3619:1;3616;3609:12;3573:50;3656:4;3648:6;3644:17;3632:29;;3708:3;3701:4;3692:6;3684;3680:19;3676:30;3673:39;3670:59;;;3725:1;3722;3715:12;3670:59;3388:347;;;;;:::o;3740:477::-;3819:6;3827;3835;3888:2;3876:9;3867:7;3863:23;3859:32;3856:52;;;3904:1;3901;3894:12;3856:52;3944:9;3931:23;-1:-1:-1;;;;;3969:6:145;3966:30;3963:50;;;4009:1;4006;3999:12;3963:50;4048:58;4098:7;4089:6;4078:9;4074:22;4048:58;:::i;:::-;4125:8;;4022:84;;-1:-1:-1;4207:2:145;4192:18;;;;4179:32;;3740:477;-1:-1:-1;;;;3740:477:145:o;4222:154::-;4281:5;4326:2;4317:6;4312:3;4308:16;4304:25;4301:45;;;4342:1;4339;4332:12;4301:45;-1:-1:-1;4364:6:145;4222:154;-1:-1:-1;4222:154:145:o;4381:392::-;4469:8;4479:6;4533:3;4526:4;4518:6;4514:17;4510:27;4500:55;;4551:1;4548;4541:12;4500:55;-1:-1:-1;4574:20:145;;-1:-1:-1;;;;;4606:30:145;;4603:50;;;4649:1;4646;4639:12;4603:50;4686:4;4678:6;4674:17;4662:29;;4746:3;4739:4;4729:6;4726:1;4722:14;4714:6;4710:27;4706:38;4703:47;4700:67;;;4763:1;4760;4753:12;4778:1070;4973:6;4981;4989;4997;5005;5013;5021;5074:3;5062:9;5053:7;5049:23;5045:33;5042:53;;;5091:1;5088;5081:12;5042:53;5114;5159:7;5148:9;5114:53;:::i;:::-;5104:63;;5218:2;5207:9;5203:18;5190:32;-1:-1:-1;;;;;5282:2:145;5274:6;5271:14;5268:34;;;5298:1;5295;5288:12;5268:34;5337:95;5424:7;5415:6;5404:9;5400:22;5337:95;:::i;:::-;5451:8;;-1:-1:-1;5311:121:145;-1:-1:-1;5533:3:145;5518:19;;5505:33;;-1:-1:-1;5591:3:145;5576:19;;5563:33;;-1:-1:-1;5608:16:145;;;5605:36;;;5637:1;5634;5627:12;5605:36;;5676:60;5728:7;5717:8;5706:9;5702:24;5676:60;:::i;:::-;4778:1070;;;;-1:-1:-1;4778:1070:145;;;;;;5837:3;5822:19;;;5809:33;;4778:1070;-1:-1:-1;;;;4778:1070:145:o;5853:127::-;5914:10;5909:3;5905:20;5902:1;5895:31;5945:4;5942:1;5935:15;5969:4;5966:1;5959:15;5985:253;6057:2;6051:9;6099:4;6087:17;;-1:-1:-1;;;;;6119:34:145;;6155:22;;;6116:62;6113:88;;;6181:18;;:::i;:::-;6217:2;6210:22;5985:253;:::o;6243:275::-;6314:2;6308:9;6379:2;6360:13;;-1:-1:-1;;6356:27:145;6344:40;;-1:-1:-1;;;;;6399:34:145;;6435:22;;;6396:62;6393:88;;;6461:18;;:::i;:::-;6497:2;6490:22;6243:275;;-1:-1:-1;6243:275:145:o;6523:171::-;6590:20;;-1:-1:-1;;;;;6639:30:145;;6629:41;;6619:69;;6684:1;6681;6674:12;6699:159;6766:20;;6826:6;6815:18;;6805:29;;6795:57;;6848:1;6845;6838:12;6863:188;6931:20;;-1:-1:-1;;;;;6980:46:145;;6970:57;;6960:85;;7041:1;7038;7031:12;7056:1653;7172:6;7203:2;7246;7234:9;7225:7;7221:23;7217:32;7214:52;;;7262:1;7259;7252:12;7214:52;7302:9;7289:23;-1:-1:-1;;;;;7372:2:145;7364:6;7361:14;7358:34;;;7388:1;7385;7378:12;7358:34;7426:6;7415:9;7411:22;7401:32;;7471:7;7464:4;7460:2;7456:13;7452:27;7442:55;;7493:1;7490;7483:12;7442:55;7529:2;7516:16;7551:2;7547;7544:10;7541:36;;;7557:18;;:::i;:::-;7597:36;7629:2;7624;7621:1;7617:10;7613:19;7597:36;:::i;:::-;7667:15;;;7698:12;;;;-1:-1:-1;7729:4:145;7768:13;;;7760:22;;7756:31;;;7799:19;;;7796:39;;;7831:1;7828;7821:12;7796:39;7855:11;;;;7875:804;7891:6;7886:3;7883:15;7875:804;;;7971:2;7965:3;7956:7;7952:17;7948:26;7945:116;;;8015:1;8044:2;8040;8033:14;7945:116;8087:22;;:::i;:::-;8136;8154:3;8136:22;:::i;:::-;8129:5;8122:37;8195:31;8222:2;8217:3;8213:12;8195:31;:::i;:::-;8190:2;8183:5;8179:14;8172:55;8250:2;8288:31;8315:2;8310:3;8306:12;8288:31;:::i;:::-;8272:14;;;8265:55;8343:2;8381:31;8399:12;;;8381:31;:::i;:::-;8365:14;;;8358:55;8436:3;8475:32;8494:12;;;8475:32;:::i;:::-;8459:14;;;8452:56;8532:3;8572:33;8591:13;;;8572:33;:::i;:::-;8555:15;;;8548:58;8619:18;;7908:12;;;;8657;;;;7875:804;;;-1:-1:-1;8698:5:145;7056:1653;-1:-1:-1;;;;;;;7056:1653:145:o;8714:840::-;8897:6;8905;8913;8921;8929;8937;8990:3;8978:9;8969:7;8965:23;8961:33;8958:53;;;9007:1;9004;8997:12;8958:53;9030;9075:7;9064:9;9030:53;:::i;:::-;9020:63;;9102:37;9135:2;9124:9;9120:18;9102:37;:::i;:::-;9092:47;;9158:39;9192:3;9181:9;9177:19;9158:39;:::i;:::-;9148:49;;9248:3;9237:9;9233:19;9220:33;-1:-1:-1;;;;;9268:6:145;9265:30;9262:50;;;9308:1;9305;9298:12;9262:50;9347:95;9434:7;9425:6;9414:9;9410:22;9347:95;:::i;:::-;8714:840;;;;-1:-1:-1;8714:840:145;;;;;9543:3;9528:19;;;9515:33;;8714:840;-1:-1:-1;;;;8714:840:145:o;9767:624::-;9863:6;9871;9879;9887;9895;9948:3;9936:9;9927:7;9923:23;9919:33;9916:53;;;9965:1;9962;9955:12;9916:53;9988:28;10006:9;9988:28;:::i;:::-;9978:38;;10035;10069:2;10058:9;10054:18;10035:38;:::i;:::-;10025:48;;10120:2;10109:9;10105:18;10092:32;10082:42;;10175:2;10164:9;10160:18;10147:32;-1:-1:-1;;;;;10194:6:145;10191:30;10188:50;;;10234:1;10231;10224:12;10188:50;10273:58;10323:7;10314:6;10303:9;10299:22;10273:58;:::i;:::-;9767:624;;;;-1:-1:-1;9767:624:145;;-1:-1:-1;10350:8:145;;10247:84;9767:624;-1:-1:-1;;;9767:624:145:o;10775:860::-;10950:6;10958;10966;10974;11027:2;11015:9;11006:7;11002:23;10998:32;10995:52;;;11043:1;11040;11033:12;10995:52;11083:9;11070:23;-1:-1:-1;;;;;11153:2:145;11145:6;11142:14;11139:34;;;11169:1;11166;11159:12;11139:34;11208:95;11295:7;11286:6;11275:9;11271:22;11208:95;:::i;:::-;11322:8;;-1:-1:-1;11182:121:145;-1:-1:-1;11404:2:145;11389:18;;11376:32;;-1:-1:-1;11461:2:145;11446:18;;11433:32;;-1:-1:-1;11477:16:145;;;11474:36;;;11506:1;11503;11496:12;11474:36;-1:-1:-1;11529:24:145;;11587:3;11569:16;;;11565:26;11562:46;;;11604:1;11601;11594:12;11562:46;10775:860;;;;-1:-1:-1;10775:860:145;;-1:-1:-1;;10775:860:145:o;12241:184::-;12299:6;12352:2;12340:9;12331:7;12327:23;12323:32;12320:52;;;12368:1;12365;12358:12;12320:52;12391:28;12409:9;12391:28;:::i;12430:685::-;12522:6;12530;12538;12591:2;12579:9;12570:7;12566:23;12562:32;12559:52;;;12607:1;12604;12597:12;12559:52;12630:28;12648:9;12630:28;:::i;:::-;12620:38;;12709:2;12698:9;12694:18;12681:32;-1:-1:-1;;;;;12773:2:145;12765:6;12762:14;12759:34;;;12789:1;12786;12779:12;12759:34;12827:6;12816:9;12812:22;12802:32;;12872:7;12865:4;12861:2;12857:13;12853:27;12843:55;;12894:1;12891;12884:12;12843:55;12934:2;12921:16;12960:2;12952:6;12949:14;12946:34;;;12976:1;12973;12966:12;12946:34;13029:7;13024:2;13014:6;13011:1;13007:14;13003:2;12999:23;12995:32;12992:45;12989:65;;;13050:1;13047;13040:12;12989:65;13081:2;13077;13073:11;13063:21;;13103:6;13093:16;;;;;12430:685;;;;;:::o;13984:266::-;14072:6;14067:3;14060:19;14124:6;14117:5;14110:4;14105:3;14101:14;14088:43;-1:-1:-1;14176:1:145;14151:16;;;14169:4;14147:27;;;14140:38;;;;14232:2;14211:15;;;-1:-1:-1;;14207:29:145;14198:39;;;14194:50;;13984:266::o;14255:315::-;14440:2;14429:9;14422:21;14403:4;14460:61;14517:2;14506:9;14502:18;14494:6;14486;14460:61;:::i;:::-;14452:69;;14557:6;14552:2;14541:9;14537:18;14530:34;14255:315;;;;;;:::o;14575:127::-;14636:10;14631:3;14627:20;14624:1;14617:31;14667:4;14664:1;14657:15;14691:4;14688:1;14681:15;14707:1355;14942:2;14994:21;;;15064:13;;14967:18;;;15086:22;;;14913:4;;14942:2;15127;;15145:18;;;;15186:15;;;14913:4;15229:807;15243:6;15240:1;15237:13;15229:807;;;15302:13;;15344:9;;15355:10;15340:26;15328:39;;15406:11;;;15400:18;-1:-1:-1;;;;;15493:21:145;;;15479:12;;;15472:43;15559:11;;;15553:18;15549:27;15535:12;;;15528:49;15600:4;15648:11;;;15642:18;15662:6;15638:31;15624:12;;;15617:53;15693:4;15738:11;;;15732:18;-1:-1:-1;;;;;15841:23:145;;;15827:12;;;15820:45;;;;15888:4;15936:11;;;15930:18;15926:27;15912:12;;;15905:49;15983:4;15974:14;;;;16011:15;;;;15265:1;15258:9;15229:807;;;-1:-1:-1;16053:3:145;;14707:1355;-1:-1:-1;;;;;;;14707:1355:145:o;16067:1374::-;16449:13;;-1:-1:-1;;;;;16445:22:145;;;16427:41;;16528:4;16516:17;;;16510:24;16536:10;16506:41;16484:20;;;16477:71;16608:4;16596:17;;;16590:24;16586:33;;;16564:20;;;16557:63;16676:4;16664:17;;;16658:24;16636:20;;;16629:54;16730:4;16718:17;;;16712:24;16755:6;16799:21;;;16777:20;;;16770:51;16847:13;;-1:-1:-1;;;;;16934:18:145;;;16407:3;16913:19;;16906:47;16994:20;;;;16990:29;;;16984:3;16969:19;;16962:58;17118:2;17114:18;-1:-1:-1;;;;;17110:27:145;;;17104:3;17089:19;;17082:56;16416:1;17172:17;;17166:24;17227:20;;;17221:3;17206:19;;17199:49;17289:22;;17285:31;17279:3;17264:19;;17257:60;16377:3;17348;17333:19;;17326:31;;;16348:4;;17374:61;17416:18;;;17408:6;17400;17374:61;:::i;:::-;17366:69;16067:1374;-1:-1:-1;;;;;;;16067:1374:145:o;17446:184::-;17516:6;17569:2;17557:9;17548:7;17544:23;17540:32;17537:52;;;17585:1;17582;17575:12;17537:52;-1:-1:-1;17608:16:145;;17446:184;-1:-1:-1;17446:184:145:o;17635:127::-;17696:10;17691:3;17687:20;17684:1;17677:31;17727:4;17724:1;17717:15;17751:4;17748:1;17741:15;17767:128;17834:9;;;17855:11;;;17852:37;;;17869:18;;:::i;17900:521::-;17977:4;17983:6;18043:11;18030:25;18137:2;18133:7;18122:8;18106:14;18102:29;18098:43;18078:18;18074:68;18064:96;;18156:1;18153;18146:12;18064:96;18183:33;;18235:20;;;-1:-1:-1;;;;;;18267:30:145;;18264:50;;;18310:1;18307;18300:12;18264:50;18343:4;18331:17;;-1:-1:-1;18374:14:145;18370:27;;;18360:38;;18357:58;;;18411:1;18408;18401:12;18426:285;18537:10;18511:24;18529:5;18511:24;:::i;:::-;18507:41;18502:3;18495:54;18605:4;18598:5;18594:16;18581:30;18574:4;18569:3;18565:14;18558:54;-1:-1:-1;;;;;18648:35:145;18677:4;18670:5;18666:16;18648:35;:::i;:::-;18644:60;18637:4;18632:3;18628:14;18621:84;;;18426:285::o;18716:752::-;19045:52;19087:9;19079:6;19045:52;:::i;:::-;19162:1;19158;19153:3;19149:11;19145:19;19137:6;19133:32;19128:2;19117:9;19113:18;19106:60;19203:6;19197:3;19186:9;19182:19;19175:35;19247:3;19241;19230:9;19226:19;19219:32;19026:4;19274:62;19331:3;19320:9;19316:19;19308:6;19300;19274:62;:::i;:::-;19385:9;19377:6;19373:22;19367:3;19356:9;19352:19;19345:51;19413:49;19455:6;19447;19439;19413:49;:::i;:::-;19405:57;18716:752;-1:-1:-1;;;;;;;;;;18716:752:145:o;19473:209::-;19511:3;-1:-1:-1;;;;;19592:2:145;19585:5;19581:14;19619:2;19610:7;19607:15;19604:41;;19625:18;;:::i;:::-;19674:1;19661:15;;19473:209;-1:-1:-1;;;19473:209:145:o;19687:331::-;19792:9;19803;19845:8;19833:10;19830:24;19827:44;;;19867:1;19864;19857:12;19827:44;19896:6;19886:8;19883:20;19880:40;;;19916:1;19913;19906:12;19880:40;-1:-1:-1;;19942:23:145;;;19987:25;;;;;-1:-1:-1;19687:331:145:o;20023:323::-;-1:-1:-1;;;;;;20143:19:145;;20219:11;;;;20250:1;20242:10;;20239:101;;;20327:2;20321;20314:3;20311:1;20307:11;20304:1;20300:19;20296:28;20292:2;20288:37;20284:46;20275:55;;20239:101;;;20023:323;;;;:::o;20351:519::-;20444:6;20497:2;20485:9;20476:7;20472:23;20468:32;20465:52;;;20513:1;20510;20503:12;20465:52;20546:2;20540:9;20588:2;20580:6;20576:15;20657:6;20645:10;20642:22;-1:-1:-1;;;;;20609:10:145;20606:34;20603:62;20600:88;;;20668:18;;:::i;:::-;20704:2;20697:22;20743:29;20762:9;20743:29;:::i;:::-;20735:6;20728:45;20834:2;20823:9;20819:18;20806:32;20801:2;20793:6;20789:15;20782:57;20858:6;20848:16;;;20351:519;;;;:::o;21085:125::-;21150:9;;;21171:10;;;21168:36;;;21184:18;;:::i;21215:452::-;21265:3;21303:5;21297:12;21330:6;21325:3;21318:19;21356:4;21385;21380:3;21376:14;21369:21;;21424:4;21417:5;21413:16;21447:1;21457:185;21471:6;21468:1;21465:13;21457:185;;;21546:13;;21539:21;21532:29;21520:42;;21582:12;;;;21617:15;;;;21493:1;21486:9;21457:185;;;-1:-1:-1;21658:3:145;;21215:452;-1:-1:-1;;;;;21215:452:145:o;21672:1307::-;22098:4;22146:3;22135:9;22131:19;22159:52;22201:9;22193:6;22159:52;:::i;:::-;22259:10;22247:23;;22242:2;22227:18;;22220:51;-1:-1:-1;;;;;22346:15:145;;;22340:3;22325:19;;22318:44;22399:3;22298;22378:19;;22371:32;22438:22;;;;22518:6;;22491:3;22476:19;;-1:-1:-1;22552:309:145;22566:6;22563:1;22560:13;22552:309;;;22659:2;22631:26;22650:6;22631:26;:::i;:::-;22627:35;22615:48;;22686:4;22737:15;;;22724:29;22710:12;;;22703:51;22777:4;22836:15;;;;22801:12;;;;22588:1;22581:9;22552:309;;;22556:3;22907:9;22902:3;22898:19;22892:3;22881:9;22877:19;22870:48;22935:38;22969:3;22961:6;22935:38;:::i;:::-;22927:46;21672:1307;-1:-1:-1;;;;;;;;;;;21672:1307:145:o;22984:193::-;23022:3;-1:-1:-1;;;;;23059:5:145;23055:30;23104:7;23094:41;;23115:18;;:::i;:::-;-1:-1:-1;;23151:20:145;;22984:193;-1:-1:-1;;22984:193:145:o;23461:255::-;23581:19;;23620:2;23612:11;;23609:101;;;-1:-1:-1;;23681:2:145;23677:12;;;23674:1;23670:20;23666:33;23655:45;23461:255;;;;:::o;23721:245::-;23788:6;23841:2;23829:9;23820:7;23816:23;23812:32;23809:52;;;23857:1;23854;23847:12;23809:52;23889:9;23883:16;23908:28;23930:5;23908:28;:::i;23971:412::-;24100:3;24138:6;24132:13;24163:1;24173:129;24187:6;24184:1;24181:13;24173:129;;;24285:4;24269:14;;;24265:25;;24259:32;24246:11;;;24239:53;24202:12;24173:129;;;-1:-1:-1;24357:1:145;24321:16;;24346:13;;;-1:-1:-1;24321:16:145;23971:412;-1:-1:-1;23971:412:145:o","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","allowlistSize()":"d2ae2104","assignJob(uint32,address,uint256,bytes)":"717e8a42","defaultMultiplierBps()":"00bf2e80","dstConfig(uint32)":"9e944965","endpoint()":"5e280f11","execute301(bytes,uint256)":"3146646a","getFee(uint32,address,uint256,bytes)":"709eb664","getRoleAdmin(bytes32)":"248a9ca3","getSupportedOptionTypes(uint32)":"26e67a37","grantRole(bytes32,address)":"2f2ff15d","hasAcl(address)":"2de11376","hasRole(bytes32,address)":"91d14854","localEid()":"72607537","nativeDrop((uint32,bytes32,uint64),uint32,address,(address,uint256)[],uint256)":"475b6d9e","nativeDropAndExecute301((uint32,bytes32,uint64),(address,uint256)[],uint256,bytes,uint256)":"3927c075","nativeDropAndExecute302((address,uint256)[],uint256,(address,(uint32,bytes32,uint64),bytes32,bytes,bytes,uint256))":"8624ba07","paused()":"5c975abb","priceFeed()":"741bef1a","receiveUln301()":"c2803b2c","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDefaultMultiplierBps(uint16)":"c358de0a","setDstConfig((uint32,uint64,uint64,uint16,uint128,uint128)[])":"3d85ac33","setPaused(bool)":"16c38b3c","setPriceFeed(address)":"724e78da","setSupportedOptionTypes(uint32,uint8[])":"cd88b903","setWorkerFeeLib(address)":"c7b2370b","supportsInterface(bytes4)":"01ffc9a7","withdrawFee(address,address,uint256)":"1095b6d7","withdrawToken(address,address,uint256)":"01e33667","workerFeeLib()":"c416aa51"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_endpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_receiveUln301\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_messageLibs\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"_priceFeed\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_roleAdmin\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_admins\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_OnlyMessageLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_RoleRenouncingDisabled\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"lzReceiveBaseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lzComposeBaseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"nativeCap\",\"type\":\"uint128\"}],\"indexed\":false,\"internalType\":\"struct IExecutor.DstConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"DstConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IExecutor.NativeDropParams[]\",\"name\":\"params\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"bool[]\",\"name\":\"success\",\"type\":\"bool[]\"}],\"name\":\"NativeDropApplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"}],\"name\":\"SetDefaultMultiplierBps\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"name\":\"SetPriceFeed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint8[]\",\"name\":\"optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"SetSupportedOptionTypes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"workerLib\",\"type\":\"address\"}],\"name\":\"SetWorkerLib\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowlistSize\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_calldataSize\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"assignJob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultMultiplierBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"}],\"name\":\"dstConfig\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"lzReceiveBaseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"nativeCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"lzComposeBaseGas\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packet\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"execute301\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_calldataSize\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSupportedOptionTypes\",\"outputs\":[{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"hasAcl\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"localEid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IExecutor.NativeDropParams[]\",\"name\":\"_nativeDropParams\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"_nativeDropGasLimit\",\"type\":\"uint256\"}],\"name\":\"nativeDrop\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IExecutor.NativeDropParams[]\",\"name\":\"_nativeDropParams\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"_nativeDropGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_packet\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"nativeDropAndExecute301\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IExecutor.NativeDropParams[]\",\"name\":\"_nativeDropParams\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"_nativeDropGasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"}],\"internalType\":\"struct IExecutor.ExecutionParams\",\"name\":\"_executionParams\",\"type\":\"tuple\"}],\"name\":\"nativeDropAndExecute302\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceFeed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"receiveUln301\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_multiplierBps\",\"type\":\"uint16\"}],\"name\":\"setDefaultMultiplierBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"lzReceiveBaseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lzComposeBaseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"nativeCap\",\"type\":\"uint128\"}],\"internalType\":\"struct IExecutor.DstConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setDstConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_paused\",\"type\":\"bool\"}],\"name\":\"setPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_priceFeed\",\"type\":\"address\"}],\"name\":\"setPriceFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint8[]\",\"name\":\"_optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"setSupportedOptionTypes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_workerFeeLib\",\"type\":\"address\"}],\"name\":\"setWorkerFeeLib\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"workerFeeLib\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasAcl(address)\":{\"details\":\"Access control list using allowlist and denylist1) if one address is in the denylist -> deny2) else if address in the allowlist OR allowlist is empty (allows everyone)-> allow3) else deny\",\"params\":{\"_sender\":\"address to check\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceRole(bytes32,address)\":{\"details\":\"overrides AccessControl to disable renouncing of roles\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDefaultMultiplierBps(uint16)\":{\"params\":{\"_multiplierBps\":\"default multiplier for worker fee\"}},\"setPaused(bool)\":{\"details\":\"flag to pause execution of workers (if used with whenNotPaused modifier)\",\"params\":{\"_paused\":\"true to pause, false to unpause\"}},\"setPriceFeed(address)\":{\"params\":{\"_priceFeed\":\"price feed address\"}},\"setWorkerFeeLib(address)\":{\"params\":{\"_workerFeeLib\":\"worker fee lib address\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"withdrawFee(address,address,uint256)\":{\"details\":\"supports withdrawing fee from ULN301, ULN302 and more\",\"params\":{\"_amount\":\"amount to withdraw\",\"_lib\":\"message lib address\",\"_to\":\"address to withdraw fee to\"}},\"withdrawToken(address,address,uint256)\":{\"details\":\"supports withdrawing token from the contract\",\"params\":{\"_amount\":\"amount to withdraw\",\"_to\":\"address to withdraw token to\",\"_token\":\"token address\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol\":\"ExecutorMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":{\"keccak256\":\"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f\",\"dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol\":{\"keccak256\":\"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032\",\"dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol\":{\"keccak256\":\"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691\",\"dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol\":{\"keccak256\":\"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29\",\"dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol\":{\"keccak256\":\"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1\",\"dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_endpoint","type":"address"},{"internalType":"address","name":"_receiveUln301","type":"address"},{"internalType":"address[]","name":"_messageLibs","type":"address[]"},{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"address","name":"_roleAdmin","type":"address"},{"internalType":"address[]","name":"_admins","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"},{"inputs":[],"type":"error","name":"Worker_NotAllowed"},{"inputs":[],"type":"error","name":"Worker_OnlyMessageLib"},{"inputs":[],"type":"error","name":"Worker_RoleRenouncingDisabled"},{"inputs":[{"internalType":"struct IExecutor.DstConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"lzReceiveBaseGas","type":"uint64"},{"internalType":"uint64","name":"lzComposeBaseGas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"},{"internalType":"uint128","name":"nativeCap","type":"uint128"}],"indexed":false}],"type":"event","name":"DstConfigSet","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"oapp","type":"address","indexed":false},{"internalType":"struct IExecutor.NativeDropParams[]","name":"params","type":"tuple[]","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"indexed":false},{"internalType":"bool[]","name":"success","type":"bool[]","indexed":false}],"type":"event","name":"NativeDropApplied","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"uint16","name":"multiplierBps","type":"uint16","indexed":false}],"type":"event","name":"SetDefaultMultiplierBps","anonymous":false},{"inputs":[{"internalType":"address","name":"priceFeed","type":"address","indexed":false}],"type":"event","name":"SetPriceFeed","anonymous":false},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"uint8[]","name":"optionTypes","type":"uint8[]","indexed":false}],"type":"event","name":"SetSupportedOptionTypes","anonymous":false},{"inputs":[{"internalType":"address","name":"workerLib","type":"address","indexed":false}],"type":"event","name":"SetWorkerLib","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"lib","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allowlistSize","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_calldataSize","type":"uint256"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"assignJob","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultMultiplierBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"dstConfig","outputs":[{"internalType":"uint64","name":"lzReceiveBaseGas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"},{"internalType":"uint128","name":"nativeCap","type":"uint128"},{"internalType":"uint64","name":"lzComposeBaseGas","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_packet","type":"bytes"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"execute301"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_calldataSize","type":"uint256"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSupportedOptionTypes","outputs":[{"internalType":"uint8[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"hasAcl","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"localEid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct IExecutor.NativeDropParams[]","name":"_nativeDropParams","type":"tuple[]","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"_nativeDropGasLimit","type":"uint256"}],"stateMutability":"payable","type":"function","name":"nativeDrop"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"struct IExecutor.NativeDropParams[]","name":"_nativeDropParams","type":"tuple[]","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"_nativeDropGasLimit","type":"uint256"},{"internalType":"bytes","name":"_packet","type":"bytes"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"}],"stateMutability":"payable","type":"function","name":"nativeDropAndExecute301"},{"inputs":[{"internalType":"struct IExecutor.NativeDropParams[]","name":"_nativeDropParams","type":"tuple[]","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"_nativeDropGasLimit","type":"uint256"},{"internalType":"struct IExecutor.ExecutionParams","name":"_executionParams","type":"tuple","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"},{"internalType":"uint256","name":"gasLimit","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"nativeDropAndExecute302"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"priceFeed","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"receiveUln301","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"uint16","name":"_multiplierBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultMultiplierBps"},{"inputs":[{"internalType":"struct IExecutor.DstConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"lzReceiveBaseGas","type":"uint64"},{"internalType":"uint64","name":"lzComposeBaseGas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"},{"internalType":"uint128","name":"nativeCap","type":"uint128"}]}],"stateMutability":"nonpayable","type":"function","name":"setDstConfig"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPaused"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPriceFeed"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint8[]","name":"_optionTypes","type":"uint8[]"}],"stateMutability":"nonpayable","type":"function","name":"setSupportedOptionTypes"},{"inputs":[{"internalType":"address","name":"_workerFeeLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setWorkerFeeLib"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawToken"},{"inputs":[],"stateMutability":"view","type":"function","name":"workerFeeLib","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasAcl(address)":{"details":"Access control list using allowlist and denylist1) if one address is in the denylist -> deny2) else if address in the allowlist OR allowlist is empty (allows everyone)-> allow3) else deny","params":{"_sender":"address to check"}},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceRole(bytes32,address)":{"details":"overrides AccessControl to disable renouncing of roles"},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDefaultMultiplierBps(uint16)":{"params":{"_multiplierBps":"default multiplier for worker fee"}},"setPaused(bool)":{"details":"flag to pause execution of workers (if used with whenNotPaused modifier)","params":{"_paused":"true to pause, false to unpause"}},"setPriceFeed(address)":{"params":{"_priceFeed":"price feed address"}},"setWorkerFeeLib(address)":{"params":{"_workerFeeLib":"worker fee lib address"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"withdrawFee(address,address,uint256)":{"details":"supports withdrawing fee from ULN301, ULN302 and more","params":{"_amount":"amount to withdraw","_lib":"message lib address","_to":"address to withdraw fee to"}},"withdrawToken(address,address,uint256)":{"details":"supports withdrawing token from the contract","params":{"_amount":"amount to withdraw","_to":"address to withdraw token to","_token":"token address"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol":"ExecutorMock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":{"keccak256":"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a","urls":["bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f","dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol":{"keccak256":"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3","urls":["bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032","dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol":{"keccak256":"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f","urls":["bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691","dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol":{"keccak256":"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16","urls":["bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29","dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol":{"keccak256":"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97","urls":["bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1","dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":76} \ No newline at end of file diff --git a/packages/onft-evm/out/ExecutorOptions.sol/ExecutorOptions.json b/packages/onft-evm/out/ExecutorOptions.sol/ExecutorOptions.json deleted file mode 100644 index fbc0071ac..000000000 --- a/packages/onft-evm/out/ExecutorOptions.sol/ExecutorOptions.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"Executor_InvalidLzComposeOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReceiveOption","inputs":[]},{"type":"error","name":"Executor_InvalidNativeDropOption","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209ddbe5cd33dea45ffd16a84c0d27ce27d172c04ef42a7544ce89bc8e4e6fa86964736f6c63430008160033","sourceMap":"133:3427:67:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;133:3427:67;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209ddbe5cd33dea45ffd16a84c0d27ce27d172c04ef42a7544ce89bc8e4e6fa86964736f6c63430008160033","sourceMap":"133:3427:67:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReceiveOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidNativeDropOption\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":\"ExecutorOptions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Executor_InvalidLzComposeOption"},{"inputs":[],"type":"error","name":"Executor_InvalidLzReceiveOption"},{"inputs":[],"type":"error","name":"Executor_InvalidNativeDropOption"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":"ExecutorOptions"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"}},"version":1},"id":67} \ No newline at end of file diff --git a/packages/onft-evm/out/GUID.sol/GUID.json b/packages/onft-evm/out/GUID.sol/GUID.json deleted file mode 100644 index a7066042f..000000000 --- a/packages/onft-evm/out/GUID.sol/GUID.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122012a153f5b331b9494ca2fe02abd4dbe907c9c33c22f3e25d480844ba5185bcd164736f6c63430008160033","sourceMap":"114:345:63:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;114:345:63;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122012a153f5b331b9494ca2fe02abd4dbe907c9c33c22f3e25d480844ba5185bcd164736f6c63430008160033","sourceMap":"114:345:63:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":\"GUID\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":"GUID"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":{"keccak256":"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5","urls":["bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b","dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj"],"license":"LZBL-1.2"}},"version":1},"id":63} \ No newline at end of file diff --git a/packages/onft-evm/out/IAccessControl.sol/IAccessControl.json b/packages/onft-evm/out/IAccessControl.sol/IAccessControl.json deleted file mode 100644 index d1df3c927..000000000 --- a/packages/onft-evm/out/IAccessControl.sol/IAccessControl.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":"IAccessControl"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"}},"version":1},"id":104} \ No newline at end of file diff --git a/packages/onft-evm/out/IDVN.sol/IDVN.json b/packages/onft-evm/out/IDVN.sol/IDVN.json deleted file mode 100644 index d21bfa556..000000000 --- a/packages/onft-evm/out/IDVN.sol/IDVN.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"assignJob","inputs":[{"name":"_param","type":"tuple","internalType":"struct ILayerZeroDVN.AssignJobParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"packetHeader","type":"bytes","internalType":"bytes"},{"name":"payloadHash","type":"bytes32","internalType":"bytes32"},{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"sender","type":"address","internalType":"address"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"defaultMultiplierBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"dstConfig","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"uint16","internalType":"uint16"},{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"getFee","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_confirmations","type":"uint64","internalType":"uint64"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint8[]","internalType":"uint8[]"}],"stateMutability":"view"},{"type":"function","name":"priceFeed","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setDefaultMultiplierBps","inputs":[{"name":"_multiplierBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPriceFeed","inputs":[{"name":"_priceFeed","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_optionTypes","type":"uint8[]","internalType":"uint8[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_lib","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetDefaultMultiplierBps","inputs":[{"name":"multiplierBps","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"SetDstConfig","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct IDVN.DstConfigParam[]","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}]}],"anonymous":false},{"type":"event","name":"SetPriceFeed","inputs":[{"name":"priceFeed","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetSupportedOptionTypes","inputs":[{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"optionTypes","type":"uint8[]","indexed":false,"internalType":"uint8[]"}],"anonymous":false},{"type":"event","name":"SetWorkerLib","inputs":[{"name":"workerLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"lib","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"Worker_NotAllowed","inputs":[]},{"type":"error","name":"Worker_OnlyMessageLib","inputs":[]},{"type":"error","name":"Worker_RoleRenouncingDisabled","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"assignJob((uint32,bytes,bytes32,uint64,address),bytes)":"95d376d7","defaultMultiplierBps()":"00bf2e80","dstConfig(uint32)":"9e944965","getFee(uint32,uint64,address,bytes)":"30bb3aac","getSupportedOptionTypes(uint32)":"26e67a37","priceFeed()":"741bef1a","setDefaultMultiplierBps(uint16)":"c358de0a","setPriceFeed(address)":"724e78da","setSupportedOptionTypes(uint32,uint8[])":"cd88b903","withdrawFee(address,address,uint256)":"1095b6d7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Worker_NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_OnlyMessageLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_RoleRenouncingDisabled\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"}],\"name\":\"SetDefaultMultiplierBps\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"indexed\":false,\"internalType\":\"struct IDVN.DstConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"SetDstConfig\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"name\":\"SetPriceFeed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint8[]\",\"name\":\"optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"SetSupportedOptionTypes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"workerLib\",\"type\":\"address\"}],\"name\":\"SetWorkerLib\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"packetHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"internalType\":\"struct ILayerZeroDVN.AssignJobParam\",\"name\":\"_param\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"assignJob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultMultiplierBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"dstConfig\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"_confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSupportedOptionTypes\",\"outputs\":[{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceFeed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_multiplierBps\",\"type\":\"uint16\"}],\"name\":\"setDefaultMultiplierBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_priceFeed\",\"type\":\"address\"}],\"name\":\"setPriceFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint8[]\",\"name\":\"_optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"setSupportedOptionTypes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":\"IDVN\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9\",\"dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Worker_NotAllowed"},{"inputs":[],"type":"error","name":"Worker_OnlyMessageLib"},{"inputs":[],"type":"error","name":"Worker_RoleRenouncingDisabled"},{"inputs":[{"internalType":"uint16","name":"multiplierBps","type":"uint16","indexed":false}],"type":"event","name":"SetDefaultMultiplierBps","anonymous":false},{"inputs":[{"internalType":"struct IDVN.DstConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}],"indexed":false}],"type":"event","name":"SetDstConfig","anonymous":false},{"inputs":[{"internalType":"address","name":"priceFeed","type":"address","indexed":false}],"type":"event","name":"SetPriceFeed","anonymous":false},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"uint8[]","name":"optionTypes","type":"uint8[]","indexed":false}],"type":"event","name":"SetSupportedOptionTypes","anonymous":false},{"inputs":[{"internalType":"address","name":"workerLib","type":"address","indexed":false}],"type":"event","name":"SetWorkerLib","anonymous":false},{"inputs":[{"internalType":"address","name":"lib","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"struct ILayerZeroDVN.AssignJobParam","name":"_param","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes","name":"packetHeader","type":"bytes"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"},{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"address","name":"sender","type":"address"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"assignJob","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultMultiplierBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"dstConfig","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"uint64","name":"_confirmations","type":"uint64"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSupportedOptionTypes","outputs":[{"internalType":"uint8[]","name":"","type":"uint8[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"priceFeed","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"_multiplierBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultMultiplierBps"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPriceFeed"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint8[]","name":"_optionTypes","type":"uint8[]"}],"stateMutability":"nonpayable","type":"function","name":"setSupportedOptionTypes"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":"IDVN"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f","urls":["bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9","dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"}},"version":1},"id":25} \ No newline at end of file diff --git a/packages/onft-evm/out/IDVNFeeLib.sol/IDVNFeeLib.json b/packages/onft-evm/out/IDVNFeeLib.sol/IDVNFeeLib.json deleted file mode 100644 index fb5314e70..000000000 --- a/packages/onft-evm/out/IDVNFeeLib.sol/IDVNFeeLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getFee","inputs":[{"name":"_params","type":"tuple","internalType":"struct IDVNFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"sender","type":"address","internalType":"address"},{"name":"quorum","type":"uint64","internalType":"uint64"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IDVN.DstConfig","components":[{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeOnSend","inputs":[{"name":"_params","type":"tuple","internalType":"struct IDVNFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"sender","type":"address","internalType":"address"},{"name":"quorum","type":"uint64","internalType":"uint64"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IDVN.DstConfig","components":[{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"error","name":"DVN_EidNotSupported","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"DVN_UnsupportedOptionType","inputs":[{"name":"optionType","type":"uint8","internalType":"uint8"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getFee((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)":"7bfa20a9","getFeeOnSend((address,uint32,uint64,address,uint64,uint16),(uint64,uint16,uint128),bytes)":"df2b057e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"DVN_EidNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"optionType\",\"type\":\"uint8\"}],\"name\":\"DVN_UnsupportedOptionType\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"quorum\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IDVNFeeLib.FeeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"internalType\":\"struct IDVN.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"quorum\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IDVNFeeLib.FeeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"}],\"internalType\":\"struct IDVN.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFeeOnSend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":\"IDVNFeeLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9\",\"dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":{\"keccak256\":\"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55\",\"dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"DVN_EidNotSupported"},{"inputs":[{"internalType":"uint8","name":"optionType","type":"uint8"}],"type":"error","name":"DVN_UnsupportedOptionType"},{"inputs":[{"internalType":"struct IDVNFeeLib.FeeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint64","name":"quorum","type":"uint64"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IDVN.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"struct IDVNFeeLib.FeeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint64","name":"quorum","type":"uint64"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IDVN.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"getFeeOnSend","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":"IDVNFeeLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f","urls":["bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9","dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":{"keccak256":"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73","urls":["bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55","dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"}},"version":1},"id":26} \ No newline at end of file diff --git a/packages/onft-evm/out/IERC1155.sol/IERC1155.json b/packages/onft-evm/out/IERC1155.sol/IERC1155.json deleted file mode 100644 index d8a3f522d..000000000 --- a/packages/onft-evm/out/IERC1155.sol/IERC1155.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC1155 compliant contract, as defined in the https://eips.ethereum.org/EIPS/eip-1155[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address,uint256)":{"details":"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address."},"balanceOfBatch(address[],uint256[])":{"details":"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length."},"isApprovedForAll(address,address)":{"details":"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value."},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value."},"setApprovalForAll(address,bool)":{"details":"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol":"IERC1155"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"keccak256":"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce","urls":["bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182","dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":108} \ No newline at end of file diff --git a/packages/onft-evm/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json b/packages/onft-evm/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json deleted file mode 100644 index 6ab7ead1b..000000000 --- a/packages/onft-evm/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"uri","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the optional ERC1155MetadataExtension interface, as defined in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"uri(uint256)\":{\"details\":\"Returns the URI for token type `id`. If the `\\\\{id\\\\}` substring is present in the URI, it must be replaced by clients with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":\"IERC1155MetadataURI\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address,uint256)":{"details":"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address."},"balanceOfBatch(address[],uint256[])":{"details":"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length."},"isApprovedForAll(address,address)":{"details":"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value."},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value."},"setApprovalForAll(address,bool)":{"details":"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"uri(uint256)":{"details":"Returns the URI for token type `id`. If the `\\{id\\}` substring is present in the URI, it must be replaced by clients with the actual token type ID."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":"IERC1155MetadataURI"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"keccak256":"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce","urls":["bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182","dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"keccak256":"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68","urls":["bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522","dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":110} \ No newline at end of file diff --git a/packages/onft-evm/out/IERC1155Receiver.sol/IERC1155Receiver.json b/packages/onft-evm/out/IERC1155Receiver.sol/IERC1155Receiver.json deleted file mode 100644 index 9fab5acb2..000000000 --- a/packages/onft-evm/out/IERC1155Receiver.sol/IERC1155Receiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onERC1155BatchReceived","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC1155Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface that must be implemented by smart contracts in order to receive ERC-1155 token transfers.\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. NOTE: To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. NOTE: To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"details":"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. NOTE: To accept the transfer(s), this must return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` (i.e. 0xbc197c81, or its own function selector).","params":{"data":"Additional data with no specified format","from":"The address which previously owned the token","ids":"An array containing ids of each token being transferred (order and length must match values array)","operator":"The address which initiated the batch transfer (i.e. msg.sender)","values":"An array containing amounts of each token being transferred (order and length must match ids array)"},"returns":{"_0":"`bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed"}},"onERC1155Received(address,address,uint256,uint256,bytes)":{"details":"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. NOTE: To accept the transfer, this must return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` (i.e. 0xf23a6e61, or its own function selector).","params":{"data":"Additional data with no specified format","from":"The address which previously owned the token","id":"The ID of the token being transferred","operator":"The address which initiated the transfer (i.e. msg.sender)","value":"The amount of tokens being transferred"},"returns":{"_0":"`bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed"}},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":"IERC1155Receiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3","urls":["bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23","dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":109} \ No newline at end of file diff --git a/packages/onft-evm/out/IERC165.sol/IERC165.json b/packages/onft-evm/out/IERC165.sol/IERC165.json deleted file mode 100644 index 925a96211..000000000 --- a/packages/onft-evm/out/IERC165.sol/IERC165.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":"IERC165"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":127} \ No newline at end of file diff --git a/packages/onft-evm/out/IERC20.sol/IERC20.json b/packages/onft-evm/out/IERC20.sol/IERC20.json deleted file mode 100644 index 64366209f..000000000 --- a/packages/onft-evm/out/IERC20.sol/IERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"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\":[{\"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\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"}},"version":1},"id":111} \ No newline at end of file diff --git a/packages/onft-evm/out/IERC20Permit.sol/IERC20Permit.json b/packages/onft-evm/out/IERC20Permit.sol/IERC20Permit.json deleted file mode 100644 index cbea4899d..000000000 --- a/packages/onft-evm/out/IERC20Permit.sol/IERC20Permit.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public { try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {} doThing(..., value); } function doThing(..., uint256 value) public { token.safeTransferFrom(msg.sender, address(this), value); ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"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"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":"IERC20Permit"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"}},"version":1},"id":112} \ No newline at end of file diff --git a/packages/onft-evm/out/IERC721.sol/IERC721.json b/packages/onft-evm/out/IERC721.sol/IERC721.json deleted file mode 100644 index 9030d958d..000000000 --- a/packages/onft-evm/out/IERC721.sol/IERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":"IERC721"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":115} \ No newline at end of file diff --git a/packages/onft-evm/out/IERC721A.sol/IERC721A.json b/packages/onft-evm/out/IERC721A.sol/IERC721A.json deleted file mode 100644 index d631690ab..000000000 --- a/packages/onft-evm/out/IERC721A.sol/IERC721A.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ApprovalCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"ApprovalQueryForNonexistentToken","inputs":[]},{"type":"error","name":"BalanceQueryForZeroAddress","inputs":[]},{"type":"error","name":"MintERC2309QuantityExceedsLimit","inputs":[]},{"type":"error","name":"MintToZeroAddress","inputs":[]},{"type":"error","name":"MintZeroQuantity","inputs":[]},{"type":"error","name":"NotCompatibleWithSpotMints","inputs":[]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","inputs":[]},{"type":"error","name":"SequentialMintExceedsLimit","inputs":[]},{"type":"error","name":"SequentialUpToTooSmall","inputs":[]},{"type":"error","name":"SpotMintTokenIdTooSmall","inputs":[]},{"type":"error","name":"TokenAlreadyExists","inputs":[]},{"type":"error","name":"TransferCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"TransferFromIncorrectOwner","inputs":[]},{"type":"error","name":"TransferToNonERC721ReceiverImplementer","inputs":[]},{"type":"error","name":"TransferToZeroAddress","inputs":[]},{"type":"error","name":"URIQueryForNonexistentToken","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCompatibleWithSpotMints\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SequentialMintExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SequentialUpToTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SpotMintTokenIdTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of ERC721A.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in `owner`'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}.\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, tokenId, '')`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) to learn more about how these ids are created. This function call must use less than 30000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"totalSupply()\":{\"details\":\"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"NotCompatibleWithSpotMints()\":[{\"notice\":\"The feature is not compatible with spot mints.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"SequentialMintExceedsLimit()\":[{\"notice\":\"The `tokenId` of a sequential mint exceeds `_sequentialUpTo()`.\"}],\"SequentialUpToTooSmall()\":[{\"notice\":\"`_sequentialUpTo()` must be greater than `_startTokenId()`.\"}],\"SpotMintTokenIdTooSmall()\":[{\"notice\":\"Spot minting requires a `tokenId` greater than `_sequentialUpTo()`.\"}],\"TokenAlreadyExists()\":[{\"notice\":\"Cannot mint over a token that already exists.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/erc721a/contracts/IERC721A.sol\":\"IERC721A\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/erc721a/contracts/IERC721A.sol\":{\"keccak256\":\"0xc9a2a00612e0d121aef3f716877ada17177d5b2d5a4c780d22cade46da2ff294\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1435542fc553d2fb9181191f126a1f97e2cc5570c2459c862f54ba415a22bf02\",\"dweb:/ipfs/QmaQJ14ajkHgymY5TtoxHnpiN5u4TpwXCqKr2B6DM8SHkn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ApprovalCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"ApprovalQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"BalanceQueryForZeroAddress"},{"inputs":[],"type":"error","name":"MintERC2309QuantityExceedsLimit"},{"inputs":[],"type":"error","name":"MintToZeroAddress"},{"inputs":[],"type":"error","name":"MintZeroQuantity"},{"inputs":[],"type":"error","name":"NotCompatibleWithSpotMints"},{"inputs":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"inputs":[],"type":"error","name":"SequentialMintExceedsLimit"},{"inputs":[],"type":"error","name":"SequentialUpToTooSmall"},{"inputs":[],"type":"error","name":"SpotMintTokenIdTooSmall"},{"inputs":[],"type":"error","name":"TokenAlreadyExists"},{"inputs":[],"type":"error","name":"TransferCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"TransferFromIncorrectOwner"},{"inputs":[],"type":"error","name":"TransferToNonERC721ReceiverImplementer"},{"inputs":[],"type":"error","name":"TransferToZeroAddress"},{"inputs":[],"type":"error","name":"URIQueryForNonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"toTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"ConsecutiveTransfer","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in `owner`'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}."},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Equivalent to `safeTransferFrom(from, to, tokenId, '')`."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) to learn more about how these ids are created. This function call must use less than 30000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"totalSupply()":{"details":"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/erc721a/contracts/IERC721A.sol":"IERC721A"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/erc721a/contracts/IERC721A.sol":{"keccak256":"0xc9a2a00612e0d121aef3f716877ada17177d5b2d5a4c780d22cade46da2ff294","urls":["bzz-raw://1435542fc553d2fb9181191f126a1f97e2cc5570c2459c862f54ba415a22bf02","dweb:/ipfs/QmaQJ14ajkHgymY5TtoxHnpiN5u4TpwXCqKr2B6DM8SHkn"],"license":"MIT"}},"version":1},"id":133} \ No newline at end of file diff --git a/packages/onft-evm/out/IERC721Metadata.sol/IERC721Metadata.json b/packages/onft-evm/out/IERC721Metadata.sol/IERC721Metadata.json deleted file mode 100644 index 1b516bf06..000000000 --- a/packages/onft-evm/out/IERC721Metadata.sol/IERC721Metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":117} \ No newline at end of file diff --git a/packages/onft-evm/out/IERC721Receiver.sol/IERC721Receiver.json b/packages/onft-evm/out/IERC721Receiver.sol/IERC721Receiver.json deleted file mode 100644 index 51430549b..000000000 --- a/packages/onft-evm/out/IERC721Receiver.sol/IERC721Receiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":"IERC721Receiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"}},"version":1},"id":116} \ No newline at end of file diff --git a/packages/onft-evm/out/IExecutor.sol/IExecutor.json b/packages/onft-evm/out/IExecutor.sol/IExecutor.json deleted file mode 100644 index 59d41e6d8..000000000 --- a/packages/onft-evm/out/IExecutor.sol/IExecutor.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"assignJob","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_calldataSize","type":"uint256","internalType":"uint256"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"defaultMultiplierBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"dstConfig","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"uint16","internalType":"uint16"},{"name":"","type":"uint128","internalType":"uint128"},{"name":"","type":"uint128","internalType":"uint128"},{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getFee","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_calldataSize","type":"uint256","internalType":"uint256"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint8[]","internalType":"uint8[]"}],"stateMutability":"view"},{"type":"function","name":"priceFeed","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setDefaultMultiplierBps","inputs":[{"name":"_multiplierBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPriceFeed","inputs":[{"name":"_priceFeed","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_optionTypes","type":"uint8[]","internalType":"uint8[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_lib","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DstConfigSet","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct IExecutor.DstConfigParam[]","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"}]}],"anonymous":false},{"type":"event","name":"NativeDropApplied","inputs":[{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oapp","type":"address","indexed":false,"internalType":"address"},{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct IExecutor.NativeDropParams[]","components":[{"name":"receiver","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"success","type":"bool[]","indexed":false,"internalType":"bool[]"}],"anonymous":false},{"type":"event","name":"SetDefaultMultiplierBps","inputs":[{"name":"multiplierBps","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"SetPriceFeed","inputs":[{"name":"priceFeed","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetSupportedOptionTypes","inputs":[{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"optionTypes","type":"uint8[]","indexed":false,"internalType":"uint8[]"}],"anonymous":false},{"type":"event","name":"SetWorkerLib","inputs":[{"name":"workerLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"lib","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"Worker_NotAllowed","inputs":[]},{"type":"error","name":"Worker_OnlyMessageLib","inputs":[]},{"type":"error","name":"Worker_RoleRenouncingDisabled","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"assignJob(uint32,address,uint256,bytes)":"717e8a42","defaultMultiplierBps()":"00bf2e80","dstConfig(uint32)":"9e944965","getFee(uint32,address,uint256,bytes)":"709eb664","getSupportedOptionTypes(uint32)":"26e67a37","priceFeed()":"741bef1a","setDefaultMultiplierBps(uint16)":"c358de0a","setPriceFeed(address)":"724e78da","setSupportedOptionTypes(uint32,uint8[])":"cd88b903","withdrawFee(address,address,uint256)":"1095b6d7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Worker_NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_OnlyMessageLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_RoleRenouncingDisabled\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"lzReceiveBaseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lzComposeBaseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"nativeCap\",\"type\":\"uint128\"}],\"indexed\":false,\"internalType\":\"struct IExecutor.DstConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"DstConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IExecutor.NativeDropParams[]\",\"name\":\"params\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"bool[]\",\"name\":\"success\",\"type\":\"bool[]\"}],\"name\":\"NativeDropApplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"}],\"name\":\"SetDefaultMultiplierBps\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"name\":\"SetPriceFeed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint8[]\",\"name\":\"optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"SetSupportedOptionTypes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"workerLib\",\"type\":\"address\"}],\"name\":\"SetWorkerLib\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_calldataSize\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"assignJob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultMultiplierBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"dstConfig\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_calldataSize\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSupportedOptionTypes\",\"outputs\":[{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceFeed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_multiplierBps\",\"type\":\"uint16\"}],\"name\":\"setDefaultMultiplierBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_priceFeed\",\"type\":\"address\"}],\"name\":\"setPriceFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint8[]\",\"name\":\"_optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"setSupportedOptionTypes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":\"IExecutor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":{\"keccak256\":\"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f\",\"dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Worker_NotAllowed"},{"inputs":[],"type":"error","name":"Worker_OnlyMessageLib"},{"inputs":[],"type":"error","name":"Worker_RoleRenouncingDisabled"},{"inputs":[{"internalType":"struct IExecutor.DstConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"uint64","name":"lzReceiveBaseGas","type":"uint64"},{"internalType":"uint64","name":"lzComposeBaseGas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"},{"internalType":"uint128","name":"nativeCap","type":"uint128"}],"indexed":false}],"type":"event","name":"DstConfigSet","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"oapp","type":"address","indexed":false},{"internalType":"struct IExecutor.NativeDropParams[]","name":"params","type":"tuple[]","components":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"indexed":false},{"internalType":"bool[]","name":"success","type":"bool[]","indexed":false}],"type":"event","name":"NativeDropApplied","anonymous":false},{"inputs":[{"internalType":"uint16","name":"multiplierBps","type":"uint16","indexed":false}],"type":"event","name":"SetDefaultMultiplierBps","anonymous":false},{"inputs":[{"internalType":"address","name":"priceFeed","type":"address","indexed":false}],"type":"event","name":"SetPriceFeed","anonymous":false},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"uint8[]","name":"optionTypes","type":"uint8[]","indexed":false}],"type":"event","name":"SetSupportedOptionTypes","anonymous":false},{"inputs":[{"internalType":"address","name":"workerLib","type":"address","indexed":false}],"type":"event","name":"SetWorkerLib","anonymous":false},{"inputs":[{"internalType":"address","name":"lib","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_calldataSize","type":"uint256"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"assignJob","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultMultiplierBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"dstConfig","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_calldataSize","type":"uint256"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSupportedOptionTypes","outputs":[{"internalType":"uint8[]","name":"","type":"uint8[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"priceFeed","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"_multiplierBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultMultiplierBps"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPriceFeed"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint8[]","name":"_optionTypes","type":"uint8[]"}],"stateMutability":"nonpayable","type":"function","name":"setSupportedOptionTypes"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":"IExecutor"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":{"keccak256":"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a","urls":["bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f","dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":15} \ No newline at end of file diff --git a/packages/onft-evm/out/IExecutorFeeLib.sol/IExecutorFeeLib.json b/packages/onft-evm/out/IExecutorFeeLib.sol/IExecutorFeeLib.json deleted file mode 100644 index c80d6c9a0..000000000 --- a/packages/onft-evm/out/IExecutorFeeLib.sol/IExecutorFeeLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getFee","inputs":[{"name":"_params","type":"tuple","internalType":"struct IExecutorFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"calldataSize","type":"uint256","internalType":"uint256"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IExecutor.DstConfig","components":[{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeOnSend","inputs":[{"name":"_params","type":"tuple","internalType":"struct IExecutorFeeLib.FeeParams","components":[{"name":"priceFeed","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"calldataSize","type":"uint256","internalType":"uint256"},{"name":"defaultMultiplierBps","type":"uint16","internalType":"uint16"}]},{"name":"_dstConfig","type":"tuple","internalType":"struct IExecutor.DstConfig","components":[{"name":"lzReceiveBaseGas","type":"uint64","internalType":"uint64"},{"name":"multiplierBps","type":"uint16","internalType":"uint16"},{"name":"floorMarginUSD","type":"uint128","internalType":"uint128"},{"name":"nativeCap","type":"uint128","internalType":"uint128"},{"name":"lzComposeBaseGas","type":"uint64","internalType":"uint64"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"error","name":"Executor_EidNotSupported","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"Executor_InvalidExecutorOptions","inputs":[{"name":"cursor","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Executor_NativeAmountExceedsCap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"cap","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Executor_NoOptions","inputs":[]},{"type":"error","name":"Executor_UnsupportedOptionType","inputs":[{"name":"optionType","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"Executor_ZeroLzComposeGasProvided","inputs":[]},{"type":"error","name":"Executor_ZeroLzReceiveGasProvided","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getFee((address,uint32,address,uint256,uint16),(uint64,uint16,uint128,uint128,uint64),bytes)":"434ee016","getFeeOnSend((address,uint32,address,uint256,uint16),(uint64,uint16,uint128,uint128,uint64),bytes)":"566ef762"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"Executor_EidNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"Executor_InvalidExecutorOptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"}],\"name\":\"Executor_NativeAmountExceedsCap\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_NoOptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"optionType\",\"type\":\"uint8\"}],\"name\":\"Executor_UnsupportedOptionType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_ZeroLzComposeGasProvided\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_ZeroLzReceiveGasProvided\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"calldataSize\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IExecutorFeeLib.FeeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"lzReceiveBaseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"nativeCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"lzComposeBaseGas\",\"type\":\"uint64\"}],\"internalType\":\"struct IExecutor.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"calldataSize\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"defaultMultiplierBps\",\"type\":\"uint16\"}],\"internalType\":\"struct IExecutorFeeLib.FeeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"lzReceiveBaseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"floorMarginUSD\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"nativeCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"lzComposeBaseGas\",\"type\":\"uint64\"}],\"internalType\":\"struct IExecutor.DstConfig\",\"name\":\"_dstConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFeeOnSend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol\":\"IExecutorFeeLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":{\"keccak256\":\"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f\",\"dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol\":{\"keccak256\":\"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032\",\"dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"Executor_EidNotSupported"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"type":"error","name":"Executor_InvalidExecutorOptions"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"cap","type":"uint256"}],"type":"error","name":"Executor_NativeAmountExceedsCap"},{"inputs":[],"type":"error","name":"Executor_NoOptions"},{"inputs":[{"internalType":"uint8","name":"optionType","type":"uint8"}],"type":"error","name":"Executor_UnsupportedOptionType"},{"inputs":[],"type":"error","name":"Executor_ZeroLzComposeGasProvided"},{"inputs":[],"type":"error","name":"Executor_ZeroLzReceiveGasProvided"},{"inputs":[{"internalType":"struct IExecutorFeeLib.FeeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"calldataSize","type":"uint256"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IExecutor.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"lzReceiveBaseGas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"},{"internalType":"uint128","name":"nativeCap","type":"uint128"},{"internalType":"uint64","name":"lzComposeBaseGas","type":"uint64"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"struct IExecutorFeeLib.FeeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"calldataSize","type":"uint256"},{"internalType":"uint16","name":"defaultMultiplierBps","type":"uint16"}]},{"internalType":"struct IExecutor.DstConfig","name":"_dstConfig","type":"tuple","components":[{"internalType":"uint64","name":"lzReceiveBaseGas","type":"uint64"},{"internalType":"uint16","name":"multiplierBps","type":"uint16"},{"internalType":"uint128","name":"floorMarginUSD","type":"uint128"},{"internalType":"uint128","name":"nativeCap","type":"uint128"},{"internalType":"uint64","name":"lzComposeBaseGas","type":"uint64"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"getFeeOnSend","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol":"IExecutorFeeLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":{"keccak256":"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a","urls":["bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f","dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol":{"keccak256":"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3","urls":["bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032","dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":16} \ No newline at end of file diff --git a/packages/onft-evm/out/ILayerZeroComposer.sol/ILayerZeroComposer.json b/packages/onft-evm/out/ILayerZeroComposer.sol/ILayerZeroComposer.json deleted file mode 100644 index d84640509..000000000 --- a/packages/onft-evm/out/ILayerZeroComposer.sol/ILayerZeroComposer.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"lzCompose","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"lzCompose(address,bytes32,bytes,address,bytes)":"d0a10260"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"lzCompose(address,bytes32,bytes,address,bytes)\":{\"params\":{\"_executor\":\"The address of the executor for the composed message.\",\"_extraData\":\"Additional arbitrary data in bytes passed by the entity who executes the lzCompose.\",\"_from\":\"The address initiating the composition, typically the OApp where the lzReceive was called.\",\"_guid\":\"The unique identifier for the corresponding LayerZero src/dst tx.\",\"_message\":\"The composed message payload in bytes. NOT necessarily the same payload passed via lzReceive.\"}}},\"title\":\"ILayerZeroComposer\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"lzCompose(address,bytes32,bytes,address,bytes)\":{\"notice\":\"Composes a LayerZero message from an OApp.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":\"ILayerZeroComposer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"}],"devdoc":{"kind":"dev","methods":{"lzCompose(address,bytes32,bytes,address,bytes)":{"params":{"_executor":"The address of the executor for the composed message.","_extraData":"Additional arbitrary data in bytes passed by the entity who executes the lzCompose.","_from":"The address initiating the composition, typically the OApp where the lzReceive was called.","_guid":"The unique identifier for the corresponding LayerZero src/dst tx.","_message":"The composed message payload in bytes. NOT necessarily the same payload passed via lzReceive."}}},"version":1},"userdoc":{"kind":"user","methods":{"lzCompose(address,bytes32,bytes,address,bytes)":{"notice":"Composes a LayerZero message from an OApp."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":"ILayerZeroComposer"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"}},"version":1},"id":51} \ No newline at end of file diff --git a/packages/onft-evm/out/ILayerZeroDVN.sol/ILayerZeroDVN.json b/packages/onft-evm/out/ILayerZeroDVN.sol/ILayerZeroDVN.json deleted file mode 100644 index 65e6b6337..000000000 --- a/packages/onft-evm/out/ILayerZeroDVN.sol/ILayerZeroDVN.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"assignJob","inputs":[{"name":"_param","type":"tuple","internalType":"struct ILayerZeroDVN.AssignJobParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"packetHeader","type":"bytes","internalType":"bytes"},{"name":"payloadHash","type":"bytes32","internalType":"bytes32"},{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"sender","type":"address","internalType":"address"}]},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getFee","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_confirmations","type":"uint64","internalType":"uint64"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"assignJob((uint32,bytes,bytes32,uint64,address),bytes)":"95d376d7","getFee(uint32,uint64,address,bytes)":"30bb3aac"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"packetHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"internalType\":\"struct ILayerZeroDVN.AssignJobParam\",\"name\":\"_param\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"assignJob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"_confirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":\"ILayerZeroDVN\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct ILayerZeroDVN.AssignJobParam","name":"_param","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes","name":"packetHeader","type":"bytes"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"},{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"address","name":"sender","type":"address"}]},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"assignJob","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"uint64","name":"_confirmations","type":"uint64"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":"ILayerZeroDVN"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"}},"version":1},"id":27} \ No newline at end of file diff --git a/packages/onft-evm/out/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json b/packages/onft-evm/out/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json deleted file mode 100644 index ac20d2078..000000000 --- a/packages/onft-evm/out/ILayerZeroEndpointV2.sol/ILayerZeroEndpointV2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"burn","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"clear","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"composeQueue","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"messageHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibraryTimeout","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"defaultSendLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eid","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"isDefault","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getRegisteredLibraries","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSendContext","inputs":[],"outputs":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"inboundNonce","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"inboundPayloadHash","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initializable","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDefaultSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegisteredLibrary","inputs":[{"name":"_lib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSendingMessage","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lazyInboundNonce","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextGuid","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nilify","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"outboundNonce","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_params","type":"tuple","internalType":"struct MessagingParams","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"},{"name":"payInLzToken","type":"bool","internalType":"bool"}]},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"receiveLibraryTimeout","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerLibrary","inputs":[{"name":"_lib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_params","type":"tuple","internalType":"struct MessagingParams","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"},{"name":"payInLzToken","type":"bool","internalType":"bool"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"sendCompose","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_params","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibraryTimeout","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultSendLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLzToken","inputs":[{"name":"_lzToken","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibraryTimeout","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSendLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"skip","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifiable","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verify","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_receiver","type":"address","internalType":"address"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComposeDelivered","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"ComposeSent","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"DefaultReceiveLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DefaultReceiveLibraryTimeoutSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"expiry","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DefaultSendLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateSet","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"delegate","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"InboundNonceSkipped","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"LibraryRegistered","inputs":[{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"LzComposeAlert","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"executor","type":"address","indexed":true,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LzReceiveAlert","inputs":[{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"executor","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LzTokenSet","inputs":[{"name":"token","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketBurnt","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PacketDelivered","inputs":[{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"receiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketNilified","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PacketSent","inputs":[{"name":"encodedPayload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"options","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"sendLibrary","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PacketVerified","inputs":[{"name":"origin","type":"tuple","indexed":false,"internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ReceiveLibrarySet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ReceiveLibraryTimeoutSet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"timeout","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SendLibrarySet","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"burn(address,uint32,bytes32,uint64,bytes32)":"40f80683","clear(address,(uint32,bytes32,uint64),bytes32,bytes)":"2a56c1b0","composeQueue(address,address,bytes32,uint16)":"35d330b0","defaultReceiveLibrary(uint32)":"6f50a803","defaultReceiveLibraryTimeout(uint32)":"6e83f5bb","defaultSendLibrary(uint32)":"f64be4c7","eid()":"416ecebf","getConfig(address,address,uint32,uint32)":"2b3197b9","getReceiveLibrary(address,uint32)":"402f8468","getRegisteredLibraries()":"9132e5c3","getSendContext()":"14f651a9","getSendLibrary(address,uint32)":"b96a277f","inboundNonce(address,uint32,bytes32)":"a0dd43fc","inboundPayloadHash(address,uint32,bytes32,uint64)":"c9fc7bcd","initializable((uint32,bytes32,uint64),address)":"861e1ca5","isDefaultSendLibrary(address,uint32)":"dc93c8a2","isRegisteredLibrary(address)":"dc706a62","isSendingMessage()":"79624ca9","isSupportedEid(uint32)":"6750cd4c","isValidReceiveLibrary(address,uint32,address)":"9d7f9775","lazyInboundNonce(address,uint32,bytes32)":"5b17bb70","lzCompose(address,address,bytes32,uint16,bytes,bytes)":"91d20fa1","lzReceive((uint32,bytes32,uint64),address,bytes32,bytes,bytes)":"0c0c389e","lzToken()":"e4fe1d94","nativeToken()":"e1758bd8","nextGuid(address,uint32,bytes32)":"aafe5e07","nilify(address,uint32,bytes32,uint64,bytes32)":"2e80fbf3","outboundNonce(address,uint32,bytes32)":"9c6d7340","quote((uint32,bytes32,bytes,bytes,bool),address)":"ddc28c58","receiveLibraryTimeout(address,uint32)":"ef667aa1","registerLibrary(address)":"e8964e81","send((uint32,bytes32,bytes,bytes,bool),address)":"2637a450","sendCompose(address,bytes32,uint16,bytes)":"7cb59012","setConfig(address,address,(uint32,uint32,bytes)[])":"6dbd9f90","setDefaultReceiveLibrary(uint32,address,uint256)":"a718531b","setDefaultReceiveLibraryTimeout(uint32,address,uint256)":"d4b4ec8f","setDefaultSendLibrary(uint32,address)":"aafea312","setDelegate(address)":"ca5eb5e1","setLzToken(address)":"c28e0eed","setReceiveLibrary(address,uint32,address,uint256)":"6a14d715","setReceiveLibraryTimeout(address,uint32,address,uint256)":"183c834f","setSendLibrary(address,uint32,address)":"9535ff30","skip(address,uint32,bytes32,uint64)":"d70b8902","verifiable((uint32,bytes32,uint64),address)":"c9a54a99","verify((uint32,bytes32,uint64),address,bytes32)":"a825d747"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"ComposeDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ComposeSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"DefaultReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultSendLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"DelegateSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InboundNonceSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"LibraryRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzComposeAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzReceiveAlert\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"LzTokenSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketBurnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"PacketDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketNilified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"encodedPayload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sendLibrary\",\"type\":\"address\"}],\"name\":\"PacketSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"ReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"ReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"SendLibrarySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"clear\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"}],\"name\":\"composeQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDefault\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisteredLibraries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSendContext\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"inboundPayloadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"initializable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isDefaultSendLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isRegisteredLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isValidReceiveLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"lazyInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"nextGuid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"nilify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"receiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"registerLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"payInLzToken\",\"type\":\"bool\"}],\"internalType\":\"struct MessagingParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setDefaultSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzToken\",\"type\":\"address\"}],\"name\":\"setLzToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"verifiable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setSendLibrary(address,uint32,address)\":{\"notice\":\"------------------- OApp interfaces -------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":\"ILayerZeroEndpointV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false}],"type":"event","name":"ComposeDelivered","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false}],"type":"event","name":"ComposeSent","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"expiry","type":"uint256","indexed":false}],"type":"event","name":"DefaultReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultSendLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"address","name":"delegate","type":"address","indexed":false}],"type":"event","name":"DelegateSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false}],"type":"event","name":"InboundNonceSkipped","anonymous":false},{"inputs":[{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"LibraryRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"address","name":"executor","type":"address","indexed":true},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"LzComposeAlert","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"executor","type":"address","indexed":true},{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"LzReceiveAlert","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":false}],"type":"event","name":"LzTokenSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketBurnt","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false}],"type":"event","name":"PacketDelivered","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketNilified","anonymous":false},{"inputs":[{"internalType":"bytes","name":"encodedPayload","type":"bytes","indexed":false},{"internalType":"bytes","name":"options","type":"bytes","indexed":false},{"internalType":"address","name":"sendLibrary","type":"address","indexed":false}],"type":"event","name":"PacketSent","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketVerified","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"ReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"timeout","type":"uint256","indexed":false}],"type":"event","name":"ReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"SendLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"clear"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"}],"stateMutability":"view","type":"function","name":"composeQueue","outputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibrary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultSendLibrary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"bool","name":"isDefault","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegisteredLibraries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSendContext","outputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"inboundPayloadHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"}],"stateMutability":"view","type":"function","name":"initializable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isDefaultSendLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"view","type":"function","name":"isRegisteredLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSendingMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"view","type":"function","name":"isValidReceiveLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"lazyInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[],"stateMutability":"view","type":"function","name":"lzToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextGuid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"nilify"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct MessagingParams","name":"_params","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}]},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"quote","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"receiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerLibrary"},{"inputs":[{"internalType":"struct MessagingParams","name":"_params","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"},{"internalType":"bool","name":"payInLzToken","type":"bool"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"sendCompose"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibrary"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibraryTimeout"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultSendLibrary"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"address","name":"_lzToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setLzToken"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibraryTimeout"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSendLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"}],"stateMutability":"view","type":"function","name":"verifiable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"verify"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"setSendLibrary(address,uint32,address)":{"notice":"------------------- OApp interfaces -------------------"}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":"ILayerZeroEndpointV2"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":52} \ No newline at end of file diff --git a/packages/onft-evm/out/ILayerZeroExecutor.sol/ILayerZeroExecutor.json b/packages/onft-evm/out/ILayerZeroExecutor.sol/ILayerZeroExecutor.json deleted file mode 100644 index 27badcb30..000000000 --- a/packages/onft-evm/out/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"assignJob","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_calldataSize","type":"uint256","internalType":"uint256"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getFee","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_calldataSize","type":"uint256","internalType":"uint256"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"assignJob(uint32,address,uint256,bytes)":"717e8a42","getFee(uint32,address,uint256,bytes)":"709eb664"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_calldataSize\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"assignJob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_calldataSize\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":\"ILayerZeroExecutor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_calldataSize","type":"uint256"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"assignJob","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_calldataSize","type":"uint256"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":"ILayerZeroExecutor"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"}},"version":1},"id":17} \ No newline at end of file diff --git a/packages/onft-evm/out/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json b/packages/onft-evm/out/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json deleted file mode 100644 index 68e276019..000000000 --- a/packages/onft-evm/out/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"estimateFeeByEid","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_callDataSize","type":"uint256","internalType":"uint256"},{"name":"_gas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"},{"name":"priceRatio","type":"uint128","internalType":"uint128"},{"name":"priceRatioDenominator","type":"uint128","internalType":"uint128"},{"name":"nativePriceUSD","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"estimateFeeOnSend","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_callDataSize","type":"uint256","internalType":"uint256"},{"name":"_gas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"},{"name":"priceRatio","type":"uint128","internalType":"uint128"},{"name":"priceRatioDenominator","type":"uint128","internalType":"uint128"},{"name":"nativePriceUSD","type":"uint128","internalType":"uint128"}],"stateMutability":"payable"},{"type":"function","name":"getFee","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_callDataSize","type":"uint256","internalType":"uint256"},{"name":"_gas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPrice","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ILayerZeroPriceFeed.Price","components":[{"name":"priceRatio","type":"uint128","internalType":"uint128"},{"name":"gasPriceInUnit","type":"uint64","internalType":"uint64"},{"name":"gasPerByte","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getPriceRatioDenominator","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"nativeTokenPriceUSD","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"error","name":"LZ_PriceFeed_InsufficientFee","inputs":[{"name":"provided","type":"uint256","internalType":"uint256"},{"name":"required","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_PriceFeed_NotAnOPStack","inputs":[{"name":"l2Eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"LZ_PriceFeed_OnlyPriceUpdater","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"estimateFeeByEid(uint32,uint256,uint256)":"88a4124c","estimateFeeOnSend(uint32,uint256,uint256)":"c1723a1d","getFee(uint32,uint256,uint256)":"11f2c343","getPrice(uint32)":"da26663a","getPriceRatioDenominator()":"c1840327","nativeTokenPriceUSD()":"92807f58"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"provided\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"LZ_PriceFeed_InsufficientFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"l2Eid\",\"type\":\"uint32\"}],\"name\":\"LZ_PriceFeed_NotAnOPStack\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_PriceFeed_OnlyPriceUpdater\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_callDataSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"}],\"name\":\"estimateFeeByEid\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"priceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"priceRatioDenominator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"nativePriceUSD\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_callDataSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"}],\"name\":\"estimateFeeOnSend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"priceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"priceRatioDenominator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"nativePriceUSD\",\"type\":\"uint128\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_callDataSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"getPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"priceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"gasPriceInUnit\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasPerByte\",\"type\":\"uint32\"}],\"internalType\":\"struct ILayerZeroPriceFeed.Price\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPriceRatioDenominator\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeTokenPriceUSD\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":\"ILayerZeroPriceFeed\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"provided","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"type":"error","name":"LZ_PriceFeed_InsufficientFee"},{"inputs":[{"internalType":"uint32","name":"l2Eid","type":"uint32"}],"type":"error","name":"LZ_PriceFeed_NotAnOPStack"},{"inputs":[],"type":"error","name":"LZ_PriceFeed_OnlyPriceUpdater"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"uint256","name":"_callDataSize","type":"uint256"},{"internalType":"uint256","name":"_gas","type":"uint256"}],"stateMutability":"view","type":"function","name":"estimateFeeByEid","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint128","name":"priceRatio","type":"uint128"},{"internalType":"uint128","name":"priceRatioDenominator","type":"uint128"},{"internalType":"uint128","name":"nativePriceUSD","type":"uint128"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"uint256","name":"_callDataSize","type":"uint256"},{"internalType":"uint256","name":"_gas","type":"uint256"}],"stateMutability":"payable","type":"function","name":"estimateFeeOnSend","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint128","name":"priceRatio","type":"uint128"},{"internalType":"uint128","name":"priceRatioDenominator","type":"uint128"},{"internalType":"uint128","name":"nativePriceUSD","type":"uint128"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"uint256","name":"_callDataSize","type":"uint256"},{"internalType":"uint256","name":"_gas","type":"uint256"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getPrice","outputs":[{"internalType":"struct ILayerZeroPriceFeed.Price","name":"","type":"tuple","components":[{"internalType":"uint128","name":"priceRatio","type":"uint128"},{"internalType":"uint64","name":"gasPriceInUnit","type":"uint64"},{"internalType":"uint32","name":"gasPerByte","type":"uint32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPriceRatioDenominator","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeTokenPriceUSD","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":"ILayerZeroPriceFeed"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"}},"version":1},"id":18} \ No newline at end of file diff --git a/packages/onft-evm/out/ILayerZeroReceiver.sol/ILayerZeroReceiver.json b/packages/onft-evm/out/ILayerZeroReceiver.sol/ILayerZeroReceiver.json deleted file mode 100644 index 70935138f..000000000 --- a/packages/onft-evm/out/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowInitializePath","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":\"ILayerZeroReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":"ILayerZeroReceiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":53} \ No newline at end of file diff --git a/packages/onft-evm/out/ILayerZeroTreasury.sol/ILayerZeroTreasury.json b/packages/onft-evm/out/ILayerZeroTreasury.sol/ILayerZeroTreasury.json deleted file mode 100644 index 799a05a9a..000000000 --- a/packages/onft-evm/out/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getFee","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_totalNativeFee","type":"uint256","internalType":"uint256"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"payFee","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_totalNativeFee","type":"uint256","internalType":"uint256"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getFee(address,uint32,uint256,bool)":"d4244221","payFee(address,uint32,uint256,bool)":"d51c5486"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_totalNativeFee\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_totalNativeFee\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"payFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":\"ILayerZeroTreasury\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":{\"keccak256\":\"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5\",\"dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"uint256","name":"_totalNativeFee","type":"uint256"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"uint256","name":"_totalNativeFee","type":"uint256"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"payable","type":"function","name":"payFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":"ILayerZeroTreasury"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":{"keccak256":"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345","urls":["bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5","dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8"],"license":"MIT"}},"version":1},"id":19} \ No newline at end of file diff --git a/packages/onft-evm/out/ILayerZeroUltraLightNodeV2.sol/ILayerZeroUltraLightNodeV2.json b/packages/onft-evm/out/ILayerZeroUltraLightNodeV2.sol/ILayerZeroUltraLightNodeV2.json deleted file mode 100644 index 619e1e5c6..000000000 --- a/packages/onft-evm/out/ILayerZeroUltraLightNodeV2.sol/ILayerZeroUltraLightNodeV2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"accruedNativeFee","inputs":[{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAppConfig","inputs":[{"name":"_remoteChainId","type":"uint16","internalType":"uint16"},{"name":"_userApplicationAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ILayerZeroUltraLightNodeV2.ApplicationConfiguration","components":[{"name":"inboundProofLibraryVersion","type":"uint16","internalType":"uint16"},{"name":"inboundBlockConfirmations","type":"uint64","internalType":"uint64"},{"name":"relayer","type":"address","internalType":"address"},{"name":"outboundProofType","type":"uint16","internalType":"uint16"},{"name":"outboundBlockConfirmations","type":"uint64","internalType":"uint64"},{"name":"oracle","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"updateHash","inputs":[{"name":"_srcChainId","type":"uint16","internalType":"uint16"},{"name":"_lookupHash","type":"bytes32","internalType":"bytes32"},{"name":"_confirmations","type":"uint256","internalType":"uint256"},{"name":"_blockData","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateTransactionProof","inputs":[{"name":"_srcChainId","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"address","internalType":"address"},{"name":"_gasLimit","type":"uint256","internalType":"uint256"},{"name":"_lookupHash","type":"bytes32","internalType":"bytes32"},{"name":"_blockData","type":"bytes32","internalType":"bytes32"},{"name":"_transactionProof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawNative","inputs":[{"name":"_to","type":"address","internalType":"address payable"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawZRO","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddInboundProofLibraryForChain","inputs":[{"name":"chainId","type":"uint16","indexed":true,"internalType":"uint16"},{"name":"lib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AppConfigUpdated","inputs":[{"name":"userApplication","type":"address","indexed":true,"internalType":"address"},{"name":"configType","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newConfig","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"EnableSupportedOutboundProof","inputs":[{"name":"chainId","type":"uint16","indexed":true,"internalType":"uint16"},{"name":"proofType","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"HashReceived","inputs":[{"name":"srcChainId","type":"uint16","indexed":true,"internalType":"uint16"},{"name":"oracle","type":"address","indexed":true,"internalType":"address"},{"name":"lookupHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"blockData","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"confirmations","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"InvalidDst","inputs":[{"name":"srcChainId","type":"uint16","indexed":true,"internalType":"uint16"},{"name":"srcAddress","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"dstAddress","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Packet","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"PacketReceived","inputs":[{"name":"srcChainId","type":"uint16","indexed":true,"internalType":"uint16"},{"name":"srcAddress","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"dstAddress","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RelayerParams","inputs":[{"name":"adapterParams","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"outboundProofType","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"SetChainAddressSize","inputs":[{"name":"chainId","type":"uint16","indexed":true,"internalType":"uint16"},{"name":"size","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDefaultAdapterParamsForChainId","inputs":[{"name":"chainId","type":"uint16","indexed":true,"internalType":"uint16"},{"name":"proofType","type":"uint16","indexed":true,"internalType":"uint16"},{"name":"adapterParams","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SetDefaultConfigForChainId","inputs":[{"name":"chainId","type":"uint16","indexed":true,"internalType":"uint16"},{"name":"inboundProofLib","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"inboundBlockConfirm","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"relayer","type":"address","indexed":false,"internalType":"address"},{"name":"outboundProofType","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"outboundBlockConfirm","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"oracle","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetLayerZeroToken","inputs":[{"name":"tokenAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetRemoteUln","inputs":[{"name":"chainId","type":"uint16","indexed":true,"internalType":"uint16"},{"name":"uln","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"SetTreasury","inputs":[{"name":"treasuryAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WithdrawNative","inputs":[{"name":"msgSender","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WithdrawZRO","inputs":[{"name":"msgSender","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accruedNativeFee(address)":"69412bfa","getAppConfig(uint16,address)":"a4662222","updateHash(uint16,bytes32,uint256,bytes32)":"704316e5","validateTransactionProof(uint16,address,uint256,bytes32,bytes32,bytes)":"987fa2d5","withdrawNative(address,uint256)":"07b18bde","withdrawZRO(address,uint256)":"8525b711"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"name\":\"AddInboundProofLibraryForChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"userApplication\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"configType\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"newConfig\",\"type\":\"bytes\"}],\"name\":\"AppConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"proofType\",\"type\":\"uint16\"}],\"name\":\"EnableSupportedOutboundProof\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"lookupHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockData\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"confirmations\",\"type\":\"uint256\"}],\"name\":\"HashReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidDst\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"Packet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"outboundProofType\",\"type\":\"uint16\"}],\"name\":\"RelayerParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"}],\"name\":\"SetChainAddressSize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"proofType\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"}],\"name\":\"SetDefaultAdapterParamsForChainId\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"inboundProofLib\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"inboundBlockConfirm\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"outboundProofType\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"outboundBlockConfirm\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"SetDefaultConfigForChainId\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"SetLayerZeroToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uln\",\"type\":\"bytes32\"}],\"name\":\"SetRemoteUln\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"treasuryAddress\",\"type\":\"address\"}],\"name\":\"SetTreasury\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawNative\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawZRO\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"accruedNativeFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplicationAddress\",\"type\":\"address\"}],\"name\":\"getAppConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"inboundProofLibraryVersion\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"inboundBlockConfirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"outboundProofType\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"outboundBlockConfirmations\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"internalType\":\"struct ILayerZeroUltraLightNodeV2.ApplicationConfiguration\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_lookupHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_confirmations\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_blockData\",\"type\":\"bytes32\"}],\"name\":\"updateHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_lookupHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_blockData\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_transactionProof\",\"type\":\"bytes\"}],\"name\":\"validateTransactionProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawNative\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawZRO\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol\":\"ILayerZeroUltraLightNodeV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol\":{\"keccak256\":\"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda\",\"dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint16","name":"chainId","type":"uint16","indexed":true},{"internalType":"address","name":"lib","type":"address","indexed":false}],"type":"event","name":"AddInboundProofLibraryForChain","anonymous":false},{"inputs":[{"internalType":"address","name":"userApplication","type":"address","indexed":true},{"internalType":"uint256","name":"configType","type":"uint256","indexed":true},{"internalType":"bytes","name":"newConfig","type":"bytes","indexed":false}],"type":"event","name":"AppConfigUpdated","anonymous":false},{"inputs":[{"internalType":"uint16","name":"chainId","type":"uint16","indexed":true},{"internalType":"uint16","name":"proofType","type":"uint16","indexed":false}],"type":"event","name":"EnableSupportedOutboundProof","anonymous":false},{"inputs":[{"internalType":"uint16","name":"srcChainId","type":"uint16","indexed":true},{"internalType":"address","name":"oracle","type":"address","indexed":true},{"internalType":"bytes32","name":"lookupHash","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"blockData","type":"bytes32","indexed":false},{"internalType":"uint256","name":"confirmations","type":"uint256","indexed":false}],"type":"event","name":"HashReceived","anonymous":false},{"inputs":[{"internalType":"uint16","name":"srcChainId","type":"uint16","indexed":true},{"internalType":"bytes","name":"srcAddress","type":"bytes","indexed":false},{"internalType":"address","name":"dstAddress","type":"address","indexed":true},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"InvalidDst","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false}],"type":"event","name":"Packet","anonymous":false},{"inputs":[{"internalType":"uint16","name":"srcChainId","type":"uint16","indexed":true},{"internalType":"bytes","name":"srcAddress","type":"bytes","indexed":false},{"internalType":"address","name":"dstAddress","type":"address","indexed":true},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketReceived","anonymous":false},{"inputs":[{"internalType":"bytes","name":"adapterParams","type":"bytes","indexed":false},{"internalType":"uint16","name":"outboundProofType","type":"uint16","indexed":false}],"type":"event","name":"RelayerParams","anonymous":false},{"inputs":[{"internalType":"uint16","name":"chainId","type":"uint16","indexed":true},{"internalType":"uint256","name":"size","type":"uint256","indexed":false}],"type":"event","name":"SetChainAddressSize","anonymous":false},{"inputs":[{"internalType":"uint16","name":"chainId","type":"uint16","indexed":true},{"internalType":"uint16","name":"proofType","type":"uint16","indexed":true},{"internalType":"bytes","name":"adapterParams","type":"bytes","indexed":false}],"type":"event","name":"SetDefaultAdapterParamsForChainId","anonymous":false},{"inputs":[{"internalType":"uint16","name":"chainId","type":"uint16","indexed":true},{"internalType":"uint16","name":"inboundProofLib","type":"uint16","indexed":false},{"internalType":"uint64","name":"inboundBlockConfirm","type":"uint64","indexed":false},{"internalType":"address","name":"relayer","type":"address","indexed":false},{"internalType":"uint16","name":"outboundProofType","type":"uint16","indexed":false},{"internalType":"uint64","name":"outboundBlockConfirm","type":"uint64","indexed":false},{"internalType":"address","name":"oracle","type":"address","indexed":false}],"type":"event","name":"SetDefaultConfigForChainId","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":true}],"type":"event","name":"SetLayerZeroToken","anonymous":false},{"inputs":[{"internalType":"uint16","name":"chainId","type":"uint16","indexed":true},{"internalType":"bytes32","name":"uln","type":"bytes32","indexed":false}],"type":"event","name":"SetRemoteUln","anonymous":false},{"inputs":[{"internalType":"address","name":"treasuryAddress","type":"address","indexed":true}],"type":"event","name":"SetTreasury","anonymous":false},{"inputs":[{"internalType":"address","name":"msgSender","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"WithdrawNative","anonymous":false},{"inputs":[{"internalType":"address","name":"msgSender","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"WithdrawZRO","anonymous":false},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"accruedNativeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"address","name":"_userApplicationAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getAppConfig","outputs":[{"internalType":"struct ILayerZeroUltraLightNodeV2.ApplicationConfiguration","name":"","type":"tuple","components":[{"internalType":"uint16","name":"inboundProofLibraryVersion","type":"uint16"},{"internalType":"uint64","name":"inboundBlockConfirmations","type":"uint64"},{"internalType":"address","name":"relayer","type":"address"},{"internalType":"uint16","name":"outboundProofType","type":"uint16"},{"internalType":"uint64","name":"outboundBlockConfirmations","type":"uint64"},{"internalType":"address","name":"oracle","type":"address"}]}]},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes32","name":"_lookupHash","type":"bytes32"},{"internalType":"uint256","name":"_confirmations","type":"uint256"},{"internalType":"bytes32","name":"_blockData","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateHash"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes32","name":"_lookupHash","type":"bytes32"},{"internalType":"bytes32","name":"_blockData","type":"bytes32"},{"internalType":"bytes","name":"_transactionProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"validateTransactionProof"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawNative"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawZRO"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol":"ILayerZeroUltraLightNodeV2"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol":{"keccak256":"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22","urls":["bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda","dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa"],"license":"BUSL-1.1"}},"version":1},"id":69} \ No newline at end of file diff --git a/packages/onft-evm/out/IMessageLib.sol/IMessageLib.json b/packages/onft-evm/out/IMessageLib.sol/IMessageLib.json deleted file mode 100644 index 2318741fc..000000000 --- a/packages/onft-evm/out/IMessageLib.sol/IMessageLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getConfig","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_oapp","type":"address","internalType":"address"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"messageLibType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum MessageLibType"}],"stateMutability":"view"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_config","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"endpointVersion","type":"uint8","internalType":"uint8"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getConfig(uint32,address,uint32)":"9c33abf7","isSupportedEid(uint32)":"6750cd4c","messageLibType()":"1881d94d","setConfig(address,(uint32,uint32,bytes)[])":"20efd722","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_config\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":\"IMessageLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_config","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":"IMessageLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":54} \ No newline at end of file diff --git a/packages/onft-evm/out/IMessageLibManager.sol/IMessageLibManager.json b/packages/onft-evm/out/IMessageLibManager.sol/IMessageLibManager.json deleted file mode 100644 index 9ad50a747..000000000 --- a/packages/onft-evm/out/IMessageLibManager.sol/IMessageLibManager.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"defaultReceiveLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibraryTimeout","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"defaultSendLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"isDefault","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getRegisteredLibraries","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isDefaultSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegisteredLibrary","inputs":[{"name":"_lib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"receiveLibraryTimeout","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerLibrary","inputs":[{"name":"_lib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_params","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibraryTimeout","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultSendLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibraryTimeout","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSendLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DefaultReceiveLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DefaultReceiveLibraryTimeoutSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"expiry","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DefaultSendLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"LibraryRegistered","inputs":[{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ReceiveLibrarySet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ReceiveLibraryTimeoutSet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"timeout","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SendLibrarySet","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"defaultReceiveLibrary(uint32)":"6f50a803","defaultReceiveLibraryTimeout(uint32)":"6e83f5bb","defaultSendLibrary(uint32)":"f64be4c7","getConfig(address,address,uint32,uint32)":"2b3197b9","getReceiveLibrary(address,uint32)":"402f8468","getRegisteredLibraries()":"9132e5c3","getSendLibrary(address,uint32)":"b96a277f","isDefaultSendLibrary(address,uint32)":"dc93c8a2","isRegisteredLibrary(address)":"dc706a62","isSupportedEid(uint32)":"6750cd4c","isValidReceiveLibrary(address,uint32,address)":"9d7f9775","receiveLibraryTimeout(address,uint32)":"ef667aa1","registerLibrary(address)":"e8964e81","setConfig(address,address,(uint32,uint32,bytes)[])":"6dbd9f90","setDefaultReceiveLibrary(uint32,address,uint256)":"a718531b","setDefaultReceiveLibraryTimeout(uint32,address,uint256)":"d4b4ec8f","setDefaultSendLibrary(uint32,address)":"aafea312","setReceiveLibrary(address,uint32,address,uint256)":"6a14d715","setReceiveLibraryTimeout(address,uint32,address,uint256)":"183c834f","setSendLibrary(address,uint32,address)":"9535ff30"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"DefaultReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultSendLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"LibraryRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"ReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"ReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"SendLibrarySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"defaultSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDefault\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisteredLibraries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isDefaultSendLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isRegisteredLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"isValidReceiveLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"receiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"registerLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setDefaultSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setSendLibrary(address,uint32,address)\":{\"notice\":\"------------------- OApp interfaces -------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":\"IMessageLibManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"expiry","type":"uint256","indexed":false}],"type":"event","name":"DefaultReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultSendLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"LibraryRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"ReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"timeout","type":"uint256","indexed":false}],"type":"event","name":"ReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"SendLibrarySet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibrary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultSendLibrary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"bool","name":"isDefault","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegisteredLibraries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isDefaultSendLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"view","type":"function","name":"isRegisteredLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"view","type":"function","name":"isValidReceiveLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"receiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibrary"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibraryTimeout"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultSendLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibraryTimeout"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSendLibrary"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"setSendLibrary(address,uint32,address)":{"notice":"------------------- OApp interfaces -------------------"}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":"IMessageLibManager"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"}},"version":1},"id":55} \ No newline at end of file diff --git a/packages/onft-evm/out/IMessagingChannel.sol/IMessagingChannel.json b/packages/onft-evm/out/IMessagingChannel.sol/IMessagingChannel.json deleted file mode 100644 index 2d10620e5..000000000 --- a/packages/onft-evm/out/IMessagingChannel.sol/IMessagingChannel.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"burn","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eid","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"inboundNonce","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"inboundPayloadHash","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"lazyInboundNonce","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"nextGuid","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nilify","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"outboundNonce","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"skip","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"InboundNonceSkipped","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"PacketBurnt","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PacketNilified","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"burn(address,uint32,bytes32,uint64,bytes32)":"40f80683","eid()":"416ecebf","inboundNonce(address,uint32,bytes32)":"a0dd43fc","inboundPayloadHash(address,uint32,bytes32,uint64)":"c9fc7bcd","lazyInboundNonce(address,uint32,bytes32)":"5b17bb70","nextGuid(address,uint32,bytes32)":"aafe5e07","nilify(address,uint32,bytes32,uint64,bytes32)":"2e80fbf3","outboundNonce(address,uint32,bytes32)":"9c6d7340","skip(address,uint32,bytes32,uint64)":"d70b8902"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InboundNonceSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketBurnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketNilified\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"inboundPayloadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"lazyInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"nextGuid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"nilify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":\"IMessagingChannel\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false}],"type":"event","name":"InboundNonceSkipped","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketBurnt","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketNilified","anonymous":false},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"eid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"inboundPayloadHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"lazyInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextGuid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"nilify"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"skip"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":"IMessagingChannel"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"}},"version":1},"id":56} \ No newline at end of file diff --git a/packages/onft-evm/out/IMessagingComposer.sol/IMessagingComposer.json b/packages/onft-evm/out/IMessagingComposer.sol/IMessagingComposer.json deleted file mode 100644 index 82df5dc4c..000000000 --- a/packages/onft-evm/out/IMessagingComposer.sol/IMessagingComposer.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"composeQueue","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"messageHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendCompose","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComposeDelivered","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"ComposeSent","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LzComposeAlert","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"executor","type":"address","indexed":true,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"composeQueue(address,address,bytes32,uint16)":"35d330b0","lzCompose(address,address,bytes32,uint16,bytes,bytes)":"91d20fa1","sendCompose(address,bytes32,uint16,bytes)":"7cb59012"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"ComposeDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ComposeSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzComposeAlert\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"}],\"name\":\"composeQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":\"IMessagingComposer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false}],"type":"event","name":"ComposeDelivered","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false}],"type":"event","name":"ComposeSent","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"address","name":"executor","type":"address","indexed":true},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"LzComposeAlert","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"}],"stateMutability":"view","type":"function","name":"composeQueue","outputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"sendCompose"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":"IMessagingComposer"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"}},"version":1},"id":57} \ No newline at end of file diff --git a/packages/onft-evm/out/IMessagingContext.sol/IMessagingContext.json b/packages/onft-evm/out/IMessagingContext.sol/IMessagingContext.json deleted file mode 100644 index 1adfe4c96..000000000 --- a/packages/onft-evm/out/IMessagingContext.sol/IMessagingContext.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getSendContext","inputs":[],"outputs":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isSendingMessage","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getSendContext()":"14f651a9","isSendingMessage()":"79624ca9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getSendContext\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":\"IMessagingContext\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"getSendContext","outputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSendingMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":"IMessagingContext"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":58} \ No newline at end of file diff --git a/packages/onft-evm/out/IMulticall3.sol/IMulticall3.json b/packages/onft-evm/out/IMulticall3.sol/IMulticall3.json deleted file mode 100644 index 3bac32e0b..000000000 --- a/packages/onft-evm/out/IMulticall3.sol/IMulticall3.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"id":99} \ No newline at end of file diff --git a/packages/onft-evm/out/IOAppComposer.sol/IOAppComposer.json b/packages/onft-evm/out/IOAppComposer.sol/IOAppComposer.json deleted file mode 100644 index a9670a53c..000000000 --- a/packages/onft-evm/out/IOAppComposer.sol/IOAppComposer.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"lzCompose","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"lzCompose(address,bytes32,bytes,address,bytes)":"d0a10260"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This interface defines the OApp Composer, allowing developers to inherit only the OApp package without the protocol.\",\"kind\":\"dev\",\"methods\":{\"lzCompose(address,bytes32,bytes,address,bytes)\":{\"params\":{\"_executor\":\"The address of the executor for the composed message.\",\"_extraData\":\"Additional arbitrary data in bytes passed by the entity who executes the lzCompose.\",\"_from\":\"The address initiating the composition, typically the OApp where the lzReceive was called.\",\"_guid\":\"The unique identifier for the corresponding LayerZero src/dst tx.\",\"_message\":\"The composed message payload in bytes. NOT necessarily the same payload passed via lzReceive.\"}}},\"title\":\"IOAppComposer\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"lzCompose(address,bytes32,bytes,address,bytes)\":{\"notice\":\"Composes a LayerZero message from an OApp.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol\":\"IOAppComposer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol\":{\"keccak256\":\"0xe5014c411acb2b59dd74ae74a1bab02cf32d94a41a548a5ab553d64aeeb55dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dfb7bc121002fc7e7931c34eb17af0ae0f0127dcc3199511c83a58a917160d\",\"dweb:/ipfs/QmPdq1wcRRBdUP169LHCLoLuPRunN9eR71TQN42FjGpowx\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"}],"devdoc":{"kind":"dev","methods":{"lzCompose(address,bytes32,bytes,address,bytes)":{"params":{"_executor":"The address of the executor for the composed message.","_extraData":"Additional arbitrary data in bytes passed by the entity who executes the lzCompose.","_from":"The address initiating the composition, typically the OApp where the lzReceive was called.","_guid":"The unique identifier for the corresponding LayerZero src/dst tx.","_message":"The composed message payload in bytes. NOT necessarily the same payload passed via lzReceive."}}},"version":1},"userdoc":{"kind":"user","methods":{"lzCompose(address,bytes32,bytes,address,bytes)":{"notice":"Composes a LayerZero message from an OApp."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol":"IOAppComposer"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol":{"keccak256":"0xe5014c411acb2b59dd74ae74a1bab02cf32d94a41a548a5ab553d64aeeb55dae","urls":["bzz-raw://29dfb7bc121002fc7e7931c34eb17af0ae0f0127dcc3199511c83a58a917160d","dweb:/ipfs/QmPdq1wcRRBdUP169LHCLoLuPRunN9eR71TQN42FjGpowx"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"}},"version":1},"id":36} \ No newline at end of file diff --git a/packages/onft-evm/out/IOAppCore.sol/IOAppCore.json b/packages/onft-evm/out/IOAppCore.sol/IOAppCore.json deleted file mode 100644 index b877dda87..000000000 --- a/packages/onft-evm/out/IOAppCore.sol/IOAppCore.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"iEndpoint","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","peers(uint32)":"bb0b6a53","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"iEndpoint\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"endpoint()\":{\"returns\":{\"iEndpoint\":\"The LayerZero endpoint as an interface.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"peer\":\"The peer address (OApp instance) associated with the corresponding endpoint.\"}},\"setDelegate(address)\":{\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}}},\"title\":\"IOAppCore\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp Core.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":\"IOAppCore\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"iEndpoint","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"}],"devdoc":{"kind":"dev","methods":{"endpoint()":{"returns":{"iEndpoint":"The LayerZero endpoint as an interface."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"peer":"The peer address (OApp instance) associated with the corresponding endpoint."}},"setDelegate(address)":{"params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp Core."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":"IOAppCore"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":37} \ No newline at end of file diff --git a/packages/onft-evm/out/IOAppMsgInspector.sol/IOAppMsgInspector.json b/packages/onft-evm/out/IOAppMsgInspector.sol/IOAppMsgInspector.json deleted file mode 100644 index 9bd3d22c1..000000000 --- a/packages/onft-evm/out/IOAppMsgInspector.sol/IOAppMsgInspector.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"inspect","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"error","name":"InspectionFailed","inputs":[{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"inspect(bytes,bytes)":"043a78eb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InspectionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"inspect\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the OApp Message Inspector, allowing examination of message and options contents.\",\"kind\":\"dev\",\"methods\":{\"inspect(bytes,bytes)\":{\"details\":\"Optionally done as a revert, OR use the boolean provided to handle the failure.\",\"params\":{\"_message\":\"The message payload to be inspected.\",\"_options\":\"Additional options or parameters for inspection.\"},\"returns\":{\"valid\":\"A boolean indicating whether the inspection passed (true) or failed (false).\"}}},\"title\":\"IOAppMsgInspector\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"inspect(bytes,bytes)\":{\"notice\":\"Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":\"IOAppMsgInspector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InspectionFailed"},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"view","type":"function","name":"inspect","outputs":[{"internalType":"bool","name":"valid","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"inspect(bytes,bytes)":{"details":"Optionally done as a revert, OR use the boolean provided to handle the failure.","params":{"_message":"The message payload to be inspected.","_options":"Additional options or parameters for inspection."},"returns":{"valid":"A boolean indicating whether the inspection passed (true) or failed (false)."}}},"version":1},"userdoc":{"kind":"user","methods":{"inspect(bytes,bytes)":{"notice":"Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":"IOAppMsgInspector"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"}},"version":1},"id":38} \ No newline at end of file diff --git a/packages/onft-evm/out/IOAppOptionsType3.sol/IOAppOptionsType3.json b/packages/onft-evm/out/IOAppOptionsType3.sol/IOAppOptionsType3.json deleted file mode 100644 index a6740682f..000000000 --- a/packages/onft-evm/out/IOAppOptionsType3.sol/IOAppOptionsType3.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"options","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"combineOptions(uint32,uint16,bytes)":"bc70b354","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the OApp with Type 3 Options, allowing the setting and combining of enforced options.\",\"kind\":\"dev\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OApp message type.\"},\"returns\":{\"options\":\"The combination of caller specified options AND enforced options.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}}},\"title\":\"IOAppOptionsType3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"notice\":\"Sets enforced options for specific endpoint and message type combinations.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":\"IOAppOptionsType3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"options","type":"bytes"}]},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"}],"devdoc":{"kind":"dev","methods":{"combineOptions(uint32,uint16,bytes)":{"params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OApp message type."},"returns":{"options":"The combination of caller specified options AND enforced options."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}}},"version":1},"userdoc":{"kind":"user","methods":{"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"setEnforcedOptions((uint32,uint16,bytes)[])":{"notice":"Sets enforced options for specific endpoint and message type combinations."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":"IOAppOptionsType3"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"}},"version":1},"id":39} \ No newline at end of file diff --git a/packages/onft-evm/out/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json b/packages/onft-evm/out/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json deleted file mode 100644 index f9c0da97f..000000000 --- a/packages/onft-evm/out/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isPeer(uint32,bytes32)":"5a0dfe4d","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","oApp()":"52ae2879","preCrime()":"b731ea0a","setPreCrime(address)":"d4243885"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the preCrime simulation functionality in an OApp.\",\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"isPeer(uint32,bytes32)\":{\"details\":\"checks if the specified peer is considered 'trusted' by the OApp.\",\"params\":{\"_eid\":\"The endpoint Id to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Mocks receiving a packet, then reverts with a series of data to infer the state/result.\",\"params\":{\"_packets\":\"An array of LayerZero InboundPacket objects representing received packets.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"preCrime()\":{\"details\":\"Retrieves the address of the preCrime contract implementation.\",\"returns\":{\"_0\":\"The address of the preCrime contract.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}}},\"title\":\"IOAppPreCrimeSimulator Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":\"IOAppPreCrimeSimulator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"}],"devdoc":{"kind":"dev","methods":{"isPeer(uint32,bytes32)":{"details":"checks if the specified peer is considered 'trusted' by the OApp.","params":{"_eid":"The endpoint Id to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Mocks receiving a packet, then reverts with a series of data to infer the state/result.","params":{"_packets":"An array of LayerZero InboundPacket objects representing received packets."}},"oApp()":{"details":"Retrieves the address of the OApp contract.","returns":{"_0":"The address of the OApp contract."}},"preCrime()":{"details":"Retrieves the address of the preCrime contract implementation.","returns":{"_0":"The address of the preCrime contract."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":"IOAppPreCrimeSimulator"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":44} \ No newline at end of file diff --git a/packages/onft-evm/out/IOAppReceiver.sol/IOAppReceiver.json b/packages/onft-evm/out/IOAppReceiver.sol/IOAppReceiver.json deleted file mode 100644 index ef8db8da2..000000000 --- a/packages/onft-evm/out/IOAppReceiver.sol/IOAppReceiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowInitializePath","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"isSender","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSender\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_message\":\"The lzReceive payload.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\",\"_sender\":\"The sender address.\"},\"returns\":{\"isSender\":\"Is a valid sender.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":\"IOAppReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"isSender","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"Applications can optionally choose to implement a separate composeMsg sender that is NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_message":"The lzReceive payload.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.","_sender":"The sender address."},"returns":{"isSender":"Is a valid sender."}}},"version":1},"userdoc":{"kind":"user","methods":{"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":"IOAppReceiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"}},"version":1},"id":40} \ No newline at end of file diff --git a/packages/onft-evm/out/IONFT1155.sol/IONFT1155.json b/packages/onft-evm/out/IONFT1155.sol/IONFT1155.json deleted file mode 100644 index 5c2d3475b..000000000 --- a/packages/onft-evm/out/IONFT1155.sol/IONFT1155.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMessage","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMessage","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"error","name":"UnapprovedSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onftVersion()":"a72f5dd8","quoteSend((uint32,bytes32,uint256[],uint256[],bytes,bytes,bytes),bool)":"d58c3aa8","send((uint32,bytes32,uint256[],uint256[],bytes,bytes,bytes),(uint256,uint256),address)":"2250032b","token()":"fc0c546a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnapprovedSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onftVersion()\":{\"details\":\"interfaceId: This specific interface ID is 'a72f5dd8'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID.\",\"version\":\"The version.\"}},\"token()\":{\"returns\":{\"_0\":\"token The address of the ERC721 token implementation.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the ONFT.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onft1155/interfaces/IONFT1155.sol\":\"IONFT1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/onft1155/interfaces/IONFT1155.sol\":{\"keccak256\":\"0xffd1af688b9bfc983dd5832e3b9313e97c840651a1035cfd49de3733f70345e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81a5c37318692f7413ae2c7da568494e6b1431dc7fe1b93c287ce777ac489fe0\",\"dweb:/ipfs/Qmf5iqY84xyooJezLkmtedrEEjME4kF3jC4KLURmag4Gse\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"UnapprovedSender"},{"inputs":[],"stateMutability":"view","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMessage","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMessage","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"onftVersion()":{"details":"interfaceId: This specific interface ID is 'a72f5dd8'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID.","version":"The version."}},"token()":{"returns":{"_0":"token The address of the ERC721 token implementation."}}},"version":1},"userdoc":{"kind":"user","methods":{"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"token()":{"notice":"Retrieves the address of the token associated with the ONFT."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onft1155/interfaces/IONFT1155.sol":"IONFT1155"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onft1155/interfaces/IONFT1155.sol":{"keccak256":"0xffd1af688b9bfc983dd5832e3b9313e97c840651a1035cfd49de3733f70345e9","urls":["bzz-raw://81a5c37318692f7413ae2c7da568494e6b1431dc7fe1b93c287ce777ac489fe0","dweb:/ipfs/Qmf5iqY84xyooJezLkmtedrEEjME4kF3jC4KLURmag4Gse"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"keccak256":"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce","urls":["bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182","dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/packages/onft-evm/out/IONFT721.sol/IONFT721.json b/packages/onft-evm/out/IONFT721.sol/IONFT721.json deleted file mode 100644 index d0c1c763a..000000000 --- a/packages/onft-evm/out/IONFT721.sol/IONFT721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approvalRequired()":"9f68b964","onftVersion()":"a72f5dd8","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","token()":"fc0c546a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the ONFT721 token.Does not inherit ERC721 to accommodate usage by OFT721Adapter.\",\"kind\":\"dev\",\"methods\":{\"approvalRequired()\":{\"details\":\"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"onftVersion()\":{\"details\":\"interfaceId: This specific interface ID is '0x94642228'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID.\",\"version\":\"The version.\"}},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"_0\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"_0\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"token()\":{\"returns\":{\"_0\":\"token The address of the ERC721 token implementation.\"}}},\"title\":\"IONFT\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approvalRequired()\":{\"notice\":\"Indicates whether the OFT contract requires approval of the 'token()' to send.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the ONFT.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onft721/interfaces/IONFT721.sol\":\"IONFT721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"approvalRequired()":{"details":"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"onftVersion()":{"details":"interfaceId: This specific interface ID is '0x94642228'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID.","version":"The version."}},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"_0":"fee The calculated LayerZero messaging fee from the send() operation."}},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"_0":"receipt The LayerZero messaging receipt from the send() operation."}},"token()":{"returns":{"_0":"token The address of the ERC721 token implementation."}}},"version":1},"userdoc":{"kind":"user","methods":{"approvalRequired()":{"notice":"Indicates whether the OFT contract requires approval of the 'token()' to send."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"token()":{"notice":"Retrieves the address of the token associated with the ONFT."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onft721/interfaces/IONFT721.sol":"IONFT721"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":9} \ No newline at end of file diff --git a/packages/onft-evm/out/IPreCrime.sol/IPreCrime.json b/packages/onft-evm/out/IPreCrime.sol/IPreCrime.json deleted file mode 100644 index c04ee2756..000000000 --- a/packages/onft-evm/out/IPreCrime.sol/IPreCrime.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"buildSimulationResult","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_packets","type":"bytes[]","internalType":"bytes[]"},{"name":"_packetMsgValues","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"preCrime","inputs":[{"name":"_packets","type":"bytes[]","internalType":"bytes[]"},{"name":"_packetMsgValues","type":"uint256[]","internalType":"uint256[]"},{"name":"_simulations","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"simulate","inputs":[{"name":"_packets","type":"bytes[]","internalType":"bytes[]"},{"name":"_packetMsgValues","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"error","name":"CrimeFound","inputs":[{"name":"crime","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidSimulationResult","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"reason","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"OnlyOffChain","inputs":[]},{"type":"error","name":"PacketOversize","inputs":[{"name":"max","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PacketUnsorted","inputs":[]},{"type":"error","name":"SimulationFailed","inputs":[{"name":"reason","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"SimulationResultNotFound","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"buildSimulationResult()":"8e9e7099","getConfig(bytes[],uint256[])":"f0cd3836","preCrime(bytes[],uint256[],bytes[])":"10f9cf3a","simulate(bytes[],uint256[])":"50dfa937","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"crime\",\"type\":\"bytes\"}],\"name\":\"CrimeFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"InvalidSimulationResult\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyOffChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"PacketOversize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PacketUnsorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"SimulationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"SimulationResultNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"buildSimulationResult\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_packets\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_packetMsgValues\",\"type\":\"uint256[]\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_packets\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_packetMsgValues\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_simulations\",\"type\":\"bytes[]\"}],\"name\":\"preCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_packets\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_packetMsgValues\",\"type\":\"uint256[]\"}],\"name\":\"simulate\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":\"IPreCrime\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"crime","type":"bytes"}],"type":"error","name":"CrimeFound"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes","name":"reason","type":"bytes"}],"type":"error","name":"InvalidSimulationResult"},{"inputs":[],"type":"error","name":"OnlyOffChain"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"PacketOversize"},{"inputs":[],"type":"error","name":"PacketUnsorted"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"type":"error","name":"SimulationFailed"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"SimulationResultNotFound"},{"inputs":[],"stateMutability":"view","type":"function","name":"buildSimulationResult","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes[]","name":"_packets","type":"bytes[]"},{"internalType":"uint256[]","name":"_packetMsgValues","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes[]","name":"_packets","type":"bytes[]"},{"internalType":"uint256[]","name":"_packetMsgValues","type":"uint256[]"},{"internalType":"bytes[]","name":"_simulations","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"preCrime"},{"inputs":[{"internalType":"bytes[]","name":"_packets","type":"bytes[]"},{"internalType":"uint256[]","name":"_packetMsgValues","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"simulate","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":"IPreCrime"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"}},"version":1},"id":45} \ No newline at end of file diff --git a/packages/onft-evm/out/IReceiveUlnE2.sol/IReceiveUlnE2.json b/packages/onft-evm/out/IReceiveUlnE2.sol/IReceiveUlnE2.json deleted file mode 100644 index 36b2c8d5f..000000000 --- a/packages/onft-evm/out/IReceiveUlnE2.sol/IReceiveUlnE2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"commitVerification","inputs":[{"name":"_packetHeader","type":"bytes","internalType":"bytes"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"_packetHeader","type":"bytes","internalType":"bytes"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"},{"name":"_confirmations","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"commitVerification(bytes,bytes32)":"0894edf1","verify(bytes,bytes32,uint64)":"0223536e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"commitVerification\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_confirmations\",\"type\":\"uint64\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"should be implemented by the ReceiveUln302 contract and future ReceiveUln contracts on EndpointV2\",\"kind\":\"dev\",\"methods\":{\"verify(bytes,bytes32,uint64)\":{\"details\":\"this function signature 0x0223536e\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"commitVerification(bytes,bytes32)\":{\"notice\":\"verify the payload at endpoint, will check if all DVNs verified\"},\"verify(bytes,bytes32,uint64)\":{\"notice\":\"for each dvn to verify the payload\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol\":\"IReceiveUlnE2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol\":{\"keccak256\":\"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc\",\"dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_packetHeader","type":"bytes"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"commitVerification"},{"inputs":[{"internalType":"bytes","name":"_packetHeader","type":"bytes"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"},{"internalType":"uint64","name":"_confirmations","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"verify"}],"devdoc":{"kind":"dev","methods":{"verify(bytes,bytes32,uint64)":{"details":"this function signature 0x0223536e"}},"version":1},"userdoc":{"kind":"user","methods":{"commitVerification(bytes,bytes32)":{"notice":"verify the payload at endpoint, will check if all DVNs verified"},"verify(bytes,bytes32,uint64)":{"notice":"for each dvn to verify the payload"}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol":"IReceiveUlnE2"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol":{"keccak256":"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91","urls":["bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc","dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7"],"license":"MIT"}},"version":1},"id":28} \ No newline at end of file diff --git a/packages/onft-evm/out/ISendLib.sol/ISendLib.json b/packages/onft-evm/out/ISendLib.sol/ISendLib.json deleted file mode 100644 index 118d08f9b..000000000 --- a/packages/onft-evm/out/ISendLib.sol/ISendLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getConfig","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_oapp","type":"address","internalType":"address"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"messageLibType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum MessageLibType"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_packet","type":"tuple","internalType":"struct Packet","components":[{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"send","inputs":[{"name":"_packet","type":"tuple","internalType":"struct Packet","components":[{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"encodedPacket","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_config","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTreasury","inputs":[{"name":"_treasury","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"endpointVersion","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawLzTokenFee","inputs":[{"name":"_lzToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getConfig(uint32,address,uint32)":"9c33abf7","isSupportedEid(uint32)":"6750cd4c","messageLibType()":"1881d94d","quote((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"d80e9bd9","send((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"4389e58f","setConfig(address,(uint32,uint32,bytes)[])":"20efd722","setTreasury(address)":"f0f44260","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","withdrawFee(address,uint256)":"fd9be522","withdrawLzTokenFee(address,address,uint256)":"200175f7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"_packet\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"_packet\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"encodedPacket\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_config\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawLzTokenFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":\"ISendLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct Packet","name":"_packet","type":"tuple","components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}]},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quote","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[{"internalType":"struct Packet","name":"_packet","type":"tuple","components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}]},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"bytes","name":"encodedPacket","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_config","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTreasury"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"},{"inputs":[{"internalType":"address","name":"_lzToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawLzTokenFee"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":"ISendLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":59} \ No newline at end of file diff --git a/packages/onft-evm/out/IUltraLightNode301.sol/IUltraLightNode301.json b/packages/onft-evm/out/IUltraLightNode301.sol/IUltraLightNode301.json deleted file mode 100644 index 77e120382..000000000 --- a/packages/onft-evm/out/IUltraLightNode301.sol/IUltraLightNode301.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"commitVerification","inputs":[{"name":"_packet","type":"bytes","internalType":"bytes"},{"name":"_gasLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"commitVerification(bytes,uint256)":"e65106f8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packet\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"}],\"name\":\"commitVerification\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol\":\"IUltraLightNode301\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol\":{\"keccak256\":\"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691\",\"dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_packet","type":"bytes"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"commitVerification"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol":"IUltraLightNode301"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol":{"keccak256":"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f","urls":["bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691","dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed"],"license":"MIT"}},"version":1},"id":31} \ No newline at end of file diff --git a/packages/onft-evm/out/IWorker.sol/IWorker.json b/packages/onft-evm/out/IWorker.sol/IWorker.json deleted file mode 100644 index 64edcadd6..000000000 --- a/packages/onft-evm/out/IWorker.sol/IWorker.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"defaultMultiplierBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"getSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint8[]","internalType":"uint8[]"}],"stateMutability":"view"},{"type":"function","name":"priceFeed","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setDefaultMultiplierBps","inputs":[{"name":"_multiplierBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPriceFeed","inputs":[{"name":"_priceFeed","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_optionTypes","type":"uint8[]","internalType":"uint8[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_lib","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetDefaultMultiplierBps","inputs":[{"name":"multiplierBps","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"SetPriceFeed","inputs":[{"name":"priceFeed","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetSupportedOptionTypes","inputs":[{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"optionTypes","type":"uint8[]","indexed":false,"internalType":"uint8[]"}],"anonymous":false},{"type":"event","name":"SetWorkerLib","inputs":[{"name":"workerLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"lib","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"Worker_NotAllowed","inputs":[]},{"type":"error","name":"Worker_OnlyMessageLib","inputs":[]},{"type":"error","name":"Worker_RoleRenouncingDisabled","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"defaultMultiplierBps()":"00bf2e80","getSupportedOptionTypes(uint32)":"26e67a37","priceFeed()":"741bef1a","setDefaultMultiplierBps(uint16)":"c358de0a","setPriceFeed(address)":"724e78da","setSupportedOptionTypes(uint32,uint8[])":"cd88b903","withdrawFee(address,address,uint256)":"1095b6d7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Worker_NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_OnlyMessageLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_RoleRenouncingDisabled\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"}],\"name\":\"SetDefaultMultiplierBps\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"name\":\"SetPriceFeed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint8[]\",\"name\":\"optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"SetSupportedOptionTypes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"workerLib\",\"type\":\"address\"}],\"name\":\"SetWorkerLib\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"defaultMultiplierBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSupportedOptionTypes\",\"outputs\":[{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceFeed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_multiplierBps\",\"type\":\"uint16\"}],\"name\":\"setDefaultMultiplierBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_priceFeed\",\"type\":\"address\"}],\"name\":\"setPriceFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint8[]\",\"name\":\"_optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"setSupportedOptionTypes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":\"IWorker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Worker_NotAllowed"},{"inputs":[],"type":"error","name":"Worker_OnlyMessageLib"},{"inputs":[],"type":"error","name":"Worker_RoleRenouncingDisabled"},{"inputs":[{"internalType":"uint16","name":"multiplierBps","type":"uint16","indexed":false}],"type":"event","name":"SetDefaultMultiplierBps","anonymous":false},{"inputs":[{"internalType":"address","name":"priceFeed","type":"address","indexed":false}],"type":"event","name":"SetPriceFeed","anonymous":false},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"uint8[]","name":"optionTypes","type":"uint8[]","indexed":false}],"type":"event","name":"SetSupportedOptionTypes","anonymous":false},{"inputs":[{"internalType":"address","name":"workerLib","type":"address","indexed":false}],"type":"event","name":"SetWorkerLib","anonymous":false},{"inputs":[{"internalType":"address","name":"lib","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultMultiplierBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSupportedOptionTypes","outputs":[{"internalType":"uint8[]","name":"","type":"uint8[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"priceFeed","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"_multiplierBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultMultiplierBps"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPriceFeed"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint8[]","name":"_optionTypes","type":"uint8[]"}],"stateMutability":"nonpayable","type":"function","name":"setSupportedOptionTypes"},{"inputs":[{"internalType":"address","name":"_lib","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":"IWorker"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"}},"version":1},"id":20} \ No newline at end of file diff --git a/packages/onft-evm/out/InspectorMock.sol/InspectorMock.json b/packages/onft-evm/out/InspectorMock.sol/InspectorMock.json deleted file mode 100644 index 3557297c5..000000000 --- a/packages/onft-evm/out/InspectorMock.sol/InspectorMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"inspect","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"error","name":"InspectionFailed","inputs":[{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506101c9806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063043a78eb14610030575b600080fd5b61004361003e3660046100cc565b610057565b604051901515815260200160405180910390f35b600084848484604051637b43b43960e01b815260040161007a9493929190610161565b60405180910390fd5b60008083601f84011261009557600080fd5b50813567ffffffffffffffff8111156100ad57600080fd5b6020830191508360208285010111156100c557600080fd5b9250929050565b600080600080604085870312156100e257600080fd5b843567ffffffffffffffff808211156100fa57600080fd5b61010688838901610083565b9096509450602087013591508082111561011f57600080fd5b5061012c87828801610083565b95989497509550505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000610175604083018688610138565b8281036020840152610188818587610138565b97965050505050505056fea2646970667358221220ea9bbad397a0be403cdd619a7d40c7c06497bc53685000434d5009331c3f240064736f6c63430008160033","sourceMap":"181:208:136:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063043a78eb14610030575b600080fd5b61004361003e3660046100cc565b610057565b604051901515815260200160405180910390f35b600084848484604051637b43b43960e01b815260040161007a9493929190610161565b60405180910390fd5b60008083601f84011261009557600080fd5b50813567ffffffffffffffff8111156100ad57600080fd5b6020830191508360208285010111156100c557600080fd5b9250929050565b600080600080604085870312156100e257600080fd5b843567ffffffffffffffff808211156100fa57600080fd5b61010688838901610083565b9096509450602087013591508082111561011f57600080fd5b5061012c87828801610083565b95989497509550505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000610175604083018688610138565b8281036020840152610188818587610138565b97965050505050505056fea2646970667358221220ea9bbad397a0be403cdd619a7d40c7c06497bc53685000434d5009331c3f240064736f6c63430008160033","sourceMap":"181:208:136:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;231:156;;;;;;:::i;:::-;;:::i;:::-;;;1253:14:145;;1246:22;1228:41;;1216:2;1201:18;231:156:136;;;;;;;;321:4;361:8;;371;;344:36;;-1:-1:-1;;;344:36:136;;;;;;;;;;;:::i;:::-;;;;;;;;14:347:145;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:145;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:717::-;456:6;464;472;480;533:2;521:9;512:7;508:23;504:32;501:52;;;549:1;546;539:12;501:52;589:9;576:23;618:18;659:2;651:6;648:14;645:34;;;675:1;672;665:12;645:34;714:58;764:7;755:6;744:9;740:22;714:58;:::i;:::-;791:8;;-1:-1:-1;688:84:145;-1:-1:-1;879:2:145;864:18;;851:32;;-1:-1:-1;895:16:145;;;892:36;;;924:1;921;914:12;892:36;;963:60;1015:7;1004:8;993:9;989:24;963:60;:::i;:::-;366:717;;;;-1:-1:-1;1042:8:145;-1:-1:-1;;;;366:717:145:o;1280:266::-;1368:6;1363:3;1356:19;1420:6;1413:5;1406:4;1401:3;1397:14;1384:43;-1:-1:-1;1472:1:145;1447:16;;;1465:4;1443:27;;;1436:38;;;;1528:2;1507:15;;;-1:-1:-1;;1503:29:145;1494:39;;;1490:50;;1280:266::o;1551:431::-;1764:2;1753:9;1746:21;1727:4;1790:61;1847:2;1836:9;1832:18;1824:6;1816;1790:61;:::i;:::-;1899:9;1891:6;1887:22;1882:2;1871:9;1867:18;1860:50;1927:49;1969:6;1961;1953;1927:49;:::i;:::-;1919:57;1551:431;-1:-1:-1;;;;;;;1551:431:145:o","linkReferences":{}},"methodIdentifiers":{"inspect(bytes,bytes)":"043a78eb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InspectionFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"inspect\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"inspect(bytes,bytes)\":{\"details\":\"Optionally done as a revert, OR use the boolean provided to handle the failure.\",\"params\":{\"_message\":\"The message payload to be inspected.\",\"_options\":\"Additional options or parameters for inspection.\"},\"returns\":{\"_0\":\"A boolean indicating whether the inspection passed (true) or failed (false).\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"inspect(bytes,bytes)\":{\"notice\":\"Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/InspectorMock.sol\":\"InspectorMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"test/mocks/InspectorMock.sol\":{\"keccak256\":\"0x0b771220aeeff10c578a32a862d9381d53c316494e15fbcc76878d4e489f6fb8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bac2387d0045724d470bf1750b582f36147fe05d26f2c16646493ff319a8d169\",\"dweb:/ipfs/QmSTZZZ6zz8PBtAtXKK8tmkd9s3DZW2kbc87eGzRNYZtoZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InspectionFailed"},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"pure","type":"function","name":"inspect","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"inspect(bytes,bytes)":{"details":"Optionally done as a revert, OR use the boolean provided to handle the failure.","params":{"_message":"The message payload to be inspected.","_options":"Additional options or parameters for inspection."},"returns":{"_0":"A boolean indicating whether the inspection passed (true) or failed (false)."}}},"version":1},"userdoc":{"kind":"user","methods":{"inspect(bytes,bytes)":{"notice":"Allows the inspector to examine LayerZero message contents and optionally throw a revert if invalid."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/InspectorMock.sol":"InspectorMock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"test/mocks/InspectorMock.sol":{"keccak256":"0x0b771220aeeff10c578a32a862d9381d53c316494e15fbcc76878d4e489f6fb8","urls":["bzz-raw://bac2387d0045724d470bf1750b582f36147fe05d26f2c16646493ff319a8d169","dweb:/ipfs/QmSTZZZ6zz8PBtAtXKK8tmkd9s3DZW2kbc87eGzRNYZtoZ"],"license":"UNLICENSED"}},"version":1},"id":136} \ No newline at end of file diff --git a/packages/onft-evm/out/Math.sol/Math.json b/packages/onft-evm/out/Math.sol/Math.json deleted file mode 100644 index 429176c2f..000000000 --- a/packages/onft-evm/out/Math.sol/Math.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"MathOverflowedMulDiv","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220846aa8455bdcac35915136e386865014dbf3925f327fdf2dcc1bf7688902876364736f6c63430008160033","sourceMap":"203:14914:128:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;203:14914:128;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220846aa8455bdcac35915136e386865014dbf3925f327fdf2dcc1bf7688902876364736f6c63430008160033","sourceMap":"203:14914:128:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/math/Math.sol":"Math"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":128} \ No newline at end of file diff --git a/packages/onft-evm/out/MessageLibBase.sol/MessageLibBase.json b/packages/onft-evm/out/MessageLibBase.sol/MessageLibBase.json deleted file mode 100644 index 86459dd56..000000000 --- a/packages/onft-evm/out/MessageLibBase.sol/MessageLibBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"LZ_MessageLib_OnlyEndpoint","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_MessageLib_OnlyEndpoint\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"simply a container of endpoint address and local eid\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":\"MessageLibBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_MessageLib_OnlyEndpoint"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":"MessageLibBase"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"}},"version":1},"id":11} \ No newline at end of file diff --git a/packages/onft-evm/out/MessageLibManager.sol/MessageLibManager.json b/packages/onft-evm/out/MessageLibManager.sol/MessageLibManager.json deleted file mode 100644 index a6608ca84..000000000 --- a/packages/onft-evm/out/MessageLibManager.sol/MessageLibManager.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"blockedLibrary","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibrary","inputs":[{"name":"srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"defaultReceiveLibraryTimeout","inputs":[{"name":"srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"defaultSendLibrary","inputs":[{"name":"dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"isDefault","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getRegisteredLibraries","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isDefaultSendLibrary","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isRegisteredLibrary","inputs":[{"name":"lib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidReceiveLibrary","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_actualReceiveLib","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"receiveLibraryTimeout","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"lib","type":"address","internalType":"address"},{"name":"expiry","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registerLibrary","inputs":[{"name":"_lib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_params","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultReceiveLibraryTimeout","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultSendLibrary","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"},{"name":"_gracePeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiveLibraryTimeout","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_lib","type":"address","internalType":"address"},{"name":"_expiry","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSendLibrary","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_newLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DefaultReceiveLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DefaultReceiveLibraryTimeoutSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"expiry","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DefaultSendLibrarySet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"LibraryRegistered","inputs":[{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ReceiveLibrarySet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ReceiveLibraryTimeoutSet","inputs":[{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"oldLib","type":"address","indexed":false,"internalType":"address"},{"name":"timeout","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SendLibrarySet","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"newLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"LZ_AlreadyRegistered","inputs":[]},{"type":"error","name":"LZ_DefaultReceiveLibUnavailable","inputs":[]},{"type":"error","name":"LZ_DefaultSendLibUnavailable","inputs":[]},{"type":"error","name":"LZ_InvalidExpiry","inputs":[]},{"type":"error","name":"LZ_OnlyNonDefaultLib","inputs":[]},{"type":"error","name":"LZ_OnlyReceiveLib","inputs":[]},{"type":"error","name":"LZ_OnlyRegisteredLib","inputs":[]},{"type":"error","name":"LZ_OnlyRegisteredOrDefaultLib","inputs":[]},{"type":"error","name":"LZ_OnlySendLib","inputs":[]},{"type":"error","name":"LZ_SameValue","inputs":[]},{"type":"error","name":"LZ_UnsupportedEid","inputs":[]},{"type":"error","name":"LZ_UnsupportedInterface","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"blockedLibrary()":"73318091","defaultReceiveLibrary(uint32)":"6f50a803","defaultReceiveLibraryTimeout(uint32)":"6e83f5bb","defaultSendLibrary(uint32)":"f64be4c7","getConfig(address,address,uint32,uint32)":"2b3197b9","getReceiveLibrary(address,uint32)":"402f8468","getRegisteredLibraries()":"9132e5c3","getSendLibrary(address,uint32)":"b96a277f","isDefaultSendLibrary(address,uint32)":"dc93c8a2","isRegisteredLibrary(address)":"dc706a62","isSupportedEid(uint32)":"6750cd4c","isValidReceiveLibrary(address,uint32,address)":"9d7f9775","owner()":"8da5cb5b","receiveLibraryTimeout(address,uint32)":"ef667aa1","registerLibrary(address)":"e8964e81","renounceOwnership()":"715018a6","setConfig(address,address,(uint32,uint32,bytes)[])":"6dbd9f90","setDefaultReceiveLibrary(uint32,address,uint256)":"a718531b","setDefaultReceiveLibraryTimeout(uint32,address,uint256)":"d4b4ec8f","setDefaultSendLibrary(uint32,address)":"aafea312","setReceiveLibrary(address,uint32,address,uint256)":"6a14d715","setReceiveLibraryTimeout(address,uint32,address,uint256)":"183c834f","setSendLibrary(address,uint32,address)":"9535ff30","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_DefaultReceiveLibUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_DefaultSendLibUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_InvalidExpiry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyNonDefaultLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyReceiveLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyRegisteredLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlyRegisteredOrDefaultLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_OnlySendLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_SameValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_UnsupportedEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_UnsupportedInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"DefaultReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"DefaultSendLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"LibraryRegistered\",\"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\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"ReceiveLibrarySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldLib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"ReceiveLibraryTimeoutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLib\",\"type\":\"address\"}],\"name\":\"SendLibrarySet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"blockedLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"}],\"name\":\"defaultReceiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"}],\"name\":\"defaultSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"}],\"name\":\"getReceiveLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isDefault\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisteredLibraries\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"getSendLibrary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"isDefaultSendLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"}],\"name\":\"isRegisteredLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_actualReceiveLib\",\"type\":\"address\"}],\"name\":\"isValidReceiveLibrary\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"}],\"name\":\"receiveLibraryTimeout\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"}],\"name\":\"registerLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setDefaultReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setDefaultSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_gracePeriod\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expiry\",\"type\":\"uint256\"}],\"name\":\"setReceiveLibraryTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_newLib\",\"type\":\"address\"}],\"name\":\"setSendLibrary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getConfig(address,address,uint32,uint32)\":{\"details\":\"a view function to query the current configuration of the OApp\"},\"getReceiveLibrary(address,uint32)\":{\"details\":\"the receiveLibrary can be lazily resolved that if not set it will point to the default configured by LayerZero\"},\"getSendLibrary(address,uint32)\":{\"details\":\"If the Oapp does not have a selected Send Library, this function will resolve to the default library configured by LayerZero\",\"params\":{\"_dstEid\":\"The destination endpoint id\",\"_sender\":\"The address of the Oapp that is sending the message\"},\"returns\":{\"lib\":\"address of the Send Library\"}},\"isSupportedEid(uint32)\":{\"details\":\"returns true only if both the default send/receive libraries are set\"},\"isValidReceiveLibrary(address,uint32,address)\":{\"details\":\"called when the endpoint checks if the msgLib attempting to verify the msg is the configured msgLib of the Oappthis check provides the ability for Oapp to lock in a trusted msgLibit will fist check if the msgLib is the currently configured one. then check if the msgLib is the one in grace period of msgLib versioning upgrade\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerLibrary(address)\":{\"details\":\"all libraries have to implement the erc165 interface to prevent wrong configurationsonly owner\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setConfig(address,address,(uint32,uint32,bytes)[])\":{\"details\":\"authenticated by the _oapp\"},\"setDefaultReceiveLibrary(uint32,address,uint256)\":{\"details\":\"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.only owner\"},\"setDefaultReceiveLibraryTimeout(uint32,address,uint256)\":{\"details\":\"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2) force remove the current configuration (3) change to a new configuration\",\"params\":{\"_expiry\":\"the block number when lib expires\"}},\"setDefaultSendLibrary(uint32,address)\":{\"details\":\"owner setting the defaultSendLibrarycan set to the blockedLibrary, which is a registered librarythe msgLib must enable the support before they can be registered to the endpoint as the defaultonly owner\"},\"setReceiveLibrary(address,uint32,address,uint256)\":{\"details\":\"Oapp setting the receiveLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.authenticated by the Oapp\",\"params\":{\"_gracePeriod\":\"the number of blocks from now until oldLib expires\"}},\"setReceiveLibraryTimeout(address,uint32,address,uint256)\":{\"details\":\"Oapp setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2) force remove the current configuration (3) change to a new configuration\",\"params\":{\"_expiry\":\"the block number when lib expires\"}},\"setSendLibrary(address,uint32,address)\":{\"details\":\"Oapp setting the sendLibrarymust be a registered library (including blockLibrary) with the eid support enabledauthenticated by the Oapp\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSendLibrary(address,uint32)\":{\"notice\":\"The Send Library is the Oapp specified library that will be used to send the message to the destination endpoint. If the Oapp does not specify a Send Library, the default Send Library will be used.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":\"MessageLibManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":{\"keccak256\":\"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241\",\"dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_AlreadyRegistered"},{"inputs":[],"type":"error","name":"LZ_DefaultReceiveLibUnavailable"},{"inputs":[],"type":"error","name":"LZ_DefaultSendLibUnavailable"},{"inputs":[],"type":"error","name":"LZ_InvalidExpiry"},{"inputs":[],"type":"error","name":"LZ_OnlyNonDefaultLib"},{"inputs":[],"type":"error","name":"LZ_OnlyReceiveLib"},{"inputs":[],"type":"error","name":"LZ_OnlyRegisteredLib"},{"inputs":[],"type":"error","name":"LZ_OnlyRegisteredOrDefaultLib"},{"inputs":[],"type":"error","name":"LZ_OnlySendLib"},{"inputs":[],"type":"error","name":"LZ_SameValue"},{"inputs":[],"type":"error","name":"LZ_UnsupportedEid"},{"inputs":[],"type":"error","name":"LZ_UnsupportedInterface"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"expiry","type":"uint256","indexed":false}],"type":"event","name":"DefaultReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"DefaultSendLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"LibraryRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"ReceiveLibrarySet","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"oldLib","type":"address","indexed":false},{"internalType":"uint256","name":"timeout","type":"uint256","indexed":false}],"type":"event","name":"ReceiveLibraryTimeoutSet","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"address","name":"newLib","type":"address","indexed":false}],"type":"event","name":"SendLibrarySet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"blockedLibrary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultReceiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"defaultSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getReceiveLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"bool","name":"isDefault","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegisteredLibraries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSendLibrary","outputs":[{"internalType":"address","name":"lib","type":"address"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isDefaultSendLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"lib","type":"address"}],"stateMutability":"view","type":"function","name":"isRegisteredLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"address","name":"_actualReceiveLib","type":"address"}],"stateMutability":"view","type":"function","name":"isValidReceiveLibrary","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint32","name":"srcEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"receiveLibraryTimeout","outputs":[{"internalType":"address","name":"lib","type":"address"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerLibrary"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibrary"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultReceiveLibraryTimeout"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultSendLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"},{"internalType":"uint256","name":"_gracePeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibrary"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_lib","type":"address"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setReceiveLibraryTimeout"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_newLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSendLibrary"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"getConfig(address,address,uint32,uint32)":{"details":"a view function to query the current configuration of the OApp"},"getReceiveLibrary(address,uint32)":{"details":"the receiveLibrary can be lazily resolved that if not set it will point to the default configured by LayerZero"},"getSendLibrary(address,uint32)":{"details":"If the Oapp does not have a selected Send Library, this function will resolve to the default library configured by LayerZero","params":{"_dstEid":"The destination endpoint id","_sender":"The address of the Oapp that is sending the message"},"returns":{"lib":"address of the Send Library"}},"isSupportedEid(uint32)":{"details":"returns true only if both the default send/receive libraries are set"},"isValidReceiveLibrary(address,uint32,address)":{"details":"called when the endpoint checks if the msgLib attempting to verify the msg is the configured msgLib of the Oappthis check provides the ability for Oapp to lock in a trusted msgLibit will fist check if the msgLib is the currently configured one. then check if the msgLib is the one in grace period of msgLib versioning upgrade"},"owner()":{"details":"Returns the address of the current owner."},"registerLibrary(address)":{"details":"all libraries have to implement the erc165 interface to prevent wrong configurationsonly owner"},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setConfig(address,address,(uint32,uint32,bytes)[])":{"details":"authenticated by the _oapp"},"setDefaultReceiveLibrary(uint32,address,uint256)":{"details":"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.only owner"},"setDefaultReceiveLibraryTimeout(uint32,address,uint256)":{"details":"owner setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2) force remove the current configuration (3) change to a new configuration","params":{"_expiry":"the block number when lib expires"}},"setDefaultSendLibrary(uint32,address)":{"details":"owner setting the defaultSendLibrarycan set to the blockedLibrary, which is a registered librarythe msgLib must enable the support before they can be registered to the endpoint as the defaultonly owner"},"setReceiveLibrary(address,uint32,address,uint256)":{"details":"Oapp setting the receiveLibrarymust be a registered library (including blockLibrary) with the eid support enabledin version migration, it can add a grace period to the old library. if the grace period is 0, it will delete the timeout configuration.authenticated by the Oapp","params":{"_gracePeriod":"the number of blocks from now until oldLib expires"}},"setReceiveLibraryTimeout(address,uint32,address,uint256)":{"details":"Oapp setting the defaultSendLibrarymust be a registered library (including blockLibrary) with the eid support enabledcan used to (1) extend the current configuration (2) force remove the current configuration (3) change to a new configuration","params":{"_expiry":"the block number when lib expires"}},"setSendLibrary(address,uint32,address)":{"details":"Oapp setting the sendLibrarymust be a registered library (including blockLibrary) with the eid support enabledauthenticated by the Oapp"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"getSendLibrary(address,uint32)":{"notice":"The Send Library is the Oapp specified library that will be used to send the message to the destination endpoint. If the Oapp does not specify a Send Library, the default Send Library will be used."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol":"MessageLibManager"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol":{"keccak256":"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a","urls":["bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241","dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":{"keccak256":"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9","urls":["bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f","dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":47} \ No newline at end of file diff --git a/packages/onft-evm/out/MessagingChannel.sol/MessagingChannel.json b/packages/onft-evm/out/MessagingChannel.sol/MessagingChannel.json deleted file mode 100644 index cdfbd083a..000000000 --- a/packages/onft-evm/out/MessagingChannel.sol/MessagingChannel.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"EMPTY_PAYLOAD_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NIL_PAYLOAD_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eid","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"inboundNonce","inputs":[{"name":"_receiver","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"inboundPayloadHash","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"inboundNonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"payloadHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"lazyInboundNonce","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"nextGuid","inputs":[{"name":"_sender","type":"address","internalType":"address"},{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nilify","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"outboundNonce","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"skip","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_sender","type":"bytes32","internalType":"bytes32"},{"name":"_nonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"InboundNonceSkipped","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"PacketBurnt","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PacketNilified","inputs":[{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"sender","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"nonce","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"payloadHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"LZ_InvalidNonce","inputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"LZ_PayloadHashNotFound","inputs":[{"name":"expected","type":"bytes32","internalType":"bytes32"},{"name":"actual","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"EMPTY_PAYLOAD_HASH()":"cb5026b9","NIL_PAYLOAD_HASH()":"2baf0be7","burn(address,uint32,bytes32,uint64,bytes32)":"40f80683","eid()":"416ecebf","inboundNonce(address,uint32,bytes32)":"a0dd43fc","inboundPayloadHash(address,uint32,bytes32,uint64)":"c9fc7bcd","lazyInboundNonce(address,uint32,bytes32)":"5b17bb70","nextGuid(address,uint32,bytes32)":"aafe5e07","nilify(address,uint32,bytes32,uint64,bytes32)":"2e80fbf3","outboundNonce(address,uint32,bytes32)":"9c6d7340","skip(address,uint32,bytes32,uint64)":"d70b8902"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"LZ_InvalidNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"LZ_PayloadHashNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InboundNonceSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketBurnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"name\":\"PacketNilified\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"EMPTY_PAYLOAD_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NIL_PAYLOAD_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"inboundNonce\",\"type\":\"uint64\"}],\"name\":\"inboundPayloadHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"lazyInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_receiver\",\"type\":\"bytes32\"}],\"name\":\"nextGuid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"nilify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"burn(address,uint32,bytes32,uint64,bytes32)\":{\"details\":\"Marks a nonce as unexecutable and un-verifiable. The nonce can never be re-verified or executed.Reverts if the provided _payloadHash does not match the currently verified payload hash.Only packets with nonces less than or equal to the lazy inbound nonce can be burned.Reverts if the nonce has already been executed.Authenticated by the caller\"},\"constructor\":{\"params\":{\"_eid\":\"is the universally unique id (UUID) of this deployed Endpoint\"}},\"inboundNonce(address,uint32,bytes32)\":{\"details\":\"returns the max index of the longest gapless sequence of verified msg nonces.the uninitialized value is 0. the first nonce is always 1it starts from the lazyInboundNonce (last checkpoint) and iteratively check if the next nonce has been verifiedthis function can OOG if too many backlogs, but it can be trivially fixed by just clearing some prior messagesNOTE: Oapp explicitly skipped nonces count as \\\"verified\\\" for these purposeseg. [1,2,3,4,6,7] => 4, [1,2,6,8,10] => 2, [1,3,4,5,6] => 1\"},\"nextGuid(address,uint32,bytes32)\":{\"details\":\"returns the GUID for the next message given the paththe Oapp might want to include the GUID into the message in some cases\"},\"nilify(address,uint32,bytes32,uint64,bytes32)\":{\"details\":\"Marks a packet as verified, but disallows execution until it is re-verified.Reverts if the provided _payloadHash does not match the currently verified payload hash.A non-verified nonce can be nilified by passing EMPTY_PAYLOAD_HASH for _payloadHash.Assumes the computational intractability of finding a payload that hashes to bytes32.max.Authenticated by the caller\"},\"skip(address,uint32,bytes32,uint64)\":{\"details\":\"the caller must provide _nonce to prevent skipping the unintended nonceit could happen in some race conditions, e.g. to skip nonce 3, but nonce 3 was consumed firstusage: skipping the next nonce to prevent message verification, e.g. skip a message when Precrime throws alertsif the Oapp wants to skip a verified message, it should call the clear() function insteadafter skipping, the lazyInboundNonce is set to the provided nonce, which makes the inboundNonce also the provided nonceie. allows the Oapp to increment the lazyInboundNonce without having had that corresponding msg be verified\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":\"MessagingChannel\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":{\"keccak256\":\"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c\",\"dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"type":"error","name":"LZ_InvalidNonce"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"actual","type":"bytes32"}],"type":"error","name":"LZ_PayloadHashNotFound"},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false}],"type":"event","name":"InboundNonceSkipped","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketBurnt","anonymous":false},{"inputs":[{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"sender","type":"bytes32","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint64","name":"nonce","type":"uint64","indexed":false},{"internalType":"bytes32","name":"payloadHash","type":"bytes32","indexed":false}],"type":"event","name":"PacketNilified","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"EMPTY_PAYLOAD_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NIL_PAYLOAD_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"eid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"inboundNonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"inboundPayloadHash","outputs":[{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"stateMutability":"view","type":"function","name":"lazyInboundNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextGuid","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"nilify"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"}],"stateMutability":"view","type":"function","name":"outboundNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes32","name":"_sender","type":"bytes32"},{"internalType":"uint64","name":"_nonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"skip"}],"devdoc":{"kind":"dev","methods":{"burn(address,uint32,bytes32,uint64,bytes32)":{"details":"Marks a nonce as unexecutable and un-verifiable. The nonce can never be re-verified or executed.Reverts if the provided _payloadHash does not match the currently verified payload hash.Only packets with nonces less than or equal to the lazy inbound nonce can be burned.Reverts if the nonce has already been executed.Authenticated by the caller"},"constructor":{"params":{"_eid":"is the universally unique id (UUID) of this deployed Endpoint"}},"inboundNonce(address,uint32,bytes32)":{"details":"returns the max index of the longest gapless sequence of verified msg nonces.the uninitialized value is 0. the first nonce is always 1it starts from the lazyInboundNonce (last checkpoint) and iteratively check if the next nonce has been verifiedthis function can OOG if too many backlogs, but it can be trivially fixed by just clearing some prior messagesNOTE: Oapp explicitly skipped nonces count as \"verified\" for these purposeseg. [1,2,3,4,6,7] => 4, [1,2,6,8,10] => 2, [1,3,4,5,6] => 1"},"nextGuid(address,uint32,bytes32)":{"details":"returns the GUID for the next message given the paththe Oapp might want to include the GUID into the message in some cases"},"nilify(address,uint32,bytes32,uint64,bytes32)":{"details":"Marks a packet as verified, but disallows execution until it is re-verified.Reverts if the provided _payloadHash does not match the currently verified payload hash.A non-verified nonce can be nilified by passing EMPTY_PAYLOAD_HASH for _payloadHash.Assumes the computational intractability of finding a payload that hashes to bytes32.max.Authenticated by the caller"},"skip(address,uint32,bytes32,uint64)":{"details":"the caller must provide _nonce to prevent skipping the unintended nonceit could happen in some race conditions, e.g. to skip nonce 3, but nonce 3 was consumed firstusage: skipping the next nonce to prevent message verification, e.g. skip a message when Precrime throws alertsif the Oapp wants to skip a verified message, it should call the clear() function insteadafter skipping, the lazyInboundNonce is set to the provided nonce, which makes the inboundNonce also the provided nonceie. allows the Oapp to increment the lazyInboundNonce without having had that corresponding msg be verified"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol":"MessagingChannel"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol":{"keccak256":"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73","urls":["bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c","dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":{"keccak256":"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5","urls":["bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b","dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj"],"license":"LZBL-1.2"}},"version":1},"id":48} \ No newline at end of file diff --git a/packages/onft-evm/out/MessagingComposer.sol/MessagingComposer.json b/packages/onft-evm/out/MessagingComposer.sol/MessagingComposer.json deleted file mode 100644 index 3acccfbcc..000000000 --- a/packages/onft-evm/out/MessagingComposer.sol/MessagingComposer.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"composeQueue","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"index","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"messageHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzComposeAlert","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_gas","type":"uint256","internalType":"uint256"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_extraData","type":"bytes","internalType":"bytes"},{"name":"_reason","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendCompose","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_index","type":"uint16","internalType":"uint16"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ComposeDelivered","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"ComposeSent","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LzComposeAlert","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"executor","type":"address","indexed":true,"internalType":"address"},{"name":"guid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"LZ_ComposeExists","inputs":[]},{"type":"error","name":"LZ_ComposeNotFound","inputs":[{"name":"expected","type":"bytes32","internalType":"bytes32"},{"name":"actual","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"composeQueue(address,address,bytes32,uint16)":"35d330b0","lzCompose(address,address,bytes32,uint16,bytes,bytes)":"91d20fa1","lzComposeAlert(address,address,bytes32,uint16,uint256,uint256,bytes,bytes,bytes)":"697fe6b6","sendCompose(address,bytes32,uint16,bytes)":"7cb59012"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_ComposeExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"LZ_ComposeNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"ComposeDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ComposeSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"LzComposeAlert\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"}],\"name\":\"composeQueue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"lzComposeAlert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint16\",\"name\":\"_index\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"lzCompose(address,address,bytes32,uint16,bytes,bytes)\":{\"details\":\"execute a composed messages from the sender to the composer (receiver)the execution provides the execution context (caller, extraData) to the receiver. the receiver can optionally assert the caller and validate the untrusted extraDatacan not re-entrant\",\"params\":{\"_extraData\":\"the extra data provided by the executor. this data is untrusted and should be validated.\",\"_from\":\"the address which sends the composed message. in most cases, it is the Oapp's address.\",\"_guid\":\"the message guid\",\"_message\":\"the message\",\"_to\":\"the address which receives the composed message\"}},\"lzComposeAlert(address,address,bytes32,uint16,uint256,uint256,bytes,bytes,bytes)\":{\"params\":{\"_extraData\":\"the extra data provided by the executor\",\"_from\":\"the address which sends the composed message\",\"_guid\":\"the message guid\",\"_message\":\"the message\",\"_reason\":\"the reason why the message is not received\",\"_to\":\"the address which receives the composed message\"}},\"sendCompose(address,bytes32,uint16,bytes)\":{\"details\":\"the Oapp sends the lzCompose message to the endpointthe composer MUST assert the sender because anyone can send compose msg with this functionwith the same GUID, the Oapp can send compose to multiple _composer at the same timeauthenticated by the msg.sender\",\"params\":{\"_guid\":\"the message guid\",\"_message\":\"the message\",\"_to\":\"the address which will receive the composed message\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":\"MessagingComposer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":{\"keccak256\":\"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a\",\"dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_ComposeExists"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"actual","type":"bytes32"}],"type":"error","name":"LZ_ComposeNotFound"},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false}],"type":"event","name":"ComposeDelivered","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false}],"type":"event","name":"ComposeSent","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"address","name":"executor","type":"address","indexed":true},{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":false},{"internalType":"uint16","name":"index","type":"uint16","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"LzComposeAlert","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint16","name":"index","type":"uint16"}],"stateMutability":"view","type":"function","name":"composeQueue","outputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"uint256","name":"_gas","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"bytes","name":"_extraData","type":"bytes"},{"internalType":"bytes","name":"_reason","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"lzComposeAlert"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"uint16","name":"_index","type":"uint16"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"sendCompose"}],"devdoc":{"kind":"dev","methods":{"lzCompose(address,address,bytes32,uint16,bytes,bytes)":{"details":"execute a composed messages from the sender to the composer (receiver)the execution provides the execution context (caller, extraData) to the receiver. the receiver can optionally assert the caller and validate the untrusted extraDatacan not re-entrant","params":{"_extraData":"the extra data provided by the executor. this data is untrusted and should be validated.","_from":"the address which sends the composed message. in most cases, it is the Oapp's address.","_guid":"the message guid","_message":"the message","_to":"the address which receives the composed message"}},"lzComposeAlert(address,address,bytes32,uint16,uint256,uint256,bytes,bytes,bytes)":{"params":{"_extraData":"the extra data provided by the executor","_from":"the address which sends the composed message","_guid":"the message guid","_message":"the message","_reason":"the reason why the message is not received","_to":"the address which receives the composed message"}},"sendCompose(address,bytes32,uint16,bytes)":{"details":"the Oapp sends the lzCompose message to the endpointthe composer MUST assert the sender because anyone can send compose msg with this functionwith the same GUID, the Oapp can send compose to multiple _composer at the same timeauthenticated by the msg.sender","params":{"_guid":"the message guid","_message":"the message","_to":"the address which will receive the composed message"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol":"MessagingComposer"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol":{"keccak256":"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1","urls":["bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a","dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"}},"version":1},"id":49} \ No newline at end of file diff --git a/packages/onft-evm/out/MessagingContext.sol/MessagingContext.json b/packages/onft-evm/out/MessagingContext.sol/MessagingContext.json deleted file mode 100644 index 35e3aa9c6..000000000 --- a/packages/onft-evm/out/MessagingContext.sol/MessagingContext.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getSendContext","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isSendingMessage","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getSendContext()":"14f651a9","isSendingMessage()":"79624ca9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getSendContext\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getSendContext()\":{\"details\":\"returns (eid, sender) if sending message, (0, 0) otherwise\"},\"isSendingMessage()\":{\"details\":\"returns true if sending message\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"this contract acts as a non-reentrancy guard and a source of messaging context the context includes the remote eid and the sender address it separates the send and receive context to allow messaging receipts (send back on receive())\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":\"MessagingContext\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":{\"keccak256\":\"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54\",\"dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"getSendContext","outputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSendingMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getSendContext()":{"details":"returns (eid, sender) if sending message, (0, 0) otherwise"},"isSendingMessage()":{"details":"returns true if sending message"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol":"MessagingContext"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol":{"keccak256":"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420","urls":["bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54","dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"}},"version":1},"id":50} \ No newline at end of file diff --git a/packages/onft-evm/out/MockERC20.sol/MockERC20.json b/packages/onft-evm/out/MockERC20.sol/MockERC20.json deleted file mode 100644 index 14f3c97ad..000000000 --- a/packages/onft-evm/out/MockERC20.sol/MockERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_decimals","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610e6a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101bb578063a9059cbb146101c3578063d505accf146101d6578063dd62ed3e146101e957600080fd5b80633644e5151461017357806370a082311461017b5780637ecebe001461019b57600080fd5b806306fdde03146100d4578063095ea7b3146100f25780631624f6c61461011557806318160ddd1461012a57806323b872dd14610141578063313ce56714610154575b600080fd5b6100dc610214565b6040516100e9919061096d565b60405180910390f35b6101056101003660046109d8565b6102a2565b60405190151581526020016100e9565b610128610123366004610ab6565b61030f565b005b61013360035481565b6040519081526020016100e9565b61010561014f366004610b2a565b6103ae565b6002546101619060ff1681565b60405160ff90911681526020016100e9565b6101336104c3565b610133610189366004610b66565b60046020526000908152604090205481565b6101336101a9366004610b66565b60086020526000908152604090205481565b6100dc6104e9565b6101056101d13660046109d8565b6104f6565b6101286101e4366004610b81565b61058d565b6101336101f7366004610beb565b600560209081526000928352604080842090915290825290205481565b6000805461022190610c1e565b80601f016020809104026020016040519081016040528092919081815260200182805461024d90610c1e565b801561029a5780601f1061026f5761010080835404028352916020019161029a565b820191906000526020600020905b81548152906001019060200180831161027d57829003601f168201915b505050505081565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fd9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561035d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b60006103698482610ca9565b5060016103768382610ca9565b506002805460ff191660ff831617905561038e6107eb565b600655610399610804565b60075550506009805460ff1916600117905550565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019811461040a576103e581846108a7565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b03851660009081526004602052604090205461042d90846108a7565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461045c908461090a565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104b09087815260200190565b60405180910390a3506001949350505050565b60006006546104d06107eb565b146104e2576104dd610804565b905090565b5060075490565b6001805461022190610c1e565b3360009081526004602052604081205461051090836108a7565b33600090815260046020526040808220929092556001600160a01b0385168152205461053c908361090a565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102fd9086815260200190565b428410156105dd5760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610354565b600060016105e96104c3565b6001600160a01b038a16600090815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061063783610d7f565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106b092919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561070e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107445750876001600160a01b0316816001600160a01b0316145b6107815760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610354565b6001600160a01b0381811660009081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b6000610969806107fd63ffffffff8216565b9250505090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108369190610d98565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108676107eb565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000818310156108f95760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610354565b6109038284610e0e565b9392505050565b6000806109178385610e21565b9050838110156109035760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610354565b4690565b60006020808352835180602085015260005b8181101561099b5785810183015185820160400152820161097f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109d357600080fd5b919050565b600080604083850312156109eb57600080fd5b6109f4836109bc565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610a2957600080fd5b813567ffffffffffffffff80821115610a4457610a44610a02565b604051601f8301601f19908116603f01168101908282118183101715610a6c57610a6c610a02565b81604052838152866020858801011115610a8557600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff811681146109d357600080fd5b600080600060608486031215610acb57600080fd5b833567ffffffffffffffff80821115610ae357600080fd5b610aef87838801610a18565b94506020860135915080821115610b0557600080fd5b50610b1286828701610a18565b925050610b2160408501610aa5565b90509250925092565b600080600060608486031215610b3f57600080fd5b610b48846109bc565b9250610b56602085016109bc565b9150604084013590509250925092565b600060208284031215610b7857600080fd5b610903826109bc565b600080600080600080600060e0888a031215610b9c57600080fd5b610ba5886109bc565b9650610bb3602089016109bc565b95506040880135945060608801359350610bcf60808901610aa5565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215610bfe57600080fd5b610c07836109bc565b9150610c15602084016109bc565b90509250929050565b600181811c90821680610c3257607f821691505b602082108103610c5257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610ca4576000816000526020600020601f850160051c81016020861015610c815750805b601f850160051c820191505b81811015610ca057828155600101610c8d565b5050505b505050565b815167ffffffffffffffff811115610cc357610cc3610a02565b610cd781610cd18454610c1e565b84610c58565b602080601f831160018114610d0c5760008415610cf45750858301515b600019600386901b1c1916600185901b178555610ca0565b600085815260208120601f198616915b82811015610d3b57888601518255948401946001909101908401610d1c565b5085821015610d595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201610d9157610d91610d69565b5060010190565b6000808354610da681610c1e565b60018281168015610dbe5760018114610dd357610e02565b60ff1984168752821515830287019450610e02565b8760005260208060002060005b85811015610df95781548a820152908401908201610de0565b50505082870194505b50929695505050505050565b8181038181111561030957610309610d69565b8082018082111561030957610309610d6956fea26469706673582212200266767f88be8042c77fe8fc66e56c20d57d6112ddd473912123ddfc51da45d664736f6c63430008160033","sourceMap":"319:7540:100:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101bb578063a9059cbb146101c3578063d505accf146101d6578063dd62ed3e146101e957600080fd5b80633644e5151461017357806370a082311461017b5780637ecebe001461019b57600080fd5b806306fdde03146100d4578063095ea7b3146100f25780631624f6c61461011557806318160ddd1461012a57806323b872dd14610141578063313ce56714610154575b600080fd5b6100dc610214565b6040516100e9919061096d565b60405180910390f35b6101056101003660046109d8565b6102a2565b60405190151581526020016100e9565b610128610123366004610ab6565b61030f565b005b61013360035481565b6040519081526020016100e9565b61010561014f366004610b2a565b6103ae565b6002546101619060ff1681565b60405160ff90911681526020016100e9565b6101336104c3565b610133610189366004610b66565b60046020526000908152604090205481565b6101336101a9366004610b66565b60086020526000908152604090205481565b6100dc6104e9565b6101056101d13660046109d8565b6104f6565b6101286101e4366004610b81565b61058d565b6101336101f7366004610beb565b600560209081526000928352604080842090915290825290205481565b6000805461022190610c1e565b80601f016020809104026020016040519081016040528092919081815260200182805461024d90610c1e565b801561029a5780601f1061026f5761010080835404028352916020019161029a565b820191906000526020600020905b81548152906001019060200180831161027d57829003601f168201915b505050505081565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fd9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561035d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b60006103698482610ca9565b5060016103768382610ca9565b506002805460ff191660ff831617905561038e6107eb565b600655610399610804565b60075550506009805460ff1916600117905550565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019811461040a576103e581846108a7565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b03851660009081526004602052604090205461042d90846108a7565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461045c908461090a565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104b09087815260200190565b60405180910390a3506001949350505050565b60006006546104d06107eb565b146104e2576104dd610804565b905090565b5060075490565b6001805461022190610c1e565b3360009081526004602052604081205461051090836108a7565b33600090815260046020526040808220929092556001600160a01b0385168152205461053c908361090a565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102fd9086815260200190565b428410156105dd5760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610354565b600060016105e96104c3565b6001600160a01b038a16600090815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061063783610d7f565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106b092919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561070e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107445750876001600160a01b0316816001600160a01b0316145b6107815760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610354565b6001600160a01b0381811660009081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b6000610969806107fd63ffffffff8216565b9250505090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108369190610d98565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108676107eb565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000818310156108f95760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610354565b6109038284610e0e565b9392505050565b6000806109178385610e21565b9050838110156109035760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610354565b4690565b60006020808352835180602085015260005b8181101561099b5785810183015185820160400152820161097f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109d357600080fd5b919050565b600080604083850312156109eb57600080fd5b6109f4836109bc565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610a2957600080fd5b813567ffffffffffffffff80821115610a4457610a44610a02565b604051601f8301601f19908116603f01168101908282118183101715610a6c57610a6c610a02565b81604052838152866020858801011115610a8557600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff811681146109d357600080fd5b600080600060608486031215610acb57600080fd5b833567ffffffffffffffff80821115610ae357600080fd5b610aef87838801610a18565b94506020860135915080821115610b0557600080fd5b50610b1286828701610a18565b925050610b2160408501610aa5565b90509250925092565b600080600060608486031215610b3f57600080fd5b610b48846109bc565b9250610b56602085016109bc565b9150604084013590509250925092565b600060208284031215610b7857600080fd5b610903826109bc565b600080600080600080600060e0888a031215610b9c57600080fd5b610ba5886109bc565b9650610bb3602089016109bc565b95506040880135945060608801359350610bcf60808901610aa5565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215610bfe57600080fd5b610c07836109bc565b9150610c15602084016109bc565b90509250929050565b600181811c90821680610c3257607f821691505b602082108103610c5257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610ca4576000816000526020600020601f850160051c81016020861015610c815750805b601f850160051c820191505b81811015610ca057828155600101610c8d565b5050505b505050565b815167ffffffffffffffff811115610cc357610cc3610a02565b610cd781610cd18454610c1e565b84610c58565b602080601f831160018114610d0c5760008415610cf45750858301515b600019600386901b1c1916600185901b178555610ca0565b600085815260208120601f198616915b82811015610d3b57888601518255948401946001909101908401610d1c565b5085821015610d595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201610d9157610d91610d69565b5060010190565b6000808354610da681610c1e565b60018281168015610dbe5760018114610dd357610e02565b60ff1984168752821515830287019450610e02565b8760005260208060002060005b85811015610df95781548a820152908401908201610de0565b50505082870194505b50929695505050505050565b8181038181111561030957610309610d69565b8082018082111561030957610309610d6956fea26469706673582212200266767f88be8042c77fe8fc66e56c20d57d6112ddd473912123ddfc51da45d664736f6c63430008160033","sourceMap":"319:7540:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;871:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2645:211;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:145;;1162:22;1144:41;;1132:2;1117:18;2645:211:100;1004:187:145;2095:362:100;;;;;;:::i;:::-;;:::i;:::-;;1134:26;;;;;;;;;2977:25:145;;;2965:2;2950:18;1134:26:100;2831:177:145;3143:457:100;;;;;;:::i;:::-;;:::i;923:21::-;;;;;;;;;;;;3518:4:145;3506:17;;;3488:36;;3476:2;3461:18;923:21:100;3346:184:145;4976:178:100;;;:::i;1167:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1561:41;;;;;;:::i;:::-;;;;;;;;;;;;;;896:20;;;:::i;2862:275::-;;;;;;:::i;:::-;;:::i;3789:1181::-;;;;;;:::i;:::-;;:::i;1218:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;871:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2645:211::-;2745:10;2719:4;2735:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2735:30:100;;;;;;;;;;:39;;;2790:37;2719:4;;2735:30;;2790:37;;;;2768:6;2977:25:145;;2965:2;2950:18;;2831:177;2790:37:100;;;;;;;;-1:-1:-1;2845:4:100;2645:211;;;;;:::o;2095:362::-;2202:11;;;;2201:12;2193:44;;;;-1:-1:-1;;;2193:44:100;;5371:2:145;2193:44:100;;;5353:21:145;5410:2;5390:18;;;5383:30;-1:-1:-1;;;5429:18:145;;;5422:49;5488:18;;2193:44:100;;;;;;;;;2248:4;:12;2255:5;2248:4;:12;:::i;:::-;-1:-1:-1;2270:6:100;:16;2279:7;2270:6;:16;:::i;:::-;-1:-1:-1;2296:8:100;:20;;-1:-1:-1;;2296:20:100;;;;;;;2346:14;:12;:14::i;:::-;2327:16;:33;2397:24;:22;:24::i;:::-;2370;:51;-1:-1:-1;;2432:11:100;:18;;-1:-1:-1;;2432:18:100;2446:4;2432:18;;;-1:-1:-1;2095:362:100:o;3143:457::-;-1:-1:-1;;;;;3265:15:100;;3231:4;3265:15;;;:9;:15;;;;;;;;3281:10;3265:27;;;;;;;;-1:-1:-1;;3343:22:100;;3339:79;;3397:21;3402:7;3411:6;3397:4;:21::i;:::-;-1:-1:-1;;;;;3367:15:100;;;;;;:9;:15;;;;;;;;3383:10;3367:27;;;;;;;:51;3339:79;-1:-1:-1;;;;;3452:15:100;;;;;;:9;:15;;;;;;3447:29;;3469:6;3447:4;:29::i;:::-;-1:-1:-1;;;;;3429:15:100;;;;;;;:9;:15;;;;;;:47;;;;3507:13;;;;;;;3502:27;;3522:6;3502:4;:27::i;:::-;-1:-1:-1;;;;;3486:13:100;;;;;;;:9;:13;;;;;;;:43;;;;3545:26;;;;;;;;;;3564:6;2977:25:145;;2965:2;2950:18;;2831:177;3545:26:100;;;;;;;;-1:-1:-1;3589:4:100;;3143:457;-1:-1:-1;;;;3143:457:100:o;4976:178::-;5033:7;5077:16;;5059:14;:12;:14::i;:::-;:34;:88;;5123:24;:22;:24::i;:::-;5052:95;;4976:178;:::o;5059:88::-;-1:-1:-1;5096:24:100;;;4976:178::o;896:20::-;;;;;;;:::i;2862:275::-;2987:10;2932:4;2977:21;;;:9;:21;;;;;;2972:35;;3000:6;2972:4;:35::i;:::-;2958:10;2948:21;;;;:9;:21;;;;;;:59;;;;-1:-1:-1;;;;;3038:13:100;;;;;;3033:27;;3053:6;3033:4;:27::i;:::-;-1:-1:-1;;;;;3017:13:100;;;;;;:9;:13;;;;;;;:43;;;;3076:32;;3085:10;;3076:32;;;;3101:6;2977:25:145;;2965:2;2950:18;;2831:177;3789:1181:100;3966:15;3954:8;:27;;3946:63;;;;-1:-1:-1;;;3946:63:100;;7914:2:145;3946:63:100;;;7896:21:145;7953:2;7933:18;;;7926:30;7992:25;7972:18;;;7965:53;8035:18;;3946:63:100;7712:347:145;3946:63:100;4020:24;4047:717;4167:18;:16;:18::i;:::-;-1:-1:-1;;;;;4576:13:100;;;;;;:6;:13;;;;;:15;;4282:157;;4469:5;;4504:7;;4541:5;;4576:15;;:13;:15;;;:::i;:::-;;;;-1:-1:-1;4242:413:100;;;;;;8623:25:145;;;;-1:-1:-1;;;;;8722:15:145;;;8702:18;;;8695:43;8774:15;;;;8754:18;;;8747:43;8806:18;;;8799:34;8849:19;;;8842:35;8893:19;;;8886:35;;;8595:19;;4242:413:100;;;;;;;;;;;;4207:470;;;;;;4097:598;;;;;;;;-1:-1:-1;;;9190:27:145;;9242:1;9233:11;;9226:27;;;;9278:2;9269:12;;9262:28;9315:2;9306:12;;8932:392;4097:598:100;;;;-1:-1:-1;;4097:598:100;;;;;;;;;4070:639;;4097:598;4070:639;;;;4047:717;;;;;;;;;9556:25:145;9629:4;9617:17;;9597:18;;;9590:45;9651:18;;;9644:34;;;9694:18;;;9687:34;;;9528:19;;4047:717:100;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4047:717:100;;-1:-1:-1;;4047:717:100;;;-1:-1:-1;;;;;;;4783:30:100;;;;;;:59;;;4837:5;-1:-1:-1;;;;;4817:25:100;:16;-1:-1:-1;;;;;4817:25:100;;4783:59;4775:86;;;;-1:-1:-1;;;4775:86:100;;9934:2:145;4775:86:100;;;9916:21:145;9973:2;9953:18;;;9946:30;-1:-1:-1;;;9992:18:145;;;9985:44;10046:18;;4775:86:100;9732:338:145;4775:86:100;-1:-1:-1;;;;;4872:27:100;;;;;;;:9;:27;;;;;;;;:36;;;;;;;;;;;;;:44;;;4932:31;2977:25:145;;;4872:36:100;;4932:31;;;;;2950:18:145;4932:31:100;;;;;;;3936:1034;3789:1181;;;;;;;:::o;7557:300::-;7603:15;7680:12;;7837:13;;;;:::i;:::-;7827:23;;7620:237;;7557:300;:::o;5160:403::-;5225:7;5302:95;5431:4;5415:22;;;;;;:::i;:::-;;;;;;;;5455:14;5487;:12;:14::i;:::-;5274:272;;;;;;11184:25:145;;;;11225:18;;11218:34;;;;11268:18;;;11261:34;11311:18;;;11304:34;5527:4:100;11354:19:145;;;11347:61;11156:19;;5274:272:100;;;;;;;;;;;;5251:305;;;;;;5244:312;;5160:403;:::o;6578:154::-;6637:7;6669:1;6664;:6;;6656:47;;;;-1:-1:-1;;;6656:47:100;;11621:2:145;6656:47:100;;;11603:21:145;11660:2;11640:18;;;11633:30;11699;11679:18;;;11672:58;11747:18;;6656:47:100;11419:352:145;6656:47:100;6720:5;6724:1;6720;:5;:::i;:::-;6713:12;6578:154;-1:-1:-1;;;6578:154:100:o;6399:173::-;6458:7;;6489:5;6493:1;6489;:5;:::i;:::-;6477:17;;6517:1;6512;:6;;6504:43;;;;-1:-1:-1;;;6504:43:100;;12241:2:145;6504:43:100;;;12223:21:145;12280:2;12260:18;;;12253:30;12319:26;12299:18;;;12292:54;12363:18;;6504:43:100;12039:348:145;7275:276:100;7458:9;;7275:276::o;14:548:145:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:145;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:145:o;1196:127::-;1257:10;1252:3;1248:20;1245:1;1238:31;1288:4;1285:1;1278:15;1312:4;1309:1;1302:15;1328:719;1371:5;1424:3;1417:4;1409:6;1405:17;1401:27;1391:55;;1442:1;1439;1432:12;1391:55;1478:6;1465:20;1504:18;1541:2;1537;1534:10;1531:36;;;1547:18;;:::i;:::-;1622:2;1616:9;1590:2;1676:13;;-1:-1:-1;;1672:22:145;;;1696:2;1668:31;1664:40;1652:53;;;1720:18;;;1740:22;;;1717:46;1714:72;;;1766:18;;:::i;:::-;1806:10;1802:2;1795:22;1841:2;1833:6;1826:18;1887:3;1880:4;1875:2;1867:6;1863:15;1859:26;1856:35;1853:55;;;1904:1;1901;1894:12;1853:55;1968:2;1961:4;1953:6;1949:17;1942:4;1934:6;1930:17;1917:54;2015:1;2008:4;2003:2;1995:6;1991:15;1987:26;1980:37;2035:6;2026:15;;;;;;1328:719;;;;:::o;2052:156::-;2118:20;;2178:4;2167:16;;2157:27;;2147:55;;2198:1;2195;2188:12;2213:613;2308:6;2316;2324;2377:2;2365:9;2356:7;2352:23;2348:32;2345:52;;;2393:1;2390;2383:12;2345:52;2433:9;2420:23;2462:18;2503:2;2495:6;2492:14;2489:34;;;2519:1;2516;2509:12;2489:34;2542:50;2584:7;2575:6;2564:9;2560:22;2542:50;:::i;:::-;2532:60;;2645:2;2634:9;2630:18;2617:32;2601:48;;2674:2;2664:8;2661:16;2658:36;;;2690:1;2687;2680:12;2658:36;;2713:52;2757:7;2746:8;2735:9;2731:24;2713:52;:::i;:::-;2703:62;;;2784:36;2816:2;2805:9;2801:18;2784:36;:::i;:::-;2774:46;;2213:613;;;;;:::o;3013:328::-;3090:6;3098;3106;3159:2;3147:9;3138:7;3134:23;3130:32;3127:52;;;3175:1;3172;3165:12;3127:52;3198:29;3217:9;3198:29;:::i;:::-;3188:39;;3246:38;3280:2;3269:9;3265:18;3246:38;:::i;:::-;3236:48;;3331:2;3320:9;3316:18;3303:32;3293:42;;3013:328;;;;;:::o;3717:186::-;3776:6;3829:2;3817:9;3808:7;3804:23;3800:32;3797:52;;;3845:1;3842;3835:12;3797:52;3868:29;3887:9;3868:29;:::i;3908:606::-;4019:6;4027;4035;4043;4051;4059;4067;4120:3;4108:9;4099:7;4095:23;4091:33;4088:53;;;4137:1;4134;4127:12;4088:53;4160:29;4179:9;4160:29;:::i;:::-;4150:39;;4208:38;4242:2;4231:9;4227:18;4208:38;:::i;:::-;4198:48;;4293:2;4282:9;4278:18;4265:32;4255:42;;4344:2;4333:9;4329:18;4316:32;4306:42;;4367:37;4399:3;4388:9;4384:19;4367:37;:::i;:::-;4357:47;;4451:3;4440:9;4436:19;4423:33;4413:43;;4503:3;4492:9;4488:19;4475:33;4465:43;;3908:606;;;;;;;;;;:::o;4519:260::-;4587:6;4595;4648:2;4636:9;4627:7;4623:23;4619:32;4616:52;;;4664:1;4661;4654:12;4616:52;4687:29;4706:9;4687:29;:::i;:::-;4677:39;;4735:38;4769:2;4758:9;4754:18;4735:38;:::i;:::-;4725:48;;4519:260;;;;;:::o;4784:380::-;4863:1;4859:12;;;;4906;;;4927:61;;4981:4;4973:6;4969:17;4959:27;;4927:61;5034:2;5026:6;5023:14;5003:18;5000:38;4997:161;;5080:10;5075:3;5071:20;5068:1;5061:31;5115:4;5112:1;5105:15;5143:4;5140:1;5133:15;4997:161;;4784:380;;;:::o;5643:543::-;5745:2;5740:3;5737:11;5734:446;;;5781:1;5805:5;5802:1;5795:16;5849:4;5846:1;5836:18;5919:2;5907:10;5903:19;5900:1;5896:27;5890:4;5886:38;5955:4;5943:10;5940:20;5937:47;;;-1:-1:-1;5978:4:145;5937:47;6033:2;6028:3;6024:12;6021:1;6017:20;6011:4;6007:31;5997:41;;6088:82;6106:2;6099:5;6096:13;6088:82;;;6151:17;;;6132:1;6121:13;6088:82;;;6092:3;;;5734:446;5643:543;;;:::o;6362:1345::-;6488:3;6482:10;6515:18;6507:6;6504:30;6501:56;;;6537:18;;:::i;:::-;6566:97;6656:6;6616:38;6648:4;6642:11;6616:38;:::i;:::-;6610:4;6566:97;:::i;:::-;6718:4;;6775:2;6764:14;;6792:1;6787:663;;;;7494:1;7511:6;7508:89;;;-1:-1:-1;7563:19:145;;;7557:26;7508:89;-1:-1:-1;;6319:1:145;6315:11;;;6311:24;6307:29;6297:40;6343:1;6339:11;;;6294:57;7610:81;;6757:944;;6787:663;5590:1;5583:14;;;5627:4;5614:18;;-1:-1:-1;;6823:20:145;;;6941:236;6955:7;6952:1;6949:14;6941:236;;;7044:19;;;7038:26;7023:42;;7136:27;;;;7104:1;7092:14;;;;6971:19;;6941:236;;;6945:3;7205:6;7196:7;7193:19;7190:201;;;7266:19;;;7260:26;-1:-1:-1;;7349:1:145;7345:14;;;7361:3;7341:24;7337:37;7333:42;7318:58;7303:74;;7190:201;-1:-1:-1;;;;;7437:1:145;7421:14;;;7417:22;7404:36;;-1:-1:-1;6362:1345:145:o;8064:127::-;8125:10;8120:3;8116:20;8113:1;8106:31;8156:4;8153:1;8146:15;8180:4;8177:1;8170:15;8196:135;8235:3;8256:17;;;8253:43;;8276:18;;:::i;:::-;-1:-1:-1;8323:1:145;8312:13;;8196:135::o;10075:845::-;10205:3;10234:1;10267:6;10261:13;10297:36;10323:9;10297:36;:::i;:::-;10352:1;10369:17;;;10395:133;;;;10542:1;10537:358;;;;10362:533;;10395:133;-1:-1:-1;;10428:24:145;;10416:37;;10501:14;;10494:22;10482:35;;10473:45;;;-1:-1:-1;10395:133:145;;10537:358;10568:6;10565:1;10558:17;10598:4;10643;10640:1;10630:18;10670:1;10684:165;10698:6;10695:1;10692:13;10684:165;;;10776:14;;10763:11;;;10756:35;10819:16;;;;10713:10;;10684:165;;;10688:3;;;10878:6;10873:3;10869:16;10862:23;;10362:533;-1:-1:-1;10911:3:145;;10075:845;-1:-1:-1;;;;;;10075:845:145:o;11776:128::-;11843:9;;;11864:11;;;11861:37;;;11878:18;;:::i;11909:125::-;11974:9;;;11995:10;;;11992:36;;;12008:18;;:::i","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol\",\"kind\":\"dev\",\"methods\":{\"initialize(string,string,uint8)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"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"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"initialize(string,string,uint8)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":"MockERC20"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"}},"version":1},"id":100} \ No newline at end of file diff --git a/packages/onft-evm/out/MockERC721.sol/IERC721TokenReceiver.json b/packages/onft-evm/out/MockERC721.sol/IERC721TokenReceiver.json deleted file mode 100644 index 6b15f3f42..000000000 --- a/packages/onft-evm/out/MockERC721.sol/IERC721TokenReceiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":\"IERC721TokenReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":"IERC721TokenReceiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"}},"version":1},"id":101} \ No newline at end of file diff --git a/packages/onft-evm/out/MockERC721.sol/MockERC721.json b/packages/onft-evm/out/MockERC721.sol/MockERC721.json deleted file mode 100644 index 9f8af918a..000000000 --- a/packages/onft-evm/out/MockERC721.sol/MockERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610ef3806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101f7578063b88d4fde1461020a578063c87b56dd1461021d578063e985e9c51461023157600080fd5b80636352211e146101bb57806370a08231146101ce57806395d89b41146101ef57600080fd5b8063095ea7b3116100c8578063095ea7b31461016d57806323b872dd1461018257806342842e0e146101955780634cd88b76146101a857600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd3660046109aa565b61025f565b60405190151581526020015b60405180910390f35b61011f6102b1565b60405161010e9190610a14565b61015561013a366004610a27565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161010e565b61018061017b366004610a57565b61033f565b005b610180610190366004610a81565b610426565b6101806101a3366004610a81565b61061f565b6101806101b6366004610b69565b61070e565b6101556101c9366004610a27565b610782565b6101e16101dc366004610bcd565b6107d9565b60405190815260200161010e565b61011f61083c565b610180610205366004610be8565b610849565b610180610218366004610c24565b6108b5565b61011f61022b366004610a27565b50606090565b61010261023f366004610ca0565b600560209081526000928352604080842090915290825290205460ff1681565b60006301ffc9a760e01b6001600160e01b03198316148061029057506380ac58cd60e01b6001600160e01b03198316145b806102ab5750635b5e139f60e01b6001600160e01b03198316145b92915050565b600080546102be90610cd3565b80601f01602080910402602001604051908101604052809291908181526020018280546102ea90610cd3565b80156103375780601f1061030c57610100808354040283529160200191610337565b820191906000526020600020905b81548152906001019060200180831161031a57829003601f168201915b505050505081565b6000818152600260205260409020546001600160a01b03163381148061038857506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6103ca5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600260205260409020546001600160a01b0384811691161461047c5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016103c1565b6001600160a01b0382166104c65760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103c1565b336001600160a01b038416148061050057506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b8061052157506000818152600460205260409020546001600160a01b031633145b61055e5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016103c1565b6001600160a01b038316600090815260036020526040812080549161058283610d23565b90915550506001600160a01b03821660009081526003602052604081208054916105ab83610d3a565b9091555050600081815260026020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61062a838383610426565b813b15806106ca5750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af115801561069a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106be9190610d53565b6001600160e01b031916145b6107095760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016103c1565b505050565b60065460ff16156107575760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064016103c1565b60006107638382610dc0565b5060016107708282610dc0565b50506006805460ff1916600117905550565b6000818152600260205260409020546001600160a01b0316806107d45760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016103c1565b919050565b60006001600160a01b0382166108205760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016103c1565b506001600160a01b031660009081526003602052604090205490565b600180546102be90610cd3565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6108c0848484610426565b823b158061094c5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a02906108fd903390899088908890600401610e80565b6020604051808303816000875af115801561091c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109409190610d53565b6001600160e01b031916145b61098b5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016103c1565b50505050565b6001600160e01b0319811681146109a757600080fd5b50565b6000602082840312156109bc57600080fd5b81356109c781610991565b9392505050565b6000815180845260005b818110156109f4576020818501810151868301820152016109d8565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006109c760208301846109ce565b600060208284031215610a3957600080fd5b5035919050565b80356001600160a01b03811681146107d457600080fd5b60008060408385031215610a6a57600080fd5b610a7383610a40565b946020939093013593505050565b600080600060608486031215610a9657600080fd5b610a9f84610a40565b9250610aad60208501610a40565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610aee57610aee610abd565b604051601f8501601f19908116603f01168101908282118183101715610b1657610b16610abd565b81604052809350858152868686011115610b2f57600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112610b5a57600080fd5b6109c783833560208501610ad3565b60008060408385031215610b7c57600080fd5b823567ffffffffffffffff80821115610b9457600080fd5b610ba086838701610b49565b93506020850135915080821115610bb657600080fd5b50610bc385828601610b49565b9150509250929050565b600060208284031215610bdf57600080fd5b6109c782610a40565b60008060408385031215610bfb57600080fd5b610c0483610a40565b915060208301358015158114610c1957600080fd5b809150509250929050565b60008060008060808587031215610c3a57600080fd5b610c4385610a40565b9350610c5160208601610a40565b925060408501359150606085013567ffffffffffffffff811115610c7457600080fd5b8501601f81018713610c8557600080fd5b610c9487823560208401610ad3565b91505092959194509250565b60008060408385031215610cb357600080fd5b610cbc83610a40565b9150610cca60208401610a40565b90509250929050565b600181811c90821680610ce757607f821691505b602082108103610d0757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600081610d3257610d32610d0d565b506000190190565b600060018201610d4c57610d4c610d0d565b5060010190565b600060208284031215610d6557600080fd5b81516109c781610991565b601f821115610709576000816000526020600020601f850160051c81016020861015610d995750805b601f850160051c820191505b81811015610db857828155600101610da5565b505050505050565b815167ffffffffffffffff811115610dda57610dda610abd565b610dee81610de88454610cd3565b84610d70565b602080601f831160018114610e235760008415610e0b5750858301515b600019600386901b1c1916600185901b178555610db8565b600085815260208120601f198616915b82811015610e5257888601518255948401946001909101908401610e33565b5085821015610e705787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610eb3908301846109ce565b969550505050505056fea264697066735822122047fc2b23de420545aff2cc48e83cfecbf27555ee5171d1efdb2c0140830d3ff764736f6c63430008160033","sourceMap":"321:7246:101:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101f7578063b88d4fde1461020a578063c87b56dd1461021d578063e985e9c51461023157600080fd5b80636352211e146101bb57806370a08231146101ce57806395d89b41146101ef57600080fd5b8063095ea7b3116100c8578063095ea7b31461016d57806323b872dd1461018257806342842e0e146101955780634cd88b76146101a857600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd3660046109aa565b61025f565b60405190151581526020015b60405180910390f35b61011f6102b1565b60405161010e9190610a14565b61015561013a366004610a27565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161010e565b61018061017b366004610a57565b61033f565b005b610180610190366004610a81565b610426565b6101806101a3366004610a81565b61061f565b6101806101b6366004610b69565b61070e565b6101556101c9366004610a27565b610782565b6101e16101dc366004610bcd565b6107d9565b60405190815260200161010e565b61011f61083c565b610180610205366004610be8565b610849565b610180610218366004610c24565b6108b5565b61011f61022b366004610a27565b50606090565b61010261023f366004610ca0565b600560209081526000928352604080842090915290825290205460ff1681565b60006301ffc9a760e01b6001600160e01b03198316148061029057506380ac58cd60e01b6001600160e01b03198316145b806102ab5750635b5e139f60e01b6001600160e01b03198316145b92915050565b600080546102be90610cd3565b80601f01602080910402602001604051908101604052809291908181526020018280546102ea90610cd3565b80156103375780601f1061030c57610100808354040283529160200191610337565b820191906000526020600020905b81548152906001019060200180831161031a57829003601f168201915b505050505081565b6000818152600260205260409020546001600160a01b03163381148061038857506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6103ca5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600260205260409020546001600160a01b0384811691161461047c5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016103c1565b6001600160a01b0382166104c65760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103c1565b336001600160a01b038416148061050057506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b8061052157506000818152600460205260409020546001600160a01b031633145b61055e5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016103c1565b6001600160a01b038316600090815260036020526040812080549161058283610d23565b90915550506001600160a01b03821660009081526003602052604081208054916105ab83610d3a565b9091555050600081815260026020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61062a838383610426565b813b15806106ca5750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af115801561069a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106be9190610d53565b6001600160e01b031916145b6107095760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016103c1565b505050565b60065460ff16156107575760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064016103c1565b60006107638382610dc0565b5060016107708282610dc0565b50506006805460ff1916600117905550565b6000818152600260205260409020546001600160a01b0316806107d45760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016103c1565b919050565b60006001600160a01b0382166108205760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016103c1565b506001600160a01b031660009081526003602052604090205490565b600180546102be90610cd3565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6108c0848484610426565b823b158061094c5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a02906108fd903390899088908890600401610e80565b6020604051808303816000875af115801561091c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109409190610d53565b6001600160e01b031916145b61098b5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016103c1565b50505050565b6001600160e01b0319811681146109a757600080fd5b50565b6000602082840312156109bc57600080fd5b81356109c781610991565b9392505050565b6000815180845260005b818110156109f4576020818501810151868301820152016109d8565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006109c760208301846109ce565b600060208284031215610a3957600080fd5b5035919050565b80356001600160a01b03811681146107d457600080fd5b60008060408385031215610a6a57600080fd5b610a7383610a40565b946020939093013593505050565b600080600060608486031215610a9657600080fd5b610a9f84610a40565b9250610aad60208501610a40565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610aee57610aee610abd565b604051601f8501601f19908116603f01168101908282118183101715610b1657610b16610abd565b81604052809350858152868686011115610b2f57600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112610b5a57600080fd5b6109c783833560208501610ad3565b60008060408385031215610b7c57600080fd5b823567ffffffffffffffff80821115610b9457600080fd5b610ba086838701610b49565b93506020850135915080821115610bb657600080fd5b50610bc385828601610b49565b9150509250929050565b600060208284031215610bdf57600080fd5b6109c782610a40565b60008060408385031215610bfb57600080fd5b610c0483610a40565b915060208301358015158114610c1957600080fd5b809150509250929050565b60008060008060808587031215610c3a57600080fd5b610c4385610a40565b9350610c5160208601610a40565b925060408501359150606085013567ffffffffffffffff811115610c7457600080fd5b8501601f81018713610c8557600080fd5b610c9487823560208401610ad3565b91505092959194509250565b60008060408385031215610cb357600080fd5b610cbc83610a40565b9150610cca60208401610a40565b90509250929050565b600181811c90821680610ce757607f821691505b602082108103610d0757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600081610d3257610d32610d0d565b506000190190565b600060018201610d4c57610d4c610d0d565b5060010190565b600060208284031215610d6557600080fd5b81516109c781610991565b601f821115610709576000816000526020600020601f850160051c81016020861015610d995750805b601f850160051c820191505b81811015610db857828155600101610da5565b505050505050565b815167ffffffffffffffff811115610dda57610dda610abd565b610dee81610de88454610cd3565b84610d70565b602080601f831160018114610e235760008415610e0b5750858301515b600019600386901b1c1916600185901b178555610db8565b600085815260208120601f198616915b82811015610e5257888601518255948401946001909101908401610e33565b5085821015610e705787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610eb3908301846109ce565b969550505050505056fea264697066735822122047fc2b23de420545aff2cc48e83cfecbf27555ee5171d1efdb2c0140830d3ff764736f6c63430008160033","sourceMap":"321:7246:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5052:323;;;;;;:::i;:::-;;:::i;:::-;;;565:14:145;;558:22;540:41;;528:2;513:18;5052:323:101;;;;;;;;976:18;;;:::i;:::-;;;;;;;:::i;1923:46::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1923:46:101;;;;;;-1:-1:-1;;;;;1594:32:145;;;1576:51;;1564:2;1549:18;1923:46:101;1430:203:145;2935:282:101;;;;;;:::i;:::-;;:::i;:::-;;3432:661;;;;;;:::i;:::-;;:::i;4099:369::-;;;;;;:::i;:::-;;:::i;2537:210::-;;;;;;:::i;:::-;;:::i;1406:149::-;;;;;;:::i;:::-;;:::i;1561:168::-;;;;;;:::i;:::-;;:::i;:::-;;;4289:25:145;;;4277:2;4262:18;1561:168:101;4143:177:145;1001:20:101;;;:::i;3223:203::-;;;;;;:::i;:::-;;:::i;4474:390::-;;;;;;:::i;:::-;;:::i;1028:76::-;;;;;;:::i;:::-;-1:-1:-1;1087:13:101;;1028:76;1976:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;5052:323;5128:4;-1:-1:-1;;;;;;;;;5151:25:101;;;;:100;;-1:-1:-1;;;;;;;;;;5226:25:101;;;5151:100;:175;;;-1:-1:-1;;;;;;;;;;5301:25:101;;;5151:175;5144:182;5052:323;-1:-1:-1;;5052:323:101:o;976:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2935:282::-;3006:13;3022:12;;;:8;:12;;;;;;-1:-1:-1;;;;;3022:12:101;3053:10;:19;;;:58;;-1:-1:-1;;;;;;3076:23:101;;;;;;:16;:23;;;;;;;;3100:10;3076:35;;;;;;;;;;3053:58;3045:85;;;;-1:-1:-1;;;3045:85:101;;6201:2:145;3045:85:101;;;6183:21:145;6240:2;6220:18;;;6213:30;-1:-1:-1;;;6259:18:145;;;6252:44;6313:18;;3045:85:101;;;;;;;;;3141:15;;;;:11;:15;;;;;;:25;;-1:-1:-1;;;;;;3141:25:101;-1:-1:-1;;;;;3141:25:101;;;;;;;;;3182:28;;3141:15;;3182:28;;;;;;;2996:221;2935:282;;:::o;3432:661::-;3533:12;;;;:8;:12;;;;;;-1:-1:-1;;;;;3525:20:101;;;3533:12;;3525:20;3517:43;;;;-1:-1:-1;;;3517:43:101;;6544:2:145;3517:43:101;;;6526:21:145;6583:2;6563:18;;;6556:30;-1:-1:-1;;;6602:18:145;;;6595:40;6652:18;;3517:43:101;6342:334:145;3517:43:101;-1:-1:-1;;;;;3579:16:101;;3571:46;;;;-1:-1:-1;;;3571:46:101;;6883:2:145;3571:46:101;;;6865:21:145;6922:2;6902:18;;;6895:30;-1:-1:-1;;;6941:18:145;;;6934:47;6998:18;;3571:46:101;6681:341:145;3571:46:101;3649:10;-1:-1:-1;;;;;3649:18:101;;;;:56;;-1:-1:-1;;;;;;3671:22:101;;;;;;:16;:22;;;;;;;;3694:10;3671:34;;;;;;;;;;3649:56;:89;;;-1:-1:-1;3723:15:101;;;;:11;:15;;;;;;-1:-1:-1;;;;;3723:15:101;3709:10;:29;3649:89;3628:138;;;;-1:-1:-1;;;3628:138:101;;6201:2:145;3628:138:101;;;6183:21:145;6240:2;6220:18;;;6213:30;-1:-1:-1;;;6259:18:145;;;6252:44;6313:18;;3628:138:101;5999:338:145;3628:138:101;-1:-1:-1;;;;;3942:16:101;;;;;;:10;:16;;;;;:18;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;3971:14:101;;;;;;:10;:14;;;;;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;3998:12:101;;;;:8;:12;;;;;;;;:17;;-1:-1:-1;;;;;3998:17:101;;;-1:-1:-1;;;;;;3998:17:101;;;;;;;;4033:11;:15;;;;;;4026:22;;;;;;;4064;;4007:2;;3998:17;;4064:22;;;;;;3432:661;;;:::o;4099:369::-;4188:26;4201:4;4207:2;4211;4188:12;:26::i;:::-;7499:18;;7544:14;;4246:173;;-1:-1:-1;4282:67:101;;-1:-1:-1;;;4282:67:101;;;4324:10;4282:67;;;7745:34:145;-1:-1:-1;;;;;7815:15:145;;;7795:18;;;7788:43;7847:18;;;7840:34;;;7910:3;7890:18;;;7883:31;-1:-1:-1;7930:19:145;;;7923:30;4373:46:101;;4282:41;;;;4373:46;;7970:19:145;;4282:67:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4282:137:101;;4246:173;4225:236;;;;-1:-1:-1;;;4225:236:101;;8456:2:145;4225:236:101;;;8438:21:145;8495:2;8475:18;;;8468:30;-1:-1:-1;;;8514:18:145;;;8507:46;8570:18;;4225:236:101;8254:340:145;4225:236:101;4099:369;;;:::o;2537:210::-;2627:11;;;;2626:12;2618:44;;;;-1:-1:-1;;;2618:44:101;;8801:2:145;2618:44:101;;;8783:21:145;8840:2;8820:18;;;8813:30;-1:-1:-1;;;8859:18:145;;;8852:49;8918:18;;2618:44:101;8599:343:145;2618:44:101;2673:4;:12;2680:5;2673:4;:12;:::i;:::-;-1:-1:-1;2695:6:101;:16;2704:7;2695:6;:16;:::i;:::-;-1:-1:-1;;2722:11:101;:18;;-1:-1:-1;;2722:18:101;2736:4;2722:18;;;-1:-1:-1;2537:210:101:o;1406:149::-;1464:13;1506:12;;;:8;:12;;;;;;-1:-1:-1;;;;;1506:12:101;;1489:59;;;;-1:-1:-1;;;1489:59:101;;11344:2:145;1489:59:101;;;11326:21:145;11383:2;11363:18;;;11356:30;-1:-1:-1;;;11402:18:145;;;11395:40;11452:18;;1489:59:101;11142:334:145;1489:59:101;1406:149;;;:::o;1561:168::-;1624:7;-1:-1:-1;;;;;1651:19:101;;1643:44;;;;-1:-1:-1;;;1643:44:101;;11683:2:145;1643:44:101;;;11665:21:145;11722:2;11702:18;;;11695:30;-1:-1:-1;;;11741:18:145;;;11734:42;11793:18;;1643:44:101;11481:336:145;1643:44:101;-1:-1:-1;;;;;;1705:17:101;;;;;:10;:17;;;;;;;1561:168::o;1001:20::-;;;;;;;:::i;3223:203::-;3325:10;3308:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;3308:38:101;;;;;;;;;;;;:49;;-1:-1:-1;;3308:49:101;;;;;;;;;;3373:46;;540:41:145;;;3308:38:101;;3325:10;3373:46;;513:18:145;3373:46:101;;;;;;;3223:203;;:::o;4474:390::-;4582:26;4595:4;4601:2;4605;4582:12;:26::i;:::-;7499:18;;7544:14;;4640:175;;-1:-1:-1;4676:69:101;;-1:-1:-1;;;4676:69:101;;;4769:46;-1:-1:-1;;;;;4676:41:101;;;4769:46;;4676:69;;4718:10;;4730:4;;4736:2;;4740:4;;4676:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4676:139:101;;4640:175;4619:238;;;;-1:-1:-1;;;4619:238:101;;8456:2:145;4619:238:101;;;8438:21:145;8495:2;8475:18;;;8468:30;-1:-1:-1;;;8514:18:145;;;8507:46;8570:18;;4619:238:101;8254:340:145;4619:238:101;4474:390;;;;:::o;14:131:145:-;-1:-1:-1;;;;;;88:32:145;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;:::-;384:5;150:245;-1:-1:-1;;;150:245:145:o;592:423::-;634:3;672:5;666:12;699:6;694:3;687:19;724:1;734:162;748:6;745:1;742:13;734:162;;;810:4;866:13;;;862:22;;856:29;838:11;;;834:20;;827:59;763:12;734:162;;;738:3;941:1;934:4;925:6;920:3;916:16;912:27;905:38;1004:4;997:2;993:7;988:2;980:6;976:15;972:29;967:3;963:39;959:50;952:57;;;592:423;;;;:::o;1020:220::-;1169:2;1158:9;1151:21;1132:4;1189:45;1230:2;1219:9;1215:18;1207:6;1189:45;:::i;1245:180::-;1304:6;1357:2;1345:9;1336:7;1332:23;1328:32;1325:52;;;1373:1;1370;1363:12;1325:52;-1:-1:-1;1396:23:145;;1245:180;-1:-1:-1;1245:180:145:o;1638:173::-;1706:20;;-1:-1:-1;;;;;1755:31:145;;1745:42;;1735:70;;1801:1;1798;1791:12;1816:254;1884:6;1892;1945:2;1933:9;1924:7;1920:23;1916:32;1913:52;;;1961:1;1958;1951:12;1913:52;1984:29;2003:9;1984:29;:::i;:::-;1974:39;2060:2;2045:18;;;;2032:32;;-1:-1:-1;;;1816:254:145:o;2075:328::-;2152:6;2160;2168;2221:2;2209:9;2200:7;2196:23;2192:32;2189:52;;;2237:1;2234;2227:12;2189:52;2260:29;2279:9;2260:29;:::i;:::-;2250:39;;2308:38;2342:2;2331:9;2327:18;2308:38;:::i;:::-;2298:48;;2393:2;2382:9;2378:18;2365:32;2355:42;;2075:328;;;;;:::o;2408:127::-;2469:10;2464:3;2460:20;2457:1;2450:31;2500:4;2497:1;2490:15;2524:4;2521:1;2514:15;2540:632;2605:5;2635:18;2676:2;2668:6;2665:14;2662:40;;;2682:18;;:::i;:::-;2757:2;2751:9;2725:2;2811:15;;-1:-1:-1;;2807:24:145;;;2833:2;2803:33;2799:42;2787:55;;;2857:18;;;2877:22;;;2854:46;2851:72;;;2903:18;;:::i;:::-;2943:10;2939:2;2932:22;2972:6;2963:15;;3002:6;2994;2987:22;3042:3;3033:6;3028:3;3024:16;3021:25;3018:45;;;3059:1;3056;3049:12;3018:45;3109:6;3104:3;3097:4;3089:6;3085:17;3072:44;3164:1;3157:4;3148:6;3140;3136:19;3132:30;3125:41;;;;2540:632;;;;;:::o;3177:222::-;3220:5;3273:3;3266:4;3258:6;3254:17;3250:27;3240:55;;3291:1;3288;3281:12;3240:55;3313:80;3389:3;3380:6;3367:20;3360:4;3352:6;3348:17;3313:80;:::i;3404:543::-;3492:6;3500;3553:2;3541:9;3532:7;3528:23;3524:32;3521:52;;;3569:1;3566;3559:12;3521:52;3609:9;3596:23;3638:18;3679:2;3671:6;3668:14;3665:34;;;3695:1;3692;3685:12;3665:34;3718:50;3760:7;3751:6;3740:9;3736:22;3718:50;:::i;:::-;3708:60;;3821:2;3810:9;3806:18;3793:32;3777:48;;3850:2;3840:8;3837:16;3834:36;;;3866:1;3863;3856:12;3834:36;;3889:52;3933:7;3922:8;3911:9;3907:24;3889:52;:::i;:::-;3879:62;;;3404:543;;;;;:::o;3952:186::-;4011:6;4064:2;4052:9;4043:7;4039:23;4035:32;4032:52;;;4080:1;4077;4070:12;4032:52;4103:29;4122:9;4103:29;:::i;4325:347::-;4390:6;4398;4451:2;4439:9;4430:7;4426:23;4422:32;4419:52;;;4467:1;4464;4457:12;4419:52;4490:29;4509:9;4490:29;:::i;:::-;4480:39;;4569:2;4558:9;4554:18;4541:32;4616:5;4609:13;4602:21;4595:5;4592:32;4582:60;;4638:1;4635;4628:12;4582:60;4661:5;4651:15;;;4325:347;;;;;:::o;4677:667::-;4772:6;4780;4788;4796;4849:3;4837:9;4828:7;4824:23;4820:33;4817:53;;;4866:1;4863;4856:12;4817:53;4889:29;4908:9;4889:29;:::i;:::-;4879:39;;4937:38;4971:2;4960:9;4956:18;4937:38;:::i;:::-;4927:48;;5022:2;5011:9;5007:18;4994:32;4984:42;;5077:2;5066:9;5062:18;5049:32;5104:18;5096:6;5093:30;5090:50;;;5136:1;5133;5126:12;5090:50;5159:22;;5212:4;5204:13;;5200:27;-1:-1:-1;5190:55:145;;5241:1;5238;5231:12;5190:55;5264:74;5330:7;5325:2;5312:16;5307:2;5303;5299:11;5264:74;:::i;:::-;5254:84;;;4677:667;;;;;;;:::o;5349:260::-;5417:6;5425;5478:2;5466:9;5457:7;5453:23;5449:32;5446:52;;;5494:1;5491;5484:12;5446:52;5517:29;5536:9;5517:29;:::i;:::-;5507:39;;5565:38;5599:2;5588:9;5584:18;5565:38;:::i;:::-;5555:48;;5349:260;;;;;:::o;5614:380::-;5693:1;5689:12;;;;5736;;;5757:61;;5811:4;5803:6;5799:17;5789:27;;5757:61;5864:2;5856:6;5853:14;5833:18;5830:38;5827:161;;5910:10;5905:3;5901:20;5898:1;5891:31;5945:4;5942:1;5935:15;5973:4;5970:1;5963:15;5827:161;;5614:380;;;:::o;7027:127::-;7088:10;7083:3;7079:20;7076:1;7069:31;7119:4;7116:1;7109:15;7143:4;7140:1;7133:15;7159:136;7198:3;7226:5;7216:39;;7235:18;;:::i;:::-;-1:-1:-1;;;7271:18:145;;7159:136::o;7300:135::-;7339:3;7360:17;;;7357:43;;7380:18;;:::i;:::-;-1:-1:-1;7427:1:145;7416:13;;7300:135::o;8000:249::-;8069:6;8122:2;8110:9;8101:7;8097:23;8093:32;8090:52;;;8138:1;8135;8128:12;8090:52;8170:9;8164:16;8189:30;8213:5;8189:30;:::i;9073:543::-;9175:2;9170:3;9167:11;9164:446;;;9211:1;9235:5;9232:1;9225:16;9279:4;9276:1;9266:18;9349:2;9337:10;9333:19;9330:1;9326:27;9320:4;9316:38;9385:4;9373:10;9370:20;9367:47;;;-1:-1:-1;9408:4:145;9367:47;9463:2;9458:3;9454:12;9451:1;9447:20;9441:4;9437:31;9427:41;;9518:82;9536:2;9529:5;9526:13;9518:82;;;9581:17;;;9562:1;9551:13;9518:82;;;9522:3;;;9073:543;;;:::o;9792:1345::-;9918:3;9912:10;9945:18;9937:6;9934:30;9931:56;;;9967:18;;:::i;:::-;9996:97;10086:6;10046:38;10078:4;10072:11;10046:38;:::i;:::-;10040:4;9996:97;:::i;:::-;10148:4;;10205:2;10194:14;;10222:1;10217:663;;;;10924:1;10941:6;10938:89;;;-1:-1:-1;10993:19:145;;;10987:26;10938:89;-1:-1:-1;;9749:1:145;9745:11;;;9741:24;9737:29;9727:40;9773:1;9769:11;;;9724:57;11040:81;;10187:944;;10217:663;9020:1;9013:14;;;9057:4;9044:18;;-1:-1:-1;;10253:20:145;;;10371:236;10385:7;10382:1;10379:14;10371:236;;;10474:19;;;10468:26;10453:42;;10566:27;;;;10534:1;10522:14;;;;10401:19;;10371:236;;;10375:3;10635:6;10626:7;10623:19;10620:201;;;10696:19;;;10690:26;-1:-1:-1;;10779:1:145;10775:14;;;10791:3;10771:24;10767:37;10763:42;10748:58;10733:74;;10620:201;-1:-1:-1;;;;;10867:1:145;10851:14;;;10847:22;10834:36;;-1:-1:-1;9792:1345:145:o;11822:489::-;-1:-1:-1;;;;;12091:15:145;;;12073:34;;12143:15;;12138:2;12123:18;;12116:43;12190:2;12175:18;;12168:34;;;12238:3;12233:2;12218:18;;12211:31;;;12016:4;;12259:46;;12285:19;;12277:6;12259:46;:::i;:::-;12251:54;11822:489;-1:-1:-1;;;;;;11822:489:145:o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","initialize(string,string)":"4cd88b76","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC721.sol\",\"kind\":\"dev\",\"methods\":{\"initialize(string,string)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This is a mock contract of the ERC721 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":\"MockERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"initialize(string,string)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":"MockERC721"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"}},"version":1},"id":101} \ No newline at end of file diff --git a/packages/onft-evm/out/MultiSigMock.sol/MultiSigMock.json b/packages/onft-evm/out/MultiSigMock.sol/MultiSigMock.json deleted file mode 100644 index 2fe5b47a1..000000000 --- a/packages/onft-evm/out/MultiSigMock.sol/MultiSigMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"quorum","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"signerSize","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"signers","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[{"name":"active","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifySignatures","inputs":[{"name":"_hash","type":"bytes32","internalType":"bytes32"},{"name":"_signatures","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint8","internalType":"enum MultiSigMock.Errors"}],"stateMutability":"view"},{"type":"event","name":"UpdateQuorum","inputs":[{"name":"_quorum","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"UpdateSigner","inputs":[{"name":"_signer","type":"address","indexed":false,"internalType":"address"},{"name":"_active","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"error","name":"MultiSig_OnlySigner","inputs":[]},{"type":"error","name":"MultiSig_QuorumIsZero","inputs":[]},{"type":"error","name":"MultiSig_SignersSizeIsLessThanQuorum","inputs":[{"name":"signersSize","type":"uint64","internalType":"uint64"},{"name":"quorum","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"MultiSig_StateAlreadySet","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"active","type":"bool","internalType":"bool"}]},{"type":"error","name":"MultiSig_UnorderedSigners","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"quorum()":"1703a018","signerSize()":"fd62e750","signers(address)":"736c0d5b","verifySignatures(bytes32,bytes)":"c7a823e0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MultiSig_OnlySigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MultiSig_QuorumIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"signersSize\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"quorum\",\"type\":\"uint64\"}],\"name\":\"MultiSig_SignersSizeIsLessThanQuorum\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"MultiSig_StateAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MultiSig_UnorderedSigners\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_quorum\",\"type\":\"uint64\"}],\"name\":\"UpdateQuorum\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_signer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_active\",\"type\":\"bool\"}],\"name\":\"UpdateSigner\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signerSize\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"signers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signatures\",\"type\":\"bytes\"}],\"name\":\"verifySignatures\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"enum MultiSigMock.Errors\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol\":\"MultiSigMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol\":{\"keccak256\":\"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f\",\"dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"MultiSig_OnlySigner"},{"inputs":[],"type":"error","name":"MultiSig_QuorumIsZero"},{"inputs":[{"internalType":"uint64","name":"signersSize","type":"uint64"},{"internalType":"uint64","name":"quorum","type":"uint64"}],"type":"error","name":"MultiSig_SignersSizeIsLessThanQuorum"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bool","name":"active","type":"bool"}],"type":"error","name":"MultiSig_StateAlreadySet"},{"inputs":[],"type":"error","name":"MultiSig_UnorderedSigners"},{"inputs":[{"internalType":"uint64","name":"_quorum","type":"uint64","indexed":false}],"type":"event","name":"UpdateQuorum","anonymous":false},{"inputs":[{"internalType":"address","name":"_signer","type":"address","indexed":false},{"internalType":"bool","name":"_active","type":"bool","indexed":false}],"type":"event","name":"UpdateSigner","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"quorum","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"signerSize","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"view","type":"function","name":"signers","outputs":[{"internalType":"bool","name":"active","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"bytes","name":"_signatures","type":"bytes"}],"stateMutability":"view","type":"function","name":"verifySignatures","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"enum MultiSigMock.Errors","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol":"MultiSigMock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol":{"keccak256":"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830","urls":["bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f","dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"}},"version":1},"id":77} \ No newline at end of file diff --git a/packages/onft-evm/out/OApp.sol/OApp.json b/packages/onft-evm/out/OApp.sol/OApp.json deleted file mode 100644 index 8e2393c70..000000000 --- a/packages/onft-evm/out/OApp.sol/OApp.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","endpoint()":"5e280f11","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract serving as the base for OApp implementation, combining OAppSender and OAppReceiver functionality.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"constructor\":{\"details\":\"Constructor to initialize the OApp with the provided endpoint and owner.\",\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_endpoint\":\"The address of the LOCAL LayerZero endpoint.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OApp\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":\"OApp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"constructor":{"details":"Constructor to initialize the OApp with the provided endpoint and owner.","params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_endpoint":"The address of the LOCAL LayerZero endpoint."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":"OApp"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":32} \ No newline at end of file diff --git a/packages/onft-evm/out/OAppCore.sol/OAppCore.json b/packages/onft-evm/out/OAppCore.sol/OAppCore.json deleted file mode 100644 index 8e092dadb..000000000 --- a/packages/onft-evm/out/OAppCore.sol/OAppCore.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the IOAppCore interface with basic OApp configurations.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Constructor to initialize the OAppCore with the provided endpoint and delegate.The delegate typically should be set as the owner of the contract.\",\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_endpoint\":\"The address of the LOCAL Layer Zero endpoint.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"endpoint\":{\"return\":\"The LayerZero endpoint as an interface.\",\"returns\":{\"_0\":\"The LayerZero endpoint as an interface.\"}},\"peers\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"return\":\"peer The peer address (OApp instance) associated with the corresponding endpoint.\",\"returns\":{\"peer\":\"The peer address (OApp instance) associated with the corresponding endpoint.\"}}},\"title\":\"OAppCore\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":\"OAppCore\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Constructor to initialize the OAppCore with the provided endpoint and delegate.The delegate typically should be set as the owner of the contract.","params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_endpoint":"The address of the LOCAL Layer Zero endpoint."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":"OAppCore"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":33} \ No newline at end of file diff --git a/packages/onft-evm/out/OAppOptionsType3.sol/OAppOptionsType3.json b/packages/onft-evm/out/OAppOptionsType3.sol/OAppOptionsType3.json deleted file mode 100644 index 418541deb..000000000 --- a/packages/onft-evm/out/OAppOptionsType3.sol/OAppOptionsType3.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"combineOptions(uint32,uint16,bytes)":"bc70b354","enforcedOptions(uint32,uint16)":"5535d461","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"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\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the IOAppOptionsType3 interface with type 3 options.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OAppOptionsType3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":\"OAppOptionsType3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":"OAppOptionsType3"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":41} \ No newline at end of file diff --git a/packages/onft-evm/out/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json b/packages/onft-evm/out/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json deleted file mode 100644 index 6459b7363..000000000 --- a/packages/onft-evm/out/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isPeer(uint32,bytes32)":"5a0dfe4d","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","oApp()":"52ae2879","owner()":"8da5cb5b","preCrime()":"b731ea0a","renounceOwnership()":"715018a6","setPreCrime(address)":"d4243885","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"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\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract serving as the base for preCrime simulation functionality in an OApp.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"isPeer(uint32,bytes32)\":{\"details\":\"checks if the specified peer is considered 'trusted' by the OApp.\",\"params\":{\"_eid\":\"The endpoint Id to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"preCrime\":{\"details\":\"Retrieves the address of the preCrime contract implementation.\",\"return\":\"The address of the preCrime contract.\",\"returns\":{\"_0\":\"The address of the preCrime contract.\"}}},\"title\":\"OAppPreCrimeSimulator\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":\"OAppPreCrimeSimulator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"isPeer(uint32,bytes32)":{"details":"checks if the specified peer is considered 'trusted' by the OApp.","params":{"_eid":"The endpoint Id to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":"OAppPreCrimeSimulator"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":43} \ No newline at end of file diff --git a/packages/onft-evm/out/OAppReceiver.sol/OAppReceiver.json b/packages/onft-evm/out/OAppReceiver.sol/OAppReceiver.json deleted file mode 100644 index ee6492540..000000000 --- a/packages/onft-evm/out/OAppReceiver.sol/OAppReceiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","endpoint()":"5e280f11","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the ILayerZeroReceiver interface and extending OAppCore for OApp receivers.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oAppVersion()\":{\"details\":\"Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented. ie. this is a RECEIVE only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.\",\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OAppReceiver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":\"OAppReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oAppVersion()":{"details":"Providing 0 as the default for OAppSender version. Indicates that the OAppSender is not implemented. ie. this is a RECEIVE only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions.","returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":"OAppReceiver"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":34} \ No newline at end of file diff --git a/packages/onft-evm/out/OAppSender.sol/OAppSender.json b/packages/onft-evm/out/OAppSender.sol/OAppSender.json deleted file mode 100644 index 89703a9c3..000000000 --- a/packages/onft-evm/out/OAppSender.sol/OAppSender.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"endpoint()":"5e280f11","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","renounceOwnership()":"715018a6","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract implementing the OAppSender functionality for sending messages to a LayerZero endpoint.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"oAppVersion()\":{\"details\":\"Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented. ie. this is a SEND only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions\",\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol contract.\",\"senderVersion\":\"The version of the OAppSender.sol contract.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"OAppSender\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":\"OAppSender\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"oAppVersion()":{"details":"Providing 0 as the default for OAppReceiver version. Indicates that the OAppReceiver is not implemented. ie. this is a SEND only OApp.If the OApp uses both OAppSender and OAppReceiver, then this needs to be override returning the correct versions","returns":{"receiverVersion":"The version of the OAppReceiver.sol contract.","senderVersion":"The version of the OAppSender.sol contract."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":"OAppSender"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":35} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT1155.sol/ONFT1155.json b/packages/onft-evm/out/ONFT1155.sol/ONFT1155.json deleted file mode 100644 index 36597c740..000000000 --- a/packages/onft-evm/out/ONFT1155.sol/ONFT1155.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMessage","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMessage","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"uri","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidArrayLength","inputs":[{"name":"idsLength","type":"uint256","internalType":"uint256"},{"name":"valuesLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155MissingApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"UnapprovedSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","isApprovedForAll(address,address)":"e985e9c5","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256[],uint256[],bytes,bytes,bytes),bool)":"d58c3aa8","renounceOwnership()":"715018a6","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","send((uint32,bytes32,uint256[],uint256[],bytes,bytes,bytes),(uint256,uint256),address)":"2250032b","setApprovalForAll(address,bool)":"a22cb465","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","supportsInterface(bytes4)":"01ffc9a7","token()":"fc0c546a","transferOwnership(address)":"f2fde38b","uri(uint256)":"0e89341c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnapprovedSender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"interfaceId: This specific interface ID is 'a72f5dd8'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID.\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"token()\":{\"returns\":{\"tokenAddress\":\"token The address of the ERC721 token implementation.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"SEND()\":{\"notice\":\"Msg types that are used to identify the various OFT operations.\"},\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the ONFT.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onft1155/ONFT1155.sol\":\"ONFT1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft1155/ONFT1155.sol\":{\"keccak256\":\"0x90993d068e4fdf0e42fb16897673d1119a4e4f955f6565d58776b3951c26c409\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8aaead606e653567b774d93c21154525eaf185d9d17aacb8a06b4d40bddf2def\",\"dweb:/ipfs/QmNwFARa25t14W7bWZrpgCbmexz49cxErkrBU6Au5xLyo4\"]},\"contracts/onft1155/ONFT1155Core.sol\":{\"keccak256\":\"0xa3507a5d977920a65aa04b55ade0b304eaa581be2950b43a6da4e4db97b911cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13da03b54747d237b69b8197d080c1e7a73f0bca76a5d1e0c596608b6ebbe5e7\",\"dweb:/ipfs/QmUPceh23yLaq1vTVAH4CMEGwSaD1R3WZQjiY4vQbzPa7g\"]},\"contracts/onft1155/interfaces/IONFT1155.sol\":{\"keccak256\":\"0xffd1af688b9bfc983dd5832e3b9313e97c840651a1035cfd49de3733f70345e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81a5c37318692f7413ae2c7da568494e6b1431dc7fe1b93c287ce777ac489fe0\",\"dweb:/ipfs/Qmf5iqY84xyooJezLkmtedrEEjME4kF3jC4KLURmag4Gse\"]},\"contracts/onft1155/libs/ONFT1155MsgCodec.sol\":{\"keccak256\":\"0x9c5c02dd90d94526f347440d3d853e13612024305704b95664f7adeff63ede04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66f15af7feeb78d45c41cf52497edfdf7919e89748cd501707303e81c90bc2c1\",\"dweb:/ipfs/QmcEcpcEb192Etv8hJkEdbcBaWMBJh91FsTdYTjsgiCVJi\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC1155InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC1155InvalidApprover"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"type":"error","name":"ERC1155InvalidArrayLength"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC1155InvalidOperator"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC1155InvalidSender"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC1155MissingApprovalForAll"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"UnapprovedSender"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMessage","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMessage","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"tokenAddress","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"balanceOf(address,uint256)":{"details":"See {IERC1155-balanceOf}."},"balanceOfBatch(address[],uint256[])":{"details":"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"isApprovedForAll(address,address)":{"details":"See {IERC1155-isApprovedForAll}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"interfaceId: This specific interface ID is 'a72f5dd8'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID.","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"See {IERC1155-safeBatchTransferFrom}."},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"See {IERC1155-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC1155-setApprovalForAll}."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"token()":{"returns":{"tokenAddress":"token The address of the ERC721 token implementation."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"uri(uint256)":{"details":"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\{id\\}` substring with the actual token type ID."}},"version":1},"userdoc":{"kind":"user","methods":{"SEND()":{"notice":"Msg types that are used to identify the various OFT operations."},"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the token associated with the ONFT."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onft1155/ONFT1155.sol":"ONFT1155"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft1155/ONFT1155.sol":{"keccak256":"0x90993d068e4fdf0e42fb16897673d1119a4e4f955f6565d58776b3951c26c409","urls":["bzz-raw://8aaead606e653567b774d93c21154525eaf185d9d17aacb8a06b4d40bddf2def","dweb:/ipfs/QmNwFARa25t14W7bWZrpgCbmexz49cxErkrBU6Au5xLyo4"],"license":"MIT"},"contracts/onft1155/ONFT1155Core.sol":{"keccak256":"0xa3507a5d977920a65aa04b55ade0b304eaa581be2950b43a6da4e4db97b911cf","urls":["bzz-raw://13da03b54747d237b69b8197d080c1e7a73f0bca76a5d1e0c596608b6ebbe5e7","dweb:/ipfs/QmUPceh23yLaq1vTVAH4CMEGwSaD1R3WZQjiY4vQbzPa7g"],"license":"MIT"},"contracts/onft1155/interfaces/IONFT1155.sol":{"keccak256":"0xffd1af688b9bfc983dd5832e3b9313e97c840651a1035cfd49de3733f70345e9","urls":["bzz-raw://81a5c37318692f7413ae2c7da568494e6b1431dc7fe1b93c287ce777ac489fe0","dweb:/ipfs/Qmf5iqY84xyooJezLkmtedrEEjME4kF3jC4KLURmag4Gse"],"license":"MIT"},"contracts/onft1155/libs/ONFT1155MsgCodec.sol":{"keccak256":"0x9c5c02dd90d94526f347440d3d853e13612024305704b95664f7adeff63ede04","urls":["bzz-raw://66f15af7feeb78d45c41cf52497edfdf7919e89748cd501707303e81c90bc2c1","dweb:/ipfs/QmcEcpcEb192Etv8hJkEdbcBaWMBJh91FsTdYTjsgiCVJi"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"keccak256":"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde","urls":["bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026","dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"keccak256":"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce","urls":["bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182","dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3","urls":["bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23","dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"keccak256":"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68","urls":["bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522","dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Arrays.sol":{"keccak256":"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1","urls":["bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5","dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"}},"version":1},"id":1} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT1155Core.sol/ONFT1155Core.json b/packages/onft-evm/out/ONFT1155Core.sol/ONFT1155Core.json deleted file mode 100644 index a58010ca7..000000000 --- a/packages/onft-evm/out/ONFT1155Core.sol/ONFT1155Core.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMessage","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMessage","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"UnapprovedSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256[],uint256[],bytes,bytes,bytes),bool)":"d58c3aa8","renounceOwnership()":"715018a6","send((uint32,bytes32,uint256[],uint256[],bytes,bytes,bytes),(uint256,uint256),address)":"2250032b","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","token()":"fc0c546a","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnapprovedSender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"interfaceId: This specific interface ID is 'a72f5dd8'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID.\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"token()\":{\"returns\":{\"_0\":\"token The address of the ERC721 token implementation.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"SEND\":{\"details\":\"This can be extended in child contracts for non-default oft operationsThese values are used in combineOptions() and OAppOptionsType3.sol.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"SEND()\":{\"notice\":\"Msg types that are used to identify the various OFT operations.\"},\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the ONFT.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onft1155/ONFT1155Core.sol\":\"ONFT1155Core\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft1155/ONFT1155Core.sol\":{\"keccak256\":\"0xa3507a5d977920a65aa04b55ade0b304eaa581be2950b43a6da4e4db97b911cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13da03b54747d237b69b8197d080c1e7a73f0bca76a5d1e0c596608b6ebbe5e7\",\"dweb:/ipfs/QmUPceh23yLaq1vTVAH4CMEGwSaD1R3WZQjiY4vQbzPa7g\"]},\"contracts/onft1155/interfaces/IONFT1155.sol\":{\"keccak256\":\"0xffd1af688b9bfc983dd5832e3b9313e97c840651a1035cfd49de3733f70345e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81a5c37318692f7413ae2c7da568494e6b1431dc7fe1b93c287ce777ac489fe0\",\"dweb:/ipfs/Qmf5iqY84xyooJezLkmtedrEEjME4kF3jC4KLURmag4Gse\"]},\"contracts/onft1155/libs/ONFT1155MsgCodec.sol\":{\"keccak256\":\"0x9c5c02dd90d94526f347440d3d853e13612024305704b95664f7adeff63ede04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66f15af7feeb78d45c41cf52497edfdf7919e89748cd501707303e81c90bc2c1\",\"dweb:/ipfs/QmcEcpcEb192Etv8hJkEdbcBaWMBJh91FsTdYTjsgiCVJi\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"UnapprovedSender"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMessage","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMessage","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"interfaceId: This specific interface ID is 'a72f5dd8'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID.","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"token()":{"returns":{"_0":"token The address of the ERC721 token implementation."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"SEND()":{"notice":"Msg types that are used to identify the various OFT operations."},"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the token associated with the ONFT."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onft1155/ONFT1155Core.sol":"ONFT1155Core"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft1155/ONFT1155Core.sol":{"keccak256":"0xa3507a5d977920a65aa04b55ade0b304eaa581be2950b43a6da4e4db97b911cf","urls":["bzz-raw://13da03b54747d237b69b8197d080c1e7a73f0bca76a5d1e0c596608b6ebbe5e7","dweb:/ipfs/QmUPceh23yLaq1vTVAH4CMEGwSaD1R3WZQjiY4vQbzPa7g"],"license":"MIT"},"contracts/onft1155/interfaces/IONFT1155.sol":{"keccak256":"0xffd1af688b9bfc983dd5832e3b9313e97c840651a1035cfd49de3733f70345e9","urls":["bzz-raw://81a5c37318692f7413ae2c7da568494e6b1431dc7fe1b93c287ce777ac489fe0","dweb:/ipfs/Qmf5iqY84xyooJezLkmtedrEEjME4kF3jC4KLURmag4Gse"],"license":"MIT"},"contracts/onft1155/libs/ONFT1155MsgCodec.sol":{"keccak256":"0x9c5c02dd90d94526f347440d3d853e13612024305704b95664f7adeff63ede04","urls":["bzz-raw://66f15af7feeb78d45c41cf52497edfdf7919e89748cd501707303e81c90bc2c1","dweb:/ipfs/QmcEcpcEb192Etv8hJkEdbcBaWMBJh91FsTdYTjsgiCVJi"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"keccak256":"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce","urls":["bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182","dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":2} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT1155Mock.sol/ONFT1155Mock.json b/packages/onft-evm/out/ONFT1155Mock.sol/ONFT1155Mock.json deleted file mode 100644 index 83b5f904e..000000000 --- a/packages/onft-evm/out/ONFT1155Mock.sol/ONFT1155Mock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_uri","type":"string","internalType":"string"},{"name":"_lzEndpoint","type":"address","internalType":"address"},{"name":"_delegate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintBatch","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMessage","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMessage","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"uri","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidArrayLength","inputs":[{"name":"idsLength","type":"uint256","internalType":"uint256"},{"name":"valuesLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155MissingApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"UnapprovedSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a06040523480156200001157600080fd5b5060405162003e4738038062003e478339810160408190526200003491620001be565b82828281818181818180896200004a8162000127565b506001600160a01b0381166200007a57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000858162000139565b506001600160a01b038083166080528116620000b457604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000fc57600080fd5b505af115801562000111573d6000803e3d6000fd5b5050505050505050505050505050505062000415565b600262000135828262000349565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620001b957600080fd5b919050565b600080600060608486031215620001d457600080fd5b83516001600160401b0380821115620001ec57600080fd5b818601915086601f8301126200020157600080fd5b8151818111156200021657620002166200018b565b604051601f8201601f19908116603f011681019083821181831017156200024157620002416200018b565b816040528281526020935089848487010111156200025e57600080fd5b600091505b8282101562000282578482018401518183018501529083019062000263565b60008484830101528097505050506200029d818701620001a1565b93505050620002af60408501620001a1565b90509250925092565b600181811c90821680620002cd57607f821691505b602082108103620002ee57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000344576000816000526020600020601f850160051c810160208610156200031f5750805b601f850160051c820191505b8181101562000340578281556001016200032b565b5050505b505050565b81516001600160401b038111156200036557620003656200018b565b6200037d81620003768454620002b8565b84620002f4565b602080601f831160018114620003b557600084156200039c5750858301515b600019600386901b1c1916600185901b17855562000340565b600085815260208120601f198616915b82811015620003e657888601518255948401946001909101908401620003c5565b5085821015620004055787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6080516139e562000462600039600081816104840152818161087f0152818161102a01528181611329015281816115e101528181611a2901528181611f7b015261203401526139e56000f3fe60806040526004361061022f5760003560e01c80637d25a05e1161012e578063bd815db0116100ab578063e985e9c51161006f578063e985e9c5146106f1578063f242432a14610711578063f2fde38b14610731578063fc0c546a14610408578063ff7bd03d1461075157600080fd5b8063bd815db01461065e578063ca5eb5e114610671578063d045a0dc14610691578063d4243885146106a4578063d58c3aa8146106c457600080fd5b8063b21a33e4116100f2578063b21a33e4146105bc578063b731ea0a146105d1578063b98bd070146105f1578063bb0b6a5314610611578063bc70b3541461063e57600080fd5b80637d25a05e146104fb57806382413eac146105365780638da5cb5b14610556578063a22cb46514610574578063a72f5dd81461059457600080fd5b80632eb2c2d6116101bc5780635a0dfe4d116101805780635a0dfe4d1461043b5780635e280f11146104725780636fc1b31e146104a6578063715018a6146104c6578063731133e9146104db57600080fd5b80632eb2c2d61461039b5780633400288b146103bb5780634e1273f4146103db57806352ae2879146104085780635535d4611461041b57600080fd5b806313137d651161020357806313137d65146102fc57806317442b70146103115780631f5e1334146103335780631f7fdffa1461035b5780632250032b1461037b57600080fd5b8062fdd58e1461023457806301ffc9a7146102675780630e89341c14610297578063111ecdad146102c4575b600080fd5b34801561024057600080fd5b5061025461024f366004612689565b610771565b6040519081526020015b60405180910390f35b34801561027357600080fd5b506102876102823660046126cb565b610799565b604051901515815260200161025e565b3480156102a357600080fd5b506102b76102b23660046126e8565b6107e9565b60405161025e9190612751565b3480156102d057600080fd5b506007546102e4906001600160a01b031681565b6040516001600160a01b03909116815260200161025e565b61030f61030a3660046127c4565b61087d565b005b34801561031d57600080fd5b506040805160018152600260208201520161025e565b34801561033f57600080fd5b50610348600181565b60405161ffff909116815260200161025e565b34801561036757600080fd5b5061030f6103763660046129fd565b61093d565b61038e610389366004612aa9565b61094f565b60405161025e9190612b16565b3480156103a757600080fd5b5061030f6103b6366004612b58565b610a2c565b3480156103c757600080fd5b5061030f6103d6366004612c1e565b610a93565b3480156103e757600080fd5b506103fb6103f6366004612c3a565b610aa9565b60405161025e9190612d37565b34801561041457600080fd5b50306102e4565b34801561042757600080fd5b506102b7610436366004612d5c565b610b75565b34801561044757600080fd5b50610287610456366004612c1e565b63ffffffff919091166000908152600460205260409020541490565b34801561047e57600080fd5b506102e47f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b257600080fd5b5061030f6104c1366004612d8f565b610c1a565b3480156104d257600080fd5b5061030f610c77565b3480156104e757600080fd5b5061030f6104f6366004612dac565b610c8b565b34801561050757600080fd5b5061051e610516366004612c1e565b600092915050565b6040516001600160401b03909116815260200161025e565b34801561054257600080fd5b50610287610551366004612e02565b610c97565b34801561056257600080fd5b506003546001600160a01b03166102e4565b34801561058057600080fd5b5061030f61058f366004612e76565b610cac565b3480156105a057600080fd5b506040805163acff303160e01b8152600160208201520161025e565b3480156105c857600080fd5b50610348600281565b3480156105dd57600080fd5b506005546102e4906001600160a01b031681565b3480156105fd57600080fd5b5061030f61060c366004612ef3565b610cb7565b34801561061d57600080fd5b5061025461062c366004612f34565b60046020526000908152604090205481565b34801561064a57600080fd5b506102b7610659366004612f4f565b610cd1565b61030f61066c366004612ef3565b610e79565b34801561067d57600080fd5b5061030f61068c366004612d8f565b611003565b61030f61069f3660046127c4565b611089565b3480156106b057600080fd5b5061030f6106bf366004612d8f565b6110b8565b3480156106d057600080fd5b506106e46106df366004612faf565b61110e565b60405161025e9190612ff5565b3480156106fd57600080fd5b5061028761070c36600461300c565b611154565b34801561071d57600080fd5b5061030f61072c36600461303a565b611182565b34801561073d57600080fd5b5061030f61074c366004612d8f565b6111e1565b34801561075d57600080fd5b5061028761076c3660046130a2565b61121f565b6000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806107ca57506001600160e01b031982166303a24d0760e21b145b8061079357506301ffc9a760e01b6001600160e01b0319831614610793565b6060600280546107f8906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610824906130be565b80156108715780601f1061084657610100808354040283529160200191610871565b820191906000526020600020905b81548152906001019060200180831161085457829003601f168201915b50505050509050919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146108cd576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b602087018035906108e7906108e2908a612f34565b611255565b14610925576108f96020880188612f34565b60405163309afaf360e21b815263ffffffff9091166004820152602088013560248201526044016108c4565b61093487878787878787611291565b50505050505050565b610949848484846113a5565b50505050565b61095761262d565b6109ea61096760408601866130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506109a69250505060608701876130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506109e5925050506020880188612f34565b6113dd565b6000806109f686611416565b9092509050610a22610a0b6020880188612f34565b8383610a1c368a90038a018a61313b565b886115ae565b9695505050505050565b336001600160a01b0386168114801590610a4d5750610a4b8682611154565b155b15610a7e5760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016108c4565b610a8b86868686866116b9565b505050505050565b610a9b611719565b610aa58282611746565b5050565b60608151835114610ada5781518351604051635b05999160e01b8152600481019290925260248201526044016108c4565b600083516001600160401b03811115610af557610af5612863565b604051908082528060200260200182016040528015610b1e578160200160208202803683370190505b50905060005b8451811015610b6d57602080820286010151610b4890602080840287010151610771565b828281518110610b5a57610b5a61316d565b6020908102919091010152600101610b24565b509392505050565b600660209081526000928352604080842090915290825290208054610b99906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc5906130be565b8015610c125780601f10610be757610100808354040283529160200191610c12565b820191906000526020600020905b815481529060010190602001808311610bf557829003601f168201915b505050505081565b610c22611719565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610c7f611719565b610c89600061179b565b565b610949848484846117ed565b6001600160a01b03811630145b949350505050565b610aa533838361184a565b610cbf611719565b610aa5610ccc8284613183565b6118e0565b63ffffffff8416600090815260066020908152604080832061ffff87168452909152812080546060929190610d05906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610d31906130be565b8015610d7e5780601f10610d5357610100808354040283529160200191610d7e565b820191906000526020600020905b815481529060010190602001808311610d6157829003601f168201915b505050505090508051600003610dce5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610ca49350505050565b6000839003610dde579050610ca4565b60028310610e5c57610e2584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119e792505050565b80610e33846002818861324c565b604051602001610e4593929190613276565b604051602081830303815290604052915050610ca4565b8383604051639a6d49cd60e01b81526004016108c49291906132c7565b60005b81811015610f825736838383818110610e9757610e9761316d565b9050602002810190610ea991906132db565b9050610edc610ebb6020830183612f34565b602083013563ffffffff919091166000908152600460205260409020541490565b610ee65750610f7a565b3063d045a0dc60c08301358360a0810135610f056101008301836132fc565b610f16610100890160e08a01612d8f565b610f246101208a018a6132fc565b6040518963ffffffff1660e01b8152600401610f469796959493929190613357565b6000604051808303818588803b158015610f5f57600080fd5b505af1158015610f73573d6000803e3d6000fd5b5050505050505b600101610e7c565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610fc1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe991908101906133dd565b604051638351eea760e01b81526004016108c49190612751565b61100b611719565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561106e57600080fd5b505af1158015611082573d6000803e3d6000fd5b5050505050565b3330146110a95760405163029a949d60e31b815260040160405180910390fd5b61093487878787878787610925565b6110c0611719565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c6c565b604080518082019091526000808252602082015260008061112e85611416565b909250905061114b6111436020870187612f34565b838387611a13565b95945050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b336001600160a01b03861681148015906111a357506111a18682611154565b155b156111d45760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016108c4565b610a8b8686868686611aeb565b6111e9611719565b6001600160a01b03811661121357604051631e4fbdf760e01b8152600060048201526024016108c4565b61121c8161179b565b50565b60006020820180359060049083906112379086612f34565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260046020526040812054806107935760405163f6ff4fb760e01b815263ffffffff841660048201526024016108c4565b60006112a36112a08787611b70565b90565b90506000806112b28888611b8f565b90925090506112cf8383836112ca60208f018f612f34565b611d01565b6112d98888611d1c565b1561139957600061130f6112f360608d0160408e0161344a565b61130060208e018e612f34565b61130a8c8c611d77565b611e1c565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906113659087908e906000908790600401613467565b600060405180830381600087803b15801561137f57600080fd5b505af1158015611393573d6000803e3d6000fd5b50505050505b50505050505050505050565b6001600160a01b0384166113cf57604051632bfa23e760e11b8152600060048201526024016108c4565b610949600085858585611e4b565b6113e73330611154565b61140657604051634ddd35b760e01b81523360048201526024016108c4565b611411338484611e9e565b505050565b60608060006114e8602085013561143060408701876130f2565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061146f9250505060608801886130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506114ae9250505060a08901896132fc565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ee492505050565b90935090506000816114fb5760016114fe565b60025b905061151e6115106020870187612f34565b8261065960808901896132fc565b6007549093506001600160a01b0316156115a75760075460405163043a78eb60e01b81526001600160a01b039091169063043a78eb906115649087908790600401613498565b602060405180830381865afa158015611581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a591906134bd565b505b5050915091565b6115b661262d565b60006115c58460000151611f4f565b6020850151909150156115df576115df8460200151611f77565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff16815260200161162f8c611255565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161166b9291906134da565b60806040518083038185885af1158015611689573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116ae9190613583565b979650505050505050565b6001600160a01b0384166116e357604051632bfa23e760e11b8152600060048201526024016108c4565b6001600160a01b03851661170c57604051626a0d4560e21b8152600060048201526024016108c4565b6110828585858585611e4b565b6003546001600160a01b03163314610c895760405163118cdaa760e01b81523360048201526024016108c4565b63ffffffff8216600081815260046020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03841661181757604051632bfa23e760e11b8152600060048201526024016108c4565b60408051600180825260208201869052818301908152606082018590526080820190925290610a8b600087848487611e4b565b6001600160a01b0382166118735760405162ced3e160e81b8152600060048201526024016108c4565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60005b81518110156119b7576119128282815181106119015761190161316d565b6020026020010151604001516119e7565b8181815181106119245761192461316d565b602002602001015160400151600660008484815181106119465761194661316d565b60200260200101516000015163ffffffff1663ffffffff16815260200190815260200160002060008484815181106119805761198061316d565b60200260200101516020015161ffff1661ffff16815260200190815260200160002090816119ae9190613615565b506001016118e3565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c6c91906136d4565b600281015161ffff8116600314610aa55781604051639a6d49cd60e01b81526004016108c49190612751565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611a7689611255565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611aab9291906134da565b6040805180830381865afa158015611ac7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114b919061375f565b6001600160a01b038416611b1557604051632bfa23e760e11b8152600060048201526024016108c4565b6001600160a01b038516611b3e57604051626a0d4560e21b8152600060048201526024016108c4565b604080516001808252602082018690528183019081526060820185905260808201909252906109348787848487611e4b565b6000611b7f602082848661324c565b611b889161377b565b9392505050565b6060806000611bd385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061205992505050565b9050806001600160401b03811115611bed57611bed612863565b604051908082528060200260200182016040528015611c16578160200160208202803683370190505b509250806001600160401b03811115611c3157611c31612863565b604051908082528060200260200182016040528015611c5a578160200160208202803683370190505b50915060005b81811015611cf857611c7e602082026060810190604001878961324c565b810190611c8b91906126e8565b848281518110611c9d57611c9d61316d565b602090810291909101810191909152611cc690828102908402016060810190604001878961324c565b810190611cd391906126e8565b838281518110611ce557611ce561316d565b6020908102919091010152600101611c60565b50509250929050565b610949848484604051806020016040528060008152506113a5565b604080516020601f8401819004810282018101835283825260009291611d5a9086868083860183828082843760009201919091525061205992505050565b611d6491906137af565b611d6e91906137c6565b90911192915050565b60606000611dba84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061205992505050565b90508383611dc98360206137af565b611dd49060406137c6565b611ddf92829061324c565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092979650505050505050565b6060838383604051602001611e33939291906137d9565b60405160208183030381529060405290509392505050565b611e5785858585612060565b6001600160a01b038416156110825782513390600103611e905760208481015190840151611e89838989858589612274565b5050610a8b565b610a8b818787878787612398565b6001600160a01b038316611ec757604051626a0d4560e21b8152600060048201526024016108c4565b611411836000848460405180602001604052806000815250611e4b565b8051606090151580611f1b578451604051611f0791889188908890602001613848565b604051602081830303815290604052611f44565b8451604051611f34918891889088908890602001613869565b6040516020818303038152906040525b915094509492505050565b6000813414611f73576040516304fb820960e51b81523460048201526024016108c4565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffb91906138a6565b90506001600160a01b038116612024576040516329b99a9560e11b815260040160405180910390fd5b610aa56001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612481565b6040015190565b805182511461208f5781518151604051635b05999160e01b8152600481019290925260248201526044016108c4565b3360005b8351811015612195576020818102858101820151908501909101516001600160a01b03881615612146576000828152602081815260408083206001600160a01b038c1684529091529020548181101561211f576040516303dee4c560e01b81526001600160a01b038a1660048201526024810182905260448101839052606481018490526084016108c4565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b0387161561218b576000828152602081815260408083206001600160a01b038b168452909152812080548392906121859084906137c6565b90915550505b5050600101612093565b5082516001036122165760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612207929190918252602082015260400190565b60405180910390a45050611082565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516122659291906138c3565b60405180910390a45050505050565b6001600160a01b0384163b15610a8b5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906122b890899089908890889088906004016138e8565b6020604051808303816000875af19250505080156122f3575060408051601f3d908101601f191682019092526122f091810190613922565b60015b61235c573d808015612321576040519150601f19603f3d011682016040523d82523d6000602084013e612326565b606091505b50805160000361235457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b1461093457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b6001600160a01b0384163b15610a8b5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906123dc908990899088908890889060040161393f565b6020604051808303816000875af1925050508015612417575060408051601f3d908101601f1916820190925261241491810190613922565b60015b612445573d808015612321576040519150601f19603f3d011682016040523d82523d6000602084013e612326565b6001600160e01b0319811663bc197c8160e01b1461093457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610949918691906000906124e790841683612535565b9050805160001415801561250c57508080602001905181019061250a91906134bd565b155b1561141157604051635274afe760e01b81526001600160a01b03841660048201526024016108c4565b6060611b888383600084600080856001600160a01b0316848660405161255b919061399d565b60006040518083038185875af1925050503d8060008114612598576040519150601f19603f3d011682016040523d82523d6000602084013e61259d565b606091505b5091509150610a228683836060826125bd576125b882612604565b611b88565b81511580156125d457506001600160a01b0384163b155b156125fd57604051639996b31560e01b81526001600160a01b03851660048201526024016108c4565b5080611b88565b8051156126145780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b0316815260200161266f604051806040016040528060008152602001600081525090565b905290565b6001600160a01b038116811461121c57600080fd5b6000806040838503121561269c57600080fd5b82356126a781612674565b946020939093013593505050565b6001600160e01b03198116811461121c57600080fd5b6000602082840312156126dd57600080fd5b8135611b88816126b5565b6000602082840312156126fa57600080fd5b5035919050565b60005b8381101561271c578181015183820152602001612704565b50506000910152565b6000815180845261273d816020860160208601612701565b601f01601f19169290920160200192915050565b602081526000611b886020830184612725565b60006060828403121561277657600080fd5b50919050565b60008083601f84011261278e57600080fd5b5081356001600160401b038111156127a557600080fd5b6020830191508360208285010111156127bd57600080fd5b9250929050565b600080600080600080600060e0888a0312156127df57600080fd5b6127e98989612764565b96506060880135955060808801356001600160401b038082111561280c57600080fd5b6128188b838c0161277c565b909750955060a08a0135915061282d82612674565b90935060c0890135908082111561284357600080fd5b506128508a828b0161277c565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561289b5761289b612863565b60405290565b604051606081016001600160401b038111828210171561289b5761289b612863565b604051601f8201601f191681016001600160401b03811182821017156128eb576128eb612863565b604052919050565b60006001600160401b0382111561290c5761290c612863565b5060051b60200190565b600082601f83011261292757600080fd5b8135602061293c612937836128f3565b6128c3565b8083825260208201915060208460051b87010193508684111561295e57600080fd5b602086015b8481101561297a5780358352918301918301612963565b509695505050505050565b60006001600160401b0382111561299e5761299e612863565b50601f01601f191660200190565b600082601f8301126129bd57600080fd5b81356129cb61293782612985565b8181528460208386010111156129e057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a1357600080fd5b8435612a1e81612674565b935060208501356001600160401b0380821115612a3a57600080fd5b612a4688838901612916565b94506040870135915080821115612a5c57600080fd5b612a6888838901612916565b93506060870135915080821115612a7e57600080fd5b50612a8b878288016129ac565b91505092959194509250565b600060e0828403121561277657600080fd5b60008060008385036080811215612abf57600080fd5b84356001600160401b03811115612ad557600080fd5b612ae187828801612a97565b9450506040601f1982011215612af657600080fd5b506020840191506060840135612b0b81612674565b809150509250925092565b6000608082019050825182526001600160401b0360208401511660208301526040830151612b51604084018280518252602090810151910152565b5092915050565b600080600080600060a08688031215612b7057600080fd5b8535612b7b81612674565b94506020860135612b8b81612674565b935060408601356001600160401b0380821115612ba757600080fd5b612bb389838a01612916565b94506060880135915080821115612bc957600080fd5b612bd589838a01612916565b93506080880135915080821115612beb57600080fd5b50612bf8888289016129ac565b9150509295509295909350565b803563ffffffff81168114612c1957600080fd5b919050565b60008060408385031215612c3157600080fd5b6126a783612c05565b60008060408385031215612c4d57600080fd5b82356001600160401b0380821115612c6457600080fd5b818501915085601f830112612c7857600080fd5b81356020612c88612937836128f3565b82815260059290921b84018101918181019089841115612ca757600080fd5b948201945b83861015612cce578535612cbf81612674565b82529482019490820190612cac565b96505086013592505080821115612ce457600080fd5b50612cf185828601612916565b9150509250929050565b60008151808452602080850194506020840160005b83811015612d2c57815187529582019590820190600101612d10565b509495945050505050565b602081526000611b886020830184612cfb565b803561ffff81168114612c1957600080fd5b60008060408385031215612d6f57600080fd5b612d7883612c05565b9150612d8660208401612d4a565b90509250929050565b600060208284031215612da157600080fd5b8135611b8881612674565b60008060008060808587031215612dc257600080fd5b8435612dcd81612674565b9350602085013592506040850135915060608501356001600160401b03811115612df657600080fd5b612a8b878288016129ac565b60008060008060a08587031215612e1857600080fd5b612e228686612764565b935060608501356001600160401b03811115612e3d57600080fd5b612e498782880161277c565b9094509250506080850135612e5d81612674565b939692955090935050565b801515811461121c57600080fd5b60008060408385031215612e8957600080fd5b8235612e9481612674565b91506020830135612ea481612e68565b809150509250929050565b60008083601f840112612ec157600080fd5b5081356001600160401b03811115612ed857600080fd5b6020830191508360208260051b85010111156127bd57600080fd5b60008060208385031215612f0657600080fd5b82356001600160401b03811115612f1c57600080fd5b612f2885828601612eaf565b90969095509350505050565b600060208284031215612f4657600080fd5b611b8882612c05565b60008060008060608587031215612f6557600080fd5b612f6e85612c05565b9350612f7c60208601612d4a565b925060408501356001600160401b03811115612f9757600080fd5b612fa38782880161277c565b95989497509550505050565b60008060408385031215612fc257600080fd5b82356001600160401b03811115612fd857600080fd5b612fe485828601612a97565b9250506020830135612ea481612e68565b815181526020808301519082015260408101610793565b6000806040838503121561301f57600080fd5b823561302a81612674565b91506020830135612ea481612674565b600080600080600060a0868803121561305257600080fd5b853561305d81612674565b9450602086013561306d81612674565b9350604086013592506060860135915060808601356001600160401b0381111561309657600080fd5b612bf8888289016129ac565b6000606082840312156130b457600080fd5b611b888383612764565b600181811c908216806130d257607f821691505b60208210810361277657634e487b7160e01b600052602260045260246000fd5b6000808335601e1984360301811261310957600080fd5b8301803591506001600160401b0382111561312357600080fd5b6020019150600581901b36038213156127bd57600080fd5b60006040828403121561314d57600080fd5b613155612879565b82358152602083013560208201528091505092915050565b634e487b7160e01b600052603260045260246000fd5b6000613191612937846128f3565b80848252602080830192508560051b8501368111156131af57600080fd5b855b818110156132405780356001600160401b03808211156131d15760008081fd5b8189019150606082360312156131e75760008081fd5b6131ef6128a1565b6131f883612c05565b8152613205868401612d4a565b868201526040808401358381111561321d5760008081fd5b613229368287016129ac565b9183019190915250875250509382019382016131b1565b50919695505050505050565b6000808585111561325c57600080fd5b8386111561326957600080fd5b5050820193919092039150565b60008451613288818460208901612701565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610ca460208301848661329e565b6000823561013e198336030181126132f257600080fd5b9190910192915050565b6000808335601e1984360301811261331357600080fd5b8301803591506001600160401b0382111561332d57600080fd5b6020019150368190038213156127bd57600080fd5b6001600160401b038116811461121c57600080fd5b63ffffffff61336589612c05565b168152602088013560208201526000604089013561338281613342565b6001600160401b03811660408401525087606083015260e060808301526133ad60e08301878961329e565b6001600160a01b03861660a084015282810360c08401526133cf81858761329e565b9a9950505050505050505050565b6000602082840312156133ef57600080fd5b81516001600160401b0381111561340557600080fd5b8201601f8101841361341657600080fd5b805161342461293782612985565b81815285602083850101111561343957600080fd5b61114b826020830160208601612701565b60006020828403121561345c57600080fd5b8135611b8881613342565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000610a226080830184612725565b6040815260006134ab6040830185612725565b828103602084015261114b8185612725565b6000602082840312156134cf57600080fd5b8151611b8881612e68565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261351060e0840182612725565b90506060850151603f198483030160a085015261352d8282612725565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561356557600080fd5b61356d612879565b9050815181526020820151602082015292915050565b60006080828403121561359557600080fd5b61359d6128a1565b8251815260208301516135af81613342565b60208201526135c18460408501613553565b60408201529392505050565b601f821115611411576000816000526020600020601f850160051c810160208610156135f65750805b601f850160051c820191505b81811015610a8b57828155600101613602565b81516001600160401b0381111561362e5761362e612863565b6136428161363c84546130be565b846135cd565b602080601f831160018114613677576000841561365f5750858301515b600019600386901b1c1916600185901b178555610a8b565b600085815260208120601f198616915b828110156136a657888601518255948401946001909101908401613687565b50858210156136c45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561375157888303603f190185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261373d81860183612725565b9689019694505050908601906001016136fd565b509098975050505050505050565b60006040828403121561377157600080fd5b611b888383613553565b8035602083101561079357600019602084900360031b1b1692915050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761079357610793613799565b8082018082111561079357610793613799565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061381481600c850160208701612701565b91909101600c01949350505050565b80516000906020808401838315612d2c57815187529582019590820190600101612d10565b8481528360208201526000610a226138636040840186613823565b84613823565b858152846020820152600061388a6138846040840187613823565b85613823565b835161389a818360208801612701565b01979650505050505050565b6000602082840312156138b857600080fd5b8151611b8881612674565b6040815260006138d66040830185612cfb565b828103602084015261114b8185612cfb565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906116ae90830184612725565b60006020828403121561393457600080fd5b8151611b88816126b5565b6001600160a01b0386811682528516602082015260a06040820181905260009061396b90830186612cfb565b828103606084015261397d8186612cfb565b905082810360808401526139918185612725565b98975050505050505050565b600082516132f281846020870161270156fea2646970667358221220821dbd374ba81349ad36112c4f0566b1ec767a4134f68c2e85102e028aad346764736f6c63430008160033","sourceMap":"138:483:139:-:0;;;178:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;259:4;265:11;278:9;265:11;278:9;265:11;278:9;265:11;278:9;;259:4;1293:13:107;259:4:139;1293:7:107;:13::i;:::-;-1:-1:-1;;;;;;1273:26:105;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:105;;1350:1;1322:31;;;1693:51:145;1666:18;;1322:31:105;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:33;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:33;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:33;;-1:-1:-1;;;;;1711:32:145;;;1163:31:33;;;1693:51:145;1163:20:33;;;;;;1666:18:145;;1163:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;965:83:32;;1380:102:2;;246:155:1;;;178:113:139;;;138:483;;10282:86:107;10348:4;:13;10355:6;10348:4;:13;:::i;:::-;;10282:86;:::o;2912:187:105:-;3004:6;;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;14:127:145:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:145;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1214::-;426:6;434;442;495:2;483:9;474:7;470:23;466:32;463:52;;;511:1;508;501:12;463:52;538:16;;-1:-1:-1;;;;;603:14:145;;;600:34;;;630:1;627;620:12;600:34;668:6;657:9;653:22;643:32;;713:7;706:4;702:2;698:13;694:27;684:55;;735:1;732;725:12;684:55;764:2;758:9;786:2;782;779:10;776:36;;;792:18;;:::i;:::-;867:2;861:9;835:2;921:13;;-1:-1:-1;;917:22:145;;;941:2;913:31;909:40;897:53;;;965:18;;;985:22;;;962:46;959:72;;;1011:18;;:::i;:::-;1051:10;1047:2;1040:22;1086:2;1078:6;1071:18;1108:4;1098:14;;1149:7;1144:2;1139;1135;1131:11;1127:20;1124:33;1121:53;;;1170:1;1167;1160:12;1121:53;1192:1;1183:10;;1202:129;1216:2;1213:1;1210:9;1202:129;;;1304:10;;;1300:19;;1294:26;1273:14;;;1269:23;;1262:59;1227:10;;;;1202:129;;;1373:1;1368:2;1363;1355:6;1351:15;1347:24;1340:35;1394:6;1384:16;;;;;1419:49;1464:2;1453:9;1449:18;1419:49;:::i;:::-;1409:59;;;;1487:49;1532:2;1521:9;1517:18;1487:49;:::i;:::-;1477:59;;328:1214;;;;;:::o;1755:380::-;1834:1;1830:12;;;;1877;;;1898:61;;1952:4;1944:6;1940:17;1930:27;;1898:61;2005:2;1997:6;1994:14;1974:18;1971:38;1968:161;;2051:10;2046:3;2042:20;2039:1;2032:31;2086:4;2083:1;2076:15;2114:4;2111:1;2104:15;1968:161;;1755:380;;;:::o;2266:543::-;2368:2;2363:3;2360:11;2357:446;;;2404:1;2428:5;2425:1;2418:16;2472:4;2469:1;2459:18;2542:2;2530:10;2526:19;2523:1;2519:27;2513:4;2509:38;2578:4;2566:10;2563:20;2560:47;;;-1:-1:-1;2601:4:145;2560:47;2656:2;2651:3;2647:12;2644:1;2640:20;2634:4;2630:31;2620:41;;2711:82;2729:2;2722:5;2719:13;2711:82;;;2774:17;;;2755:1;2744:13;2711:82;;;2715:3;;;2357:446;2266:543;;;:::o;2985:1345::-;3105:10;;-1:-1:-1;;;;;3127:30:145;;3124:56;;;3160:18;;:::i;:::-;3189:97;3279:6;3239:38;3271:4;3265:11;3239:38;:::i;:::-;3233:4;3189:97;:::i;:::-;3341:4;;3398:2;3387:14;;3415:1;3410:663;;;;4117:1;4134:6;4131:89;;;-1:-1:-1;4186:19:145;;;4180:26;4131:89;-1:-1:-1;;2942:1:145;2938:11;;;2934:24;2930:29;2920:40;2966:1;2962:11;;;2917:57;4233:81;;3380:944;;3410:663;2213:1;2206:14;;;2250:4;2237:18;;-1:-1:-1;;3446:20:145;;;3564:236;3578:7;3575:1;3572:14;3564:236;;;3667:19;;;3661:26;3646:42;;3759:27;;;;3727:1;3715:14;;;;3594:19;;3564:236;;;3568:3;3828:6;3819:7;3816:19;3813:201;;;3889:19;;;3883:26;-1:-1:-1;;3972:1:145;3968:14;;;3984:3;3964:24;3960:37;3956:42;3941:58;3926:74;;3813:201;-1:-1:-1;;;;;4060:1:145;4044:14;;;4040:22;4027:36;;-1:-1:-1;2985:1345:145:o;:::-;138:483:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061022f5760003560e01c80637d25a05e1161012e578063bd815db0116100ab578063e985e9c51161006f578063e985e9c5146106f1578063f242432a14610711578063f2fde38b14610731578063fc0c546a14610408578063ff7bd03d1461075157600080fd5b8063bd815db01461065e578063ca5eb5e114610671578063d045a0dc14610691578063d4243885146106a4578063d58c3aa8146106c457600080fd5b8063b21a33e4116100f2578063b21a33e4146105bc578063b731ea0a146105d1578063b98bd070146105f1578063bb0b6a5314610611578063bc70b3541461063e57600080fd5b80637d25a05e146104fb57806382413eac146105365780638da5cb5b14610556578063a22cb46514610574578063a72f5dd81461059457600080fd5b80632eb2c2d6116101bc5780635a0dfe4d116101805780635a0dfe4d1461043b5780635e280f11146104725780636fc1b31e146104a6578063715018a6146104c6578063731133e9146104db57600080fd5b80632eb2c2d61461039b5780633400288b146103bb5780634e1273f4146103db57806352ae2879146104085780635535d4611461041b57600080fd5b806313137d651161020357806313137d65146102fc57806317442b70146103115780631f5e1334146103335780631f7fdffa1461035b5780632250032b1461037b57600080fd5b8062fdd58e1461023457806301ffc9a7146102675780630e89341c14610297578063111ecdad146102c4575b600080fd5b34801561024057600080fd5b5061025461024f366004612689565b610771565b6040519081526020015b60405180910390f35b34801561027357600080fd5b506102876102823660046126cb565b610799565b604051901515815260200161025e565b3480156102a357600080fd5b506102b76102b23660046126e8565b6107e9565b60405161025e9190612751565b3480156102d057600080fd5b506007546102e4906001600160a01b031681565b6040516001600160a01b03909116815260200161025e565b61030f61030a3660046127c4565b61087d565b005b34801561031d57600080fd5b506040805160018152600260208201520161025e565b34801561033f57600080fd5b50610348600181565b60405161ffff909116815260200161025e565b34801561036757600080fd5b5061030f6103763660046129fd565b61093d565b61038e610389366004612aa9565b61094f565b60405161025e9190612b16565b3480156103a757600080fd5b5061030f6103b6366004612b58565b610a2c565b3480156103c757600080fd5b5061030f6103d6366004612c1e565b610a93565b3480156103e757600080fd5b506103fb6103f6366004612c3a565b610aa9565b60405161025e9190612d37565b34801561041457600080fd5b50306102e4565b34801561042757600080fd5b506102b7610436366004612d5c565b610b75565b34801561044757600080fd5b50610287610456366004612c1e565b63ffffffff919091166000908152600460205260409020541490565b34801561047e57600080fd5b506102e47f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b257600080fd5b5061030f6104c1366004612d8f565b610c1a565b3480156104d257600080fd5b5061030f610c77565b3480156104e757600080fd5b5061030f6104f6366004612dac565b610c8b565b34801561050757600080fd5b5061051e610516366004612c1e565b600092915050565b6040516001600160401b03909116815260200161025e565b34801561054257600080fd5b50610287610551366004612e02565b610c97565b34801561056257600080fd5b506003546001600160a01b03166102e4565b34801561058057600080fd5b5061030f61058f366004612e76565b610cac565b3480156105a057600080fd5b506040805163acff303160e01b8152600160208201520161025e565b3480156105c857600080fd5b50610348600281565b3480156105dd57600080fd5b506005546102e4906001600160a01b031681565b3480156105fd57600080fd5b5061030f61060c366004612ef3565b610cb7565b34801561061d57600080fd5b5061025461062c366004612f34565b60046020526000908152604090205481565b34801561064a57600080fd5b506102b7610659366004612f4f565b610cd1565b61030f61066c366004612ef3565b610e79565b34801561067d57600080fd5b5061030f61068c366004612d8f565b611003565b61030f61069f3660046127c4565b611089565b3480156106b057600080fd5b5061030f6106bf366004612d8f565b6110b8565b3480156106d057600080fd5b506106e46106df366004612faf565b61110e565b60405161025e9190612ff5565b3480156106fd57600080fd5b5061028761070c36600461300c565b611154565b34801561071d57600080fd5b5061030f61072c36600461303a565b611182565b34801561073d57600080fd5b5061030f61074c366004612d8f565b6111e1565b34801561075d57600080fd5b5061028761076c3660046130a2565b61121f565b6000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806107ca57506001600160e01b031982166303a24d0760e21b145b8061079357506301ffc9a760e01b6001600160e01b0319831614610793565b6060600280546107f8906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610824906130be565b80156108715780601f1061084657610100808354040283529160200191610871565b820191906000526020600020905b81548152906001019060200180831161085457829003601f168201915b50505050509050919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146108cd576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b602087018035906108e7906108e2908a612f34565b611255565b14610925576108f96020880188612f34565b60405163309afaf360e21b815263ffffffff9091166004820152602088013560248201526044016108c4565b61093487878787878787611291565b50505050505050565b610949848484846113a5565b50505050565b61095761262d565b6109ea61096760408601866130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506109a69250505060608701876130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506109e5925050506020880188612f34565b6113dd565b6000806109f686611416565b9092509050610a22610a0b6020880188612f34565b8383610a1c368a90038a018a61313b565b886115ae565b9695505050505050565b336001600160a01b0386168114801590610a4d5750610a4b8682611154565b155b15610a7e5760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016108c4565b610a8b86868686866116b9565b505050505050565b610a9b611719565b610aa58282611746565b5050565b60608151835114610ada5781518351604051635b05999160e01b8152600481019290925260248201526044016108c4565b600083516001600160401b03811115610af557610af5612863565b604051908082528060200260200182016040528015610b1e578160200160208202803683370190505b50905060005b8451811015610b6d57602080820286010151610b4890602080840287010151610771565b828281518110610b5a57610b5a61316d565b6020908102919091010152600101610b24565b509392505050565b600660209081526000928352604080842090915290825290208054610b99906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc5906130be565b8015610c125780601f10610be757610100808354040283529160200191610c12565b820191906000526020600020905b815481529060010190602001808311610bf557829003601f168201915b505050505081565b610c22611719565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610c7f611719565b610c89600061179b565b565b610949848484846117ed565b6001600160a01b03811630145b949350505050565b610aa533838361184a565b610cbf611719565b610aa5610ccc8284613183565b6118e0565b63ffffffff8416600090815260066020908152604080832061ffff87168452909152812080546060929190610d05906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610d31906130be565b8015610d7e5780601f10610d5357610100808354040283529160200191610d7e565b820191906000526020600020905b815481529060010190602001808311610d6157829003601f168201915b505050505090508051600003610dce5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610ca49350505050565b6000839003610dde579050610ca4565b60028310610e5c57610e2584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119e792505050565b80610e33846002818861324c565b604051602001610e4593929190613276565b604051602081830303815290604052915050610ca4565b8383604051639a6d49cd60e01b81526004016108c49291906132c7565b60005b81811015610f825736838383818110610e9757610e9761316d565b9050602002810190610ea991906132db565b9050610edc610ebb6020830183612f34565b602083013563ffffffff919091166000908152600460205260409020541490565b610ee65750610f7a565b3063d045a0dc60c08301358360a0810135610f056101008301836132fc565b610f16610100890160e08a01612d8f565b610f246101208a018a6132fc565b6040518963ffffffff1660e01b8152600401610f469796959493929190613357565b6000604051808303818588803b158015610f5f57600080fd5b505af1158015610f73573d6000803e3d6000fd5b5050505050505b600101610e7c565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610fc1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe991908101906133dd565b604051638351eea760e01b81526004016108c49190612751565b61100b611719565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561106e57600080fd5b505af1158015611082573d6000803e3d6000fd5b5050505050565b3330146110a95760405163029a949d60e31b815260040160405180910390fd5b61093487878787878787610925565b6110c0611719565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c6c565b604080518082019091526000808252602082015260008061112e85611416565b909250905061114b6111436020870187612f34565b838387611a13565b95945050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b336001600160a01b03861681148015906111a357506111a18682611154565b155b156111d45760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016108c4565b610a8b8686868686611aeb565b6111e9611719565b6001600160a01b03811661121357604051631e4fbdf760e01b8152600060048201526024016108c4565b61121c8161179b565b50565b60006020820180359060049083906112379086612f34565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260046020526040812054806107935760405163f6ff4fb760e01b815263ffffffff841660048201526024016108c4565b60006112a36112a08787611b70565b90565b90506000806112b28888611b8f565b90925090506112cf8383836112ca60208f018f612f34565b611d01565b6112d98888611d1c565b1561139957600061130f6112f360608d0160408e0161344a565b61130060208e018e612f34565b61130a8c8c611d77565b611e1c565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906113659087908e906000908790600401613467565b600060405180830381600087803b15801561137f57600080fd5b505af1158015611393573d6000803e3d6000fd5b50505050505b50505050505050505050565b6001600160a01b0384166113cf57604051632bfa23e760e11b8152600060048201526024016108c4565b610949600085858585611e4b565b6113e73330611154565b61140657604051634ddd35b760e01b81523360048201526024016108c4565b611411338484611e9e565b505050565b60608060006114e8602085013561143060408701876130f2565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061146f9250505060608801886130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506114ae9250505060a08901896132fc565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ee492505050565b90935090506000816114fb5760016114fe565b60025b905061151e6115106020870187612f34565b8261065960808901896132fc565b6007549093506001600160a01b0316156115a75760075460405163043a78eb60e01b81526001600160a01b039091169063043a78eb906115649087908790600401613498565b602060405180830381865afa158015611581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a591906134bd565b505b5050915091565b6115b661262d565b60006115c58460000151611f4f565b6020850151909150156115df576115df8460200151611f77565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff16815260200161162f8c611255565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161166b9291906134da565b60806040518083038185885af1158015611689573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116ae9190613583565b979650505050505050565b6001600160a01b0384166116e357604051632bfa23e760e11b8152600060048201526024016108c4565b6001600160a01b03851661170c57604051626a0d4560e21b8152600060048201526024016108c4565b6110828585858585611e4b565b6003546001600160a01b03163314610c895760405163118cdaa760e01b81523360048201526024016108c4565b63ffffffff8216600081815260046020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03841661181757604051632bfa23e760e11b8152600060048201526024016108c4565b60408051600180825260208201869052818301908152606082018590526080820190925290610a8b600087848487611e4b565b6001600160a01b0382166118735760405162ced3e160e81b8152600060048201526024016108c4565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60005b81518110156119b7576119128282815181106119015761190161316d565b6020026020010151604001516119e7565b8181815181106119245761192461316d565b602002602001015160400151600660008484815181106119465761194661316d565b60200260200101516000015163ffffffff1663ffffffff16815260200190815260200160002060008484815181106119805761198061316d565b60200260200101516020015161ffff1661ffff16815260200190815260200160002090816119ae9190613615565b506001016118e3565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c6c91906136d4565b600281015161ffff8116600314610aa55781604051639a6d49cd60e01b81526004016108c49190612751565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611a7689611255565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611aab9291906134da565b6040805180830381865afa158015611ac7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114b919061375f565b6001600160a01b038416611b1557604051632bfa23e760e11b8152600060048201526024016108c4565b6001600160a01b038516611b3e57604051626a0d4560e21b8152600060048201526024016108c4565b604080516001808252602082018690528183019081526060820185905260808201909252906109348787848487611e4b565b6000611b7f602082848661324c565b611b889161377b565b9392505050565b6060806000611bd385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061205992505050565b9050806001600160401b03811115611bed57611bed612863565b604051908082528060200260200182016040528015611c16578160200160208202803683370190505b509250806001600160401b03811115611c3157611c31612863565b604051908082528060200260200182016040528015611c5a578160200160208202803683370190505b50915060005b81811015611cf857611c7e602082026060810190604001878961324c565b810190611c8b91906126e8565b848281518110611c9d57611c9d61316d565b602090810291909101810191909152611cc690828102908402016060810190604001878961324c565b810190611cd391906126e8565b838281518110611ce557611ce561316d565b6020908102919091010152600101611c60565b50509250929050565b610949848484604051806020016040528060008152506113a5565b604080516020601f8401819004810282018101835283825260009291611d5a9086868083860183828082843760009201919091525061205992505050565b611d6491906137af565b611d6e91906137c6565b90911192915050565b60606000611dba84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061205992505050565b90508383611dc98360206137af565b611dd49060406137c6565b611ddf92829061324c565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092979650505050505050565b6060838383604051602001611e33939291906137d9565b60405160208183030381529060405290509392505050565b611e5785858585612060565b6001600160a01b038416156110825782513390600103611e905760208481015190840151611e89838989858589612274565b5050610a8b565b610a8b818787878787612398565b6001600160a01b038316611ec757604051626a0d4560e21b8152600060048201526024016108c4565b611411836000848460405180602001604052806000815250611e4b565b8051606090151580611f1b578451604051611f0791889188908890602001613848565b604051602081830303815290604052611f44565b8451604051611f34918891889088908890602001613869565b6040516020818303038152906040525b915094509492505050565b6000813414611f73576040516304fb820960e51b81523460048201526024016108c4565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffb91906138a6565b90506001600160a01b038116612024576040516329b99a9560e11b815260040160405180910390fd5b610aa56001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612481565b6040015190565b805182511461208f5781518151604051635b05999160e01b8152600481019290925260248201526044016108c4565b3360005b8351811015612195576020818102858101820151908501909101516001600160a01b03881615612146576000828152602081815260408083206001600160a01b038c1684529091529020548181101561211f576040516303dee4c560e01b81526001600160a01b038a1660048201526024810182905260448101839052606481018490526084016108c4565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b0387161561218b576000828152602081815260408083206001600160a01b038b168452909152812080548392906121859084906137c6565b90915550505b5050600101612093565b5082516001036122165760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612207929190918252602082015260400190565b60405180910390a45050611082565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516122659291906138c3565b60405180910390a45050505050565b6001600160a01b0384163b15610a8b5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906122b890899089908890889088906004016138e8565b6020604051808303816000875af19250505080156122f3575060408051601f3d908101601f191682019092526122f091810190613922565b60015b61235c573d808015612321576040519150601f19603f3d011682016040523d82523d6000602084013e612326565b606091505b50805160000361235457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b1461093457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b6001600160a01b0384163b15610a8b5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906123dc908990899088908890889060040161393f565b6020604051808303816000875af1925050508015612417575060408051601f3d908101601f1916820190925261241491810190613922565b60015b612445573d808015612321576040519150601f19603f3d011682016040523d82523d6000602084013e612326565b6001600160e01b0319811663bc197c8160e01b1461093457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610949918691906000906124e790841683612535565b9050805160001415801561250c57508080602001905181019061250a91906134bd565b155b1561141157604051635274afe760e01b81526001600160a01b03841660048201526024016108c4565b6060611b888383600084600080856001600160a01b0316848660405161255b919061399d565b60006040518083038185875af1925050503d8060008114612598576040519150601f19603f3d011682016040523d82523d6000602084013e61259d565b606091505b5091509150610a228683836060826125bd576125b882612604565b611b88565b81511580156125d457506001600160a01b0384163b155b156125fd57604051639996b31560e01b81526001600160a01b03851660048201526024016108c4565b5080611b88565b8051156126145780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b0316815260200161266f604051806040016040528060008152602001600081525090565b905290565b6001600160a01b038116811461121c57600080fd5b6000806040838503121561269c57600080fd5b82356126a781612674565b946020939093013593505050565b6001600160e01b03198116811461121c57600080fd5b6000602082840312156126dd57600080fd5b8135611b88816126b5565b6000602082840312156126fa57600080fd5b5035919050565b60005b8381101561271c578181015183820152602001612704565b50506000910152565b6000815180845261273d816020860160208601612701565b601f01601f19169290920160200192915050565b602081526000611b886020830184612725565b60006060828403121561277657600080fd5b50919050565b60008083601f84011261278e57600080fd5b5081356001600160401b038111156127a557600080fd5b6020830191508360208285010111156127bd57600080fd5b9250929050565b600080600080600080600060e0888a0312156127df57600080fd5b6127e98989612764565b96506060880135955060808801356001600160401b038082111561280c57600080fd5b6128188b838c0161277c565b909750955060a08a0135915061282d82612674565b90935060c0890135908082111561284357600080fd5b506128508a828b0161277c565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561289b5761289b612863565b60405290565b604051606081016001600160401b038111828210171561289b5761289b612863565b604051601f8201601f191681016001600160401b03811182821017156128eb576128eb612863565b604052919050565b60006001600160401b0382111561290c5761290c612863565b5060051b60200190565b600082601f83011261292757600080fd5b8135602061293c612937836128f3565b6128c3565b8083825260208201915060208460051b87010193508684111561295e57600080fd5b602086015b8481101561297a5780358352918301918301612963565b509695505050505050565b60006001600160401b0382111561299e5761299e612863565b50601f01601f191660200190565b600082601f8301126129bd57600080fd5b81356129cb61293782612985565b8181528460208386010111156129e057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a1357600080fd5b8435612a1e81612674565b935060208501356001600160401b0380821115612a3a57600080fd5b612a4688838901612916565b94506040870135915080821115612a5c57600080fd5b612a6888838901612916565b93506060870135915080821115612a7e57600080fd5b50612a8b878288016129ac565b91505092959194509250565b600060e0828403121561277657600080fd5b60008060008385036080811215612abf57600080fd5b84356001600160401b03811115612ad557600080fd5b612ae187828801612a97565b9450506040601f1982011215612af657600080fd5b506020840191506060840135612b0b81612674565b809150509250925092565b6000608082019050825182526001600160401b0360208401511660208301526040830151612b51604084018280518252602090810151910152565b5092915050565b600080600080600060a08688031215612b7057600080fd5b8535612b7b81612674565b94506020860135612b8b81612674565b935060408601356001600160401b0380821115612ba757600080fd5b612bb389838a01612916565b94506060880135915080821115612bc957600080fd5b612bd589838a01612916565b93506080880135915080821115612beb57600080fd5b50612bf8888289016129ac565b9150509295509295909350565b803563ffffffff81168114612c1957600080fd5b919050565b60008060408385031215612c3157600080fd5b6126a783612c05565b60008060408385031215612c4d57600080fd5b82356001600160401b0380821115612c6457600080fd5b818501915085601f830112612c7857600080fd5b81356020612c88612937836128f3565b82815260059290921b84018101918181019089841115612ca757600080fd5b948201945b83861015612cce578535612cbf81612674565b82529482019490820190612cac565b96505086013592505080821115612ce457600080fd5b50612cf185828601612916565b9150509250929050565b60008151808452602080850194506020840160005b83811015612d2c57815187529582019590820190600101612d10565b509495945050505050565b602081526000611b886020830184612cfb565b803561ffff81168114612c1957600080fd5b60008060408385031215612d6f57600080fd5b612d7883612c05565b9150612d8660208401612d4a565b90509250929050565b600060208284031215612da157600080fd5b8135611b8881612674565b60008060008060808587031215612dc257600080fd5b8435612dcd81612674565b9350602085013592506040850135915060608501356001600160401b03811115612df657600080fd5b612a8b878288016129ac565b60008060008060a08587031215612e1857600080fd5b612e228686612764565b935060608501356001600160401b03811115612e3d57600080fd5b612e498782880161277c565b9094509250506080850135612e5d81612674565b939692955090935050565b801515811461121c57600080fd5b60008060408385031215612e8957600080fd5b8235612e9481612674565b91506020830135612ea481612e68565b809150509250929050565b60008083601f840112612ec157600080fd5b5081356001600160401b03811115612ed857600080fd5b6020830191508360208260051b85010111156127bd57600080fd5b60008060208385031215612f0657600080fd5b82356001600160401b03811115612f1c57600080fd5b612f2885828601612eaf565b90969095509350505050565b600060208284031215612f4657600080fd5b611b8882612c05565b60008060008060608587031215612f6557600080fd5b612f6e85612c05565b9350612f7c60208601612d4a565b925060408501356001600160401b03811115612f9757600080fd5b612fa38782880161277c565b95989497509550505050565b60008060408385031215612fc257600080fd5b82356001600160401b03811115612fd857600080fd5b612fe485828601612a97565b9250506020830135612ea481612e68565b815181526020808301519082015260408101610793565b6000806040838503121561301f57600080fd5b823561302a81612674565b91506020830135612ea481612674565b600080600080600060a0868803121561305257600080fd5b853561305d81612674565b9450602086013561306d81612674565b9350604086013592506060860135915060808601356001600160401b0381111561309657600080fd5b612bf8888289016129ac565b6000606082840312156130b457600080fd5b611b888383612764565b600181811c908216806130d257607f821691505b60208210810361277657634e487b7160e01b600052602260045260246000fd5b6000808335601e1984360301811261310957600080fd5b8301803591506001600160401b0382111561312357600080fd5b6020019150600581901b36038213156127bd57600080fd5b60006040828403121561314d57600080fd5b613155612879565b82358152602083013560208201528091505092915050565b634e487b7160e01b600052603260045260246000fd5b6000613191612937846128f3565b80848252602080830192508560051b8501368111156131af57600080fd5b855b818110156132405780356001600160401b03808211156131d15760008081fd5b8189019150606082360312156131e75760008081fd5b6131ef6128a1565b6131f883612c05565b8152613205868401612d4a565b868201526040808401358381111561321d5760008081fd5b613229368287016129ac565b9183019190915250875250509382019382016131b1565b50919695505050505050565b6000808585111561325c57600080fd5b8386111561326957600080fd5b5050820193919092039150565b60008451613288818460208901612701565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610ca460208301848661329e565b6000823561013e198336030181126132f257600080fd5b9190910192915050565b6000808335601e1984360301811261331357600080fd5b8301803591506001600160401b0382111561332d57600080fd5b6020019150368190038213156127bd57600080fd5b6001600160401b038116811461121c57600080fd5b63ffffffff61336589612c05565b168152602088013560208201526000604089013561338281613342565b6001600160401b03811660408401525087606083015260e060808301526133ad60e08301878961329e565b6001600160a01b03861660a084015282810360c08401526133cf81858761329e565b9a9950505050505050505050565b6000602082840312156133ef57600080fd5b81516001600160401b0381111561340557600080fd5b8201601f8101841361341657600080fd5b805161342461293782612985565b81815285602083850101111561343957600080fd5b61114b826020830160208601612701565b60006020828403121561345c57600080fd5b8135611b8881613342565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000610a226080830184612725565b6040815260006134ab6040830185612725565b828103602084015261114b8185612725565b6000602082840312156134cf57600080fd5b8151611b8881612e68565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261351060e0840182612725565b90506060850151603f198483030160a085015261352d8282612725565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561356557600080fd5b61356d612879565b9050815181526020820151602082015292915050565b60006080828403121561359557600080fd5b61359d6128a1565b8251815260208301516135af81613342565b60208201526135c18460408501613553565b60408201529392505050565b601f821115611411576000816000526020600020601f850160051c810160208610156135f65750805b601f850160051c820191505b81811015610a8b57828155600101613602565b81516001600160401b0381111561362e5761362e612863565b6136428161363c84546130be565b846135cd565b602080601f831160018114613677576000841561365f5750858301515b600019600386901b1c1916600185901b178555610a8b565b600085815260208120601f198616915b828110156136a657888601518255948401946001909101908401613687565b50858210156136c45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561375157888303603f190185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261373d81860183612725565b9689019694505050908601906001016136fd565b509098975050505050505050565b60006040828403121561377157600080fd5b611b888383613553565b8035602083101561079357600019602084900360031b1b1692915050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761079357610793613799565b8082018082111561079357610793613799565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061381481600c850160208701612701565b91909101600c01949350505050565b80516000906020808401838315612d2c57815187529582019590820190600101612d10565b8481528360208201526000610a226138636040840186613823565b84613823565b858152846020820152600061388a6138846040840187613823565b85613823565b835161389a818360208801612701565b01979650505050505050565b6000602082840312156138b857600080fd5b8151611b8881612674565b6040815260006138d66040830185612cfb565b828103602084015261114b8185612cfb565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906116ae90830184612725565b60006020828403121561393457600080fd5b8151611b88816126b5565b6001600160a01b0386811682528516602082015260a06040820181905260009061396b90830186612cfb565b828103606084015261397d8186612cfb565b905082810360808401526139918185612725565b98975050505050505050565b600082516132f281846020870161270156fea2646970667358221220821dbd374ba81349ad36112c4f0566b1ec767a4134f68c2e85102e028aad346764736f6c63430008160033","sourceMap":"138:483:139:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2247:132:107;;;;;;;;;;-1:-1:-1;2247:132:107;;;;;:::i;:::-;;:::i;:::-;;;616:25:145;;;604:2;589:18;2247:132:107;;;;;;;;1380:305;;;;;;;;;;-1:-1:-1;1380:305:107;;;;;:::i;:::-;;:::i;:::-;;;1203:14:145;;1196:22;1178:41;;1166:2;1151:18;1380:305:107;1038:187:145;2084:103:107;;;;;;;;;;-1:-1:-1;2084:103:107;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;968:27:2:-;;;;;;;;;;-1:-1:-1;968:27:2;;;;-1:-1:-1;;;;;968:27:2;;;;;;-1:-1:-1;;;;;2335:32:145;;;2317:51;;2305:2;2290:18;968:27:2;2171:203:145;4368:708:34;;;;;;:::i;:::-;;:::i;:::-;;1287:235:32;;;;;;;;;;-1:-1:-1;1287:235:32;;;843:1:35;4150:34:145;;678:1:34;4215:2:145;4200:18;;4193:43;4086:18;1287:235:32;3943:299:145;1293:31:2;;;;;;;;;;;;1323:1;1293:31;;;;;4421:6:145;4409:19;;;4391:38;;4379:2;4364:18;1293:31:2;4247:188:145;445:174:139;;;;;;;;;;-1:-1:-1;445:174:139;;;;;:::i;:::-;;:::i;3685:697:2:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4014:429:107:-;;;;;;;;;;-1:-1:-1;4014:429:107;;;;;:::i;:::-;;:::i;1724:108:33:-;;;;;;;;;;-1:-1:-1;1724:108:33;;;;;:::i;:::-;;:::i;2536:552:107:-;;;;;;;;;;-1:-1:-1;2536:552:107;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;875:93:43:-;;;;;;;;;;-1:-1:-1;956:4:43;875:93;;538::41;;;;;;;;;;-1:-1:-1;538:93:41;;;;;:::i;:::-;;:::i;5509:132:2:-;;;;;;;;;;-1:-1:-1;5509:132:2;;;;;:::i;:::-;5614:11;;;;;5591:4;5614:11;;;:5;:11;;;;;;:20;;5509:132;446:46:33;;;;;;;;;;;;;;;4711:163:2;;;;;;;;;;-1:-1:-1;4711:163:2;;;;;:::i;:::-;;:::i;2293:101:105:-;;;;;;;;;;;;;:::i;297:142:139:-;;;;;;;;;;-1:-1:-1;297:142:139;;;;;:::i;:::-;;:::i;3507:128:34:-;;;;;;;;;;-1:-1:-1;3507:128:34;;;;;:::i;:::-;3596:12;3507:128;;;;;;;;-1:-1:-1;;;;;14625:31:145;;;14607:50;;14595:2;14580:18;3507:128:34;14463:200:145;2013:216:34;;;;;;;;;;-1:-1:-1;2013:216:34;;;;;:::i;:::-;;:::i;1638:85:105:-;;;;;;;;;;-1:-1:-1;1710:6:105;;-1:-1:-1;;;;;1710:6:105;1638:85;;3156:144:107;;;;;;;;;;-1:-1:-1;3156:144:107;;;;;:::i;:::-;;:::i;1984:146:2:-;;;;;;;;;;-1:-1:-1;1984:146:2;;;-1:-1:-1;;;16023:52:145;;2121:1:2;16106:2:145;16091:18;;16084:59;15996:18;1984:146:2;15853:296:145;1330:43:2;;;;;;;;;;;;1372:1;1330:43;;559:23:43;;;;;;;;;;-1:-1:-1;559:23:43;;;;-1:-1:-1;;;;;559:23:43;;;1391:156:41;;;;;;;;;;-1:-1:-1;1391:156:41;;;;;:::i;:::-;;:::i;569:48:33:-;;;;;;;;;;-1:-1:-1;569:48:33;;;;;:::i;:::-;;;;;;;;;;;;;;3510:981:41;;;;;;;;;;-1:-1:-1;3510:981:41;;;;;:::i;:::-;;:::i;1698:1333:43:-;;;;;;:::i;:::-;;:::i;3252:105:33:-;;;;;;;;;;-1:-1:-1;3252:105:33;;;;;:::i;:::-;;:::i;3679:409:43:-;;;;;;:::i;:::-;;:::i;1100:139::-;;;;;;;;;;-1:-1:-1;1100:139:43;;;;;:::i;:::-;;:::i;2136:321:2:-;;;;;;;;;;-1:-1:-1;2136:321:2;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3367:157:107:-;;;;;;;;;;-1:-1:-1;3367:157:107;;;;;:::i;:::-;;:::i;3591:351::-;;;;;;;;;;-1:-1:-1;3591:351:107;;;;;:::i;:::-;;:::i;2543:215:105:-;;;;;;;;;;-1:-1:-1;2543:215:105;;;;;:::i;:::-;;:::i;2771:149:34:-;;;;;;;;;;-1:-1:-1;2771:149:34;;;;;:::i;:::-;;:::i;2247:132:107:-;2324:7;2350:13;;;;;;;;;;;-1:-1:-1;;;;;2350:22:107;;;;;;;;;;2247:132;;;;;:::o;1380:305::-;1482:4;-1:-1:-1;;;;;;1517:41:107;;-1:-1:-1;;;1517:41:107;;:109;;-1:-1:-1;;;;;;;1574:52:107;;-1:-1:-1;;;1574:52:107;1517:109;:161;;;-1:-1:-1;;;;;;;;;;861:40:126;;;1642:36:107;762:146:126;2084:103:107;2144:13;2176:4;2169:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:103;;;:::o;4368:708:34:-;4681:8;-1:-1:-1;;;;;4673:31:34;4694:10;4673:31;4669:68;;4713:24;;-1:-1:-1;;;4713:24:34;;4726:10;4713:24;;;2317:51:145;2290:18;;4713:24:34;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;-1:-1:-1;;;4896:40:34;;21214:10:145;21202:23;;;4896:40:34;;;21184:42:145;4921:14:34;;;;21242:18:145;;;21235:34;21157:18;;4896:40:34;21012:263:145;4833:103:34;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;445:174:139:-;569:43;580:3;585:9;596:8;606:5;569:10;:43::i;:::-;445:174;;;;:::o;3685:697:2:-;3846:34;;:::i;:::-;3929:66;3936:19;;;;:10;:19;:::i;:::-;3929:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3957:18:2;;-1:-1:-1;;;3957:18:2;;;;;:::i;:::-;3929:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3977:17:2;;-1:-1:-1;;;3977:17:2;;;;;:::i;:::-;3929:6;:66::i;:::-;4007:20;4029;4053:31;4073:10;4053:19;:31::i;:::-;4006:78;;-1:-1:-1;4006:78:2;-1:-1:-1;4207:66:2;4215:17;;;;:10;:17;:::i;:::-;4234:7;4243;4207:66;;;;;;;4252:4;4207:66;:::i;:::-;4258:14;4207:7;:66::i;:::-;4194:79;3685:697;-1:-1:-1;;;;;;3685:697:2:o;4014:429:107:-;735:10:120;-1:-1:-1;;;;;4251:14:107;;;;;;;:49;;;4270:30;4287:4;4293:6;4270:16;:30::i;:::-;4269:31;4251:49;4247:129;;;4323:42;;-1:-1:-1;;;4323:42:107;;-1:-1:-1;;;;;22413:15:145;;;4323:42:107;;;22395:34:145;22465:15;;22445:18;;;22438:43;22330:18;;4323:42:107;22183:304:145;4247:129:107;4385:51;4408:4;4414:2;4418:3;4423:6;4431:4;4385:22;:51::i;:::-;4198:245;4014:429;;;;;:::o;1724:108:33:-;1531:13:105;:11;:13::i;:::-;1804:21:33::1;1813:4;1819:5;1804:8;:21::i;:::-;1724:108:::0;;:::o;2536:552:107:-;2660:16;2711:3;:10;2692:8;:15;:29;2688:121;;2770:10;;2782:15;;2744:54;;-1:-1:-1;;;2744:54:107;;;;;22666:25:145;;;;22707:18;;;22700:34;22639:18;;2744:54:107;22492:248:145;2688:121:107;2819:30;2866:8;:15;-1:-1:-1;;;;;2852:30:107;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2852:30:107;;2819:63;;2898:9;2893:158;2917:8;:15;2913:1;:19;2893:158;;;4777:4:119;4768:14;;;4748:35;;;4742:42;2972:68:107;;4777:4:119;4768:14;;;4748:35;;;4742:42;2247:132:107;:::i;2972:68::-;2953:13;2967:1;2953:16;;;;;;;;:::i;:::-;;;;;;;;;;:87;2934:3;;2893:158;;;-1:-1:-1;3068:13:107;2536:552;-1:-1:-1;;;2536:552:107:o;538:93:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4711:163:2:-;1531:13:105;:11;:13::i;:::-;4794:12:2::1;:28:::0;;-1:-1:-1;;;;;;4794:28:2::1;-1:-1:-1::0;;;;;4794:28:2;::::1;::::0;;::::1;::::0;;;4837:30:::1;::::0;2317:51:145;;;4837:30:2::1;::::0;2305:2:145;2290:18;4837:30:2::1;;;;;;;;4711:163:::0;:::o;2293:101:105:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;297:142:139:-;396:36;402:3;407:8;417:7;426:5;396;:36::i;2013:216:34:-;-1:-1:-1;;;;;2198:24:34;;2217:4;2198:24;2013:216;;;;;;;:::o;3156:144:107:-;3241:52;735:10:120;3274:8:107;3284;3241:18;:52::i;1391:156:41:-;1531:13:105;:11;:13::i;:::-;1503:37:41::1;;1523:16:::0;;1503:37:::1;:::i;:::-;:19;:37::i;3510:981::-:0;3701:21;;;3677;3701;;;:15;:21;;;;;;;;:31;;;;;;;;;;3677:55;;3653:12;;3677:21;3701:31;3677:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:8;:15;3880:1;3861:20;3857:46;;3890:13;;3883:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:20:41;;-1:-1:-1;3883:20:41;;-1:-1:-1;;;;3883:20:41;3857:46;3988:1;3964:25;;;3960:46;;3998:8;-1:-1:-1;3991:15:41;;3960:46;4153:1;4129:25;;4125:267;;4170:34;4190:13;;4170:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4170:19:41;;-1:-1:-1;;;4170:34:41:i;:::-;4353:8;4363:17;:13;4377:1;4363:13;;:17;:::i;:::-;4340:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:48;;;;;4125:267;4470:13;;4455:29;;-1:-1:-1;;;4455:29:41;;;;;;;;;:::i;1698:1333:43:-;1799:9;1794:1037;1814:19;;;1794:1037;;;1854:29;1886:8;;1895:1;1886:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1854:43;-1:-1:-1;1980:50:43;1987:20;;;;1854:43;1987:20;:::i;:::-;2009;;;;5614:11:2;;;;;5591:4;5614:11;;;:5;:11;;;;;;:20;;5509:132;1980:50:43;1975:65;;2032:8;;;1975:65;2602:4;:22;2633:12;;;;:6;2696:11;;;;2725:14;;;;2633:6;2725:14;:::i;:::-;2757:15;;;;;;;;:::i;:::-;2790:16;;;;:6;:16;:::i;:::-;2602:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:991;1794:1037;1835:3;;1794:1037;;;;2988:10;-1:-1:-1;;;;;2978:43:43;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2978:45:43;;;;;;;;;;;;:::i;:::-;2961:63;;-1:-1:-1;;;2961:63:43;;;;;;;;:::i;3252:105:33:-;1531:13:105;:11;:13::i;:::-;3319:31:33::1;::::0;-1:-1:-1;;;3319:31:33;;-1:-1:-1;;;;;2335:32:145;;;3319:31:33::1;::::0;::::1;2317:51:145::0;3319:8:33::1;:20;::::0;::::1;::::0;2290:18:145;;3319:31:33::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;3679:409:43:-;3958:10;3980:4;3958:27;3954:50;;3994:10;;-1:-1:-1;;;3994:10:43;;;;;;;;;;;3954:50;4014:67;4033:7;4042:5;4049:8;;4059:9;4070:10;;4014:18;:67::i;1100:139::-;1531:13:105;:11;:13::i;:::-;1175:8:43::1;:20:::0;;-1:-1:-1;;;;;;1175:20:43::1;-1:-1:-1::0;;;;;1175:20:43;::::1;::::0;;::::1;::::0;;;1210:22:::1;::::0;2317:51:145;;;1210:22:43::1;::::0;2305:2:145;2290:18;1210:22:43::1;2171:203:145::0;2136:321:2;-1:-1:-1;;;;;;;;;;;;;;;;;2298:20:2;2320;2344:31;2364:10;2344:19;:31::i;:::-;2297:78;;-1:-1:-1;2297:78:2;-1:-1:-1;2392:58:2;2399:17;;;;:10;:17;:::i;:::-;2418:7;2427;2436:13;2392:6;:58::i;:::-;2385:65;2136:321;-1:-1:-1;;;;;2136:321:2:o;3367:157:107:-;-1:-1:-1;;;;;3480:27:107;;;3457:4;3480:27;;;:18;:27;;;;;;;;:37;;;;;;;;;;;;;;;3367:157::o;3591:351::-;735:10:120;-1:-1:-1;;;;;3757:14:107;;;;;;;:49;;;3776:30;3793:4;3799:6;3776:16;:30::i;:::-;3775:31;3757:49;3753:129;;;3829:42;;-1:-1:-1;;;3829:42:107;;-1:-1:-1;;;;;22413:15:145;;;3829:42:107;;;22395:34:145;22465:15;;22445:18;;;22438:43;22330:18;;3829:42:107;22183:304:145;3753:129:107;3891:44;3909:4;3915:2;3919;3923:5;3930:4;3891:17;:44::i;2543:215:105:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:105;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:105;;2700:1:::1;2672:31;::::0;::::1;2317:51:145::0;2290:18;;2672:31:105::1;2171:203:145::0;2623:91:105::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2771:149:34:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:34;;:37;;2771:149;-1:-1:-1;;2771:149:34:o;2718:196:33:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;-1:-1:-1;;;2874:12:33;;28585:10:145;28573:23;;2874:12:33;;;28555:42:145;28528:18;;2874:12:33;28411:192:145;5647:888:2;5960:17;5980:36;:17;:8;;:15;:17::i;:::-;3292:2:4;3181:123;5980:36:2;5960:56;;6027:25;6054:24;6082:17;:8;;:15;:17::i;:::-;6026:73;;-1:-1:-1;6026:73:2;-1:-1:-1;6109:53:2;6117:9;6026:73;;6147:14;;;;:7;:14;:::i;:::-;6109:7;:53::i;:::-;6176:21;:8;;:19;:21::i;:::-;6172:260;;;6213:23;6239:80;6266:13;;;;;;;;:::i;:::-;6281:14;;;;:7;:14;:::i;:::-;6297:21;:8;;:19;:21::i;:::-;6239:26;:80::i;:::-;6333:88;;-1:-1:-1;;;6333:88:2;;6213:106;;-1:-1:-1;;;;;;6333:8:2;:20;;;;:88;;6354:9;;6365:5;;6372:1;;6213:106;;6333:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6199:233;6172:260;5950:585;;;5647:888;;;;;;;:::o;11523:282:107:-;-1:-1:-1;;;;;11644:16:107;;11640:88;;11683:34;;-1:-1:-1;;;11683:34:107;;11714:1;11683:34;;;2317:51:145;2290:18;;11683:34:107;2171:203:145;11640:88:107;11737:61;11772:1;11776:2;11780:3;11785:6;11793:4;11737:26;:61::i;407:302:1:-;569:43;586:10;606:4;569:16;:43::i;:::-;564:85;;621:28;;-1:-1:-1;;;621:28:1;;638:10;621:28;;;2317:51:145;2290:18;;621:28:1;2171:203:145;564:85:1;659:43;670:10;682:9;693:8;659:10;:43::i;:::-;407:302;;;:::o;2685:994:2:-;2790:20;;2844:15;2893:164;2930:13;;;;2957:19;;;;2930:10;2957:19;:::i;:::-;2893:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2990:18:2;;-1:-1:-1;;;2990:18:2;;;;;:::i;:::-;2893:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3022:25:2;;-1:-1:-1;;;3022:25:2;;;;;:::i;:::-;2893:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2893:23:2;;-1:-1:-1;;;2893:164:2:i;:::-;2869:188;;-1:-1:-1;2869:188:2;-1:-1:-1;3068:14:2;2869:188;3085:36;;1323:1;3085:36;;;1372:1;3085:36;3068:53;-1:-1:-1;3276:67:2;3291:17;;;;:10;:17;:::i;:::-;3310:7;3319:23;;;;:10;:23;:::i;3276:67::-;3587:12;;3266:77;;-1:-1:-1;;;;;;3587:12:2;:26;3583:89;;3633:12;;3615:57;;-1:-1:-1;;;3615:57:2;;-1:-1:-1;;;;;3633:12:2;;;;3615:39;;:57;;3655:7;;3664;;3615:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3583:89;2834:845;;2685:994;;;:::o;3188:766:35:-;3389:31;;:::i;:::-;3554:20;3577:26;3588:4;:14;;;3577:10;:26::i;:::-;3617:15;;;;3554:49;;-1:-1:-1;3617:19:35;3613:53;;3638:28;3650:4;:15;;;3638:11;:28::i;:::-;3755:8;-1:-1:-1;;;;;3755:13:35;;3777:12;3809:92;;;;;;;;3825:7;3809:92;;;;;;3834:25;3851:7;3834:16;:25::i;:::-;3809:92;;;;3861:8;3809:92;;;;3871:8;3809:92;;;;3899:1;3881:4;:15;;;:19;3809:92;;;;;3919:14;3755:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3677:270;3188:766;-1:-1:-1;;;;;;;3188:766:35:o;9015:445:107:-;-1:-1:-1;;;;;9208:16:107;;9204:88;;9247:34;;-1:-1:-1;;;9247:34:107;;9278:1;9247:34;;;2317:51:145;2290:18;;9247:34:107;2171:203:145;9204:88:107;-1:-1:-1;;;;;9305:18:107;;9301:88;;9346:32;;-1:-1:-1;;;9346:32:107;;9375:1;9346:32;;;2317:51:145;2290:18;;9346:32:107;2171:203:145;9301:88:107;9398:55;9425:4;9431:2;9435:3;9440:6;9448:4;9398:26;:55::i;1796:162:105:-;1710:6;;-1:-1:-1;;;;;1710:6:105;735:10:120;1855:23:105;1851:101;;1901:40;;-1:-1:-1;;;1901:40:105;;735:10:120;1901:40:105;;;2317:51:145;2290:18;;1901:40:105;2171:203:145;2286:134:33;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;21184:42:145;;;21242:18;;21235:34;;;2393:20:33;;21157:18:145;2393:20:33;;;;;;;2286:134;;:::o;2912:187:105:-;3004:6;;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;10746:346:107:-;-1:-1:-1;;;;;10842:16:107;;10838:88;;10881:34;;-1:-1:-1;;;10881:34:107;;10912:1;10881:34;;;2317:51:145;2290:18;;10881:34:107;2171:203:145;10838:88:107;16374:4;16368:11;;16444:1;16429:17;;;16575:4;16563:17;;16556:35;;;16692:17;;;16722;;;16188:23;16759:17;;16752:35;;;16895:17;;;16882:31;;;16368:11;11024:61;-1:-1:-1;11063:2:107;16368:11;16692:17;11080:4;11024:26;:61::i;13268:315::-;-1:-1:-1;;;;;13375:22:107;;13371:94;;13420:34;;-1:-1:-1;;;13420:34:107;;13451:1;13420:34;;;2317:51:145;2290:18;;13420:34:107;2171:203:145;13371:94:107;-1:-1:-1;;;;;13474:25:107;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13474:46:107;;;;;;;;;;13535:41;;1178::145;;;13535::107;;1151:18:145;13535:41:107;;;;;;;13268:315;;;:::o;2237:514:41:-;2345:9;2340:354;2364:16;:23;2360:1;:27;2340:354;;;2522:48;2542:16;2559:1;2542:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2522:19;:48::i;:::-;2656:16;2673:1;2656:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:15;:40;2600:16;2617:1;2600:19;;;;;;;;:::i;:::-;;;;;;;:23;;;2584:40;;;;;;;;;;;;;;;:69;2625:16;2642:1;2625:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:69;;;;;;;;;;;;;;;:99;;;;;;:::i;:::-;-1:-1:-1;2389:3:41;;2340:354;;;;2709:35;2727:16;2709:35;;;;;;:::i;4631:264::-;4801:1;4787:16;;4781:23;4827:28;;;463:1;4827:28;4823:65;;4879:8;4864:24;;-1:-1:-1;;;4864:24:41;;;;;;;;:::i;2038:391:35:-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:35;-1:-1:-1;;;;;2259:14:35;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8151:463:107:-;-1:-1:-1;;;;;8273:16:107;;8269:88;;8312:34;;-1:-1:-1;;;8312:34:107;;8343:1;8312:34;;;2317:51:145;2290:18;;8312:34:107;2171:203:145;8269:88:107;-1:-1:-1;;;;;8370:18:107;;8366:88;;8411:32;;-1:-1:-1;;;8411:32:107;;8440:1;8411:32;;;2317:51:145;2290:18;;8411:32:107;2171:203:145;8366:88:107;16374:4;16368:11;;16444:1;16429:17;;;16575:4;16563:17;;16556:35;;;16692:17;;;16722;;;16188:23;16759:17;;16752:35;;;16895:17;;;16882:31;;;16368:11;8552:55;8579:4;8585:2;16368:11;16692:17;8602:4;8552:26;:55::i;812:123:4:-;872:7;906:21;185:2;872:7;906:4;;:21;:::i;:::-;898:30;;;:::i;:::-;891:37;812:123;-1:-1:-1;;;812:123:4:o;1161:1192::-;1221:25;1248:24;1284:19;1306:15;1316:4;;1306:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1306:9:4;;-1:-1:-1;;;1306:15:4:i;:::-;1284:37;;1357:11;-1:-1:-1;;;;;1343:26:4;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1343:26:4;;1332:37;;1403:11;-1:-1:-1;;;;;1389:26:4;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1389:26:4;;1379:36;;1454:9;1449:888;1473:11;1469:1;:15;1449:888;;;1555:193;137:2;1580:25;;1606:141;;;;236:2;1560:45;1555:4;;:193;:::i;:::-;1523:274;;;;;;;:::i;:::-;1509:8;1518:1;1509:11;;;;;;;;:::i;:::-;;;;;;;;;;;:288;;;;1860:413;;1995:49;;;1909:59;;;1865:179;2045:227;;;;236:2;1865:179;1860:4;;:413;:::i;:::-;1828:494;;;;;;;:::i;:::-;1815:7;1823:1;1815:10;;;;;;;;:::i;:::-;;;;;;;;;;:507;1486:3;;1449:888;;;;1274:1079;1161:1192;;;;;:::o;715:226:1:-;894:40;905:3;910:9;921:8;894:40;;;;;;;;;;;;:10;:40::i;2359:167:4:-;236:2;2460:15;;137:2;2460:15;;;;;;;;;;;;;;;;;2423:4;;236:2;2460:15;;2470:4;;;2460:15;;;2470:4;;;;2460:15;;;;;;;;;-1:-1:-1;2460:9:4;;-1:-1:-1;;;2460:15:4:i;:::-;:39;;;;:::i;:::-;:59;;;;:::i;:::-;2446:73;;;;2359:167;-1:-1:-1;;2359:167:4:o;2532:211::-;2596:12;2620:19;2642:15;2652:4;;2642:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2642:9:4;;-1:-1:-1;;;2642:15:4:i;:::-;2620:37;-1:-1:-1;2674:4:4;;2699:35;2620:37;137:2;2699:35;:::i;:::-;2679:55;;236:2;2679:55;:::i;:::-;2674:62;;;;;:::i;:::-;2667:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2667:69:4;;2532:211;-1:-1:-1;;;;;;;2532:211:4:o;675:252:0:-;832:20;891:6;899:7;908:11;874:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;864:56;;675:252;;;;;:::o;7004:690:107:-;7205:30;7213:4;7219:2;7223:3;7228:6;7205:7;:30::i;:::-;-1:-1:-1;;;;;7249:16:107;;;7245:443;;7330:10;;735::120;;7344:1:107;7330:15;7326:352;;4777:4:119;4748:35;;;4742:42;4748:35;;;4742:42;7483:67:107;7514:8;7524:4;7530:2;4742:42:119;;7545:4:107;7483:30;:67::i;:::-;7347:218;;7326:352;;;7589:74;7625:8;7635:4;7641:2;7645:3;7650:6;7658:4;7589:35;:74::i;12784:265::-;-1:-1:-1;;;;;12888:18:107;;12884:88;;12929:32;;-1:-1:-1;;;12929:32:107;;12958:1;12929:32;;;2317:51:145;2290:18;;12929:32:107;2171:203:145;12884:88:107;12981:61;13008:4;13022:1;13026:3;13031:6;12981:61;;;;;;;;;;;;:26;:61::i;256:550:4:-;490:18;;431:17;;490:22;;;618:181;;761:16;;735:64;;;;752:7;;761:9;;790:8;;735:64;;;:::i;:::-;;;;;;;;;;;;;618:181;;;669:16;;643:77;;;;660:7;;669:9;;698:8;;708:11;;643:77;;;:::i;:::-;;;;;;;;;;;;;618:181;611:188;;256:550;;;;;;;:::o;4650:191:35:-;4716:17;4762:10;4749:9;:23;4745:62;;4781:26;;-1:-1:-1;;;4781:26:35;;4797:9;4781:26;;;616:25:145;589:18;;4781:26:35;470:177:145;4745:62:35;-1:-1:-1;4824:10:35;4650:191::o;5218:410::-;5371:15;5389:8;-1:-1:-1;;;;;5389:16:35;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;;;;;;5421:21:35;;5417:54;;5451:20;;-1:-1:-1;;;5451:20:35;;;;;;;;;;;5417:54;5545:76;-1:-1:-1;;;;;5545:32:35;;5578:10;5598:8;5609:11;5545:32;:76::i;941:214:4:-;1085:53;;1079:60;;941:214::o;5144:1281:107:-;5279:6;:13;5265:3;:10;:27;5261:117;;5341:10;;5353:13;;5315:52;;-1:-1:-1;;;5315:52:107;;;;;22666:25:145;;;;22707:18;;;22700:34;22639:18;;5315:52:107;22492:248:145;5261:117:107;735:10:120;5388:16:107;5430:691;5454:3;:10;5450:1;:14;5430:691;;;4777:4:119;4768:14;;;4748:35;;;;;4742:42;4748:35;;;;;;4742:42;-1:-1:-1;;;;;5600:18:107;;;5596:420;;5638:19;5660:13;;;;;;;;;;;-1:-1:-1;;;;;5660:19:107;;;;;;;;;;5701;;;5697:129;;;5751:56;;-1:-1:-1;;;5751:56:107;;-1:-1:-1;;;;;38582:32:145;;5751:56:107;;;38564:51:145;38631:18;;;38624:34;;;38674:18;;;38667:34;;;38717:18;;;38710:34;;;38536:19;;5751:56:107;38333:417:145;5697:129:107;5942:9;:13;;;;;;;;;;;-1:-1:-1;;;;;5942:19:107;;;;;;;;;5964;;;;5942:41;;5596:420;-1:-1:-1;;;;;6034:16:107;;;6030:81;;6070:9;:13;;;;;;;;;;;-1:-1:-1;;;;;6070:17:107;;;;;;;;;:26;;6091:5;;6070:9;:26;;6091:5;;6070:26;:::i;:::-;;;;-1:-1:-1;;6030:81:107;-1:-1:-1;;5466:3:107;;5430:691;;;;6135:3;:10;6149:1;6135:15;6131:288;;4777:4:119;4748:35;;4742:42;6166:10:107;;4777:4:119;4748:35;;4742:42;6166:38:107;;-1:-1:-1;6312:2:107;-1:-1:-1;;;;;6281:45:107;6306:4;-1:-1:-1;;;;;6281:45:107;6296:8;-1:-1:-1;;;;;6281:45:107;;6316:2;6320:5;6281:45;;;;;;22666:25:145;;;22722:2;22707:18;;22700:34;22654:2;22639:18;;22492:248;6281:45:107;;;;;;;;6152:185;;6131:288;;;6392:2;-1:-1:-1;;;;;6362:46:107;6386:4;-1:-1:-1;;;;;6362:46:107;6376:8;-1:-1:-1;;;;;6362:46:107;;6396:3;6401:6;6362:46;;;;;;;:::i;:::-;;;;;;;;5251:1174;5144:1281;;;;:::o;13761:974::-;-1:-1:-1;;;;;13967:14:107;;;:18;13963:766;;14005:71;;-1:-1:-1;;;14005:71:107;;-1:-1:-1;;;;;14005:38:107;;;;;:71;;14044:8;;14054:4;;14060:2;;14064:5;;14071:4;;14005:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14005:71:107;;;;;;;;-1:-1:-1;;14005:71:107;;;;;;;;;;;;:::i;:::-;;;14001:718;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14360:6;:13;14377:1;14360:18;14356:349;;14464:26;;-1:-1:-1;;;14464:26:107;;-1:-1:-1;;;;;2335:32:145;;14464:26:107;;;2317:51:145;2290:18;;14464:26:107;2171:203:145;14356:349:107;14657:6;14651:13;14642:6;14638:2;14634:15;14627:38;14001:718;-1:-1:-1;;;;;;14125:55:107;;-1:-1:-1;;;14125:55:107;14121:174;;14250:26;;-1:-1:-1;;;14250:26:107;;-1:-1:-1;;;;;2335:32:145;;14250:26:107;;;2317:51:145;2290:18;;14250:26:107;2171:203:145;14923:1041:107;-1:-1:-1;;;;;15154:14:107;;;:18;15150:808;;15192:78;;-1:-1:-1;;;15192:78:107;;-1:-1:-1;;;;;15192:43:107;;;;;:78;;15236:8;;15246:4;;15252:3;;15257:6;;15265:4;;15192:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15192:78:107;;;;;;;;-1:-1:-1;;15192:78:107;;;;;;;;;;;;:::i;:::-;;;15188:760;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15349:60:107;;-1:-1:-1;;;15349:60:107;15345:179;;15479:26;;-1:-1:-1;;;15479:26:107;;-1:-1:-1;;;;;2335:32:145;;15479:26:107;;;2317:51:145;2290:18;;15479:26:107;2171:203:145;1702:188:113;1829:53;;;-1:-1:-1;;;;;41179:15:145;;;1829:53:113;;;41161:34:145;41231:15;;;41211:18;;;41204:43;41263:18;;;;41256:34;;;1829:53:113;;;;;;;;;;41096:18:145;;;;1829:53:113;;;;;;;;-1:-1:-1;;;;;1829:53:113;-1:-1:-1;;;1829:53:113;;;1802:81;;1822:5;;1829:53;-1:-1:-1;;4504:33:113;;1844:18;;1829:53;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:113;;-1:-1:-1;;;;;2335:32:145;;4631:40:113;;;2317:51:145;2290:18;;4631:40:113;2171:203:145;2705:151:118;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:118;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:118;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:118;;-1:-1:-1;;;;;2335:32:145;;5121:24:118;;;2317:51:145;2290:18;;5121:24:118;2171:203:145;5041:119:118;-1:-1:-1;5180:10:118;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:118;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:145:-;-1:-1:-1;;;;;89:31:145;;79:42;;69:70;;135:1;132;125:12;150:315;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;455:2;440:18;;;;427:32;;-1:-1:-1;;;150:315:145:o;652:131::-;-1:-1:-1;;;;;;726:32:145;;716:43;;706:71;;773:1;770;763:12;788:245;846:6;899:2;887:9;878:7;874:23;870:32;867:52;;;915:1;912;905:12;867:52;954:9;941:23;973:30;997:5;973:30;:::i;1230:180::-;1289:6;1342:2;1330:9;1321:7;1317:23;1313:32;1310:52;;;1358:1;1355;1348:12;1310:52;-1:-1:-1;1381:23:145;;1230:180;-1:-1:-1;1230:180:145:o;1415:250::-;1500:1;1510:113;1524:6;1521:1;1518:13;1510:113;;;1600:11;;;1594:18;1581:11;;;1574:39;1546:2;1539:10;1510:113;;;-1:-1:-1;;1657:1:145;1639:16;;1632:27;1415:250::o;1670:271::-;1712:3;1750:5;1744:12;1777:6;1772:3;1765:19;1793:76;1862:6;1855:4;1850:3;1846:14;1839:4;1832:5;1828:16;1793:76;:::i;:::-;1923:2;1902:15;-1:-1:-1;;1898:29:145;1889:39;;;;1930:4;1885:50;;1670:271;-1:-1:-1;;1670:271:145:o;1946:220::-;2095:2;2084:9;2077:21;2058:4;2115:45;2156:2;2145:9;2141:18;2133:6;2115:45;:::i;2379:154::-;2438:5;2483:2;2474:6;2469:3;2465:16;2461:25;2458:45;;;2499:1;2496;2489:12;2458:45;-1:-1:-1;2521:6:145;2379:154;-1:-1:-1;2379:154:145:o;2538:347::-;2589:8;2599:6;2653:3;2646:4;2638:6;2634:17;2630:27;2620:55;;2671:1;2668;2661:12;2620:55;-1:-1:-1;2694:20:145;;-1:-1:-1;;;;;2726:30:145;;2723:50;;;2769:1;2766;2759:12;2723:50;2806:4;2798:6;2794:17;2782:29;;2858:3;2851:4;2842:6;2834;2830:19;2826:30;2823:39;2820:59;;;2875:1;2872;2865:12;2820:59;2538:347;;;;;:::o;2890:1048::-;3033:6;3041;3049;3057;3065;3073;3081;3134:3;3122:9;3113:7;3109:23;3105:33;3102:53;;;3151:1;3148;3141:12;3102:53;3174;3219:7;3208:9;3174:53;:::i;:::-;3164:63;;3274:2;3263:9;3259:18;3246:32;3236:42;;3329:3;3318:9;3314:19;3301:33;-1:-1:-1;;;;;3394:2:145;3386:6;3383:14;3380:34;;;3410:1;3407;3400:12;3380:34;3449:58;3499:7;3490:6;3479:9;3475:22;3449:58;:::i;:::-;3526:8;;-1:-1:-1;3423:84:145;-1:-1:-1;3611:3:145;3596:19;;3583:33;;-1:-1:-1;3625:31:145;3583:33;3625:31;:::i;:::-;3675:5;;-1:-1:-1;3733:3:145;3718:19;;3705:33;;3750:16;;;3747:36;;;3779:1;3776;3769:12;3747:36;;3818:60;3870:7;3859:8;3848:9;3844:24;3818:60;:::i;:::-;2890:1048;;;;-1:-1:-1;2890:1048:145;;-1:-1:-1;2890:1048:145;;;;3792:86;;-1:-1:-1;;;2890:1048:145:o;4440:127::-;4501:10;4496:3;4492:20;4489:1;4482:31;4532:4;4529:1;4522:15;4556:4;4553:1;4546:15;4572:251;4644:2;4638:9;;;4674:15;;-1:-1:-1;;;;;4704:34:145;;4740:22;;;4701:62;4698:88;;;4766:18;;:::i;:::-;4802:2;4795:22;4572:251;:::o;4828:253::-;4900:2;4894:9;4942:4;4930:17;;-1:-1:-1;;;;;4962:34:145;;4998:22;;;4959:62;4956:88;;;5024:18;;:::i;5086:275::-;5157:2;5151:9;5222:2;5203:13;;-1:-1:-1;;5199:27:145;5187:40;;-1:-1:-1;;;;;5242:34:145;;5278:22;;;5239:62;5236:88;;;5304:18;;:::i;:::-;5340:2;5333:22;5086:275;;-1:-1:-1;5086:275:145:o;5366:183::-;5426:4;-1:-1:-1;;;;;5451:6:145;5448:30;5445:56;;;5481:18;;:::i;:::-;-1:-1:-1;5526:1:145;5522:14;5538:4;5518:25;;5366:183::o;5554:668::-;5608:5;5661:3;5654:4;5646:6;5642:17;5638:27;5628:55;;5679:1;5676;5669:12;5628:55;5715:6;5702:20;5741:4;5765:60;5781:43;5821:2;5781:43;:::i;:::-;5765:60;:::i;:::-;5847:3;5871:2;5866:3;5859:15;5899:4;5894:3;5890:14;5883:21;;5956:4;5950:2;5947:1;5943:10;5935:6;5931:23;5927:34;5913:48;;5984:3;5976:6;5973:15;5970:35;;;6001:1;5998;5991:12;5970:35;6037:4;6029:6;6025:17;6051:142;6067:6;6062:3;6059:15;6051:142;;;6133:17;;6121:30;;6171:12;;;;6084;;6051:142;;;-1:-1:-1;6211:5:145;5554:668;-1:-1:-1;;;;;;5554:668:145:o;6227:186::-;6275:4;-1:-1:-1;;;;;6300:6:145;6297:30;6294:56;;;6330:18;;:::i;:::-;-1:-1:-1;6396:2:145;6375:15;-1:-1:-1;;6371:29:145;6402:4;6367:40;;6227:186::o;6418:462::-;6460:5;6513:3;6506:4;6498:6;6494:17;6490:27;6480:55;;6531:1;6528;6521:12;6480:55;6567:6;6554:20;6598:48;6614:31;6642:2;6614:31;:::i;6598:48::-;6671:2;6662:7;6655:19;6717:3;6710:4;6705:2;6697:6;6693:15;6689:26;6686:35;6683:55;;;6734:1;6731;6724:12;6683:55;6799:2;6792:4;6784:6;6780:17;6773:4;6764:7;6760:18;6747:55;6847:1;6822:16;;;6840:4;6818:27;6811:38;;;;6826:7;6418:462;-1:-1:-1;;;6418:462:145:o;6885:929::-;7030:6;7038;7046;7054;7107:3;7095:9;7086:7;7082:23;7078:33;7075:53;;;7124:1;7121;7114:12;7075:53;7163:9;7150:23;7182:31;7207:5;7182:31;:::i;:::-;7232:5;-1:-1:-1;7288:2:145;7273:18;;7260:32;-1:-1:-1;;;;;7341:14:145;;;7338:34;;;7368:1;7365;7358:12;7338:34;7391:61;7444:7;7435:6;7424:9;7420:22;7391:61;:::i;:::-;7381:71;;7505:2;7494:9;7490:18;7477:32;7461:48;;7534:2;7524:8;7521:16;7518:36;;;7550:1;7547;7540:12;7518:36;7573:63;7628:7;7617:8;7606:9;7602:24;7573:63;:::i;:::-;7563:73;;7689:2;7678:9;7674:18;7661:32;7645:48;;7718:2;7708:8;7705:16;7702:36;;;7734:1;7731;7724:12;7702:36;;7757:51;7800:7;7789:8;7778:9;7774:24;7757:51;:::i;:::-;7747:61;;;6885:929;;;;;;;:::o;7819:158::-;7881:5;7926:3;7917:6;7912:3;7908:16;7904:26;7901:46;;;7943:1;7940;7933:12;7982:656;8119:6;8127;8135;8179:9;8170:7;8166:23;8209:3;8205:2;8201:12;8198:32;;;8226:1;8223;8216:12;8198:32;8266:9;8253:23;-1:-1:-1;;;;;8291:6:145;8288:30;8285:50;;;8331:1;8328;8321:12;8285:50;8354:69;8415:7;8406:6;8395:9;8391:22;8354:69;:::i;:::-;8344:79;-1:-1:-1;;8457:2:145;-1:-1:-1;;8439:16:145;;8435:25;8432:45;;;8473:1;8470;8463:12;8432:45;;8511:2;8500:9;8496:18;8486:28;;8564:2;8553:9;8549:18;8536:32;8577:31;8602:5;8577:31;:::i;:::-;8627:5;8617:15;;;7982:656;;;;;:::o;8801:469::-;8961:4;9003:3;8992:9;8988:19;8980:27;;9040:6;9034:13;9023:9;9016:32;-1:-1:-1;;;;;9108:4:145;9100:6;9096:17;9090:24;9086:49;9079:4;9068:9;9064:20;9057:79;9183:4;9175:6;9171:17;9165:24;9198:66;9258:4;9247:9;9243:20;9229:12;8721;;8709:25;;8783:4;8772:16;;;8766:23;8750:14;;8743:47;8643:153;9198:66;;8801:469;;;;:::o;9275:1071::-;9429:6;9437;9445;9453;9461;9514:3;9502:9;9493:7;9489:23;9485:33;9482:53;;;9531:1;9528;9521:12;9482:53;9570:9;9557:23;9589:31;9614:5;9589:31;:::i;:::-;9639:5;-1:-1:-1;9696:2:145;9681:18;;9668:32;9709:33;9668:32;9709:33;:::i;:::-;9761:7;-1:-1:-1;9819:2:145;9804:18;;9791:32;-1:-1:-1;;;;;9872:14:145;;;9869:34;;;9899:1;9896;9889:12;9869:34;9922:61;9975:7;9966:6;9955:9;9951:22;9922:61;:::i;:::-;9912:71;;10036:2;10025:9;10021:18;10008:32;9992:48;;10065:2;10055:8;10052:16;10049:36;;;10081:1;10078;10071:12;10049:36;10104:63;10159:7;10148:8;10137:9;10133:24;10104:63;:::i;:::-;10094:73;;10220:3;10209:9;10205:19;10192:33;10176:49;;10250:2;10240:8;10237:16;10234:36;;;10266:1;10263;10256:12;10234:36;;10289:51;10332:7;10321:8;10310:9;10306:24;10289:51;:::i;:::-;10279:61;;;9275:1071;;;;;;;;:::o;10351:163::-;10418:20;;10478:10;10467:22;;10457:33;;10447:61;;10504:1;10501;10494:12;10447:61;10351:163;;;:::o;10519:252::-;10586:6;10594;10647:2;10635:9;10626:7;10622:23;10618:32;10615:52;;;10663:1;10660;10653:12;10615:52;10686:28;10704:9;10686:28;:::i;10776:1215::-;10894:6;10902;10955:2;10943:9;10934:7;10930:23;10926:32;10923:52;;;10971:1;10968;10961:12;10923:52;11011:9;10998:23;-1:-1:-1;;;;;11081:2:145;11073:6;11070:14;11067:34;;;11097:1;11094;11087:12;11067:34;11135:6;11124:9;11120:22;11110:32;;11180:7;11173:4;11169:2;11165:13;11161:27;11151:55;;11202:1;11199;11192:12;11151:55;11238:2;11225:16;11260:4;11284:60;11300:43;11340:2;11300:43;:::i;11284:60::-;11378:15;;;11460:1;11456:10;;;;11448:19;;11444:28;;;11409:12;;;;11484:19;;;11481:39;;;11516:1;11513;11506:12;11481:39;11540:11;;;;11560:217;11576:6;11571:3;11568:15;11560:217;;;11656:3;11643:17;11673:31;11698:5;11673:31;:::i;:::-;11717:18;;11593:12;;;;11755;;;;11560:217;;;11796:5;-1:-1:-1;;11839:18:145;;11826:32;;-1:-1:-1;;11870:16:145;;;11867:36;;;11899:1;11896;11889:12;11867:36;;11922:63;11977:7;11966:8;11955:9;11951:24;11922:63;:::i;:::-;11912:73;;;10776:1215;;;;;:::o;11996:450::-;12060:3;12098:5;12092:12;12125:6;12120:3;12113:19;12151:4;12180;12175:3;12171:14;12164:21;;12219:4;12212:5;12208:16;12242:1;12252:169;12266:6;12263:1;12260:13;12252:169;;;12327:13;;12315:26;;12361:12;;;;12396:15;;;;12288:1;12281:9;12252:169;;;-1:-1:-1;12437:3:145;;11996:450;-1:-1:-1;;;;;11996:450:145:o;12451:272::-;12630:2;12619:9;12612:21;12593:4;12650:67;12713:2;12702:9;12698:18;12690:6;12650:67;:::i;12728:159::-;12795:20;;12855:6;12844:18;;12834:29;;12824:57;;12877:1;12874;12867:12;12892:256;12958:6;12966;13019:2;13007:9;12998:7;12994:23;12990:32;12987:52;;;13035:1;13032;13025:12;12987:52;13058:28;13076:9;13058:28;:::i;:::-;13048:38;;13105:37;13138:2;13127:9;13123:18;13105:37;:::i;:::-;13095:47;;12892:256;;;;;:::o;13614:247::-;13673:6;13726:2;13714:9;13705:7;13701:23;13697:32;13694:52;;;13742:1;13739;13732:12;13694:52;13781:9;13768:23;13800:31;13825:5;13800:31;:::i;13866:592::-;13961:6;13969;13977;13985;14038:3;14026:9;14017:7;14013:23;14009:33;14006:53;;;14055:1;14052;14045:12;14006:53;14094:9;14081:23;14113:31;14138:5;14113:31;:::i;:::-;14163:5;-1:-1:-1;14215:2:145;14200:18;;14187:32;;-1:-1:-1;14266:2:145;14251:18;;14238:32;;-1:-1:-1;14321:2:145;14306:18;;14293:32;-1:-1:-1;;;;;14337:30:145;;14334:50;;;14380:1;14377;14370:12;14334:50;14403:49;14444:7;14435:6;14424:9;14420:22;14403:49;:::i;14668:670::-;14782:6;14790;14798;14806;14859:3;14847:9;14838:7;14834:23;14830:33;14827:53;;;14876:1;14873;14866:12;14827:53;14899;14944:7;14933:9;14899:53;:::i;:::-;14889:63;;15003:2;14992:9;14988:18;14975:32;-1:-1:-1;;;;;15022:6:145;15019:30;15016:50;;;15062:1;15059;15052:12;15016:50;15101:58;15151:7;15142:6;15131:9;15127:22;15101:58;:::i;:::-;15178:8;;-1:-1:-1;15075:84:145;-1:-1:-1;;15263:3:145;15248:19;;15235:33;15277:31;15235:33;15277:31;:::i;:::-;14668:670;;;;-1:-1:-1;14668:670:145;;-1:-1:-1;;14668:670:145:o;15343:118::-;15429:5;15422:13;15415:21;15408:5;15405:32;15395:60;;15451:1;15448;15441:12;15466:382;15531:6;15539;15592:2;15580:9;15571:7;15567:23;15563:32;15560:52;;;15608:1;15605;15598:12;15560:52;15647:9;15634:23;15666:31;15691:5;15666:31;:::i;:::-;15716:5;-1:-1:-1;15773:2:145;15758:18;;15745:32;15786:30;15745:32;15786:30;:::i;:::-;15835:7;15825:17;;;15466:382;;;;;:::o;16154:395::-;16245:8;16255:6;16309:3;16302:4;16294:6;16290:17;16286:27;16276:55;;16327:1;16324;16317:12;16276:55;-1:-1:-1;16350:20:145;;-1:-1:-1;;;;;16382:30:145;;16379:50;;;16425:1;16422;16415:12;16379:50;16462:4;16454:6;16450:17;16438:29;;16522:3;16515:4;16505:6;16502:1;16498:14;16490:6;16486:27;16482:38;16479:47;16476:67;;;16539:1;16536;16529:12;16554:504;16679:6;16687;16740:2;16728:9;16719:7;16715:23;16711:32;16708:52;;;16756:1;16753;16746:12;16708:52;16796:9;16783:23;-1:-1:-1;;;;;16821:6:145;16818:30;16815:50;;;16861:1;16858;16851:12;16815:50;16900:98;16990:7;16981:6;16970:9;16966:22;16900:98;:::i;:::-;17017:8;;16874:124;;-1:-1:-1;16554:504:145;-1:-1:-1;;;;16554:504:145:o;17063:184::-;17121:6;17174:2;17162:9;17153:7;17149:23;17145:32;17142:52;;;17190:1;17187;17180:12;17142:52;17213:28;17231:9;17213:28;:::i;17434:553::-;17520:6;17528;17536;17544;17597:2;17585:9;17576:7;17572:23;17568:32;17565:52;;;17613:1;17610;17603:12;17565:52;17636:28;17654:9;17636:28;:::i;:::-;17626:38;;17683:37;17716:2;17705:9;17701:18;17683:37;:::i;:::-;17673:47;;17771:2;17760:9;17756:18;17743:32;-1:-1:-1;;;;;17790:6:145;17787:30;17784:50;;;17830:1;17827;17820:12;17784:50;17869:58;17919:7;17910:6;17899:9;17895:22;17869:58;:::i;:::-;17434:553;;;;-1:-1:-1;17946:8:145;-1:-1:-1;;;;17434:553:145:o;18495:488::-;18588:6;18596;18649:2;18637:9;18628:7;18624:23;18620:32;18617:52;;;18665:1;18662;18655:12;18617:52;18705:9;18692:23;-1:-1:-1;;;;;18730:6:145;18727:30;18724:50;;;18770:1;18767;18760:12;18724:50;18793:69;18854:7;18845:6;18834:9;18830:22;18793:69;:::i;:::-;18783:79;;;18912:2;18901:9;18897:18;18884:32;18925:28;18947:5;18925:28;:::i;18988:261::-;8721:12;;8709:25;;8783:4;8772:16;;;8766:23;8750:14;;;8743:47;19182:2;19167:18;;19194:49;8643:153;19254:388;19322:6;19330;19383:2;19371:9;19362:7;19358:23;19354:32;19351:52;;;19399:1;19396;19389:12;19351:52;19438:9;19425:23;19457:31;19482:5;19457:31;:::i;:::-;19507:5;-1:-1:-1;19564:2:145;19549:18;;19536:32;19577:33;19536:32;19577:33;:::i;19647:734::-;19751:6;19759;19767;19775;19783;19836:3;19824:9;19815:7;19811:23;19807:33;19804:53;;;19853:1;19850;19843:12;19804:53;19892:9;19879:23;19911:31;19936:5;19911:31;:::i;:::-;19961:5;-1:-1:-1;20018:2:145;20003:18;;19990:32;20031:33;19990:32;20031:33;:::i;:::-;20083:7;-1:-1:-1;20137:2:145;20122:18;;20109:32;;-1:-1:-1;20188:2:145;20173:18;;20160:32;;-1:-1:-1;20243:3:145;20228:19;;20215:33;-1:-1:-1;;;;;20260:30:145;;20257:50;;;20303:1;20300;20293:12;20257:50;20326:49;20367:7;20358:6;20347:9;20343:22;20326:49;:::i;20386:236::-;20471:6;20524:2;20512:9;20503:7;20499:23;20495:32;20492:52;;;20540:1;20537;20530:12;20492:52;20563:53;20608:7;20597:9;20563:53;:::i;20627:380::-;20706:1;20702:12;;;;20749;;;20770:61;;20824:4;20816:6;20812:17;20802:27;;20770:61;20877:2;20869:6;20866:14;20846:18;20843:38;20840:161;;20923:10;20918:3;20914:20;20911:1;20904:31;20958:4;20955:1;20948:15;20986:4;20983:1;20976:15;21280:545;21373:4;21379:6;21439:11;21426:25;21533:2;21529:7;21518:8;21502:14;21498:29;21494:43;21474:18;21470:68;21460:96;;21552:1;21549;21542:12;21460:96;21579:33;;21631:20;;;-1:-1:-1;;;;;;21663:30:145;;21660:50;;;21706:1;21703;21696:12;21660:50;21739:4;21727:17;;-1:-1:-1;21790:1:145;21786:14;;;21770;21766:35;21756:46;;21753:66;;;21815:1;21812;21805:12;21830:348;21919:6;21972:2;21960:9;21951:7;21947:23;21943:32;21940:52;;;21988:1;21985;21978:12;21940:52;22014:22;;:::i;:::-;22072:9;22059:23;22052:5;22045:38;22143:2;22132:9;22128:18;22115:32;22110:2;22103:5;22099:14;22092:56;22167:5;22157:15;;;21830:348;;;;:::o;22745:127::-;22806:10;22801:3;22797:20;22794:1;22787:31;22837:4;22834:1;22827:15;22861:4;22858:1;22851:15;22877:1547;23069:9;23104:64;23120:47;23160:6;23120:47;:::i;23104:64::-;23190:3;23214:6;23209:3;23202:19;23240:4;23269;23264:3;23260:14;23253:21;;23315:6;23312:1;23308:14;23301:5;23297:26;23346:14;23338:6;23335:26;23332:46;;;23374:1;23371;23364:12;23332:46;23398:5;23412:979;23428:6;23423:3;23420:15;23412:979;;;23514:3;23501:17;-1:-1:-1;;;;;23591:2:145;23578:11;23575:19;23572:109;;;23635:1;23664:2;23660;23653:14;23572:109;23715:11;23708:5;23704:23;23694:33;;23772:4;23767:2;23751:14;23747:23;23743:34;23740:124;;;23818:1;23847:2;23843;23836:14;23740:124;23892:22;;:::i;:::-;23943:21;23961:2;23943:21;:::i;:::-;23934:7;23927:38;24003:30;24029:2;24025;24021:11;24003:30;:::i;:::-;23998:2;23989:7;23985:16;23978:56;24057:2;24107;24103;24099:11;24086:25;24138:2;24130:6;24127:14;24124:104;;;24182:1;24211:2;24207;24200:14;24124:104;24266:49;24300:14;24291:6;24287:2;24283:15;24266:49;:::i;:::-;24248:16;;;24241:75;;;;-1:-1:-1;24329:20:145;;-1:-1:-1;;24369:12:145;;;;23445;;23412:979;;;-1:-1:-1;24413:5:145;;22877:1547;-1:-1:-1;;;;;;22877:1547:145:o;24429:331::-;24534:9;24545;24587:8;24575:10;24572:24;24569:44;;;24609:1;24606;24599:12;24569:44;24638:6;24628:8;24625:20;24622:40;;;24658:1;24655;24648:12;24622:40;-1:-1:-1;;24684:23:145;;;24729:25;;;;;-1:-1:-1;24429:331:145:o;24765:476::-;24956:3;24994:6;24988:13;25010:66;25069:6;25064:3;25057:4;25049:6;25045:17;25010:66;:::i;:::-;25098:16;;25151:6;25143;25098:16;25123:35;25215:1;25177:18;;25204:13;;;-1:-1:-1;25177:18:145;;24765:476;-1:-1:-1;;;24765:476:145:o;25246:266::-;25334:6;25329:3;25322:19;25386:6;25379:5;25372:4;25367:3;25363:14;25350:43;-1:-1:-1;25438:1:145;25413:16;;;25431:4;25409:27;;;25402:38;;;;25494:2;25473:15;;;-1:-1:-1;;25469:29:145;25460:39;;;25456:50;;25246:266::o;25517:244::-;25674:2;25663:9;25656:21;25637:4;25694:61;25751:2;25740:9;25736:18;25728:6;25720;25694:61;:::i;25766:331::-;25865:4;25923:11;25910:25;26017:3;26013:8;26002;25986:14;25982:29;25978:44;25958:18;25954:69;25944:97;;26037:1;26034;26027:12;25944:97;26058:33;;;;;25766:331;-1:-1:-1;;25766:331:145:o;26102:521::-;26179:4;26185:6;26245:11;26232:25;26339:2;26335:7;26324:8;26308:14;26304:29;26300:43;26280:18;26276:68;26266:96;;26358:1;26355;26348:12;26266:96;26385:33;;26437:20;;;-1:-1:-1;;;;;;26469:30:145;;26466:50;;;26512:1;26509;26502:12;26466:50;26545:4;26533:17;;-1:-1:-1;26576:14:145;26572:27;;;26562:38;;26559:58;;;26613:1;26610;26603:12;26628:129;-1:-1:-1;;;;;26706:5:145;26702:30;26695:5;26692:41;26682:69;;26747:1;26744;26737:12;26762:992;27140:10;27113:25;27131:6;27113:25;:::i;:::-;27109:42;27098:9;27091:61;27215:4;27207:6;27203:17;27190:31;27183:4;27172:9;27168:20;27161:61;27072:4;27269;27261:6;27257:17;27244:31;27284:30;27308:5;27284:30;:::i;:::-;-1:-1:-1;;;;;27356:5:145;27352:30;27345:4;27334:9;27330:20;27323:60;;27419:6;27414:2;27403:9;27399:18;27392:34;27463:3;27457;27446:9;27442:19;27435:32;27490:62;27547:3;27536:9;27532:19;27524:6;27516;27490:62;:::i;:::-;-1:-1:-1;;;;;27589:32:145;;27609:3;27568:19;;27561:61;27659:22;;;27653:3;27638:19;;27631:51;27699:49;27663:6;27733;27725;27699:49;:::i;:::-;27691:57;26762:992;-1:-1:-1;;;;;;;;;;26762:992:145:o;27759:647::-;27838:6;27891:2;27879:9;27870:7;27866:23;27862:32;27859:52;;;27907:1;27904;27897:12;27859:52;27940:9;27934:16;-1:-1:-1;;;;;27965:6:145;27962:30;27959:50;;;28005:1;28002;27995:12;27959:50;28028:22;;28081:4;28073:13;;28069:27;-1:-1:-1;28059:55:145;;28110:1;28107;28100:12;28059:55;28139:2;28133:9;28164:48;28180:31;28208:2;28180:31;:::i;28164:48::-;28235:2;28228:5;28221:17;28275:7;28270:2;28265;28261;28257:11;28253:20;28250:33;28247:53;;;28296:1;28293;28286:12;28247:53;28309:67;28373:2;28368;28361:5;28357:14;28352:2;28348;28344:11;28309:67;:::i;28608:245::-;28666:6;28719:2;28707:9;28698:7;28694:23;28690:32;28687:52;;;28735:1;28732;28725:12;28687:52;28774:9;28761:23;28793:30;28817:5;28793:30;:::i;28858:479::-;29125:1;29121;29116:3;29112:11;29108:19;29100:6;29096:32;29085:9;29078:51;29165:6;29160:2;29149:9;29145:18;29138:34;29220:6;29212;29208:19;29203:2;29192:9;29188:18;29181:47;29264:3;29259:2;29248:9;29244:18;29237:31;29059:4;29285:46;29326:3;29315:9;29311:19;29303:6;29285:46;:::i;29342:379::-;29535:2;29524:9;29517:21;29498:4;29561:45;29602:2;29591:9;29587:18;29579:6;29561:45;:::i;:::-;29654:9;29646:6;29642:22;29637:2;29626:9;29622:18;29615:50;29682:33;29708:6;29700;29682:33;:::i;29726:245::-;29793:6;29846:2;29834:9;29825:7;29821:23;29817:32;29814:52;;;29862:1;29859;29852:12;29814:52;29894:9;29888:16;29913:28;29935:5;29913:28;:::i;29976:891::-;30199:2;30188:9;30181:21;30257:10;30248:6;30242:13;30238:30;30233:2;30222:9;30218:18;30211:58;30323:4;30315:6;30311:17;30305:24;30300:2;30289:9;30285:18;30278:52;30162:4;30377:2;30369:6;30365:15;30359:22;30418:4;30412:3;30401:9;30397:19;30390:33;30446:52;30493:3;30482:9;30478:19;30464:12;30446:52;:::i;:::-;30432:66;;30547:2;30539:6;30535:15;30529:22;30621:2;30617:7;30605:9;30597:6;30593:22;30589:36;30582:4;30571:9;30567:20;30560:66;30649:41;30683:6;30667:14;30649:41;:::i;:::-;30759:3;30747:16;;;;30741:23;30734:31;30727:39;30721:3;30706:19;;30699:68;-1:-1:-1;;;;;;;;30828:32:145;;;;30821:4;30806:20;;;30799:62;30635:55;29976:891::o;30872:284::-;30942:5;30990:4;30978:9;30973:3;30969:19;30965:30;30962:50;;;31008:1;31005;30998:12;30962:50;31030:22;;:::i;:::-;31021:31;;31081:9;31075:16;31068:5;31061:31;31145:2;31134:9;31130:18;31124:25;31119:2;31112:5;31108:14;31101:49;30872:284;;;;:::o;31161:525::-;31265:6;31318:3;31306:9;31297:7;31293:23;31289:33;31286:53;;;31335:1;31332;31325:12;31286:53;31361:22;;:::i;:::-;31412:9;31406:16;31399:5;31392:31;31468:2;31457:9;31453:18;31447:25;31481:32;31505:7;31481:32;:::i;:::-;31540:2;31529:14;;31522:31;31585:70;31647:7;31642:2;31627:18;;31585:70;:::i;:::-;31580:2;31569:14;;31562:94;31573:5;31161:525;-1:-1:-1;;;31161:525:145:o;31816:542::-;31917:2;31912:3;31909:11;31906:446;;;31953:1;31977:5;31974:1;31967:16;32021:4;32018:1;32008:18;32091:2;32079:10;32075:19;32072:1;32068:27;32062:4;32058:38;32127:4;32115:10;32112:20;32109:47;;;-1:-1:-1;32150:4:145;32109:47;32205:2;32200:3;32196:12;32193:1;32189:20;32183:4;32179:31;32169:41;;32260:82;32278:2;32271:5;32268:13;32260:82;;;32323:17;;;32304:1;32293:13;32260:82;;32534:1341;32658:3;32652:10;-1:-1:-1;;;;;32677:6:145;32674:30;32671:56;;;32707:18;;:::i;:::-;32736:96;32825:6;32785:38;32817:4;32811:11;32785:38;:::i;:::-;32779:4;32736:96;:::i;:::-;32887:4;;32944:2;32933:14;;32961:1;32956:662;;;;33662:1;33679:6;33676:89;;;-1:-1:-1;33731:19:145;;;33725:26;33676:89;-1:-1:-1;;32491:1:145;32487:11;;;32483:24;32479:29;32469:40;32515:1;32511:11;;;32466:57;33778:81;;32926:943;;32956:662;31763:1;31756:14;;;31800:4;31787:18;;-1:-1:-1;;32992:20:145;;;33109:236;33123:7;33120:1;33117:14;33109:236;;;33212:19;;;33206:26;33191:42;;33304:27;;;;33272:1;33260:14;;;;33139:19;;33109:236;;;33113:3;33373:6;33364:7;33361:19;33358:201;;;33434:19;;;33428:26;-1:-1:-1;;33517:1:145;33513:14;;;33529:3;33509:24;33505:37;33501:42;33486:58;33471:74;;33358:201;-1:-1:-1;;;;;33605:1:145;33589:14;;;33585:22;33572:36;;-1:-1:-1;32534:1341:145:o;33880:1164::-;34096:4;34125:2;34165;34154:9;34150:18;34195:2;34184:9;34177:21;34218:6;34253;34247:13;34284:6;34276;34269:22;34310:2;34300:12;;34343:2;34332:9;34328:18;34321:25;;34405:2;34395:6;34392:1;34388:14;34377:9;34373:30;34369:39;34443:2;34435:6;34431:15;34464:1;34474:541;34488:6;34485:1;34482:13;34474:541;;;34553:22;;;-1:-1:-1;;34549:36:145;34537:49;;34609:13;;34681:9;;34692:10;34677:26;34662:42;;34751:11;;;34745:18;34765:6;34741:31;34724:15;;;34717:56;34812:11;;34806:18;34645:4;34844:15;;;34837:27;;;34887:48;34919:15;;;34806:18;34887:48;:::i;:::-;34993:12;;;;34877:58;-1:-1:-1;;;34958:15:145;;;;34510:1;34503:9;34474:541;;;-1:-1:-1;35032:6:145;;33880:1164;-1:-1:-1;;;;;;;;33880:1164:145:o;35049:259::-;35149:6;35202:2;35190:9;35181:7;35177:23;35173:32;35170:52;;;35218:1;35215;35208:12;35170:52;35241:61;35294:7;35283:9;35241:61;:::i;35313:255::-;35433:19;;35472:2;35464:11;;35461:101;;;-1:-1:-1;;35533:2:145;35529:12;;;35526:1;35522:20;35518:33;35507:45;35313:255;;;;:::o;35573:127::-;35634:10;35629:3;35625:20;35622:1;35615:31;35665:4;35662:1;35655:15;35689:4;35686:1;35679:15;35705:168;35778:9;;;35809;;35826:15;;;35820:22;;35806:37;35796:71;;35847:18;;:::i;35878:125::-;35943:9;;;35964:10;;;35961:36;;;35977:18;;:::i;36008:503::-;36245:3;36223:16;;;-1:-1:-1;;;;;;36219:51:145;36207:64;;36326:3;36304:16;;;-1:-1:-1;;;;;;36300:43:145;36296:1;36287:11;;36280:64;36367:13;;-1:-1:-1;;36389:75:145;36367:13;36452:2;36443:12;;36436:4;36424:17;;36389:75;:::i;:::-;36484:16;;;;36502:2;36480:25;;36008:503;-1:-1:-1;;;;36008:503:145:o;36516:400::-;36601:12;;36569:3;;36651:4;36678:16;;;36569:3;36730:13;;36722:169;;36797:13;;36785:26;;36831:12;;;;36866:15;;;;36758:1;36751:9;36722:169;;36921:479;37246:6;37241:3;37234:19;37283:6;37278:2;37273:3;37269:12;37262:28;37216:3;37306:88;37343:50;37389:2;37384:3;37380:12;37372:6;37343:50;:::i;:::-;37335:6;37306:88;:::i;37405:667::-;37776:6;37771:3;37764:19;37813:6;37808:2;37803:3;37799:12;37792:28;37746:3;37839:88;37876:50;37922:2;37917:3;37913:12;37905:6;37876:50;:::i;:::-;37868:6;37839:88;:::i;:::-;37956:6;37950:13;37972:63;38028:6;38024:2;38019;38011:6;38007:15;37972:63;:::i;:::-;38051:15;;37405:667;-1:-1:-1;;;;;;;37405:667:145:o;38077:251::-;38147:6;38200:2;38188:9;38179:7;38175:23;38171:32;38168:52;;;38216:1;38213;38206:12;38168:52;38248:9;38242:16;38267:31;38292:5;38267:31;:::i;38755:487::-;39012:2;39001:9;38994:21;38975:4;39038:67;39101:2;39090:9;39086:18;39078:6;39038:67;:::i;:::-;39153:9;39145:6;39141:22;39136:2;39125:9;39121:18;39114:50;39181:55;39229:6;39221;39181:55;:::i;39247:561::-;-1:-1:-1;;;;;39544:15:145;;;39526:34;;39596:15;;39591:2;39576:18;;39569:43;39643:2;39628:18;;39621:34;;;39686:2;39671:18;;39664:34;;;39506:3;39729;39714:19;;39707:32;;;39469:4;;39756:46;;39782:19;;39774:6;39756:46;:::i;39813:249::-;39882:6;39935:2;39923:9;39914:7;39910:23;39906:32;39903:52;;;39951:1;39948;39941:12;39903:52;39983:9;39977:16;40002:30;40026:5;40002:30;:::i;40067:849::-;-1:-1:-1;;;;;40464:15:145;;;40446:34;;40516:15;;40511:2;40496:18;;40489:43;40426:3;40563:2;40548:18;;40541:31;;;40389:4;;40595:68;;40643:19;;40635:6;40595:68;:::i;:::-;40711:9;40703:6;40699:22;40694:2;40683:9;40679:18;40672:50;40745:55;40793:6;40785;40745:55;:::i;:::-;40731:69;;40849:9;40841:6;40837:22;40831:3;40820:9;40816:19;40809:51;40877:33;40903:6;40895;40877:33;:::i;:::-;40869:41;40067:849;-1:-1:-1;;;;;;;;40067:849:145:o;41301:287::-;41430:3;41468:6;41462:13;41484:66;41543:6;41538:3;41531:4;41523:6;41519:17;41484:66;:::i","linkReferences":{},"immutableReferences":{"6372":[{"start":1156,"length":32},{"start":2175,"length":32},{"start":4138,"length":32},{"start":4905,"length":32},{"start":5601,"length":32},{"start":6697,"length":32},{"start":8059,"length":32},{"start":8244,"length":32}]}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","isApprovedForAll(address,address)":"e985e9c5","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","mint(address,uint256,uint256,bytes)":"731133e9","mintBatch(address,uint256[],uint256[],bytes)":"1f7fdffa","msgInspector()":"111ecdad","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256[],uint256[],bytes,bytes,bytes),bool)":"d58c3aa8","renounceOwnership()":"715018a6","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","send((uint32,bytes32,uint256[],uint256[],bytes,bytes,bytes),(uint256,uint256),address)":"2250032b","setApprovalForAll(address,bool)":"a22cb465","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","supportsInterface(bytes4)":"01ffc9a7","token()":"fc0c546a","transferOwnership(address)":"f2fde38b","uri(uint256)":"0e89341c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_uri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnapprovedSender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"mintBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMessage\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"interfaceId: This specific interface ID is 'a72f5dd8'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID.\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"token()\":{\"returns\":{\"tokenAddress\":\"token The address of the ERC721 token implementation.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"SEND()\":{\"notice\":\"Msg types that are used to identify the various OFT operations.\"},\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the ONFT.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/onft/onft1155/mocks/ONFT1155Mock.sol\":\"ONFT1155Mock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft1155/ONFT1155.sol\":{\"keccak256\":\"0x90993d068e4fdf0e42fb16897673d1119a4e4f955f6565d58776b3951c26c409\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8aaead606e653567b774d93c21154525eaf185d9d17aacb8a06b4d40bddf2def\",\"dweb:/ipfs/QmNwFARa25t14W7bWZrpgCbmexz49cxErkrBU6Au5xLyo4\"]},\"contracts/onft1155/ONFT1155Core.sol\":{\"keccak256\":\"0xa3507a5d977920a65aa04b55ade0b304eaa581be2950b43a6da4e4db97b911cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13da03b54747d237b69b8197d080c1e7a73f0bca76a5d1e0c596608b6ebbe5e7\",\"dweb:/ipfs/QmUPceh23yLaq1vTVAH4CMEGwSaD1R3WZQjiY4vQbzPa7g\"]},\"contracts/onft1155/interfaces/IONFT1155.sol\":{\"keccak256\":\"0xffd1af688b9bfc983dd5832e3b9313e97c840651a1035cfd49de3733f70345e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81a5c37318692f7413ae2c7da568494e6b1431dc7fe1b93c287ce777ac489fe0\",\"dweb:/ipfs/Qmf5iqY84xyooJezLkmtedrEEjME4kF3jC4KLURmag4Gse\"]},\"contracts/onft1155/libs/ONFT1155MsgCodec.sol\":{\"keccak256\":\"0x9c5c02dd90d94526f347440d3d853e13612024305704b95664f7adeff63ede04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66f15af7feeb78d45c41cf52497edfdf7919e89748cd501707303e81c90bc2c1\",\"dweb:/ipfs/QmcEcpcEb192Etv8hJkEdbcBaWMBJh91FsTdYTjsgiCVJi\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"test/onft/onft1155/mocks/ONFT1155Mock.sol\":{\"keccak256\":\"0x4a0ad1922f24d37b6c54c723ace70a1cc747076b4b6b66fb1614be5a5fe2509a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8107647d3d981c9067aef972eec2214842a8b2ab322b7a559f3b892a878d8647\",\"dweb:/ipfs/QmbuoAAZTJf7xyQUDm8tTFvpBpYxoubXF5QirETyDdopQ7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_uri","type":"string"},{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC1155InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC1155InvalidApprover"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"type":"error","name":"ERC1155InvalidArrayLength"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC1155InvalidOperator"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC1155InvalidSender"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC1155MissingApprovalForAll"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"UnapprovedSender"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mintBatch"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMessage","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMessage","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"tokenAddress","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"balanceOf(address,uint256)":{"details":"See {IERC1155-balanceOf}."},"balanceOfBatch(address[],uint256[])":{"details":"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"isApprovedForAll(address,address)":{"details":"See {IERC1155-isApprovedForAll}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"interfaceId: This specific interface ID is 'a72f5dd8'.version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented. ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID.","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"See {IERC1155-safeBatchTransferFrom}."},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"See {IERC1155-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC1155-setApprovalForAll}."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"token()":{"returns":{"tokenAddress":"token The address of the ERC721 token implementation."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"uri(uint256)":{"details":"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\{id\\}` substring with the actual token type ID."}},"version":1},"userdoc":{"kind":"user","methods":{"SEND()":{"notice":"Msg types that are used to identify the various OFT operations."},"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the token associated with the ONFT."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/onft/onft1155/mocks/ONFT1155Mock.sol":"ONFT1155Mock"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft1155/ONFT1155.sol":{"keccak256":"0x90993d068e4fdf0e42fb16897673d1119a4e4f955f6565d58776b3951c26c409","urls":["bzz-raw://8aaead606e653567b774d93c21154525eaf185d9d17aacb8a06b4d40bddf2def","dweb:/ipfs/QmNwFARa25t14W7bWZrpgCbmexz49cxErkrBU6Au5xLyo4"],"license":"MIT"},"contracts/onft1155/ONFT1155Core.sol":{"keccak256":"0xa3507a5d977920a65aa04b55ade0b304eaa581be2950b43a6da4e4db97b911cf","urls":["bzz-raw://13da03b54747d237b69b8197d080c1e7a73f0bca76a5d1e0c596608b6ebbe5e7","dweb:/ipfs/QmUPceh23yLaq1vTVAH4CMEGwSaD1R3WZQjiY4vQbzPa7g"],"license":"MIT"},"contracts/onft1155/interfaces/IONFT1155.sol":{"keccak256":"0xffd1af688b9bfc983dd5832e3b9313e97c840651a1035cfd49de3733f70345e9","urls":["bzz-raw://81a5c37318692f7413ae2c7da568494e6b1431dc7fe1b93c287ce777ac489fe0","dweb:/ipfs/Qmf5iqY84xyooJezLkmtedrEEjME4kF3jC4KLURmag4Gse"],"license":"MIT"},"contracts/onft1155/libs/ONFT1155MsgCodec.sol":{"keccak256":"0x9c5c02dd90d94526f347440d3d853e13612024305704b95664f7adeff63ede04","urls":["bzz-raw://66f15af7feeb78d45c41cf52497edfdf7919e89748cd501707303e81c90bc2c1","dweb:/ipfs/QmcEcpcEb192Etv8hJkEdbcBaWMBJh91FsTdYTjsgiCVJi"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"keccak256":"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde","urls":["bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026","dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"keccak256":"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce","urls":["bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182","dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3","urls":["bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23","dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"keccak256":"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68","urls":["bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522","dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Arrays.sol":{"keccak256":"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1","urls":["bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5","dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"test/onft/onft1155/mocks/ONFT1155Mock.sol":{"keccak256":"0x4a0ad1922f24d37b6c54c723ace70a1cc747076b4b6b66fb1614be5a5fe2509a","urls":["bzz-raw://8107647d3d981c9067aef972eec2214842a8b2ab322b7a559f3b892a878d8647","dweb:/ipfs/QmbuoAAZTJf7xyQUDm8tTFvpBpYxoubXF5QirETyDdopQ7"],"license":"UNLICENSED"}},"version":1},"id":139} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT1155MsgCodec.sol/ONFT1155MsgCodec.json b/packages/onft-evm/out/ONFT1155MsgCodec.sol/ONFT1155MsgCodec.json deleted file mode 100644 index 654f10079..000000000 --- a/packages/onft-evm/out/ONFT1155MsgCodec.sol/ONFT1155MsgCodec.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf65d6526edeee77a3a6930573569d3ea45b24109f4d156f8ba87dcee09f904e64736f6c63430008160033","sourceMap":"59:3247:4:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;59:3247:4;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf65d6526edeee77a3a6930573569d3ea45b24109f4d156f8ba87dcee09f904e64736f6c63430008160033","sourceMap":"59:3247:4:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onft1155/libs/ONFT1155MsgCodec.sol\":\"ONFT1155MsgCodec\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/onft1155/libs/ONFT1155MsgCodec.sol\":{\"keccak256\":\"0x9c5c02dd90d94526f347440d3d853e13612024305704b95664f7adeff63ede04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66f15af7feeb78d45c41cf52497edfdf7919e89748cd501707303e81c90bc2c1\",\"dweb:/ipfs/QmcEcpcEb192Etv8hJkEdbcBaWMBJh91FsTdYTjsgiCVJi\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onft1155/libs/ONFT1155MsgCodec.sol":"ONFT1155MsgCodec"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onft1155/libs/ONFT1155MsgCodec.sol":{"keccak256":"0x9c5c02dd90d94526f347440d3d853e13612024305704b95664f7adeff63ede04","urls":["bzz-raw://66f15af7feeb78d45c41cf52497edfdf7919e89748cd501707303e81c90bc2c1","dweb:/ipfs/QmcEcpcEb192Etv8hJkEdbcBaWMBJh91FsTdYTjsgiCVJi"],"license":"MIT"}},"version":1},"id":4} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT1155Performance.t.sol/ONFT1155Performance.json b/packages/onft-evm/out/ONFT1155Performance.t.sol/ONFT1155Performance.json deleted file mode 100644 index 0e1b3c586..000000000 --- a/packages/onft-evm/out/ONFT1155Performance.t.sol/ONFT1155Performance.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_FOR_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"assertGuid","inputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"},{"name":"guid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"decodeLzComposeOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"index","type":"uint16","internalType":"uint16"},{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeLzReceiveOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeNativeDropOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"receiver","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"executorValueCap","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextInflightPacket","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"hasPendingPackets","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"flag","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_from","type":"address","internalType":"address"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_to","type":"address","internalType":"address"},{"name":"_composerMsg","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzCompose","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_composer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceive","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextExecutorOption","inputs":[{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_cursor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"optionType","type":"uint8","internalType":"uint8"},{"name":"option","type":"bytes","internalType":"bytes"},{"name":"cursor","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"registerEndpoint","inputs":[{"name":"endpoint","type":"address","internalType":"contract EndpointV2Mock"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"schedulePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setExecutorValueCap","inputs":[{"name":"_valueCap","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUpEndpoints","inputs":[{"name":"_endpointNum","type":"uint8","internalType":"uint8"},{"name":"_libraryType","type":"uint8","internalType":"enum TestHelperOz5.LibraryType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setupOApps","inputs":[{"name":"_oappCreationCode","type":"bytes","internalType":"bytes"},{"name":"_startEid","type":"uint8","internalType":"uint8"},{"name":"_oappNum","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"sliceUintArray","inputs":[{"name":"array","type":"uint256[]","internalType":"uint256[]"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_one","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validatePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"},{"name":"_packetAmount","type":"uint256","internalType":"uint256"},{"name":"_composer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wireOApps","inputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"Executor_InvalidLzComposeOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReceiveOption","inputs":[]},{"type":"error","name":"Executor_InvalidNativeDropOption","inputs":[]},{"type":"error","name":"InvalidOptionType","inputs":[{"name":"optionType","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"QueueEmpty","inputs":[]},{"type":"error","name":"QueueFull","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080604081905260078054600160ff199182168117909255600b805490911690911790556200002e90620002a4565b604051809103906000f0801580156200004b573d6000803e3d6000fd5b50601c80546001600160a01b03929092166001600160a01b0319909216919091179055602180546001600160801b03191667016345785d8a0000179055604080518082019091526005815264616c69636560d81b6020820152620000af9062000171565b602280546001600160a01b0319166001600160a01b03929092169190911790556040805180820190915260038152623137b160e91b6020820152620000f49062000171565b602380546001600160a01b0319166001600160a01b0392909216919091179055604080518082019091526007815266636861726c696560c81b60208201526200013d9062000171565b602480546001600160a01b0319166001600160a01b03929092169190911790553480156200016a57600080fd5b506200036c565b60006200017e8262000185565b5092915050565b600080826040516020016200019b9190620002d8565b60408051808303601f190181529082905280516020909101206001625e79b760e01b03198252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa15801562000207573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022d9190620002f6565b6040516318caf8e360e31b8152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906200026b908590879060040162000328565b600060405180830381600087803b1580156200028657600080fd5b505af11580156200029b573d6000803e3d6000fd5b50505050915091565b6107f28062022a0083390190565b60005b83811015620002cf578181015183820152602001620002b5565b50506000910152565b60008251620002ec818460208701620002b2565b9190910192915050565b6000602082840312156200030957600080fd5b81516001600160a01b03811681146200032157600080fd5b9392505050565b60018060a01b0383168152604060208201526000825180604084015262000357816060850160208701620002b2565b601f01601f1916919091016060019392505050565b62022683806200037d6000396000f3fe6080604052600436106200024b5760003560e01c80637982cf42116200013b578063b752b72a11620000b9578063e20c9f711162000078578063e20c9f71146200074b578063ec53eaa01462000763578063f93e1d61146200077a578063fa7626d414620007c0578063faed6c5814620007dc57600080fd5b8063b752b72a146200066d578063b954fdf61462000692578063ba414fa614620006d7578063baead19c14620006ef578063defd9da6146200070a57600080fd5b8063997cff1b1162000106578063997cff1b14620005cc578063a29c898414620005f1578063ae6ce4001462000608578063b1dcf5c8146200062d578063b5508aa9146200065557600080fd5b80637982cf4214620005255780637c8bd543146200055957806385226c81146200058d578063916a17c614620005b457600080fd5b80633e5e3c2311620001c95780635e7baa4211620001945780635e7baa4214620004475780635ea0fefe146200046c57806366d9a9a014620004a25780636e1775e314620004c9578063703ca254146200050057600080fd5b80633e5e3c2314620003af5780633f7286f414620003c7578063450eea2e14620003df578063518e8ab014620003f757600080fd5b80631ed7831c11620002165780631ed7831c14620002e15780632113ce6214620003115780632a35d250146200034c5780632ade388014620003715780633bbd6a94146200039857600080fd5b8063090852b614620002585780630a9254e4146200027f57806312cc947f14620002975780631cc4652514620002bc57600080fd5b366200025357005b600080fd5b3480156200026557600080fd5b506200027d62000277366004620052ad565b62000801565b005b3480156200028c57600080fd5b506200027d6200081d565b348015620002a457600080fd5b506200027d620002b63660046200532f565b62000abb565b348015620002c957600080fd5b506200027d620002db36600462005384565b620013bf565b348015620002ee57600080fd5b50620002f962002830565b60405162000308919062005401565b60405180910390f35b3480156200031e57600080fd5b5060215462000333906001600160801b031681565b6040516001600160801b03909116815260200162000308565b3480156200035957600080fd5b50620002f96200036b36600462005510565b62002894565b3480156200037e57600080fd5b5062000389620029ab565b6040516200030891906200562d565b6200027d620003a9366004620056b0565b62002af9565b348015620003bc57600080fd5b50620002f962002bb9565b348015620003d457600080fd5b50620002f962002c1b565b348015620003ec57600080fd5b506200027d62002c7d565b3480156200040457600080fd5b506200041c620004163660046200532f565b62002e4d565b6040805161ffff90941684526001600160801b03928316602085015291169082015260600162000308565b3480156200045457600080fd5b506200027d620004663660046200576a565b62002e6b565b3480156200047957600080fd5b50620004916200048b366004620057ca565b6200331f565b604051901515815260200162000308565b348015620004af57600080fd5b50620004ba62003354565b604051620003089190620057f9565b348015620004d657600080fd5b50620004ee620004e8366004620058b2565b6200343e565b6040516200030894939291906200592a565b3480156200050d57600080fd5b506200027d6200051f36600462005980565b62003462565b3480156200053257600080fd5b506200054a62000544366004620057ca565b6200362e565b60405162000308919062005a24565b3480156200056657600080fd5b506200057e6200057836600462005a39565b6200371c565b60405162000308919062005b15565b3480156200059a57600080fd5b50620005a562003850565b60405162000308919062005b2a565b348015620005c157600080fd5b50620004ba6200392a565b348015620005d957600080fd5b506200027d620005eb366004620058b2565b62003a14565b6200027d6200060236600462005b3f565b62003a6c565b3480156200061557600080fd5b506200027d6200062736600462005bcf565b62003aed565b3480156200063a57600080fd5b5062000646620186a081565b60405190815260200162000308565b3480156200066257600080fd5b50620005a562003b8e565b3480156200067a57600080fd5b506200027d6200068c36600462005bef565b62003c68565b3480156200069f57600080fd5b50620006b7620006b13660046200532f565b62003c77565b604080516001600160801b03909316835260208301919091520162000308565b348015620006e457600080fd5b506200049162003c92565b348015620006fc57600080fd5b506200064664e8d4a5100081565b3480156200071757600080fd5b506200027d6200072936600462005c26565b602180546001600160801b0319166001600160801b0392909216919091179055565b3480156200075857600080fd5b50620002f962003dc9565b6200027d6200077436600462005c46565b62003e2b565b3480156200078757600080fd5b506200079f620007993660046200532f565b62003f66565b604080516001600160801b0393841681529290911660208301520162000308565b348015620007cd57600080fd5b50600754620004919060ff1681565b348015620007e957600080fd5b506200027d620007fb36600462005cb5565b62003f75565b62000819826001600160a01b03831660008062002e6b565b5050565b6200082762004007565b604080518082018252600c81526b687474703a2f2f612e636f6d60a01b602080830191909152600160005280527f156774b33c8bc7cb83eda4cbc43b36c7c9490ff8913c488ccd5132cfc71344ea54915190916001600160a01b0316903090620008919062005147565b6200089f9392919062005d27565b604051809103906000f080158015620008bc573d6000803e3d6000fd5b50602580546001600160a01b0319166001600160a01b03928316179055604080518082018252600c81526b687474703a2f2f622e636f6d60a01b602080830191909152600260005280527f2c5f9a2e204d4db70ad0f9037679e33061b4c51a386497019bee969e16be28d75491519092919091169030906200093e9062005147565b6200094c9392919062005d27565b604051809103906000f08015801562000969573d6000803e3d6000fd5b50602680546001600160a01b0319166001600160a01b0392909216919091179055620009946200401f565b604080516001808252818301909252600091816020015b60408051606080820183526000808352602083015291810191909152815260200190600190039081620009ab575050604080516060810182526002815260016020820152919250810162000a2e6302faf080600062000a2660408051600360f01b602082015281516002818303018152602290910190915290565b9190620040d9565b8152508160008151811062000a475762000a4762005d5c565b6020908102919091010152602554604051630b98bd0760e41b81526001600160a01b039091169063b98bd0709062000a8490849060040162005d72565b600060405180830381600087803b15801562000a9f57600080fd5b505af115801562000ab4573d6000803e3d6000fd5b5050505050565b600062000ac983836200414b565b63ffffffff811660009081526020805260408120549192506001600160a01b03909116908163402f846862000aff878762004172565b62000b0b888862004187565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015263ffffffff1660248201526044016040805180830381865afa15801562000b5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b80919062005e04565b50905060008190506000826001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401606060405180830381865afa15801562000bc9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bef919062005e5a565b50509050806001600160401b031660030362001351576000826001600160a01b0316639c33abf762000c228a8a62004187565b62000c2e8b8b62004172565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526001600160a01b0316602482015260026044820152606401600060405180830381865afa15801562000c86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000cb0919081019062005ef4565b905060008180602001905181019062000cca919062005fa8565b6080015160008151811062000ce35762000ce362005d5c565b60200260200101519050600062000cfb8a8a62004199565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093945062000d4092508d91508c9050620041ab565b60405162000d509291906200608f565b6040518091039020905060606000630223536e60e01b8484606460405160240162000d7e939291906200609f565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03861663f010cb238d8b8562000dd4426103e8620060e3565b6040518563ffffffff1660e01b815260040162000df59493929190620060f9565b602060405180830381865afa15801562000e13573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e3991906200613c565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b82526001600483015260248201819052915060009081908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063e341eaa490604401606060405180830381865afa15801562000ee9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f0f919062006156565b6040805160208101939093528281019190915260f89290921b6001600160f81b03191660608201528151604181830301815260619091019091529650600094506001935062000f5d92505050565b60405190808252806020026020018201604052801562000fba57816020015b6040805160a081018252600080825260208201819052606092820183905282820152608081019190915281526020019060019003908162000f7c5790505b5090506040518060a001604052808d63ffffffff1681526020018a6001600160a01b03168152602001838152602001426103e862000ff99190620060e3565b8152602001848152508160008151811062001018576200101862005d5c565b602090810291909101015260405163b143044b60e01b81526001600160a01b0387169063b143044b906200105190849060040162006190565b600060405180830381600087803b1580156200106c57600080fd5b505af115801562001081573d6000803e3d6000fd5b505050506000630894edf160e01b8686604051602401620010a492919062006242565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03881663f010cb238f8d85620010fa426103e8620060e3565b6040518563ffffffff1660e01b81526004016200111b9493929190620060f9565b602060405180830381865afa15801562001139573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200115f91906200613c565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b82526001600483015260248201819052915060009081908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063e341eaa490604401606060405180830381865afa1580156200120f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001235919062006156565b60408051602081018490529081018290526001600160f81b031960f885901b1660608201529295509093509150606101604051602081830303815290604052985050505050506040518060a001604052808e63ffffffff1681526020018b6001600160a01b03168152602001828152602001426103e8620012b79190620060e3565b81526020018581525082600081518110620012d657620012d662005d5c565b602090810291909101015260405163b143044b60e01b81526001600160a01b0388169063b143044b906200130f90859060040162006190565b600060405180830381600087803b1580156200132a57600080fd5b505af11580156200133f573d6000803e3d6000fd5b505050505050505050505050620013b6565b6040516312cc947f60e01b81526001600160a01b038416906312cc947f9062001381908a908a9060040162006266565b600060405180830381600087803b1580156200139c57600080fd5b505af1158015620013b1573d6000803e3d6000fd5b505050505b50505050505050565b60008260ff166001600160401b03811115620013df57620013df62005416565b60405190808252806020026020018201604052801562001409578160200160208202803683370190505b50905060008360ff166001600160401b038111156200142c576200142c62005416565b60405190808252806020026020018201604052801562001456578160200160208202803683370190505b50905060005b8460ff168160ff161015620015675760006200147a8260016200627c565b60ff16905080838360ff168151811062001498576200149862005d5c565b602002602001019063ffffffff16908163ffffffff16815250508030604051620014c29062005155565b63ffffffff90921682526001600160a01b03166020820152604001604051809103906000f080158015620014fa573d6000803e3d6000fd5b50848360ff168151811062001513576200151362005d5c565b60200260200101906001600160a01b031690816001600160a01b0316815250506200155d848360ff16815181106200154f576200154f62005d5c565b602002602001015162003aed565b506001016200145c565b5060008460ff166001600160401b0381111562001588576200158862005416565b604051908082528060200260200182016040528015620015b2578160200160208202803683370190505b50905060008560ff166001600160401b03811115620015d557620015d562005416565b604051908082528060200260200182016040528015620015ff578160200160208202803683370190505b506040805160018082528183019092529192506000919060208083019080368337019050506040516001625e79b760e01b0319815260016004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156200167b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016a1919062006298565b81600081518110620016b757620016b762005d5c565b60200260200101906001600160a01b031690816001600160a01b031681525050600030604051620016e89062005163565b6001600160a01b039091168152602001604051809103906000f08015801562001715573d6000803e3d6000fd5b50905060005b8860ff168160ff16101562002668576000886001811115620017415762001741620062b8565b036200249c576000878260ff168151811062001761576200176162005d5c565b60200260200101519050600080308364e8d4a51000620186a0604051620017889062005171565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103906000f080158015620017c8573d6000803e3d6000fd5b50915082604051620017da906200517f565b6001600160a01b039091168152602001604051809103906000f08015801562001807573d6000803e3d6000fd5b509050898460ff168151811062001822576200182262005d5c565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0384811660048301529091169063e8964e8190602401600060405180830381600087803b1580156200187257600080fd5b505af115801562001887573d6000803e3d6000fd5b50505050898460ff1681518110620018a357620018a362005d5c565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b158015620018f357600080fd5b505af115801562001908573d6000803e3d6000fd5b5050505081888560ff168151811062001925576200192562005d5c565b60200260200101906001600160a01b031690816001600160a01b03168152505080878560ff16815181106200195e576200195e62005d5c565b6001600160a01b0392909216602092830291909101820152604080516001808252818301909252600092839283929182810190803683370190505090503081600081518110620019b257620019b262005d5c565b6001600160a01b03929092166020928302919091018201526040805160028082526060820183526000939192909183019080368337019050509050858160008151811062001a045762001a0462005d5c565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018151811062001a3b5762001a3b62005d5c565b60200260200101906001600160a01b031690816001600160a01b031681525050866000828b308660405162001a70906200518d565b62001a8196959493929190620062ce565b604051809103906000f08015801562001a9e573d6000803e3d6000fd5b509350600060405162001ab1906200519b565b604051809103906000f08015801562001ace573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b15801562001b1757600080fd5b505af115801562001b2c573d6000803e3d6000fd5b5050505088600162001b3f91906200627c565b828b8d60018760405162001b5390620051a9565b62001b64969594939291906200632c565b604051809103906000f08015801562001b81573d6000803e3d6000fd5b5093506000670de0b6b3a764000060405162001b9d90620051b7565b908152602001604051809103906000f08015801562001bc0573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b15801562001c0957600080fd5b505af115801562001c1e573d6000803e3d6000fd5b505050505050505060008e60ff16905060008163ffffffff166001600160401b0381111562001c515762001c5162005416565b60405190808252806020026020018201604052801562001cb357816020015b6040805160c08101825260008082526020808301829052928201819052606082018190526080820181905260a0820152825260001990920191018162001c705790505b50905060008263ffffffff166001600160401b0381111562001cd95762001cd962005416565b60405190808252806020026020018201604052801562001d2d57816020015b60408051608081018252600080825260208083018290529282018190526060820152825260001990920191018162001cf85790505b50905060005b8363ffffffff168160ff161015620023c9578060ff168a60ff160315620023b457600062001d638260016200627c565b60408051600180825281830190925260ff9290921692506000919060208083019080368337019050506040805160008082526020820190925291925050878260008151811062001db75762001db762005d5c565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b62001df1620051c5565b81526020019060019003908162001de757905050905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff168152602001828152508260008151811062001e7f5762001e7f62005d5c565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038e16906329460b0b9062001eb89085906004016200639f565b600060405180830381600087803b15801562001ed357600080fd5b505af115801562001ee8573d6000803e3d6000fd5b50600094506001935062001efb92505050565b60405190808252806020026020018201604052801562001f3857816020015b62001f246200522e565b81526020019060019003908162001f1a5790505b5090506000604051806040016040528061271063ffffffff1681526020018c6001600160a01b0316815250905060405180604001604052808663ffffffff168152602001828152508260008151811062001f965762001f9662005d5c565b602090810291909101015260405163c14c434960e01b81526001600160a01b038e169063c14c43499062001fcf9085906004016200647d565b600060405180830381600087803b15801562001fea57600080fd5b505af115801562001fff573d6000803e3d6000fd5b5060009450600193506200201292505050565b6040519080825280602002602001820160405280156200204f57816020015b6200203b620051c5565b815260200190600190039081620020315790505b50905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff1681526020018281525082600081518110620020ca57620020ca62005d5c565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038d16906329460b0b90620021039085906004016200639f565b600060405180830381600087803b1580156200211e57600080fd5b505af115801562002133573d6000803e3d6000fd5b50506040805160c08101825263ffffffff89168152611388602082018190529181019190915261271060608201526402540be40060808201526021546001600160801b031660a08201528a519094508a935060ff89169250821090506200219e576200219e62005d5c565b602002602001018190525060405180608001604052808463ffffffff1681526020016113886001600160401b0316815260200161271061ffff1681526020016402540be4006001600160801b0316815250858560ff168151811062002207576200220762005d5c565b602002602001018190525060008e6001600160a01b031663c18403276040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002253573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022799190620064ee565b60408051600180825281830190925291925060009190816020015b620022c860408051808201825260008082528251606081018452818152602081810183905293810191909152909182015290565b8152602001906001900390816200229457905050905060405180604001604052808663ffffffff16815260200160405180606001604052808560016200230f91906200650e565b6001600160801b0316815260016020820181905260409091015290528151829060009062002341576200234162005d5c565b60200260200101819052508f6001600160a01b0316633161b7f6826040518263ffffffff1660e01b81526004016200237a91906200653c565b600060405180830381600087803b1580156200239557600080fd5b505af1158015620023aa573d6000803e3d6000fd5b5050505050505050505b80620023c081620065b0565b91505062001d33565b50604051633d85ac3360e01b81526001600160a01b03861690633d85ac3390620023f8908590600401620065d2565b600060405180830381600087803b1580156200241357600080fd5b505af115801562002428573d6000803e3d6000fd5b50506040516352d3b87160e01b81526001600160a01b03871692506352d3b87191506200245a90849060040162006664565b600060405180830381600087803b1580156200247557600080fd5b505af11580156200248a573d6000803e3d6000fd5b5050505050505050505050506200265f565b6001886001811115620024b357620024b3620062b8565b036200261b57600030888360ff1681518110620024d457620024d462005d5c565b6020026020010151604051620024ea9062005273565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156200251e573d6000803e3d6000fd5b509050878260ff168151811062002539576200253962005d5c565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b1580156200258957600080fd5b505af11580156200259e573d6000803e3d6000fd5b5050505080868360ff1681518110620025bb57620025bb62005d5c565b60200260200101906001600160a01b031690816001600160a01b03168152505080858360ff1681518110620025f457620025f462005d5c565b60200260200101906001600160a01b031690816001600160a01b031681525050506200265f565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206c696272617279207479706560601b60448201526064015b60405180910390fd5b6001016200171b565b5060005b8860ff168160ff16101562002825576000878260ff168151811062002695576200269562005d5c565b6020026020010151905060005b8a60ff168160ff1610156200281a578060ff168360ff16031562002811576001600160a01b03821663aafea312620026dc8360016200627c565b898660ff1681518110620026f457620026f462005d5c565b60200260200101516040518363ffffffff1660e01b81526004016200273192919060ff9290921682526001600160a01b0316602082015260400190565b600060405180830381600087803b1580156200274c57600080fd5b505af115801562002761573d6000803e3d6000fd5b50505050816001600160a01b031663a718531b8260016200278391906200627c565b888660ff16815181106200279b576200279b62005d5c565b60209081029190910101516040516001600160e01b031960e085901b16815260ff90921660048301526001600160a01b0316602482015260006044820152606401600060405180830381600087803b158015620027f757600080fd5b505af11580156200280c573d6000803e3d6000fd5b505050505b600101620026a2565b50506001016200266c565b505050505050505050565b606060148054806020026020016040519081016040528092919081815260200182805480156200288a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200286b575b5050505050905090565b60608160ff166001600160401b03811115620028b457620028b462005416565b604051908082528060200260200182016040528015620028de578160200160208202803683370190505b509050825b620028ef83856200627c565b60ff168160ff161015620029985760ff81166000908152602080805260408083205481516001600160a01b039091169281019290925230908201526001606082015262002950908790608001604051602081830303815290604052620041bd565b90508083620029608785620066d9565b60ff168151811062002976576200297662005d5c565b6001600160a01b039092166020928302919091019091015250600101620028e3565b50620029a48162003462565b9392505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101562002af057600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562002ad857838290600052602060002001805462002a4490620066f5565b80601f016020809104026020016040519081016040528092919081815260200182805462002a7290620066f5565b801562002ac35780601f1062002a975761010080835404028352916020019162002ac3565b820191906000526020600020905b81548152906001019060200180831162002aa557829003601f168201915b50505050508152602001906001019062002a22565b505050508152505081526020019060010190620029cf565b50505050905090565b63ffffffff871660009081526020805260408120546001600160a01b031690808062002b25896200421c565b925092509250836001600160a01b03166391d20fa18284908d8b8d898d8d604051806020016040528060008152506040518a63ffffffff1660e01b815260040162002b77979695949392919062006731565b6000604051808303818589803b15801562002b9157600080fd5b5088f115801562002ba6573d6000803e3d6000fd5b5050505050505050505050505050505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200288a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200286b575050505050905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200288a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200286b575050505050905090565b60225462002c9a906001600160a01b031660006001600562004319565b602554602254604051627eeac760e11b81526001600160a01b0391821660048201526000602482015262002d2192919091169062fdd58e90604401602060405180830381865afa15801562002cf3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d1991906200613c565b60056200439d565b602554602354604051627eeac760e11b81526001600160a01b0391821660048201526001602482015262002da892919091169062fdd58e90604401602060405180830381865afa15801562002d7a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002da091906200613c565b60006200439d565b60235462002dc4906001600160a01b0316600180600262004319565b602554602354604051627eeac760e11b81526001600160a01b0391821660048201526001602482015262002e4b92919091169062fdd58e90604401602060405180830381865afa15801562002e1d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e4391906200613c565b60026200439d565b565b600080600062002e5e8585620044c8565b9250925092509250925092565b63ffffffff841660009081526020805260409020546001600160a01b031662002ed75760405162461bcd60e51b815260206004820152601b60248201527f656e64706f696e74206e6f742079657420726567697374657265640000000000604482015260640162002656565b63ffffffff84166000908152601d6020908152604080832086845290915281209062002f038262004546565b905060008460000362002f235762002f1b8362004546565b905062002f37565b84821162002f32578162002f34565b845b90505b8015620013b6578062002f4a8162006785565b915050600062002f5a8462004564565b6000818152601e602052604081208054929350909162002f7a90620066f5565b80601f016020809104026020016040519081016040528092919081815260200182805462002fa890620066f5565b801562002ff95780601f1062002fcd5761010080835404028352916020019162002ff9565b820191906000526020600020905b81548152906001019060200180831162002fdb57829003601f168201915b505060405163997cff1b60e01b8152939450309363997cff1b9350620030289250859150869060040162006242565b60006040518083038186803b1580156200304157600080fd5b505afa15801562003056573d6000803e3d6000fd5b50506040516312cc947f60e01b81523092506312cc947f91506200307f90849060040162005a24565b600060405180830381600087803b1580156200309a57600080fd5b505af1158015620030af573d6000803e3d6000fd5b5050506000838152601f60205260408120805491925090620030d190620066f5565b80601f0160208091040260200160405190810160405280929190818152602001828054620030ff90620066f5565b8015620031505780601f10620031245761010080835404028352916020019162003150565b820191906000526020600020905b8154815290600101906020018083116200313257829003601f168201915b5050505050905062003164816002620045d5565b1562003220576000806200317883620045eb565b604051919350915081906000906001600160a01b0383169085908381818185875af1925050503d8060008114620031cc576040519150601f19603f3d011682016040523d82523d6000602084013e620031d1565b606091505b50509050806200321b5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640162002656565b505050505b6200322d816001620045d5565b156200328f576040516307629f5560e51b8152309063ec53eaa0906200325a90859085906004016200679f565b600060405180830381600087803b1580156200327557600080fd5b505af11580156200328a573d6000803e3d6000fd5b505050505b6001600160a01b03871615801590620032b05750620032b0816003620045d5565b1562003316576040516328a7226160e21b8152309063a29c898490620032e1908590859088908d90600401620067c8565b600060405180830381600087803b158015620032fc57600080fd5b505af115801562003311573d6000803e3d6000fd5b505050505b50505062002f37565b61ffff82166000908152601d60209081526040808320848452909152812081620033498262004546565b119150505b92915050565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101562002af05760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200342557602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620033e65790505b5050505050815250508152602001906001019062003378565b60003660008062003451878787620046e2565b935093509350935093509350935093565b805160005b818110156200362957600083828151811062003487576200348762005d5c565b6020026020010151905060005b838110156200361e5782811462003615576000858281518110620034bc57620034bc62005d5c565b602002602001015190506000816001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003507573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200352d919062006298565b6001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200356b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003591919062006813565b9050836001600160a01b0316633400288b82620035b4856001600160a01b031690565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b158015620035f957600080fd5b505af11580156200360e573d6000803e3d6000fd5b5050505050505b60010162003494565b505060010162003467565b505050565b61ffff82166000908152601d6020908152604080832084845290915281206060916200365a8262004546565b1115620037155760006200366e826200473e565b6000818152601e602052604090208054919250906200368d90620066f5565b80601f0160208091040260200160405190810160405280929190818152602001828054620036bb90620066f5565b80156200370c5780601f10620036e0576101008083540402835291602001916200370c565b820191906000526020600020905b815481529060010190602001808311620036ee57829003601f168201915b50505050509250505b5092915050565b60608183036200373c5750604080516000815260208101909152620029a4565b83518211156200378f5760405162461bcd60e51b815260206004820152601760248201527f656e6420696e646578206f7574206f6620626f756e6473000000000000000000604482015260640162002656565b60006200379d848462006833565b90506000816001600160401b03811115620037bc57620037bc62005416565b604051908082528060200260200182016040528015620037e6578160200160208202803683370190505b50905060005b82811015620038465786620038028288620060e3565b8151811062003815576200381562005d5c565b602002602001015182828151811062003832576200383262005d5c565b6020908102919091010152600101620037ec565b5095945050505050565b60606018805480602002602001604051908101604052809291908181526020016000905b8282101562002af05783829060005260206000200180546200389690620066f5565b80601f0160208091040260200160405190810160405280929190818152602001828054620038c490620066f5565b8015620039155780601f10620038e95761010080835404028352916020019162003915565b820191906000526020600020905b815481529060010190602001808311620038f757829003601f168201915b50505050508152602001906001019062003874565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101562002af05760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620039fb57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620039bc5790505b505050505081525050815260200190600101906200394e565b600062003a228484620047ac565b905081811462003a665760405162461bcd60e51b815260206004820152600e60248201526d0ceead2c840dcdee840dac2e8c6d60931b604482015260640162002656565b50505050565b30633bbd6a9462003a7e87876200414b565b62003a8a888862004172565b86868662003a998c8c620047c9565b6040518863ffffffff1660e01b815260040162003abd979695949392919062006849565b600060405180830381600087803b15801562003ad857600080fd5b505af115801562002825573d6000803e3d6000fd5b8060206000836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003b31573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b57919062006813565b63ffffffff168152602081019190915260400160002080546001600160a01b0319166001600160a01b039290921691909117905550565b60606017805480602002602001604051908101604052809291908181526020016000905b8282101562002af057838290600052602060002001805462003bd490620066f5565b80601f016020809104026020016040519081016040528092919081815260200182805462003c0290620066f5565b801562003c535780601f1062003c275761010080835404028352916020019162003c53565b820191906000526020600020905b81548152906001019060200180831162003c3557829003601f168201915b50505050508152602001906001019062003bb2565b62000819828260008062002e6b565b60008062003c868484620047db565b915091505b9250929050565b600754600090610100900460ff161562003cb55750600754610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562003dc45760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b8284015282518083038401815260608301909352600092909162003d46917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001620068ab565b60408051601f198184030181529082905262003d6291620068de565b6000604051808303816000865af19150503d806000811462003da1576040519150601f19603f3d011682016040523d82523d6000602084013e62003da6565b606091505b509150508080602001905181019062003dc09190620068fc565b9150505b919050565b606060138054806020026020016040519081016040528092919081815260200182805480156200288a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200286b575050505050905090565b60006020600062003e3d86866200414b565b63ffffffff16815260208101919091526040016000908120546001600160a01b031691508062003e6d8462004827565b915091506000604051806060016040528062003e8a898962004187565b63ffffffff16815260200162003ea189896200491e565b815260200162003eb2898962004930565b6001600160401b0316905290506001600160a01b038416630c0c389e84848462003edd8c8c62004172565b62003ee98d8d620047ac565b62003ef58e8e620047c9565b604051806020016040528060008152506040518963ffffffff1660e01b815260040162003f28969594939291906200691a565b6000604051808303818589803b15801562003f4257600080fd5b5088f115801562003f57573d6000803e3d6000fd5b50505050505050505050505050565b60008062003c86848462004957565b600062003f8385856200414b565b9050600062003f938686620049bb565b63ffffffff83166000908152601d60209081526040808320848452909152812091925062003fc28888620047ac565b905062003fd08282620049cd565b6000818152601e6020526040902062003feb888a83620069d6565b506000818152601f6020526040902062002825868883620069d6565b6200401560036000620013bf565b62002e4b62004a38565b604080516002808252606082018352600092602083019080368337019050506025549091506000906001600160a01b031682826200405d8162006aa2565b93508151811062004072576200407262005d5c565b6001600160a01b039283166020918202929092010152602654168282620040998162006aa2565b935081518110620040ae57620040ae62005d5c565b60200260200101906001600160a01b031690816001600160a01b031681525050620008198262003462565b6060836003620040eb82600062004bbd565b61ffff161462004123576200410281600062004bbd565b604051633a51740d60e01b815261ffff909116600482015260240162002656565b600062004131858562004c1e565b9050620041418660018362004c99565b9695505050505050565b60006200415d6031602d848662006abe565b620041689162006aea565b60e01c9392505050565b6000620029a4620041848484620049bb565b90565b60006200415d600d6009848662006abe565b36600062003c86605182858762006abe565b36600062003c86836051818762006abe565b60008083604051602001620041d39190620068de565b60408051601f1981840301815290829052620041f491859060200162006b19565b60405160208183030381529060405290508051602082016000f09150813b6200371557600080fd5b60008060008060006200423186600362004d0f565b9150915081620042965760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a436f6d706f7365206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002656565b604051630518e8ab60e41b8152309063518e8ab090620042bb90849060040162005a24565b606060405180830381865afa158015620042d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620042ff919062006b4c565b91986001600160801b039182169850911695509350505050565b6025546001600160a01b0316631f7fdffa8562004337868662004e4e565b62004343858762004ed9565b6040518463ffffffff1660e01b8152600401620043639392919062006b95565b600060405180830381600087803b1580156200437e57600080fd5b505af115801562004393573d6000803e3d6000fd5b5050505050505050565b80821462000819577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620044109060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808080808081319599d60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a81830152690808080808149a59da1d60b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a16200081962004f59565b6000808060128414801590620044df575060228414155b15620044fe57604051638b4aa70b60e01b815260040160405180910390fd5b6200450c858560006200506c565b92506200451c8585600262005097565b9150602284146200452f5760006200453d565b6200453d8585601262005097565b90509250925092565b546001600160801b03808216600160801b9092048116919091031690565b80546000906001600160801b03600160801b82048116911681036200459c576040516375e52f4f60e01b815260040160405180910390fd5b600019016001600160801b039081166000818152600185016020526040812080549190558454909216600160801b909102179092555090565b6000620045e3838362004d0f565b509392505050565b600080600080620045fe85600262004d0f565b9150915081620046645760405162461bcd60e51b815260206004820152602a60248201527f4f7074696f6e7348656c7065723a206e617469766544726f70206f7074696f6e604482015269081b9bdd08199bdd5b9960b21b606482015260840162002656565b604051635caa7efb60e11b8152309063b954fdf6906200468990849060040162005a24565b6040805180830381865afa158015620046a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620046cc919062006beb565b6001600160801b03909116969095509350505050565b600036816001840181620046f88888846200506c565b6002929092019190506200470e888884620050c2565b94506001820161ffff821683016200472981838b8d62006abe565b979b909a50969850505061ffff160193505050565b60006200475e8254600160801b81046001600160801b0390811691161490565b156200477d576040516375e52f4f60e01b815260040160405180910390fd5b5080546000196001600160801b03600160801b9092048216011660009081526001909101602052604090205490565b6000620047be60716051848662006abe565b620029a49162006c1c565b36600062003c86836071818762006abe565b6000806030831462004800576040516361d0c2c760e11b815260040160405180910390fd5b6200480e8484600062005097565b91506200481e84846010620050ea565b90509250929050565b6000806000806200483a85600162004d0f565b91509150816200489f5760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a52656365697665206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002656565b60405163f93e1d6160e01b8152309063f93e1d6190620048c490849060040162005a24565b6040805180830381865afa158015620048e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004907919062006c3b565b6001600160801b0391821697911695509350505050565b6000620047be602d600d848662006abe565b60006200494260096001848662006abe565b6200494d9162006c6f565b60c01c9392505050565b600080601083148015906200496d575060208314155b156200498c57604051634796aee160e01b815260040160405180910390fd5b6200499a8484600062005097565b915060208314620049ad5760006200481e565b6200481e8484601062005097565b6000620047be60516031848662006abe565b81546001600160801b038082166000190191600160801b900481169082160362004a0a57604051638acb5f2760e01b815260040160405180910390fd5b6001600160801b0316600081815260018401602052604090209190915581546001600160801b031916179055565b60225460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b15801562004aa157600080fd5b505af115801562004ab6573d6000803e3d6000fd5b505060235460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b15801562004b2357600080fd5b505af115801562004b38573d6000803e3d6000fd5b50506024805460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea0000091810191909152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b15801562004ba857600080fd5b505af115801562003a66573d6000803e3d6000fd5b600062004bcc826002620060e3565b8351101562004c155760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b604482015260640162002656565b50016002015190565b60606001600160801b0382161562004c6857604080516001600160801b0319608086811b8216602084015285901b16603082015201604051602081830303815290604052620029a4565b6040516001600160801b0319608085901b166020820152603001604051602081830303815290604052905092915050565b606083600362004cab82600062004bbd565b61ffff161462004cc2576200410281600062004bbd565b84600162004cd1855162005112565b62004cde90600162006c9e565b868660405160200162004cf695949392919062006cbc565b6040516020818303038152906040529150509392505050565b601c5460405163e5c5e9a360e01b815260009160609183916001600160a01b03169063e5c5e9a39062004d4790889060040162005a24565b600060405180830381865afa15801562004d65573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262004d8f919081019062006d27565b50905060005b815181101562004e4557604051636e1775e360e01b8152600090819081903090636e1775e39062004dcd908890889060040162006242565b600060405180830381865afa15801562004deb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262004e15919081019062006d91565b9250925092508760ff168360ff160362004e3a575060019550935062003c8b92505050565b925062004d95915050565b50509250929050565b6060816001600160401b0381111562004e6b5762004e6b62005416565b60405190808252806020026020018201604052801562004e95578160200160208202803683370190505b50905060005b82811015620037155762004eb08185620060e3565b82828151811062004ec55762004ec562005d5c565b602090810291909101015260010162004e9b565b6060816001600160401b0381111562004ef65762004ef662005416565b60405190808252806020026020018201604052801562004f20578160200160208202803683370190505b50905060005b8281101562003715578382828151811062004f455762004f4562005d5c565b602090810291909101015260010162004f26565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156200505b5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262004ff69291602001620068ab565b60408051601f19818403018152908290526200501291620068de565b6000604051808303816000865af19150503d806000811462005051576040519150601f19603f3d011682016040523d82523d6000602084013e62005056565b606091505b505050505b6007805461ff001916610100179055565b600060028201620050808184868862006abe565b6200508b9162006df0565b60f01c95945050505050565b600060108201620050ab8184868862006abe565b620050b69162006e1f565b60801c95945050505050565b6000838383818110620050d957620050d962005d5c565b919091013560f81c95945050505050565b600060208201620050fe8184868862006abe565b620051099162006c1c565b95945050505050565b600061ffff82111562005143576040516306dfcc6560e41b8152601060048201526024810183905260440162002656565b5090565b613e478062006e4f83390190565b6155c1806200ac9683390190565b6114d6806201025783390190565b614ac0806201172d83390190565b61244180620161ed83390190565b612c70806201862e83390190565b611257806201b29e83390190565b6138e7806201c4f583390190565b610e2e806201fddc83390190565b6040518060400160405280600063ffffffff168152602001620052296040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b905290565b6040518060400160405280600063ffffffff168152602001620052296040518060400160405280600063ffffffff16815260200160006001600160a01b031681525090565b611a448062020c0a83390190565b63ffffffff811681146200529457600080fd5b50565b6001600160a01b03811681146200529457600080fd5b60008060408385031215620052c157600080fd5b8235620052ce8162005281565b91506020830135620052e08162005297565b809150509250929050565b60008083601f840112620052fe57600080fd5b5081356001600160401b038111156200531657600080fd5b60208301915083602082850101111562003c8b57600080fd5b600080602083850312156200534357600080fd5b82356001600160401b038111156200535a57600080fd5b6200536885828601620052eb565b90969095509350505050565b60ff811681146200529457600080fd5b600080604083850312156200539857600080fd5b8235620053a58162005374565b9150602083013560028110620052e057600080fd5b60008151808452602080850194506020840160005b83811015620053f65781516001600160a01b031687529582019590820190600101620053cf565b509495945050505050565b602081526000620029a46020830184620053ba565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b038111828210171562005451576200545162005416565b60405290565b604051601f8201601f191681016001600160401b038111828210171562005482576200548262005416565b604052919050565b60006001600160401b03821115620054a657620054a662005416565b50601f01601f191660200190565b600082601f830112620054c657600080fd5b8135620054dd620054d7826200548a565b62005457565b818152846020838601011115620054f357600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156200552657600080fd5b83356001600160401b038111156200553d57600080fd5b6200554b86828701620054b4565b93505060208401356200555e8162005374565b91506040840135620055708162005374565b809150509250925092565b60005b83811015620055985781810151838201526020016200557e565b50506000910152565b60008151808452620055bb8160208601602086016200557b565b601f01601f19169290920160200192915050565b60008282518085526020808601955060208260051b8401016020860160005b848110156200562057601f198684030189526200560d838351620055a1565b98840198925090830190600101620055ee565b5090979650505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015620056a257888303603f19018552815180516001600160a01b031684528701518784018790526200568e87850182620055cf565b958801959350509086019060010162005656565b509098975050505050505050565b600080600080600080600060c0888a031215620056cc57600080fd5b8735620056d98162005281565b96506020880135620056eb8162005297565b955060408801356001600160401b03808211156200570857600080fd5b620057168b838c01620054b4565b965060608a0135955060808a01359150620057318262005297565b90935060a089013590808211156200574857600080fd5b50620057578a828b01620052eb565b989b979a50959850939692959293505050565b600080600080608085870312156200578157600080fd5b84356200578e8162005281565b935060208501359250604085013591506060850135620057ae8162005297565b939692955090935050565b61ffff811681146200529457600080fd5b60008060408385031215620057de57600080fd5b8235620057eb81620057b9565b946020939093013593505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b84811015620058a357898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156200588d5783516001600160e01b0319168252928b019260019290920191908b019062005861565b50978a0197955050509187019160010162005823565b50919998505050505050505050565b600080600060408486031215620058c857600080fd5b83356001600160401b03811115620058df57600080fd5b620058ed86828701620052eb565b909790965060209590950135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60ff851681526060602082015260006200594960608301858762005901565b905082604083015295945050505050565b60006001600160401b0382111562005976576200597662005416565b5060051b60200190565b600060208083850312156200599457600080fd5b82356001600160401b03811115620059ab57600080fd5b8301601f81018513620059bd57600080fd5b8035620059ce620054d7826200595a565b81815260059190911b82018301908381019087831115620059ee57600080fd5b928401925b8284101562005a1957833562005a098162005297565b82529284019290840190620059f3565b979650505050505050565b602081526000620029a46020830184620055a1565b60008060006060848603121562005a4f57600080fd5b83356001600160401b0381111562005a6657600080fd5b8401601f8101861362005a7857600080fd5b8035602062005a8b620054d7836200595a565b82815260059290921b8301810191818101908984111562005aab57600080fd5b938201935b8385101562005acb5784358252938201939082019062005ab0565b999188013598505060409096013595945050505050565b60008151808452602080850194506020840160005b83811015620053f65781518752958201959082019060010162005af7565b602081526000620029a4602083018462005ae2565b602081526000620029a46020830184620055cf565b60008060008060006080868803121562005b5857600080fd5b85356001600160401b038082111562005b7057600080fd5b62005b7e89838a01620052eb565b9097509550602088013591508082111562005b9857600080fd5b5062005ba788828901620054b4565b93505060408601359150606086013562005bc18162005297565b809150509295509295909350565b60006020828403121562005be257600080fd5b8135620029a48162005297565b6000806040838503121562005c0357600080fd5b8235620057eb8162005281565b6001600160801b03811681146200529457600080fd5b60006020828403121562005c3957600080fd5b8135620029a48162005c10565b60008060006040848603121562005c5c57600080fd5b83356001600160401b038082111562005c7457600080fd5b62005c8287838801620052eb565b9095509350602086013591508082111562005c9c57600080fd5b5062005cab86828701620054b4565b9150509250925092565b6000806000806040858703121562005ccc57600080fd5b84356001600160401b038082111562005ce457600080fd5b62005cf288838901620052eb565b9096509450602087013591508082111562005d0c57600080fd5b5062005d1b87828801620052eb565b95989497509550505050565b60608152600062005d3c6060830186620055a1565b6001600160a01b0394851660208401529290931660409091015292915050565b634e487b7160e01b600052603260045260246000fd5b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015620056a257888303603f190185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905262005dde81860183620055a1565b96890196945050509086019060010162005d9b565b8051801515811462003dc457600080fd5b6000806040838503121562005e1857600080fd5b825162005e258162005297565b91506200481e6020840162005df3565b80516001600160401b038116811462003dc457600080fd5b805162003dc48162005374565b60008060006060848603121562005e7057600080fd5b62005e7b8462005e35565b9250602084015162005e8d8162005374565b6040850151909250620055708162005374565b600082601f83011262005eb257600080fd5b815162005ec3620054d7826200548a565b81815284602083860101111562005ed957600080fd5b62005eec8260208301602087016200557b565b949350505050565b60006020828403121562005f0757600080fd5b81516001600160401b0381111562005f1e57600080fd5b62005eec8482850162005ea0565b600082601f83011262005f3e57600080fd5b8151602062005f51620054d7836200595a565b8083825260208201915060208460051b87010193508684111562005f7457600080fd5b602086015b8481101562005f9d57805162005f8f8162005297565b835291830191830162005f79565b509695505050505050565b60006020828403121562005fbb57600080fd5b81516001600160401b038082111562005fd357600080fd5b9083019060c0828603121562005fe857600080fd5b62005ff26200542c565b62005ffd8362005e35565b81526200600d6020840162005e4d565b6020820152620060206040840162005e4d565b6040820152620060336060840162005e4d565b60608201526080830151828111156200604b57600080fd5b620060598782860162005f2c565b60808301525060a0830151828111156200607257600080fd5b620060808782860162005f2c565b60a08301525095945050505050565b8183823760009101908152919050565b606081526000620060b46060830186620055a1565b905083602083015260ff83166040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200334e576200334e620060cd565b63ffffffff851681526001600160a01b03841660208201526080604082018190526000906200612b90830185620055a1565b905082606083015295945050505050565b6000602082840312156200614f57600080fd5b5051919050565b6000806000606084860312156200616c57600080fd5b8351620061798162005374565b602085015160409095015190969495509392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015620056a257888303603f190185528151805163ffffffff168452878101516001600160a01b0316888501528681015160a0888601819052906200620382870182620055a1565b9150506060808301518187015250608080830151925085820381870152506200622d8183620055a1565b968901969450505090860190600101620061b9565b604081526000620062576040830185620055a1565b90508260208301529392505050565b60208152600062005eec60208301848662005901565b60ff81811683821601908111156200334e576200334e620060cd565b600060208284031215620062ab57600080fd5b8151620029a48162005297565b634e487b7160e01b600052602160045260246000fd5b600060018060a01b038089168352808816602084015260c06040840152620062fa60c0840188620053ba565b8187166060850152818616608085015283810360a08501526200631e8186620053ba565b9a9950505050505050505050565b60ff8716815260c0602082015260006200634a60c0830188620053ba565b6001600160a01b038716604084015282810360608401526200636d8187620053ba565b90506001600160401b038516608084015282810360a0840152620063928185620053ba565b9998505050505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015620056a257603f19898403810186528251805163ffffffff16855288015188850188905280516001600160401b0316888601528089015160ff9081166060808801919091528983015182166080808901919091529083015190911660a0808801919091529082015160c080880152906200644b610100880183620053ba565b920151868303840160e0880152919050620064678183620053ba565b978a0197955050509187019150600101620063c8565b602080825282518282018190526000919060409081850190868401855b82811015620064e1578151805163ffffffff9081168652908701518051909116878601528601516001600160a01b031685850152606090930192908501906001016200649a565b5091979650505050505050565b6000602082840312156200650157600080fd5b8151620029a48162005c10565b6001600160801b03818116838216028082169190828114620065345762006534620060cd565b505092915050565b602080825282518282018190526000919060409081850190868401855b82811015620064e1578151805163ffffffff90811686529087015180516001600160801b031688870152808801516001600160401b0316878701528601511660608501526080909301929085019060010162006559565b600060ff821660ff8103620065c957620065c9620060cd565b60010192915050565b602080825282518282018190526000919060409081850190868401855b82811015620064e1578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c09093019290850190600101620065ef565b602080825282518282018190526000919060409081850190868401855b82811015620064e1578151805163ffffffff168552868101516001600160401b0316878601528581015161ffff16868601526060908101516001600160801b0316908501526080909301929085019060010162006681565b60ff82811682821603908111156200334e576200334e620060cd565b600181811c908216806200670a57607f821691505b6020821081036200672b57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038881168252871660208201526040810186905261ffff8516606082015260c06080820181905260009062006771908301858762005901565b82810360a08401526200631e8185620055a1565b600081620067975762006797620060cd565b506000190190565b604081526000620067b46040830185620055a1565b8281036020840152620051098185620055a1565b608081526000620067dd6080830187620055a1565b8281036020840152620067f18187620055a1565b604084019590955250506001600160a01b039190911660609091015292915050565b6000602082840312156200682657600080fd5b8151620029a48162005281565b818103818111156200334e576200334e620060cd565b63ffffffff88168152600060018060a01b03808916602084015260c060408401526200687960c0840189620055a1565b876060850152818716608085015283810360a08501526200689c81868862005901565b9b9a5050505050505050505050565b6001600160e01b0319831681528151600090620068d08160048501602087016200557b565b919091016004019392505050565b60008251620068f28184602087016200557b565b9190910192915050565b6000602082840312156200690f57600080fd5b620029a48262005df3565b63ffffffff8751168152602087015160208201526001600160401b03604088015116604082015260018060a01b038616606082015284608082015260e060a082015260006200696e60e08301858762005901565b82810360c0840152620063928185620055a1565b601f82111562003629576000816000526020600020601f850160051c81016020861015620069ad5750805b601f850160051c820191505b81811015620069ce57828155600101620069b9565b505050505050565b6001600160401b03831115620069f057620069f062005416565b62006a088362006a018354620066f5565b8362006982565b6000601f84116001811462006a3f576000851562006a265750838201355b600019600387901b1c1916600186901b17835562000ab4565b600083815260209020601f19861690835b8281101562006a72578685013582556020948501946001909201910162006a50565b508682101562006a905760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60006001820162006ab75762006ab7620060cd565b5060010190565b6000808585111562006acf57600080fd5b8386111562006add57600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015620065345760049490940360031b84901b1690921692915050565b6000835162006b2d8184602088016200557b565b83519083019062006b438183602088016200557b565b01949350505050565b60008060006060848603121562006b6257600080fd5b835162006b6f81620057b9565b602085015190935062006b828162005c10565b6040850151909250620055708162005c10565b6001600160a01b038416815260806020820181905260009062006bbb9083018562005ae2565b828103604084015262006bcf818562005ae2565b8381036060909401939093525050600081526020019392505050565b6000806040838503121562006bff57600080fd5b825162006c0c8162005c10565b6020939093015192949293505050565b803560208310156200334e57600019602084900360031b1b1692915050565b6000806040838503121562006c4f57600080fd5b825162006c5c8162005c10565b6020840151909250620052e08162005c10565b6001600160c01b03198135818116916008851015620065345760089490940360031b84901b1690921692915050565b61ffff818116838216019080821115620037155762003715620060cd565b6000865162006cd0818460208b016200557b565b6001600160f81b031960f888811b82169285019283526001600160f01b031960f089901b16600184015286901b166003820152835162006d188160048401602088016200557b565b01600401979650505050505050565b6000806040838503121562006d3b57600080fd5b82516001600160401b038082111562006d5357600080fd5b62006d618683870162005ea0565b9350602085015191508082111562006d7857600080fd5b5062006d878582860162005ea0565b9150509250929050565b60008060006060848603121562006da757600080fd5b835162006db48162005374565b60208501519093506001600160401b0381111562006dd157600080fd5b62006ddf8682870162005ea0565b925050604084015190509250925092565b6001600160f01b03198135818116916002851015620065345760029490940360031b84901b1690921692915050565b6001600160801b03198135818116916010851015620065345760109490940360031b84901b169092169291505056fe60a06040523480156200001157600080fd5b5060405162003e4738038062003e478339810160408190526200003491620001be565b82828281818181818180896200004a8162000127565b506001600160a01b0381166200007a57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000858162000139565b506001600160a01b038083166080528116620000b457604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000fc57600080fd5b505af115801562000111573d6000803e3d6000fd5b5050505050505050505050505050505062000415565b600262000135828262000349565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620001b957600080fd5b919050565b600080600060608486031215620001d457600080fd5b83516001600160401b0380821115620001ec57600080fd5b818601915086601f8301126200020157600080fd5b8151818111156200021657620002166200018b565b604051601f8201601f19908116603f011681019083821181831017156200024157620002416200018b565b816040528281526020935089848487010111156200025e57600080fd5b600091505b8282101562000282578482018401518183018501529083019062000263565b60008484830101528097505050506200029d818701620001a1565b93505050620002af60408501620001a1565b90509250925092565b600181811c90821680620002cd57607f821691505b602082108103620002ee57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000344576000816000526020600020601f850160051c810160208610156200031f5750805b601f850160051c820191505b8181101562000340578281556001016200032b565b5050505b505050565b81516001600160401b038111156200036557620003656200018b565b6200037d81620003768454620002b8565b84620002f4565b602080601f831160018114620003b557600084156200039c5750858301515b600019600386901b1c1916600185901b17855562000340565b600085815260208120601f198616915b82811015620003e657888601518255948401946001909101908401620003c5565b5085821015620004055787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6080516139e562000462600039600081816104840152818161087f0152818161102a01528181611329015281816115e101528181611a2901528181611f7b015261203401526139e56000f3fe60806040526004361061022f5760003560e01c80637d25a05e1161012e578063bd815db0116100ab578063e985e9c51161006f578063e985e9c5146106f1578063f242432a14610711578063f2fde38b14610731578063fc0c546a14610408578063ff7bd03d1461075157600080fd5b8063bd815db01461065e578063ca5eb5e114610671578063d045a0dc14610691578063d4243885146106a4578063d58c3aa8146106c457600080fd5b8063b21a33e4116100f2578063b21a33e4146105bc578063b731ea0a146105d1578063b98bd070146105f1578063bb0b6a5314610611578063bc70b3541461063e57600080fd5b80637d25a05e146104fb57806382413eac146105365780638da5cb5b14610556578063a22cb46514610574578063a72f5dd81461059457600080fd5b80632eb2c2d6116101bc5780635a0dfe4d116101805780635a0dfe4d1461043b5780635e280f11146104725780636fc1b31e146104a6578063715018a6146104c6578063731133e9146104db57600080fd5b80632eb2c2d61461039b5780633400288b146103bb5780634e1273f4146103db57806352ae2879146104085780635535d4611461041b57600080fd5b806313137d651161020357806313137d65146102fc57806317442b70146103115780631f5e1334146103335780631f7fdffa1461035b5780632250032b1461037b57600080fd5b8062fdd58e1461023457806301ffc9a7146102675780630e89341c14610297578063111ecdad146102c4575b600080fd5b34801561024057600080fd5b5061025461024f366004612689565b610771565b6040519081526020015b60405180910390f35b34801561027357600080fd5b506102876102823660046126cb565b610799565b604051901515815260200161025e565b3480156102a357600080fd5b506102b76102b23660046126e8565b6107e9565b60405161025e9190612751565b3480156102d057600080fd5b506007546102e4906001600160a01b031681565b6040516001600160a01b03909116815260200161025e565b61030f61030a3660046127c4565b61087d565b005b34801561031d57600080fd5b506040805160018152600260208201520161025e565b34801561033f57600080fd5b50610348600181565b60405161ffff909116815260200161025e565b34801561036757600080fd5b5061030f6103763660046129fd565b61093d565b61038e610389366004612aa9565b61094f565b60405161025e9190612b16565b3480156103a757600080fd5b5061030f6103b6366004612b58565b610a2c565b3480156103c757600080fd5b5061030f6103d6366004612c1e565b610a93565b3480156103e757600080fd5b506103fb6103f6366004612c3a565b610aa9565b60405161025e9190612d37565b34801561041457600080fd5b50306102e4565b34801561042757600080fd5b506102b7610436366004612d5c565b610b75565b34801561044757600080fd5b50610287610456366004612c1e565b63ffffffff919091166000908152600460205260409020541490565b34801561047e57600080fd5b506102e47f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b257600080fd5b5061030f6104c1366004612d8f565b610c1a565b3480156104d257600080fd5b5061030f610c77565b3480156104e757600080fd5b5061030f6104f6366004612dac565b610c8b565b34801561050757600080fd5b5061051e610516366004612c1e565b600092915050565b6040516001600160401b03909116815260200161025e565b34801561054257600080fd5b50610287610551366004612e02565b610c97565b34801561056257600080fd5b506003546001600160a01b03166102e4565b34801561058057600080fd5b5061030f61058f366004612e76565b610cac565b3480156105a057600080fd5b506040805163acff303160e01b8152600160208201520161025e565b3480156105c857600080fd5b50610348600281565b3480156105dd57600080fd5b506005546102e4906001600160a01b031681565b3480156105fd57600080fd5b5061030f61060c366004612ef3565b610cb7565b34801561061d57600080fd5b5061025461062c366004612f34565b60046020526000908152604090205481565b34801561064a57600080fd5b506102b7610659366004612f4f565b610cd1565b61030f61066c366004612ef3565b610e79565b34801561067d57600080fd5b5061030f61068c366004612d8f565b611003565b61030f61069f3660046127c4565b611089565b3480156106b057600080fd5b5061030f6106bf366004612d8f565b6110b8565b3480156106d057600080fd5b506106e46106df366004612faf565b61110e565b60405161025e9190612ff5565b3480156106fd57600080fd5b5061028761070c36600461300c565b611154565b34801561071d57600080fd5b5061030f61072c36600461303a565b611182565b34801561073d57600080fd5b5061030f61074c366004612d8f565b6111e1565b34801561075d57600080fd5b5061028761076c3660046130a2565b61121f565b6000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806107ca57506001600160e01b031982166303a24d0760e21b145b8061079357506301ffc9a760e01b6001600160e01b0319831614610793565b6060600280546107f8906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610824906130be565b80156108715780601f1061084657610100808354040283529160200191610871565b820191906000526020600020905b81548152906001019060200180831161085457829003601f168201915b50505050509050919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146108cd576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b602087018035906108e7906108e2908a612f34565b611255565b14610925576108f96020880188612f34565b60405163309afaf360e21b815263ffffffff9091166004820152602088013560248201526044016108c4565b61093487878787878787611291565b50505050505050565b610949848484846113a5565b50505050565b61095761262d565b6109ea61096760408601866130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506109a69250505060608701876130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506109e5925050506020880188612f34565b6113dd565b6000806109f686611416565b9092509050610a22610a0b6020880188612f34565b8383610a1c368a90038a018a61313b565b886115ae565b9695505050505050565b336001600160a01b0386168114801590610a4d5750610a4b8682611154565b155b15610a7e5760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016108c4565b610a8b86868686866116b9565b505050505050565b610a9b611719565b610aa58282611746565b5050565b60608151835114610ada5781518351604051635b05999160e01b8152600481019290925260248201526044016108c4565b600083516001600160401b03811115610af557610af5612863565b604051908082528060200260200182016040528015610b1e578160200160208202803683370190505b50905060005b8451811015610b6d57602080820286010151610b4890602080840287010151610771565b828281518110610b5a57610b5a61316d565b6020908102919091010152600101610b24565b509392505050565b600660209081526000928352604080842090915290825290208054610b99906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc5906130be565b8015610c125780601f10610be757610100808354040283529160200191610c12565b820191906000526020600020905b815481529060010190602001808311610bf557829003601f168201915b505050505081565b610c22611719565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610c7f611719565b610c89600061179b565b565b610949848484846117ed565b6001600160a01b03811630145b949350505050565b610aa533838361184a565b610cbf611719565b610aa5610ccc8284613183565b6118e0565b63ffffffff8416600090815260066020908152604080832061ffff87168452909152812080546060929190610d05906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610d31906130be565b8015610d7e5780601f10610d5357610100808354040283529160200191610d7e565b820191906000526020600020905b815481529060010190602001808311610d6157829003601f168201915b505050505090508051600003610dce5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610ca49350505050565b6000839003610dde579050610ca4565b60028310610e5c57610e2584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119e792505050565b80610e33846002818861324c565b604051602001610e4593929190613276565b604051602081830303815290604052915050610ca4565b8383604051639a6d49cd60e01b81526004016108c49291906132c7565b60005b81811015610f825736838383818110610e9757610e9761316d565b9050602002810190610ea991906132db565b9050610edc610ebb6020830183612f34565b602083013563ffffffff919091166000908152600460205260409020541490565b610ee65750610f7a565b3063d045a0dc60c08301358360a0810135610f056101008301836132fc565b610f16610100890160e08a01612d8f565b610f246101208a018a6132fc565b6040518963ffffffff1660e01b8152600401610f469796959493929190613357565b6000604051808303818588803b158015610f5f57600080fd5b505af1158015610f73573d6000803e3d6000fd5b5050505050505b600101610e7c565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610fc1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe991908101906133dd565b604051638351eea760e01b81526004016108c49190612751565b61100b611719565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561106e57600080fd5b505af1158015611082573d6000803e3d6000fd5b5050505050565b3330146110a95760405163029a949d60e31b815260040160405180910390fd5b61093487878787878787610925565b6110c0611719565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c6c565b604080518082019091526000808252602082015260008061112e85611416565b909250905061114b6111436020870187612f34565b838387611a13565b95945050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b336001600160a01b03861681148015906111a357506111a18682611154565b155b156111d45760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016108c4565b610a8b8686868686611aeb565b6111e9611719565b6001600160a01b03811661121357604051631e4fbdf760e01b8152600060048201526024016108c4565b61121c8161179b565b50565b60006020820180359060049083906112379086612f34565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260046020526040812054806107935760405163f6ff4fb760e01b815263ffffffff841660048201526024016108c4565b60006112a36112a08787611b70565b90565b90506000806112b28888611b8f565b90925090506112cf8383836112ca60208f018f612f34565b611d01565b6112d98888611d1c565b1561139957600061130f6112f360608d0160408e0161344a565b61130060208e018e612f34565b61130a8c8c611d77565b611e1c565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906113659087908e906000908790600401613467565b600060405180830381600087803b15801561137f57600080fd5b505af1158015611393573d6000803e3d6000fd5b50505050505b50505050505050505050565b6001600160a01b0384166113cf57604051632bfa23e760e11b8152600060048201526024016108c4565b610949600085858585611e4b565b6113e73330611154565b61140657604051634ddd35b760e01b81523360048201526024016108c4565b611411338484611e9e565b505050565b60608060006114e8602085013561143060408701876130f2565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061146f9250505060608801886130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506114ae9250505060a08901896132fc565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ee492505050565b90935090506000816114fb5760016114fe565b60025b905061151e6115106020870187612f34565b8261065960808901896132fc565b6007549093506001600160a01b0316156115a75760075460405163043a78eb60e01b81526001600160a01b039091169063043a78eb906115649087908790600401613498565b602060405180830381865afa158015611581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a591906134bd565b505b5050915091565b6115b661262d565b60006115c58460000151611f4f565b6020850151909150156115df576115df8460200151611f77565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff16815260200161162f8c611255565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161166b9291906134da565b60806040518083038185885af1158015611689573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116ae9190613583565b979650505050505050565b6001600160a01b0384166116e357604051632bfa23e760e11b8152600060048201526024016108c4565b6001600160a01b03851661170c57604051626a0d4560e21b8152600060048201526024016108c4565b6110828585858585611e4b565b6003546001600160a01b03163314610c895760405163118cdaa760e01b81523360048201526024016108c4565b63ffffffff8216600081815260046020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03841661181757604051632bfa23e760e11b8152600060048201526024016108c4565b60408051600180825260208201869052818301908152606082018590526080820190925290610a8b600087848487611e4b565b6001600160a01b0382166118735760405162ced3e160e81b8152600060048201526024016108c4565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60005b81518110156119b7576119128282815181106119015761190161316d565b6020026020010151604001516119e7565b8181815181106119245761192461316d565b602002602001015160400151600660008484815181106119465761194661316d565b60200260200101516000015163ffffffff1663ffffffff16815260200190815260200160002060008484815181106119805761198061316d565b60200260200101516020015161ffff1661ffff16815260200190815260200160002090816119ae9190613615565b506001016118e3565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c6c91906136d4565b600281015161ffff8116600314610aa55781604051639a6d49cd60e01b81526004016108c49190612751565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611a7689611255565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611aab9291906134da565b6040805180830381865afa158015611ac7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114b919061375f565b6001600160a01b038416611b1557604051632bfa23e760e11b8152600060048201526024016108c4565b6001600160a01b038516611b3e57604051626a0d4560e21b8152600060048201526024016108c4565b604080516001808252602082018690528183019081526060820185905260808201909252906109348787848487611e4b565b6000611b7f602082848661324c565b611b889161377b565b9392505050565b6060806000611bd385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061205992505050565b9050806001600160401b03811115611bed57611bed612863565b604051908082528060200260200182016040528015611c16578160200160208202803683370190505b509250806001600160401b03811115611c3157611c31612863565b604051908082528060200260200182016040528015611c5a578160200160208202803683370190505b50915060005b81811015611cf857611c7e602082026060810190604001878961324c565b810190611c8b91906126e8565b848281518110611c9d57611c9d61316d565b602090810291909101810191909152611cc690828102908402016060810190604001878961324c565b810190611cd391906126e8565b838281518110611ce557611ce561316d565b6020908102919091010152600101611c60565b50509250929050565b610949848484604051806020016040528060008152506113a5565b604080516020601f8401819004810282018101835283825260009291611d5a9086868083860183828082843760009201919091525061205992505050565b611d6491906137af565b611d6e91906137c6565b90911192915050565b60606000611dba84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061205992505050565b90508383611dc98360206137af565b611dd49060406137c6565b611ddf92829061324c565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092979650505050505050565b6060838383604051602001611e33939291906137d9565b60405160208183030381529060405290509392505050565b611e5785858585612060565b6001600160a01b038416156110825782513390600103611e905760208481015190840151611e89838989858589612274565b5050610a8b565b610a8b818787878787612398565b6001600160a01b038316611ec757604051626a0d4560e21b8152600060048201526024016108c4565b611411836000848460405180602001604052806000815250611e4b565b8051606090151580611f1b578451604051611f0791889188908890602001613848565b604051602081830303815290604052611f44565b8451604051611f34918891889088908890602001613869565b6040516020818303038152906040525b915094509492505050565b6000813414611f73576040516304fb820960e51b81523460048201526024016108c4565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffb91906138a6565b90506001600160a01b038116612024576040516329b99a9560e11b815260040160405180910390fd5b610aa56001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612481565b6040015190565b805182511461208f5781518151604051635b05999160e01b8152600481019290925260248201526044016108c4565b3360005b8351811015612195576020818102858101820151908501909101516001600160a01b03881615612146576000828152602081815260408083206001600160a01b038c1684529091529020548181101561211f576040516303dee4c560e01b81526001600160a01b038a1660048201526024810182905260448101839052606481018490526084016108c4565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b0387161561218b576000828152602081815260408083206001600160a01b038b168452909152812080548392906121859084906137c6565b90915550505b5050600101612093565b5082516001036122165760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612207929190918252602082015260400190565b60405180910390a45050611082565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516122659291906138c3565b60405180910390a45050505050565b6001600160a01b0384163b15610a8b5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906122b890899089908890889088906004016138e8565b6020604051808303816000875af19250505080156122f3575060408051601f3d908101601f191682019092526122f091810190613922565b60015b61235c573d808015612321576040519150601f19603f3d011682016040523d82523d6000602084013e612326565b606091505b50805160000361235457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b1461093457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b6001600160a01b0384163b15610a8b5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906123dc908990899088908890889060040161393f565b6020604051808303816000875af1925050508015612417575060408051601f3d908101601f1916820190925261241491810190613922565b60015b612445573d808015612321576040519150601f19603f3d011682016040523d82523d6000602084013e612326565b6001600160e01b0319811663bc197c8160e01b1461093457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610949918691906000906124e790841683612535565b9050805160001415801561250c57508080602001905181019061250a91906134bd565b155b1561141157604051635274afe760e01b81526001600160a01b03841660048201526024016108c4565b6060611b888383600084600080856001600160a01b0316848660405161255b919061399d565b60006040518083038185875af1925050503d8060008114612598576040519150601f19603f3d011682016040523d82523d6000602084013e61259d565b606091505b5091509150610a228683836060826125bd576125b882612604565b611b88565b81511580156125d457506001600160a01b0384163b155b156125fd57604051639996b31560e01b81526001600160a01b03851660048201526024016108c4565b5080611b88565b8051156126145780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b0316815260200161266f604051806040016040528060008152602001600081525090565b905290565b6001600160a01b038116811461121c57600080fd5b6000806040838503121561269c57600080fd5b82356126a781612674565b946020939093013593505050565b6001600160e01b03198116811461121c57600080fd5b6000602082840312156126dd57600080fd5b8135611b88816126b5565b6000602082840312156126fa57600080fd5b5035919050565b60005b8381101561271c578181015183820152602001612704565b50506000910152565b6000815180845261273d816020860160208601612701565b601f01601f19169290920160200192915050565b602081526000611b886020830184612725565b60006060828403121561277657600080fd5b50919050565b60008083601f84011261278e57600080fd5b5081356001600160401b038111156127a557600080fd5b6020830191508360208285010111156127bd57600080fd5b9250929050565b600080600080600080600060e0888a0312156127df57600080fd5b6127e98989612764565b96506060880135955060808801356001600160401b038082111561280c57600080fd5b6128188b838c0161277c565b909750955060a08a0135915061282d82612674565b90935060c0890135908082111561284357600080fd5b506128508a828b0161277c565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561289b5761289b612863565b60405290565b604051606081016001600160401b038111828210171561289b5761289b612863565b604051601f8201601f191681016001600160401b03811182821017156128eb576128eb612863565b604052919050565b60006001600160401b0382111561290c5761290c612863565b5060051b60200190565b600082601f83011261292757600080fd5b8135602061293c612937836128f3565b6128c3565b8083825260208201915060208460051b87010193508684111561295e57600080fd5b602086015b8481101561297a5780358352918301918301612963565b509695505050505050565b60006001600160401b0382111561299e5761299e612863565b50601f01601f191660200190565b600082601f8301126129bd57600080fd5b81356129cb61293782612985565b8181528460208386010111156129e057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a1357600080fd5b8435612a1e81612674565b935060208501356001600160401b0380821115612a3a57600080fd5b612a4688838901612916565b94506040870135915080821115612a5c57600080fd5b612a6888838901612916565b93506060870135915080821115612a7e57600080fd5b50612a8b878288016129ac565b91505092959194509250565b600060e0828403121561277657600080fd5b60008060008385036080811215612abf57600080fd5b84356001600160401b03811115612ad557600080fd5b612ae187828801612a97565b9450506040601f1982011215612af657600080fd5b506020840191506060840135612b0b81612674565b809150509250925092565b6000608082019050825182526001600160401b0360208401511660208301526040830151612b51604084018280518252602090810151910152565b5092915050565b600080600080600060a08688031215612b7057600080fd5b8535612b7b81612674565b94506020860135612b8b81612674565b935060408601356001600160401b0380821115612ba757600080fd5b612bb389838a01612916565b94506060880135915080821115612bc957600080fd5b612bd589838a01612916565b93506080880135915080821115612beb57600080fd5b50612bf8888289016129ac565b9150509295509295909350565b803563ffffffff81168114612c1957600080fd5b919050565b60008060408385031215612c3157600080fd5b6126a783612c05565b60008060408385031215612c4d57600080fd5b82356001600160401b0380821115612c6457600080fd5b818501915085601f830112612c7857600080fd5b81356020612c88612937836128f3565b82815260059290921b84018101918181019089841115612ca757600080fd5b948201945b83861015612cce578535612cbf81612674565b82529482019490820190612cac565b96505086013592505080821115612ce457600080fd5b50612cf185828601612916565b9150509250929050565b60008151808452602080850194506020840160005b83811015612d2c57815187529582019590820190600101612d10565b509495945050505050565b602081526000611b886020830184612cfb565b803561ffff81168114612c1957600080fd5b60008060408385031215612d6f57600080fd5b612d7883612c05565b9150612d8660208401612d4a565b90509250929050565b600060208284031215612da157600080fd5b8135611b8881612674565b60008060008060808587031215612dc257600080fd5b8435612dcd81612674565b9350602085013592506040850135915060608501356001600160401b03811115612df657600080fd5b612a8b878288016129ac565b60008060008060a08587031215612e1857600080fd5b612e228686612764565b935060608501356001600160401b03811115612e3d57600080fd5b612e498782880161277c565b9094509250506080850135612e5d81612674565b939692955090935050565b801515811461121c57600080fd5b60008060408385031215612e8957600080fd5b8235612e9481612674565b91506020830135612ea481612e68565b809150509250929050565b60008083601f840112612ec157600080fd5b5081356001600160401b03811115612ed857600080fd5b6020830191508360208260051b85010111156127bd57600080fd5b60008060208385031215612f0657600080fd5b82356001600160401b03811115612f1c57600080fd5b612f2885828601612eaf565b90969095509350505050565b600060208284031215612f4657600080fd5b611b8882612c05565b60008060008060608587031215612f6557600080fd5b612f6e85612c05565b9350612f7c60208601612d4a565b925060408501356001600160401b03811115612f9757600080fd5b612fa38782880161277c565b95989497509550505050565b60008060408385031215612fc257600080fd5b82356001600160401b03811115612fd857600080fd5b612fe485828601612a97565b9250506020830135612ea481612e68565b815181526020808301519082015260408101610793565b6000806040838503121561301f57600080fd5b823561302a81612674565b91506020830135612ea481612674565b600080600080600060a0868803121561305257600080fd5b853561305d81612674565b9450602086013561306d81612674565b9350604086013592506060860135915060808601356001600160401b0381111561309657600080fd5b612bf8888289016129ac565b6000606082840312156130b457600080fd5b611b888383612764565b600181811c908216806130d257607f821691505b60208210810361277657634e487b7160e01b600052602260045260246000fd5b6000808335601e1984360301811261310957600080fd5b8301803591506001600160401b0382111561312357600080fd5b6020019150600581901b36038213156127bd57600080fd5b60006040828403121561314d57600080fd5b613155612879565b82358152602083013560208201528091505092915050565b634e487b7160e01b600052603260045260246000fd5b6000613191612937846128f3565b80848252602080830192508560051b8501368111156131af57600080fd5b855b818110156132405780356001600160401b03808211156131d15760008081fd5b8189019150606082360312156131e75760008081fd5b6131ef6128a1565b6131f883612c05565b8152613205868401612d4a565b868201526040808401358381111561321d5760008081fd5b613229368287016129ac565b9183019190915250875250509382019382016131b1565b50919695505050505050565b6000808585111561325c57600080fd5b8386111561326957600080fd5b5050820193919092039150565b60008451613288818460208901612701565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610ca460208301848661329e565b6000823561013e198336030181126132f257600080fd5b9190910192915050565b6000808335601e1984360301811261331357600080fd5b8301803591506001600160401b0382111561332d57600080fd5b6020019150368190038213156127bd57600080fd5b6001600160401b038116811461121c57600080fd5b63ffffffff61336589612c05565b168152602088013560208201526000604089013561338281613342565b6001600160401b03811660408401525087606083015260e060808301526133ad60e08301878961329e565b6001600160a01b03861660a084015282810360c08401526133cf81858761329e565b9a9950505050505050505050565b6000602082840312156133ef57600080fd5b81516001600160401b0381111561340557600080fd5b8201601f8101841361341657600080fd5b805161342461293782612985565b81815285602083850101111561343957600080fd5b61114b826020830160208601612701565b60006020828403121561345c57600080fd5b8135611b8881613342565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000610a226080830184612725565b6040815260006134ab6040830185612725565b828103602084015261114b8185612725565b6000602082840312156134cf57600080fd5b8151611b8881612e68565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261351060e0840182612725565b90506060850151603f198483030160a085015261352d8282612725565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561356557600080fd5b61356d612879565b9050815181526020820151602082015292915050565b60006080828403121561359557600080fd5b61359d6128a1565b8251815260208301516135af81613342565b60208201526135c18460408501613553565b60408201529392505050565b601f821115611411576000816000526020600020601f850160051c810160208610156135f65750805b601f850160051c820191505b81811015610a8b57828155600101613602565b81516001600160401b0381111561362e5761362e612863565b6136428161363c84546130be565b846135cd565b602080601f831160018114613677576000841561365f5750858301515b600019600386901b1c1916600185901b178555610a8b565b600085815260208120601f198616915b828110156136a657888601518255948401946001909101908401613687565b50858210156136c45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561375157888303603f190185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261373d81860183612725565b9689019694505050908601906001016136fd565b509098975050505050505050565b60006040828403121561377157600080fd5b611b888383613553565b8035602083101561079357600019602084900360031b1b1692915050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761079357610793613799565b8082018082111561079357610793613799565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061381481600c850160208701612701565b91909101600c01949350505050565b80516000906020808401838315612d2c57815187529582019590820190600101612d10565b8481528360208201526000610a226138636040840186613823565b84613823565b858152846020820152600061388a6138846040840187613823565b85613823565b835161389a818360208801612701565b01979650505050505050565b6000602082840312156138b857600080fd5b8151611b8881612674565b6040815260006138d66040830185612cfb565b828103602084015261114b8185612cfb565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906116ae90830184612725565b60006020828403121561393457600080fd5b8151611b88816126b5565b6001600160a01b0386811682528516602082015260a06040820181905260009061396b90830186612cfb565b828103606084015261397d8186612cfb565b905082810360808401526139918185612725565b98975050505050505050565b600082516132f281846020870161270156fea2646970667358221220821dbd374ba81349ad36112c4f0566b1ec767a4134f68c2e85102e028aad346764736f6c6343000816003360c06040526001600d553480156200001657600080fd5b50604051620055c1380380620055c18339810160408190526200003991620002cd565b81816001600160a01b0381166200006b57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200007681620000cd565b5063ffffffff166080526040516200008e90620002bf565b604051809103906000f080158015620000ab573d6000803e3d6000fd5b506001600160a01b031660a0819052620000c5906200011d565b50506200034a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001276200028e565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019991906200031f565b620001b75760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620001f25760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910160405180910390a150565b6000546001600160a01b03163314620002bd5760405163118cdaa760e01b815233600482015260240162000062565b565b6101e380620053de83390190565b60008060408385031215620002e157600080fd5b825163ffffffff81168114620002f657600080fd5b60208401519092506001600160a01b03811681146200031457600080fd5b809150509250929050565b6000602082840312156200033257600080fd5b815180151581146200034357600080fd5b9392505050565b60805160a05161504b6200039360003960006107810152600081816105310152818161278901528181612f7b01528181612fe20152818161355301526135ba015261504b6000f3fe6080604052600436106103505760003560e01c80639132e5c3116101c6578063c9fc7bcd116100f7578063ddc28c5811610095578063e8964e811161006f578063e8964e8114610b8f578063ef667aa114610baf578063f2fde38b14610bfa578063f64be4c714610c1a57600080fd5b8063ddc28c5814610b2e578063e1758bd814610b5b578063e4fe1d9414610b6f57600080fd5b8063d4b4ec8f116100d1578063d4b4ec8f14610a72578063d70b890214610a92578063dc706a6214610ab2578063dc93c8a214610ae257600080fd5b8063c9fc7bcd146109f6578063ca5eb5e114610a3d578063cb5026b914610a5d57600080fd5b8063a7229fd911610164578063aafea3121161013e578063aafea31214610976578063b96a277f14610996578063c28e0eed146109b6578063c9a54a99146109d657600080fd5b8063a7229fd914610916578063a825d74714610936578063aafe5e071461095657600080fd5b80639c6d7340116101a05780639c6d73401461086f5780639d7f9775146108b6578063a0dd43fc146108d6578063a718531b146108f657600080fd5b80639132e5c31461081a57806391d20fa11461083c5780639535ff301461084f57600080fd5b80635b17bb70116102a05780636f50a8031161023e57806379624ca91161021857806379624ca9146107a35780637cb59012146107bc578063861e1ca5146107dc5780638da5cb5b146107fc57600080fd5b80636f50a80314610724578063715018a61461075a578063733180911461076f57600080fd5b80636a14d7151161027a5780636a14d715146106655780636bf73fa3146106855780636dbd9f90146106a55780636e83f5bb146106c557600080fd5b80635b17bb70146105b65780636750cd4c14610615578063697fe6b61461064557600080fd5b80632baf0be71161030d578063402f8468116102e7578063402f8468146104c057806340f80683146104ff578063416ecebf1461051f578063587cde1e1461056857600080fd5b80632baf0be7146104355780632e80fbf31461045957806335d330b01461047957600080fd5b80630c0c389e1461035557806314f651a91461036a578063183c834f146103a85780632637a450146103c85780632a56c1b0146103e85780632b3197b914610408575b600080fd5b610368610363366004613ef7565b610c50565b005b34801561037657600080fd5b5061037f610d4e565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103b457600080fd5b506103686103c3366004613fa6565b610d80565b6103db6103d6366004613ff1565b611027565b60405161039f9190614043565b3480156103f457600080fd5b50610368610403366004614085565b61114d565b34801561041457600080fd5b506104286104233660046140f4565b6111ed565b60405161039f9190614198565b34801561044157600080fd5b5061044b60001981565b60405190815260200161039f565b34801561046557600080fd5b506103686104743660046141c2565b6112b8565b34801561048557600080fd5b5061044b610494366004614229565b600c60209081526000948552604080862082529385528385208152918452828420909152825290205481565b3480156104cc57600080fd5b506104e06104db36600461426b565b611427565b604080516001600160a01b03909316835290151560208301520161039f565b34801561050b57600080fd5b5061036861051a3660046141c2565b6114a5565b34801561052b57600080fd5b506105537f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161039f565b34801561057457600080fd5b5061059e610583366004614295565b600f602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161039f565b3480156105c257600080fd5b506105fd6105d13660046142b0565b60016020908152600093845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161039f565b34801561062157600080fd5b506106356106303660046142ec565b61160b565b604051901515815260200161039f565b34801561065157600080fd5b50610368610660366004614307565b61165b565b34801561067157600080fd5b50610368610680366004613fa6565b6116d0565b34801561069157600080fd5b506103686106a0366004614402565b611aae565b3480156106b157600080fd5b506103686106c03660046144e5565b611b18565b3480156106d157600080fd5b506107056106e03660046142ec565b600b60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161039f565b34801561073057600080fd5b5061059e61073f3660046142ec565b600a602052600090815260409020546001600160a01b031681565b34801561076657600080fd5b50610368611bba565b34801561077b57600080fd5b5061059e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107af57600080fd5b50600d5460011415610635565b3480156107c857600080fd5b506103686107d7366004614575565b611bce565b3480156107e857600080fd5b506106356107f73660046145c6565b611cba565b34801561080857600080fd5b506000546001600160a01b031661059e565b34801561082657600080fd5b5061082f611d26565b60405161039f91906145f1565b61036861084a36600461463e565b611d88565b34801561085b57600080fd5b5061036861086a3660046146e8565b611f18565b34801561087b57600080fd5b506105fd61088a3660046142b0565b60036020908152600093845260408085208252928452828420905282529020546001600160401b031681565b3480156108c257600080fd5b506106356108d13660046146e8565b61217c565b3480156108e257600080fd5b506105fd6108f13660046142b0565b612256565b34801561090257600080fd5b5061036861091136600461472b565b6122b6565b34801561092257600080fd5b50610368610931366004614757565b6125d6565b34801561094257600080fd5b50610368610951366004614775565b6125ee565b34801561096257600080fd5b5061044b6109713660046142b0565b612739565b34801561098257600080fd5b506103686109913660046147b2565b6127b9565b3480156109a257600080fd5b5061059e6109b136600461426b565b6129e2565b3480156109c257600080fd5b506103686109d1366004614295565b612a51565b3480156109e257600080fd5b506106356109f13660046145c6565b612aae565b348015610a0257600080fd5b5061044b610a113660046147ce565b600260209081526000948552604080862082529385528385208152918452828420909152825290205481565b348015610a4957600080fd5b50610368610a58366004614295565b612b13565b348015610a6957600080fd5b5061044b600081565b348015610a7e57600080fd5b50610368610a8d36600461472b565b612b73565b348015610a9e57600080fd5b50610368610aad3660046147ce565b612db1565b348015610abe57600080fd5b50610635610acd366004614295565b60056020526000908152604090205460ff1681565b348015610aee57600080fd5b50610635610afd36600461426b565b6001600160a01b03918216600090815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610b3a57600080fd5b50610b4e610b49366004613ff1565b612ea0565b60405161039f9190614810565b348015610b6757600080fd5b50600061059e565b348015610b7b57600080fd5b50600e5461059e906001600160a01b031681565b348015610b9b57600080fd5b50610368610baa366004614295565b61310c565b348015610bbb57600080fd5b50610705610bca36600461426b565b6008602090815260009283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610c0657600080fd5b50610368610c15366004614295565b613270565b348015610c2657600080fd5b5061059e610c353660046142ec565b6009602052600090815260409020546001600160a01b031681565b610c9f86610c6160208a018a6142ec565b60208a0135610c7660608c0160408d01614827565b898989604051602001610c8b93929190614842565b6040516020818303038152906040526132ae565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610cda908b908a908a908a9033908b908b906004016148be565b6000604051808303818588803b158015610cf357600080fd5b505af1158015610d07573d6000803e3d6000fd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d3d929190614915565b60405180910390a150505050505050565b600080610d5e600d546001141590565b610d6a57600080610d78565b610d78600d5460a081901c91565b915091509091565b6001600160a01b038216600090815260056020526040902054829060ff16610dbb57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e5e576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f9190614951565b6002811115610e4057610e4061493b565b03610e5e576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610efa576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190614980565b610efa57604051630e476aa960e21b815260040160405180910390fd5b610f0388613469565b6000610f0f8989611427565b9150508015610f3157604051633c075f7560e01b815260040160405180910390fd5b85600003610f79576001600160a01b038916600090815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610fdf565b438611610f99576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b03898116600090815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051611014949392919061499d565b60405180910390a1505050505050505050565b61102f613e40565b61103c60208401846142ec565b336001600d54146110605760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561108e908601608087016149cd565b80156110a35750600e546001600160a01b0316155b156110c157604051632d7b695560e11b815260040160405180910390fd5b6000806110ce33886134ba565b9150915060006110db3490565b905060006110f76110f260a08b0160808c016149cd565b613766565b905061110884604001518383613802565b600e5460408501516020015161112a916001600160a01b03169083868c613850565b60408401515161113c9083858b61387d565b50506001600d555095945050505050565b61115685613469565b600083838360405160200161116d93929190614842565b60408051601f1981840301815291905290506111ab8661119060208801886142ec565b60208801356111a560608a0160408b01614827565b856132ae565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111dd929190614915565b60405180910390a1505050505050565b6001600160a01b038316600090815260056020526040902054606090849060ff1661122b57604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf790606401600060405180830381865afa158015611286573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ae9190810190614a7d565b9695505050505050565b6112c185613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461133357604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b039081169084161180159061137f575080155b156113a857604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190206000199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb55292906111dd90879087908a9088908890614ab1565b6001600160a01b03808316600090815260076020908152604080832063ffffffff86168452909152812054909116908161149e5763ffffffff83166000908152600a60205260409020546001600160a01b031691508161149a57604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b6114ae85613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461151b57604051637182306f60e01b8152600481018290526024810183905260440161132a565b80158061156557506001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561158e57604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e906111dd90879087908a9088908890614ab1565b63ffffffff81166000908152600960205260408120546001600160a01b031615801590611655575063ffffffff82166000908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116ba9a99989796959493929190614aee565b60405180910390a4505050505050505050505050565b6001600160a01b038216600090815260056020526040902054829060ff1615801561170357506001600160a01b03811615155b156117215760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b038116156117c4576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117959190614951565b60028111156117a6576117a661493b565b036117c4576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615611860576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190614980565b61186057604051630e476aa960e21b815260040160405180910390fd5b61186988613469565b6001600160a01b03808916600090815260076020908152604080832063ffffffff8c168452909152902054811690871681036118b85760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03898116600081815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a18515611a32576001600160a01b038116158061195b57506001600160a01b038716155b1561197957604051633c075f7560e01b815260040160405180910390fd5b60006040518060400160405280836001600160a01b0316815260200188436119a19190614b6d565b90526001600160a01b038b8116600090815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611a24918d918d91879161499d565b60405180910390a150611aa3565b6001600160a01b038916600090815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611014918c918c9186919061499d565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611b039a99989796959493929190614b80565b60405180910390a35050505050505050505050565b6001600160a01b038316600090815260056020526040902054839060ff16611b5357604051631bc58ef360e11b815260040160405180910390fd5b611b5c85613469565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b8c90889087908790600401614bdf565b600060405180830381600087803b158015611ba657600080fd5b505af1158015611aa3573d6000803e3d6000fd5b611bc26138a7565b611bcc60006138d4565b565b336000908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611c2457604051630542086560e21b815260040160405180910390fd5b8181604051611c34929190614cd2565b60408051918290038220336000818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611cab919088908890889088908890614ce2565b60405180910390a15050505050565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590611cea908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613924565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050505050905090565b6001600160a01b038089166000908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611dd39087908790614cd2565b60405180910390209050808214611e07576040516335ca595f60e01b8152600481018390526024810182905260440161132a565b6001600160a01b03808b166000908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611e76908e908d908c908c9033908d908d90600401614d2c565b6000604051808303818588803b158015611e8f57600080fd5b505af1158015611ea3573d6000803e3d6000fd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611f0494939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b038116600090815260056020526040902054819060ff16158015611f4b57506001600160a01b03811615155b15611f695760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b0381161561200c576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdd9190614951565b6002811115611fee57611fee61493b565b0361200c57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b038216156120a8576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190614980565b6120a857604051630e476aa960e21b815260040160405180910390fd5b6120b187613469565b6001600160a01b03878116600090815260066020908152604080832063ffffffff8b1684529091529020548187169116036120ff5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03878116600081815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d3d565b600080600061218b8686611427565b91509150816001600160a01b0316846001600160a01b0316036121b357600192505050611d1f565b6000816121e8576001600160a01b038716600090815260086020908152604080832063ffffffff8a16845290915290206121fe565b63ffffffff86166000908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156122385750438160200151115b156122495760019350505050611d1f565b5060009695505050505050565b6001600160a01b038316600090815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b6122a1858585846001016139a8565b156122ae57600101612292565b949350505050565b6122be6138a7565b6001600160a01b038216600090815260056020526040902054829060ff166122f957604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b0381161561239c576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236d9190614951565b600281111561237e5761237e61493b565b0361239c576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612438576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156123f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241b9190614980565b61243857604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87166000908152600a60205260409020546001600160a01b03908116908716810361247b5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88166000818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156125695763ffffffff88166000908152600b6020526040902080546001600160a01b0319166001600160a01b0383161781556125228743614b6d565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89161255b918c918691614d7f565b60405180910390a1506125cc565b63ffffffff88166000908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916125c3918b918591614d7f565b60405180910390a15b5050505050505050565b6125de6138a7565b6125e98383836139f5565b505050565b612605826125ff60208601866142ec565b3361217c565b612622576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040822090829061264b908701876142ec565b63ffffffff168152602080820192909252604090810160009081208784013582529092529020546001600160401b03169050612688848483613924565b6126a55760405163751cb20f60e01b815260040160405180910390fd5b6126b0848483613a18565b6126cc5760405162bbf0e560e11b815260040160405180910390fd5b6126f8836126dd60208701876142ec565b60208701356126f26060890160408a01614827565b86613ad5565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161272b93929190614da6565b60405180910390a150505050565b6001600160a01b038316600090815260036020908152604080832063ffffffff8616845282528083208484529091528120548190612781906001600160401b03166001614dce565b90506127b0817f0000000000000000000000000000000000000000000000000000000000000000878787613b3b565b95945050505050565b6127c16138a7565b6001600160a01b038116600090815260056020526040902054819060ff166127fc57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b0381161561289f576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561284c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128709190614951565b60028111156128815761288161493b565b0361289f57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561293b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156128fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291e9190614980565b61293b57604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86166000908152600960205260409020546001600160a01b0380871691160361297c5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff861660008181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f591016111dd565b6001600160a01b03808316600090815260066020908152604080832063ffffffff861684529091529020541680611655575063ffffffff81166000908152600960205260409020546001600160a01b03168061165557604051636c1ccdb560e01b815260040160405180910390fd5b612a596138a7565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590612ade908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613a18565b336000818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d79839819101612aa3565b6001600160a01b038216600090815260056020526040902054829060ff16612bae57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612c51576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c229190614951565b6002811115612c3357612c3361493b565b03612c51576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612ced576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd09190614980565b612ced57604051630e476aa960e21b815260040160405180910390fd5b612cf56138a7565b84600003612d295763ffffffff87166000908152600b6020526040812080546001600160a01b031916815560010155612d7e565b438511612d49576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87166000908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610d3d93929190614d7f565b612dba84613469565b612dc5848484612256565b612dd0906001614dce565b6001600160401b0316816001600160401b031614612e0c57604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001600160a01b038416600081815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161272b565b6040805180820190915260008082526020820152612ec460a08401608085016149cd565b8015612ed95750600e546001600160a01b0316155b15612ef757604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b03821660009081526003602090815260408220908290612f20908701876142ec565b63ffffffff16815260208082019290925260409081016000908120878401358252909252902054612f5b906001600160401b03166001614dce565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001866000016020810190612fc791906142ec565b63ffffffff1681526020018660200135815260200161301f847f0000000000000000000000000000000000000000000000000000000000000000888a600001602081019061301591906142ec565b8b60200135613b3b565b81526020016130316040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061307e9050856109b160208901896142ec565b90506001600160a01b03811663d80e9bd98361309d60608a018a614dee565b6130ad60a08c0160808d016149cd565b6040518563ffffffff1660e01b81526004016130cc9493929190614e34565b6040805180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190614f28565b6131146138a7565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561315f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131839190614980565b6131a05760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156131da5760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af59101612aa3565b6132786138a7565b6001600160a01b0381166132a257604051631e4fbdf760e01b81526000600482015260240161132a565b6132ab816138d4565b50565b6001600160a01b038516600090815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b0390811690841681101561339c57600181015b846001600160401b0316816001600160401b03161161334f5761331f888888846139a8565b61334757604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001016132fa565b506001600160a01b038716600090815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b038916600090815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461341657604051637182306f60e01b8152600481018290526024810184905260440161132a565b50506001600160a01b03909516600090815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b0382161480159061349c57506001600160a01b038181166000908152600f6020526040902054163314155b156132ab5760405163c4c5259360e01b815260040160405180910390fd5b6134c2613e40565b600080613533856134d660208701876142ec565b6001600160a01b0391909116600090815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b0316815260200186600001602081019061359f91906142ec565b63ffffffff168152602001866020013581526020016135ed847f00000000000000000000000000000000000000000000000000000000000000008a8a600001602081019061301591906142ec565b81526020016135ff6040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061364c9050876109b160208901896142ec565b90506000806001600160a01b038316634389e58f8561366e60608c018c614dee565b61367e60a08e0160808f016149cd565b6040518563ffffffff1660e01b815260040161369d9493929190614e34565b6000604051808303816000875af11580156136bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136e49190810190614f44565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161371860608b018b614dee565b866040516137299493929190614f92565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b600081156137fd57600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156137b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137da9190614fd2565b9050806000036137fd57604051631775123760e01b815260040160405180910390fd5b919050565b82518210806138145750808360200151115b156125e95782516020840151604051634f3ec0d360e01b815260048101929092526024820184905260448201526064810182905260840161132a565b831561386157613861858386613bb4565b82841015613876576138768582868603613bb4565b5050505050565b831561388d5761388d8285613bef565b828410156138a1576138a181858503613bef565b50505050565b6000546001600160a01b03163314611bcc5760405163118cdaa760e01b815233600482015260240161132a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080826001600160401b031611806122ae5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d90613967908790600401614feb565b602060405180830381865afa158015613984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ae9190614980565b6001600160a01b038416600090815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b038316613a0d576125e98282613bef565b6125e9838383613bb4565b60006001600160401b038216613a346060860160408701614827565b6001600160401b031611806122ae57506001600160a01b03831660009081526002602090815260408220908290613a6d908801886142ec565b63ffffffff1663ffffffff1681526020019081526020016000206000866020013581526020019081526020016000206000866040016020810190613ab19190614827565b6001600160401b031681526020810191909152604001600020541415949350505050565b80613af3576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b03909416600090815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b600085856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b6001600160a01b038216613bdb576040516306b7a93160e41b815260040160405180910390fd5b6125e96001600160a01b0384168383613c9c565b6001600160a01b038216613c16576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613c63576040519150601f19603f3d011682016040523d82523d6000602084013e613c68565b606091505b50509050806125e957604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161132a565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b1790526125e991859190600090613cfa90841683613d48565b90508051600014158015613d1f575080806020019051810190613d1d9190614980565b155b156125e957604051635274afe760e01b81526001600160a01b038416600482015260240161132a565b6060611d1f8383600084600080856001600160a01b03168486604051613d6e9190614ff9565b60006040518083038185875af1925050503d8060008114613dab576040519150601f19603f3d011682016040523d82523d6000602084013e613db0565b606091505b50915091506112ae868383606082613dd057613dcb82613e17565b611d1f565b8151158015613de757506001600160a01b0384163b155b15613e1057604051639996b31560e01b81526001600160a01b038516600482015260240161132a565b5080611d1f565b805115613e275780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001613e82604051806040016040528060008152602001600081525090565b905290565b600060608284031215613e9957600080fd5b50919050565b80356001600160a01b03811681146137fd57600080fd5b60008083601f840112613ec857600080fd5b5081356001600160401b03811115613edf57600080fd5b60208301915083602082850101111561149e57600080fd5b600080600080600080600060e0888a031215613f1257600080fd5b613f1c8989613e87565b9650613f2a60608901613e9f565b95506080880135945060a08801356001600160401b0380821115613f4d57600080fd5b613f598b838c01613eb6565b909650945060c08a0135915080821115613f7257600080fd5b50613f7f8a828b01613eb6565b989b979a50959850939692959293505050565b803563ffffffff811681146137fd57600080fd5b60008060008060808587031215613fbc57600080fd5b613fc585613e9f565b9350613fd360208601613f92565b9250613fe160408601613e9f565b9396929550929360600135925050565b6000806040838503121561400457600080fd5b82356001600160401b0381111561401a57600080fd5b830160a0818603121561402c57600080fd5b915061403a60208401613e9f565b90509250929050565b6000608082019050825182526001600160401b036020840151166020830152604083015161407e604084018280518252602090810151910152565b5092915050565b600080600080600060c0868803121561409d57600080fd5b6140a686613e9f565b94506140b58760208801613e87565b93506080860135925060a08601356001600160401b038111156140d757600080fd5b6140e388828901613eb6565b969995985093965092949392505050565b6000806000806080858703121561410a57600080fd5b61411385613e9f565b935061412160208601613e9f565b925061412f60408601613f92565b915061413d60608601613f92565b905092959194509250565b60005b8381101561416357818101518382015260200161414b565b50506000910152565b60008151808452614184816020860160208601614148565b601f01601f19169290920160200192915050565b602081526000611d1f602083018461416c565b80356001600160401b03811681146137fd57600080fd5b600080600080600060a086880312156141da57600080fd5b6141e386613e9f565b94506141f160208701613f92565b935060408601359250614206606087016141ab565b949793965091946080013592915050565b803561ffff811681146137fd57600080fd5b6000806000806080858703121561423f57600080fd5b61424885613e9f565b935061425660208601613e9f565b92506040850135915061413d60608601614217565b6000806040838503121561427e57600080fd5b61428783613e9f565b915061403a60208401613f92565b6000602082840312156142a757600080fd5b611d1f82613e9f565b6000806000606084860312156142c557600080fd5b6142ce84613e9f565b92506142dc60208501613f92565b9150604084013590509250925092565b6000602082840312156142fe57600080fd5b611d1f82613f92565b6000806000806000806000806000806000806101208d8f03121561432a57600080fd5b6143338d613e9f565b9b5061434160208e01613e9f565b9a5060408d0135995061435660608e01614217565b985060808d0135975060a08d013596506001600160401b0360c08e0135111561437e57600080fd5b61438e8e60c08f01358f01613eb6565b90965094506001600160401b0360e08e013511156143ab57600080fd5b6143bb8e60e08f01358f01613eb6565b90945092506001600160401b036101008e013511156143d957600080fd5b6143ea8e6101008f01358f01613eb6565b81935080925050509295989b509295989b509295989b565b60008060008060008060008060008060006101408c8e03121561442457600080fd5b61442e8d8d613e87565b9a5061443c60608d01613e9f565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e0135111561446c57600080fd5b61447c8e60e08f01358f01613eb6565b90975095506101008d013581101561449357600080fd5b6144a48e6101008f01358f01613eb6565b90955093506101208d01358110156144bb57600080fd5b506144cd8d6101208e01358e01613eb6565b81935080925050509295989b509295989b9093969950565b600080600080606085870312156144fb57600080fd5b61450485613e9f565b935061451260208601613e9f565b925060408501356001600160401b038082111561452e57600080fd5b818701915087601f83011261454257600080fd5b81358181111561455157600080fd5b8860208260051b850101111561456657600080fd5b95989497505060200194505050565b60008060008060006080868803121561458d57600080fd5b61459686613e9f565b9450602086013593506145ab60408701614217565b925060608601356001600160401b038111156140d757600080fd5b600080608083850312156145d957600080fd5b6145e38484613e87565b915061403a60608401613e9f565b6020808252825182820181905260009190848201906040850190845b818110156146325783516001600160a01b03168352928401929184019160010161460d565b50909695505050505050565b60008060008060008060008060c0898b03121561465a57600080fd5b61466389613e9f565b975061467160208a01613e9f565b96506040890135955061468660608a01614217565b945060808901356001600160401b03808211156146a257600080fd5b6146ae8c838d01613eb6565b909650945060a08b01359150808211156146c757600080fd5b506146d48b828c01613eb6565b999c989b5096995094979396929594505050565b6000806000606084860312156146fd57600080fd5b61470684613e9f565b925061471460208501613f92565b915061472260408501613e9f565b90509250925092565b60008060006060848603121561474057600080fd5b61474984613f92565b92506142dc60208501613e9f565b60008060006060848603121561476c57600080fd5b61474984613e9f565b600080600060a0848603121561478a57600080fd5b6147948585613e87565b92506147a260608501613e9f565b9150608084013590509250925092565b600080604083850312156147c557600080fd5b61402c83613f92565b600080600080608085870312156147e457600080fd5b6147ed85613e9f565b93506147fb60208601613f92565b92506040850135915061413d606086016141ab565b815181526020808301519082015260408101611655565b60006020828403121561483957600080fd5b611d1f826141ab565b838152818360208301376000910160200190815292915050565b63ffffffff61486a82613f92565b168252602081013560208301526001600160401b0361488b604083016141ab565b1660408301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6148c8818961485c565b86606082015260e0608082015260006148e560e083018789614895565b6001600160a01b03861660a084015282810360c0840152614907818587614895565b9a9950505050505050505050565b60808101614923828561485c565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561496357600080fd5b815160038110611d1f57600080fd5b80151581146132ab57600080fd5b60006020828403121561499257600080fd5b8151611d1f81614972565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b6000602082840312156149df57600080fd5b8135611d1f81614972565b634e487b7160e01b600052604160045260246000fd5b600082601f830112614a1157600080fd5b81516001600160401b0380821115614a2b57614a2b6149ea565b604051601f8301601f19908116603f01168101908282118183101715614a5357614a536149ea565b81604052838152866020858801011115614a6c57600080fd5b6112ae846020830160208901614148565b600060208284031215614a8f57600080fd5b81516001600160401b03811115614aa557600080fd5b6122ae84828501614a00565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201526000614b1e60e08301888a614895565b82810360a0840152614b31818789614895565b905082810360c0840152614b46818587614895565b9d9c50505050505050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561165557611655614b57565b6000610120614b8f838e61485c565b8b60608401528a60808401528960a08401528060c0840152614bb4818401898b614895565b905082810360e0840152614bc9818789614895565b9050828103610100840152614b46818587614895565b6001600160a01b03841681526040602080830182905282820184905260009190606090818501600587901b8601830188865b89811015614cc257888303605f190184528135368c9003605e19018112614c3757600080fd5b8b0163ffffffff80614c4883613f92565b16855280614c57888401613f92565b16878601525087810135601e19823603018112614c7357600080fd5b0185810190356001600160401b03811115614c8d57600080fd5b803603821315614c9c57600080fd5b8789860152614cae8886018284614895565b958701959450505090840190600101614c11565b50909a9950505050505050505050565b8183823760009101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a060808201819052600090614d209083018486614895565b98975050505050505050565b600060018060a01b03808a16835288602084015260a06040840152614d5560a08401888a614895565b81871660608501528381036080850152614d70818688614895565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614db4828661485c565b6001600160a01b0393909316606082015260800152919050565b6001600160401b0381811683821601908082111561407e5761407e614b57565b6000808335601e19843603018112614e0557600080fd5b8301803591506001600160401b03821115614e1f57600080fd5b60200191503681900382131561149e57600080fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a0830152850151600090614e8360c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614eb461014084018261416c565b90508281036020840152614ec9818688614895565b9150506127b0604083018415159052565b600060408284031215614eec57600080fd5b604051604081018181106001600160401b0382111715614f0e57614f0e6149ea565b604052825181526020928301519281019290925250919050565b600060408284031215614f3a57600080fd5b611d1f8383614eda565b60008060608385031215614f5757600080fd5b614f618484614eda565b915060408301516001600160401b03811115614f7c57600080fd5b614f8885828601614a00565b9150509250929050565b606081526000614fa5606083018761416c565b8281036020840152614fb8818688614895565b91505060018060a01b038316604083015295945050505050565b600060208284031215614fe457600080fd5b5051919050565b60608101611655828461485c565b6000825161500b818460208701614148565b919091019291505056fea264697066735822122060b78f73c9ab9c1651b5848f9a662a4d7443b5174845f63dab183c0e0ef4aa8b64736f6c63430008160033608060405234801561001057600080fd5b506101c3806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a7146100655780631881d94d1461008d57806354fd4d501461009c5780636750cd4c146100c3575b604051632657b6c360e01b815260040160405180910390fd5b61007861007336600461010e565b6100d7565b60405190151581526020015b60405180910390f35b6002604051610084919061013f565b6040805167ffffffffffffffff815260ff6020820152600291810191909152606001610084565b6100786100d1366004610167565b50600190565b60006001600160e01b031982166325fc096160e21b148061010857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561012057600080fd5b81356001600160e01b03198116811461013857600080fd5b9392505050565b602081016003831061016157634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561017957600080fd5b813563ffffffff8116811461013857600080fdfea26469706673582212201492a62cde195effaf02cad81258b16b83979b7f432c3fe0ca641db583822bb764736f6c63430008160033608060405234801561001057600080fd5b506040516114d63803806114d683398101604081905261002f9161010a565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e816100ba565b506001600160a01b03166000908152600260205260409020805460ff1916600190811790915580546001600160801b03191668056bc75e2d6310000017905560058054602f60801b6001600160801b039190911617905561013a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561011c57600080fd5b81516001600160a01b038116811461013357600080fd5b9392505050565b61138d806101496000396000f3fe6080604052600436106101405760003560e01c80638ca2fb08116100b6578063d350ad251161006f578063d350ad2514610441578063da26663a14610461578063dbbb415514610522578063e0ad121a14610542578063f2fde38b146105cb578063fd9be522146105eb57600080fd5b80638ca2fb08146103595780638da5cb5b1461039957806392807f58146103b7578063c1723a1d146103e9578063c1840327146103fc578063cd68b79b1461041a57600080fd5b80635d6d7ccb116101085780635d6d7ccb146102405780635e280f1114610260578063715018a6146102985780637bc3c9ab146102ad5780637dc438a4146102ea57806388a4124c1461030a57600080fd5b806311f2c343146101455780632f7cb0b41461017c5780633161b7f61461019e57806336a5beba146101be57806352a7251014610220575b600080fd5b34801561015157600080fd5b5061016961016036600461100d565b60009392505050565b6040519081526020015b60405180910390f35b34801561018857600080fd5b5061019c610197366004611057565b61060b565b005b3480156101aa57600080fd5b5061019c6101b9366004611079565b610632565b3480156101ca57600080fd5b506040805180820182526000808252602091820152815180830183526004546001600160401b03811680835263ffffffff600160401b909204821692840192835284519081529151169181019190915201610173565b34801561022c57600080fd5b5061019c61023b366004611104565b610773565b34801561024c57600080fd5b5061019c61025b366004611057565b6107a6565b34801561026c57600080fd5b50600654610280906001600160a01b031681565b6040516001600160a01b039091168152602001610173565b3480156102a457600080fd5b5061019c610819565b3480156102b957600080fd5b506102cd6102c8366004611152565b61082d565b604080519283526001600160801b03909116602083015201610173565b3480156102f657600080fd5b5061019c610305366004611170565b6108c8565b34801561031657600080fd5b5061032a61032536600461100d565b610989565b604080519485526001600160801b03938416602086015291831691840191909152166060820152608001610173565b34801561036557600080fd5b50610389610374366004611188565b60026020526000908152604090205460ff1681565b6040519015158152602001610173565b3480156103a557600080fd5b506000546001600160a01b0316610280565b3480156103c357600080fd5b506005546001600160801b03165b6040516001600160801b039091168152602001610173565b61032a6103f736600461100d565b6109ab565b34801561040857600080fd5b506001546001600160801b03166103d1565b34801561042657600080fd5b506005546103d190600160801b90046001600160801b031681565b34801561044d57600080fd5b5061019c61045c366004611057565b6109dc565b34801561046d57600080fd5b506104e861047c3660046111a3565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526003835283902083519182018452546001600160801b0381168252600160801b81046001600160401b031692820192909252600160c01b9091049092169082015290565b6040805182516001600160801b031681526020808401516001600160401b0316908201529181015163ffffffff1690820152606001610173565b34801561052e57600080fd5b5061019c61053d366004611188565b610a06565b34801561054e57600080fd5b506104e861055d3660046111be565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452600382529282902082519384018352546001600160801b03811684526001600160401b03600160801b82041691840191909152600160c01b900463ffffffff169082015290565b3480156105d757600080fd5b5061019c6105e6366004611188565b610a30565b3480156105f757600080fd5b5061019c6106063660046111d9565b610a6e565b610613610a84565b600580546001600160801b03928316600160801b029216919091179055565b336106456000546001600160a01b031690565b6001600160a01b031614610683573360009081526002602052604090205460ff166106835760405163320ae52960e01b815260040160405180910390fd5b60005b8181101561076e57368383838181106106a1576106a1611203565b60800291909101915061076590506106bc60208301836111a3565b6106ce36849003840160208501611230565b805160208083015160409384015184516060810186526001600160801b0394851681526001600160401b0392831681850190815263ffffffff9283168288019081529783166000908152600390955295909320925183549551965194166001600160c01b031990951694909417600160801b95909116949094029390931763ffffffff60c01b1916600160c01b9190921602179055565b50600101610686565b505050565b61077b610a84565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b336107b96000546001600160a01b031690565b6001600160a01b0316146107f7573360009081526002602052604090205460ff166107f75760405163320ae52960e01b815260040160405180910390fd5b600580546001600160801b0319166001600160801b0392909216919091179055565b610821610a84565b61082b6000610ab1565b565b6000808461ffff16606e148061084857508461ffff1661279f145b8061085857508461ffff16614eaf145b156108755761086c8561ffff168585610b01565b915091506108c0565b8461ffff16606f148061088d57508461ffff16612794145b8061089d57508461ffff16614ea4145b156108b15761086c8561ffff168585610c0e565b61086c8561ffff168585610d5e565b935093915050565b336108db6000546001600160a01b031690565b6001600160a01b031614610919573360009081526002602052604090205460ff166109195760405163320ae52960e01b815260040160405180910390fd5b6109296106bc60208301836111a3565b600061093b60a08301608084016112a9565b9050600061094f60c0840160a085016111a3565b6004805463ffffffff909216600160401b026bffffffffffffffffffffffff199092166001600160401b0390941693909317179091555050565b60008060008061099a878787610dfe565b935093509350935093509350935093565b6000808080806109bf565b60405180910390fd5b6109ca888888610dfe565b94509450945094505093509350935093565b6109e4610a84565b600180546001600160801b0319166001600160801b0392909216919091179055565b610a0e610a84565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a38610a84565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024016109b6565b610a6b81610ab1565b50565b610a76610a84565b610a808282610ecc565b5050565b6000546001600160a01b0316331461082b5760405163118cdaa760e01b81523360048201526024016109b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff8381166000908152600360205260408120600454600554929384938492600160401b900490911690606490610b4b90600160801b90046001600160801b0316896112da565b610b55919061130d565b610b5f91906112da565b8254909150600090610b7e90600160c01b900463ffffffff16886112da565b83546004549192506000916001600160401b03600160801b90920482169184918691610bab91168b611321565b610bb59190611321565b610bbf9190611321565b610bc991906112da565b60015485549192506001600160801b0390811691610be89116836112da565b610bf2919061130d565b935493996001600160801b039094169850929650505050505050565b6000806000610c1c86610f79565b63ffffffff80821660009081526003602052604081208054939450929091610c4c91600160c01b900416886112da565b610c5890610c74611321565b8254909150600090610c7a90600160801b90046001600160401b0316836112da565b63ffffffff808b1660009081526003602052604081208054939450929091610caa91600160c01b9004168b6112da565b8254909150600090600160801b90046001600160401b0316610ccc8b84611321565b610cd691906112da565b60015487549192506000916001600160801b0391821691610cf89116876112da565b610d02919061130d565b60015485549192506000916001600160801b0391821691610d249116856112da565b610d2e919061130d565b90506000610d3c8284611321565b9554959f6001600160801b039096169e50949c50505050505050505050505050565b63ffffffff80841660009081526003602052604081208054919283928391610d8e91600160c01b900416876112da565b8254909150600090600160801b90046001600160401b0316610db08784611321565b610dba91906112da565b60015484549192506001600160801b0390811691610dd99116836112da565b610de3919061130d565b925492986001600160801b0390931697509195505050505050565b600080808080610e1061753089611334565b90508063ffffffff16606e1480610e2e57508063ffffffff1661279f145b80610e4057508063ffffffff16614eaf145b15610e5a57610e50818888610b01565b9095509350610ea9565b8063ffffffff16606f1480610e7657508063ffffffff16612794145b80610e8857508063ffffffff16614ea4145b15610e9857610e50818888610c0e565b610ea3818888610d5e565b90955093505b505060015460055493979296506001600160801b03908116955090921692509050565b6001600160a01b038216610ef3576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f40576040519150601f19603f3d011682016040523d82523d6000602084013e610f45565b606091505b505090508061076e57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016109b6565b600080610f8861753084611334565b90508063ffffffff16606f03610fa15750606592915050565b8063ffffffff1661279403610fba575061278992915050565b8063ffffffff16614ea403610fd35750614e9992915050565b604051633d0b0cf760e21b815263ffffffff821660048201526024016109b6565b803563ffffffff8116811461100857600080fd5b919050565b60008060006060848603121561102257600080fd5b61102b84610ff4565b95602085013595506040909401359392505050565b80356001600160801b038116811461100857600080fd5b60006020828403121561106957600080fd5b61107282611040565b9392505050565b6000806020838503121561108c57600080fd5b82356001600160401b03808211156110a357600080fd5b818501915085601f8301126110b757600080fd5b8135818111156110c657600080fd5b8660208260071b85010111156110db57600080fd5b60209290920196919550909350505050565b80356001600160a01b038116811461100857600080fd5b6000806040838503121561111757600080fd5b611120836110ed565b91506020830135801515811461113557600080fd5b809150509250929050565b803561ffff8116811461100857600080fd5b60008060006060848603121561116757600080fd5b61102b84611140565b600060c0828403121561118257600080fd5b50919050565b60006020828403121561119a57600080fd5b611072826110ed565b6000602082840312156111b557600080fd5b61107282610ff4565b6000602082840312156111d057600080fd5b61107282611140565b600080604083850312156111ec57600080fd5b6111f5836110ed565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b80356001600160401b038116811461100857600080fd5b60006060828403121561124257600080fd5b604051606081018181106001600160401b038211171561127257634e487b7160e01b600052604160045260246000fd5b60405261127e83611040565b815261128c60208401611219565b602082015261129d60408401610ff4565b60408201529392505050565b6000602082840312156112bb57600080fd5b61107282611219565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176112f1576112f16112c4565b92915050565b634e487b7160e01b600052601260045260246000fd5b60008261131c5761131c6112f7565b500490565b808201808211156112f1576112f16112c4565b600063ffffffff8084168061134b5761134b6112f7565b9216919091069291505056fea264697066735822122043d40d861fac89f60c4938c8341172f4eaeb8b3e6729e13e77697283f99e882864736f6c6343000816003360e06040523480156200001157600080fd5b5060405162004ac038038062004ac083398101604081905262000034916200018b565b82828282836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000077573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009d9190620001d8565b6001600160a01b03821660805263ffffffff811660a05283833380620000dd57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000e88162000122565b5060c0919091526002555050600680546001600160a01b0319166001600160a01b0398909816979097179096555062000207945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200018857600080fd5b50565b60008060008060808587031215620001a257600080fd5b8451620001af8162000172565b6020860151909450620001c28162000172565b6040860151606090960151949790965092505050565b600060208284031215620001eb57600080fd5b815163ffffffff811681146200020057600080fd5b9392505050565b60805160a05160c0516148706200025060003960008181611d100152611e730152600050506000818161069a0152818161079f015281816112b101526117d901526148706000f3fe60806040526004361061014f5760003560e01c806361d027b3116100b6578063d15b0d491161006f578063d15b0d4914610450578063d80e9bd914610470578063f0f442601461049d578063f2fde38b146104bd578063faaebd21146104dd578063fd9be5221461051857600080fd5b806361d027b3146103905780636750cd4c146103b0578063715018a6146103d05780638da5cb5b146103e55780639c33abf714610403578063c14c43491461043057600080fd5b806329460b0b1161010857806329460b0b1461025357806339e3f938146102735780634389e58f146102a057806343ea4fa9146102ce5780634d963200146102ee57806354fd4d501461036357600080fd5b806301ffc9a71461015b5780630e97289b14610190578063188183f4146101c85780631881d94d146101f5578063200175f71461021157806320efd7221461023357600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b6101763660046136fd565b610538565b60405190151581526020015b60405180910390f35b34801561019c57600080fd5b506006546101b0906001600160a01b031681565b6040516001600160a01b039091168152602001610187565b3480156101d457600080fd5b506101e86101e3366004613769565b61058a565b60405161018791906137a2565b34801561020157600080fd5b50600060405161018791906137c8565b34801561021d57600080fd5b5061023161022c3660046137f0565b610663565b005b34801561023f57600080fd5b5061023161024e366004613875565b61079d565b34801561025f57600080fd5b5061023161026e3660046138c9565b610912565b34801561027f57600080fd5b5061029361028e366004613769565b610aaa565b60405161018791906139c0565b3480156102ac57600080fd5b506102c06102bb3660046139ec565b610be5565b604051610187929190613aeb565b3480156102da57600080fd5b506102936102e9366004613769565b610c7a565b3480156102fa57600080fd5b5061033f610309366004613769565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160a01b031682565b6040805163ffffffff90931683526001600160a01b03909116602083015201610187565b34801561036f57600080fd5b50604080516003815260006020820152600291810191909152606001610187565b34801561039c57600080fd5b506003546101b0906001600160a01b031681565b3480156103bc57600080fd5b5061017b6103cb366004613b0f565b610f86565b3480156103dc57600080fd5b50610231610f91565b3480156103f157600080fd5b506000546001600160a01b03166101b0565b34801561040f57600080fd5b5061042361041e366004613b2c565b610fa5565b6040516101879190613b77565b34801561043c57600080fd5b5061023161044b366004613b8a565b611037565b34801561045c57600080fd5b5061023161046b366004613bfe565b611170565b34801561047c57600080fd5b5061049061048b3660046139ec565b6111e5565b6040516101879190613c17565b3480156104a957600080fd5b506102316104b8366004613c2e565b611255565b3480156104c957600080fd5b506102316104d8366004613c2e565b611269565b3480156104e957600080fd5b5061050a6104f8366004613c2e565b60056020526000908152604090205481565b604051908152602001610187565b34801561052457600080fd5b50610231610533366004613c4b565b6112a4565b60006001600160e01b031982166325fc096160e21b148061056957506001600160e01b0319821663b6e9ace360e01b145b8061058457506301ffc9a760e01b6001600160e01b03198316145b92915050565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec602090815260408083206001600160a01b038916845260048352818420948452939091528120805492939092169081900361060e57825463ffffffff16610610565b805b63ffffffff168452815464010000000090046001600160a01b03168061064857835464010000000090046001600160a01b031661064a565b805b6001600160a01b03166020860152509295945050505050565b6003546001600160a01b0316331461068e5760405163885762a760e01b815260040160405180910390fd5b826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071a9190613c77565b6001600160a01b031603610741576040516339a5741160e21b815260040160405180910390fd5b61074c838383611384565b604080516001600160a01b038086168252841660208201529081018290527fe081464b7278501267de69fa85b7b9560b0ae05d5fbfaab9b1986c70356e2efe906060015b60405180910390a1505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107e65760405163467409c360e01b815260040160405180910390fd5b60005b8181101561090c573683838381811061080457610804613c94565b90506020028101906108169190613caa565b905061082d6108286020830183613b0f565b6113c4565b600161083f6040830160208401613b0f565b63ffffffff160361087f5761087a61085a6020830183613b0f565b866108686040850185613cca565b8101906108759190613da0565b6113f2565b610903565b60026108916040830160208401613b0f565b63ffffffff16036108cc5761087a6108ac6020830183613b0f565b866108ba6040850185613cca565b8101906108c79190613f60565b61147a565b6108dc6040820160208301613b0f565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016107e9565b50505050565b61091a6114c3565b60005b81811015610a6c573683838381811061093857610938613c94565b905060200281019061094a9190613f94565b905060ff61095b6020830183613faa565b61096c906040810190602001613fc0565b60ff160361098d576040516341d50bed60e11b815260040160405180910390fd5b60ff61099c6020830183613faa565b6109ad906060810190604001613fc0565b60ff16036109ce5760405163211089b360e11b815260040160405180910390fd5b6001600160401b036109e36020830183613faa565b6109f1906020810190613fdb565b6001600160401b031603610a185760405163281b33d760e11b815260040160405180910390fd5b610a36610a286020830183613faa565b610a3190613ff6565b6114f0565b610a636000610a486020840184613b0f565b610a556020850185613faa565b610a5e90613ff6565b611528565b5060010161091d565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610a9e929190614088565b60405180910390a15050565b610ab2613644565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610b7257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b54575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610bd457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bb6575b505050505081525050905092915050565b60408051808201909152600080825260208201526060610c07868686866117c1565b600654604051631f5dad8b60e31b81529294509092506001600160a01b03169063faed6c5890610c3f908490899089906004016141cd565b600060405180830381600087803b158015610c5957600080fd5b505af1158015610c6d573d6000803e3d6000fd5b5050505094509492505050565b610c82613644565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b031680610cf75782546001600160401b03168452610d14565b6001600160401b0381811614610d14576001600160401b03811684525b8154600160401b900460ff16610dae578254600160401b900460ff1615610da95782600101805480602002602001604051908101604052809291908181526020018280548015610d8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d6f575b505050505060808501528254600160401b900460ff1660208501525b610e35565b8154600160401b900460ff90811614610e355781600101805480602002602001604051908101604052809291908181526020018280548015610e1957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610dfb575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610ede578254600160481b900460ff1615610ed95782600201805480602002602001604051908101604052809291908181526020018280548015610eae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e90575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610f74565b8154600160481b900460ff90811614610f745781600201805480602002602001604051908101604052809291908181526020018280548015610f4957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f2b575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610f7d846114f0565b50505092915050565b600061058482611895565b610f996114c3565b610fa360006118f0565b565b606060001963ffffffff831601610fe657610fc0838561058a565b604051602001610fd091906137a2565b6040516020818303038152906040529050611030565b60011963ffffffff83160161100f57610fff8385610c7a565b604051602001610fd091906139c0565b604051635d4be0fd60e11b815263ffffffff831660048201526024016108fa565b9392505050565b61103f6114c3565b60005b8181101561113e573683838381811061105d5761105d613c94565b606090810292909201925060009161107b9150830160408401613c2e565b6001600160a01b0316036110a257604051631074e82d60e11b815260040160405180910390fd5b6110b26040820160208301613b0f565b63ffffffff166000036110d8576040516349cfac4360e01b815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec906111138385613b0f565b63ffffffff16815260208101919091526040016000206111338282614213565b505050600101611042565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610a9e92919061426c565b6111786114c3565b6002548111156111a95760025460405163068109f760e31b81526108fa918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b7842906020015b60405180910390a150565b604080518082019091526000808252602082015260008061123661120f6060890160408a01613c2e565b61121f60808a0160608b01613b0f565b61122c60c08b018b613cca565b9050878a8a611940565b604080518082019091529182526020820152925050505b949350505050565b61125d6114c3565b61126681611a39565b50565b6112716114c3565b6001600160a01b03811661129b57604051631e4fbdf760e01b8152600060048201526024016108fa565b611266816118f0565b6112ad81611a87565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561130d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113319190613c77565b905061133e818484611ad8565b604080513381526001600160a01b03851660208201529081018390527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610790565b6001600160a01b0382166113ab576040516306b7a93160e41b815260040160405180910390fd5b6113bf6001600160a01b0384168383611afb565b505050565b6113cd81611895565b61126657604051633c30434160e21b815263ffffffff821660048201526024016108fa565b6001600160a01b03808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000026001600160c01b03199093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc80590610790908490869085906142ec565b611485828483611528565b61148f8284610c7a565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516107909392919061432e565b6000546001600160a01b03163314610fa35760405163118cdaa760e01b81523360048201526024016108fa565b602081015160ff1615801561150a5750606081015160ff16155b156112665760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806115435750602081015160ff16155b15611571576080810151511561156c576040516341d50bed60e11b815260040160405180910390fd5b6115d7565b806020015160ff168160800151511415806115ac57506002611595600160ff614374565b61159f919061438d565b60ff16816020015160ff16115b156115ca576040516341d50bed60e11b815260040160405180910390fd5b6115d78160800151611b4d565b604081015160ff90811614806115f25750604081015160ff16155b156116465760a0810151511561161b5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615611641576040516338682fa960e01b815260040160405180910390fd5b6116eb565b806040015160ff168160a00151511415806116815750600261166a600160ff614374565b611674919061438d565b60ff16816040015160ff16115b1561169f5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615806116c05750806040015160ff16816060015160ff16115b156116de576040516338682fa960e01b815260040160405180910390fd5b6116eb8160a00151611b4d565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361179d9390850192019061368c565b5060a082015180516117b991600284019160209091019061368c565b505050505050565b604080518082019091526000808252602082015260607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118205760405163467409c360e01b815260040160405180910390fd5b60008061182e888888611bb4565b909250905060008061186061184960608c0160408d01613c2e565b61185960808d0160608e01613b0f565b858a611c81565b909250905061186f82846143bd565b604080518082019091529081526020810191909152945091925050505b94509492505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580611030575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000806119508686611d8f565b9150915060006119618b8b84611da8565b9050600061196f8c8c61058a565b90506119858a826000015163ffffffff16611db5565b80602001516001600160a01b031663709eb6648c8e8d886040518563ffffffff1660e01b81526004016119bb94939291906143d0565b602060405180830381865afa1580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614403565b611a0690836143bd565b9150600080611a178e8e868e611de4565b9092509050611a2682856143bd565b9e909d509b505050505050505050505050565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f906020016111da565b3360009081526005602052604090205480821115611ac25760405163068109f760e31b815260048101839052602481018290526044016108fa565b3360009081526005602052604090209190039055565b6001600160a01b038316611af0576113bf8282611eb5565b6113bf838383611384565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113bf908490611f62565b6000805b82518110156113bf576000838281518110611b6e57611b6e613c94565b60200260200101519050826001600160a01b0316816001600160a01b031611611baa5760405163447516e160e01b815260040160405180910390fd5b9150600101611b51565b60606000806000611bc58686611d8f565b90925090506000611bef611bdf60608a0160408b01613c2e565b6101e360808b0160608c01613b0f565b90506000611c0060c08a018a613cca565b90509050611c1881836000015163ffffffff16611db5565b6020820151611c4890611c3160808c0160608d01613b0f565b611c4160608d0160408e01613c2e565b8488611fc5565b611c5290866143bd565b9450600080611c618b866120be565b9092509050611c7082886143bd565b909b909a5098505050505050505050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b0316636a8e2a4360e11b1790526003549192506000918291611d38916001600160a01b0316907f0000000000000000000000000000000000000000000000000000000000000000908490876120e1565b91509150611d4887878484612191565b90955093508415611d83576003546001600160a01b031660009081526005602052604081208054879290611d7d9084906143bd565b90915550505b50505094509492505050565b606080611d9c848461220c565b915091505b9250929050565b600061124d8484846122f9565b80821115611de057604051636333d79f60e11b815260048101839052602481018290526044016108fa565b5050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b031663d424422160e01b1790526003549192506000918291611e99916001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000009086612373565b91509150611ea987878484612191565b9450945050505061188c565b6001600160a01b038216611edc576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611f29576040519150601f19603f3d011682016040523d82523d6000602084013e611f2e565b606091505b50509050806113bf57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016108fa565b6000611f776001600160a01b0384168361241f565b90508051600014158015611f9c575080806020019051810190611f9a919061441c565b155b156113bf57604051635274afe760e01b81526001600160a01b03841660048201526024016108fa565b6040516338bf452160e11b81526000906001600160a01b0387169063717e8a4290611ffa9088908890889088906004016143d0565b6020604051808303816000875af1158015612019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203d9190614403565b90508015612073576001600160a01b0386166000908152600560205260408120805483929061206d9084906143bd565b90915550505b604080516001600160a01b0388168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b600060606120d660056120d0866144a8565b8561242d565b909590945092505050565b60006060863b80830361210857604080516000808252602082019092529250925050612187565b60008060008761ffff166001600160401b0381111561212957612129613d10565b6040519080825280601f01601f191660200182016040528015612153576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612174578792505b828152826000602083013e909450925050505b9550959350505050565b6000808315806121a2575082516020115b156121b25750600090508061188c565b6000838060200190518101906121c89190614403565b905085156121d857809150612202565b600060025488116121eb576002546121ed565b875b90508082116121fc57816121fe565b805b9350505b5094509492505050565b60608060008061221c868661257b565b91509150805160000361227457604080516000808252602082019092528391612268565b6040805180820190915260008152606060208201528152602001906001900390816122405790505b50935093505050611da1565b604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908161228b5790505090506040518060400160405280600260ff16815260200183815250816000815181106122e1576122e1613c94565b60209081029190910101529196919550909350505050565b6000806123068585610c7a565b905060008351600014612337578360008151811061232657612326613c94565b602002602001015160200151612348565b604051806020016040528060008152505b90506000806123568361273a565b9150915061236784888a85856129a0565b98975050505050505050565b60006060853b80830361239a5760408051600080825260208201909252925092505061188c565b60008060008761ffff166001600160401b038111156123bb576123bb613d10565b6040519080825280601f01601f1916602001820160405280156123e5576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612405578792505b828152826000602083013e90999098509650505050505050565b606061103083836000612b38565b60006060600061243c85612bd5565b9050600061244986612c62565b80516020820120606088015160408901519293509091600061246b8284610c7a565b90506000895160001461249c578960008151811061248b5761248b613c94565b6020026020010151602001516124ad565b604051806020016040528060008152505b905060606124ff8d846040518060a001604052808963ffffffff1681526020018c81526020018a815260200187600001516001600160401b03168152602001886001600160a01b031681525085612c7f565b604051919b5091506125179089908990602001614545565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a001518360405161256393929190614574565b60405180910390a15050505050505050935093915050565b60608060028310156125a35760405163196499c760e21b8152600060048201526024016108fa565b60006125b260028286886145d2565b6125bb916145fc565b60f01c905060026002198201612723578060005b868310156126c85760006125e860018501858a8c6145d2565b6125f19161462c565b60f81c9050600081900361261b57604051636780cfaf60e01b8152600060048201526024016108fa565b8160ff1660000361262e5780915061266b565b8160ff168160ff161461266b5736600061264a86868c8e6145d2565b9150915061265b8989868585612f1d565b9099509750859450919250829150505b600184019360009061268290600301868b8d6145d2565b61268b916145fc565b60f01c905060008190036126b55760405163196499c760e21b8152600481018690526024016108fa565b8060020161ffff168501945050506125cf565b8287146126eb5760405163196499c760e21b8152600481018490526024016108fa565b600287111561271c5736600061270385858b8d6145d2565b915091506127148888858585612f1d565b909850965050505b5050612731565b61272e82878761303d565b93505b50509250929050565b606080825160000361274b57915091565b6000612756846131c8565b90508060ff166001036128085760408051600180825281830190925290816020015b606081526020019060019003908161277857905050925083836000815181106127a3576127a3613c94565b6020908102919091010152604080516001808252818301909252908160200160208202803683370190505091506127db8460036132a2565b826000815181106127ee576127ee613c94565b602002602001019060ff16908160ff168152505050915091565b8060ff166001600160401b0381111561282357612823613d10565b60405190808252806020026020018201604052801561284c578160200160208202803683370190505b5091508060ff166001600160401b0381111561286a5761286a613d10565b60405190808252806020026020018201604052801561289d57816020015b60608152602001906001900390816128885790505b50925060008060ff5b86518310156129335760019092019160006128c188856132fe565b60029490940193905060006128d689866132a2565b90508260ff1660ff036128eb57809250612924565b8260ff168160ff16146129245760021984860301600061290c8b878461335b565b905061291a8a8a8784613468565b5093909301929150815b5061ffff1692909201916128a6565b818303600061294389858461335b565b905061295188888584613468565b60005b8660ff168160ff16101561299457878160ff168151811061297757612977613c94565b6020908102919091010180516000190160ff169052600101612954565b50505050505050915091565b600080866040015187602001516129b7919061465a565b905060005b8160ff168160ff161015612b2d576000886020015160ff168260ff1610612a115760a089015160208a01516129f19084614374565b60ff1681518110612a0457612a04613c94565b6020026020010151612a33565b88608001518260ff1681518110612a2a57612a2a613c94565b60200260200101515b60408051602081019091526000808252919250905b8651811015612aa0578360ff16878281518110612a6757612a67613c94565b602002602001015160ff1603612a9857878181518110612a8957612a89613c94565b60200260200101519150612aa0565b600101612a48565b508951604051630c2eceab60e21b81526001600160a01b038416916330bb3aac91612ad3918d918d908790600401614673565b602060405180830381865afa158015612af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b149190614403565b612b1e90866143bd565b945050508060010190506129bc565b505095945050505050565b606081471015612b5d5760405163cd78605960e01b81523060048201526024016108fa565b600080856001600160a01b03168486604051612b7991906146b2565b60006040518083038185875af1925050503d8060008114612bb6576040519150601f19603f3d011682016040523d82523d6000602084013e612bbb565b606091505b5091509150612bcb86838361357e565b9695505050505050565b805160208083015160408085015160608087015160808801519351600160f81b9681019690965260c09690961b6001600160c01b031916602186015260e093841b6001600160e01b031990811660298701526001600160a01b03909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c00151604051602001612c4c9291906146c4565b60006060600080612c8f8561273a565b91509150600087604001518860200151612ca9919061465a565b90508060ff166001600160401b03811115612cc657612cc6613d10565b604051908082528060200260200182016040528015612cef578160200160208202803683370190505b50935060005b8160ff168160ff161015610c6d576000896020015160ff168260ff1610612d4a5760a08a015160208b0151612d2a9084614374565b60ff1681518110612d3d57612d3d613c94565b6020026020010151612d6c565b89608001518260ff1681518110612d6357612d63613c94565b60200260200101515b60408051602081019091526000808252919250905b8551811015612dd9578360ff16868281518110612da057612da0613c94565b602002602001015160ff1603612dd157868181518110612dc257612dc2613c94565b60200260200101519150612dd9565b600101612d81565b506040516395d376d760e01b81526001600160a01b038316906395d376d790612e08908d9085906004016146ea565b6020604051808303816000875af1158015612e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4b9190614403565b878460ff1681518110612e6057612e60613c94565b6020026020010181815250506000878460ff1681518110612e8357612e83613c94565b60200260200101511115612f1357868360ff1681518110612ea657612ea6613c94565b60200260200101518c6000846001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ee191906143bd565b92505081905550868360ff1681518110612efd57612efd613c94565b602002602001015188612f1091906143bd565b97505b5050600101612cf5565b60608060001960ff861601612f9a57865115612f5c57868484604051602001612f489392919061475c565b604051602081830303815290604052612f93565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613032565b60011960ff86160161301457855115612fd657858484604051602001612fc29392919061475c565b60405160208183030381529060405261300d565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613032565b604051636780cfaf60e01b815260ff861660048201526024016108fa565b509495939450505050565b606060001961ffff8516016130dd576022821461306d576040516301b8ca5560e31b815260040160405180910390fd5b600061308e6130806022600286886145d2565b61308991614784565b6135da565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b166024820152909150603401604051602081830303815290604052915050611030565b60011961ffff8516016131a9576042821115806130fa5750606282115b15613118576040516360493e2b60e11b815260040160405180910390fd5b600061312b6130806022600286886145d2565b905060006131406130806042602287896145d2565b905060006041198501613156866042818a6145d2565b61315f91614784565b60405160086020938403029190911c9250613190916001916011918391889183916031916002918b918b91016147a2565b6040516020818303038152906040529350505050611030565b604051630417051360e41b815261ffff851660048201526024016108fa565b600080805b83518210156132775760019091019060006131e885846132fe565b905060028301925060028161ffff1610156132195760405163013adb8360e21b8152600481018490526024016108fa565b600061322586856132a2565b90508060ff1660ff0361324b576040516334f4f66f60e21b815260040160405180910390fd5b600160ff82161b83166132685760019485019460ff82161b831792505b5061ffff1691909101906131cd565b8351821461329b5760405163013adb8360e21b8152600481018390526024016108fa565b5050919050565b60006132af8260016143bd565b835110156132f55760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b60448201526064016108fa565b50016001015190565b600061330b8260026143bd565b835110156133525760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b60448201526064016108fa565b50016002015190565b60608161336981601f6143bd565b10156133a85760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016108fa565b6133b282846143bd565b845110156133f65760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016108fa565b606082158015613415576040519150600082526020820160405261345f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561344e578051835260209283019201613436565b5050858452601f01601f1916604052505b50949350505050565b8160ff1660ff0361348c576040516334f4f66f60e21b815260040160405180910390fd5b600061349983600161465a565b905060005b84518110156117b95760008582815181106134bb576134bb613c94565b602002602001015190508060ff168360ff1603613530578682815181106134e4576134e4613c94565b6020026020010151846040516020016134fe929190614545565b60405160208183030381529060405287838151811061351f5761351f613c94565b6020026020010181905250506117b9565b8060ff16600003613575578286838151811061354e5761354e613c94565b602002602001019060ff16908160ff16815250508387838151811061351f5761351f613c94565b5060010161349e565b6060826135935761358e8261361b565b611030565b81511580156135aa57506001600160a01b0384163b155b156135d357604051639996b31560e01b81526001600160a01b03851660048201526024016108fa565b5080611030565b60006fffffffffffffffffffffffffffffffff821115613617576040516306dfcc6560e41b815260806004820152602481018390526044016108fa565b5090565b80511561362b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156136e1579160200282015b828111156136e157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906136ac565b506136179291505b8082111561361757600081556001016136e9565b60006020828403121561370f57600080fd5b81356001600160e01b03198116811461103057600080fd5b6001600160a01b038116811461126657600080fd5b803561374781613727565b919050565b63ffffffff8116811461126657600080fd5b80356137478161374c565b6000806040838503121561377c57600080fd5b823561378781613727565b915060208301356137978161374c565b809150509250929050565b815163ffffffff1681526020808301516001600160a01b03169082015260408101610584565b60208101600383106137ea57634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006060848603121561380557600080fd5b833561381081613727565b9250602084013561382081613727565b929592945050506040919091013590565b60008083601f84011261384357600080fd5b5081356001600160401b0381111561385a57600080fd5b6020830191508360208260051b8501011115611da157600080fd5b60008060006040848603121561388a57600080fd5b833561389581613727565b925060208401356001600160401b038111156138b057600080fd5b6138bc86828701613831565b9497909650939450505050565b600080602083850312156138dc57600080fd5b82356001600160401b038111156138f257600080fd5b6138fe85828601613831565b90969095509350505050565b60008151808452602080850194506020840160005b838110156139445781516001600160a01b03168752958201959082019060010161391f565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261399e60c085018261390a565b905060a083015184820360a08601526139b7828261390a565b95945050505050565b602081526000611030602083018461394f565b801515811461126657600080fd5b8035613747816139d3565b60008060008060608587031215613a0257600080fd5b84356001600160401b0380821115613a1957600080fd5b9086019060e08289031215613a2d57600080fd5b90945060208601359080821115613a4357600080fd5b818701915087601f830112613a5757600080fd5b813581811115613a6657600080fd5b886020828501011115613a7857600080fd5b602083019550809450505050613a90604086016139e1565b905092959194509250565b60005b83811015613ab6578181015183820152602001613a9e565b50506000910152565b60008151808452613ad7816020860160208601613a9b565b601f01601f19169290920160200192915050565b825181526020808401519082015260606040820152600061124d6060830184613abf565b600060208284031215613b2157600080fd5b81356110308161374c565b600080600060608486031215613b4157600080fd5b8335613b4c8161374c565b92506020840135613b5c81613727565b91506040840135613b6c8161374c565b809150509250925092565b6020815260006110306020830184613abf565b60008060208385031215613b9d57600080fd5b82356001600160401b0380821115613bb457600080fd5b818501915085601f830112613bc857600080fd5b813581811115613bd757600080fd5b866020606083028501011115613bec57600080fd5b60209290920196919550909350505050565b600060208284031215613c1057600080fd5b5035919050565b815181526020808301519082015260408101610584565b600060208284031215613c4057600080fd5b813561103081613727565b60008060408385031215613c5e57600080fd5b8235613c6981613727565b946020939093013593505050565b600060208284031215613c8957600080fd5b815161103081613727565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112613cc057600080fd5b9190910192915050565b6000808335601e19843603018112613ce157600080fd5b8301803591506001600160401b03821115613cfb57600080fd5b602001915036819003821315611da157600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715613d4857613d48613d10565b60405290565b60405160e081016001600160401b0381118282101715613d4857613d48613d10565b604051601f8201601f191681016001600160401b0381118282101715613d9857613d98613d10565b604052919050565b600060408284031215613db257600080fd5b604051604081018181106001600160401b0382111715613dd457613dd4613d10565b6040528235613de28161374c565b81526020830135613df281613727565b60208201529392505050565b80356001600160401b038116811461374757600080fd5b803560ff8116811461374757600080fd5b600082601f830112613e3757600080fd5b813560206001600160401b03821115613e5257613e52613d10565b8160051b613e61828201613d70565b9283528481018201928281019087851115613e7b57600080fd5b83870192505b84831015613ea3578235613e9481613727565b82529183019190830190613e81565b979650505050505050565b600060c08284031215613ec057600080fd5b613ec8613d26565b9050613ed382613dfe565b8152613ee160208301613e15565b6020820152613ef260408301613e15565b6040820152613f0360608301613e15565b606082015260808201356001600160401b0380821115613f2257600080fd5b613f2e85838601613e26565b608084015260a0840135915080821115613f4757600080fd5b50613f5484828501613e26565b60a08301525092915050565b600060208284031215613f7257600080fd5b81356001600160401b03811115613f8857600080fd5b61124d84828501613eae565b60008235603e19833603018112613cc057600080fd5b6000823560be19833603018112613cc057600080fd5b600060208284031215613fd257600080fd5b61103082613e15565b600060208284031215613fed57600080fd5b61103082613dfe565b60006105843683613eae565b6000808335601e1984360301811261401957600080fd5b83016020810192503590506001600160401b0381111561403857600080fd5b8060051b3603821315611da157600080fd5b8183526000602080850194508260005b8581101561394457813561406d81613727565b6001600160a01b03168752958201959082019060010161405a565b60208082528181018390526000906040808401600586901b8501820187855b888110156141bf57603f19808985030185528235603e198c36030181126140cd57600080fd5b8b0180356140da8161374c565b63ffffffff168552808801353682900360be190181126140f957600080fd5b858901889052016001600160401b0361411182613dfe565b1687860152614121888201613e15565b606060ff808316828901526141378a8501613e15565b92506080818416818a015261414d838601613e15565b935060a09250818416838a015261416681860186614002565b60c08b8101529450915061418190506101008901848361404a565b92505061419081840184614002565b93509050838783030160e08801526141a982848361404a565b978a0197965050509287019250506001016140a7565b509098975050505050505050565b6040815260006141e06040830186613abf565b8281036020840152838152838560208301376000602085830101526020601f19601f860116820101915050949350505050565b813561421e8161374c565b63ffffffff8116905081548163ffffffff198216178355602084013561424381613727565b6001600160c01b03199190911690911760209190911b640100000000600160c01b031617905550565b6020808252818101839052600090604080840186845b878110156142df5781356142958161374c565b63ffffffff908116845282860135906142ad8261374c565b1683860152818401356142bf81613727565b6001600160a01b0316838501526060928301929190910190600101614282565b5090979650505050505050565b6001600160a01b038416815263ffffffff831660208201526080810161124d6040830184805163ffffffff1682526020908101516001600160a01b0316910152565b6001600160a01b038416815263ffffffff831660208201526060604082018190526000906139b79083018461394f565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156105845761058461435e565b600060ff8316806143ae57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b808201808211156105845761058461435e565b63ffffffff8516815260018060a01b0384166020820152826040820152608060608201526000612bcb6080830184613abf565b60006020828403121561441557600080fd5b5051919050565b60006020828403121561442e57600080fd5b8151611030816139d3565b600082601f83011261444a57600080fd5b81356001600160401b0381111561446357614463613d10565b614476601f8201601f1916602001613d70565b81815284602083860101111561448b57600080fd5b816020850160208301376000918101602001919091529392505050565b600060e082360312156144ba57600080fd5b6144c2613d4e565b6144cb83613dfe565b81526144d96020840161375e565b60208201526144ea6040840161373c565b60408201526144fb6060840161375e565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b0381111561452d57600080fd5b61453936828601614439565b60c08301525092915050565b60008351614557818460208801613a9b565b83519083019061456b818360208801613a9b565b01949350505050565b606081526000614587606083018661390a565b6020838203602085015261459b828761390a565b84810360408601528551808252602080880194509091019060005b818110156141bf578451835293830193918301916001016145b6565b600080858511156145e257600080fd5b838611156145ef57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156146245780818660020360031b1b83161692505b505092915050565b6001600160f81b031981358181169160018510156146245760019490940360031b84901b1690921692915050565b60ff81811683821601908111156105845761058461435e565b63ffffffff851681526001600160401b03841660208201526001600160a01b0383166040820152608060608201819052600090612bcb90830184613abf565b60008251613cc0818460208701613a9b565b828152600082516146dc816020850160208701613a9b565b919091016020019392505050565b6040815263ffffffff83511660408201526000602084015160a0606084015261471660e0840182613abf565b604086015160808581019190915260608701516001600160401b031660a08601528601516001600160a01b031660c0850152838103602085015290506139b78185613abf565b6000845161476e818460208901613a9b565b8201838582376000930192835250909392505050565b8035602083101561058457600019602084900360031b1b1692915050565b60f88a811b6001600160f81b0319908116835260f08b811b6001600160f01b031990811660018601528b841b8316600386015260808b901b6001600160801b031916600486015289841b831660148601529088901b1660158401529085901b1660178201526000614822601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea26469706673582212209c4e56d6c67105dfab95a5db652280357c444a31ddd8e746e20a46bf6d44b3bb64736f6c6343000816003360c06040523480156200001157600080fd5b50604051620024413803806200244183398101604081905262000034916200013e565b8080816001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009b919062000170565b3380620000c257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000cd81620000ee565b506001600160a01b0390911660805263ffffffff1660a05250620001989050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200015157600080fd5b81516001600160a01b03811681146200016957600080fd5b9392505050565b6000602082840312156200018357600080fd5b815163ffffffff811681146200016957600080fd5b60805160a05161227c620001c5600039600061031e01526000818161041b0152610484015261227c6000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806343ea4fa9116100a25780638da5cb5b116100715780638da5cb5b146102665780639c33abf714610281578063c40ff835146102a1578063e084d952146102b4578063f2fde38b146102c757600080fd5b806343ea4fa91461021857806354fd4d501461022b5780636750cd4c1461024b578063715018a61461025e57600080fd5b806320efd722116100de57806320efd7221461016f57806329460b0b1461018257806339e3f938146101955780633c782a52146101b557600080fd5b806301ffc9a7146101105780630223536e146101385780630894edf11461014d5780631881d94d14610160575b600080fd5b61012361011e3660046116ed565b6102da565b60405190151581526020015b60405180910390f35b61014b61014636600461177b565b610305565b005b61014b61015b3660046117d7565b610317565b600160405161012f9190611822565b61014b61017d3660046118a5565b610482565b61014b6101903660046118f7565b6105a4565b6101a86101a336600461194c565b61073c565b60405161012f9190611a35565b6101f96101c3366004611a48565b600260209081526000938452604080852082529284528284209052825290205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161012f565b6101a861022636600461194c565b610877565b60408051600381526000602082015260029181019190915260600161012f565b610123610259366004611a7d565b610b83565b61014b610b8e565b6000546040516001600160a01b03909116815260200161012f565b61029461028f366004611a98565b610ba2565b60405161012f9190611ad2565b61014b6102af366004611b21565b610c0b565b6101236102c2366004611d10565b610c1b565b61014b6102d5366004611d5d565b610c30565b60006001600160e01b03198216630ab7be9f60e01b14806102ff57506102ff82610c6e565b92915050565b61031184848484610ca3565b50505050565b61034283837f0000000000000000000000000000000000000000000000000000000000000000610d89565b600061034e8484610e0c565b9050600061035c8585610e1e565b9050600061036a8383610877565b905061038e818787604051610380929190611d78565b604051809103902086610e41565b600060405180606001604052808463ffffffff1681526020016103b18989610f91565b81526020016103c08989610faa565b6001600160401b039081169091526040805163a825d74760e01b8152835163ffffffff166004820152602084015160248201529083015190911660448201526001600160a01b038681166064830152608482018890529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a825d7479060a401600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b5050505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146104cb5760405163467409c360e01b815260040160405180910390fd5b60005b8181101561031157368383838181106104e9576104e9611d88565b90506020028101906104fb9190611d9e565b905061051261050d6020830183611a7d565b610fcd565b60026105246040830160208401611a7d565b63ffffffff16036105645761055f61053f6020830183611a7d565b8661054d6040850185611dbe565b81019061055a9190611e04565b610ffb565b61059b565b6105746040820160208301611a7d565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016104ce565b6105ac611051565b60005b818110156106fe57368383838181106105ca576105ca611d88565b90506020028101906105dc9190611e38565b905060ff6105ed6020830183611e4e565b6105fe906040810190602001611e64565b60ff160361061f576040516341d50bed60e11b815260040160405180910390fd5b60ff61062e6020830183611e4e565b61063f906060810190604001611e64565b60ff16036106605760405163211089b360e11b815260040160405180910390fd5b6001600160401b036106756020830183611e4e565b610683906020810190611e7f565b6001600160401b0316036106aa5760405163281b33d760e11b815260040160405180910390fd5b6106c86106ba6020830183611e4e565b6106c390611e9a565b61107e565b6106f560006106da6020840184611a7d565b6106e76020850185611e4e565b6106f090611e9a565b6110b6565b506001016105af565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610730929190611f2a565b60405180910390a15050565b61074461162b565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561080457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107e6575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561086657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610848575b505050505081525050905092915050565b61087f61162b565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b0316806108f45782546001600160401b03168452610911565b6001600160401b0381811614610911576001600160401b03811684525b8154600160401b900460ff166109ab578254600160401b900460ff16156109a6578260010180548060200260200160405190810160405280929190818152602001828054801561098a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161096c575b505050505060808501528254600160401b900460ff1660208501525b610a32565b8154600160401b900460ff90811614610a325781600101805480602002602001604051908101604052809291908181526020018280548015610a1657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109f8575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610adb578254600160481b900460ff1615610ad65782600201805480602002602001604051908101604052809291908181526020018280548015610aab57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a8d575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610b71565b8154600160481b900460ff90811614610b715781600201805480602002602001604051908101604052809291908181526020018280548015610b4657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b28575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610b7a8461107e565b50505092915050565b60006102ff8261134f565b610b96611051565b610ba060006113aa565b565b606060011963ffffffff831601610be357610bbd8385610877565b604051602001610bcd9190611a35565b6040516020818303038152906040529050610c04565b604051635d4be0fd60e11b815263ffffffff83166004820152602401610592565b9392505050565b610c16838383610d89565b505050565b6000610c288484846113fa565b949350505050565b610c38611051565b6001600160a01b038116610c6257604051631e4fbdf760e01b815260006004820152602401610592565b610c6b816113aa565b50565b60006001600160e01b031982166325fc096160e21b14806102ff57506301ffc9a760e01b6001600160e01b03198316146102ff565b604080518082018252600181526001600160401b03831660208201529051600290600090610cd49088908890611d78565b604080519182900390912082526020808301939093529081016000908120868252835281812033808352908452908290208451815495909401516001600160401b03166101000268ffffffffffffffff00199415159490941668ffffffffffffffffff19909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab5691610d7b91879087908690889061206c565b60405180910390a150505050565b60518214610daa5760405163c9bf37b760e01b815260040160405180910390fd5b6001610db68484611503565b60ff1614610dd757604051633a9ae7b960e01b815260040160405180910390fd5b8063ffffffff16610de88484611525565b63ffffffff1614610c165760405163216964bf60e11b815260040160405180910390fd5b6000610c04610e1b8484611535565b90565b6000610e2e600d600984866120c6565b610e37916120f0565b60e01c9392505050565b610e4c8383836113fa565b610e695760405163130c463560e21b815260040160405180910390fd5b602083015160ff1615610efe5760005b836020015160ff168160ff161015610efc57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110610ec157610ec1611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610e79565b505b604083015160ff1615610c165760005b836040015160ff168160ff161015610311576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110610f5657610f56611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610f0e565b6000610fa1602d600d84866120c6565b610c0491612120565b6000610fba6009600184866120c6565b610fc39161213e565b60c01c9392505050565b610fd68161134f565b610c6b57604051633c30434160e21b815263ffffffff82166004820152602401610592565b6110068284836110b6565b6110108284610877565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516110449392919061216c565b60405180910390a1505050565b6000546001600160a01b03163314610ba05760405163118cdaa760e01b8152336004820152602401610592565b602081015160ff161580156110985750606081015160ff16155b15610c6b5760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806110d15750602081015160ff16155b156110ff57608081015151156110fa576040516341d50bed60e11b815260040160405180910390fd5b611165565b806020015160ff1681608001515114158061113a57506002611123600160ff6121b2565b61112d91906121cb565b60ff16816020015160ff16115b15611158576040516341d50bed60e11b815260040160405180910390fd5b6111658160800151611545565b604081015160ff90811614806111805750604081015160ff16155b156111d45760a081015151156111a95760405163211089b360e11b815260040160405180910390fd5b606081015160ff16156111cf576040516338682fa960e01b815260040160405180910390fd5b611279565b806040015160ff168160a001515114158061120f575060026111f8600160ff6121b2565b61120291906121cb565b60ff16816040015160ff16115b1561122d5760405163211089b360e11b815260040160405180910390fd5b606081015160ff16158061124e5750806040015160ff16816060015160ff16115b1561126c576040516338682fa960e01b815260040160405180910390fd5b6112798160a00151611545565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361132b93908501920190611673565b5060a08201518051611347916002840191602090910190611673565b505050505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580610c04575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b602083015160009060ff161561147d5760005b846020015160ff168160ff1610156114655761144f85608001518260ff168151811061143b5761143b611d88565b6020026020010151858588600001516115ac565b61145d576000915050610c04565b60010161140d565b50836040015160ff1660000361147d57506001610c04565b606084015160005b856040015160ff168160ff1610156114f7576114c78660a001518260ff16815181106114b3576114b3611d88565b6020026020010151868689600001516115ac565b156114ef57816114d6816121fb565b9250508160ff166000036114ef57600192505050610c04565b600101611485565b50600095945050505050565b600061151260018284866120c6565b61151b91612218565b60f81c9392505050565b6000610e2e6031602d84866120c6565b6000610fa16051603184866120c6565b6000805b8251811015610c1657600083828151811061156657611566611d88565b60200260200101519050826001600160a01b0316816001600160a01b0316116115a25760405163447516e160e01b815260040160405180910390fd5b9150600101611549565b600083815260026020908152604080832085845282528083206001600160a01b0388168452825280832081518083019092525460ff81161580158084526101009092046001600160401b03169383019390935290916116215750826001600160401b031681602001516001600160401b031610155b9695505050505050565b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156116c8579160200282015b828111156116c857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611693565b506116d49291506116d8565b5090565b5b808211156116d457600081556001016116d9565b6000602082840312156116ff57600080fd5b81356001600160e01b031981168114610c0457600080fd5b60008083601f84011261172957600080fd5b5081356001600160401b0381111561174057600080fd5b60208301915083602082850101111561175857600080fd5b9250929050565b80356001600160401b038116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b84356001600160401b038111156117a757600080fd5b6117b387828801611717565b909550935050602085013591506117cc6040860161175f565b905092959194509250565b6000806000604084860312156117ec57600080fd5b83356001600160401b0381111561180257600080fd5b61180e86828701611717565b909790965060209590950135949350505050565b602081016003831061184457634e487b7160e01b600052602160045260246000fd5b91905290565b80356001600160a01b038116811461177657600080fd5b60008083601f84011261187357600080fd5b5081356001600160401b0381111561188a57600080fd5b6020830191508360208260051b850101111561175857600080fd5b6000806000604084860312156118ba57600080fd5b6118c38461184a565b925060208401356001600160401b038111156118de57600080fd5b6118ea86828701611861565b9497909650939450505050565b6000806020838503121561190a57600080fd5b82356001600160401b0381111561192057600080fd5b61192c85828601611861565b90969095509350505050565b803563ffffffff8116811461177657600080fd5b6000806040838503121561195f57600080fd5b6119688361184a565b915061197660208401611938565b90509250929050565b60008151808452602080850194506020840160005b838110156119b95781516001600160a01b031687529582019590820190600101611994565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c06080850152611a1360c085018261197f565b905060a083015184820360a0860152611a2c828261197f565b95945050505050565b602081526000610c0460208301846119c4565b600080600060608486031215611a5d57600080fd5b8335925060208401359150611a746040850161184a565b90509250925092565b600060208284031215611a8f57600080fd5b610c0482611938565b600080600060608486031215611aad57600080fd5b611ab684611938565b9250611ac46020850161184a565b9150611a7460408501611938565b60006020808352835180602085015260005b81811015611b0057858101830151858201604001528201611ae4565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060408486031215611b3657600080fd5b83356001600160401b03811115611b4c57600080fd5b611b5886828701611717565b9094509250611a74905060208501611938565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611ba357611ba3611b6b565b60405290565b803560ff8116811461177657600080fd5b600082601f830112611bcb57600080fd5b813560206001600160401b0380831115611be757611be7611b6b565b8260051b604051601f19603f83011681018181108482111715611c0c57611c0c611b6b565b6040529384526020818701810194908101925087851115611c2c57600080fd5b6020870191505b84821015611c5357611c448261184a565b83529183019190830190611c33565b979650505050505050565b600060c08284031215611c7057600080fd5b611c78611b81565b9050611c838261175f565b8152611c9160208301611ba9565b6020820152611ca260408301611ba9565b6040820152611cb360608301611ba9565b606082015260808201356001600160401b0380821115611cd257600080fd5b611cde85838601611bba565b608084015260a0840135915080821115611cf757600080fd5b50611d0484828501611bba565b60a08301525092915050565b600080600060608486031215611d2557600080fd5b83356001600160401b03811115611d3b57600080fd5b611d4786828701611c5e565b9660208601359650604090950135949350505050565b600060208284031215611d6f57600080fd5b610c048261184a565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112611db457600080fd5b9190910192915050565b6000808335601e19843603018112611dd557600080fd5b8301803591506001600160401b03821115611def57600080fd5b60200191503681900382131561175857600080fd5b600060208284031215611e1657600080fd5b81356001600160401b03811115611e2c57600080fd5b610c2884828501611c5e565b60008235603e19833603018112611db457600080fd5b6000823560be19833603018112611db457600080fd5b600060208284031215611e7657600080fd5b610c0482611ba9565b600060208284031215611e9157600080fd5b610c048261175f565b60006102ff3683611c5e565b6000808335601e19843603018112611ebd57600080fd5b83016020810192503590506001600160401b03811115611edc57600080fd5b8060051b360382131561175857600080fd5b8183526000602080850194508260005b858110156119b9576001600160a01b03611f178361184a565b1687529582019590820190600101611efe565b60208082528181018390526000906040808401600586901b8501820187855b8881101561205e57603f19808985030185528235603e198c3603018112611f6f57600080fd5b8b0163ffffffff611f7f82611938565b1685528781013560be19823603018112611f9857600080fd5b858901889052016001600160401b03611fb08261175f565b1687860152611fc0888201611ba9565b606060ff80831682890152611fd68a8501611ba9565b92506080818416818a0152611fec838601611ba9565b935060a09250818416838a015261200581860186611ea6565b60c08b81015294509150612020905061010089018483611eee565b92505061202f81840184611ea6565b93509050838783030160e0880152612048828483611eee565b978a019796505050928701925050600101611f49565b509098975050505050505050565b6001600160a01b03861681526080602082018190528101849052838560a0830137600060a08583010152600060a0601f19601f87011683010190506001600160401b03841660408301528260608301529695505050505050565b600080858511156120d657600080fd5b838611156120e357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156121185780818660040360031b1b83161692505b505092915050565b803560208310156102ff57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156121185760089490940360031b84901b1690921692915050565b6001600160a01b038416815263ffffffff83166020820152606060408201819052600090611a2c908301846119c4565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ff576102ff61219c565b600060ff8316806121ec57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b600060ff82168061220e5761220e61219c565b6000190192915050565b6001600160f81b031981358181169160018510156121185760019490940360031b84901b169092169291505056fea26469706673582212209a9d42e4d24ba1f5577ac32292c65d2ac9fe71fc72829f0ae54477497a89995e64736f6c6343000816003360806040523480156200001157600080fd5b5060405162002c7038038062002c7083398101604081905262000034916200046f565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b038581169190911790915584908490612ee090859085908216156200008f576200008d60008362000226565b505b60005b8551811015620000f457620000ea7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000d657620000d662000523565b60200260200101516200022660201b60201c565b5060010162000092565b5060005b815181101562000146576200013c7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000d657620000d662000523565b50600101620000f8565b505060016004908155600680546001600160a01b0319166001600160a01b038d169081179091556040805163416ecebf60e01b8152905191965063416ecebf95508083019450602093509091908290030181865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d3919062000539565b6006805463ffffffff92909216600160a01b0263ffffffff60a01b199092169190911790555050600780546001600160a01b039094166001600160a01b03199094169390931790925550620005a5915050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156200027957506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b15620002c65760018054601590620002a190600160a81b90046001600160401b031662000568565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b620002d28383620002de565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1662000383576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556200033a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620002d8565b506000620002d8565b80516001600160a01b0381168114620003a457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003d157600080fd5b815160206001600160401b0380831115620003f057620003f0620003a9565b8260051b604051601f19603f83011681018181108482111715620004185762000418620003a9565b60405293845260208187018101949081019250878511156200043957600080fd5b6020870191505b84821015620004645762000454826200038c565b8352918301919083019062000440565b979650505050505050565b60008060008060008060c087890312156200048957600080fd5b62000494876200038c565b9550620004a4602088016200038c565b60408801519095506001600160401b0380821115620004c257600080fd5b620004d08a838b01620003bf565b9550620004e060608a016200038c565b9450620004f060808a016200038c565b935060a08901519150808211156200050757600080fd5b506200051689828a01620003bf565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156200054c57600080fd5b815163ffffffff811681146200056157600080fd5b9392505050565b60006001600160401b038281166002600160401b031981016200059b57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6126bb80620005b56000396000f3fe6080604052600436106101e25760003560e01c8063709eb66411610102578063a217fddf11610095578063c7b2370b11610064578063c7b2370b14610649578063cd88b90314610669578063d2ae210414610689578063d547741f146106c857600080fd5b8063a217fddf146105cf578063c2803b2c146105e4578063c358de0a14610604578063c416aa511461062457600080fd5b8063741bef1a116100d1578063741bef1a146104cd5780638624ba07146104ed57806391d14854146105005780639e9449651461052057600080fd5b8063709eb66414610434578063717e8a4214610454578063724e78da14610474578063726075371461049457600080fd5b80632f2ff15d1161017a5780633d85ac33116101495780633d85ac33146103b1578063475b6d9e146103d15780635c975abb146103e45780635e280f11146103fc57600080fd5b80632f2ff15d1461033e5780633146646a1461035e57806336568abe1461037e5780633927c0751461039e57600080fd5b806316c38b3c116101b657806316c38b3c14610293578063248a9ca3146102b357806326e67a37146102f15780632de113761461031e57600080fd5b8062bf2e80146101e757806301e336671461022157806301ffc9a7146102435780631095b6d714610273575b600080fd5b3480156101f357600080fd5b5060015461020990600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561022d57600080fd5b5061024161023c366004611a9c565b6106e8565b005b34801561024f57600080fd5b5061026361025e366004611ad8565b610711565b6040519015158152602001610218565b34801561027f57600080fd5b5061024161028e366004611a9c565b610748565b34801561029f57600080fd5b506102416102ae366004611b10565b61085b565b3480156102bf57600080fd5b506102e36102ce366004611b2d565b60009081526020819052604090206001015490565b604051908152602001610218565b3480156102fd57600080fd5b5061031161030c366004611b5a565b610880565b6040516102189190611b75565b34801561032a57600080fd5b50610263610339366004611bbc565b610907565b34801561034a57600080fd5b50610241610359366004611bd7565b61099e565b34801561036a57600080fd5b50610241610379366004611c4b565b6109c3565b34801561038a57600080fd5b50610241610399366004611bd7565b610a53565b6102416103ac366004611cf2565b610a6c565b3480156103bd57600080fd5b506102416103cc366004611e33565b610b27565b6102416103df366004611f4e565b610c9e565b3480156103f057600080fd5b5060015460ff16610263565b34801561040857600080fd5b5060065461041c906001600160a01b031681565b6040516001600160a01b039091168152602001610218565b34801561044057600080fd5b506102e361044f366004611fcc565b610ce0565b34801561046057600080fd5b506102e361046f366004611fcc565b610de7565b34801561048057600080fd5b5061024161048f366004611bbc565b610f13565b3480156104a057600080fd5b506006546104b890600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610218565b3480156104d957600080fd5b5060025461041c906001600160a01b031681565b6102416104fb36600461203a565b610f79565b34801561050c57600080fd5b5061026361051b366004611bd7565b611084565b34801561052c57600080fd5b5061058c61053b366004611b5a565b600560205260009081526040902080546001909101546001600160401b038083169261ffff600160401b820416926001600160801b03600160501b90920482169291811691600160801b9091041685565b604080516001600160401b03968716815261ffff90951660208601526001600160801b03938416908501529116606083015291909116608082015260a001610218565b3480156105db57600080fd5b506102e3600081565b3480156105f057600080fd5b5060075461041c906001600160a01b031681565b34801561061057600080fd5b5061024161061f3660046120b2565b6110ad565b34801561063057600080fd5b5060015461041c9061010090046001600160a01b031681565b34801561065557600080fd5b50610241610664366004611bbc565b611115565b34801561067557600080fd5b506102416106843660046120cd565b611183565b34801561069557600080fd5b506001546106b090600160a81b90046001600160401b031681565b6040516001600160401b039091168152602001610218565b3480156106d457600080fd5b506102416106e3366004611bd7565b6111bb565b600080516020612666833981519152610700816111e0565b61070b8484846111ed565b50505050565b60006001600160e01b03198216637965db0b60e01b148061074257506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020612666833981519152610760816111e0565b61078a7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de85611084565b6107a757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610866816111e0565b811561087857610874611215565b5050565b610874611269565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156108fb57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108cc5790505b50505050509050919050565b60006109337f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611084565b1561094057506000919050565b600154600160a81b90046001600160401b0316158061098457506109847f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83611084565b1561099157506001919050565b506000919050565b919050565b6000828152602081905260409020600101546109b9816111e0565b61070b83836112a2565b6000805160206126668339815191526109db816111e0565b6109e3611338565b600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610a179087908790879060040161217b565b600060405180830381600087803b158015610a3157600080fd5b505af1158015610a45573d6000803e3d6000fd5b5050505061070b6001600455565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020612666833981519152610a84816111e0565b610a8c611338565b610aac88610a9a8686611362565b610aa48787611385565b8a8a8a61139e565b50600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610ae19087908790879060040161217b565b600060405180830381600087803b158015610afb57600080fd5b505af1158015610b0f573d6000803e3d6000fd5b50505050610b1d6001600455565b5050505050505050565b600080516020612666833981519152610b3f816111e0565b60005b8251811015610c62576000838281518110610b5f57610b5f61219f565b6020908102919091018101516040805160a08082018352838501516001600160401b03908116835260608086015161ffff9081168589019081526080808901516001600160801b03908116888a01908152968a01518116948801948552888a01518616918801918252985163ffffffff1660009081526005909a529690982094518554985194518816600160501b026fffffffffffffffffffffffffffffffff60501b1995909216600160401b0269ffffffffffffffffffff1990991690841617979097179290921695909517825551600191820180549351909516600160801b026001600160c01b031990931693169290921717909155919091019050610b42565b507fb99f6de5e22c60c178b03bfacf2daeb4b6089f5b37e0fe2c48a5d5141191fc5382604051610c9291906121b5565b60405180910390a15050565b600080516020612666833981519152610cb6816111e0565b610cbe611338565b610ccc87878787878761139e565b50610cd76001600455565b50505050505050565b600084610cec81610907565b610d0957604051634ab5ebcd60e01b815260040160405180910390fd5b610d11611505565b6040805160a0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290528a831684860152606084018a905260015461ffff600160e81b8204166080860152600092835260059091529084902093516321a7700b60e11b815292936101009091049091169163434ee01691610d9a918591908a908a90600401612252565b602060405180830381865afa158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb9190612306565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de610e13816111e0565b85610e1d81610907565b610e3a57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160a0810182526002546001600160a01b03908116825263ffffffff8b1660208084018290528b831684860152606084018b905260015461ffff600160e81b820416608086015260009283526005909152908490209351632b377bb160e11b815292936101009091049091169163566ef76291610ec3918591908b908b90600401612252565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f069190612306565b9998505050505050505050565b600080516020612666833981519152610f2b816111e0565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d90602001610c92565b600080516020612666833981519152610f91816111e0565b610f99611338565b600654600090610fc7906020850190600160a01b900463ffffffff16610fbf8287611bbc565b89898961139e565b90506000610fd58234612335565b6006549091506001600160a01b0316630c0c389e60e08601358360208801610ffd818a611bbc565b60808a013561100f60a08c018c612348565b61101c60c08e018e612348565b6040518a63ffffffff1660e01b815260040161103e97969594939291906123c7565b6000604051808303818589803b15801561105757600080fd5b5088f115801561106b573d6000803e3d6000fd5b505050505050505061107d6001600455565b5050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206126668339815191526110c5816111e0565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610c92565b60008051602061266683398151915261112d816111e0565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610c92565b60008051602061266683398151915261119b816111e0565b63ffffffff8416600090815260036020526040902061107d9084846119c7565b6000828152602081905260409020600101546111d6816111e0565b61070b838361152b565b6111ea81336115b5565b50565b6001600160a01b03831661120a5761120582826115f3565b505050565b6112058383836116a0565b61121d611505565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b6112716116db565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361124c565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156112da57506112d88383611084565b155b1561132457600180546015906112ff90600160a81b90046001600160401b031661241d565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836116fe565b5060019392505050565b60026004540361135b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600455565b60006113726031602d8486612443565b61137b9161246d565b60e01c9392505050565b60006113976113948484611790565b90565b9392505050565b600080836001600160401b038111156113b9576113b9611d85565b6040519080825280602002602001820160405280156113e2578160200160208202803683370190505b50905060005b848110156114b85760008686838181106114045761140461219f565b90506040020180360381019061141a919061249d565b9050600081600001516001600160a01b031682602001518790604051600060405180830381858888f193505050503d8060008114611474576040519150601f19603f3d011682016040523d82523d6000602084013e611479565b606091505b50509050808484815181106114905761149061219f565b9115156020928302919091018201528201516114ac90866124f3565b945050506001016113e8565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c34688888888888866040516114f296959493929190612544565b60405180910390a1509695505050505050565b60015460ff16156115295760405163d93c066560e01b815260040160405180910390fd5b565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8314801561156157506115618383611084565b156115ab576001805460159061158690600160a81b90046001600160401b03166125d8565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836117a9565b6115bf8282611084565b6108745760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044015b60405180910390fd5b6001600160a01b03821661161a576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611667576040519150601f19603f3d011682016040523d82523d6000602084013e61166c565b606091505b505090508061120557604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016115ea565b6001600160a01b0382166116c7576040516306b7a93160e41b815260040160405180910390fd5b6112056001600160a01b0384168383611814565b60015460ff1661152957604051638dfc202b60e01b815260040160405180910390fd5b600061170a8383611084565b611788576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117403390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610742565b506000610742565b60006117a0605160318486612443565b611397916125fb565b60006117b58383611084565b15611788576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610742565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b17905261120591859190600090611872908416836118c0565b905080516000141580156118975750808060200190518101906118959190612619565b155b1561120557604051635274afe760e01b81526001600160a01b03841660048201526024016115ea565b60606113978383600084600080856001600160a01b031684866040516118e69190612636565b60006040518083038185875af1925050503d8060008114611923576040519150601f19603f3d011682016040523d82523d6000602084013e611928565b606091505b5091509150611938868383611942565b9695505050505050565b606082611957576119528261199e565b611397565b815115801561196e57506001600160a01b0384163b155b1561199757604051639996b31560e01b81526001600160a01b03851660048201526024016115ea565b5080611397565b8051156119ae5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f01602090048101928215611a605791602002820160005b83821115611a3157833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026119f0565b8015611a5e5782816101000a81549060ff0219169055600101602081600001049283019260010302611a31565b505b50611a6c929150611a70565b5090565b5b80821115611a6c5760008155600101611a71565b80356001600160a01b038116811461099957600080fd5b600080600060608486031215611ab157600080fd5b611aba84611a85565b9250611ac860208501611a85565b9150604084013590509250925092565b600060208284031215611aea57600080fd5b81356001600160e01b03198116811461139757600080fd5b80151581146111ea57600080fd5b600060208284031215611b2257600080fd5b813561139781611b02565b600060208284031215611b3f57600080fd5b5035919050565b803563ffffffff8116811461099957600080fd5b600060208284031215611b6c57600080fd5b61139782611b46565b6020808252825182820181905260009190848201906040850190845b81811015611bb057835160ff1683529284019291840191600101611b91565b50909695505050505050565b600060208284031215611bce57600080fd5b61139782611a85565b60008060408385031215611bea57600080fd5b82359150611bfa60208401611a85565b90509250929050565b60008083601f840112611c1557600080fd5b5081356001600160401b03811115611c2c57600080fd5b602083019150836020828501011115611c4457600080fd5b9250929050565b600080600060408486031215611c6057600080fd5b83356001600160401b03811115611c7657600080fd5b611c8286828701611c03565b909790965060209590950135949350505050565b600060608284031215611ca857600080fd5b50919050565b60008083601f840112611cc057600080fd5b5081356001600160401b03811115611cd757600080fd5b6020830191508360208260061b8501011115611c4457600080fd5b600080600080600080600060e0888a031215611d0d57600080fd5b611d178989611c96565b965060608801356001600160401b0380821115611d3357600080fd5b611d3f8b838c01611cae565b909850965060808a0135955060a08a0135915080821115611d5f57600080fd5b50611d6c8a828b01611c03565b989b979a5095989497959660c090950135949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611dbd57611dbd611d85565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611deb57611deb611d85565b604052919050565b80356001600160401b038116811461099957600080fd5b803561ffff8116811461099957600080fd5b80356001600160801b038116811461099957600080fd5b60006020808385031215611e4657600080fd5b82356001600160401b0380821115611e5d57600080fd5b818501915085601f830112611e7157600080fd5b813581811115611e8357611e83611d85565b611e91848260051b01611dc3565b818152848101925060c0918202840185019188831115611eb057600080fd5b938501935b82851015611f425780858a031215611ecd5760008081fd5b611ed5611d9b565b611ede86611b46565b8152611eeb878701611df3565b878201526040611efc818801611df3565b908201526060611f0d878201611e0a565b908201526080611f1e878201611e1c565b9082015260a0611f2f878201611e1c565b9082015284529384019392850192611eb5565b50979650505050505050565b60008060008060008060e08789031215611f6757600080fd5b611f718888611c96565b9550611f7f60608801611b46565b9450611f8d60808801611a85565b935060a08701356001600160401b03811115611fa857600080fd5b611fb489828a01611cae565b979a969950949794969560c090950135949350505050565b600080600080600060808688031215611fe457600080fd5b611fed86611b46565b9450611ffb60208701611a85565b93506040860135925060608601356001600160401b0381111561201d57600080fd5b61202988828901611c03565b969995985093965092949392505050565b6000806000806060858703121561205057600080fd5b84356001600160401b038082111561206757600080fd5b61207388838901611cae565b909650945060208701359350604087013591508082111561209357600080fd5b50850161010081880312156120a757600080fd5b939692955090935050565b6000602082840312156120c457600080fd5b61139782611e0a565b6000806000604084860312156120e257600080fd5b6120eb84611b46565b925060208401356001600160401b038082111561210757600080fd5b818601915086601f83011261211b57600080fd5b81358181111561212a57600080fd5b8760208260051b850101111561213f57600080fd5b6020830194508093505050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061218f604083018587612152565b9050826020830152949350505050565b634e487b7160e01b600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015612245578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016121d2565b5091979650505050505050565b84516001600160a01b03908116825260208087015163ffffffff1690830152604080870151909116818301526060808701519083015260808087015161ffff9081168285015286546001600160401b0380821660a08701529381901c90911660c085015260501c6001600160801b0390811660e08501526001870154908116610100850152901c1661012082015261016061014082018190526000906122fb8382018587612152565b979650505050505050565b60006020828403121561231857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107425761074261231f565b6000808335601e1984360301811261235f57600080fd5b8301803591506001600160401b0382111561237957600080fd5b602001915036819003821315611c4457600080fd5b63ffffffff61239c82611b46565b168252602081013560208301526001600160401b036123bd60408301611df3565b1660408301525050565b6123d1818961238e565b60018060a01b038716606082015285608082015260e060a082015260006123fc60e083018688612152565b82810360c084015261240f818587612152565b9a9950505050505050505050565b60006001600160401b038083168181036124395761243961231f565b6001019392505050565b6000808585111561245357600080fd5b8386111561246057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156124955780818660040360031b1b83161692505b505092915050565b6000604082840312156124af57600080fd5b604051604081018181106001600160401b03821117156124d1576124d1611d85565b6040526124dd83611a85565b8152602083013560208201528091505092915050565b808201808211156107425761074261231f565b60008151808452602080850194506020840160005b8381101561253957815115158752958201959082019060010161251b565b509495945050505050565b600060e08201612554838a61238e565b63ffffffff881660608401526001600160a01b03878116608085015260e060a0850152908590528590610100840160005b878110156125b6578261259785611a85565b1682526020848101359083015260409384019390910190600101612585565b5084810360c08601526125c98187612506565b9b9a5050505050505050505050565b60006001600160401b038216806125f1576125f161231f565b6000190192915050565b8035602083101561074257600019602084900360031b1b1692915050565b60006020828403121561262b57600080fd5b815161139781611b02565b6000825160005b81811015612657576020818601810151858301520161263d565b50600092019182525091905056fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220cab19ebaa8e6602c84c9f9f739a45b5571c5513ee60da41f638da9127243412364736f6c6343000816003360a060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610052565b50670de0b6b3a76400006080526100a2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60805161119a6100bd60003960006107cb015261119a6000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063434ee01614610087578063566ef762146100ba578063715018a6146100da5780638da5cb5b146100ef578063f2fde38b1461011757600080fd5b3661006057005b600080fd5b34801561007157600080fd5b50610085610080366004610dc9565b610137565b005b34801561009357600080fd5b506100a76100a2366004610e1d565b61014f565b6040519081526020015b60405180910390f35b3480156100c657600080fd5b506100a76100d5366004610e1d565b610328565b3480156100e657600080fd5b506100856103fb565b3480156100fb57600080fd5b506000546040516001600160a01b0390911681526020016100b1565b34801561012357600080fd5b50610085610132366004610eaf565b61040f565b61013f61044d565b61014a83838361047a565b505050565b600061015e6020850185610eca565b67ffffffffffffffff166000036101a65761017f6040860160208701610ef4565b60405163c3baa0b760e01b815263ffffffff90911660048201526024015b60405180910390fd5b6000806101f96101c56101bf60408a0160208b01610ef4565b50600090565b6101d26020890189610eca565b6101e260a08a0160808b01610eca565b6101f260808b0160608c01610f2f565b898961049d565b9092509050600080808061021060208c018c610eaf565b6001600160a01b03166388a4124c61022e60408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa158015610281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a59190610f4c565b929650909450925090506102ef846102c360408d0160208e01610fa1565b8d60800160208101906102d69190610fa1565b8d60400160208101906102e99190610f2f565b8561075b565b965061030f8684848e608001602081019061030a9190610fa1565b610832565b6103199088610fdb565b9b9a5050505050505050505050565b60006103376020850185610eca565b67ffffffffffffffff166000036103585761017f6040860160208701610ef4565b6000806103716101c56101bf60408a0160208b01610ef4565b9092509050600080808061038860208c018c610eaf565b6001600160a01b031663c1723a1d6103a660408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af1158015610281573d6000803e3d6000fd5b61040361044d565b61040d600061088a565b565b61041761044d565b6001600160a01b03811661044157604051631e4fbdf760e01b81526000600482015260240161019d565b61044a8161088a565b50565b6000546001600160a01b0316331461040d5760405163118cdaa760e01b815233600482015260240161019d565b6001600160a01b0383166104925761014a82826108da565b61014a838383610987565b6000808281036104bf5760405162575ea160e01b815260040160405180910390fd5b5067ffffffffffffffff861660008089815b868410156106a15760003681806104e98c8c8a6109c2565b9a509195509350915087905060001960ff85160161057c5760008061050e8585610a18565b9150915087801561052857506000816001600160801b0316115b1561054b5760405163052e551560e01b815260ff8716600482015260240161019d565b61055e6001600160801b0382168d610fdb565b9b506105736001600160801b03831688610fdb565b96505050610698565b60011960ff8516016105b25760006105948484610a7d565b5090506105aa6001600160801b0382168c610fdb565b9a5050610698565b60021960ff8516016106655785156105e25760405163052e551560e01b815260ff8516600482015260240161019d565b6000806105ef8585610abb565b9250925050816001600160801b031660000361061e5760405163a169d0e160e01b815260040160405180910390fd5b6106316001600160801b0382168d610fdb565b9b508f67ffffffffffffffff16826106499190610fee565b61065c906001600160801b03168c610fdb565b9a505050610698565b60031960ff85160161067a5760019650610698565b60405163052e551560e01b815260ff8516600482015260240161019d565b505050506104d1565b8387146106c457604051634c83bb7560e11b81526004810185905260240161019d565b886001600160801b03168611156106ff576040516242670160e11b8152600481018790526001600160801b038a16602482015260440161019d565b8060000361072057604051630e5eb8f360e41b815260040160405180910390fd5b61072a8186610fdb565b9450821561074c57606461073f866066611015565b610749919061102c565b94505b50505050965096945050505050565b60008061ffff86161561076e5785610770565b845b9050600061271061078561ffff84168a611015565b61078f919061102c565b90506001600160801b03841615806107ae57506001600160801b038516155b156107bc5791506108299050565b600088856001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000886001600160801b03166107fe9190611015565b610808919061102c565b6108129190610fdb565b90508181116108215781610823565b805b93505050505b95945050505050565b60008415610882576127108261ffff16846001600160801b0316866001600160801b0316886108619190611015565b61086b919061102c565b6108759190611015565b61087f919061102c565b90505b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216610901576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461094e576040519150601f19603f3d011682016040523d82523d6000602084013e610953565b606091505b505090508061014a57604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161019d565b6001600160a01b0382166109ae576040516306b7a93160e41b815260040160405180910390fd5b61014a6001600160a01b0384168383610b2f565b6000368160018401816109d6888884610b81565b6002929092019190506109ea888884610baa565b94506001820161ffff82168301610a0381838b8d61104e565b979b909a50969850505061ffff160193505050565b60008060108314801590610a2d575060208314155b15610a4b57604051634796aee160e01b815260040160405180910390fd5b610a5784846000610bcf565b915060208314610a68576000610a74565b610a7484846010610bcf565b90509250929050565b60008060308314610aa1576040516361d0c2c760e11b815260040160405180910390fd5b610aad84846000610bcf565b9150610a7484846010610bf6565b6000808060128414801590610ad1575060228414155b15610aef57604051638b4aa70b60e01b815260040160405180910390fd5b610afb85856000610b81565b9250610b0985856002610bcf565b915060228414610b1a576000610b26565b610b2685856012610bcf565b90509250925092565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261014a908490610c11565b600060028201610b938184868861104e565b610b9c91611078565b60f01c9150505b9392505050565b6000838383818110610bbe57610bbe6110a8565b919091013560f81c95945050505050565b600060108201610be18184868861104e565b610bea916110be565b60801c95945050505050565b600060208201610c088184868861104e565b610829916110f5565b6000610c266001600160a01b03841683610c74565b90508051600014158015610c4b575080806020019051810190610c499190611113565b155b1561014a57604051635274afe760e01b81526001600160a01b038416600482015260240161019d565b6060610c8283836000610c8b565b90505b92915050565b606081471015610cb05760405163cd78605960e01b815230600482015260240161019d565b600080856001600160a01b03168486604051610ccc9190611135565b60006040518083038185875af1925050503d8060008114610d09576040519150601f19603f3d011682016040523d82523d6000602084013e610d0e565b606091505b5091509150610d1e868383610d28565b9695505050505050565b606082610d3d57610d3882610d84565b610ba3565b8151158015610d5457506001600160a01b0384163b155b15610d7d57604051639996b31560e01b81526001600160a01b038516600482015260240161019d565b5080610ba3565b805115610d945780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610dc457600080fd5b919050565b600080600060608486031215610dde57600080fd5b610de784610dad565b9250610df560208501610dad565b9150604084013590509250925092565b600060a08284031215610e1757600080fd5b50919050565b6000806000806101608587031215610e3457600080fd5b610e3e8686610e05565b9350610e4d8660a08701610e05565b925061014085013567ffffffffffffffff80821115610e6b57600080fd5b818701915087601f830112610e7f57600080fd5b813581811115610e8e57600080fd5b886020828501011115610ea057600080fd5b95989497505060200194505050565b600060208284031215610ec157600080fd5b610c8282610dad565b600060208284031215610edc57600080fd5b813567ffffffffffffffff81168114610ba357600080fd5b600060208284031215610f0657600080fd5b813563ffffffff81168114610ba357600080fd5b6001600160801b038116811461044a57600080fd5b600060208284031215610f4157600080fd5b8135610ba381610f1a565b60008060008060808587031215610f6257600080fd5b845193506020850151610f7481610f1a565b6040860151909350610f8581610f1a565b6060860151909250610f9681610f1a565b939692955090935050565b600060208284031215610fb357600080fd5b813561ffff81168114610ba357600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610c8557610c85610fc5565b6001600160801b0381811683821601908082111561100e5761100e610fc5565b5092915050565b8082028115828204841417610c8557610c85610fc5565b60008261104957634e487b7160e01b600052601260045260246000fd5b500490565b6000808585111561105e57600080fd5b8386111561106b57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156110a05780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b6fffffffffffffffffffffffffffffffff1981358181169160108510156110a05760109490940360031b84901b1690921692915050565b80356020831015610c8557600019602084900360031b1b1692915050565b60006020828403121561112557600080fd5b81518015158114610ba357600080fd5b6000825160005b81811015611156576020818601810151858301520161113c565b50600092019182525091905056fea26469706673582212203780ea40a0f93eab5083efacc1d316a7c83f03997bd6b3821d356fbf88b94a5164736f6c6343000816003360a06040523480156200001157600080fd5b50604051620038e7380380620038e78339810160408190526200003491620004de565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b03861617905582828686612ee060008660005b8551811015620000d657620000cc7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000b857620000b8620005b1565b60200260200101516200027d60201b60201c565b5060010162000074565b5060005b815181101562000128576200011e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000b857620000b8620005b1565b50600101620000da565b505050505050806001600160401b03166000036200015957604051635f86e17760e01b815260040160405180910390fd5b806001600160401b0316825110156200019f5781516040516378e2c15760e11b81526001600160401b039182166004820152908216602482015260440160405180910390fd5b6000805b835181101562000231576000848281518110620001c457620001c4620005b1565b60200260200101519050826001600160a01b0316816001600160a01b03161162000201576040516305fa937f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600460205260409020805460ff1916600190811790915590925001620001a3565b50509051600580546001600160401b0393841668010000000000000000026001600160801b0319909116939092169290921717905550505063ffffffff90921660805250620006049050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83148015620002d057506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b156200031d5760018054601590620002f890600160a81b90046001600160401b0316620005c7565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b62000329838362000335565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16620003da576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620003913390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200032f565b5060006200032f565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200041157600080fd5b919050565b600082601f8301126200042857600080fd5b815160206001600160401b0380831115620004475762000447620003e3565b8260051b604051601f19603f830116810181811084821117156200046f576200046f620003e3565b60405293845260208187018101949081019250878511156200049057600080fd5b6020870191505b84821015620004bb57620004ab82620003f9565b8352918301919083019062000497565b979650505050505050565b80516001600160401b03811681146200041157600080fd5b60008060008060008060c08789031215620004f857600080fd5b865163ffffffff811681146200050d57600080fd5b60208801519096506001600160401b03808211156200052b57600080fd5b620005398a838b0162000416565b96506200054960408a01620003f9565b955060608901519150808211156200056057600080fd5b6200056e8a838b0162000416565b94506200057e60808a01620004c6565b935060a08901519150808211156200059557600080fd5b50620005a489828a0162000416565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b03198101620005fa57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6080516132b96200062e6000396000818161074c015281816112280152611b1001526132b96000f3fe60806040526004361061022f5760003560e01c80638585c9451161012e578063c7a823e0116100ab578063d547741f1161006f578063d547741f146107aa578063dafe0ccc146107ca578063f010cb23146107ea578063f3b4ebd01461080a578063fd62e7501461082a57600080fd5b8063c7a823e0146106cc578063c7b2370b146106fa578063cd88b9031461071a578063cf34c7681461073a578063d2ae21041461078357600080fd5b8063aef18bf7116100f2578063aef18bf714610617578063b143044b14610647578063c358de0a14610667578063c416aa5114610687578063c5e193cd146106ac57600080fd5b80638585c9451461052a57806391d148541461054a57806395d376d71461056a5780639e9449651461057d578063a217fddf1461060257600080fd5b80632f2ff15d116101bc5780635553fb8e116101805780635553fb8e1461046a5780635c975abb1461048a578063724e78da146104a2578063736c0d5b146104c2578063741bef1a146104f257600080fd5b80632f2ff15d146103ca57806330bb3aac146103ea57806331cb61051461040a57806336568abe1461042a57806352d3b8711461044a57600080fd5b806316c38b3c1161020357806316c38b3c146102e05780631703a01814610300578063248a9ca31461033f57806326e67a371461037d5780632de11376146103aa57600080fd5b8062bf2e801461023457806301e336671461026e57806301ffc9a7146102905780631095b6d7146102c0575b600080fd5b34801561024057600080fd5b5060015461025690600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561027a57600080fd5b5061028e610289366004612695565b61084a565b005b34801561029c57600080fd5b506102b06102ab3660046126d6565b610873565b6040519015158152602001610265565b3480156102cc57600080fd5b5061028e6102db366004612695565b6108aa565b3480156102ec57600080fd5b5061028e6102fb36600461270e565b6109ac565b34801561030c57600080fd5b5060055461032790600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610265565b34801561034b57600080fd5b5061036f61035a36600461272b565b60009081526020819052604090206001015490565b604051908152602001610265565b34801561038957600080fd5b5061039d610398366004612758565b6109d1565b6040516102659190612773565b3480156103b657600080fd5b506102b06103c53660046127ba565b610a58565b3480156103d657600080fd5b5061028e6103e53660046127d7565b610add565b3480156103f657600080fd5b5061036f610405366004612866565b610bb2565b34801561041657600080fd5b5061028e6104253660046128dd565b610cca565b34801561043657600080fd5b5061028e6104453660046127d7565b610cf4565b34801561045657600080fd5b5061028e61046536600461290b565b610d0d565b34801561047657600080fd5b5061036f610485366004612991565b610e86565b34801561049657600080fd5b5060015460ff166102b0565b3480156104ae57600080fd5b5061028e6104bd3660046127ba565b610f9e565b3480156104ce57600080fd5b506102b06104dd3660046127ba565b60046020526000908152604090205460ff1681565b3480156104fe57600080fd5b50600254610512906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b34801561053657600080fd5b5061028e6105453660046129e7565b61100c565b34801561055657600080fd5b506102b06105653660046127d7565b611038565b61036f610578366004612a1a565b611061565b34801561058957600080fd5b506105d1610598366004612758565b6006602052600090815260409020546001600160401b03811690600160401b810461ffff1690600160501b90046001600160801b031683565b604080516001600160401b03909416845261ffff90921660208401526001600160801b031690820152606001610265565b34801561060e57600080fd5b5061036f600081565b34801561062357600080fd5b506102b061063236600461272b565b60076020526000908152604090205460ff1681565b34801561065357600080fd5b5061028e610662366004612ac6565b6111d7565b34801561067357600080fd5b5061028e610682366004612b07565b61148c565b34801561069357600080fd5b506001546105129061010090046001600160a01b031681565b3480156106b857600080fd5b5061036f6106c7366004612991565b6114f4565b3480156106d857600080fd5b506106ec6106e7366004612b22565b611661565b604051610265929190612b76565b34801561070657600080fd5b5061028e6107153660046127ba565b61183f565b34801561072657600080fd5b5061028e610735366004612baa565b6118ad565b34801561074657600080fd5b5061076e7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610265565b34801561078f57600080fd5b5060015461032790600160a81b90046001600160401b031681565b3480156107b657600080fd5b5061028e6107c53660046127d7565b6118ec565b3480156107d657600080fd5b5061028e6107e5366004612695565b6119a0565b3480156107f657600080fd5b5061036f610805366004612bef565b611a55565b34801561081657600080fd5b5061028e610825366004612c59565b611a91565b34801561083657600080fd5b50600554610327906001600160401b031681565b60008051602061324483398151915261086281611c3f565b61086d848484611c49565b50505050565b60006001600160e01b03198216637965db0b60e01b14806108a457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000805160206132448339815191526108c281611c3f565b6108da60008051602061322483398151915285611038565b6108f757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561094157600080fd5b505af1158015610955573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b60006109b781611c3f565b81156109c9576109c5611c71565b5050565b6109c5611cc5565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610a4c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610a1d5790505b50505050509050919050565b6000610a847f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611038565b15610a9157506000919050565b600154600160a81b90046001600160401b03161580610ac35750610ac360008051602061326483398151915283611038565b15610ad057506001919050565b506000919050565b919050565b81600080516020613264833981519152811480610b1957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610b31575060008051602061322483398151915281145b15610b5b57303314610b5657604051637d5d391d60e11b815260040160405180910390fd5b610ba8565b6000805160206132448339815191528103610b8757610b56600080516020613244833981519152611c3f565b604051634a7ee1b960e11b8152600481018290526024015b60405180910390fd5b61086d8383611cfe565b600083610bbe81610a58565b610bdb57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290526001600160401b03808c16858701528a84166060860152600554600160401b900416608085015260015461ffff600160e81b82041660a086015260009283526006909152908490209351637bfa20a960e01b8152929361010090910490911691637bfa20a991610c7d918591908a908a90600401612d1d565b602060405180830381865afa158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbe9190612d77565b98975050505050505050565b303314610cea57604051637d5d391d60e11b815260040160405180910390fd5b6109c58282611d82565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020613244833981519152610d2581611c3f565b60005b82811015610e475736848483818110610d4357610d43612d90565b90506080020190506040518060600160405280826020016020810190610d6991906129e7565b6001600160401b03168152602001610d876060840160408501612b07565b61ffff168152602001610da06080840160608501612dbd565b6001600160801b0316905260066000610dbc6020850185612758565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516001600160801b0316600160501b026fffffffffffffffffffffffffffffffff60501b1961ffff909516600160401b0269ffffffffffffffffffff199094166001600160401b0390931692909217929092179290921691909117905550600101610d28565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051610e79929190612dd8565b60405180910390a1505050565b600081610e9281610a58565b610eaf57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808a1660208085018290526001600160401b03808b16868801528985166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451637bfa20a960e01b8152939461010090920490921692637bfa20a992610f52928692600401612ebc565b602060405180830381865afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190612d77565b979650505050505050565b600080516020613244833981519152610fb681611c3f565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b30331461102c57604051637d5d391d60e11b815260040160405180910390fd5b61103581611edd565b50565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600060008051602061322483398151915261107b81611c3f565b61108b60a08601608087016127ba565b61109481610a58565b6110b157604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c081019091526002546001600160a01b031681526000906020808201906110df908a018a612758565b63ffffffff1681526020016110fa60808a0160608b016129e7565b6001600160401b0316815260200161111860a08a0160808b016127ba565b6001600160a01b039081168252600554600160401b90046001600160401b0316602080840191909152600154600160e81b810461ffff16604090940193909352929350610100909104169063df2b057e90839060069060009061117d908d018d612758565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b81526004016111b89493929190612d1d565b6020604051808303816000875af1158015610f6f573d6000803e3d6000fd5b6000805160206132448339815191526111ef81611c3f565b60005b8281101561086d573684848381811061120d5761120d612d90565b905060200281019061121f9190612f15565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112556020830183612758565b63ffffffff16146112665750611484565b428160600135116112775750611484565b60006112b06112896020840184612758565b61129960408501602086016127ba565b6112a66040860186612f35565b8660600135611a55565b905060006112c5826106e76080860186612f35565b50905080611308576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611484565b600061132861131a6040860186612f35565b61132391612f7b565b611fab565b905080156113a35760008381526007602052604090205460ff1615611389577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611378929190612ff0565b60405180910390a150505050611484565b6000838152600760205260409020805460ff191660011790555b6000806113b660408701602088016127ba565b6001600160a01b03166113cc6040880188612f35565b6040516113da92919061308b565b6000604051808303816000865af19150503d8060008114611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50915091508161147d578215611443576000858152600760205260409020805460ff191690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf878260405161147492919061309b565b60405180910390a15b5050505050505b6001016111f2565b6000805160206132448339815191526114a481611c3f565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611000565b600060008051602061322483398151915261150e81611c3f565b8261151881610a58565b61153557604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808b1660208085018290526001600160401b03808c16868801528a85166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451636f9582bf60e11b815293946101009092049092169263df2b057e926115d8928692600401612ebc565b6020604051808303816000875af11580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612d77565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef8460405161164e91815260200190565b60405180910390a1505050949350505050565b600554600090819061168490600160401b90046001600160401b031660416130ca565b83146116965750600090506001611837565b60006116ef866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b600554600160401b90046001600160401b031681101561182b57366000888861171f8560416130ca565b9061172b8660016130e1565b6117369060416130ca565b92611743939291906130f4565b9150915060008061178a8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fe492505050565b50909250905060008160038111156117a4576117a4612b60565b146117bd57600060019850985050505050505050611837565b856001600160a01b0316826001600160a01b0316116117ea57600060029850985050505050505050611837565b6001600160a01b03821660009081526004602052604090205460ff1661181e57600060039850985050505050505050611837565b50935050506001016116f5565b50600160009350935050505b935093915050565b60008051602061324483398151915261185781611c3f565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611000565b6000805160206132448339815191526118c581611c3f565b63ffffffff841660009081526003602052604090206118e59084846125c2565b5050505050565b8160008051602061326483398151915281148061192857507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611940575060008051602061322483398151915281145b1561196a5730331461196557604051637d5d391d60e11b815260040160405180910390fd5b611996565b6000805160206132448339815191528103610b8757611965600080516020613244833981519152611c3f565b61086d8383612031565b6000805160206132448339815191526119b881611c3f565b6119d060008051602061322483398151915285611038565b6119ed57604051635ee08b9760e01b815260040160405180910390fd5b6040516303d8c5ef60e11b81526001600160a01b038481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001611a7095949392919061311e565b60405160208183030381529060405280519060200120905095945050505050565b42816060013511611ab557604051630bbaf26360e01b815260040160405180910390fd5b30611ac660408301602084016127ba565b6001600160a01b031614611b0957611ae460408201602083016127ba565b604051631ce0bfcd60e01b81526001600160a01b039091166004820152602401610b9f565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611b3d6020830183612758565b63ffffffff1614611b7757611b556020820182612758565b60405163134bf0e160e11b815263ffffffff9091166004820152602401610b9f565b6000611b896112896020840184612758565b90506000611b9e826106e76080860186612f35565b50905080611bbf57604051630af656f760e11b815260040160405180910390fd5b60008281526007602052604090205460ff1615611bf257604051634eb522d360e11b815260048101839052602401610b9f565b60008281526007602052604090819020805460ff1916600117905561086d9060008051602061324483398151915290611c2d90860186612f35565b810190611c3a91906127ba565b611cfe565b61103581336120a9565b6001600160a01b038316611c6657611c6182826120e2565b505050565b611c6183838361218f565b611c796121ca565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b611ccd6121f0565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ca8565b600060008051602061326483398151915283148015611d245750611d228383611038565b155b15611d6e5760018054601590611d4990600160a81b90046001600160401b0316613164565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612213565b5060019392505050565b6001600160a01b03821660009081526004602052604090205481151560ff909116151503611dd6576040516302c6469560e51b81526001600160a01b03831660048201528115156024820152604401610b9f565b6001600160a01b0382166000908152600460205260408120805460ff191683151517905581611e1c57600554611e17906001906001600160401b031661318a565b611e33565b600554611e33906001600160401b031660016131b1565b6005549091506001600160401b03600160401b9091048116908216811115611e81576040516378e2c15760e11b81526001600160401b03808416600483015282166024820152604401610b9f565b6005805467ffffffffffffffff19166001600160401b038416179055604080516001600160a01b038616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce910161099e565b806001600160401b0316600003611f0757604051635f86e17760e01b815260040160405180910390fd5b6005546001600160401b03908116908216811015611f4b576040516378e2c15760e11b81526001600160401b03808316600483015283166024820152604401610b9f565b600580546fffffffffffffffff00000000000000001916600160401b6001600160401b038516908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611000565b60006001600160e01b03198216630111a9b760e11b148015906108a457506001600160e01b0319821663704316e560e01b141592915050565b6000806000835160410361201e5760208401516040850151606086015160001a612010888285856122a5565b95509550955050505061202a565b50508151600091506002905b9250925092565b60006000805160206132648339815191528314801561205557506120558383611038565b1561209f576001805460159061207a90600160a81b90046001600160401b03166131d1565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612374565b6120b38282611038565b6109c55760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610b9f565b6001600160a01b038216612109576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612156576040519150601f19603f3d011682016040523d82523d6000602084013e61215b565b606091505b5050905080611c6157604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610b9f565b6001600160a01b0382166121b6576040516306b7a93160e41b815260040160405180910390fd5b611c616001600160a01b03841683836123df565b60015460ff16156121ee5760405163d93c066560e01b815260040160405180910390fd5b565b60015460ff166121ee57604051638dfc202b60e01b815260040160405180910390fd5b600061221f8383611038565b61229d576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556122553390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016108a4565b5060006108a4565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156122e0575060009150600390508261236a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612334573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123605750600092506001915082905061236a565b9250600091508190505b9450945094915050565b60006123808383611038565b1561229d576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016108a4565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b179052611c619185919060009061243d9084168361248b565b9050805160001415801561246257508080602001905181019061246091906131f4565b155b15611c6157604051635274afe760e01b81526001600160a01b0384166004820152602401610b9f565b6060612499838360006124a0565b9392505050565b6060814710156124c55760405163cd78605960e01b8152306004820152602401610b9f565b600080856001600160a01b031684866040516124e19190613211565b60006040518083038185875af1925050503d806000811461251e576040519150601f19603f3d011682016040523d82523d6000602084013e612523565b606091505b509150915061253386838361253d565b9695505050505050565b6060826125525761254d82612599565b612499565b815115801561256957506001600160a01b0384163b155b1561259257604051639996b31560e01b81526001600160a01b0385166004820152602401610b9f565b5080612499565b8051156125a95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f0160209004810192821561265b5791602002820160005b8382111561262c57833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026125eb565b80156126595782816101000a81549060ff021916905560010160208160000104928301926001030261262c565b505b5061266792915061266b565b5090565b5b80821115612667576000815560010161266c565b6001600160a01b038116811461103557600080fd5b6000806000606084860312156126aa57600080fd5b83356126b581612680565b925060208401356126c581612680565b929592945050506040919091013590565b6000602082840312156126e857600080fd5b81356001600160e01b03198116811461249957600080fd5b801515811461103557600080fd5b60006020828403121561272057600080fd5b813561249981612700565b60006020828403121561273d57600080fd5b5035919050565b803563ffffffff81168114610ad857600080fd5b60006020828403121561276a57600080fd5b61249982612744565b6020808252825182820181905260009190848201906040850190845b818110156127ae57835160ff168352928401929184019160010161278f565b50909695505050505050565b6000602082840312156127cc57600080fd5b813561249981612680565b600080604083850312156127ea57600080fd5b8235915060208301356127fc81612680565b809150509250929050565b80356001600160401b0381168114610ad857600080fd5b60008083601f84011261283057600080fd5b5081356001600160401b0381111561284757600080fd5b60208301915083602082850101111561285f57600080fd5b9250929050565b60008060008060006080868803121561287e57600080fd5b61288786612744565b945061289560208701612807565b935060408601356128a581612680565b925060608601356001600160401b038111156128c057600080fd5b6128cc8882890161281e565b969995985093965092949392505050565b600080604083850312156128f057600080fd5b82356128fb81612680565b915060208301356127fc81612700565b6000806020838503121561291e57600080fd5b82356001600160401b038082111561293557600080fd5b818501915085601f83011261294957600080fd5b81358181111561295857600080fd5b8660208260071b850101111561296d57600080fd5b60209290920196919550909350505050565b803561ffff81168114610ad857600080fd5b600080600080608085870312156129a757600080fd5b6129b08561297f565b93506129be6020860161297f565b92506129cc60408601612807565b915060608501356129dc81612680565b939692955090935050565b6000602082840312156129f957600080fd5b61249982612807565b600060a08284031215612a1457600080fd5b50919050565b600080600060408486031215612a2f57600080fd5b83356001600160401b0380821115612a4657600080fd5b612a5287838801612a02565b94506020860135915080821115612a6857600080fd5b50612a758682870161281e565b9497909650939450505050565b60008083601f840112612a9457600080fd5b5081356001600160401b03811115612aab57600080fd5b6020830191508360208260051b850101111561285f57600080fd5b60008060208385031215612ad957600080fd5b82356001600160401b03811115612aef57600080fd5b612afb85828601612a82565b90969095509350505050565b600060208284031215612b1957600080fd5b6124998261297f565b600080600060408486031215612b3757600080fd5b8335925060208401356001600160401b03811115612b5457600080fd5b612a758682870161281e565b634e487b7160e01b600052602160045260246000fd5b82151581526040810160048310612b9d57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b600080600060408486031215612bbf57600080fd5b612bc884612744565b925060208401356001600160401b03811115612be357600080fd5b612a7586828701612a82565b600080600080600060808688031215612c0757600080fd5b612c1086612744565b94506020860135612c2081612680565b935060408601356001600160401b03811115612c3b57600080fd5b612c478882890161281e565b96999598509660600135949350505050565b600060208284031215612c6b57600080fd5b81356001600160401b03811115612c8157600080fd5b612c8d84828501612a02565b949350505050565b60018060a01b0380825116835263ffffffff602083015116602084015260408201516001600160401b03808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000610140612d2c8388612c95565b612d6360c0840187546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b80610120840152610f938184018587612cf4565b600060208284031215612d8957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b80356001600160801b0381168114610ad857600080fd5b600060208284031215612dcf57600080fd5b61249982612da6565b6020808252818101839052600090604080840186845b87811015612e5f5763ffffffff612e0483612744565b1683526001600160401b03612e1a868401612807565b168584015261ffff612e2d85840161297f565b168484015260606001600160801b03612e47828501612da6565b16908401526080928301929190910190600101612dee565b5090979650505050505050565b60005b83811015612e87578181015183820152602001612e6f565b50506000910152565b60008151808452612ea8816020860160208601612e6c565b601f01601f19169290920160200192915050565b6000610140612ecb8387612c95565b612f0260c0840186546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b8061012084015261253381840185612e90565b60008235609e19833603018112612f2b57600080fd5b9190910192915050565b6000808335601e19843603018112612f4c57600080fd5b8301803591506001600160401b03821115612f6657600080fd5b60200191503681900382131561285f57600080fd5b6001600160e01b03198135818116916004851015612fa35780818660040360031b1b83161692505b505092915050565b6000808335601e19843603018112612fc257600080fd5b83016020810192503590506001600160401b03811115612fe157600080fd5b80360382131561285f57600080fd5b6040815263ffffffff61300284612744565b1660408201526000602084013561301881612680565b6001600160a01b031660608301526130336040850185612fab565b60a0608085015261304860e085018284612cf4565b915050606085013560a08401526130626080860186612fab565b848303603f190160c0860152613079838284612cf4565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000612c8d6040830184612e90565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a4576108a46130b4565b808201808211156108a4576108a46130b4565b6000808585111561310457600080fd5b8386111561311157600080fd5b5050820193919092039150565b63ffffffff60e01b8660e01b1681526bffffffffffffffffffffffff198560601b1660048201528360188201528183603883013760009101603801908152949350505050565b60006001600160401b03808316818103613180576131806130b4565b6001019392505050565b6001600160401b038281168282160390808211156131aa576131aa6130b4565b5092915050565b6001600160401b038181168382160190808211156131aa576131aa6130b4565b60006001600160401b038216806131ea576131ea6130b4565b6000190192915050565b60006020828403121561320657600080fd5b815161249981612700565b60008251612f2b818460208701612e6c56fe724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19dea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177574845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bcaa26469706673582212203b61bbdddbd40de2a99f40cf79bc54fd320e09acc6ea01dd4f473c7f674ee39f64736f6c6343000816003360a060405234801561001057600080fd5b50604051610e2e380380610e2e83398101604081905261002f916100b7565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610067565b506080526100d0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100c957600080fd5b5051919050565b608051610d436100eb60003960006105fa0152610d436000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063715018a6146100875780637bfa20a91461009c5780638da5cb5b146100cf578063df2b057e146100f7578063f2fde38b1461010a57600080fd5b3661006057005b600080fd5b34801561007157600080fd5b506100856100803660046109c7565b61012a565b005b34801561009357600080fd5b50610085610142565b3480156100a857600080fd5b506100bc6100b7366004610a03565b610156565b6040519081526020015b60405180910390f35b3480156100db57600080fd5b506000546040516001600160a01b0390911681526020016100c6565b6100bc610105366004610a03565b6102e6565b34801561011657600080fd5b50610085610125366004610aa5565b6103cf565b61013261040d565b61013d83838361043a565b505050565b61014a61040d565b610154600061045d565b565b60006101656020850185610ac0565b67ffffffffffffffff166000036101ad576101866040860160208701610aea565b60405163680489c560e11b815263ffffffff90911660048201526024015b60405180910390fd5b6101b783836104ad565b5060006101dc6101cd60a0880160808901610ac0565b67ffffffffffffffff1661051f565b90506000806101ee6020890189610aa5565b6001600160a01b03166388a4124c61020c60408b0160208c01610aea565b8561021a60208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff166044820152606401608060405180830381865afa158015610273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102979190610b25565b9350505091506102da828860200160208101906102b49190610b7a565b6102c460c08c0160a08d01610b7a565b6102d460608c0160408d01610b9e565b8561058b565b98975050505050505050565b60006102f56020850185610ac0565b67ffffffffffffffff16600003610316576101866040860160208701610aea565b61032083836104ad565b5060006103366101cd60a0880160808901610ac0565b90506000806103486020890189610aa5565b6001600160a01b031663c1723a1d61036660408b0160208c01610aea565b8561037460208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff1660448201526064016080604051808303816000875af1158015610273573d6000803e3d6000fd5b6103d761040d565b6001600160a01b03811661040157604051631e4fbdf760e01b8152600060048201526024016101a4565b61040a8161045d565b50565b6000546001600160a01b031633146101545760405163118cdaa760e01b81523360048201526024016101a4565b6001600160a01b0383166104525761013d8282610661565b61013d83838361070e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082156104f0576000806104c4868685610749565b604051637085244b60e01b815260ff8516600482015290965092945085935050602490910190506101a4565b8083146105135760405163013adb8360e21b8152600481018290526024016101a4565b60009150505b92915050565b60008061052d604184610bd1565b905061053a602082610bfe565b156105625761054a602082610bfe565b6105549082610c12565b61055f906020610c25565b90505b8061056f60e06044610c25565b6105799190610c25565b610584906040610c25565b9392505050565b60008061ffff86161561059e57856105a0565b845b905060006127106105b561ffff84168a610bd1565b6105bf9190610c38565b90506001600160801b03841615806105de57506001600160801b038516155b156105ec5791506106589050565b6000846001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000876001600160801b031661062d9190610bd1565b6106379190610c38565b610641908a610c25565b90508181116106505781610652565b805b93505050505b95945050505050565b6001600160a01b038216610688576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b505090508061013d57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016101a4565b6001600160a01b038216610735576040516306b7a93160e41b815260040160405180910390fd5b61013d6001600160a01b03841683836107a3565b60003681600184018161075d8888846107f5565b6002830192909150610775908990899060030161081c565b94506002820161ffff8216830161078e81838b8d610c4c565b979b909a50969850505061ffff160193505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261013d908490610841565b60006002820161080781848688610c4c565b61081091610c76565b60f01c95945050505050565b600083838381811061083057610830610ca6565b919091013560f81c95945050505050565b60006108566001600160a01b038416836108a4565b9050805160001415801561087b5750808060200190518101906108799190610cbc565b155b1561013d57604051635274afe760e01b81526001600160a01b03841660048201526024016101a4565b60606105848383600084600080856001600160a01b031684866040516108ca9190610cde565b60006040518083038185875af1925050503d8060008114610907576040519150601f19603f3d011682016040523d82523d6000602084013e61090c565b606091505b509150915061091c868383610926565b9695505050505050565b60608261093b5761093682610982565b610584565b815115801561095257506001600160a01b0384163b155b1561097b57604051639996b31560e01b81526001600160a01b03851660048201526024016101a4565b5080610584565b8051156109925780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109c257600080fd5b919050565b6000806000606084860312156109dc57600080fd5b6109e5846109ab565b92506109f3602085016109ab565b9150604084013590509250925092565b600080600080848603610140811215610a1b57600080fd5b60c0811215610a2957600080fd5b859450606060bf1982011215610a3e57600080fd5b5060c08501925061012085013567ffffffffffffffff80821115610a6157600080fd5b818701915087601f830112610a7557600080fd5b813581811115610a8457600080fd5b886020828501011115610a9657600080fd5b95989497505060200194505050565b600060208284031215610ab757600080fd5b610584826109ab565b600060208284031215610ad257600080fd5b813567ffffffffffffffff8116811461058457600080fd5b600060208284031215610afc57600080fd5b813563ffffffff8116811461058457600080fd5b6001600160801b038116811461040a57600080fd5b60008060008060808587031215610b3b57600080fd5b845193506020850151610b4d81610b10565b6040860151909350610b5e81610b10565b6060860151909250610b6f81610b10565b939692955090935050565b600060208284031215610b8c57600080fd5b813561ffff8116811461058457600080fd5b600060208284031215610bb057600080fd5b813561058481610b10565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761051957610519610bbb565b634e487b7160e01b600052601260045260246000fd5b600082610c0d57610c0d610be8565b500690565b8181038181111561051957610519610bbb565b8082018082111561051957610519610bbb565b600082610c4757610c47610be8565b500490565b60008085851115610c5c57600080fd5b83861115610c6957600080fd5b5050820193919092039150565b6001600160f01b03198135818116916002851015610c9e5780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610cce57600080fd5b8151801515811461058457600080fd5b6000825160005b81811015610cff5760208186018101518583015201610ce5565b50600092019182525091905056fea2646970667358221220a3bc24e7c5cbedac7e00899eb168625849d3210800cd0b59d0aa08cd2b3af71664736f6c6343000816003360e06040523480156200001157600080fd5b5060405162001a4438038062001a44833981016040819052620000349162000179565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000668162000110565b50600180546001600160a01b0319166001600160a01b038481169190911790915581166080819052600060a0526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa158015620000cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f59190620001b8565b63ffffffff1660c052505060636003556064600455620001e7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200017657600080fd5b50565b600080604083850312156200018d57600080fd5b82516200019a8162000160565b6020840151909250620001ad8162000160565b809150509250929050565b600060208284031215620001cb57600080fd5b815163ffffffff81168114620001e057600080fd5b9392505050565b60805160a05160c05161181162000233600039600061038c015260006102fb0152600081816102c7015281816105d6015281816106df015281816108e50152610aa101526118116000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063996f79c01161006f578063996f79c014610447578063aec336e61461045d578063d80e9bd91461047d578063dabca063146104aa578063f2fde38b146104ca578063fd9be522146104ea57610156565b8063715018a614610365578063726075371461037a57806372d71322146103c35780638da5cb5b146103e55780638f58aa7a14610403578063909532381461042357610156565b80634389e58f116101085780634389e58f1461025a57806354fd4d50146102895780635e280f11146102b557806361d027b3146102e95780636251b6371461031d5780636750cd4c1461034457610156565b806301ffc9a71461016f5780630e97289b146101a457806312cc947f146101dc5780631881d94d146101fe5780631c7c294e1461021a578063334993ff1461023a57610156565b3661015657005b604051632657b6c360e01b815260040160405180910390fd5b34801561017b57600080fd5b5061018f61018a366004610fd6565b61050a565b60405190151581526020015b60405180910390f35b3480156101b057600080fd5b506001546101c4906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b3480156101e857600080fd5b506101fc6101f7366004611041565b610541565b005b34801561020a57600080fd5b50600260405161019b9190611082565b34801561022657600080fd5b506002546101c4906001600160a01b031681565b34801561024657600080fd5b506101fc6102553660046110aa565b6106b3565b34801561026657600080fd5b5061027a6102753660046111bc565b6106c6565b60405161019b93929190611283565b34801561029557600080fd5b50604080516000808252602082015260029181019190915260600161019b565b3480156102c157600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f557600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b34801561032957600080fd5b50610332600181565b60405160ff909116815260200161019b565b34801561035057600080fd5b5061018f61035f3660046112d2565b50600190565b34801561037157600080fd5b506101fc610810565b34801561038657600080fd5b506103ae7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161019b565b3480156103cf57600080fd5b506103d8610824565b60405161019b91906112ed565b3480156103f157600080fd5b506000546001600160a01b03166101c4565b34801561040f57600080fd5b506101fc61041e366004611320565b6108b2565b34801561042f57600080fd5b5061043960035481565b60405190815260200161019b565b34801561045357600080fd5b5061043960045481565b34801561046957600080fd5b506101fc61047836600461134c565b6109a7565b34801561048957600080fd5b5061049d610498366004611369565b6109d1565b60405161019b91906113e4565b3480156104b657600080fd5b506101fc6104c53660046113fb565b610a13565b3480156104d657600080fd5b506101fc6104e536600461134c565b610a2b565b3480156104f657600080fd5b506101fc610505366004611320565b610a6e565b60006001600160e01b031982166325fc096160e21b148061053b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6002546001600160a01b03161580159061056657506002546001600160a01b03163314155b1561058457604051631c2c85bb60e21b815260040160405180910390fd5b6000604051806060016040528061059b8585610b2e565b63ffffffff1681526020016105b08585610b51565b81526020016105bf8585610b71565b6001600160401b0316905290506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106068686610b94565b6106108787610ba6565b60405161061e929190611437565b6040805191829003822060e086901b6001600160e01b0319168352845163ffffffff166004840152602085015160248401529301516001600160401b031660448201526001600160a01b039091166064820152608481019190915260a401600060405180830381600087803b15801561069657600080fd5b505af11580156106aa573d6000803e3d6000fd5b50505050505050565b6106bb610bc2565b600491909155600355565b60408051808201909152600080825260208201526060807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461072657604051630fd72cd960e31b815260040160405180910390fd5b6107376107328761145e565b610bef565b9150845160001461074857846107d4565b60058054610755906114fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610781906114fb565b80156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b50505050505b90506107e08282610c47565b60405180604001604052806004548152602001856107ff576000610803565b6003545b9052969195509350915050565b610818610bc2565b6108226000610caf565b565b60058054610831906114fb565b80601f016020809104026020016040519081016040528092919081815260200182805461085d906114fb565b80156108aa5780601f1061087f576101008083540402835291602001916108aa565b820191906000526020600020905b81548152906001019060200180831161088d57829003601f168201915b505050505081565b6108ba610bc2565b6001600160a01b0382166108e157604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061152f565b90506001600160a01b03811661098e576040516354c1781b60e01b815260040160405180910390fd5b6109a26001600160a01b0382168484610cff565b505050565b6109af610bc2565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600454815260200183610a04576000610a08565b6003545b905295945050505050565b610a1b610bc2565b6005610a278282611594565b5050565b610a33610bc2565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610a6b81610caf565b50565b610a76610bc2565b6001600160a01b038216610a9d57604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b21919061152f565b90506109a2818484610d51565b6000610b3e600d60098486611653565b610b479161167d565b60e01c9392505050565b6000610b61602d600d8486611653565b610b6a916116ad565b9392505050565b6000610b81600960018486611653565b610b8a916116cb565b60c01c9392505050565b6000610b6a610ba38484610d74565b90565b366000610bb68360518187611653565b915091505b9250929050565b6000546001600160a01b031633146108225760405163118cdaa760e01b8152336004820152602401610a59565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610c3198600198919791966001600160a01b031695016116f9565b6040516020818303038152906040529050919050565b600154604051631f5dad8b60e31b81526001600160a01b039091169063faed6c5890610c799085908590600401611774565b600060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526109a2908490610d84565b6001600160a01b038316610d69576109a28282610de7565b6109a2838383610e94565b6000610b61605160318486611653565b6000610d996001600160a01b03841683610ecf565b90508051600014158015610dbe575080806020019051810190610dbc91906117a2565b155b156109a257604051635274afe760e01b81526001600160a01b0384166004820152602401610a59565b6001600160a01b038216610e0e576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b50509050806109a257604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610a59565b6001600160a01b038216610ebb576040516306b7a93160e41b815260040160405180910390fd5b6109a26001600160a01b0384168383610cff565b6060610b6a8383600084600080856001600160a01b03168486604051610ef591906117bf565b60006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b5091509150610f47868383610f51565b9695505050505050565b606082610f6657610f6182610fad565b610b6a565b8151158015610f7d57506001600160a01b0384163b155b15610fa657604051639996b31560e01b81526001600160a01b0385166004820152602401610a59565b5080610b6a565b805115610fbd5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610fe857600080fd5b81356001600160e01b031981168114610b6a57600080fd5b60008083601f84011261101257600080fd5b5081356001600160401b0381111561102957600080fd5b602083019150836020828501011115610bbb57600080fd5b6000806020838503121561105457600080fd5b82356001600160401b0381111561106a57600080fd5b61107685828601611000565b90969095509350505050565b60208101600383106110a457634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156110bd57600080fd5b50508035926020909101359150565b600060e082840312156110de57600080fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561111c5761111c6110e4565b60405290565b600082601f83011261113357600080fd5b81356001600160401b038082111561114d5761114d6110e4565b604051601f8301601f19908116603f01168101908282118183101715611175576111756110e4565b8160405283815286602085880101111561118e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610a6b57600080fd5b6000806000606084860312156111d157600080fd5b83356001600160401b03808211156111e857600080fd5b6111f4878388016110cc565b9450602086013591508082111561120a57600080fd5b5061121786828701611122565b9250506040840135611228816111ae565b809150509250925092565b60005b8381101561124e578181015183820152602001611236565b50506000910152565b6000815180845261126f816020860160208601611233565b601f01601f19169290920160200192915050565b83518152602080850151908201526080604082015260006112a76080830185611257565b8281036060840152610f478185611257565b803563ffffffff811681146112cd57600080fd5b919050565b6000602082840312156112e457600080fd5b610b6a826112b9565b602081526000610b6a6020830184611257565b6001600160a01b0381168114610a6b57600080fd5b80356112cd81611300565b6000806040838503121561133357600080fd5b823561133e81611300565b946020939093013593505050565b60006020828403121561135e57600080fd5b8135610b6a81611300565b6000806000806060858703121561137f57600080fd5b84356001600160401b038082111561139657600080fd5b6113a2888389016110cc565b955060208701359150808211156113b857600080fd5b506113c587828801611000565b90945092505060408501356113d9816111ae565b939692955090935050565b81518152602080830151908201526040810161053b565b60006020828403121561140d57600080fd5b81356001600160401b0381111561142357600080fd5b61142f84828501611122565b949350505050565b8183823760009101908152919050565b80356001600160401b03811681146112cd57600080fd5b600060e0823603121561147057600080fd5b6114786110fa565b61148183611447565b815261148f602084016112b9565b60208201526114a060408401611315565b60408201526114b1606084016112b9565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b038111156114e357600080fd5b6114ef36828601611122565b60c08301525092915050565b600181811c9082168061150f57607f821691505b6020821081036110de57634e487b7160e01b600052602260045260246000fd5b60006020828403121561154157600080fd5b8151610b6a81611300565b601f8211156109a2576000816000526020600020601f850160051c810160208610156115755750805b601f850160051c820191505b81811015610ca757828155600101611581565b81516001600160401b038111156115ad576115ad6110e4565b6115c1816115bb84546114fb565b8461154c565b602080601f8311600181146115f657600084156115de5750858301515b600019600386901b1c1916600185901b178555610ca7565b600085815260208120601f198616915b8281101561162557888601518255948401946001909101908401611606565b50858210156116435787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808585111561166357600080fd5b8386111561167057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116a55780818660040360031b1b83161692505b505092915050565b8035602083101561053b57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156116a55760089490940360031b84901b1690921692915050565b60ff60f81b8960f81b1681526001600160401b0360c01b8860c01b166001820152600063ffffffff60e01b808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611760816071850160208701611233565b919091016071019998505050505050505050565b6040815260006117876040830185611257565b82810360208401526117998185611257565b95945050505050565b6000602082840312156117b457600080fd5b8151610b6a816111ae565b600082516117d1818460208701611233565b919091019291505056fea2646970667358221220990cfb4d672f3a4b176b2a0dac3fbeff814b316fc90a05799662ae7184d6045a64736f6c63430008160033a264697066735822122055e8f2d77c3fc54848797dc45f6d06d7894d1b9da4e99777331c18b14b49f96364736f6c63430008160033608060405234801561001057600080fd5b506107d2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e5c5e9a314610030575b600080fd5b61004361003e366004610529565b61005a565b6040516100519291906105eb565b60405180910390f35b6060806100678484610072565b915091509250929050565b606080600283101561009f5760405163196499c760e21b8152600060048201526024015b60405180910390fd5b60006100ae6002828688610619565b6100b791610643565b60f01c90506002600219820161021f578060005b868310156101c45760006100e460018501858a8c610619565b6100ed91610673565b60f81c9050600081900361011757604051636780cfaf60e01b815260006004820152602401610096565b8160ff1660000361012a57809150610167565b8160ff168160ff16146101675736600061014686868c8e610619565b915091506101578989868585610236565b9099509750859450919250829150505b600184019360009061017e90600301868b8d610619565b61018791610643565b60f01c905060008190036101b15760405163196499c760e21b815260048101869052602401610096565b8060020161ffff168501945050506100cb565b8287146101e75760405163196499c760e21b815260048101849052602401610096565b6002871115610218573660006101ff85858b8d610619565b915091506102108888858585610236565b909850965050505b505061022d565b61022a828787610356565b93505b50509250929050565b60608060001960ff8616016102b35786511561027557868484604051602001610261939291906106a1565b6040516020818303038152906040526102ac565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b965061034b565b60011960ff86160161032d578551156102ef578584846040516020016102db939291906106a1565b604051602081830303815290604052610326565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b955061034b565b604051636780cfaf60e01b815260ff86166004820152602401610096565b509495939450505050565b606060001961ffff8516016103f65760228214610386576040516301b8ca5560e31b815260040160405180910390fd5b60006103a7610399602260028688610619565b6103a2916106c9565b6104e8565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b1660248201529091506034016040516020818303038152906040529150506104e1565b60011961ffff8516016104c2576042821115806104135750606282115b15610431576040516360493e2b60e11b815260040160405180910390fd5b6000610444610399602260028688610619565b90506000610459610399604260228789610619565b90506000604119850161046f866042818a610619565b610478916106c9565b60405160086020938403029190911c92506104a9916001916011918391889183916031916002918b918b91016106e8565b60405160208183030381529060405293505050506104e1565b604051630417051360e41b815261ffff85166004820152602401610096565b9392505050565b60006fffffffffffffffffffffffffffffffff821115610525576040516306dfcc6560e41b81526080600482015260248101839052604401610096565b5090565b6000806020838503121561053c57600080fd5b823567ffffffffffffffff8082111561055457600080fd5b818501915085601f83011261056857600080fd5b81358181111561057757600080fd5b86602082850101111561058957600080fd5b60209290920196919550909350505050565b60005b838110156105b657818101518382015260200161059e565b50506000910152565b600081518084526105d781602086016020860161059b565b601f01601f19169290920160200192915050565b6040815260006105fe60408301856105bf565b828103602084015261061081856105bf565b95945050505050565b6000808585111561062957600080fd5b8386111561063657600080fd5b5050820193919092039150565b6001600160f01b0319813581811691600285101561066b5780818660020360031b1b83161692505b505092915050565b6001600160f81b0319813581811691600185101561066b5760019490940360031b84901b1690921692915050565b600084516106b381846020890161059b565b8201838582376000930192835250909392505050565b803560208310156106e257600019602084900360031b1b165b92915050565b60f88a811b6001600160f81b0319908116835260f08b901b6001600160f01b031916600184015289821b81166003840152608089901b6001600160801b03191660048401529087901b1660148201526000610752601583018760f01b6001600160f01b0319169052565b61076b601783018660f81b6001600160f81b0319169052565b610784601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea2646970667358221220ff331a469c287e3288e36db706f577b76ad4abf0ff12a11a4a37a3a30fa3315164736f6c63430008160033","sourceMap":"670:3188:138:-:0;;;;;1572:26:83;;;1594:4;-1:-1:-1;;1572:26:83;;;;;;;;3126:44:86;;;;;;;;;;;587:20:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;559:48:70;;;-1:-1:-1;;;;;559:48:70;;;;-1:-1:-1;;;;;;559:48:70;;;;;;;;;2909:43:71;;;-1:-1:-1;;;;;;2909:43:71;2943:9;2909:43;;;489:17:137;;;;;;;;;;;;-1:-1:-1;;;489:17:137;;;;;;:8;:17::i;:::-;464:42;;;-1:-1:-1;;;;;;464:42:137;-1:-1:-1;;;;;464:42:137;;;;;;;;;;535:15;;;;;;;;;;;;-1:-1:-1;;;535:15:137;;;;;;:8;:15::i;:::-;512:38;;;-1:-1:-1;;;;;;512:38:137;-1:-1:-1;;;;;512:38:137;;;;;;;;;;583:19;;;;;;;;;;;;-1:-1:-1;;;583:19:137;;;;;;:8;:19::i;:::-;556:46;;;-1:-1:-1;;;;;;556:46:137;-1:-1:-1;;;;;556:46:137;;;;;;;;;;670:3188:138;;;;;;;;;;;;20439:125:87;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:87;20439:125;-1:-1:-1;;20439:125:87:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:87;;;;;;;20293:33;;20303:22;20293:33;;;;-1:-1:-1;;;;;;20344:19:87;;;;;709:25:145;;;20293:33:87;-1:-1:-1;20344:7:87;;;;682:18:145;;20344:19:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;-1:-1:-1;;;20373:20:87;;20337:26;;-1:-1:-1;20373:8:87;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;670:3188:138:-;;;;;;;;:::o;14:250:145:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:145;238:16;;231:27;14:250::o;269:289::-;400:3;438:6;432:13;454:66;513:6;508:3;501:4;493:6;489:17;454:66;:::i;:::-;536:16;;;;;269:289;-1:-1:-1;;269:289:145:o;745:290::-;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;910:16;;-1:-1:-1;;;;;955:31:145;;945:42;;935:70;;1001:1;998;991:12;935:70;1024:5;745:290;-1:-1:-1;;;745:290:145:o;1040:493::-;1246:1;1242;1237:3;1233:11;1229:19;1221:6;1217:32;1206:9;1199:51;1286:2;1281;1270:9;1266:18;1259:30;1180:4;1318:6;1312:13;1361:6;1356:2;1345:9;1341:18;1334:34;1377:79;1449:6;1444:2;1433:9;1429:18;1424:2;1416:6;1412:15;1377:79;:::i;:::-;1517:2;1496:15;-1:-1:-1;;1492:29:145;1477:45;;;;1524:2;1473:54;;1040:493;-1:-1:-1;;;1040:493:145:o;:::-;670:3188:138;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106200024b5760003560e01c80637982cf42116200013b578063b752b72a11620000b9578063e20c9f711162000078578063e20c9f71146200074b578063ec53eaa01462000763578063f93e1d61146200077a578063fa7626d414620007c0578063faed6c5814620007dc57600080fd5b8063b752b72a146200066d578063b954fdf61462000692578063ba414fa614620006d7578063baead19c14620006ef578063defd9da6146200070a57600080fd5b8063997cff1b1162000106578063997cff1b14620005cc578063a29c898414620005f1578063ae6ce4001462000608578063b1dcf5c8146200062d578063b5508aa9146200065557600080fd5b80637982cf4214620005255780637c8bd543146200055957806385226c81146200058d578063916a17c614620005b457600080fd5b80633e5e3c2311620001c95780635e7baa4211620001945780635e7baa4214620004475780635ea0fefe146200046c57806366d9a9a014620004a25780636e1775e314620004c9578063703ca254146200050057600080fd5b80633e5e3c2314620003af5780633f7286f414620003c7578063450eea2e14620003df578063518e8ab014620003f757600080fd5b80631ed7831c11620002165780631ed7831c14620002e15780632113ce6214620003115780632a35d250146200034c5780632ade388014620003715780633bbd6a94146200039857600080fd5b8063090852b614620002585780630a9254e4146200027f57806312cc947f14620002975780631cc4652514620002bc57600080fd5b366200025357005b600080fd5b3480156200026557600080fd5b506200027d62000277366004620052ad565b62000801565b005b3480156200028c57600080fd5b506200027d6200081d565b348015620002a457600080fd5b506200027d620002b63660046200532f565b62000abb565b348015620002c957600080fd5b506200027d620002db36600462005384565b620013bf565b348015620002ee57600080fd5b50620002f962002830565b60405162000308919062005401565b60405180910390f35b3480156200031e57600080fd5b5060215462000333906001600160801b031681565b6040516001600160801b03909116815260200162000308565b3480156200035957600080fd5b50620002f96200036b36600462005510565b62002894565b3480156200037e57600080fd5b5062000389620029ab565b6040516200030891906200562d565b6200027d620003a9366004620056b0565b62002af9565b348015620003bc57600080fd5b50620002f962002bb9565b348015620003d457600080fd5b50620002f962002c1b565b348015620003ec57600080fd5b506200027d62002c7d565b3480156200040457600080fd5b506200041c620004163660046200532f565b62002e4d565b6040805161ffff90941684526001600160801b03928316602085015291169082015260600162000308565b3480156200045457600080fd5b506200027d620004663660046200576a565b62002e6b565b3480156200047957600080fd5b50620004916200048b366004620057ca565b6200331f565b604051901515815260200162000308565b348015620004af57600080fd5b50620004ba62003354565b604051620003089190620057f9565b348015620004d657600080fd5b50620004ee620004e8366004620058b2565b6200343e565b6040516200030894939291906200592a565b3480156200050d57600080fd5b506200027d6200051f36600462005980565b62003462565b3480156200053257600080fd5b506200054a62000544366004620057ca565b6200362e565b60405162000308919062005a24565b3480156200056657600080fd5b506200057e6200057836600462005a39565b6200371c565b60405162000308919062005b15565b3480156200059a57600080fd5b50620005a562003850565b60405162000308919062005b2a565b348015620005c157600080fd5b50620004ba6200392a565b348015620005d957600080fd5b506200027d620005eb366004620058b2565b62003a14565b6200027d6200060236600462005b3f565b62003a6c565b3480156200061557600080fd5b506200027d6200062736600462005bcf565b62003aed565b3480156200063a57600080fd5b5062000646620186a081565b60405190815260200162000308565b3480156200066257600080fd5b50620005a562003b8e565b3480156200067a57600080fd5b506200027d6200068c36600462005bef565b62003c68565b3480156200069f57600080fd5b50620006b7620006b13660046200532f565b62003c77565b604080516001600160801b03909316835260208301919091520162000308565b348015620006e457600080fd5b506200049162003c92565b348015620006fc57600080fd5b506200064664e8d4a5100081565b3480156200071757600080fd5b506200027d6200072936600462005c26565b602180546001600160801b0319166001600160801b0392909216919091179055565b3480156200075857600080fd5b50620002f962003dc9565b6200027d6200077436600462005c46565b62003e2b565b3480156200078757600080fd5b506200079f620007993660046200532f565b62003f66565b604080516001600160801b0393841681529290911660208301520162000308565b348015620007cd57600080fd5b50600754620004919060ff1681565b348015620007e957600080fd5b506200027d620007fb36600462005cb5565b62003f75565b62000819826001600160a01b03831660008062002e6b565b5050565b6200082762004007565b604080518082018252600c81526b687474703a2f2f612e636f6d60a01b602080830191909152600160005280527f156774b33c8bc7cb83eda4cbc43b36c7c9490ff8913c488ccd5132cfc71344ea54915190916001600160a01b0316903090620008919062005147565b6200089f9392919062005d27565b604051809103906000f080158015620008bc573d6000803e3d6000fd5b50602580546001600160a01b0319166001600160a01b03928316179055604080518082018252600c81526b687474703a2f2f622e636f6d60a01b602080830191909152600260005280527f2c5f9a2e204d4db70ad0f9037679e33061b4c51a386497019bee969e16be28d75491519092919091169030906200093e9062005147565b6200094c9392919062005d27565b604051809103906000f08015801562000969573d6000803e3d6000fd5b50602680546001600160a01b0319166001600160a01b0392909216919091179055620009946200401f565b604080516001808252818301909252600091816020015b60408051606080820183526000808352602083015291810191909152815260200190600190039081620009ab575050604080516060810182526002815260016020820152919250810162000a2e6302faf080600062000a2660408051600360f01b602082015281516002818303018152602290910190915290565b9190620040d9565b8152508160008151811062000a475762000a4762005d5c565b6020908102919091010152602554604051630b98bd0760e41b81526001600160a01b039091169063b98bd0709062000a8490849060040162005d72565b600060405180830381600087803b15801562000a9f57600080fd5b505af115801562000ab4573d6000803e3d6000fd5b5050505050565b600062000ac983836200414b565b63ffffffff811660009081526020805260408120549192506001600160a01b03909116908163402f846862000aff878762004172565b62000b0b888862004187565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015263ffffffff1660248201526044016040805180830381865afa15801562000b5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b80919062005e04565b50905060008190506000826001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401606060405180830381865afa15801562000bc9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bef919062005e5a565b50509050806001600160401b031660030362001351576000826001600160a01b0316639c33abf762000c228a8a62004187565b62000c2e8b8b62004172565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526001600160a01b0316602482015260026044820152606401600060405180830381865afa15801562000c86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000cb0919081019062005ef4565b905060008180602001905181019062000cca919062005fa8565b6080015160008151811062000ce35762000ce362005d5c565b60200260200101519050600062000cfb8a8a62004199565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093945062000d4092508d91508c9050620041ab565b60405162000d509291906200608f565b6040518091039020905060606000630223536e60e01b8484606460405160240162000d7e939291906200609f565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03861663f010cb238d8b8562000dd4426103e8620060e3565b6040518563ffffffff1660e01b815260040162000df59493929190620060f9565b602060405180830381865afa15801562000e13573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e3991906200613c565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b82526001600483015260248201819052915060009081908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063e341eaa490604401606060405180830381865afa15801562000ee9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f0f919062006156565b6040805160208101939093528281019190915260f89290921b6001600160f81b03191660608201528151604181830301815260619091019091529650600094506001935062000f5d92505050565b60405190808252806020026020018201604052801562000fba57816020015b6040805160a081018252600080825260208201819052606092820183905282820152608081019190915281526020019060019003908162000f7c5790505b5090506040518060a001604052808d63ffffffff1681526020018a6001600160a01b03168152602001838152602001426103e862000ff99190620060e3565b8152602001848152508160008151811062001018576200101862005d5c565b602090810291909101015260405163b143044b60e01b81526001600160a01b0387169063b143044b906200105190849060040162006190565b600060405180830381600087803b1580156200106c57600080fd5b505af115801562001081573d6000803e3d6000fd5b505050506000630894edf160e01b8686604051602401620010a492919062006242565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03881663f010cb238f8d85620010fa426103e8620060e3565b6040518563ffffffff1660e01b81526004016200111b9493929190620060f9565b602060405180830381865afa15801562001139573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200115f91906200613c565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b82526001600483015260248201819052915060009081908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063e341eaa490604401606060405180830381865afa1580156200120f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001235919062006156565b60408051602081018490529081018290526001600160f81b031960f885901b1660608201529295509093509150606101604051602081830303815290604052985050505050506040518060a001604052808e63ffffffff1681526020018b6001600160a01b03168152602001828152602001426103e8620012b79190620060e3565b81526020018581525082600081518110620012d657620012d662005d5c565b602090810291909101015260405163b143044b60e01b81526001600160a01b0388169063b143044b906200130f90859060040162006190565b600060405180830381600087803b1580156200132a57600080fd5b505af11580156200133f573d6000803e3d6000fd5b505050505050505050505050620013b6565b6040516312cc947f60e01b81526001600160a01b038416906312cc947f9062001381908a908a9060040162006266565b600060405180830381600087803b1580156200139c57600080fd5b505af1158015620013b1573d6000803e3d6000fd5b505050505b50505050505050565b60008260ff166001600160401b03811115620013df57620013df62005416565b60405190808252806020026020018201604052801562001409578160200160208202803683370190505b50905060008360ff166001600160401b038111156200142c576200142c62005416565b60405190808252806020026020018201604052801562001456578160200160208202803683370190505b50905060005b8460ff168160ff161015620015675760006200147a8260016200627c565b60ff16905080838360ff168151811062001498576200149862005d5c565b602002602001019063ffffffff16908163ffffffff16815250508030604051620014c29062005155565b63ffffffff90921682526001600160a01b03166020820152604001604051809103906000f080158015620014fa573d6000803e3d6000fd5b50848360ff168151811062001513576200151362005d5c565b60200260200101906001600160a01b031690816001600160a01b0316815250506200155d848360ff16815181106200154f576200154f62005d5c565b602002602001015162003aed565b506001016200145c565b5060008460ff166001600160401b0381111562001588576200158862005416565b604051908082528060200260200182016040528015620015b2578160200160208202803683370190505b50905060008560ff166001600160401b03811115620015d557620015d562005416565b604051908082528060200260200182016040528015620015ff578160200160208202803683370190505b506040805160018082528183019092529192506000919060208083019080368337019050506040516001625e79b760e01b0319815260016004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156200167b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016a1919062006298565b81600081518110620016b757620016b762005d5c565b60200260200101906001600160a01b031690816001600160a01b031681525050600030604051620016e89062005163565b6001600160a01b039091168152602001604051809103906000f08015801562001715573d6000803e3d6000fd5b50905060005b8860ff168160ff16101562002668576000886001811115620017415762001741620062b8565b036200249c576000878260ff168151811062001761576200176162005d5c565b60200260200101519050600080308364e8d4a51000620186a0604051620017889062005171565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103906000f080158015620017c8573d6000803e3d6000fd5b50915082604051620017da906200517f565b6001600160a01b039091168152602001604051809103906000f08015801562001807573d6000803e3d6000fd5b509050898460ff168151811062001822576200182262005d5c565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0384811660048301529091169063e8964e8190602401600060405180830381600087803b1580156200187257600080fd5b505af115801562001887573d6000803e3d6000fd5b50505050898460ff1681518110620018a357620018a362005d5c565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b158015620018f357600080fd5b505af115801562001908573d6000803e3d6000fd5b5050505081888560ff168151811062001925576200192562005d5c565b60200260200101906001600160a01b031690816001600160a01b03168152505080878560ff16815181106200195e576200195e62005d5c565b6001600160a01b0392909216602092830291909101820152604080516001808252818301909252600092839283929182810190803683370190505090503081600081518110620019b257620019b262005d5c565b6001600160a01b03929092166020928302919091018201526040805160028082526060820183526000939192909183019080368337019050509050858160008151811062001a045762001a0462005d5c565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018151811062001a3b5762001a3b62005d5c565b60200260200101906001600160a01b031690816001600160a01b031681525050866000828b308660405162001a70906200518d565b62001a8196959493929190620062ce565b604051809103906000f08015801562001a9e573d6000803e3d6000fd5b509350600060405162001ab1906200519b565b604051809103906000f08015801562001ace573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b15801562001b1757600080fd5b505af115801562001b2c573d6000803e3d6000fd5b5050505088600162001b3f91906200627c565b828b8d60018760405162001b5390620051a9565b62001b64969594939291906200632c565b604051809103906000f08015801562001b81573d6000803e3d6000fd5b5093506000670de0b6b3a764000060405162001b9d90620051b7565b908152602001604051809103906000f08015801562001bc0573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b15801562001c0957600080fd5b505af115801562001c1e573d6000803e3d6000fd5b505050505050505060008e60ff16905060008163ffffffff166001600160401b0381111562001c515762001c5162005416565b60405190808252806020026020018201604052801562001cb357816020015b6040805160c08101825260008082526020808301829052928201819052606082018190526080820181905260a0820152825260001990920191018162001c705790505b50905060008263ffffffff166001600160401b0381111562001cd95762001cd962005416565b60405190808252806020026020018201604052801562001d2d57816020015b60408051608081018252600080825260208083018290529282018190526060820152825260001990920191018162001cf85790505b50905060005b8363ffffffff168160ff161015620023c9578060ff168a60ff160315620023b457600062001d638260016200627c565b60408051600180825281830190925260ff9290921692506000919060208083019080368337019050506040805160008082526020820190925291925050878260008151811062001db75762001db762005d5c565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b62001df1620051c5565b81526020019060019003908162001de757905050905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff168152602001828152508260008151811062001e7f5762001e7f62005d5c565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038e16906329460b0b9062001eb89085906004016200639f565b600060405180830381600087803b15801562001ed357600080fd5b505af115801562001ee8573d6000803e3d6000fd5b50600094506001935062001efb92505050565b60405190808252806020026020018201604052801562001f3857816020015b62001f246200522e565b81526020019060019003908162001f1a5790505b5090506000604051806040016040528061271063ffffffff1681526020018c6001600160a01b0316815250905060405180604001604052808663ffffffff168152602001828152508260008151811062001f965762001f9662005d5c565b602090810291909101015260405163c14c434960e01b81526001600160a01b038e169063c14c43499062001fcf9085906004016200647d565b600060405180830381600087803b15801562001fea57600080fd5b505af115801562001fff573d6000803e3d6000fd5b5060009450600193506200201292505050565b6040519080825280602002602001820160405280156200204f57816020015b6200203b620051c5565b815260200190600190039081620020315790505b50905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff1681526020018281525082600081518110620020ca57620020ca62005d5c565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038d16906329460b0b90620021039085906004016200639f565b600060405180830381600087803b1580156200211e57600080fd5b505af115801562002133573d6000803e3d6000fd5b50506040805160c08101825263ffffffff89168152611388602082018190529181019190915261271060608201526402540be40060808201526021546001600160801b031660a08201528a519094508a935060ff89169250821090506200219e576200219e62005d5c565b602002602001018190525060405180608001604052808463ffffffff1681526020016113886001600160401b0316815260200161271061ffff1681526020016402540be4006001600160801b0316815250858560ff168151811062002207576200220762005d5c565b602002602001018190525060008e6001600160a01b031663c18403276040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002253573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022799190620064ee565b60408051600180825281830190925291925060009190816020015b620022c860408051808201825260008082528251606081018452818152602081810183905293810191909152909182015290565b8152602001906001900390816200229457905050905060405180604001604052808663ffffffff16815260200160405180606001604052808560016200230f91906200650e565b6001600160801b0316815260016020820181905260409091015290528151829060009062002341576200234162005d5c565b60200260200101819052508f6001600160a01b0316633161b7f6826040518263ffffffff1660e01b81526004016200237a91906200653c565b600060405180830381600087803b1580156200239557600080fd5b505af1158015620023aa573d6000803e3d6000fd5b5050505050505050505b80620023c081620065b0565b91505062001d33565b50604051633d85ac3360e01b81526001600160a01b03861690633d85ac3390620023f8908590600401620065d2565b600060405180830381600087803b1580156200241357600080fd5b505af115801562002428573d6000803e3d6000fd5b50506040516352d3b87160e01b81526001600160a01b03871692506352d3b87191506200245a90849060040162006664565b600060405180830381600087803b1580156200247557600080fd5b505af11580156200248a573d6000803e3d6000fd5b5050505050505050505050506200265f565b6001886001811115620024b357620024b3620062b8565b036200261b57600030888360ff1681518110620024d457620024d462005d5c565b6020026020010151604051620024ea9062005273565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156200251e573d6000803e3d6000fd5b509050878260ff168151811062002539576200253962005d5c565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b1580156200258957600080fd5b505af11580156200259e573d6000803e3d6000fd5b5050505080868360ff1681518110620025bb57620025bb62005d5c565b60200260200101906001600160a01b031690816001600160a01b03168152505080858360ff1681518110620025f457620025f462005d5c565b60200260200101906001600160a01b031690816001600160a01b031681525050506200265f565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206c696272617279207479706560601b60448201526064015b60405180910390fd5b6001016200171b565b5060005b8860ff168160ff16101562002825576000878260ff168151811062002695576200269562005d5c565b6020026020010151905060005b8a60ff168160ff1610156200281a578060ff168360ff16031562002811576001600160a01b03821663aafea312620026dc8360016200627c565b898660ff1681518110620026f457620026f462005d5c565b60200260200101516040518363ffffffff1660e01b81526004016200273192919060ff9290921682526001600160a01b0316602082015260400190565b600060405180830381600087803b1580156200274c57600080fd5b505af115801562002761573d6000803e3d6000fd5b50505050816001600160a01b031663a718531b8260016200278391906200627c565b888660ff16815181106200279b576200279b62005d5c565b60209081029190910101516040516001600160e01b031960e085901b16815260ff90921660048301526001600160a01b0316602482015260006044820152606401600060405180830381600087803b158015620027f757600080fd5b505af11580156200280c573d6000803e3d6000fd5b505050505b600101620026a2565b50506001016200266c565b505050505050505050565b606060148054806020026020016040519081016040528092919081815260200182805480156200288a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200286b575b5050505050905090565b60608160ff166001600160401b03811115620028b457620028b462005416565b604051908082528060200260200182016040528015620028de578160200160208202803683370190505b509050825b620028ef83856200627c565b60ff168160ff161015620029985760ff81166000908152602080805260408083205481516001600160a01b039091169281019290925230908201526001606082015262002950908790608001604051602081830303815290604052620041bd565b90508083620029608785620066d9565b60ff168151811062002976576200297662005d5c565b6001600160a01b039092166020928302919091019091015250600101620028e3565b50620029a48162003462565b9392505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101562002af057600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562002ad857838290600052602060002001805462002a4490620066f5565b80601f016020809104026020016040519081016040528092919081815260200182805462002a7290620066f5565b801562002ac35780601f1062002a975761010080835404028352916020019162002ac3565b820191906000526020600020905b81548152906001019060200180831162002aa557829003601f168201915b50505050508152602001906001019062002a22565b505050508152505081526020019060010190620029cf565b50505050905090565b63ffffffff871660009081526020805260408120546001600160a01b031690808062002b25896200421c565b925092509250836001600160a01b03166391d20fa18284908d8b8d898d8d604051806020016040528060008152506040518a63ffffffff1660e01b815260040162002b77979695949392919062006731565b6000604051808303818589803b15801562002b9157600080fd5b5088f115801562002ba6573d6000803e3d6000fd5b5050505050505050505050505050505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200288a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200286b575050505050905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200288a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200286b575050505050905090565b60225462002c9a906001600160a01b031660006001600562004319565b602554602254604051627eeac760e11b81526001600160a01b0391821660048201526000602482015262002d2192919091169062fdd58e90604401602060405180830381865afa15801562002cf3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d1991906200613c565b60056200439d565b602554602354604051627eeac760e11b81526001600160a01b0391821660048201526001602482015262002da892919091169062fdd58e90604401602060405180830381865afa15801562002d7a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002da091906200613c565b60006200439d565b60235462002dc4906001600160a01b0316600180600262004319565b602554602354604051627eeac760e11b81526001600160a01b0391821660048201526001602482015262002e4b92919091169062fdd58e90604401602060405180830381865afa15801562002e1d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e4391906200613c565b60026200439d565b565b600080600062002e5e8585620044c8565b9250925092509250925092565b63ffffffff841660009081526020805260409020546001600160a01b031662002ed75760405162461bcd60e51b815260206004820152601b60248201527f656e64706f696e74206e6f742079657420726567697374657265640000000000604482015260640162002656565b63ffffffff84166000908152601d6020908152604080832086845290915281209062002f038262004546565b905060008460000362002f235762002f1b8362004546565b905062002f37565b84821162002f32578162002f34565b845b90505b8015620013b6578062002f4a8162006785565b915050600062002f5a8462004564565b6000818152601e602052604081208054929350909162002f7a90620066f5565b80601f016020809104026020016040519081016040528092919081815260200182805462002fa890620066f5565b801562002ff95780601f1062002fcd5761010080835404028352916020019162002ff9565b820191906000526020600020905b81548152906001019060200180831162002fdb57829003601f168201915b505060405163997cff1b60e01b8152939450309363997cff1b9350620030289250859150869060040162006242565b60006040518083038186803b1580156200304157600080fd5b505afa15801562003056573d6000803e3d6000fd5b50506040516312cc947f60e01b81523092506312cc947f91506200307f90849060040162005a24565b600060405180830381600087803b1580156200309a57600080fd5b505af1158015620030af573d6000803e3d6000fd5b5050506000838152601f60205260408120805491925090620030d190620066f5565b80601f0160208091040260200160405190810160405280929190818152602001828054620030ff90620066f5565b8015620031505780601f10620031245761010080835404028352916020019162003150565b820191906000526020600020905b8154815290600101906020018083116200313257829003601f168201915b5050505050905062003164816002620045d5565b1562003220576000806200317883620045eb565b604051919350915081906000906001600160a01b0383169085908381818185875af1925050503d8060008114620031cc576040519150601f19603f3d011682016040523d82523d6000602084013e620031d1565b606091505b50509050806200321b5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640162002656565b505050505b6200322d816001620045d5565b156200328f576040516307629f5560e51b8152309063ec53eaa0906200325a90859085906004016200679f565b600060405180830381600087803b1580156200327557600080fd5b505af11580156200328a573d6000803e3d6000fd5b505050505b6001600160a01b03871615801590620032b05750620032b0816003620045d5565b1562003316576040516328a7226160e21b8152309063a29c898490620032e1908590859088908d90600401620067c8565b600060405180830381600087803b158015620032fc57600080fd5b505af115801562003311573d6000803e3d6000fd5b505050505b50505062002f37565b61ffff82166000908152601d60209081526040808320848452909152812081620033498262004546565b119150505b92915050565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101562002af05760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200342557602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620033e65790505b5050505050815250508152602001906001019062003378565b60003660008062003451878787620046e2565b935093509350935093509350935093565b805160005b818110156200362957600083828151811062003487576200348762005d5c565b6020026020010151905060005b838110156200361e5782811462003615576000858281518110620034bc57620034bc62005d5c565b602002602001015190506000816001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003507573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200352d919062006298565b6001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200356b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003591919062006813565b9050836001600160a01b0316633400288b82620035b4856001600160a01b031690565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b158015620035f957600080fd5b505af11580156200360e573d6000803e3d6000fd5b5050505050505b60010162003494565b505060010162003467565b505050565b61ffff82166000908152601d6020908152604080832084845290915281206060916200365a8262004546565b1115620037155760006200366e826200473e565b6000818152601e602052604090208054919250906200368d90620066f5565b80601f0160208091040260200160405190810160405280929190818152602001828054620036bb90620066f5565b80156200370c5780601f10620036e0576101008083540402835291602001916200370c565b820191906000526020600020905b815481529060010190602001808311620036ee57829003601f168201915b50505050509250505b5092915050565b60608183036200373c5750604080516000815260208101909152620029a4565b83518211156200378f5760405162461bcd60e51b815260206004820152601760248201527f656e6420696e646578206f7574206f6620626f756e6473000000000000000000604482015260640162002656565b60006200379d848462006833565b90506000816001600160401b03811115620037bc57620037bc62005416565b604051908082528060200260200182016040528015620037e6578160200160208202803683370190505b50905060005b82811015620038465786620038028288620060e3565b8151811062003815576200381562005d5c565b602002602001015182828151811062003832576200383262005d5c565b6020908102919091010152600101620037ec565b5095945050505050565b60606018805480602002602001604051908101604052809291908181526020016000905b8282101562002af05783829060005260206000200180546200389690620066f5565b80601f0160208091040260200160405190810160405280929190818152602001828054620038c490620066f5565b8015620039155780601f10620038e95761010080835404028352916020019162003915565b820191906000526020600020905b815481529060010190602001808311620038f757829003601f168201915b50505050508152602001906001019062003874565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101562002af05760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620039fb57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620039bc5790505b505050505081525050815260200190600101906200394e565b600062003a228484620047ac565b905081811462003a665760405162461bcd60e51b815260206004820152600e60248201526d0ceead2c840dcdee840dac2e8c6d60931b604482015260640162002656565b50505050565b30633bbd6a9462003a7e87876200414b565b62003a8a888862004172565b86868662003a998c8c620047c9565b6040518863ffffffff1660e01b815260040162003abd979695949392919062006849565b600060405180830381600087803b15801562003ad857600080fd5b505af115801562002825573d6000803e3d6000fd5b8060206000836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003b31573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b57919062006813565b63ffffffff168152602081019190915260400160002080546001600160a01b0319166001600160a01b039290921691909117905550565b60606017805480602002602001604051908101604052809291908181526020016000905b8282101562002af057838290600052602060002001805462003bd490620066f5565b80601f016020809104026020016040519081016040528092919081815260200182805462003c0290620066f5565b801562003c535780601f1062003c275761010080835404028352916020019162003c53565b820191906000526020600020905b81548152906001019060200180831162003c3557829003601f168201915b50505050508152602001906001019062003bb2565b62000819828260008062002e6b565b60008062003c868484620047db565b915091505b9250929050565b600754600090610100900460ff161562003cb55750600754610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562003dc45760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b8284015282518083038401815260608301909352600092909162003d46917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001620068ab565b60408051601f198184030181529082905262003d6291620068de565b6000604051808303816000865af19150503d806000811462003da1576040519150601f19603f3d011682016040523d82523d6000602084013e62003da6565b606091505b509150508080602001905181019062003dc09190620068fc565b9150505b919050565b606060138054806020026020016040519081016040528092919081815260200182805480156200288a576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200286b575050505050905090565b60006020600062003e3d86866200414b565b63ffffffff16815260208101919091526040016000908120546001600160a01b031691508062003e6d8462004827565b915091506000604051806060016040528062003e8a898962004187565b63ffffffff16815260200162003ea189896200491e565b815260200162003eb2898962004930565b6001600160401b0316905290506001600160a01b038416630c0c389e84848462003edd8c8c62004172565b62003ee98d8d620047ac565b62003ef58e8e620047c9565b604051806020016040528060008152506040518963ffffffff1660e01b815260040162003f28969594939291906200691a565b6000604051808303818589803b15801562003f4257600080fd5b5088f115801562003f57573d6000803e3d6000fd5b50505050505050505050505050565b60008062003c86848462004957565b600062003f8385856200414b565b9050600062003f938686620049bb565b63ffffffff83166000908152601d60209081526040808320848452909152812091925062003fc28888620047ac565b905062003fd08282620049cd565b6000818152601e6020526040902062003feb888a83620069d6565b506000818152601f6020526040902062002825868883620069d6565b6200401560036000620013bf565b62002e4b62004a38565b604080516002808252606082018352600092602083019080368337019050506025549091506000906001600160a01b031682826200405d8162006aa2565b93508151811062004072576200407262005d5c565b6001600160a01b039283166020918202929092010152602654168282620040998162006aa2565b935081518110620040ae57620040ae62005d5c565b60200260200101906001600160a01b031690816001600160a01b031681525050620008198262003462565b6060836003620040eb82600062004bbd565b61ffff161462004123576200410281600062004bbd565b604051633a51740d60e01b815261ffff909116600482015260240162002656565b600062004131858562004c1e565b9050620041418660018362004c99565b9695505050505050565b60006200415d6031602d848662006abe565b620041689162006aea565b60e01c9392505050565b6000620029a4620041848484620049bb565b90565b60006200415d600d6009848662006abe565b36600062003c86605182858762006abe565b36600062003c86836051818762006abe565b60008083604051602001620041d39190620068de565b60408051601f1981840301815290829052620041f491859060200162006b19565b60405160208183030381529060405290508051602082016000f09150813b6200371557600080fd5b60008060008060006200423186600362004d0f565b9150915081620042965760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a436f6d706f7365206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002656565b604051630518e8ab60e41b8152309063518e8ab090620042bb90849060040162005a24565b606060405180830381865afa158015620042d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620042ff919062006b4c565b91986001600160801b039182169850911695509350505050565b6025546001600160a01b0316631f7fdffa8562004337868662004e4e565b62004343858762004ed9565b6040518463ffffffff1660e01b8152600401620043639392919062006b95565b600060405180830381600087803b1580156200437e57600080fd5b505af115801562004393573d6000803e3d6000fd5b5050505050505050565b80821462000819577f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50604051620044109060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a160408051818152600a81830152690808080808081319599d60b21b60608201526020810184905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a160408051818152600a81830152690808080808149a59da1d60b21b60608201526020810183905290517fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89181900360800190a16200081962004f59565b6000808060128414801590620044df575060228414155b15620044fe57604051638b4aa70b60e01b815260040160405180910390fd5b6200450c858560006200506c565b92506200451c8585600262005097565b9150602284146200452f5760006200453d565b6200453d8585601262005097565b90509250925092565b546001600160801b03808216600160801b9092048116919091031690565b80546000906001600160801b03600160801b82048116911681036200459c576040516375e52f4f60e01b815260040160405180910390fd5b600019016001600160801b039081166000818152600185016020526040812080549190558454909216600160801b909102179092555090565b6000620045e3838362004d0f565b509392505050565b600080600080620045fe85600262004d0f565b9150915081620046645760405162461bcd60e51b815260206004820152602a60248201527f4f7074696f6e7348656c7065723a206e617469766544726f70206f7074696f6e604482015269081b9bdd08199bdd5b9960b21b606482015260840162002656565b604051635caa7efb60e11b8152309063b954fdf6906200468990849060040162005a24565b6040805180830381865afa158015620046a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620046cc919062006beb565b6001600160801b03909116969095509350505050565b600036816001840181620046f88888846200506c565b6002929092019190506200470e888884620050c2565b94506001820161ffff821683016200472981838b8d62006abe565b979b909a50969850505061ffff160193505050565b60006200475e8254600160801b81046001600160801b0390811691161490565b156200477d576040516375e52f4f60e01b815260040160405180910390fd5b5080546000196001600160801b03600160801b9092048216011660009081526001909101602052604090205490565b6000620047be60716051848662006abe565b620029a49162006c1c565b36600062003c86836071818762006abe565b6000806030831462004800576040516361d0c2c760e11b815260040160405180910390fd5b6200480e8484600062005097565b91506200481e84846010620050ea565b90509250929050565b6000806000806200483a85600162004d0f565b91509150816200489f5760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a52656365697665206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002656565b60405163f93e1d6160e01b8152309063f93e1d6190620048c490849060040162005a24565b6040805180830381865afa158015620048e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004907919062006c3b565b6001600160801b0391821697911695509350505050565b6000620047be602d600d848662006abe565b60006200494260096001848662006abe565b6200494d9162006c6f565b60c01c9392505050565b600080601083148015906200496d575060208314155b156200498c57604051634796aee160e01b815260040160405180910390fd5b6200499a8484600062005097565b915060208314620049ad5760006200481e565b6200481e8484601062005097565b6000620047be60516031848662006abe565b81546001600160801b038082166000190191600160801b900481169082160362004a0a57604051638acb5f2760e01b815260040160405180910390fd5b6001600160801b0316600081815260018401602052604090209190915581546001600160801b031916179055565b60225460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b15801562004aa157600080fd5b505af115801562004ab6573d6000803e3d6000fd5b505060235460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b15801562004b2357600080fd5b505af115801562004b38573d6000803e3d6000fd5b50506024805460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea0000091810191909152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b15801562004ba857600080fd5b505af115801562003a66573d6000803e3d6000fd5b600062004bcc826002620060e3565b8351101562004c155760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b604482015260640162002656565b50016002015190565b60606001600160801b0382161562004c6857604080516001600160801b0319608086811b8216602084015285901b16603082015201604051602081830303815290604052620029a4565b6040516001600160801b0319608085901b166020820152603001604051602081830303815290604052905092915050565b606083600362004cab82600062004bbd565b61ffff161462004cc2576200410281600062004bbd565b84600162004cd1855162005112565b62004cde90600162006c9e565b868660405160200162004cf695949392919062006cbc565b6040516020818303038152906040529150509392505050565b601c5460405163e5c5e9a360e01b815260009160609183916001600160a01b03169063e5c5e9a39062004d4790889060040162005a24565b600060405180830381865afa15801562004d65573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262004d8f919081019062006d27565b50905060005b815181101562004e4557604051636e1775e360e01b8152600090819081903090636e1775e39062004dcd908890889060040162006242565b600060405180830381865afa15801562004deb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262004e15919081019062006d91565b9250925092508760ff168360ff160362004e3a575060019550935062003c8b92505050565b925062004d95915050565b50509250929050565b6060816001600160401b0381111562004e6b5762004e6b62005416565b60405190808252806020026020018201604052801562004e95578160200160208202803683370190505b50905060005b82811015620037155762004eb08185620060e3565b82828151811062004ec55762004ec562005d5c565b602090810291909101015260010162004e9b565b6060816001600160401b0381111562004ef65762004ef662005416565b60405190808252806020026020018201604052801562004f20578160200160208202803683370190505b50905060005b8281101562003715578382828151811062004f455762004f4562005d5c565b602090810291909101015260010162004f26565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156200505b5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262004ff69291602001620068ab565b60408051601f19818403018152908290526200501291620068de565b6000604051808303816000865af19150503d806000811462005051576040519150601f19603f3d011682016040523d82523d6000602084013e62005056565b606091505b505050505b6007805461ff001916610100179055565b600060028201620050808184868862006abe565b6200508b9162006df0565b60f01c95945050505050565b600060108201620050ab8184868862006abe565b620050b69162006e1f565b60801c95945050505050565b6000838383818110620050d957620050d962005d5c565b919091013560f81c95945050505050565b600060208201620050fe8184868862006abe565b620051099162006c1c565b95945050505050565b600061ffff82111562005143576040516306dfcc6560e41b8152601060048201526024810183905260440162002656565b5090565b613e478062006e4f83390190565b6155c1806200ac9683390190565b6114d6806201025783390190565b614ac0806201172d83390190565b61244180620161ed83390190565b612c70806201862e83390190565b611257806201b29e83390190565b6138e7806201c4f583390190565b610e2e806201fddc83390190565b6040518060400160405280600063ffffffff168152602001620052296040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b905290565b6040518060400160405280600063ffffffff168152602001620052296040518060400160405280600063ffffffff16815260200160006001600160a01b031681525090565b611a448062020c0a83390190565b63ffffffff811681146200529457600080fd5b50565b6001600160a01b03811681146200529457600080fd5b60008060408385031215620052c157600080fd5b8235620052ce8162005281565b91506020830135620052e08162005297565b809150509250929050565b60008083601f840112620052fe57600080fd5b5081356001600160401b038111156200531657600080fd5b60208301915083602082850101111562003c8b57600080fd5b600080602083850312156200534357600080fd5b82356001600160401b038111156200535a57600080fd5b6200536885828601620052eb565b90969095509350505050565b60ff811681146200529457600080fd5b600080604083850312156200539857600080fd5b8235620053a58162005374565b9150602083013560028110620052e057600080fd5b60008151808452602080850194506020840160005b83811015620053f65781516001600160a01b031687529582019590820190600101620053cf565b509495945050505050565b602081526000620029a46020830184620053ba565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b038111828210171562005451576200545162005416565b60405290565b604051601f8201601f191681016001600160401b038111828210171562005482576200548262005416565b604052919050565b60006001600160401b03821115620054a657620054a662005416565b50601f01601f191660200190565b600082601f830112620054c657600080fd5b8135620054dd620054d7826200548a565b62005457565b818152846020838601011115620054f357600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156200552657600080fd5b83356001600160401b038111156200553d57600080fd5b6200554b86828701620054b4565b93505060208401356200555e8162005374565b91506040840135620055708162005374565b809150509250925092565b60005b83811015620055985781810151838201526020016200557e565b50506000910152565b60008151808452620055bb8160208601602086016200557b565b601f01601f19169290920160200192915050565b60008282518085526020808601955060208260051b8401016020860160005b848110156200562057601f198684030189526200560d838351620055a1565b98840198925090830190600101620055ee565b5090979650505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015620056a257888303603f19018552815180516001600160a01b031684528701518784018790526200568e87850182620055cf565b958801959350509086019060010162005656565b509098975050505050505050565b600080600080600080600060c0888a031215620056cc57600080fd5b8735620056d98162005281565b96506020880135620056eb8162005297565b955060408801356001600160401b03808211156200570857600080fd5b620057168b838c01620054b4565b965060608a0135955060808a01359150620057318262005297565b90935060a089013590808211156200574857600080fd5b50620057578a828b01620052eb565b989b979a50959850939692959293505050565b600080600080608085870312156200578157600080fd5b84356200578e8162005281565b935060208501359250604085013591506060850135620057ae8162005297565b939692955090935050565b61ffff811681146200529457600080fd5b60008060408385031215620057de57600080fd5b8235620057eb81620057b9565b946020939093013593505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b84811015620058a357898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156200588d5783516001600160e01b0319168252928b019260019290920191908b019062005861565b50978a0197955050509187019160010162005823565b50919998505050505050505050565b600080600060408486031215620058c857600080fd5b83356001600160401b03811115620058df57600080fd5b620058ed86828701620052eb565b909790965060209590950135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60ff851681526060602082015260006200594960608301858762005901565b905082604083015295945050505050565b60006001600160401b0382111562005976576200597662005416565b5060051b60200190565b600060208083850312156200599457600080fd5b82356001600160401b03811115620059ab57600080fd5b8301601f81018513620059bd57600080fd5b8035620059ce620054d7826200595a565b81815260059190911b82018301908381019087831115620059ee57600080fd5b928401925b8284101562005a1957833562005a098162005297565b82529284019290840190620059f3565b979650505050505050565b602081526000620029a46020830184620055a1565b60008060006060848603121562005a4f57600080fd5b83356001600160401b0381111562005a6657600080fd5b8401601f8101861362005a7857600080fd5b8035602062005a8b620054d7836200595a565b82815260059290921b8301810191818101908984111562005aab57600080fd5b938201935b8385101562005acb5784358252938201939082019062005ab0565b999188013598505060409096013595945050505050565b60008151808452602080850194506020840160005b83811015620053f65781518752958201959082019060010162005af7565b602081526000620029a4602083018462005ae2565b602081526000620029a46020830184620055cf565b60008060008060006080868803121562005b5857600080fd5b85356001600160401b038082111562005b7057600080fd5b62005b7e89838a01620052eb565b9097509550602088013591508082111562005b9857600080fd5b5062005ba788828901620054b4565b93505060408601359150606086013562005bc18162005297565b809150509295509295909350565b60006020828403121562005be257600080fd5b8135620029a48162005297565b6000806040838503121562005c0357600080fd5b8235620057eb8162005281565b6001600160801b03811681146200529457600080fd5b60006020828403121562005c3957600080fd5b8135620029a48162005c10565b60008060006040848603121562005c5c57600080fd5b83356001600160401b038082111562005c7457600080fd5b62005c8287838801620052eb565b9095509350602086013591508082111562005c9c57600080fd5b5062005cab86828701620054b4565b9150509250925092565b6000806000806040858703121562005ccc57600080fd5b84356001600160401b038082111562005ce457600080fd5b62005cf288838901620052eb565b9096509450602087013591508082111562005d0c57600080fd5b5062005d1b87828801620052eb565b95989497509550505050565b60608152600062005d3c6060830186620055a1565b6001600160a01b0394851660208401529290931660409091015292915050565b634e487b7160e01b600052603260045260246000fd5b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015620056a257888303603f190185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905262005dde81860183620055a1565b96890196945050509086019060010162005d9b565b8051801515811462003dc457600080fd5b6000806040838503121562005e1857600080fd5b825162005e258162005297565b91506200481e6020840162005df3565b80516001600160401b038116811462003dc457600080fd5b805162003dc48162005374565b60008060006060848603121562005e7057600080fd5b62005e7b8462005e35565b9250602084015162005e8d8162005374565b6040850151909250620055708162005374565b600082601f83011262005eb257600080fd5b815162005ec3620054d7826200548a565b81815284602083860101111562005ed957600080fd5b62005eec8260208301602087016200557b565b949350505050565b60006020828403121562005f0757600080fd5b81516001600160401b0381111562005f1e57600080fd5b62005eec8482850162005ea0565b600082601f83011262005f3e57600080fd5b8151602062005f51620054d7836200595a565b8083825260208201915060208460051b87010193508684111562005f7457600080fd5b602086015b8481101562005f9d57805162005f8f8162005297565b835291830191830162005f79565b509695505050505050565b60006020828403121562005fbb57600080fd5b81516001600160401b038082111562005fd357600080fd5b9083019060c0828603121562005fe857600080fd5b62005ff26200542c565b62005ffd8362005e35565b81526200600d6020840162005e4d565b6020820152620060206040840162005e4d565b6040820152620060336060840162005e4d565b60608201526080830151828111156200604b57600080fd5b620060598782860162005f2c565b60808301525060a0830151828111156200607257600080fd5b620060808782860162005f2c565b60a08301525095945050505050565b8183823760009101908152919050565b606081526000620060b46060830186620055a1565b905083602083015260ff83166040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200334e576200334e620060cd565b63ffffffff851681526001600160a01b03841660208201526080604082018190526000906200612b90830185620055a1565b905082606083015295945050505050565b6000602082840312156200614f57600080fd5b5051919050565b6000806000606084860312156200616c57600080fd5b8351620061798162005374565b602085015160409095015190969495509392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015620056a257888303603f190185528151805163ffffffff168452878101516001600160a01b0316888501528681015160a0888601819052906200620382870182620055a1565b9150506060808301518187015250608080830151925085820381870152506200622d8183620055a1565b968901969450505090860190600101620061b9565b604081526000620062576040830185620055a1565b90508260208301529392505050565b60208152600062005eec60208301848662005901565b60ff81811683821601908111156200334e576200334e620060cd565b600060208284031215620062ab57600080fd5b8151620029a48162005297565b634e487b7160e01b600052602160045260246000fd5b600060018060a01b038089168352808816602084015260c06040840152620062fa60c0840188620053ba565b8187166060850152818616608085015283810360a08501526200631e8186620053ba565b9a9950505050505050505050565b60ff8716815260c0602082015260006200634a60c0830188620053ba565b6001600160a01b038716604084015282810360608401526200636d8187620053ba565b90506001600160401b038516608084015282810360a0840152620063928185620053ba565b9998505050505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015620056a257603f19898403810186528251805163ffffffff16855288015188850188905280516001600160401b0316888601528089015160ff9081166060808801919091528983015182166080808901919091529083015190911660a0808801919091529082015160c080880152906200644b610100880183620053ba565b920151868303840160e0880152919050620064678183620053ba565b978a0197955050509187019150600101620063c8565b602080825282518282018190526000919060409081850190868401855b82811015620064e1578151805163ffffffff9081168652908701518051909116878601528601516001600160a01b031685850152606090930192908501906001016200649a565b5091979650505050505050565b6000602082840312156200650157600080fd5b8151620029a48162005c10565b6001600160801b03818116838216028082169190828114620065345762006534620060cd565b505092915050565b602080825282518282018190526000919060409081850190868401855b82811015620064e1578151805163ffffffff90811686529087015180516001600160801b031688870152808801516001600160401b0316878701528601511660608501526080909301929085019060010162006559565b600060ff821660ff8103620065c957620065c9620060cd565b60010192915050565b602080825282518282018190526000919060409081850190868401855b82811015620064e1578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c09093019290850190600101620065ef565b602080825282518282018190526000919060409081850190868401855b82811015620064e1578151805163ffffffff168552868101516001600160401b0316878601528581015161ffff16868601526060908101516001600160801b0316908501526080909301929085019060010162006681565b60ff82811682821603908111156200334e576200334e620060cd565b600181811c908216806200670a57607f821691505b6020821081036200672b57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038881168252871660208201526040810186905261ffff8516606082015260c06080820181905260009062006771908301858762005901565b82810360a08401526200631e8185620055a1565b600081620067975762006797620060cd565b506000190190565b604081526000620067b46040830185620055a1565b8281036020840152620051098185620055a1565b608081526000620067dd6080830187620055a1565b8281036020840152620067f18187620055a1565b604084019590955250506001600160a01b039190911660609091015292915050565b6000602082840312156200682657600080fd5b8151620029a48162005281565b818103818111156200334e576200334e620060cd565b63ffffffff88168152600060018060a01b03808916602084015260c060408401526200687960c0840189620055a1565b876060850152818716608085015283810360a08501526200689c81868862005901565b9b9a5050505050505050505050565b6001600160e01b0319831681528151600090620068d08160048501602087016200557b565b919091016004019392505050565b60008251620068f28184602087016200557b565b9190910192915050565b6000602082840312156200690f57600080fd5b620029a48262005df3565b63ffffffff8751168152602087015160208201526001600160401b03604088015116604082015260018060a01b038616606082015284608082015260e060a082015260006200696e60e08301858762005901565b82810360c0840152620063928185620055a1565b601f82111562003629576000816000526020600020601f850160051c81016020861015620069ad5750805b601f850160051c820191505b81811015620069ce57828155600101620069b9565b505050505050565b6001600160401b03831115620069f057620069f062005416565b62006a088362006a018354620066f5565b8362006982565b6000601f84116001811462006a3f576000851562006a265750838201355b600019600387901b1c1916600186901b17835562000ab4565b600083815260209020601f19861690835b8281101562006a72578685013582556020948501946001909201910162006a50565b508682101562006a905760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60006001820162006ab75762006ab7620060cd565b5060010190565b6000808585111562006acf57600080fd5b8386111562006add57600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015620065345760049490940360031b84901b1690921692915050565b6000835162006b2d8184602088016200557b565b83519083019062006b438183602088016200557b565b01949350505050565b60008060006060848603121562006b6257600080fd5b835162006b6f81620057b9565b602085015190935062006b828162005c10565b6040850151909250620055708162005c10565b6001600160a01b038416815260806020820181905260009062006bbb9083018562005ae2565b828103604084015262006bcf818562005ae2565b8381036060909401939093525050600081526020019392505050565b6000806040838503121562006bff57600080fd5b825162006c0c8162005c10565b6020939093015192949293505050565b803560208310156200334e57600019602084900360031b1b1692915050565b6000806040838503121562006c4f57600080fd5b825162006c5c8162005c10565b6020840151909250620052e08162005c10565b6001600160c01b03198135818116916008851015620065345760089490940360031b84901b1690921692915050565b61ffff818116838216019080821115620037155762003715620060cd565b6000865162006cd0818460208b016200557b565b6001600160f81b031960f888811b82169285019283526001600160f01b031960f089901b16600184015286901b166003820152835162006d188160048401602088016200557b565b01600401979650505050505050565b6000806040838503121562006d3b57600080fd5b82516001600160401b038082111562006d5357600080fd5b62006d618683870162005ea0565b9350602085015191508082111562006d7857600080fd5b5062006d878582860162005ea0565b9150509250929050565b60008060006060848603121562006da757600080fd5b835162006db48162005374565b60208501519093506001600160401b0381111562006dd157600080fd5b62006ddf8682870162005ea0565b925050604084015190509250925092565b6001600160f01b03198135818116916002851015620065345760029490940360031b84901b1690921692915050565b6001600160801b03198135818116916010851015620065345760109490940360031b84901b169092169291505056fe60a06040523480156200001157600080fd5b5060405162003e4738038062003e478339810160408190526200003491620001be565b82828281818181818180896200004a8162000127565b506001600160a01b0381166200007a57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000858162000139565b506001600160a01b038083166080528116620000b457604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000fc57600080fd5b505af115801562000111573d6000803e3d6000fd5b5050505050505050505050505050505062000415565b600262000135828262000349565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620001b957600080fd5b919050565b600080600060608486031215620001d457600080fd5b83516001600160401b0380821115620001ec57600080fd5b818601915086601f8301126200020157600080fd5b8151818111156200021657620002166200018b565b604051601f8201601f19908116603f011681019083821181831017156200024157620002416200018b565b816040528281526020935089848487010111156200025e57600080fd5b600091505b8282101562000282578482018401518183018501529083019062000263565b60008484830101528097505050506200029d818701620001a1565b93505050620002af60408501620001a1565b90509250925092565b600181811c90821680620002cd57607f821691505b602082108103620002ee57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000344576000816000526020600020601f850160051c810160208610156200031f5750805b601f850160051c820191505b8181101562000340578281556001016200032b565b5050505b505050565b81516001600160401b038111156200036557620003656200018b565b6200037d81620003768454620002b8565b84620002f4565b602080601f831160018114620003b557600084156200039c5750858301515b600019600386901b1c1916600185901b17855562000340565b600085815260208120601f198616915b82811015620003e657888601518255948401946001909101908401620003c5565b5085821015620004055787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6080516139e562000462600039600081816104840152818161087f0152818161102a01528181611329015281816115e101528181611a2901528181611f7b015261203401526139e56000f3fe60806040526004361061022f5760003560e01c80637d25a05e1161012e578063bd815db0116100ab578063e985e9c51161006f578063e985e9c5146106f1578063f242432a14610711578063f2fde38b14610731578063fc0c546a14610408578063ff7bd03d1461075157600080fd5b8063bd815db01461065e578063ca5eb5e114610671578063d045a0dc14610691578063d4243885146106a4578063d58c3aa8146106c457600080fd5b8063b21a33e4116100f2578063b21a33e4146105bc578063b731ea0a146105d1578063b98bd070146105f1578063bb0b6a5314610611578063bc70b3541461063e57600080fd5b80637d25a05e146104fb57806382413eac146105365780638da5cb5b14610556578063a22cb46514610574578063a72f5dd81461059457600080fd5b80632eb2c2d6116101bc5780635a0dfe4d116101805780635a0dfe4d1461043b5780635e280f11146104725780636fc1b31e146104a6578063715018a6146104c6578063731133e9146104db57600080fd5b80632eb2c2d61461039b5780633400288b146103bb5780634e1273f4146103db57806352ae2879146104085780635535d4611461041b57600080fd5b806313137d651161020357806313137d65146102fc57806317442b70146103115780631f5e1334146103335780631f7fdffa1461035b5780632250032b1461037b57600080fd5b8062fdd58e1461023457806301ffc9a7146102675780630e89341c14610297578063111ecdad146102c4575b600080fd5b34801561024057600080fd5b5061025461024f366004612689565b610771565b6040519081526020015b60405180910390f35b34801561027357600080fd5b506102876102823660046126cb565b610799565b604051901515815260200161025e565b3480156102a357600080fd5b506102b76102b23660046126e8565b6107e9565b60405161025e9190612751565b3480156102d057600080fd5b506007546102e4906001600160a01b031681565b6040516001600160a01b03909116815260200161025e565b61030f61030a3660046127c4565b61087d565b005b34801561031d57600080fd5b506040805160018152600260208201520161025e565b34801561033f57600080fd5b50610348600181565b60405161ffff909116815260200161025e565b34801561036757600080fd5b5061030f6103763660046129fd565b61093d565b61038e610389366004612aa9565b61094f565b60405161025e9190612b16565b3480156103a757600080fd5b5061030f6103b6366004612b58565b610a2c565b3480156103c757600080fd5b5061030f6103d6366004612c1e565b610a93565b3480156103e757600080fd5b506103fb6103f6366004612c3a565b610aa9565b60405161025e9190612d37565b34801561041457600080fd5b50306102e4565b34801561042757600080fd5b506102b7610436366004612d5c565b610b75565b34801561044757600080fd5b50610287610456366004612c1e565b63ffffffff919091166000908152600460205260409020541490565b34801561047e57600080fd5b506102e47f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b257600080fd5b5061030f6104c1366004612d8f565b610c1a565b3480156104d257600080fd5b5061030f610c77565b3480156104e757600080fd5b5061030f6104f6366004612dac565b610c8b565b34801561050757600080fd5b5061051e610516366004612c1e565b600092915050565b6040516001600160401b03909116815260200161025e565b34801561054257600080fd5b50610287610551366004612e02565b610c97565b34801561056257600080fd5b506003546001600160a01b03166102e4565b34801561058057600080fd5b5061030f61058f366004612e76565b610cac565b3480156105a057600080fd5b506040805163acff303160e01b8152600160208201520161025e565b3480156105c857600080fd5b50610348600281565b3480156105dd57600080fd5b506005546102e4906001600160a01b031681565b3480156105fd57600080fd5b5061030f61060c366004612ef3565b610cb7565b34801561061d57600080fd5b5061025461062c366004612f34565b60046020526000908152604090205481565b34801561064a57600080fd5b506102b7610659366004612f4f565b610cd1565b61030f61066c366004612ef3565b610e79565b34801561067d57600080fd5b5061030f61068c366004612d8f565b611003565b61030f61069f3660046127c4565b611089565b3480156106b057600080fd5b5061030f6106bf366004612d8f565b6110b8565b3480156106d057600080fd5b506106e46106df366004612faf565b61110e565b60405161025e9190612ff5565b3480156106fd57600080fd5b5061028761070c36600461300c565b611154565b34801561071d57600080fd5b5061030f61072c36600461303a565b611182565b34801561073d57600080fd5b5061030f61074c366004612d8f565b6111e1565b34801561075d57600080fd5b5061028761076c3660046130a2565b61121f565b6000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806107ca57506001600160e01b031982166303a24d0760e21b145b8061079357506301ffc9a760e01b6001600160e01b0319831614610793565b6060600280546107f8906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610824906130be565b80156108715780601f1061084657610100808354040283529160200191610871565b820191906000526020600020905b81548152906001019060200180831161085457829003601f168201915b50505050509050919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146108cd576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b602087018035906108e7906108e2908a612f34565b611255565b14610925576108f96020880188612f34565b60405163309afaf360e21b815263ffffffff9091166004820152602088013560248201526044016108c4565b61093487878787878787611291565b50505050505050565b610949848484846113a5565b50505050565b61095761262d565b6109ea61096760408601866130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506109a69250505060608701876130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506109e5925050506020880188612f34565b6113dd565b6000806109f686611416565b9092509050610a22610a0b6020880188612f34565b8383610a1c368a90038a018a61313b565b886115ae565b9695505050505050565b336001600160a01b0386168114801590610a4d5750610a4b8682611154565b155b15610a7e5760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016108c4565b610a8b86868686866116b9565b505050505050565b610a9b611719565b610aa58282611746565b5050565b60608151835114610ada5781518351604051635b05999160e01b8152600481019290925260248201526044016108c4565b600083516001600160401b03811115610af557610af5612863565b604051908082528060200260200182016040528015610b1e578160200160208202803683370190505b50905060005b8451811015610b6d57602080820286010151610b4890602080840287010151610771565b828281518110610b5a57610b5a61316d565b6020908102919091010152600101610b24565b509392505050565b600660209081526000928352604080842090915290825290208054610b99906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc5906130be565b8015610c125780601f10610be757610100808354040283529160200191610c12565b820191906000526020600020905b815481529060010190602001808311610bf557829003601f168201915b505050505081565b610c22611719565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610c7f611719565b610c89600061179b565b565b610949848484846117ed565b6001600160a01b03811630145b949350505050565b610aa533838361184a565b610cbf611719565b610aa5610ccc8284613183565b6118e0565b63ffffffff8416600090815260066020908152604080832061ffff87168452909152812080546060929190610d05906130be565b80601f0160208091040260200160405190810160405280929190818152602001828054610d31906130be565b8015610d7e5780601f10610d5357610100808354040283529160200191610d7e565b820191906000526020600020905b815481529060010190602001808311610d6157829003601f168201915b505050505090508051600003610dce5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610ca49350505050565b6000839003610dde579050610ca4565b60028310610e5c57610e2584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119e792505050565b80610e33846002818861324c565b604051602001610e4593929190613276565b604051602081830303815290604052915050610ca4565b8383604051639a6d49cd60e01b81526004016108c49291906132c7565b60005b81811015610f825736838383818110610e9757610e9761316d565b9050602002810190610ea991906132db565b9050610edc610ebb6020830183612f34565b602083013563ffffffff919091166000908152600460205260409020541490565b610ee65750610f7a565b3063d045a0dc60c08301358360a0810135610f056101008301836132fc565b610f16610100890160e08a01612d8f565b610f246101208a018a6132fc565b6040518963ffffffff1660e01b8152600401610f469796959493929190613357565b6000604051808303818588803b158015610f5f57600080fd5b505af1158015610f73573d6000803e3d6000fd5b5050505050505b600101610e7c565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610fc1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe991908101906133dd565b604051638351eea760e01b81526004016108c49190612751565b61100b611719565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561106e57600080fd5b505af1158015611082573d6000803e3d6000fd5b5050505050565b3330146110a95760405163029a949d60e31b815260040160405180910390fd5b61093487878787878787610925565b6110c0611719565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610c6c565b604080518082019091526000808252602082015260008061112e85611416565b909250905061114b6111436020870187612f34565b838387611a13565b95945050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b336001600160a01b03861681148015906111a357506111a18682611154565b155b156111d45760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016108c4565b610a8b8686868686611aeb565b6111e9611719565b6001600160a01b03811661121357604051631e4fbdf760e01b8152600060048201526024016108c4565b61121c8161179b565b50565b60006020820180359060049083906112379086612f34565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260046020526040812054806107935760405163f6ff4fb760e01b815263ffffffff841660048201526024016108c4565b60006112a36112a08787611b70565b90565b90506000806112b28888611b8f565b90925090506112cf8383836112ca60208f018f612f34565b611d01565b6112d98888611d1c565b1561139957600061130f6112f360608d0160408e0161344a565b61130060208e018e612f34565b61130a8c8c611d77565b611e1c565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906113659087908e906000908790600401613467565b600060405180830381600087803b15801561137f57600080fd5b505af1158015611393573d6000803e3d6000fd5b50505050505b50505050505050505050565b6001600160a01b0384166113cf57604051632bfa23e760e11b8152600060048201526024016108c4565b610949600085858585611e4b565b6113e73330611154565b61140657604051634ddd35b760e01b81523360048201526024016108c4565b611411338484611e9e565b505050565b60608060006114e8602085013561143060408701876130f2565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061146f9250505060608801886130f2565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506114ae9250505060a08901896132fc565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ee492505050565b90935090506000816114fb5760016114fe565b60025b905061151e6115106020870187612f34565b8261065960808901896132fc565b6007549093506001600160a01b0316156115a75760075460405163043a78eb60e01b81526001600160a01b039091169063043a78eb906115649087908790600401613498565b602060405180830381865afa158015611581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a591906134bd565b505b5050915091565b6115b661262d565b60006115c58460000151611f4f565b6020850151909150156115df576115df8460200151611f77565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff16815260200161162f8c611255565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161166b9291906134da565b60806040518083038185885af1158015611689573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116ae9190613583565b979650505050505050565b6001600160a01b0384166116e357604051632bfa23e760e11b8152600060048201526024016108c4565b6001600160a01b03851661170c57604051626a0d4560e21b8152600060048201526024016108c4565b6110828585858585611e4b565b6003546001600160a01b03163314610c895760405163118cdaa760e01b81523360048201526024016108c4565b63ffffffff8216600081815260046020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03841661181757604051632bfa23e760e11b8152600060048201526024016108c4565b60408051600180825260208201869052818301908152606082018590526080820190925290610a8b600087848487611e4b565b6001600160a01b0382166118735760405162ced3e160e81b8152600060048201526024016108c4565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60005b81518110156119b7576119128282815181106119015761190161316d565b6020026020010151604001516119e7565b8181815181106119245761192461316d565b602002602001015160400151600660008484815181106119465761194661316d565b60200260200101516000015163ffffffff1663ffffffff16815260200190815260200160002060008484815181106119805761198061316d565b60200260200101516020015161ffff1661ffff16815260200190815260200160002090816119ae9190613615565b506001016118e3565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610c6c91906136d4565b600281015161ffff8116600314610aa55781604051639a6d49cd60e01b81526004016108c49190612751565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611a7689611255565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611aab9291906134da565b6040805180830381865afa158015611ac7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114b919061375f565b6001600160a01b038416611b1557604051632bfa23e760e11b8152600060048201526024016108c4565b6001600160a01b038516611b3e57604051626a0d4560e21b8152600060048201526024016108c4565b604080516001808252602082018690528183019081526060820185905260808201909252906109348787848487611e4b565b6000611b7f602082848661324c565b611b889161377b565b9392505050565b6060806000611bd385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061205992505050565b9050806001600160401b03811115611bed57611bed612863565b604051908082528060200260200182016040528015611c16578160200160208202803683370190505b509250806001600160401b03811115611c3157611c31612863565b604051908082528060200260200182016040528015611c5a578160200160208202803683370190505b50915060005b81811015611cf857611c7e602082026060810190604001878961324c565b810190611c8b91906126e8565b848281518110611c9d57611c9d61316d565b602090810291909101810191909152611cc690828102908402016060810190604001878961324c565b810190611cd391906126e8565b838281518110611ce557611ce561316d565b6020908102919091010152600101611c60565b50509250929050565b610949848484604051806020016040528060008152506113a5565b604080516020601f8401819004810282018101835283825260009291611d5a9086868083860183828082843760009201919091525061205992505050565b611d6491906137af565b611d6e91906137c6565b90911192915050565b60606000611dba84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061205992505050565b90508383611dc98360206137af565b611dd49060406137c6565b611ddf92829061324c565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092979650505050505050565b6060838383604051602001611e33939291906137d9565b60405160208183030381529060405290509392505050565b611e5785858585612060565b6001600160a01b038416156110825782513390600103611e905760208481015190840151611e89838989858589612274565b5050610a8b565b610a8b818787878787612398565b6001600160a01b038316611ec757604051626a0d4560e21b8152600060048201526024016108c4565b611411836000848460405180602001604052806000815250611e4b565b8051606090151580611f1b578451604051611f0791889188908890602001613848565b604051602081830303815290604052611f44565b8451604051611f34918891889088908890602001613869565b6040516020818303038152906040525b915094509492505050565b6000813414611f73576040516304fb820960e51b81523460048201526024016108c4565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffb91906138a6565b90506001600160a01b038116612024576040516329b99a9560e11b815260040160405180910390fd5b610aa56001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612481565b6040015190565b805182511461208f5781518151604051635b05999160e01b8152600481019290925260248201526044016108c4565b3360005b8351811015612195576020818102858101820151908501909101516001600160a01b03881615612146576000828152602081815260408083206001600160a01b038c1684529091529020548181101561211f576040516303dee4c560e01b81526001600160a01b038a1660048201526024810182905260448101839052606481018490526084016108c4565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b0387161561218b576000828152602081815260408083206001600160a01b038b168452909152812080548392906121859084906137c6565b90915550505b5050600101612093565b5082516001036122165760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051612207929190918252602082015260400190565b60405180910390a45050611082565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516122659291906138c3565b60405180910390a45050505050565b6001600160a01b0384163b15610a8b5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906122b890899089908890889088906004016138e8565b6020604051808303816000875af19250505080156122f3575060408051601f3d908101601f191682019092526122f091810190613922565b60015b61235c573d808015612321576040519150601f19603f3d011682016040523d82523d6000602084013e612326565b606091505b50805160000361235457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b1461093457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b6001600160a01b0384163b15610a8b5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906123dc908990899088908890889060040161393f565b6020604051808303816000875af1925050508015612417575060408051601f3d908101601f1916820190925261241491810190613922565b60015b612445573d808015612321576040519150601f19603f3d011682016040523d82523d6000602084013e612326565b6001600160e01b0319811663bc197c8160e01b1461093457604051632bfa23e760e11b81526001600160a01b03861660048201526024016108c4565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610949918691906000906124e790841683612535565b9050805160001415801561250c57508080602001905181019061250a91906134bd565b155b1561141157604051635274afe760e01b81526001600160a01b03841660048201526024016108c4565b6060611b888383600084600080856001600160a01b0316848660405161255b919061399d565b60006040518083038185875af1925050503d8060008114612598576040519150601f19603f3d011682016040523d82523d6000602084013e61259d565b606091505b5091509150610a228683836060826125bd576125b882612604565b611b88565b81511580156125d457506001600160a01b0384163b155b156125fd57604051639996b31560e01b81526001600160a01b03851660048201526024016108c4565b5080611b88565b8051156126145780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b0316815260200161266f604051806040016040528060008152602001600081525090565b905290565b6001600160a01b038116811461121c57600080fd5b6000806040838503121561269c57600080fd5b82356126a781612674565b946020939093013593505050565b6001600160e01b03198116811461121c57600080fd5b6000602082840312156126dd57600080fd5b8135611b88816126b5565b6000602082840312156126fa57600080fd5b5035919050565b60005b8381101561271c578181015183820152602001612704565b50506000910152565b6000815180845261273d816020860160208601612701565b601f01601f19169290920160200192915050565b602081526000611b886020830184612725565b60006060828403121561277657600080fd5b50919050565b60008083601f84011261278e57600080fd5b5081356001600160401b038111156127a557600080fd5b6020830191508360208285010111156127bd57600080fd5b9250929050565b600080600080600080600060e0888a0312156127df57600080fd5b6127e98989612764565b96506060880135955060808801356001600160401b038082111561280c57600080fd5b6128188b838c0161277c565b909750955060a08a0135915061282d82612674565b90935060c0890135908082111561284357600080fd5b506128508a828b0161277c565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561289b5761289b612863565b60405290565b604051606081016001600160401b038111828210171561289b5761289b612863565b604051601f8201601f191681016001600160401b03811182821017156128eb576128eb612863565b604052919050565b60006001600160401b0382111561290c5761290c612863565b5060051b60200190565b600082601f83011261292757600080fd5b8135602061293c612937836128f3565b6128c3565b8083825260208201915060208460051b87010193508684111561295e57600080fd5b602086015b8481101561297a5780358352918301918301612963565b509695505050505050565b60006001600160401b0382111561299e5761299e612863565b50601f01601f191660200190565b600082601f8301126129bd57600080fd5b81356129cb61293782612985565b8181528460208386010111156129e057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612a1357600080fd5b8435612a1e81612674565b935060208501356001600160401b0380821115612a3a57600080fd5b612a4688838901612916565b94506040870135915080821115612a5c57600080fd5b612a6888838901612916565b93506060870135915080821115612a7e57600080fd5b50612a8b878288016129ac565b91505092959194509250565b600060e0828403121561277657600080fd5b60008060008385036080811215612abf57600080fd5b84356001600160401b03811115612ad557600080fd5b612ae187828801612a97565b9450506040601f1982011215612af657600080fd5b506020840191506060840135612b0b81612674565b809150509250925092565b6000608082019050825182526001600160401b0360208401511660208301526040830151612b51604084018280518252602090810151910152565b5092915050565b600080600080600060a08688031215612b7057600080fd5b8535612b7b81612674565b94506020860135612b8b81612674565b935060408601356001600160401b0380821115612ba757600080fd5b612bb389838a01612916565b94506060880135915080821115612bc957600080fd5b612bd589838a01612916565b93506080880135915080821115612beb57600080fd5b50612bf8888289016129ac565b9150509295509295909350565b803563ffffffff81168114612c1957600080fd5b919050565b60008060408385031215612c3157600080fd5b6126a783612c05565b60008060408385031215612c4d57600080fd5b82356001600160401b0380821115612c6457600080fd5b818501915085601f830112612c7857600080fd5b81356020612c88612937836128f3565b82815260059290921b84018101918181019089841115612ca757600080fd5b948201945b83861015612cce578535612cbf81612674565b82529482019490820190612cac565b96505086013592505080821115612ce457600080fd5b50612cf185828601612916565b9150509250929050565b60008151808452602080850194506020840160005b83811015612d2c57815187529582019590820190600101612d10565b509495945050505050565b602081526000611b886020830184612cfb565b803561ffff81168114612c1957600080fd5b60008060408385031215612d6f57600080fd5b612d7883612c05565b9150612d8660208401612d4a565b90509250929050565b600060208284031215612da157600080fd5b8135611b8881612674565b60008060008060808587031215612dc257600080fd5b8435612dcd81612674565b9350602085013592506040850135915060608501356001600160401b03811115612df657600080fd5b612a8b878288016129ac565b60008060008060a08587031215612e1857600080fd5b612e228686612764565b935060608501356001600160401b03811115612e3d57600080fd5b612e498782880161277c565b9094509250506080850135612e5d81612674565b939692955090935050565b801515811461121c57600080fd5b60008060408385031215612e8957600080fd5b8235612e9481612674565b91506020830135612ea481612e68565b809150509250929050565b60008083601f840112612ec157600080fd5b5081356001600160401b03811115612ed857600080fd5b6020830191508360208260051b85010111156127bd57600080fd5b60008060208385031215612f0657600080fd5b82356001600160401b03811115612f1c57600080fd5b612f2885828601612eaf565b90969095509350505050565b600060208284031215612f4657600080fd5b611b8882612c05565b60008060008060608587031215612f6557600080fd5b612f6e85612c05565b9350612f7c60208601612d4a565b925060408501356001600160401b03811115612f9757600080fd5b612fa38782880161277c565b95989497509550505050565b60008060408385031215612fc257600080fd5b82356001600160401b03811115612fd857600080fd5b612fe485828601612a97565b9250506020830135612ea481612e68565b815181526020808301519082015260408101610793565b6000806040838503121561301f57600080fd5b823561302a81612674565b91506020830135612ea481612674565b600080600080600060a0868803121561305257600080fd5b853561305d81612674565b9450602086013561306d81612674565b9350604086013592506060860135915060808601356001600160401b0381111561309657600080fd5b612bf8888289016129ac565b6000606082840312156130b457600080fd5b611b888383612764565b600181811c908216806130d257607f821691505b60208210810361277657634e487b7160e01b600052602260045260246000fd5b6000808335601e1984360301811261310957600080fd5b8301803591506001600160401b0382111561312357600080fd5b6020019150600581901b36038213156127bd57600080fd5b60006040828403121561314d57600080fd5b613155612879565b82358152602083013560208201528091505092915050565b634e487b7160e01b600052603260045260246000fd5b6000613191612937846128f3565b80848252602080830192508560051b8501368111156131af57600080fd5b855b818110156132405780356001600160401b03808211156131d15760008081fd5b8189019150606082360312156131e75760008081fd5b6131ef6128a1565b6131f883612c05565b8152613205868401612d4a565b868201526040808401358381111561321d5760008081fd5b613229368287016129ac565b9183019190915250875250509382019382016131b1565b50919695505050505050565b6000808585111561325c57600080fd5b8386111561326957600080fd5b5050820193919092039150565b60008451613288818460208901612701565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610ca460208301848661329e565b6000823561013e198336030181126132f257600080fd5b9190910192915050565b6000808335601e1984360301811261331357600080fd5b8301803591506001600160401b0382111561332d57600080fd5b6020019150368190038213156127bd57600080fd5b6001600160401b038116811461121c57600080fd5b63ffffffff61336589612c05565b168152602088013560208201526000604089013561338281613342565b6001600160401b03811660408401525087606083015260e060808301526133ad60e08301878961329e565b6001600160a01b03861660a084015282810360c08401526133cf81858761329e565b9a9950505050505050505050565b6000602082840312156133ef57600080fd5b81516001600160401b0381111561340557600080fd5b8201601f8101841361341657600080fd5b805161342461293782612985565b81815285602083850101111561343957600080fd5b61114b826020830160208601612701565b60006020828403121561345c57600080fd5b8135611b8881613342565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000610a226080830184612725565b6040815260006134ab6040830185612725565b828103602084015261114b8185612725565b6000602082840312156134cf57600080fd5b8151611b8881612e68565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261351060e0840182612725565b90506060850151603f198483030160a085015261352d8282612725565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561356557600080fd5b61356d612879565b9050815181526020820151602082015292915050565b60006080828403121561359557600080fd5b61359d6128a1565b8251815260208301516135af81613342565b60208201526135c18460408501613553565b60408201529392505050565b601f821115611411576000816000526020600020601f850160051c810160208610156135f65750805b601f850160051c820191505b81811015610a8b57828155600101613602565b81516001600160401b0381111561362e5761362e612863565b6136428161363c84546130be565b846135cd565b602080601f831160018114613677576000841561365f5750858301515b600019600386901b1c1916600185901b178555610a8b565b600085815260208120601f198616915b828110156136a657888601518255948401946001909101908401613687565b50858210156136c45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561375157888303603f190185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261373d81860183612725565b9689019694505050908601906001016136fd565b509098975050505050505050565b60006040828403121561377157600080fd5b611b888383613553565b8035602083101561079357600019602084900360031b1b1692915050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761079357610793613799565b8082018082111561079357610793613799565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061381481600c850160208701612701565b91909101600c01949350505050565b80516000906020808401838315612d2c57815187529582019590820190600101612d10565b8481528360208201526000610a226138636040840186613823565b84613823565b858152846020820152600061388a6138846040840187613823565b85613823565b835161389a818360208801612701565b01979650505050505050565b6000602082840312156138b857600080fd5b8151611b8881612674565b6040815260006138d66040830185612cfb565b828103602084015261114b8185612cfb565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906116ae90830184612725565b60006020828403121561393457600080fd5b8151611b88816126b5565b6001600160a01b0386811682528516602082015260a06040820181905260009061396b90830186612cfb565b828103606084015261397d8186612cfb565b905082810360808401526139918185612725565b98975050505050505050565b600082516132f281846020870161270156fea2646970667358221220821dbd374ba81349ad36112c4f0566b1ec767a4134f68c2e85102e028aad346764736f6c6343000816003360c06040526001600d553480156200001657600080fd5b50604051620055c1380380620055c18339810160408190526200003991620002cd565b81816001600160a01b0381166200006b57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200007681620000cd565b5063ffffffff166080526040516200008e90620002bf565b604051809103906000f080158015620000ab573d6000803e3d6000fd5b506001600160a01b031660a0819052620000c5906200011d565b50506200034a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001276200028e565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019991906200031f565b620001b75760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620001f25760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910160405180910390a150565b6000546001600160a01b03163314620002bd5760405163118cdaa760e01b815233600482015260240162000062565b565b6101e380620053de83390190565b60008060408385031215620002e157600080fd5b825163ffffffff81168114620002f657600080fd5b60208401519092506001600160a01b03811681146200031457600080fd5b809150509250929050565b6000602082840312156200033257600080fd5b815180151581146200034357600080fd5b9392505050565b60805160a05161504b6200039360003960006107810152600081816105310152818161278901528181612f7b01528181612fe20152818161355301526135ba015261504b6000f3fe6080604052600436106103505760003560e01c80639132e5c3116101c6578063c9fc7bcd116100f7578063ddc28c5811610095578063e8964e811161006f578063e8964e8114610b8f578063ef667aa114610baf578063f2fde38b14610bfa578063f64be4c714610c1a57600080fd5b8063ddc28c5814610b2e578063e1758bd814610b5b578063e4fe1d9414610b6f57600080fd5b8063d4b4ec8f116100d1578063d4b4ec8f14610a72578063d70b890214610a92578063dc706a6214610ab2578063dc93c8a214610ae257600080fd5b8063c9fc7bcd146109f6578063ca5eb5e114610a3d578063cb5026b914610a5d57600080fd5b8063a7229fd911610164578063aafea3121161013e578063aafea31214610976578063b96a277f14610996578063c28e0eed146109b6578063c9a54a99146109d657600080fd5b8063a7229fd914610916578063a825d74714610936578063aafe5e071461095657600080fd5b80639c6d7340116101a05780639c6d73401461086f5780639d7f9775146108b6578063a0dd43fc146108d6578063a718531b146108f657600080fd5b80639132e5c31461081a57806391d20fa11461083c5780639535ff301461084f57600080fd5b80635b17bb70116102a05780636f50a8031161023e57806379624ca91161021857806379624ca9146107a35780637cb59012146107bc578063861e1ca5146107dc5780638da5cb5b146107fc57600080fd5b80636f50a80314610724578063715018a61461075a578063733180911461076f57600080fd5b80636a14d7151161027a5780636a14d715146106655780636bf73fa3146106855780636dbd9f90146106a55780636e83f5bb146106c557600080fd5b80635b17bb70146105b65780636750cd4c14610615578063697fe6b61461064557600080fd5b80632baf0be71161030d578063402f8468116102e7578063402f8468146104c057806340f80683146104ff578063416ecebf1461051f578063587cde1e1461056857600080fd5b80632baf0be7146104355780632e80fbf31461045957806335d330b01461047957600080fd5b80630c0c389e1461035557806314f651a91461036a578063183c834f146103a85780632637a450146103c85780632a56c1b0146103e85780632b3197b914610408575b600080fd5b610368610363366004613ef7565b610c50565b005b34801561037657600080fd5b5061037f610d4e565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103b457600080fd5b506103686103c3366004613fa6565b610d80565b6103db6103d6366004613ff1565b611027565b60405161039f9190614043565b3480156103f457600080fd5b50610368610403366004614085565b61114d565b34801561041457600080fd5b506104286104233660046140f4565b6111ed565b60405161039f9190614198565b34801561044157600080fd5b5061044b60001981565b60405190815260200161039f565b34801561046557600080fd5b506103686104743660046141c2565b6112b8565b34801561048557600080fd5b5061044b610494366004614229565b600c60209081526000948552604080862082529385528385208152918452828420909152825290205481565b3480156104cc57600080fd5b506104e06104db36600461426b565b611427565b604080516001600160a01b03909316835290151560208301520161039f565b34801561050b57600080fd5b5061036861051a3660046141c2565b6114a5565b34801561052b57600080fd5b506105537f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161039f565b34801561057457600080fd5b5061059e610583366004614295565b600f602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161039f565b3480156105c257600080fd5b506105fd6105d13660046142b0565b60016020908152600093845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161039f565b34801561062157600080fd5b506106356106303660046142ec565b61160b565b604051901515815260200161039f565b34801561065157600080fd5b50610368610660366004614307565b61165b565b34801561067157600080fd5b50610368610680366004613fa6565b6116d0565b34801561069157600080fd5b506103686106a0366004614402565b611aae565b3480156106b157600080fd5b506103686106c03660046144e5565b611b18565b3480156106d157600080fd5b506107056106e03660046142ec565b600b60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161039f565b34801561073057600080fd5b5061059e61073f3660046142ec565b600a602052600090815260409020546001600160a01b031681565b34801561076657600080fd5b50610368611bba565b34801561077b57600080fd5b5061059e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107af57600080fd5b50600d5460011415610635565b3480156107c857600080fd5b506103686107d7366004614575565b611bce565b3480156107e857600080fd5b506106356107f73660046145c6565b611cba565b34801561080857600080fd5b506000546001600160a01b031661059e565b34801561082657600080fd5b5061082f611d26565b60405161039f91906145f1565b61036861084a36600461463e565b611d88565b34801561085b57600080fd5b5061036861086a3660046146e8565b611f18565b34801561087b57600080fd5b506105fd61088a3660046142b0565b60036020908152600093845260408085208252928452828420905282529020546001600160401b031681565b3480156108c257600080fd5b506106356108d13660046146e8565b61217c565b3480156108e257600080fd5b506105fd6108f13660046142b0565b612256565b34801561090257600080fd5b5061036861091136600461472b565b6122b6565b34801561092257600080fd5b50610368610931366004614757565b6125d6565b34801561094257600080fd5b50610368610951366004614775565b6125ee565b34801561096257600080fd5b5061044b6109713660046142b0565b612739565b34801561098257600080fd5b506103686109913660046147b2565b6127b9565b3480156109a257600080fd5b5061059e6109b136600461426b565b6129e2565b3480156109c257600080fd5b506103686109d1366004614295565b612a51565b3480156109e257600080fd5b506106356109f13660046145c6565b612aae565b348015610a0257600080fd5b5061044b610a113660046147ce565b600260209081526000948552604080862082529385528385208152918452828420909152825290205481565b348015610a4957600080fd5b50610368610a58366004614295565b612b13565b348015610a6957600080fd5b5061044b600081565b348015610a7e57600080fd5b50610368610a8d36600461472b565b612b73565b348015610a9e57600080fd5b50610368610aad3660046147ce565b612db1565b348015610abe57600080fd5b50610635610acd366004614295565b60056020526000908152604090205460ff1681565b348015610aee57600080fd5b50610635610afd36600461426b565b6001600160a01b03918216600090815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610b3a57600080fd5b50610b4e610b49366004613ff1565b612ea0565b60405161039f9190614810565b348015610b6757600080fd5b50600061059e565b348015610b7b57600080fd5b50600e5461059e906001600160a01b031681565b348015610b9b57600080fd5b50610368610baa366004614295565b61310c565b348015610bbb57600080fd5b50610705610bca36600461426b565b6008602090815260009283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610c0657600080fd5b50610368610c15366004614295565b613270565b348015610c2657600080fd5b5061059e610c353660046142ec565b6009602052600090815260409020546001600160a01b031681565b610c9f86610c6160208a018a6142ec565b60208a0135610c7660608c0160408d01614827565b898989604051602001610c8b93929190614842565b6040516020818303038152906040526132ae565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610cda908b908a908a908a9033908b908b906004016148be565b6000604051808303818588803b158015610cf357600080fd5b505af1158015610d07573d6000803e3d6000fd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d3d929190614915565b60405180910390a150505050505050565b600080610d5e600d546001141590565b610d6a57600080610d78565b610d78600d5460a081901c91565b915091509091565b6001600160a01b038216600090815260056020526040902054829060ff16610dbb57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e5e576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f9190614951565b6002811115610e4057610e4061493b565b03610e5e576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610efa576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190614980565b610efa57604051630e476aa960e21b815260040160405180910390fd5b610f0388613469565b6000610f0f8989611427565b9150508015610f3157604051633c075f7560e01b815260040160405180910390fd5b85600003610f79576001600160a01b038916600090815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610fdf565b438611610f99576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b03898116600090815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051611014949392919061499d565b60405180910390a1505050505050505050565b61102f613e40565b61103c60208401846142ec565b336001600d54146110605760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561108e908601608087016149cd565b80156110a35750600e546001600160a01b0316155b156110c157604051632d7b695560e11b815260040160405180910390fd5b6000806110ce33886134ba565b9150915060006110db3490565b905060006110f76110f260a08b0160808c016149cd565b613766565b905061110884604001518383613802565b600e5460408501516020015161112a916001600160a01b03169083868c613850565b60408401515161113c9083858b61387d565b50506001600d555095945050505050565b61115685613469565b600083838360405160200161116d93929190614842565b60408051601f1981840301815291905290506111ab8661119060208801886142ec565b60208801356111a560608a0160408b01614827565b856132ae565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111dd929190614915565b60405180910390a1505050505050565b6001600160a01b038316600090815260056020526040902054606090849060ff1661122b57604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf790606401600060405180830381865afa158015611286573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ae9190810190614a7d565b9695505050505050565b6112c185613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461133357604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b039081169084161180159061137f575080155b156113a857604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190206000199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb55292906111dd90879087908a9088908890614ab1565b6001600160a01b03808316600090815260076020908152604080832063ffffffff86168452909152812054909116908161149e5763ffffffff83166000908152600a60205260409020546001600160a01b031691508161149a57604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b6114ae85613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461151b57604051637182306f60e01b8152600481018290526024810183905260440161132a565b80158061156557506001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561158e57604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e906111dd90879087908a9088908890614ab1565b63ffffffff81166000908152600960205260408120546001600160a01b031615801590611655575063ffffffff82166000908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116ba9a99989796959493929190614aee565b60405180910390a4505050505050505050505050565b6001600160a01b038216600090815260056020526040902054829060ff1615801561170357506001600160a01b03811615155b156117215760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b038116156117c4576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117959190614951565b60028111156117a6576117a661493b565b036117c4576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615611860576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190614980565b61186057604051630e476aa960e21b815260040160405180910390fd5b61186988613469565b6001600160a01b03808916600090815260076020908152604080832063ffffffff8c168452909152902054811690871681036118b85760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03898116600081815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a18515611a32576001600160a01b038116158061195b57506001600160a01b038716155b1561197957604051633c075f7560e01b815260040160405180910390fd5b60006040518060400160405280836001600160a01b0316815260200188436119a19190614b6d565b90526001600160a01b038b8116600090815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611a24918d918d91879161499d565b60405180910390a150611aa3565b6001600160a01b038916600090815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611014918c918c9186919061499d565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611b039a99989796959493929190614b80565b60405180910390a35050505050505050505050565b6001600160a01b038316600090815260056020526040902054839060ff16611b5357604051631bc58ef360e11b815260040160405180910390fd5b611b5c85613469565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b8c90889087908790600401614bdf565b600060405180830381600087803b158015611ba657600080fd5b505af1158015611aa3573d6000803e3d6000fd5b611bc26138a7565b611bcc60006138d4565b565b336000908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611c2457604051630542086560e21b815260040160405180910390fd5b8181604051611c34929190614cd2565b60408051918290038220336000818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611cab919088908890889088908890614ce2565b60405180910390a15050505050565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590611cea908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613924565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050505050905090565b6001600160a01b038089166000908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611dd39087908790614cd2565b60405180910390209050808214611e07576040516335ca595f60e01b8152600481018390526024810182905260440161132a565b6001600160a01b03808b166000908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611e76908e908d908c908c9033908d908d90600401614d2c565b6000604051808303818588803b158015611e8f57600080fd5b505af1158015611ea3573d6000803e3d6000fd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611f0494939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b038116600090815260056020526040902054819060ff16158015611f4b57506001600160a01b03811615155b15611f695760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b0381161561200c576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdd9190614951565b6002811115611fee57611fee61493b565b0361200c57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b038216156120a8576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190614980565b6120a857604051630e476aa960e21b815260040160405180910390fd5b6120b187613469565b6001600160a01b03878116600090815260066020908152604080832063ffffffff8b1684529091529020548187169116036120ff5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03878116600081815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d3d565b600080600061218b8686611427565b91509150816001600160a01b0316846001600160a01b0316036121b357600192505050611d1f565b6000816121e8576001600160a01b038716600090815260086020908152604080832063ffffffff8a16845290915290206121fe565b63ffffffff86166000908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156122385750438160200151115b156122495760019350505050611d1f565b5060009695505050505050565b6001600160a01b038316600090815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b6122a1858585846001016139a8565b156122ae57600101612292565b949350505050565b6122be6138a7565b6001600160a01b038216600090815260056020526040902054829060ff166122f957604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b0381161561239c576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236d9190614951565b600281111561237e5761237e61493b565b0361239c576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612438576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156123f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241b9190614980565b61243857604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87166000908152600a60205260409020546001600160a01b03908116908716810361247b5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88166000818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156125695763ffffffff88166000908152600b6020526040902080546001600160a01b0319166001600160a01b0383161781556125228743614b6d565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89161255b918c918691614d7f565b60405180910390a1506125cc565b63ffffffff88166000908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916125c3918b918591614d7f565b60405180910390a15b5050505050505050565b6125de6138a7565b6125e98383836139f5565b505050565b612605826125ff60208601866142ec565b3361217c565b612622576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040822090829061264b908701876142ec565b63ffffffff168152602080820192909252604090810160009081208784013582529092529020546001600160401b03169050612688848483613924565b6126a55760405163751cb20f60e01b815260040160405180910390fd5b6126b0848483613a18565b6126cc5760405162bbf0e560e11b815260040160405180910390fd5b6126f8836126dd60208701876142ec565b60208701356126f26060890160408a01614827565b86613ad5565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161272b93929190614da6565b60405180910390a150505050565b6001600160a01b038316600090815260036020908152604080832063ffffffff8616845282528083208484529091528120548190612781906001600160401b03166001614dce565b90506127b0817f0000000000000000000000000000000000000000000000000000000000000000878787613b3b565b95945050505050565b6127c16138a7565b6001600160a01b038116600090815260056020526040902054819060ff166127fc57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b0381161561289f576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561284c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128709190614951565b60028111156128815761288161493b565b0361289f57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561293b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156128fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291e9190614980565b61293b57604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86166000908152600960205260409020546001600160a01b0380871691160361297c5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff861660008181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f591016111dd565b6001600160a01b03808316600090815260066020908152604080832063ffffffff861684529091529020541680611655575063ffffffff81166000908152600960205260409020546001600160a01b03168061165557604051636c1ccdb560e01b815260040160405180910390fd5b612a596138a7565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590612ade908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613a18565b336000818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d79839819101612aa3565b6001600160a01b038216600090815260056020526040902054829060ff16612bae57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612c51576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c229190614951565b6002811115612c3357612c3361493b565b03612c51576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612ced576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd09190614980565b612ced57604051630e476aa960e21b815260040160405180910390fd5b612cf56138a7565b84600003612d295763ffffffff87166000908152600b6020526040812080546001600160a01b031916815560010155612d7e565b438511612d49576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87166000908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610d3d93929190614d7f565b612dba84613469565b612dc5848484612256565b612dd0906001614dce565b6001600160401b0316816001600160401b031614612e0c57604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001600160a01b038416600081815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161272b565b6040805180820190915260008082526020820152612ec460a08401608085016149cd565b8015612ed95750600e546001600160a01b0316155b15612ef757604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b03821660009081526003602090815260408220908290612f20908701876142ec565b63ffffffff16815260208082019290925260409081016000908120878401358252909252902054612f5b906001600160401b03166001614dce565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001866000016020810190612fc791906142ec565b63ffffffff1681526020018660200135815260200161301f847f0000000000000000000000000000000000000000000000000000000000000000888a600001602081019061301591906142ec565b8b60200135613b3b565b81526020016130316040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061307e9050856109b160208901896142ec565b90506001600160a01b03811663d80e9bd98361309d60608a018a614dee565b6130ad60a08c0160808d016149cd565b6040518563ffffffff1660e01b81526004016130cc9493929190614e34565b6040805180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190614f28565b6131146138a7565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561315f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131839190614980565b6131a05760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156131da5760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af59101612aa3565b6132786138a7565b6001600160a01b0381166132a257604051631e4fbdf760e01b81526000600482015260240161132a565b6132ab816138d4565b50565b6001600160a01b038516600090815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b0390811690841681101561339c57600181015b846001600160401b0316816001600160401b03161161334f5761331f888888846139a8565b61334757604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001016132fa565b506001600160a01b038716600090815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b038916600090815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461341657604051637182306f60e01b8152600481018290526024810184905260440161132a565b50506001600160a01b03909516600090815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b0382161480159061349c57506001600160a01b038181166000908152600f6020526040902054163314155b156132ab5760405163c4c5259360e01b815260040160405180910390fd5b6134c2613e40565b600080613533856134d660208701876142ec565b6001600160a01b0391909116600090815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b0316815260200186600001602081019061359f91906142ec565b63ffffffff168152602001866020013581526020016135ed847f00000000000000000000000000000000000000000000000000000000000000008a8a600001602081019061301591906142ec565b81526020016135ff6040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061364c9050876109b160208901896142ec565b90506000806001600160a01b038316634389e58f8561366e60608c018c614dee565b61367e60a08e0160808f016149cd565b6040518563ffffffff1660e01b815260040161369d9493929190614e34565b6000604051808303816000875af11580156136bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136e49190810190614f44565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161371860608b018b614dee565b866040516137299493929190614f92565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b600081156137fd57600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156137b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137da9190614fd2565b9050806000036137fd57604051631775123760e01b815260040160405180910390fd5b919050565b82518210806138145750808360200151115b156125e95782516020840151604051634f3ec0d360e01b815260048101929092526024820184905260448201526064810182905260840161132a565b831561386157613861858386613bb4565b82841015613876576138768582868603613bb4565b5050505050565b831561388d5761388d8285613bef565b828410156138a1576138a181858503613bef565b50505050565b6000546001600160a01b03163314611bcc5760405163118cdaa760e01b815233600482015260240161132a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080826001600160401b031611806122ae5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d90613967908790600401614feb565b602060405180830381865afa158015613984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ae9190614980565b6001600160a01b038416600090815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b038316613a0d576125e98282613bef565b6125e9838383613bb4565b60006001600160401b038216613a346060860160408701614827565b6001600160401b031611806122ae57506001600160a01b03831660009081526002602090815260408220908290613a6d908801886142ec565b63ffffffff1663ffffffff1681526020019081526020016000206000866020013581526020019081526020016000206000866040016020810190613ab19190614827565b6001600160401b031681526020810191909152604001600020541415949350505050565b80613af3576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b03909416600090815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b600085856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b6001600160a01b038216613bdb576040516306b7a93160e41b815260040160405180910390fd5b6125e96001600160a01b0384168383613c9c565b6001600160a01b038216613c16576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613c63576040519150601f19603f3d011682016040523d82523d6000602084013e613c68565b606091505b50509050806125e957604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161132a565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b1790526125e991859190600090613cfa90841683613d48565b90508051600014158015613d1f575080806020019051810190613d1d9190614980565b155b156125e957604051635274afe760e01b81526001600160a01b038416600482015260240161132a565b6060611d1f8383600084600080856001600160a01b03168486604051613d6e9190614ff9565b60006040518083038185875af1925050503d8060008114613dab576040519150601f19603f3d011682016040523d82523d6000602084013e613db0565b606091505b50915091506112ae868383606082613dd057613dcb82613e17565b611d1f565b8151158015613de757506001600160a01b0384163b155b15613e1057604051639996b31560e01b81526001600160a01b038516600482015260240161132a565b5080611d1f565b805115613e275780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001613e82604051806040016040528060008152602001600081525090565b905290565b600060608284031215613e9957600080fd5b50919050565b80356001600160a01b03811681146137fd57600080fd5b60008083601f840112613ec857600080fd5b5081356001600160401b03811115613edf57600080fd5b60208301915083602082850101111561149e57600080fd5b600080600080600080600060e0888a031215613f1257600080fd5b613f1c8989613e87565b9650613f2a60608901613e9f565b95506080880135945060a08801356001600160401b0380821115613f4d57600080fd5b613f598b838c01613eb6565b909650945060c08a0135915080821115613f7257600080fd5b50613f7f8a828b01613eb6565b989b979a50959850939692959293505050565b803563ffffffff811681146137fd57600080fd5b60008060008060808587031215613fbc57600080fd5b613fc585613e9f565b9350613fd360208601613f92565b9250613fe160408601613e9f565b9396929550929360600135925050565b6000806040838503121561400457600080fd5b82356001600160401b0381111561401a57600080fd5b830160a0818603121561402c57600080fd5b915061403a60208401613e9f565b90509250929050565b6000608082019050825182526001600160401b036020840151166020830152604083015161407e604084018280518252602090810151910152565b5092915050565b600080600080600060c0868803121561409d57600080fd5b6140a686613e9f565b94506140b58760208801613e87565b93506080860135925060a08601356001600160401b038111156140d757600080fd5b6140e388828901613eb6565b969995985093965092949392505050565b6000806000806080858703121561410a57600080fd5b61411385613e9f565b935061412160208601613e9f565b925061412f60408601613f92565b915061413d60608601613f92565b905092959194509250565b60005b8381101561416357818101518382015260200161414b565b50506000910152565b60008151808452614184816020860160208601614148565b601f01601f19169290920160200192915050565b602081526000611d1f602083018461416c565b80356001600160401b03811681146137fd57600080fd5b600080600080600060a086880312156141da57600080fd5b6141e386613e9f565b94506141f160208701613f92565b935060408601359250614206606087016141ab565b949793965091946080013592915050565b803561ffff811681146137fd57600080fd5b6000806000806080858703121561423f57600080fd5b61424885613e9f565b935061425660208601613e9f565b92506040850135915061413d60608601614217565b6000806040838503121561427e57600080fd5b61428783613e9f565b915061403a60208401613f92565b6000602082840312156142a757600080fd5b611d1f82613e9f565b6000806000606084860312156142c557600080fd5b6142ce84613e9f565b92506142dc60208501613f92565b9150604084013590509250925092565b6000602082840312156142fe57600080fd5b611d1f82613f92565b6000806000806000806000806000806000806101208d8f03121561432a57600080fd5b6143338d613e9f565b9b5061434160208e01613e9f565b9a5060408d0135995061435660608e01614217565b985060808d0135975060a08d013596506001600160401b0360c08e0135111561437e57600080fd5b61438e8e60c08f01358f01613eb6565b90965094506001600160401b0360e08e013511156143ab57600080fd5b6143bb8e60e08f01358f01613eb6565b90945092506001600160401b036101008e013511156143d957600080fd5b6143ea8e6101008f01358f01613eb6565b81935080925050509295989b509295989b509295989b565b60008060008060008060008060008060006101408c8e03121561442457600080fd5b61442e8d8d613e87565b9a5061443c60608d01613e9f565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e0135111561446c57600080fd5b61447c8e60e08f01358f01613eb6565b90975095506101008d013581101561449357600080fd5b6144a48e6101008f01358f01613eb6565b90955093506101208d01358110156144bb57600080fd5b506144cd8d6101208e01358e01613eb6565b81935080925050509295989b509295989b9093969950565b600080600080606085870312156144fb57600080fd5b61450485613e9f565b935061451260208601613e9f565b925060408501356001600160401b038082111561452e57600080fd5b818701915087601f83011261454257600080fd5b81358181111561455157600080fd5b8860208260051b850101111561456657600080fd5b95989497505060200194505050565b60008060008060006080868803121561458d57600080fd5b61459686613e9f565b9450602086013593506145ab60408701614217565b925060608601356001600160401b038111156140d757600080fd5b600080608083850312156145d957600080fd5b6145e38484613e87565b915061403a60608401613e9f565b6020808252825182820181905260009190848201906040850190845b818110156146325783516001600160a01b03168352928401929184019160010161460d565b50909695505050505050565b60008060008060008060008060c0898b03121561465a57600080fd5b61466389613e9f565b975061467160208a01613e9f565b96506040890135955061468660608a01614217565b945060808901356001600160401b03808211156146a257600080fd5b6146ae8c838d01613eb6565b909650945060a08b01359150808211156146c757600080fd5b506146d48b828c01613eb6565b999c989b5096995094979396929594505050565b6000806000606084860312156146fd57600080fd5b61470684613e9f565b925061471460208501613f92565b915061472260408501613e9f565b90509250925092565b60008060006060848603121561474057600080fd5b61474984613f92565b92506142dc60208501613e9f565b60008060006060848603121561476c57600080fd5b61474984613e9f565b600080600060a0848603121561478a57600080fd5b6147948585613e87565b92506147a260608501613e9f565b9150608084013590509250925092565b600080604083850312156147c557600080fd5b61402c83613f92565b600080600080608085870312156147e457600080fd5b6147ed85613e9f565b93506147fb60208601613f92565b92506040850135915061413d606086016141ab565b815181526020808301519082015260408101611655565b60006020828403121561483957600080fd5b611d1f826141ab565b838152818360208301376000910160200190815292915050565b63ffffffff61486a82613f92565b168252602081013560208301526001600160401b0361488b604083016141ab565b1660408301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6148c8818961485c565b86606082015260e0608082015260006148e560e083018789614895565b6001600160a01b03861660a084015282810360c0840152614907818587614895565b9a9950505050505050505050565b60808101614923828561485c565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561496357600080fd5b815160038110611d1f57600080fd5b80151581146132ab57600080fd5b60006020828403121561499257600080fd5b8151611d1f81614972565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b6000602082840312156149df57600080fd5b8135611d1f81614972565b634e487b7160e01b600052604160045260246000fd5b600082601f830112614a1157600080fd5b81516001600160401b0380821115614a2b57614a2b6149ea565b604051601f8301601f19908116603f01168101908282118183101715614a5357614a536149ea565b81604052838152866020858801011115614a6c57600080fd5b6112ae846020830160208901614148565b600060208284031215614a8f57600080fd5b81516001600160401b03811115614aa557600080fd5b6122ae84828501614a00565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201526000614b1e60e08301888a614895565b82810360a0840152614b31818789614895565b905082810360c0840152614b46818587614895565b9d9c50505050505050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561165557611655614b57565b6000610120614b8f838e61485c565b8b60608401528a60808401528960a08401528060c0840152614bb4818401898b614895565b905082810360e0840152614bc9818789614895565b9050828103610100840152614b46818587614895565b6001600160a01b03841681526040602080830182905282820184905260009190606090818501600587901b8601830188865b89811015614cc257888303605f190184528135368c9003605e19018112614c3757600080fd5b8b0163ffffffff80614c4883613f92565b16855280614c57888401613f92565b16878601525087810135601e19823603018112614c7357600080fd5b0185810190356001600160401b03811115614c8d57600080fd5b803603821315614c9c57600080fd5b8789860152614cae8886018284614895565b958701959450505090840190600101614c11565b50909a9950505050505050505050565b8183823760009101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a060808201819052600090614d209083018486614895565b98975050505050505050565b600060018060a01b03808a16835288602084015260a06040840152614d5560a08401888a614895565b81871660608501528381036080850152614d70818688614895565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614db4828661485c565b6001600160a01b0393909316606082015260800152919050565b6001600160401b0381811683821601908082111561407e5761407e614b57565b6000808335601e19843603018112614e0557600080fd5b8301803591506001600160401b03821115614e1f57600080fd5b60200191503681900382131561149e57600080fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a0830152850151600090614e8360c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614eb461014084018261416c565b90508281036020840152614ec9818688614895565b9150506127b0604083018415159052565b600060408284031215614eec57600080fd5b604051604081018181106001600160401b0382111715614f0e57614f0e6149ea565b604052825181526020928301519281019290925250919050565b600060408284031215614f3a57600080fd5b611d1f8383614eda565b60008060608385031215614f5757600080fd5b614f618484614eda565b915060408301516001600160401b03811115614f7c57600080fd5b614f8885828601614a00565b9150509250929050565b606081526000614fa5606083018761416c565b8281036020840152614fb8818688614895565b91505060018060a01b038316604083015295945050505050565b600060208284031215614fe457600080fd5b5051919050565b60608101611655828461485c565b6000825161500b818460208701614148565b919091019291505056fea264697066735822122060b78f73c9ab9c1651b5848f9a662a4d7443b5174845f63dab183c0e0ef4aa8b64736f6c63430008160033608060405234801561001057600080fd5b506101c3806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a7146100655780631881d94d1461008d57806354fd4d501461009c5780636750cd4c146100c3575b604051632657b6c360e01b815260040160405180910390fd5b61007861007336600461010e565b6100d7565b60405190151581526020015b60405180910390f35b6002604051610084919061013f565b6040805167ffffffffffffffff815260ff6020820152600291810191909152606001610084565b6100786100d1366004610167565b50600190565b60006001600160e01b031982166325fc096160e21b148061010857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561012057600080fd5b81356001600160e01b03198116811461013857600080fd5b9392505050565b602081016003831061016157634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561017957600080fd5b813563ffffffff8116811461013857600080fdfea26469706673582212201492a62cde195effaf02cad81258b16b83979b7f432c3fe0ca641db583822bb764736f6c63430008160033608060405234801561001057600080fd5b506040516114d63803806114d683398101604081905261002f9161010a565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e816100ba565b506001600160a01b03166000908152600260205260409020805460ff1916600190811790915580546001600160801b03191668056bc75e2d6310000017905560058054602f60801b6001600160801b039190911617905561013a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561011c57600080fd5b81516001600160a01b038116811461013357600080fd5b9392505050565b61138d806101496000396000f3fe6080604052600436106101405760003560e01c80638ca2fb08116100b6578063d350ad251161006f578063d350ad2514610441578063da26663a14610461578063dbbb415514610522578063e0ad121a14610542578063f2fde38b146105cb578063fd9be522146105eb57600080fd5b80638ca2fb08146103595780638da5cb5b1461039957806392807f58146103b7578063c1723a1d146103e9578063c1840327146103fc578063cd68b79b1461041a57600080fd5b80635d6d7ccb116101085780635d6d7ccb146102405780635e280f1114610260578063715018a6146102985780637bc3c9ab146102ad5780637dc438a4146102ea57806388a4124c1461030a57600080fd5b806311f2c343146101455780632f7cb0b41461017c5780633161b7f61461019e57806336a5beba146101be57806352a7251014610220575b600080fd5b34801561015157600080fd5b5061016961016036600461100d565b60009392505050565b6040519081526020015b60405180910390f35b34801561018857600080fd5b5061019c610197366004611057565b61060b565b005b3480156101aa57600080fd5b5061019c6101b9366004611079565b610632565b3480156101ca57600080fd5b506040805180820182526000808252602091820152815180830183526004546001600160401b03811680835263ffffffff600160401b909204821692840192835284519081529151169181019190915201610173565b34801561022c57600080fd5b5061019c61023b366004611104565b610773565b34801561024c57600080fd5b5061019c61025b366004611057565b6107a6565b34801561026c57600080fd5b50600654610280906001600160a01b031681565b6040516001600160a01b039091168152602001610173565b3480156102a457600080fd5b5061019c610819565b3480156102b957600080fd5b506102cd6102c8366004611152565b61082d565b604080519283526001600160801b03909116602083015201610173565b3480156102f657600080fd5b5061019c610305366004611170565b6108c8565b34801561031657600080fd5b5061032a61032536600461100d565b610989565b604080519485526001600160801b03938416602086015291831691840191909152166060820152608001610173565b34801561036557600080fd5b50610389610374366004611188565b60026020526000908152604090205460ff1681565b6040519015158152602001610173565b3480156103a557600080fd5b506000546001600160a01b0316610280565b3480156103c357600080fd5b506005546001600160801b03165b6040516001600160801b039091168152602001610173565b61032a6103f736600461100d565b6109ab565b34801561040857600080fd5b506001546001600160801b03166103d1565b34801561042657600080fd5b506005546103d190600160801b90046001600160801b031681565b34801561044d57600080fd5b5061019c61045c366004611057565b6109dc565b34801561046d57600080fd5b506104e861047c3660046111a3565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526003835283902083519182018452546001600160801b0381168252600160801b81046001600160401b031692820192909252600160c01b9091049092169082015290565b6040805182516001600160801b031681526020808401516001600160401b0316908201529181015163ffffffff1690820152606001610173565b34801561052e57600080fd5b5061019c61053d366004611188565b610a06565b34801561054e57600080fd5b506104e861055d3660046111be565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452600382529282902082519384018352546001600160801b03811684526001600160401b03600160801b82041691840191909152600160c01b900463ffffffff169082015290565b3480156105d757600080fd5b5061019c6105e6366004611188565b610a30565b3480156105f757600080fd5b5061019c6106063660046111d9565b610a6e565b610613610a84565b600580546001600160801b03928316600160801b029216919091179055565b336106456000546001600160a01b031690565b6001600160a01b031614610683573360009081526002602052604090205460ff166106835760405163320ae52960e01b815260040160405180910390fd5b60005b8181101561076e57368383838181106106a1576106a1611203565b60800291909101915061076590506106bc60208301836111a3565b6106ce36849003840160208501611230565b805160208083015160409384015184516060810186526001600160801b0394851681526001600160401b0392831681850190815263ffffffff9283168288019081529783166000908152600390955295909320925183549551965194166001600160c01b031990951694909417600160801b95909116949094029390931763ffffffff60c01b1916600160c01b9190921602179055565b50600101610686565b505050565b61077b610a84565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b336107b96000546001600160a01b031690565b6001600160a01b0316146107f7573360009081526002602052604090205460ff166107f75760405163320ae52960e01b815260040160405180910390fd5b600580546001600160801b0319166001600160801b0392909216919091179055565b610821610a84565b61082b6000610ab1565b565b6000808461ffff16606e148061084857508461ffff1661279f145b8061085857508461ffff16614eaf145b156108755761086c8561ffff168585610b01565b915091506108c0565b8461ffff16606f148061088d57508461ffff16612794145b8061089d57508461ffff16614ea4145b156108b15761086c8561ffff168585610c0e565b61086c8561ffff168585610d5e565b935093915050565b336108db6000546001600160a01b031690565b6001600160a01b031614610919573360009081526002602052604090205460ff166109195760405163320ae52960e01b815260040160405180910390fd5b6109296106bc60208301836111a3565b600061093b60a08301608084016112a9565b9050600061094f60c0840160a085016111a3565b6004805463ffffffff909216600160401b026bffffffffffffffffffffffff199092166001600160401b0390941693909317179091555050565b60008060008061099a878787610dfe565b935093509350935093509350935093565b6000808080806109bf565b60405180910390fd5b6109ca888888610dfe565b94509450945094505093509350935093565b6109e4610a84565b600180546001600160801b0319166001600160801b0392909216919091179055565b610a0e610a84565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a38610a84565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024016109b6565b610a6b81610ab1565b50565b610a76610a84565b610a808282610ecc565b5050565b6000546001600160a01b0316331461082b5760405163118cdaa760e01b81523360048201526024016109b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff8381166000908152600360205260408120600454600554929384938492600160401b900490911690606490610b4b90600160801b90046001600160801b0316896112da565b610b55919061130d565b610b5f91906112da565b8254909150600090610b7e90600160c01b900463ffffffff16886112da565b83546004549192506000916001600160401b03600160801b90920482169184918691610bab91168b611321565b610bb59190611321565b610bbf9190611321565b610bc991906112da565b60015485549192506001600160801b0390811691610be89116836112da565b610bf2919061130d565b935493996001600160801b039094169850929650505050505050565b6000806000610c1c86610f79565b63ffffffff80821660009081526003602052604081208054939450929091610c4c91600160c01b900416886112da565b610c5890610c74611321565b8254909150600090610c7a90600160801b90046001600160401b0316836112da565b63ffffffff808b1660009081526003602052604081208054939450929091610caa91600160c01b9004168b6112da565b8254909150600090600160801b90046001600160401b0316610ccc8b84611321565b610cd691906112da565b60015487549192506000916001600160801b0391821691610cf89116876112da565b610d02919061130d565b60015485549192506000916001600160801b0391821691610d249116856112da565b610d2e919061130d565b90506000610d3c8284611321565b9554959f6001600160801b039096169e50949c50505050505050505050505050565b63ffffffff80841660009081526003602052604081208054919283928391610d8e91600160c01b900416876112da565b8254909150600090600160801b90046001600160401b0316610db08784611321565b610dba91906112da565b60015484549192506001600160801b0390811691610dd99116836112da565b610de3919061130d565b925492986001600160801b0390931697509195505050505050565b600080808080610e1061753089611334565b90508063ffffffff16606e1480610e2e57508063ffffffff1661279f145b80610e4057508063ffffffff16614eaf145b15610e5a57610e50818888610b01565b9095509350610ea9565b8063ffffffff16606f1480610e7657508063ffffffff16612794145b80610e8857508063ffffffff16614ea4145b15610e9857610e50818888610c0e565b610ea3818888610d5e565b90955093505b505060015460055493979296506001600160801b03908116955090921692509050565b6001600160a01b038216610ef3576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f40576040519150601f19603f3d011682016040523d82523d6000602084013e610f45565b606091505b505090508061076e57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016109b6565b600080610f8861753084611334565b90508063ffffffff16606f03610fa15750606592915050565b8063ffffffff1661279403610fba575061278992915050565b8063ffffffff16614ea403610fd35750614e9992915050565b604051633d0b0cf760e21b815263ffffffff821660048201526024016109b6565b803563ffffffff8116811461100857600080fd5b919050565b60008060006060848603121561102257600080fd5b61102b84610ff4565b95602085013595506040909401359392505050565b80356001600160801b038116811461100857600080fd5b60006020828403121561106957600080fd5b61107282611040565b9392505050565b6000806020838503121561108c57600080fd5b82356001600160401b03808211156110a357600080fd5b818501915085601f8301126110b757600080fd5b8135818111156110c657600080fd5b8660208260071b85010111156110db57600080fd5b60209290920196919550909350505050565b80356001600160a01b038116811461100857600080fd5b6000806040838503121561111757600080fd5b611120836110ed565b91506020830135801515811461113557600080fd5b809150509250929050565b803561ffff8116811461100857600080fd5b60008060006060848603121561116757600080fd5b61102b84611140565b600060c0828403121561118257600080fd5b50919050565b60006020828403121561119a57600080fd5b611072826110ed565b6000602082840312156111b557600080fd5b61107282610ff4565b6000602082840312156111d057600080fd5b61107282611140565b600080604083850312156111ec57600080fd5b6111f5836110ed565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b80356001600160401b038116811461100857600080fd5b60006060828403121561124257600080fd5b604051606081018181106001600160401b038211171561127257634e487b7160e01b600052604160045260246000fd5b60405261127e83611040565b815261128c60208401611219565b602082015261129d60408401610ff4565b60408201529392505050565b6000602082840312156112bb57600080fd5b61107282611219565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176112f1576112f16112c4565b92915050565b634e487b7160e01b600052601260045260246000fd5b60008261131c5761131c6112f7565b500490565b808201808211156112f1576112f16112c4565b600063ffffffff8084168061134b5761134b6112f7565b9216919091069291505056fea264697066735822122043d40d861fac89f60c4938c8341172f4eaeb8b3e6729e13e77697283f99e882864736f6c6343000816003360e06040523480156200001157600080fd5b5060405162004ac038038062004ac083398101604081905262000034916200018b565b82828282836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000077573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009d9190620001d8565b6001600160a01b03821660805263ffffffff811660a05283833380620000dd57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000e88162000122565b5060c0919091526002555050600680546001600160a01b0319166001600160a01b0398909816979097179096555062000207945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200018857600080fd5b50565b60008060008060808587031215620001a257600080fd5b8451620001af8162000172565b6020860151909450620001c28162000172565b6040860151606090960151949790965092505050565b600060208284031215620001eb57600080fd5b815163ffffffff811681146200020057600080fd5b9392505050565b60805160a05160c0516148706200025060003960008181611d100152611e730152600050506000818161069a0152818161079f015281816112b101526117d901526148706000f3fe60806040526004361061014f5760003560e01c806361d027b3116100b6578063d15b0d491161006f578063d15b0d4914610450578063d80e9bd914610470578063f0f442601461049d578063f2fde38b146104bd578063faaebd21146104dd578063fd9be5221461051857600080fd5b806361d027b3146103905780636750cd4c146103b0578063715018a6146103d05780638da5cb5b146103e55780639c33abf714610403578063c14c43491461043057600080fd5b806329460b0b1161010857806329460b0b1461025357806339e3f938146102735780634389e58f146102a057806343ea4fa9146102ce5780634d963200146102ee57806354fd4d501461036357600080fd5b806301ffc9a71461015b5780630e97289b14610190578063188183f4146101c85780631881d94d146101f5578063200175f71461021157806320efd7221461023357600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b6101763660046136fd565b610538565b60405190151581526020015b60405180910390f35b34801561019c57600080fd5b506006546101b0906001600160a01b031681565b6040516001600160a01b039091168152602001610187565b3480156101d457600080fd5b506101e86101e3366004613769565b61058a565b60405161018791906137a2565b34801561020157600080fd5b50600060405161018791906137c8565b34801561021d57600080fd5b5061023161022c3660046137f0565b610663565b005b34801561023f57600080fd5b5061023161024e366004613875565b61079d565b34801561025f57600080fd5b5061023161026e3660046138c9565b610912565b34801561027f57600080fd5b5061029361028e366004613769565b610aaa565b60405161018791906139c0565b3480156102ac57600080fd5b506102c06102bb3660046139ec565b610be5565b604051610187929190613aeb565b3480156102da57600080fd5b506102936102e9366004613769565b610c7a565b3480156102fa57600080fd5b5061033f610309366004613769565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160a01b031682565b6040805163ffffffff90931683526001600160a01b03909116602083015201610187565b34801561036f57600080fd5b50604080516003815260006020820152600291810191909152606001610187565b34801561039c57600080fd5b506003546101b0906001600160a01b031681565b3480156103bc57600080fd5b5061017b6103cb366004613b0f565b610f86565b3480156103dc57600080fd5b50610231610f91565b3480156103f157600080fd5b506000546001600160a01b03166101b0565b34801561040f57600080fd5b5061042361041e366004613b2c565b610fa5565b6040516101879190613b77565b34801561043c57600080fd5b5061023161044b366004613b8a565b611037565b34801561045c57600080fd5b5061023161046b366004613bfe565b611170565b34801561047c57600080fd5b5061049061048b3660046139ec565b6111e5565b6040516101879190613c17565b3480156104a957600080fd5b506102316104b8366004613c2e565b611255565b3480156104c957600080fd5b506102316104d8366004613c2e565b611269565b3480156104e957600080fd5b5061050a6104f8366004613c2e565b60056020526000908152604090205481565b604051908152602001610187565b34801561052457600080fd5b50610231610533366004613c4b565b6112a4565b60006001600160e01b031982166325fc096160e21b148061056957506001600160e01b0319821663b6e9ace360e01b145b8061058457506301ffc9a760e01b6001600160e01b03198316145b92915050565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec602090815260408083206001600160a01b038916845260048352818420948452939091528120805492939092169081900361060e57825463ffffffff16610610565b805b63ffffffff168452815464010000000090046001600160a01b03168061064857835464010000000090046001600160a01b031661064a565b805b6001600160a01b03166020860152509295945050505050565b6003546001600160a01b0316331461068e5760405163885762a760e01b815260040160405180910390fd5b826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071a9190613c77565b6001600160a01b031603610741576040516339a5741160e21b815260040160405180910390fd5b61074c838383611384565b604080516001600160a01b038086168252841660208201529081018290527fe081464b7278501267de69fa85b7b9560b0ae05d5fbfaab9b1986c70356e2efe906060015b60405180910390a1505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107e65760405163467409c360e01b815260040160405180910390fd5b60005b8181101561090c573683838381811061080457610804613c94565b90506020028101906108169190613caa565b905061082d6108286020830183613b0f565b6113c4565b600161083f6040830160208401613b0f565b63ffffffff160361087f5761087a61085a6020830183613b0f565b866108686040850185613cca565b8101906108759190613da0565b6113f2565b610903565b60026108916040830160208401613b0f565b63ffffffff16036108cc5761087a6108ac6020830183613b0f565b866108ba6040850185613cca565b8101906108c79190613f60565b61147a565b6108dc6040820160208301613b0f565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016107e9565b50505050565b61091a6114c3565b60005b81811015610a6c573683838381811061093857610938613c94565b905060200281019061094a9190613f94565b905060ff61095b6020830183613faa565b61096c906040810190602001613fc0565b60ff160361098d576040516341d50bed60e11b815260040160405180910390fd5b60ff61099c6020830183613faa565b6109ad906060810190604001613fc0565b60ff16036109ce5760405163211089b360e11b815260040160405180910390fd5b6001600160401b036109e36020830183613faa565b6109f1906020810190613fdb565b6001600160401b031603610a185760405163281b33d760e11b815260040160405180910390fd5b610a36610a286020830183613faa565b610a3190613ff6565b6114f0565b610a636000610a486020840184613b0f565b610a556020850185613faa565b610a5e90613ff6565b611528565b5060010161091d565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610a9e929190614088565b60405180910390a15050565b610ab2613644565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610b7257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b54575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610bd457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bb6575b505050505081525050905092915050565b60408051808201909152600080825260208201526060610c07868686866117c1565b600654604051631f5dad8b60e31b81529294509092506001600160a01b03169063faed6c5890610c3f908490899089906004016141cd565b600060405180830381600087803b158015610c5957600080fd5b505af1158015610c6d573d6000803e3d6000fd5b5050505094509492505050565b610c82613644565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b031680610cf75782546001600160401b03168452610d14565b6001600160401b0381811614610d14576001600160401b03811684525b8154600160401b900460ff16610dae578254600160401b900460ff1615610da95782600101805480602002602001604051908101604052809291908181526020018280548015610d8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d6f575b505050505060808501528254600160401b900460ff1660208501525b610e35565b8154600160401b900460ff90811614610e355781600101805480602002602001604051908101604052809291908181526020018280548015610e1957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610dfb575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610ede578254600160481b900460ff1615610ed95782600201805480602002602001604051908101604052809291908181526020018280548015610eae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e90575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610f74565b8154600160481b900460ff90811614610f745781600201805480602002602001604051908101604052809291908181526020018280548015610f4957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f2b575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610f7d846114f0565b50505092915050565b600061058482611895565b610f996114c3565b610fa360006118f0565b565b606060001963ffffffff831601610fe657610fc0838561058a565b604051602001610fd091906137a2565b6040516020818303038152906040529050611030565b60011963ffffffff83160161100f57610fff8385610c7a565b604051602001610fd091906139c0565b604051635d4be0fd60e11b815263ffffffff831660048201526024016108fa565b9392505050565b61103f6114c3565b60005b8181101561113e573683838381811061105d5761105d613c94565b606090810292909201925060009161107b9150830160408401613c2e565b6001600160a01b0316036110a257604051631074e82d60e11b815260040160405180910390fd5b6110b26040820160208301613b0f565b63ffffffff166000036110d8576040516349cfac4360e01b815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec906111138385613b0f565b63ffffffff16815260208101919091526040016000206111338282614213565b505050600101611042565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610a9e92919061426c565b6111786114c3565b6002548111156111a95760025460405163068109f760e31b81526108fa918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b7842906020015b60405180910390a150565b604080518082019091526000808252602082015260008061123661120f6060890160408a01613c2e565b61121f60808a0160608b01613b0f565b61122c60c08b018b613cca565b9050878a8a611940565b604080518082019091529182526020820152925050505b949350505050565b61125d6114c3565b61126681611a39565b50565b6112716114c3565b6001600160a01b03811661129b57604051631e4fbdf760e01b8152600060048201526024016108fa565b611266816118f0565b6112ad81611a87565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561130d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113319190613c77565b905061133e818484611ad8565b604080513381526001600160a01b03851660208201529081018390527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610790565b6001600160a01b0382166113ab576040516306b7a93160e41b815260040160405180910390fd5b6113bf6001600160a01b0384168383611afb565b505050565b6113cd81611895565b61126657604051633c30434160e21b815263ffffffff821660048201526024016108fa565b6001600160a01b03808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000026001600160c01b03199093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc80590610790908490869085906142ec565b611485828483611528565b61148f8284610c7a565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516107909392919061432e565b6000546001600160a01b03163314610fa35760405163118cdaa760e01b81523360048201526024016108fa565b602081015160ff1615801561150a5750606081015160ff16155b156112665760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806115435750602081015160ff16155b15611571576080810151511561156c576040516341d50bed60e11b815260040160405180910390fd5b6115d7565b806020015160ff168160800151511415806115ac57506002611595600160ff614374565b61159f919061438d565b60ff16816020015160ff16115b156115ca576040516341d50bed60e11b815260040160405180910390fd5b6115d78160800151611b4d565b604081015160ff90811614806115f25750604081015160ff16155b156116465760a0810151511561161b5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615611641576040516338682fa960e01b815260040160405180910390fd5b6116eb565b806040015160ff168160a00151511415806116815750600261166a600160ff614374565b611674919061438d565b60ff16816040015160ff16115b1561169f5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615806116c05750806040015160ff16816060015160ff16115b156116de576040516338682fa960e01b815260040160405180910390fd5b6116eb8160a00151611b4d565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361179d9390850192019061368c565b5060a082015180516117b991600284019160209091019061368c565b505050505050565b604080518082019091526000808252602082015260607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118205760405163467409c360e01b815260040160405180910390fd5b60008061182e888888611bb4565b909250905060008061186061184960608c0160408d01613c2e565b61185960808d0160608e01613b0f565b858a611c81565b909250905061186f82846143bd565b604080518082019091529081526020810191909152945091925050505b94509492505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580611030575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000806119508686611d8f565b9150915060006119618b8b84611da8565b9050600061196f8c8c61058a565b90506119858a826000015163ffffffff16611db5565b80602001516001600160a01b031663709eb6648c8e8d886040518563ffffffff1660e01b81526004016119bb94939291906143d0565b602060405180830381865afa1580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614403565b611a0690836143bd565b9150600080611a178e8e868e611de4565b9092509050611a2682856143bd565b9e909d509b505050505050505050505050565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f906020016111da565b3360009081526005602052604090205480821115611ac25760405163068109f760e31b815260048101839052602481018290526044016108fa565b3360009081526005602052604090209190039055565b6001600160a01b038316611af0576113bf8282611eb5565b6113bf838383611384565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113bf908490611f62565b6000805b82518110156113bf576000838281518110611b6e57611b6e613c94565b60200260200101519050826001600160a01b0316816001600160a01b031611611baa5760405163447516e160e01b815260040160405180910390fd5b9150600101611b51565b60606000806000611bc58686611d8f565b90925090506000611bef611bdf60608a0160408b01613c2e565b6101e360808b0160608c01613b0f565b90506000611c0060c08a018a613cca565b90509050611c1881836000015163ffffffff16611db5565b6020820151611c4890611c3160808c0160608d01613b0f565b611c4160608d0160408e01613c2e565b8488611fc5565b611c5290866143bd565b9450600080611c618b866120be565b9092509050611c7082886143bd565b909b909a5098505050505050505050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b0316636a8e2a4360e11b1790526003549192506000918291611d38916001600160a01b0316907f0000000000000000000000000000000000000000000000000000000000000000908490876120e1565b91509150611d4887878484612191565b90955093508415611d83576003546001600160a01b031660009081526005602052604081208054879290611d7d9084906143bd565b90915550505b50505094509492505050565b606080611d9c848461220c565b915091505b9250929050565b600061124d8484846122f9565b80821115611de057604051636333d79f60e11b815260048101839052602481018290526044016108fa565b5050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b031663d424422160e01b1790526003549192506000918291611e99916001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000009086612373565b91509150611ea987878484612191565b9450945050505061188c565b6001600160a01b038216611edc576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611f29576040519150601f19603f3d011682016040523d82523d6000602084013e611f2e565b606091505b50509050806113bf57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016108fa565b6000611f776001600160a01b0384168361241f565b90508051600014158015611f9c575080806020019051810190611f9a919061441c565b155b156113bf57604051635274afe760e01b81526001600160a01b03841660048201526024016108fa565b6040516338bf452160e11b81526000906001600160a01b0387169063717e8a4290611ffa9088908890889088906004016143d0565b6020604051808303816000875af1158015612019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203d9190614403565b90508015612073576001600160a01b0386166000908152600560205260408120805483929061206d9084906143bd565b90915550505b604080516001600160a01b0388168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b600060606120d660056120d0866144a8565b8561242d565b909590945092505050565b60006060863b80830361210857604080516000808252602082019092529250925050612187565b60008060008761ffff166001600160401b0381111561212957612129613d10565b6040519080825280601f01601f191660200182016040528015612153576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612174578792505b828152826000602083013e909450925050505b9550959350505050565b6000808315806121a2575082516020115b156121b25750600090508061188c565b6000838060200190518101906121c89190614403565b905085156121d857809150612202565b600060025488116121eb576002546121ed565b875b90508082116121fc57816121fe565b805b9350505b5094509492505050565b60608060008061221c868661257b565b91509150805160000361227457604080516000808252602082019092528391612268565b6040805180820190915260008152606060208201528152602001906001900390816122405790505b50935093505050611da1565b604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908161228b5790505090506040518060400160405280600260ff16815260200183815250816000815181106122e1576122e1613c94565b60209081029190910101529196919550909350505050565b6000806123068585610c7a565b905060008351600014612337578360008151811061232657612326613c94565b602002602001015160200151612348565b604051806020016040528060008152505b90506000806123568361273a565b9150915061236784888a85856129a0565b98975050505050505050565b60006060853b80830361239a5760408051600080825260208201909252925092505061188c565b60008060008761ffff166001600160401b038111156123bb576123bb613d10565b6040519080825280601f01601f1916602001820160405280156123e5576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612405578792505b828152826000602083013e90999098509650505050505050565b606061103083836000612b38565b60006060600061243c85612bd5565b9050600061244986612c62565b80516020820120606088015160408901519293509091600061246b8284610c7a565b90506000895160001461249c578960008151811061248b5761248b613c94565b6020026020010151602001516124ad565b604051806020016040528060008152505b905060606124ff8d846040518060a001604052808963ffffffff1681526020018c81526020018a815260200187600001516001600160401b03168152602001886001600160a01b031681525085612c7f565b604051919b5091506125179089908990602001614545565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a001518360405161256393929190614574565b60405180910390a15050505050505050935093915050565b60608060028310156125a35760405163196499c760e21b8152600060048201526024016108fa565b60006125b260028286886145d2565b6125bb916145fc565b60f01c905060026002198201612723578060005b868310156126c85760006125e860018501858a8c6145d2565b6125f19161462c565b60f81c9050600081900361261b57604051636780cfaf60e01b8152600060048201526024016108fa565b8160ff1660000361262e5780915061266b565b8160ff168160ff161461266b5736600061264a86868c8e6145d2565b9150915061265b8989868585612f1d565b9099509750859450919250829150505b600184019360009061268290600301868b8d6145d2565b61268b916145fc565b60f01c905060008190036126b55760405163196499c760e21b8152600481018690526024016108fa565b8060020161ffff168501945050506125cf565b8287146126eb5760405163196499c760e21b8152600481018490526024016108fa565b600287111561271c5736600061270385858b8d6145d2565b915091506127148888858585612f1d565b909850965050505b5050612731565b61272e82878761303d565b93505b50509250929050565b606080825160000361274b57915091565b6000612756846131c8565b90508060ff166001036128085760408051600180825281830190925290816020015b606081526020019060019003908161277857905050925083836000815181106127a3576127a3613c94565b6020908102919091010152604080516001808252818301909252908160200160208202803683370190505091506127db8460036132a2565b826000815181106127ee576127ee613c94565b602002602001019060ff16908160ff168152505050915091565b8060ff166001600160401b0381111561282357612823613d10565b60405190808252806020026020018201604052801561284c578160200160208202803683370190505b5091508060ff166001600160401b0381111561286a5761286a613d10565b60405190808252806020026020018201604052801561289d57816020015b60608152602001906001900390816128885790505b50925060008060ff5b86518310156129335760019092019160006128c188856132fe565b60029490940193905060006128d689866132a2565b90508260ff1660ff036128eb57809250612924565b8260ff168160ff16146129245760021984860301600061290c8b878461335b565b905061291a8a8a8784613468565b5093909301929150815b5061ffff1692909201916128a6565b818303600061294389858461335b565b905061295188888584613468565b60005b8660ff168160ff16101561299457878160ff168151811061297757612977613c94565b6020908102919091010180516000190160ff169052600101612954565b50505050505050915091565b600080866040015187602001516129b7919061465a565b905060005b8160ff168160ff161015612b2d576000886020015160ff168260ff1610612a115760a089015160208a01516129f19084614374565b60ff1681518110612a0457612a04613c94565b6020026020010151612a33565b88608001518260ff1681518110612a2a57612a2a613c94565b60200260200101515b60408051602081019091526000808252919250905b8651811015612aa0578360ff16878281518110612a6757612a67613c94565b602002602001015160ff1603612a9857878181518110612a8957612a89613c94565b60200260200101519150612aa0565b600101612a48565b508951604051630c2eceab60e21b81526001600160a01b038416916330bb3aac91612ad3918d918d908790600401614673565b602060405180830381865afa158015612af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b149190614403565b612b1e90866143bd565b945050508060010190506129bc565b505095945050505050565b606081471015612b5d5760405163cd78605960e01b81523060048201526024016108fa565b600080856001600160a01b03168486604051612b7991906146b2565b60006040518083038185875af1925050503d8060008114612bb6576040519150601f19603f3d011682016040523d82523d6000602084013e612bbb565b606091505b5091509150612bcb86838361357e565b9695505050505050565b805160208083015160408085015160608087015160808801519351600160f81b9681019690965260c09690961b6001600160c01b031916602186015260e093841b6001600160e01b031990811660298701526001600160a01b03909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c00151604051602001612c4c9291906146c4565b60006060600080612c8f8561273a565b91509150600087604001518860200151612ca9919061465a565b90508060ff166001600160401b03811115612cc657612cc6613d10565b604051908082528060200260200182016040528015612cef578160200160208202803683370190505b50935060005b8160ff168160ff161015610c6d576000896020015160ff168260ff1610612d4a5760a08a015160208b0151612d2a9084614374565b60ff1681518110612d3d57612d3d613c94565b6020026020010151612d6c565b89608001518260ff1681518110612d6357612d63613c94565b60200260200101515b60408051602081019091526000808252919250905b8551811015612dd9578360ff16868281518110612da057612da0613c94565b602002602001015160ff1603612dd157868181518110612dc257612dc2613c94565b60200260200101519150612dd9565b600101612d81565b506040516395d376d760e01b81526001600160a01b038316906395d376d790612e08908d9085906004016146ea565b6020604051808303816000875af1158015612e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4b9190614403565b878460ff1681518110612e6057612e60613c94565b6020026020010181815250506000878460ff1681518110612e8357612e83613c94565b60200260200101511115612f1357868360ff1681518110612ea657612ea6613c94565b60200260200101518c6000846001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ee191906143bd565b92505081905550868360ff1681518110612efd57612efd613c94565b602002602001015188612f1091906143bd565b97505b5050600101612cf5565b60608060001960ff861601612f9a57865115612f5c57868484604051602001612f489392919061475c565b604051602081830303815290604052612f93565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613032565b60011960ff86160161301457855115612fd657858484604051602001612fc29392919061475c565b60405160208183030381529060405261300d565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613032565b604051636780cfaf60e01b815260ff861660048201526024016108fa565b509495939450505050565b606060001961ffff8516016130dd576022821461306d576040516301b8ca5560e31b815260040160405180910390fd5b600061308e6130806022600286886145d2565b61308991614784565b6135da565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b166024820152909150603401604051602081830303815290604052915050611030565b60011961ffff8516016131a9576042821115806130fa5750606282115b15613118576040516360493e2b60e11b815260040160405180910390fd5b600061312b6130806022600286886145d2565b905060006131406130806042602287896145d2565b905060006041198501613156866042818a6145d2565b61315f91614784565b60405160086020938403029190911c9250613190916001916011918391889183916031916002918b918b91016147a2565b6040516020818303038152906040529350505050611030565b604051630417051360e41b815261ffff851660048201526024016108fa565b600080805b83518210156132775760019091019060006131e885846132fe565b905060028301925060028161ffff1610156132195760405163013adb8360e21b8152600481018490526024016108fa565b600061322586856132a2565b90508060ff1660ff0361324b576040516334f4f66f60e21b815260040160405180910390fd5b600160ff82161b83166132685760019485019460ff82161b831792505b5061ffff1691909101906131cd565b8351821461329b5760405163013adb8360e21b8152600481018390526024016108fa565b5050919050565b60006132af8260016143bd565b835110156132f55760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b60448201526064016108fa565b50016001015190565b600061330b8260026143bd565b835110156133525760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b60448201526064016108fa565b50016002015190565b60608161336981601f6143bd565b10156133a85760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016108fa565b6133b282846143bd565b845110156133f65760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016108fa565b606082158015613415576040519150600082526020820160405261345f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561344e578051835260209283019201613436565b5050858452601f01601f1916604052505b50949350505050565b8160ff1660ff0361348c576040516334f4f66f60e21b815260040160405180910390fd5b600061349983600161465a565b905060005b84518110156117b95760008582815181106134bb576134bb613c94565b602002602001015190508060ff168360ff1603613530578682815181106134e4576134e4613c94565b6020026020010151846040516020016134fe929190614545565b60405160208183030381529060405287838151811061351f5761351f613c94565b6020026020010181905250506117b9565b8060ff16600003613575578286838151811061354e5761354e613c94565b602002602001019060ff16908160ff16815250508387838151811061351f5761351f613c94565b5060010161349e565b6060826135935761358e8261361b565b611030565b81511580156135aa57506001600160a01b0384163b155b156135d357604051639996b31560e01b81526001600160a01b03851660048201526024016108fa565b5080611030565b60006fffffffffffffffffffffffffffffffff821115613617576040516306dfcc6560e41b815260806004820152602481018390526044016108fa565b5090565b80511561362b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156136e1579160200282015b828111156136e157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906136ac565b506136179291505b8082111561361757600081556001016136e9565b60006020828403121561370f57600080fd5b81356001600160e01b03198116811461103057600080fd5b6001600160a01b038116811461126657600080fd5b803561374781613727565b919050565b63ffffffff8116811461126657600080fd5b80356137478161374c565b6000806040838503121561377c57600080fd5b823561378781613727565b915060208301356137978161374c565b809150509250929050565b815163ffffffff1681526020808301516001600160a01b03169082015260408101610584565b60208101600383106137ea57634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006060848603121561380557600080fd5b833561381081613727565b9250602084013561382081613727565b929592945050506040919091013590565b60008083601f84011261384357600080fd5b5081356001600160401b0381111561385a57600080fd5b6020830191508360208260051b8501011115611da157600080fd5b60008060006040848603121561388a57600080fd5b833561389581613727565b925060208401356001600160401b038111156138b057600080fd5b6138bc86828701613831565b9497909650939450505050565b600080602083850312156138dc57600080fd5b82356001600160401b038111156138f257600080fd5b6138fe85828601613831565b90969095509350505050565b60008151808452602080850194506020840160005b838110156139445781516001600160a01b03168752958201959082019060010161391f565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261399e60c085018261390a565b905060a083015184820360a08601526139b7828261390a565b95945050505050565b602081526000611030602083018461394f565b801515811461126657600080fd5b8035613747816139d3565b60008060008060608587031215613a0257600080fd5b84356001600160401b0380821115613a1957600080fd5b9086019060e08289031215613a2d57600080fd5b90945060208601359080821115613a4357600080fd5b818701915087601f830112613a5757600080fd5b813581811115613a6657600080fd5b886020828501011115613a7857600080fd5b602083019550809450505050613a90604086016139e1565b905092959194509250565b60005b83811015613ab6578181015183820152602001613a9e565b50506000910152565b60008151808452613ad7816020860160208601613a9b565b601f01601f19169290920160200192915050565b825181526020808401519082015260606040820152600061124d6060830184613abf565b600060208284031215613b2157600080fd5b81356110308161374c565b600080600060608486031215613b4157600080fd5b8335613b4c8161374c565b92506020840135613b5c81613727565b91506040840135613b6c8161374c565b809150509250925092565b6020815260006110306020830184613abf565b60008060208385031215613b9d57600080fd5b82356001600160401b0380821115613bb457600080fd5b818501915085601f830112613bc857600080fd5b813581811115613bd757600080fd5b866020606083028501011115613bec57600080fd5b60209290920196919550909350505050565b600060208284031215613c1057600080fd5b5035919050565b815181526020808301519082015260408101610584565b600060208284031215613c4057600080fd5b813561103081613727565b60008060408385031215613c5e57600080fd5b8235613c6981613727565b946020939093013593505050565b600060208284031215613c8957600080fd5b815161103081613727565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112613cc057600080fd5b9190910192915050565b6000808335601e19843603018112613ce157600080fd5b8301803591506001600160401b03821115613cfb57600080fd5b602001915036819003821315611da157600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715613d4857613d48613d10565b60405290565b60405160e081016001600160401b0381118282101715613d4857613d48613d10565b604051601f8201601f191681016001600160401b0381118282101715613d9857613d98613d10565b604052919050565b600060408284031215613db257600080fd5b604051604081018181106001600160401b0382111715613dd457613dd4613d10565b6040528235613de28161374c565b81526020830135613df281613727565b60208201529392505050565b80356001600160401b038116811461374757600080fd5b803560ff8116811461374757600080fd5b600082601f830112613e3757600080fd5b813560206001600160401b03821115613e5257613e52613d10565b8160051b613e61828201613d70565b9283528481018201928281019087851115613e7b57600080fd5b83870192505b84831015613ea3578235613e9481613727565b82529183019190830190613e81565b979650505050505050565b600060c08284031215613ec057600080fd5b613ec8613d26565b9050613ed382613dfe565b8152613ee160208301613e15565b6020820152613ef260408301613e15565b6040820152613f0360608301613e15565b606082015260808201356001600160401b0380821115613f2257600080fd5b613f2e85838601613e26565b608084015260a0840135915080821115613f4757600080fd5b50613f5484828501613e26565b60a08301525092915050565b600060208284031215613f7257600080fd5b81356001600160401b03811115613f8857600080fd5b61124d84828501613eae565b60008235603e19833603018112613cc057600080fd5b6000823560be19833603018112613cc057600080fd5b600060208284031215613fd257600080fd5b61103082613e15565b600060208284031215613fed57600080fd5b61103082613dfe565b60006105843683613eae565b6000808335601e1984360301811261401957600080fd5b83016020810192503590506001600160401b0381111561403857600080fd5b8060051b3603821315611da157600080fd5b8183526000602080850194508260005b8581101561394457813561406d81613727565b6001600160a01b03168752958201959082019060010161405a565b60208082528181018390526000906040808401600586901b8501820187855b888110156141bf57603f19808985030185528235603e198c36030181126140cd57600080fd5b8b0180356140da8161374c565b63ffffffff168552808801353682900360be190181126140f957600080fd5b858901889052016001600160401b0361411182613dfe565b1687860152614121888201613e15565b606060ff808316828901526141378a8501613e15565b92506080818416818a015261414d838601613e15565b935060a09250818416838a015261416681860186614002565b60c08b8101529450915061418190506101008901848361404a565b92505061419081840184614002565b93509050838783030160e08801526141a982848361404a565b978a0197965050509287019250506001016140a7565b509098975050505050505050565b6040815260006141e06040830186613abf565b8281036020840152838152838560208301376000602085830101526020601f19601f860116820101915050949350505050565b813561421e8161374c565b63ffffffff8116905081548163ffffffff198216178355602084013561424381613727565b6001600160c01b03199190911690911760209190911b640100000000600160c01b031617905550565b6020808252818101839052600090604080840186845b878110156142df5781356142958161374c565b63ffffffff908116845282860135906142ad8261374c565b1683860152818401356142bf81613727565b6001600160a01b0316838501526060928301929190910190600101614282565b5090979650505050505050565b6001600160a01b038416815263ffffffff831660208201526080810161124d6040830184805163ffffffff1682526020908101516001600160a01b0316910152565b6001600160a01b038416815263ffffffff831660208201526060604082018190526000906139b79083018461394f565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156105845761058461435e565b600060ff8316806143ae57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b808201808211156105845761058461435e565b63ffffffff8516815260018060a01b0384166020820152826040820152608060608201526000612bcb6080830184613abf565b60006020828403121561441557600080fd5b5051919050565b60006020828403121561442e57600080fd5b8151611030816139d3565b600082601f83011261444a57600080fd5b81356001600160401b0381111561446357614463613d10565b614476601f8201601f1916602001613d70565b81815284602083860101111561448b57600080fd5b816020850160208301376000918101602001919091529392505050565b600060e082360312156144ba57600080fd5b6144c2613d4e565b6144cb83613dfe565b81526144d96020840161375e565b60208201526144ea6040840161373c565b60408201526144fb6060840161375e565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b0381111561452d57600080fd5b61453936828601614439565b60c08301525092915050565b60008351614557818460208801613a9b565b83519083019061456b818360208801613a9b565b01949350505050565b606081526000614587606083018661390a565b6020838203602085015261459b828761390a565b84810360408601528551808252602080880194509091019060005b818110156141bf578451835293830193918301916001016145b6565b600080858511156145e257600080fd5b838611156145ef57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156146245780818660020360031b1b83161692505b505092915050565b6001600160f81b031981358181169160018510156146245760019490940360031b84901b1690921692915050565b60ff81811683821601908111156105845761058461435e565b63ffffffff851681526001600160401b03841660208201526001600160a01b0383166040820152608060608201819052600090612bcb90830184613abf565b60008251613cc0818460208701613a9b565b828152600082516146dc816020850160208701613a9b565b919091016020019392505050565b6040815263ffffffff83511660408201526000602084015160a0606084015261471660e0840182613abf565b604086015160808581019190915260608701516001600160401b031660a08601528601516001600160a01b031660c0850152838103602085015290506139b78185613abf565b6000845161476e818460208901613a9b565b8201838582376000930192835250909392505050565b8035602083101561058457600019602084900360031b1b1692915050565b60f88a811b6001600160f81b0319908116835260f08b811b6001600160f01b031990811660018601528b841b8316600386015260808b901b6001600160801b031916600486015289841b831660148601529088901b1660158401529085901b1660178201526000614822601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea26469706673582212209c4e56d6c67105dfab95a5db652280357c444a31ddd8e746e20a46bf6d44b3bb64736f6c6343000816003360c06040523480156200001157600080fd5b50604051620024413803806200244183398101604081905262000034916200013e565b8080816001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009b919062000170565b3380620000c257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000cd81620000ee565b506001600160a01b0390911660805263ffffffff1660a05250620001989050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200015157600080fd5b81516001600160a01b03811681146200016957600080fd5b9392505050565b6000602082840312156200018357600080fd5b815163ffffffff811681146200016957600080fd5b60805160a05161227c620001c5600039600061031e01526000818161041b0152610484015261227c6000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806343ea4fa9116100a25780638da5cb5b116100715780638da5cb5b146102665780639c33abf714610281578063c40ff835146102a1578063e084d952146102b4578063f2fde38b146102c757600080fd5b806343ea4fa91461021857806354fd4d501461022b5780636750cd4c1461024b578063715018a61461025e57600080fd5b806320efd722116100de57806320efd7221461016f57806329460b0b1461018257806339e3f938146101955780633c782a52146101b557600080fd5b806301ffc9a7146101105780630223536e146101385780630894edf11461014d5780631881d94d14610160575b600080fd5b61012361011e3660046116ed565b6102da565b60405190151581526020015b60405180910390f35b61014b61014636600461177b565b610305565b005b61014b61015b3660046117d7565b610317565b600160405161012f9190611822565b61014b61017d3660046118a5565b610482565b61014b6101903660046118f7565b6105a4565b6101a86101a336600461194c565b61073c565b60405161012f9190611a35565b6101f96101c3366004611a48565b600260209081526000938452604080852082529284528284209052825290205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161012f565b6101a861022636600461194c565b610877565b60408051600381526000602082015260029181019190915260600161012f565b610123610259366004611a7d565b610b83565b61014b610b8e565b6000546040516001600160a01b03909116815260200161012f565b61029461028f366004611a98565b610ba2565b60405161012f9190611ad2565b61014b6102af366004611b21565b610c0b565b6101236102c2366004611d10565b610c1b565b61014b6102d5366004611d5d565b610c30565b60006001600160e01b03198216630ab7be9f60e01b14806102ff57506102ff82610c6e565b92915050565b61031184848484610ca3565b50505050565b61034283837f0000000000000000000000000000000000000000000000000000000000000000610d89565b600061034e8484610e0c565b9050600061035c8585610e1e565b9050600061036a8383610877565b905061038e818787604051610380929190611d78565b604051809103902086610e41565b600060405180606001604052808463ffffffff1681526020016103b18989610f91565b81526020016103c08989610faa565b6001600160401b039081169091526040805163a825d74760e01b8152835163ffffffff166004820152602084015160248201529083015190911660448201526001600160a01b038681166064830152608482018890529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a825d7479060a401600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b5050505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146104cb5760405163467409c360e01b815260040160405180910390fd5b60005b8181101561031157368383838181106104e9576104e9611d88565b90506020028101906104fb9190611d9e565b905061051261050d6020830183611a7d565b610fcd565b60026105246040830160208401611a7d565b63ffffffff16036105645761055f61053f6020830183611a7d565b8661054d6040850185611dbe565b81019061055a9190611e04565b610ffb565b61059b565b6105746040820160208301611a7d565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016104ce565b6105ac611051565b60005b818110156106fe57368383838181106105ca576105ca611d88565b90506020028101906105dc9190611e38565b905060ff6105ed6020830183611e4e565b6105fe906040810190602001611e64565b60ff160361061f576040516341d50bed60e11b815260040160405180910390fd5b60ff61062e6020830183611e4e565b61063f906060810190604001611e64565b60ff16036106605760405163211089b360e11b815260040160405180910390fd5b6001600160401b036106756020830183611e4e565b610683906020810190611e7f565b6001600160401b0316036106aa5760405163281b33d760e11b815260040160405180910390fd5b6106c86106ba6020830183611e4e565b6106c390611e9a565b61107e565b6106f560006106da6020840184611a7d565b6106e76020850185611e4e565b6106f090611e9a565b6110b6565b506001016105af565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610730929190611f2a565b60405180910390a15050565b61074461162b565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561080457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107e6575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561086657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610848575b505050505081525050905092915050565b61087f61162b565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b0316806108f45782546001600160401b03168452610911565b6001600160401b0381811614610911576001600160401b03811684525b8154600160401b900460ff166109ab578254600160401b900460ff16156109a6578260010180548060200260200160405190810160405280929190818152602001828054801561098a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161096c575b505050505060808501528254600160401b900460ff1660208501525b610a32565b8154600160401b900460ff90811614610a325781600101805480602002602001604051908101604052809291908181526020018280548015610a1657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109f8575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610adb578254600160481b900460ff1615610ad65782600201805480602002602001604051908101604052809291908181526020018280548015610aab57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a8d575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610b71565b8154600160481b900460ff90811614610b715781600201805480602002602001604051908101604052809291908181526020018280548015610b4657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b28575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610b7a8461107e565b50505092915050565b60006102ff8261134f565b610b96611051565b610ba060006113aa565b565b606060011963ffffffff831601610be357610bbd8385610877565b604051602001610bcd9190611a35565b6040516020818303038152906040529050610c04565b604051635d4be0fd60e11b815263ffffffff83166004820152602401610592565b9392505050565b610c16838383610d89565b505050565b6000610c288484846113fa565b949350505050565b610c38611051565b6001600160a01b038116610c6257604051631e4fbdf760e01b815260006004820152602401610592565b610c6b816113aa565b50565b60006001600160e01b031982166325fc096160e21b14806102ff57506301ffc9a760e01b6001600160e01b03198316146102ff565b604080518082018252600181526001600160401b03831660208201529051600290600090610cd49088908890611d78565b604080519182900390912082526020808301939093529081016000908120868252835281812033808352908452908290208451815495909401516001600160401b03166101000268ffffffffffffffff00199415159490941668ffffffffffffffffff19909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab5691610d7b91879087908690889061206c565b60405180910390a150505050565b60518214610daa5760405163c9bf37b760e01b815260040160405180910390fd5b6001610db68484611503565b60ff1614610dd757604051633a9ae7b960e01b815260040160405180910390fd5b8063ffffffff16610de88484611525565b63ffffffff1614610c165760405163216964bf60e11b815260040160405180910390fd5b6000610c04610e1b8484611535565b90565b6000610e2e600d600984866120c6565b610e37916120f0565b60e01c9392505050565b610e4c8383836113fa565b610e695760405163130c463560e21b815260040160405180910390fd5b602083015160ff1615610efe5760005b836020015160ff168160ff161015610efc57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110610ec157610ec1611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610e79565b505b604083015160ff1615610c165760005b836040015160ff168160ff161015610311576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110610f5657610f56611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610f0e565b6000610fa1602d600d84866120c6565b610c0491612120565b6000610fba6009600184866120c6565b610fc39161213e565b60c01c9392505050565b610fd68161134f565b610c6b57604051633c30434160e21b815263ffffffff82166004820152602401610592565b6110068284836110b6565b6110108284610877565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516110449392919061216c565b60405180910390a1505050565b6000546001600160a01b03163314610ba05760405163118cdaa760e01b8152336004820152602401610592565b602081015160ff161580156110985750606081015160ff16155b15610c6b5760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806110d15750602081015160ff16155b156110ff57608081015151156110fa576040516341d50bed60e11b815260040160405180910390fd5b611165565b806020015160ff1681608001515114158061113a57506002611123600160ff6121b2565b61112d91906121cb565b60ff16816020015160ff16115b15611158576040516341d50bed60e11b815260040160405180910390fd5b6111658160800151611545565b604081015160ff90811614806111805750604081015160ff16155b156111d45760a081015151156111a95760405163211089b360e11b815260040160405180910390fd5b606081015160ff16156111cf576040516338682fa960e01b815260040160405180910390fd5b611279565b806040015160ff168160a001515114158061120f575060026111f8600160ff6121b2565b61120291906121cb565b60ff16816040015160ff16115b1561122d5760405163211089b360e11b815260040160405180910390fd5b606081015160ff16158061124e5750806040015160ff16816060015160ff16115b1561126c576040516338682fa960e01b815260040160405180910390fd5b6112798160a00151611545565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361132b93908501920190611673565b5060a08201518051611347916002840191602090910190611673565b505050505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580610c04575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b602083015160009060ff161561147d5760005b846020015160ff168160ff1610156114655761144f85608001518260ff168151811061143b5761143b611d88565b6020026020010151858588600001516115ac565b61145d576000915050610c04565b60010161140d565b50836040015160ff1660000361147d57506001610c04565b606084015160005b856040015160ff168160ff1610156114f7576114c78660a001518260ff16815181106114b3576114b3611d88565b6020026020010151868689600001516115ac565b156114ef57816114d6816121fb565b9250508160ff166000036114ef57600192505050610c04565b600101611485565b50600095945050505050565b600061151260018284866120c6565b61151b91612218565b60f81c9392505050565b6000610e2e6031602d84866120c6565b6000610fa16051603184866120c6565b6000805b8251811015610c1657600083828151811061156657611566611d88565b60200260200101519050826001600160a01b0316816001600160a01b0316116115a25760405163447516e160e01b815260040160405180910390fd5b9150600101611549565b600083815260026020908152604080832085845282528083206001600160a01b0388168452825280832081518083019092525460ff81161580158084526101009092046001600160401b03169383019390935290916116215750826001600160401b031681602001516001600160401b031610155b9695505050505050565b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156116c8579160200282015b828111156116c857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611693565b506116d49291506116d8565b5090565b5b808211156116d457600081556001016116d9565b6000602082840312156116ff57600080fd5b81356001600160e01b031981168114610c0457600080fd5b60008083601f84011261172957600080fd5b5081356001600160401b0381111561174057600080fd5b60208301915083602082850101111561175857600080fd5b9250929050565b80356001600160401b038116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b84356001600160401b038111156117a757600080fd5b6117b387828801611717565b909550935050602085013591506117cc6040860161175f565b905092959194509250565b6000806000604084860312156117ec57600080fd5b83356001600160401b0381111561180257600080fd5b61180e86828701611717565b909790965060209590950135949350505050565b602081016003831061184457634e487b7160e01b600052602160045260246000fd5b91905290565b80356001600160a01b038116811461177657600080fd5b60008083601f84011261187357600080fd5b5081356001600160401b0381111561188a57600080fd5b6020830191508360208260051b850101111561175857600080fd5b6000806000604084860312156118ba57600080fd5b6118c38461184a565b925060208401356001600160401b038111156118de57600080fd5b6118ea86828701611861565b9497909650939450505050565b6000806020838503121561190a57600080fd5b82356001600160401b0381111561192057600080fd5b61192c85828601611861565b90969095509350505050565b803563ffffffff8116811461177657600080fd5b6000806040838503121561195f57600080fd5b6119688361184a565b915061197660208401611938565b90509250929050565b60008151808452602080850194506020840160005b838110156119b95781516001600160a01b031687529582019590820190600101611994565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c06080850152611a1360c085018261197f565b905060a083015184820360a0860152611a2c828261197f565b95945050505050565b602081526000610c0460208301846119c4565b600080600060608486031215611a5d57600080fd5b8335925060208401359150611a746040850161184a565b90509250925092565b600060208284031215611a8f57600080fd5b610c0482611938565b600080600060608486031215611aad57600080fd5b611ab684611938565b9250611ac46020850161184a565b9150611a7460408501611938565b60006020808352835180602085015260005b81811015611b0057858101830151858201604001528201611ae4565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060408486031215611b3657600080fd5b83356001600160401b03811115611b4c57600080fd5b611b5886828701611717565b9094509250611a74905060208501611938565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611ba357611ba3611b6b565b60405290565b803560ff8116811461177657600080fd5b600082601f830112611bcb57600080fd5b813560206001600160401b0380831115611be757611be7611b6b565b8260051b604051601f19603f83011681018181108482111715611c0c57611c0c611b6b565b6040529384526020818701810194908101925087851115611c2c57600080fd5b6020870191505b84821015611c5357611c448261184a565b83529183019190830190611c33565b979650505050505050565b600060c08284031215611c7057600080fd5b611c78611b81565b9050611c838261175f565b8152611c9160208301611ba9565b6020820152611ca260408301611ba9565b6040820152611cb360608301611ba9565b606082015260808201356001600160401b0380821115611cd257600080fd5b611cde85838601611bba565b608084015260a0840135915080821115611cf757600080fd5b50611d0484828501611bba565b60a08301525092915050565b600080600060608486031215611d2557600080fd5b83356001600160401b03811115611d3b57600080fd5b611d4786828701611c5e565b9660208601359650604090950135949350505050565b600060208284031215611d6f57600080fd5b610c048261184a565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112611db457600080fd5b9190910192915050565b6000808335601e19843603018112611dd557600080fd5b8301803591506001600160401b03821115611def57600080fd5b60200191503681900382131561175857600080fd5b600060208284031215611e1657600080fd5b81356001600160401b03811115611e2c57600080fd5b610c2884828501611c5e565b60008235603e19833603018112611db457600080fd5b6000823560be19833603018112611db457600080fd5b600060208284031215611e7657600080fd5b610c0482611ba9565b600060208284031215611e9157600080fd5b610c048261175f565b60006102ff3683611c5e565b6000808335601e19843603018112611ebd57600080fd5b83016020810192503590506001600160401b03811115611edc57600080fd5b8060051b360382131561175857600080fd5b8183526000602080850194508260005b858110156119b9576001600160a01b03611f178361184a565b1687529582019590820190600101611efe565b60208082528181018390526000906040808401600586901b8501820187855b8881101561205e57603f19808985030185528235603e198c3603018112611f6f57600080fd5b8b0163ffffffff611f7f82611938565b1685528781013560be19823603018112611f9857600080fd5b858901889052016001600160401b03611fb08261175f565b1687860152611fc0888201611ba9565b606060ff80831682890152611fd68a8501611ba9565b92506080818416818a0152611fec838601611ba9565b935060a09250818416838a015261200581860186611ea6565b60c08b81015294509150612020905061010089018483611eee565b92505061202f81840184611ea6565b93509050838783030160e0880152612048828483611eee565b978a019796505050928701925050600101611f49565b509098975050505050505050565b6001600160a01b03861681526080602082018190528101849052838560a0830137600060a08583010152600060a0601f19601f87011683010190506001600160401b03841660408301528260608301529695505050505050565b600080858511156120d657600080fd5b838611156120e357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156121185780818660040360031b1b83161692505b505092915050565b803560208310156102ff57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156121185760089490940360031b84901b1690921692915050565b6001600160a01b038416815263ffffffff83166020820152606060408201819052600090611a2c908301846119c4565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ff576102ff61219c565b600060ff8316806121ec57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b600060ff82168061220e5761220e61219c565b6000190192915050565b6001600160f81b031981358181169160018510156121185760019490940360031b84901b169092169291505056fea26469706673582212209a9d42e4d24ba1f5577ac32292c65d2ac9fe71fc72829f0ae54477497a89995e64736f6c6343000816003360806040523480156200001157600080fd5b5060405162002c7038038062002c7083398101604081905262000034916200046f565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b038581169190911790915584908490612ee090859085908216156200008f576200008d60008362000226565b505b60005b8551811015620000f457620000ea7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000d657620000d662000523565b60200260200101516200022660201b60201c565b5060010162000092565b5060005b815181101562000146576200013c7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000d657620000d662000523565b50600101620000f8565b505060016004908155600680546001600160a01b0319166001600160a01b038d169081179091556040805163416ecebf60e01b8152905191965063416ecebf95508083019450602093509091908290030181865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d3919062000539565b6006805463ffffffff92909216600160a01b0263ffffffff60a01b199092169190911790555050600780546001600160a01b039094166001600160a01b03199094169390931790925550620005a5915050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156200027957506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b15620002c65760018054601590620002a190600160a81b90046001600160401b031662000568565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b620002d28383620002de565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1662000383576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556200033a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620002d8565b506000620002d8565b80516001600160a01b0381168114620003a457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003d157600080fd5b815160206001600160401b0380831115620003f057620003f0620003a9565b8260051b604051601f19603f83011681018181108482111715620004185762000418620003a9565b60405293845260208187018101949081019250878511156200043957600080fd5b6020870191505b84821015620004645762000454826200038c565b8352918301919083019062000440565b979650505050505050565b60008060008060008060c087890312156200048957600080fd5b62000494876200038c565b9550620004a4602088016200038c565b60408801519095506001600160401b0380821115620004c257600080fd5b620004d08a838b01620003bf565b9550620004e060608a016200038c565b9450620004f060808a016200038c565b935060a08901519150808211156200050757600080fd5b506200051689828a01620003bf565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156200054c57600080fd5b815163ffffffff811681146200056157600080fd5b9392505050565b60006001600160401b038281166002600160401b031981016200059b57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6126bb80620005b56000396000f3fe6080604052600436106101e25760003560e01c8063709eb66411610102578063a217fddf11610095578063c7b2370b11610064578063c7b2370b14610649578063cd88b90314610669578063d2ae210414610689578063d547741f146106c857600080fd5b8063a217fddf146105cf578063c2803b2c146105e4578063c358de0a14610604578063c416aa511461062457600080fd5b8063741bef1a116100d1578063741bef1a146104cd5780638624ba07146104ed57806391d14854146105005780639e9449651461052057600080fd5b8063709eb66414610434578063717e8a4214610454578063724e78da14610474578063726075371461049457600080fd5b80632f2ff15d1161017a5780633d85ac33116101495780633d85ac33146103b1578063475b6d9e146103d15780635c975abb146103e45780635e280f11146103fc57600080fd5b80632f2ff15d1461033e5780633146646a1461035e57806336568abe1461037e5780633927c0751461039e57600080fd5b806316c38b3c116101b657806316c38b3c14610293578063248a9ca3146102b357806326e67a37146102f15780632de113761461031e57600080fd5b8062bf2e80146101e757806301e336671461022157806301ffc9a7146102435780631095b6d714610273575b600080fd5b3480156101f357600080fd5b5060015461020990600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561022d57600080fd5b5061024161023c366004611a9c565b6106e8565b005b34801561024f57600080fd5b5061026361025e366004611ad8565b610711565b6040519015158152602001610218565b34801561027f57600080fd5b5061024161028e366004611a9c565b610748565b34801561029f57600080fd5b506102416102ae366004611b10565b61085b565b3480156102bf57600080fd5b506102e36102ce366004611b2d565b60009081526020819052604090206001015490565b604051908152602001610218565b3480156102fd57600080fd5b5061031161030c366004611b5a565b610880565b6040516102189190611b75565b34801561032a57600080fd5b50610263610339366004611bbc565b610907565b34801561034a57600080fd5b50610241610359366004611bd7565b61099e565b34801561036a57600080fd5b50610241610379366004611c4b565b6109c3565b34801561038a57600080fd5b50610241610399366004611bd7565b610a53565b6102416103ac366004611cf2565b610a6c565b3480156103bd57600080fd5b506102416103cc366004611e33565b610b27565b6102416103df366004611f4e565b610c9e565b3480156103f057600080fd5b5060015460ff16610263565b34801561040857600080fd5b5060065461041c906001600160a01b031681565b6040516001600160a01b039091168152602001610218565b34801561044057600080fd5b506102e361044f366004611fcc565b610ce0565b34801561046057600080fd5b506102e361046f366004611fcc565b610de7565b34801561048057600080fd5b5061024161048f366004611bbc565b610f13565b3480156104a057600080fd5b506006546104b890600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610218565b3480156104d957600080fd5b5060025461041c906001600160a01b031681565b6102416104fb36600461203a565b610f79565b34801561050c57600080fd5b5061026361051b366004611bd7565b611084565b34801561052c57600080fd5b5061058c61053b366004611b5a565b600560205260009081526040902080546001909101546001600160401b038083169261ffff600160401b820416926001600160801b03600160501b90920482169291811691600160801b9091041685565b604080516001600160401b03968716815261ffff90951660208601526001600160801b03938416908501529116606083015291909116608082015260a001610218565b3480156105db57600080fd5b506102e3600081565b3480156105f057600080fd5b5060075461041c906001600160a01b031681565b34801561061057600080fd5b5061024161061f3660046120b2565b6110ad565b34801561063057600080fd5b5060015461041c9061010090046001600160a01b031681565b34801561065557600080fd5b50610241610664366004611bbc565b611115565b34801561067557600080fd5b506102416106843660046120cd565b611183565b34801561069557600080fd5b506001546106b090600160a81b90046001600160401b031681565b6040516001600160401b039091168152602001610218565b3480156106d457600080fd5b506102416106e3366004611bd7565b6111bb565b600080516020612666833981519152610700816111e0565b61070b8484846111ed565b50505050565b60006001600160e01b03198216637965db0b60e01b148061074257506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020612666833981519152610760816111e0565b61078a7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de85611084565b6107a757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610866816111e0565b811561087857610874611215565b5050565b610874611269565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156108fb57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108cc5790505b50505050509050919050565b60006109337f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611084565b1561094057506000919050565b600154600160a81b90046001600160401b0316158061098457506109847f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83611084565b1561099157506001919050565b506000919050565b919050565b6000828152602081905260409020600101546109b9816111e0565b61070b83836112a2565b6000805160206126668339815191526109db816111e0565b6109e3611338565b600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610a179087908790879060040161217b565b600060405180830381600087803b158015610a3157600080fd5b505af1158015610a45573d6000803e3d6000fd5b5050505061070b6001600455565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020612666833981519152610a84816111e0565b610a8c611338565b610aac88610a9a8686611362565b610aa48787611385565b8a8a8a61139e565b50600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610ae19087908790879060040161217b565b600060405180830381600087803b158015610afb57600080fd5b505af1158015610b0f573d6000803e3d6000fd5b50505050610b1d6001600455565b5050505050505050565b600080516020612666833981519152610b3f816111e0565b60005b8251811015610c62576000838281518110610b5f57610b5f61219f565b6020908102919091018101516040805160a08082018352838501516001600160401b03908116835260608086015161ffff9081168589019081526080808901516001600160801b03908116888a01908152968a01518116948801948552888a01518616918801918252985163ffffffff1660009081526005909a529690982094518554985194518816600160501b026fffffffffffffffffffffffffffffffff60501b1995909216600160401b0269ffffffffffffffffffff1990991690841617979097179290921695909517825551600191820180549351909516600160801b026001600160c01b031990931693169290921717909155919091019050610b42565b507fb99f6de5e22c60c178b03bfacf2daeb4b6089f5b37e0fe2c48a5d5141191fc5382604051610c9291906121b5565b60405180910390a15050565b600080516020612666833981519152610cb6816111e0565b610cbe611338565b610ccc87878787878761139e565b50610cd76001600455565b50505050505050565b600084610cec81610907565b610d0957604051634ab5ebcd60e01b815260040160405180910390fd5b610d11611505565b6040805160a0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290528a831684860152606084018a905260015461ffff600160e81b8204166080860152600092835260059091529084902093516321a7700b60e11b815292936101009091049091169163434ee01691610d9a918591908a908a90600401612252565b602060405180830381865afa158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb9190612306565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de610e13816111e0565b85610e1d81610907565b610e3a57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160a0810182526002546001600160a01b03908116825263ffffffff8b1660208084018290528b831684860152606084018b905260015461ffff600160e81b820416608086015260009283526005909152908490209351632b377bb160e11b815292936101009091049091169163566ef76291610ec3918591908b908b90600401612252565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f069190612306565b9998505050505050505050565b600080516020612666833981519152610f2b816111e0565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d90602001610c92565b600080516020612666833981519152610f91816111e0565b610f99611338565b600654600090610fc7906020850190600160a01b900463ffffffff16610fbf8287611bbc565b89898961139e565b90506000610fd58234612335565b6006549091506001600160a01b0316630c0c389e60e08601358360208801610ffd818a611bbc565b60808a013561100f60a08c018c612348565b61101c60c08e018e612348565b6040518a63ffffffff1660e01b815260040161103e97969594939291906123c7565b6000604051808303818589803b15801561105757600080fd5b5088f115801561106b573d6000803e3d6000fd5b505050505050505061107d6001600455565b5050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206126668339815191526110c5816111e0565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610c92565b60008051602061266683398151915261112d816111e0565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610c92565b60008051602061266683398151915261119b816111e0565b63ffffffff8416600090815260036020526040902061107d9084846119c7565b6000828152602081905260409020600101546111d6816111e0565b61070b838361152b565b6111ea81336115b5565b50565b6001600160a01b03831661120a5761120582826115f3565b505050565b6112058383836116a0565b61121d611505565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b6112716116db565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361124c565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156112da57506112d88383611084565b155b1561132457600180546015906112ff90600160a81b90046001600160401b031661241d565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836116fe565b5060019392505050565b60026004540361135b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600455565b60006113726031602d8486612443565b61137b9161246d565b60e01c9392505050565b60006113976113948484611790565b90565b9392505050565b600080836001600160401b038111156113b9576113b9611d85565b6040519080825280602002602001820160405280156113e2578160200160208202803683370190505b50905060005b848110156114b85760008686838181106114045761140461219f565b90506040020180360381019061141a919061249d565b9050600081600001516001600160a01b031682602001518790604051600060405180830381858888f193505050503d8060008114611474576040519150601f19603f3d011682016040523d82523d6000602084013e611479565b606091505b50509050808484815181106114905761149061219f565b9115156020928302919091018201528201516114ac90866124f3565b945050506001016113e8565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c34688888888888866040516114f296959493929190612544565b60405180910390a1509695505050505050565b60015460ff16156115295760405163d93c066560e01b815260040160405180910390fd5b565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8314801561156157506115618383611084565b156115ab576001805460159061158690600160a81b90046001600160401b03166125d8565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836117a9565b6115bf8282611084565b6108745760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044015b60405180910390fd5b6001600160a01b03821661161a576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611667576040519150601f19603f3d011682016040523d82523d6000602084013e61166c565b606091505b505090508061120557604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016115ea565b6001600160a01b0382166116c7576040516306b7a93160e41b815260040160405180910390fd5b6112056001600160a01b0384168383611814565b60015460ff1661152957604051638dfc202b60e01b815260040160405180910390fd5b600061170a8383611084565b611788576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117403390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610742565b506000610742565b60006117a0605160318486612443565b611397916125fb565b60006117b58383611084565b15611788576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610742565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b17905261120591859190600090611872908416836118c0565b905080516000141580156118975750808060200190518101906118959190612619565b155b1561120557604051635274afe760e01b81526001600160a01b03841660048201526024016115ea565b60606113978383600084600080856001600160a01b031684866040516118e69190612636565b60006040518083038185875af1925050503d8060008114611923576040519150601f19603f3d011682016040523d82523d6000602084013e611928565b606091505b5091509150611938868383611942565b9695505050505050565b606082611957576119528261199e565b611397565b815115801561196e57506001600160a01b0384163b155b1561199757604051639996b31560e01b81526001600160a01b03851660048201526024016115ea565b5080611397565b8051156119ae5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f01602090048101928215611a605791602002820160005b83821115611a3157833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026119f0565b8015611a5e5782816101000a81549060ff0219169055600101602081600001049283019260010302611a31565b505b50611a6c929150611a70565b5090565b5b80821115611a6c5760008155600101611a71565b80356001600160a01b038116811461099957600080fd5b600080600060608486031215611ab157600080fd5b611aba84611a85565b9250611ac860208501611a85565b9150604084013590509250925092565b600060208284031215611aea57600080fd5b81356001600160e01b03198116811461139757600080fd5b80151581146111ea57600080fd5b600060208284031215611b2257600080fd5b813561139781611b02565b600060208284031215611b3f57600080fd5b5035919050565b803563ffffffff8116811461099957600080fd5b600060208284031215611b6c57600080fd5b61139782611b46565b6020808252825182820181905260009190848201906040850190845b81811015611bb057835160ff1683529284019291840191600101611b91565b50909695505050505050565b600060208284031215611bce57600080fd5b61139782611a85565b60008060408385031215611bea57600080fd5b82359150611bfa60208401611a85565b90509250929050565b60008083601f840112611c1557600080fd5b5081356001600160401b03811115611c2c57600080fd5b602083019150836020828501011115611c4457600080fd5b9250929050565b600080600060408486031215611c6057600080fd5b83356001600160401b03811115611c7657600080fd5b611c8286828701611c03565b909790965060209590950135949350505050565b600060608284031215611ca857600080fd5b50919050565b60008083601f840112611cc057600080fd5b5081356001600160401b03811115611cd757600080fd5b6020830191508360208260061b8501011115611c4457600080fd5b600080600080600080600060e0888a031215611d0d57600080fd5b611d178989611c96565b965060608801356001600160401b0380821115611d3357600080fd5b611d3f8b838c01611cae565b909850965060808a0135955060a08a0135915080821115611d5f57600080fd5b50611d6c8a828b01611c03565b989b979a5095989497959660c090950135949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611dbd57611dbd611d85565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611deb57611deb611d85565b604052919050565b80356001600160401b038116811461099957600080fd5b803561ffff8116811461099957600080fd5b80356001600160801b038116811461099957600080fd5b60006020808385031215611e4657600080fd5b82356001600160401b0380821115611e5d57600080fd5b818501915085601f830112611e7157600080fd5b813581811115611e8357611e83611d85565b611e91848260051b01611dc3565b818152848101925060c0918202840185019188831115611eb057600080fd5b938501935b82851015611f425780858a031215611ecd5760008081fd5b611ed5611d9b565b611ede86611b46565b8152611eeb878701611df3565b878201526040611efc818801611df3565b908201526060611f0d878201611e0a565b908201526080611f1e878201611e1c565b9082015260a0611f2f878201611e1c565b9082015284529384019392850192611eb5565b50979650505050505050565b60008060008060008060e08789031215611f6757600080fd5b611f718888611c96565b9550611f7f60608801611b46565b9450611f8d60808801611a85565b935060a08701356001600160401b03811115611fa857600080fd5b611fb489828a01611cae565b979a969950949794969560c090950135949350505050565b600080600080600060808688031215611fe457600080fd5b611fed86611b46565b9450611ffb60208701611a85565b93506040860135925060608601356001600160401b0381111561201d57600080fd5b61202988828901611c03565b969995985093965092949392505050565b6000806000806060858703121561205057600080fd5b84356001600160401b038082111561206757600080fd5b61207388838901611cae565b909650945060208701359350604087013591508082111561209357600080fd5b50850161010081880312156120a757600080fd5b939692955090935050565b6000602082840312156120c457600080fd5b61139782611e0a565b6000806000604084860312156120e257600080fd5b6120eb84611b46565b925060208401356001600160401b038082111561210757600080fd5b818601915086601f83011261211b57600080fd5b81358181111561212a57600080fd5b8760208260051b850101111561213f57600080fd5b6020830194508093505050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061218f604083018587612152565b9050826020830152949350505050565b634e487b7160e01b600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015612245578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016121d2565b5091979650505050505050565b84516001600160a01b03908116825260208087015163ffffffff1690830152604080870151909116818301526060808701519083015260808087015161ffff9081168285015286546001600160401b0380821660a08701529381901c90911660c085015260501c6001600160801b0390811660e08501526001870154908116610100850152901c1661012082015261016061014082018190526000906122fb8382018587612152565b979650505050505050565b60006020828403121561231857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107425761074261231f565b6000808335601e1984360301811261235f57600080fd5b8301803591506001600160401b0382111561237957600080fd5b602001915036819003821315611c4457600080fd5b63ffffffff61239c82611b46565b168252602081013560208301526001600160401b036123bd60408301611df3565b1660408301525050565b6123d1818961238e565b60018060a01b038716606082015285608082015260e060a082015260006123fc60e083018688612152565b82810360c084015261240f818587612152565b9a9950505050505050505050565b60006001600160401b038083168181036124395761243961231f565b6001019392505050565b6000808585111561245357600080fd5b8386111561246057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156124955780818660040360031b1b83161692505b505092915050565b6000604082840312156124af57600080fd5b604051604081018181106001600160401b03821117156124d1576124d1611d85565b6040526124dd83611a85565b8152602083013560208201528091505092915050565b808201808211156107425761074261231f565b60008151808452602080850194506020840160005b8381101561253957815115158752958201959082019060010161251b565b509495945050505050565b600060e08201612554838a61238e565b63ffffffff881660608401526001600160a01b03878116608085015260e060a0850152908590528590610100840160005b878110156125b6578261259785611a85565b1682526020848101359083015260409384019390910190600101612585565b5084810360c08601526125c98187612506565b9b9a5050505050505050505050565b60006001600160401b038216806125f1576125f161231f565b6000190192915050565b8035602083101561074257600019602084900360031b1b1692915050565b60006020828403121561262b57600080fd5b815161139781611b02565b6000825160005b81811015612657576020818601810151858301520161263d565b50600092019182525091905056fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220cab19ebaa8e6602c84c9f9f739a45b5571c5513ee60da41f638da9127243412364736f6c6343000816003360a060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610052565b50670de0b6b3a76400006080526100a2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60805161119a6100bd60003960006107cb015261119a6000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063434ee01614610087578063566ef762146100ba578063715018a6146100da5780638da5cb5b146100ef578063f2fde38b1461011757600080fd5b3661006057005b600080fd5b34801561007157600080fd5b50610085610080366004610dc9565b610137565b005b34801561009357600080fd5b506100a76100a2366004610e1d565b61014f565b6040519081526020015b60405180910390f35b3480156100c657600080fd5b506100a76100d5366004610e1d565b610328565b3480156100e657600080fd5b506100856103fb565b3480156100fb57600080fd5b506000546040516001600160a01b0390911681526020016100b1565b34801561012357600080fd5b50610085610132366004610eaf565b61040f565b61013f61044d565b61014a83838361047a565b505050565b600061015e6020850185610eca565b67ffffffffffffffff166000036101a65761017f6040860160208701610ef4565b60405163c3baa0b760e01b815263ffffffff90911660048201526024015b60405180910390fd5b6000806101f96101c56101bf60408a0160208b01610ef4565b50600090565b6101d26020890189610eca565b6101e260a08a0160808b01610eca565b6101f260808b0160608c01610f2f565b898961049d565b9092509050600080808061021060208c018c610eaf565b6001600160a01b03166388a4124c61022e60408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa158015610281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a59190610f4c565b929650909450925090506102ef846102c360408d0160208e01610fa1565b8d60800160208101906102d69190610fa1565b8d60400160208101906102e99190610f2f565b8561075b565b965061030f8684848e608001602081019061030a9190610fa1565b610832565b6103199088610fdb565b9b9a5050505050505050505050565b60006103376020850185610eca565b67ffffffffffffffff166000036103585761017f6040860160208701610ef4565b6000806103716101c56101bf60408a0160208b01610ef4565b9092509050600080808061038860208c018c610eaf565b6001600160a01b031663c1723a1d6103a660408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af1158015610281573d6000803e3d6000fd5b61040361044d565b61040d600061088a565b565b61041761044d565b6001600160a01b03811661044157604051631e4fbdf760e01b81526000600482015260240161019d565b61044a8161088a565b50565b6000546001600160a01b0316331461040d5760405163118cdaa760e01b815233600482015260240161019d565b6001600160a01b0383166104925761014a82826108da565b61014a838383610987565b6000808281036104bf5760405162575ea160e01b815260040160405180910390fd5b5067ffffffffffffffff861660008089815b868410156106a15760003681806104e98c8c8a6109c2565b9a509195509350915087905060001960ff85160161057c5760008061050e8585610a18565b9150915087801561052857506000816001600160801b0316115b1561054b5760405163052e551560e01b815260ff8716600482015260240161019d565b61055e6001600160801b0382168d610fdb565b9b506105736001600160801b03831688610fdb565b96505050610698565b60011960ff8516016105b25760006105948484610a7d565b5090506105aa6001600160801b0382168c610fdb565b9a5050610698565b60021960ff8516016106655785156105e25760405163052e551560e01b815260ff8516600482015260240161019d565b6000806105ef8585610abb565b9250925050816001600160801b031660000361061e5760405163a169d0e160e01b815260040160405180910390fd5b6106316001600160801b0382168d610fdb565b9b508f67ffffffffffffffff16826106499190610fee565b61065c906001600160801b03168c610fdb565b9a505050610698565b60031960ff85160161067a5760019650610698565b60405163052e551560e01b815260ff8516600482015260240161019d565b505050506104d1565b8387146106c457604051634c83bb7560e11b81526004810185905260240161019d565b886001600160801b03168611156106ff576040516242670160e11b8152600481018790526001600160801b038a16602482015260440161019d565b8060000361072057604051630e5eb8f360e41b815260040160405180910390fd5b61072a8186610fdb565b9450821561074c57606461073f866066611015565b610749919061102c565b94505b50505050965096945050505050565b60008061ffff86161561076e5785610770565b845b9050600061271061078561ffff84168a611015565b61078f919061102c565b90506001600160801b03841615806107ae57506001600160801b038516155b156107bc5791506108299050565b600088856001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000886001600160801b03166107fe9190611015565b610808919061102c565b6108129190610fdb565b90508181116108215781610823565b805b93505050505b95945050505050565b60008415610882576127108261ffff16846001600160801b0316866001600160801b0316886108619190611015565b61086b919061102c565b6108759190611015565b61087f919061102c565b90505b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216610901576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461094e576040519150601f19603f3d011682016040523d82523d6000602084013e610953565b606091505b505090508061014a57604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161019d565b6001600160a01b0382166109ae576040516306b7a93160e41b815260040160405180910390fd5b61014a6001600160a01b0384168383610b2f565b6000368160018401816109d6888884610b81565b6002929092019190506109ea888884610baa565b94506001820161ffff82168301610a0381838b8d61104e565b979b909a50969850505061ffff160193505050565b60008060108314801590610a2d575060208314155b15610a4b57604051634796aee160e01b815260040160405180910390fd5b610a5784846000610bcf565b915060208314610a68576000610a74565b610a7484846010610bcf565b90509250929050565b60008060308314610aa1576040516361d0c2c760e11b815260040160405180910390fd5b610aad84846000610bcf565b9150610a7484846010610bf6565b6000808060128414801590610ad1575060228414155b15610aef57604051638b4aa70b60e01b815260040160405180910390fd5b610afb85856000610b81565b9250610b0985856002610bcf565b915060228414610b1a576000610b26565b610b2685856012610bcf565b90509250925092565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261014a908490610c11565b600060028201610b938184868861104e565b610b9c91611078565b60f01c9150505b9392505050565b6000838383818110610bbe57610bbe6110a8565b919091013560f81c95945050505050565b600060108201610be18184868861104e565b610bea916110be565b60801c95945050505050565b600060208201610c088184868861104e565b610829916110f5565b6000610c266001600160a01b03841683610c74565b90508051600014158015610c4b575080806020019051810190610c499190611113565b155b1561014a57604051635274afe760e01b81526001600160a01b038416600482015260240161019d565b6060610c8283836000610c8b565b90505b92915050565b606081471015610cb05760405163cd78605960e01b815230600482015260240161019d565b600080856001600160a01b03168486604051610ccc9190611135565b60006040518083038185875af1925050503d8060008114610d09576040519150601f19603f3d011682016040523d82523d6000602084013e610d0e565b606091505b5091509150610d1e868383610d28565b9695505050505050565b606082610d3d57610d3882610d84565b610ba3565b8151158015610d5457506001600160a01b0384163b155b15610d7d57604051639996b31560e01b81526001600160a01b038516600482015260240161019d565b5080610ba3565b805115610d945780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610dc457600080fd5b919050565b600080600060608486031215610dde57600080fd5b610de784610dad565b9250610df560208501610dad565b9150604084013590509250925092565b600060a08284031215610e1757600080fd5b50919050565b6000806000806101608587031215610e3457600080fd5b610e3e8686610e05565b9350610e4d8660a08701610e05565b925061014085013567ffffffffffffffff80821115610e6b57600080fd5b818701915087601f830112610e7f57600080fd5b813581811115610e8e57600080fd5b886020828501011115610ea057600080fd5b95989497505060200194505050565b600060208284031215610ec157600080fd5b610c8282610dad565b600060208284031215610edc57600080fd5b813567ffffffffffffffff81168114610ba357600080fd5b600060208284031215610f0657600080fd5b813563ffffffff81168114610ba357600080fd5b6001600160801b038116811461044a57600080fd5b600060208284031215610f4157600080fd5b8135610ba381610f1a565b60008060008060808587031215610f6257600080fd5b845193506020850151610f7481610f1a565b6040860151909350610f8581610f1a565b6060860151909250610f9681610f1a565b939692955090935050565b600060208284031215610fb357600080fd5b813561ffff81168114610ba357600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610c8557610c85610fc5565b6001600160801b0381811683821601908082111561100e5761100e610fc5565b5092915050565b8082028115828204841417610c8557610c85610fc5565b60008261104957634e487b7160e01b600052601260045260246000fd5b500490565b6000808585111561105e57600080fd5b8386111561106b57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156110a05780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b6fffffffffffffffffffffffffffffffff1981358181169160108510156110a05760109490940360031b84901b1690921692915050565b80356020831015610c8557600019602084900360031b1b1692915050565b60006020828403121561112557600080fd5b81518015158114610ba357600080fd5b6000825160005b81811015611156576020818601810151858301520161113c565b50600092019182525091905056fea26469706673582212203780ea40a0f93eab5083efacc1d316a7c83f03997bd6b3821d356fbf88b94a5164736f6c6343000816003360a06040523480156200001157600080fd5b50604051620038e7380380620038e78339810160408190526200003491620004de565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b03861617905582828686612ee060008660005b8551811015620000d657620000cc7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000b857620000b8620005b1565b60200260200101516200027d60201b60201c565b5060010162000074565b5060005b815181101562000128576200011e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000b857620000b8620005b1565b50600101620000da565b505050505050806001600160401b03166000036200015957604051635f86e17760e01b815260040160405180910390fd5b806001600160401b0316825110156200019f5781516040516378e2c15760e11b81526001600160401b039182166004820152908216602482015260440160405180910390fd5b6000805b835181101562000231576000848281518110620001c457620001c4620005b1565b60200260200101519050826001600160a01b0316816001600160a01b03161162000201576040516305fa937f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600460205260409020805460ff1916600190811790915590925001620001a3565b50509051600580546001600160401b0393841668010000000000000000026001600160801b0319909116939092169290921717905550505063ffffffff90921660805250620006049050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83148015620002d057506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b156200031d5760018054601590620002f890600160a81b90046001600160401b0316620005c7565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b62000329838362000335565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16620003da576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620003913390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200032f565b5060006200032f565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200041157600080fd5b919050565b600082601f8301126200042857600080fd5b815160206001600160401b0380831115620004475762000447620003e3565b8260051b604051601f19603f830116810181811084821117156200046f576200046f620003e3565b60405293845260208187018101949081019250878511156200049057600080fd5b6020870191505b84821015620004bb57620004ab82620003f9565b8352918301919083019062000497565b979650505050505050565b80516001600160401b03811681146200041157600080fd5b60008060008060008060c08789031215620004f857600080fd5b865163ffffffff811681146200050d57600080fd5b60208801519096506001600160401b03808211156200052b57600080fd5b620005398a838b0162000416565b96506200054960408a01620003f9565b955060608901519150808211156200056057600080fd5b6200056e8a838b0162000416565b94506200057e60808a01620004c6565b935060a08901519150808211156200059557600080fd5b50620005a489828a0162000416565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b03198101620005fa57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6080516132b96200062e6000396000818161074c015281816112280152611b1001526132b96000f3fe60806040526004361061022f5760003560e01c80638585c9451161012e578063c7a823e0116100ab578063d547741f1161006f578063d547741f146107aa578063dafe0ccc146107ca578063f010cb23146107ea578063f3b4ebd01461080a578063fd62e7501461082a57600080fd5b8063c7a823e0146106cc578063c7b2370b146106fa578063cd88b9031461071a578063cf34c7681461073a578063d2ae21041461078357600080fd5b8063aef18bf7116100f2578063aef18bf714610617578063b143044b14610647578063c358de0a14610667578063c416aa5114610687578063c5e193cd146106ac57600080fd5b80638585c9451461052a57806391d148541461054a57806395d376d71461056a5780639e9449651461057d578063a217fddf1461060257600080fd5b80632f2ff15d116101bc5780635553fb8e116101805780635553fb8e1461046a5780635c975abb1461048a578063724e78da146104a2578063736c0d5b146104c2578063741bef1a146104f257600080fd5b80632f2ff15d146103ca57806330bb3aac146103ea57806331cb61051461040a57806336568abe1461042a57806352d3b8711461044a57600080fd5b806316c38b3c1161020357806316c38b3c146102e05780631703a01814610300578063248a9ca31461033f57806326e67a371461037d5780632de11376146103aa57600080fd5b8062bf2e801461023457806301e336671461026e57806301ffc9a7146102905780631095b6d7146102c0575b600080fd5b34801561024057600080fd5b5060015461025690600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561027a57600080fd5b5061028e610289366004612695565b61084a565b005b34801561029c57600080fd5b506102b06102ab3660046126d6565b610873565b6040519015158152602001610265565b3480156102cc57600080fd5b5061028e6102db366004612695565b6108aa565b3480156102ec57600080fd5b5061028e6102fb36600461270e565b6109ac565b34801561030c57600080fd5b5060055461032790600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610265565b34801561034b57600080fd5b5061036f61035a36600461272b565b60009081526020819052604090206001015490565b604051908152602001610265565b34801561038957600080fd5b5061039d610398366004612758565b6109d1565b6040516102659190612773565b3480156103b657600080fd5b506102b06103c53660046127ba565b610a58565b3480156103d657600080fd5b5061028e6103e53660046127d7565b610add565b3480156103f657600080fd5b5061036f610405366004612866565b610bb2565b34801561041657600080fd5b5061028e6104253660046128dd565b610cca565b34801561043657600080fd5b5061028e6104453660046127d7565b610cf4565b34801561045657600080fd5b5061028e61046536600461290b565b610d0d565b34801561047657600080fd5b5061036f610485366004612991565b610e86565b34801561049657600080fd5b5060015460ff166102b0565b3480156104ae57600080fd5b5061028e6104bd3660046127ba565b610f9e565b3480156104ce57600080fd5b506102b06104dd3660046127ba565b60046020526000908152604090205460ff1681565b3480156104fe57600080fd5b50600254610512906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b34801561053657600080fd5b5061028e6105453660046129e7565b61100c565b34801561055657600080fd5b506102b06105653660046127d7565b611038565b61036f610578366004612a1a565b611061565b34801561058957600080fd5b506105d1610598366004612758565b6006602052600090815260409020546001600160401b03811690600160401b810461ffff1690600160501b90046001600160801b031683565b604080516001600160401b03909416845261ffff90921660208401526001600160801b031690820152606001610265565b34801561060e57600080fd5b5061036f600081565b34801561062357600080fd5b506102b061063236600461272b565b60076020526000908152604090205460ff1681565b34801561065357600080fd5b5061028e610662366004612ac6565b6111d7565b34801561067357600080fd5b5061028e610682366004612b07565b61148c565b34801561069357600080fd5b506001546105129061010090046001600160a01b031681565b3480156106b857600080fd5b5061036f6106c7366004612991565b6114f4565b3480156106d857600080fd5b506106ec6106e7366004612b22565b611661565b604051610265929190612b76565b34801561070657600080fd5b5061028e6107153660046127ba565b61183f565b34801561072657600080fd5b5061028e610735366004612baa565b6118ad565b34801561074657600080fd5b5061076e7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610265565b34801561078f57600080fd5b5060015461032790600160a81b90046001600160401b031681565b3480156107b657600080fd5b5061028e6107c53660046127d7565b6118ec565b3480156107d657600080fd5b5061028e6107e5366004612695565b6119a0565b3480156107f657600080fd5b5061036f610805366004612bef565b611a55565b34801561081657600080fd5b5061028e610825366004612c59565b611a91565b34801561083657600080fd5b50600554610327906001600160401b031681565b60008051602061324483398151915261086281611c3f565b61086d848484611c49565b50505050565b60006001600160e01b03198216637965db0b60e01b14806108a457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000805160206132448339815191526108c281611c3f565b6108da60008051602061322483398151915285611038565b6108f757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561094157600080fd5b505af1158015610955573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b60006109b781611c3f565b81156109c9576109c5611c71565b5050565b6109c5611cc5565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610a4c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610a1d5790505b50505050509050919050565b6000610a847f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611038565b15610a9157506000919050565b600154600160a81b90046001600160401b03161580610ac35750610ac360008051602061326483398151915283611038565b15610ad057506001919050565b506000919050565b919050565b81600080516020613264833981519152811480610b1957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610b31575060008051602061322483398151915281145b15610b5b57303314610b5657604051637d5d391d60e11b815260040160405180910390fd5b610ba8565b6000805160206132448339815191528103610b8757610b56600080516020613244833981519152611c3f565b604051634a7ee1b960e11b8152600481018290526024015b60405180910390fd5b61086d8383611cfe565b600083610bbe81610a58565b610bdb57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290526001600160401b03808c16858701528a84166060860152600554600160401b900416608085015260015461ffff600160e81b82041660a086015260009283526006909152908490209351637bfa20a960e01b8152929361010090910490911691637bfa20a991610c7d918591908a908a90600401612d1d565b602060405180830381865afa158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbe9190612d77565b98975050505050505050565b303314610cea57604051637d5d391d60e11b815260040160405180910390fd5b6109c58282611d82565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020613244833981519152610d2581611c3f565b60005b82811015610e475736848483818110610d4357610d43612d90565b90506080020190506040518060600160405280826020016020810190610d6991906129e7565b6001600160401b03168152602001610d876060840160408501612b07565b61ffff168152602001610da06080840160608501612dbd565b6001600160801b0316905260066000610dbc6020850185612758565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516001600160801b0316600160501b026fffffffffffffffffffffffffffffffff60501b1961ffff909516600160401b0269ffffffffffffffffffff199094166001600160401b0390931692909217929092179290921691909117905550600101610d28565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051610e79929190612dd8565b60405180910390a1505050565b600081610e9281610a58565b610eaf57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808a1660208085018290526001600160401b03808b16868801528985166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451637bfa20a960e01b8152939461010090920490921692637bfa20a992610f52928692600401612ebc565b602060405180830381865afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190612d77565b979650505050505050565b600080516020613244833981519152610fb681611c3f565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b30331461102c57604051637d5d391d60e11b815260040160405180910390fd5b61103581611edd565b50565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600060008051602061322483398151915261107b81611c3f565b61108b60a08601608087016127ba565b61109481610a58565b6110b157604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c081019091526002546001600160a01b031681526000906020808201906110df908a018a612758565b63ffffffff1681526020016110fa60808a0160608b016129e7565b6001600160401b0316815260200161111860a08a0160808b016127ba565b6001600160a01b039081168252600554600160401b90046001600160401b0316602080840191909152600154600160e81b810461ffff16604090940193909352929350610100909104169063df2b057e90839060069060009061117d908d018d612758565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b81526004016111b89493929190612d1d565b6020604051808303816000875af1158015610f6f573d6000803e3d6000fd5b6000805160206132448339815191526111ef81611c3f565b60005b8281101561086d573684848381811061120d5761120d612d90565b905060200281019061121f9190612f15565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112556020830183612758565b63ffffffff16146112665750611484565b428160600135116112775750611484565b60006112b06112896020840184612758565b61129960408501602086016127ba565b6112a66040860186612f35565b8660600135611a55565b905060006112c5826106e76080860186612f35565b50905080611308576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611484565b600061132861131a6040860186612f35565b61132391612f7b565b611fab565b905080156113a35760008381526007602052604090205460ff1615611389577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611378929190612ff0565b60405180910390a150505050611484565b6000838152600760205260409020805460ff191660011790555b6000806113b660408701602088016127ba565b6001600160a01b03166113cc6040880188612f35565b6040516113da92919061308b565b6000604051808303816000865af19150503d8060008114611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50915091508161147d578215611443576000858152600760205260409020805460ff191690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf878260405161147492919061309b565b60405180910390a15b5050505050505b6001016111f2565b6000805160206132448339815191526114a481611c3f565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611000565b600060008051602061322483398151915261150e81611c3f565b8261151881610a58565b61153557604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808b1660208085018290526001600160401b03808c16868801528a85166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451636f9582bf60e11b815293946101009092049092169263df2b057e926115d8928692600401612ebc565b6020604051808303816000875af11580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612d77565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef8460405161164e91815260200190565b60405180910390a1505050949350505050565b600554600090819061168490600160401b90046001600160401b031660416130ca565b83146116965750600090506001611837565b60006116ef866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b600554600160401b90046001600160401b031681101561182b57366000888861171f8560416130ca565b9061172b8660016130e1565b6117369060416130ca565b92611743939291906130f4565b9150915060008061178a8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fe492505050565b50909250905060008160038111156117a4576117a4612b60565b146117bd57600060019850985050505050505050611837565b856001600160a01b0316826001600160a01b0316116117ea57600060029850985050505050505050611837565b6001600160a01b03821660009081526004602052604090205460ff1661181e57600060039850985050505050505050611837565b50935050506001016116f5565b50600160009350935050505b935093915050565b60008051602061324483398151915261185781611c3f565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611000565b6000805160206132448339815191526118c581611c3f565b63ffffffff841660009081526003602052604090206118e59084846125c2565b5050505050565b8160008051602061326483398151915281148061192857507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611940575060008051602061322483398151915281145b1561196a5730331461196557604051637d5d391d60e11b815260040160405180910390fd5b611996565b6000805160206132448339815191528103610b8757611965600080516020613244833981519152611c3f565b61086d8383612031565b6000805160206132448339815191526119b881611c3f565b6119d060008051602061322483398151915285611038565b6119ed57604051635ee08b9760e01b815260040160405180910390fd5b6040516303d8c5ef60e11b81526001600160a01b038481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001611a7095949392919061311e565b60405160208183030381529060405280519060200120905095945050505050565b42816060013511611ab557604051630bbaf26360e01b815260040160405180910390fd5b30611ac660408301602084016127ba565b6001600160a01b031614611b0957611ae460408201602083016127ba565b604051631ce0bfcd60e01b81526001600160a01b039091166004820152602401610b9f565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611b3d6020830183612758565b63ffffffff1614611b7757611b556020820182612758565b60405163134bf0e160e11b815263ffffffff9091166004820152602401610b9f565b6000611b896112896020840184612758565b90506000611b9e826106e76080860186612f35565b50905080611bbf57604051630af656f760e11b815260040160405180910390fd5b60008281526007602052604090205460ff1615611bf257604051634eb522d360e11b815260048101839052602401610b9f565b60008281526007602052604090819020805460ff1916600117905561086d9060008051602061324483398151915290611c2d90860186612f35565b810190611c3a91906127ba565b611cfe565b61103581336120a9565b6001600160a01b038316611c6657611c6182826120e2565b505050565b611c6183838361218f565b611c796121ca565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b611ccd6121f0565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ca8565b600060008051602061326483398151915283148015611d245750611d228383611038565b155b15611d6e5760018054601590611d4990600160a81b90046001600160401b0316613164565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612213565b5060019392505050565b6001600160a01b03821660009081526004602052604090205481151560ff909116151503611dd6576040516302c6469560e51b81526001600160a01b03831660048201528115156024820152604401610b9f565b6001600160a01b0382166000908152600460205260408120805460ff191683151517905581611e1c57600554611e17906001906001600160401b031661318a565b611e33565b600554611e33906001600160401b031660016131b1565b6005549091506001600160401b03600160401b9091048116908216811115611e81576040516378e2c15760e11b81526001600160401b03808416600483015282166024820152604401610b9f565b6005805467ffffffffffffffff19166001600160401b038416179055604080516001600160a01b038616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce910161099e565b806001600160401b0316600003611f0757604051635f86e17760e01b815260040160405180910390fd5b6005546001600160401b03908116908216811015611f4b576040516378e2c15760e11b81526001600160401b03808316600483015283166024820152604401610b9f565b600580546fffffffffffffffff00000000000000001916600160401b6001600160401b038516908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611000565b60006001600160e01b03198216630111a9b760e11b148015906108a457506001600160e01b0319821663704316e560e01b141592915050565b6000806000835160410361201e5760208401516040850151606086015160001a612010888285856122a5565b95509550955050505061202a565b50508151600091506002905b9250925092565b60006000805160206132648339815191528314801561205557506120558383611038565b1561209f576001805460159061207a90600160a81b90046001600160401b03166131d1565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612374565b6120b38282611038565b6109c55760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610b9f565b6001600160a01b038216612109576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612156576040519150601f19603f3d011682016040523d82523d6000602084013e61215b565b606091505b5050905080611c6157604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610b9f565b6001600160a01b0382166121b6576040516306b7a93160e41b815260040160405180910390fd5b611c616001600160a01b03841683836123df565b60015460ff16156121ee5760405163d93c066560e01b815260040160405180910390fd5b565b60015460ff166121ee57604051638dfc202b60e01b815260040160405180910390fd5b600061221f8383611038565b61229d576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556122553390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016108a4565b5060006108a4565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156122e0575060009150600390508261236a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612334573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123605750600092506001915082905061236a565b9250600091508190505b9450945094915050565b60006123808383611038565b1561229d576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016108a4565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b179052611c619185919060009061243d9084168361248b565b9050805160001415801561246257508080602001905181019061246091906131f4565b155b15611c6157604051635274afe760e01b81526001600160a01b0384166004820152602401610b9f565b6060612499838360006124a0565b9392505050565b6060814710156124c55760405163cd78605960e01b8152306004820152602401610b9f565b600080856001600160a01b031684866040516124e19190613211565b60006040518083038185875af1925050503d806000811461251e576040519150601f19603f3d011682016040523d82523d6000602084013e612523565b606091505b509150915061253386838361253d565b9695505050505050565b6060826125525761254d82612599565b612499565b815115801561256957506001600160a01b0384163b155b1561259257604051639996b31560e01b81526001600160a01b0385166004820152602401610b9f565b5080612499565b8051156125a95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f0160209004810192821561265b5791602002820160005b8382111561262c57833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026125eb565b80156126595782816101000a81549060ff021916905560010160208160000104928301926001030261262c565b505b5061266792915061266b565b5090565b5b80821115612667576000815560010161266c565b6001600160a01b038116811461103557600080fd5b6000806000606084860312156126aa57600080fd5b83356126b581612680565b925060208401356126c581612680565b929592945050506040919091013590565b6000602082840312156126e857600080fd5b81356001600160e01b03198116811461249957600080fd5b801515811461103557600080fd5b60006020828403121561272057600080fd5b813561249981612700565b60006020828403121561273d57600080fd5b5035919050565b803563ffffffff81168114610ad857600080fd5b60006020828403121561276a57600080fd5b61249982612744565b6020808252825182820181905260009190848201906040850190845b818110156127ae57835160ff168352928401929184019160010161278f565b50909695505050505050565b6000602082840312156127cc57600080fd5b813561249981612680565b600080604083850312156127ea57600080fd5b8235915060208301356127fc81612680565b809150509250929050565b80356001600160401b0381168114610ad857600080fd5b60008083601f84011261283057600080fd5b5081356001600160401b0381111561284757600080fd5b60208301915083602082850101111561285f57600080fd5b9250929050565b60008060008060006080868803121561287e57600080fd5b61288786612744565b945061289560208701612807565b935060408601356128a581612680565b925060608601356001600160401b038111156128c057600080fd5b6128cc8882890161281e565b969995985093965092949392505050565b600080604083850312156128f057600080fd5b82356128fb81612680565b915060208301356127fc81612700565b6000806020838503121561291e57600080fd5b82356001600160401b038082111561293557600080fd5b818501915085601f83011261294957600080fd5b81358181111561295857600080fd5b8660208260071b850101111561296d57600080fd5b60209290920196919550909350505050565b803561ffff81168114610ad857600080fd5b600080600080608085870312156129a757600080fd5b6129b08561297f565b93506129be6020860161297f565b92506129cc60408601612807565b915060608501356129dc81612680565b939692955090935050565b6000602082840312156129f957600080fd5b61249982612807565b600060a08284031215612a1457600080fd5b50919050565b600080600060408486031215612a2f57600080fd5b83356001600160401b0380821115612a4657600080fd5b612a5287838801612a02565b94506020860135915080821115612a6857600080fd5b50612a758682870161281e565b9497909650939450505050565b60008083601f840112612a9457600080fd5b5081356001600160401b03811115612aab57600080fd5b6020830191508360208260051b850101111561285f57600080fd5b60008060208385031215612ad957600080fd5b82356001600160401b03811115612aef57600080fd5b612afb85828601612a82565b90969095509350505050565b600060208284031215612b1957600080fd5b6124998261297f565b600080600060408486031215612b3757600080fd5b8335925060208401356001600160401b03811115612b5457600080fd5b612a758682870161281e565b634e487b7160e01b600052602160045260246000fd5b82151581526040810160048310612b9d57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b600080600060408486031215612bbf57600080fd5b612bc884612744565b925060208401356001600160401b03811115612be357600080fd5b612a7586828701612a82565b600080600080600060808688031215612c0757600080fd5b612c1086612744565b94506020860135612c2081612680565b935060408601356001600160401b03811115612c3b57600080fd5b612c478882890161281e565b96999598509660600135949350505050565b600060208284031215612c6b57600080fd5b81356001600160401b03811115612c8157600080fd5b612c8d84828501612a02565b949350505050565b60018060a01b0380825116835263ffffffff602083015116602084015260408201516001600160401b03808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000610140612d2c8388612c95565b612d6360c0840187546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b80610120840152610f938184018587612cf4565b600060208284031215612d8957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b80356001600160801b0381168114610ad857600080fd5b600060208284031215612dcf57600080fd5b61249982612da6565b6020808252818101839052600090604080840186845b87811015612e5f5763ffffffff612e0483612744565b1683526001600160401b03612e1a868401612807565b168584015261ffff612e2d85840161297f565b168484015260606001600160801b03612e47828501612da6565b16908401526080928301929190910190600101612dee565b5090979650505050505050565b60005b83811015612e87578181015183820152602001612e6f565b50506000910152565b60008151808452612ea8816020860160208601612e6c565b601f01601f19169290920160200192915050565b6000610140612ecb8387612c95565b612f0260c0840186546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b8061012084015261253381840185612e90565b60008235609e19833603018112612f2b57600080fd5b9190910192915050565b6000808335601e19843603018112612f4c57600080fd5b8301803591506001600160401b03821115612f6657600080fd5b60200191503681900382131561285f57600080fd5b6001600160e01b03198135818116916004851015612fa35780818660040360031b1b83161692505b505092915050565b6000808335601e19843603018112612fc257600080fd5b83016020810192503590506001600160401b03811115612fe157600080fd5b80360382131561285f57600080fd5b6040815263ffffffff61300284612744565b1660408201526000602084013561301881612680565b6001600160a01b031660608301526130336040850185612fab565b60a0608085015261304860e085018284612cf4565b915050606085013560a08401526130626080860186612fab565b848303603f190160c0860152613079838284612cf4565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000612c8d6040830184612e90565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a4576108a46130b4565b808201808211156108a4576108a46130b4565b6000808585111561310457600080fd5b8386111561311157600080fd5b5050820193919092039150565b63ffffffff60e01b8660e01b1681526bffffffffffffffffffffffff198560601b1660048201528360188201528183603883013760009101603801908152949350505050565b60006001600160401b03808316818103613180576131806130b4565b6001019392505050565b6001600160401b038281168282160390808211156131aa576131aa6130b4565b5092915050565b6001600160401b038181168382160190808211156131aa576131aa6130b4565b60006001600160401b038216806131ea576131ea6130b4565b6000190192915050565b60006020828403121561320657600080fd5b815161249981612700565b60008251612f2b818460208701612e6c56fe724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19dea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177574845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bcaa26469706673582212203b61bbdddbd40de2a99f40cf79bc54fd320e09acc6ea01dd4f473c7f674ee39f64736f6c6343000816003360a060405234801561001057600080fd5b50604051610e2e380380610e2e83398101604081905261002f916100b7565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610067565b506080526100d0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100c957600080fd5b5051919050565b608051610d436100eb60003960006105fa0152610d436000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063715018a6146100875780637bfa20a91461009c5780638da5cb5b146100cf578063df2b057e146100f7578063f2fde38b1461010a57600080fd5b3661006057005b600080fd5b34801561007157600080fd5b506100856100803660046109c7565b61012a565b005b34801561009357600080fd5b50610085610142565b3480156100a857600080fd5b506100bc6100b7366004610a03565b610156565b6040519081526020015b60405180910390f35b3480156100db57600080fd5b506000546040516001600160a01b0390911681526020016100c6565b6100bc610105366004610a03565b6102e6565b34801561011657600080fd5b50610085610125366004610aa5565b6103cf565b61013261040d565b61013d83838361043a565b505050565b61014a61040d565b610154600061045d565b565b60006101656020850185610ac0565b67ffffffffffffffff166000036101ad576101866040860160208701610aea565b60405163680489c560e11b815263ffffffff90911660048201526024015b60405180910390fd5b6101b783836104ad565b5060006101dc6101cd60a0880160808901610ac0565b67ffffffffffffffff1661051f565b90506000806101ee6020890189610aa5565b6001600160a01b03166388a4124c61020c60408b0160208c01610aea565b8561021a60208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff166044820152606401608060405180830381865afa158015610273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102979190610b25565b9350505091506102da828860200160208101906102b49190610b7a565b6102c460c08c0160a08d01610b7a565b6102d460608c0160408d01610b9e565b8561058b565b98975050505050505050565b60006102f56020850185610ac0565b67ffffffffffffffff16600003610316576101866040860160208701610aea565b61032083836104ad565b5060006103366101cd60a0880160808901610ac0565b90506000806103486020890189610aa5565b6001600160a01b031663c1723a1d61036660408b0160208c01610aea565b8561037460208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff1660448201526064016080604051808303816000875af1158015610273573d6000803e3d6000fd5b6103d761040d565b6001600160a01b03811661040157604051631e4fbdf760e01b8152600060048201526024016101a4565b61040a8161045d565b50565b6000546001600160a01b031633146101545760405163118cdaa760e01b81523360048201526024016101a4565b6001600160a01b0383166104525761013d8282610661565b61013d83838361070e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082156104f0576000806104c4868685610749565b604051637085244b60e01b815260ff8516600482015290965092945085935050602490910190506101a4565b8083146105135760405163013adb8360e21b8152600481018290526024016101a4565b60009150505b92915050565b60008061052d604184610bd1565b905061053a602082610bfe565b156105625761054a602082610bfe565b6105549082610c12565b61055f906020610c25565b90505b8061056f60e06044610c25565b6105799190610c25565b610584906040610c25565b9392505050565b60008061ffff86161561059e57856105a0565b845b905060006127106105b561ffff84168a610bd1565b6105bf9190610c38565b90506001600160801b03841615806105de57506001600160801b038516155b156105ec5791506106589050565b6000846001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000876001600160801b031661062d9190610bd1565b6106379190610c38565b610641908a610c25565b90508181116106505781610652565b805b93505050505b95945050505050565b6001600160a01b038216610688576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b505090508061013d57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016101a4565b6001600160a01b038216610735576040516306b7a93160e41b815260040160405180910390fd5b61013d6001600160a01b03841683836107a3565b60003681600184018161075d8888846107f5565b6002830192909150610775908990899060030161081c565b94506002820161ffff8216830161078e81838b8d610c4c565b979b909a50969850505061ffff160193505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261013d908490610841565b60006002820161080781848688610c4c565b61081091610c76565b60f01c95945050505050565b600083838381811061083057610830610ca6565b919091013560f81c95945050505050565b60006108566001600160a01b038416836108a4565b9050805160001415801561087b5750808060200190518101906108799190610cbc565b155b1561013d57604051635274afe760e01b81526001600160a01b03841660048201526024016101a4565b60606105848383600084600080856001600160a01b031684866040516108ca9190610cde565b60006040518083038185875af1925050503d8060008114610907576040519150601f19603f3d011682016040523d82523d6000602084013e61090c565b606091505b509150915061091c868383610926565b9695505050505050565b60608261093b5761093682610982565b610584565b815115801561095257506001600160a01b0384163b155b1561097b57604051639996b31560e01b81526001600160a01b03851660048201526024016101a4565b5080610584565b8051156109925780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109c257600080fd5b919050565b6000806000606084860312156109dc57600080fd5b6109e5846109ab565b92506109f3602085016109ab565b9150604084013590509250925092565b600080600080848603610140811215610a1b57600080fd5b60c0811215610a2957600080fd5b859450606060bf1982011215610a3e57600080fd5b5060c08501925061012085013567ffffffffffffffff80821115610a6157600080fd5b818701915087601f830112610a7557600080fd5b813581811115610a8457600080fd5b886020828501011115610a9657600080fd5b95989497505060200194505050565b600060208284031215610ab757600080fd5b610584826109ab565b600060208284031215610ad257600080fd5b813567ffffffffffffffff8116811461058457600080fd5b600060208284031215610afc57600080fd5b813563ffffffff8116811461058457600080fd5b6001600160801b038116811461040a57600080fd5b60008060008060808587031215610b3b57600080fd5b845193506020850151610b4d81610b10565b6040860151909350610b5e81610b10565b6060860151909250610b6f81610b10565b939692955090935050565b600060208284031215610b8c57600080fd5b813561ffff8116811461058457600080fd5b600060208284031215610bb057600080fd5b813561058481610b10565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761051957610519610bbb565b634e487b7160e01b600052601260045260246000fd5b600082610c0d57610c0d610be8565b500690565b8181038181111561051957610519610bbb565b8082018082111561051957610519610bbb565b600082610c4757610c47610be8565b500490565b60008085851115610c5c57600080fd5b83861115610c6957600080fd5b5050820193919092039150565b6001600160f01b03198135818116916002851015610c9e5780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610cce57600080fd5b8151801515811461058457600080fd5b6000825160005b81811015610cff5760208186018101518583015201610ce5565b50600092019182525091905056fea2646970667358221220a3bc24e7c5cbedac7e00899eb168625849d3210800cd0b59d0aa08cd2b3af71664736f6c6343000816003360e06040523480156200001157600080fd5b5060405162001a4438038062001a44833981016040819052620000349162000179565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000668162000110565b50600180546001600160a01b0319166001600160a01b038481169190911790915581166080819052600060a0526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa158015620000cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f59190620001b8565b63ffffffff1660c052505060636003556064600455620001e7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200017657600080fd5b50565b600080604083850312156200018d57600080fd5b82516200019a8162000160565b6020840151909250620001ad8162000160565b809150509250929050565b600060208284031215620001cb57600080fd5b815163ffffffff81168114620001e057600080fd5b9392505050565b60805160a05160c05161181162000233600039600061038c015260006102fb0152600081816102c7015281816105d6015281816106df015281816108e50152610aa101526118116000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063996f79c01161006f578063996f79c014610447578063aec336e61461045d578063d80e9bd91461047d578063dabca063146104aa578063f2fde38b146104ca578063fd9be522146104ea57610156565b8063715018a614610365578063726075371461037a57806372d71322146103c35780638da5cb5b146103e55780638f58aa7a14610403578063909532381461042357610156565b80634389e58f116101085780634389e58f1461025a57806354fd4d50146102895780635e280f11146102b557806361d027b3146102e95780636251b6371461031d5780636750cd4c1461034457610156565b806301ffc9a71461016f5780630e97289b146101a457806312cc947f146101dc5780631881d94d146101fe5780631c7c294e1461021a578063334993ff1461023a57610156565b3661015657005b604051632657b6c360e01b815260040160405180910390fd5b34801561017b57600080fd5b5061018f61018a366004610fd6565b61050a565b60405190151581526020015b60405180910390f35b3480156101b057600080fd5b506001546101c4906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b3480156101e857600080fd5b506101fc6101f7366004611041565b610541565b005b34801561020a57600080fd5b50600260405161019b9190611082565b34801561022657600080fd5b506002546101c4906001600160a01b031681565b34801561024657600080fd5b506101fc6102553660046110aa565b6106b3565b34801561026657600080fd5b5061027a6102753660046111bc565b6106c6565b60405161019b93929190611283565b34801561029557600080fd5b50604080516000808252602082015260029181019190915260600161019b565b3480156102c157600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f557600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b34801561032957600080fd5b50610332600181565b60405160ff909116815260200161019b565b34801561035057600080fd5b5061018f61035f3660046112d2565b50600190565b34801561037157600080fd5b506101fc610810565b34801561038657600080fd5b506103ae7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161019b565b3480156103cf57600080fd5b506103d8610824565b60405161019b91906112ed565b3480156103f157600080fd5b506000546001600160a01b03166101c4565b34801561040f57600080fd5b506101fc61041e366004611320565b6108b2565b34801561042f57600080fd5b5061043960035481565b60405190815260200161019b565b34801561045357600080fd5b5061043960045481565b34801561046957600080fd5b506101fc61047836600461134c565b6109a7565b34801561048957600080fd5b5061049d610498366004611369565b6109d1565b60405161019b91906113e4565b3480156104b657600080fd5b506101fc6104c53660046113fb565b610a13565b3480156104d657600080fd5b506101fc6104e536600461134c565b610a2b565b3480156104f657600080fd5b506101fc610505366004611320565b610a6e565b60006001600160e01b031982166325fc096160e21b148061053b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6002546001600160a01b03161580159061056657506002546001600160a01b03163314155b1561058457604051631c2c85bb60e21b815260040160405180910390fd5b6000604051806060016040528061059b8585610b2e565b63ffffffff1681526020016105b08585610b51565b81526020016105bf8585610b71565b6001600160401b0316905290506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106068686610b94565b6106108787610ba6565b60405161061e929190611437565b6040805191829003822060e086901b6001600160e01b0319168352845163ffffffff166004840152602085015160248401529301516001600160401b031660448201526001600160a01b039091166064820152608481019190915260a401600060405180830381600087803b15801561069657600080fd5b505af11580156106aa573d6000803e3d6000fd5b50505050505050565b6106bb610bc2565b600491909155600355565b60408051808201909152600080825260208201526060807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461072657604051630fd72cd960e31b815260040160405180910390fd5b6107376107328761145e565b610bef565b9150845160001461074857846107d4565b60058054610755906114fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610781906114fb565b80156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b50505050505b90506107e08282610c47565b60405180604001604052806004548152602001856107ff576000610803565b6003545b9052969195509350915050565b610818610bc2565b6108226000610caf565b565b60058054610831906114fb565b80601f016020809104026020016040519081016040528092919081815260200182805461085d906114fb565b80156108aa5780601f1061087f576101008083540402835291602001916108aa565b820191906000526020600020905b81548152906001019060200180831161088d57829003601f168201915b505050505081565b6108ba610bc2565b6001600160a01b0382166108e157604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061152f565b90506001600160a01b03811661098e576040516354c1781b60e01b815260040160405180910390fd5b6109a26001600160a01b0382168484610cff565b505050565b6109af610bc2565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600454815260200183610a04576000610a08565b6003545b905295945050505050565b610a1b610bc2565b6005610a278282611594565b5050565b610a33610bc2565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610a6b81610caf565b50565b610a76610bc2565b6001600160a01b038216610a9d57604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b21919061152f565b90506109a2818484610d51565b6000610b3e600d60098486611653565b610b479161167d565b60e01c9392505050565b6000610b61602d600d8486611653565b610b6a916116ad565b9392505050565b6000610b81600960018486611653565b610b8a916116cb565b60c01c9392505050565b6000610b6a610ba38484610d74565b90565b366000610bb68360518187611653565b915091505b9250929050565b6000546001600160a01b031633146108225760405163118cdaa760e01b8152336004820152602401610a59565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610c3198600198919791966001600160a01b031695016116f9565b6040516020818303038152906040529050919050565b600154604051631f5dad8b60e31b81526001600160a01b039091169063faed6c5890610c799085908590600401611774565b600060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526109a2908490610d84565b6001600160a01b038316610d69576109a28282610de7565b6109a2838383610e94565b6000610b61605160318486611653565b6000610d996001600160a01b03841683610ecf565b90508051600014158015610dbe575080806020019051810190610dbc91906117a2565b155b156109a257604051635274afe760e01b81526001600160a01b0384166004820152602401610a59565b6001600160a01b038216610e0e576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b50509050806109a257604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610a59565b6001600160a01b038216610ebb576040516306b7a93160e41b815260040160405180910390fd5b6109a26001600160a01b0384168383610cff565b6060610b6a8383600084600080856001600160a01b03168486604051610ef591906117bf565b60006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b5091509150610f47868383610f51565b9695505050505050565b606082610f6657610f6182610fad565b610b6a565b8151158015610f7d57506001600160a01b0384163b155b15610fa657604051639996b31560e01b81526001600160a01b0385166004820152602401610a59565b5080610b6a565b805115610fbd5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610fe857600080fd5b81356001600160e01b031981168114610b6a57600080fd5b60008083601f84011261101257600080fd5b5081356001600160401b0381111561102957600080fd5b602083019150836020828501011115610bbb57600080fd5b6000806020838503121561105457600080fd5b82356001600160401b0381111561106a57600080fd5b61107685828601611000565b90969095509350505050565b60208101600383106110a457634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156110bd57600080fd5b50508035926020909101359150565b600060e082840312156110de57600080fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561111c5761111c6110e4565b60405290565b600082601f83011261113357600080fd5b81356001600160401b038082111561114d5761114d6110e4565b604051601f8301601f19908116603f01168101908282118183101715611175576111756110e4565b8160405283815286602085880101111561118e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610a6b57600080fd5b6000806000606084860312156111d157600080fd5b83356001600160401b03808211156111e857600080fd5b6111f4878388016110cc565b9450602086013591508082111561120a57600080fd5b5061121786828701611122565b9250506040840135611228816111ae565b809150509250925092565b60005b8381101561124e578181015183820152602001611236565b50506000910152565b6000815180845261126f816020860160208601611233565b601f01601f19169290920160200192915050565b83518152602080850151908201526080604082015260006112a76080830185611257565b8281036060840152610f478185611257565b803563ffffffff811681146112cd57600080fd5b919050565b6000602082840312156112e457600080fd5b610b6a826112b9565b602081526000610b6a6020830184611257565b6001600160a01b0381168114610a6b57600080fd5b80356112cd81611300565b6000806040838503121561133357600080fd5b823561133e81611300565b946020939093013593505050565b60006020828403121561135e57600080fd5b8135610b6a81611300565b6000806000806060858703121561137f57600080fd5b84356001600160401b038082111561139657600080fd5b6113a2888389016110cc565b955060208701359150808211156113b857600080fd5b506113c587828801611000565b90945092505060408501356113d9816111ae565b939692955090935050565b81518152602080830151908201526040810161053b565b60006020828403121561140d57600080fd5b81356001600160401b0381111561142357600080fd5b61142f84828501611122565b949350505050565b8183823760009101908152919050565b80356001600160401b03811681146112cd57600080fd5b600060e0823603121561147057600080fd5b6114786110fa565b61148183611447565b815261148f602084016112b9565b60208201526114a060408401611315565b60408201526114b1606084016112b9565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b038111156114e357600080fd5b6114ef36828601611122565b60c08301525092915050565b600181811c9082168061150f57607f821691505b6020821081036110de57634e487b7160e01b600052602260045260246000fd5b60006020828403121561154157600080fd5b8151610b6a81611300565b601f8211156109a2576000816000526020600020601f850160051c810160208610156115755750805b601f850160051c820191505b81811015610ca757828155600101611581565b81516001600160401b038111156115ad576115ad6110e4565b6115c1816115bb84546114fb565b8461154c565b602080601f8311600181146115f657600084156115de5750858301515b600019600386901b1c1916600185901b178555610ca7565b600085815260208120601f198616915b8281101561162557888601518255948401946001909101908401611606565b50858210156116435787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808585111561166357600080fd5b8386111561167057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116a55780818660040360031b1b83161692505b505092915050565b8035602083101561053b57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156116a55760089490940360031b84901b1690921692915050565b60ff60f81b8960f81b1681526001600160401b0360c01b8860c01b166001820152600063ffffffff60e01b808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611760816071850160208701611233565b919091016071019998505050505050505050565b6040815260006117876040830185611257565b82810360208401526117998185611257565b95945050505050565b6000602082840312156117b457600080fd5b8151610b6a816111ae565b600082516117d1818460208701611233565b919091019291505056fea2646970667358221220990cfb4d672f3a4b176b2a0dac3fbeff814b316fc90a05799662ae7184d6045a64736f6c63430008160033a264697066735822122055e8f2d77c3fc54848797dc45f6d06d7894d1b9da4e99777331c18b14b49f96364736f6c63430008160033","sourceMap":"670:3188:138:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14631:163:71;;;;;;;;;;-1:-1:-1;14631:163:71;;;;;:::i;:::-;;:::i;:::-;;1000:542:138;;;;;;;;;;;;;:::i;18330:2608:71:-;;;;;;;;;;-1:-1:-1;18330:2608:71;;;;;:::i;:::-;;:::i;3660:7029::-;;;;;;;;;;-1:-1:-1;3660:7029:71;;;;;:::i;:::-;;:::i;2452:134:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:43:71;;;;;;;;;;-1:-1:-1;2909:43:71;;;;-1:-1:-1;;;;;2909:43:71;;;;;;-1:-1:-1;;;;;2867:47:145;;;2849:66;;2837:2;2822:18;2909:43:71;2703:218:145;11027:490:71;;;;;;;;;;-1:-1:-1;11027:490:71;;;;;:::i;:::-;;:::i;3360:151:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17855:469:71:-;;;;;;:::i;:::-;;:::i;3221:133:89:-;;;;;;;;;;;;;:::i;2922:141::-;;;;;;;;;;;;;:::i;2553:261:138:-;;;;;;;;;;;;;:::i;3349:204:70:-;;;;;;;;;;-1:-1:-1;3349:204:70;;;;;:::i;:::-;;:::i;:::-;;;;8413:6:145;8401:19;;;8383:38;;-1:-1:-1;;;;;8510:15:145;;;8505:2;8490:18;;8483:43;8562:15;;8542:18;;;8535:43;8371:2;8356:18;3349:204:70;8183:401:145;14989:1687:71;;;;;;;;;;-1:-1:-1;14989:1687:71;;;;;:::i;:::-;;:::i;21259:228::-;;;;;;;;;;-1:-1:-1;21259:228:71;;;;;:::i;:::-;;:::i;:::-;;;9722:14:145;;9715:22;9697:41;;9685:2;9670:18;21259:228:71;9557:187:145;2738:178:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2722:249:70:-;;;;;;;;;;-1:-1:-1;2722:249:70;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;11786:514:71:-;;;;;;;;;;-1:-1:-1;11786:514:71;;;;;:::i;:::-;;:::i;21493:338::-;;;;;;;;;;-1:-1:-1;21493:338:71;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1025:446:137:-;;;;;;;;;;-1:-1:-1;1025:446:137;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2592:140:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3069:146::-;;;;;;;;;;;;;:::i;20944:187:71:-;;;;;;;;;;-1:-1:-1;20944:187:71;;;;;:::i;:::-;;:::i;17277:376::-;;;;;;:::i;:::-;;:::i;21137:116::-;;;;;;;;;;-1:-1:-1;21137:116:71;;;;;:::i;:::-;;:::i;2845:57::-;;;;;;;;;;;;2896:6;2845:57;;;;;17626:25:145;;;17614:2;17599:18;2845:57:71;17480:177:145;2157:141:89;;;;;;;;;;;;;:::i;14307:136:71:-;;;;;;;;;;-1:-1:-1;14307:136:71;;;;;:::i;:::-;;:::i;3159:184:70:-;;;;;;;;;;-1:-1:-1;3159:184:70;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;18172:47:145;;;18154:66;;18251:2;18236:18;;18229:34;;;;18127:18;3159:184:70;17980:289:145;1819:584:83;;;;;;;;;;;;;:::i;2783:56:71:-;;;;;;;;;;;;2826:13;2783:56;;3331:100;;;;;;;;;;-1:-1:-1;3331:100:71;;;;;:::i;:::-;3396:16;:28;;-1:-1:-1;;;;;;3396:28:71;-1:-1:-1;;;;;3396:28:71;;;;;;;;;;3331:100;2304:142:89;;;;;;;;;;;;;:::i;16682:589:71:-;;;;;;:::i;:::-;;:::i;2977:176:70:-;;;;;;;;;;-1:-1:-1;2977:176:70;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;19555:15:145;;;19537:34;;19607:15;;;;19602:2;19587:18;;19580:43;19457:18;2977:176:70;19310:319:145;1572:26:83;;;;;;;;;;-1:-1:-1;1572:26:83;;;;;;;;13482:464:71;;;;;;;;;;-1:-1:-1;13482:464:71;;;;;:::i;:::-;;:::i;14631:163::-;14708:79;14722:7;-1:-1:-1;;;;;14739:29:71;;14731:38;;14708:13;:79::i;:::-;14631:163;;:::o;1000:542:138:-;1043:13;:11;:13::i;:::-;1091:5;;;;;;;;;;;-1:-1:-1;;;1091:5:138;;;;;;;;329:1:137;-1:-1:-1;1098:16:138;;;;;1074:56;;1091:5;;-1:-1:-1;;;;;1098:16:138;;1124:4;;1074:56;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1066:5:138;:64;;-1:-1:-1;;;;;;1066:64:138;-1:-1:-1;;;;;1066:64:138;;;;;;1165:5;;;;;;;;;;;-1:-1:-1;;;1165:5:138;;;;;;;;369:1:137;-1:-1:-1;1172:16:138;;;;;1148:56;;1165:5;;1172:16;;;;;1198:4;;1148:56;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:5:138;:64;;-1:-1:-1;;;;;;1140:64:138;-1:-1:-1;;;;;1140:64:138;;;;;;;;;;1214:7;:5;:7::i;:::-;1279:28;;;1305:1;1279:28;;;;;;;;;1232:44;;1279:28;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;1279:28:138;;;;;;;;;;;;-1:-1:-1;;1338:146:138;;;;;;;;369:1:137;1338:146:138;;1390:1;1338:146;;;;1232:75;;-1:-1:-1;1338:146:138;;1405:69;1460:10;-1:-1:-1;1405:27:138;1379:24:42;;;-1:-1:-1;;;1379:24:42;;;55678:51:145;1379:24:42;;;;;;;;;55745:11:145;;;;1379:24:42;;;;1303:107;1405:27:138;:54;:69;:54;:69::i;:::-;1338:146;;;1317:15;1333:1;1317:18;;;;;;;;:::i;:::-;;;;;;;;;;:167;1494:5;;:41;;-1:-1:-1;;;1494:41:138;;-1:-1:-1;;;;;1494:5:138;;;;:24;;:41;;1519:15;;1494:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1033:509;1000:542::o;18330:2608:71:-;18402:13;18418:21;:12;;:19;:21::i;:::-;18482:17;;;18449:19;18482:17;;;:9;:17;;;;;;18402:37;;-1:-1:-1;;;;;;18482:17:71;;;;;18535:26;18562;:12;;:24;:26::i;:::-;18590:21;:12;;:19;:21::i;:::-;18535:77;;-1:-1:-1;;;;;;18535:77:71;;;;;;;-1:-1:-1;;;;;22270:32:145;;;18535:77:71;;;22252:51:145;18535:77:71;22339:23:145;22319:18;;;22312:51;22225:18;;18535:77:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18510:102;;;18622:20;18659:10;18622:48;;18682:12;18714:10;-1:-1:-1;;;;;18702:31:71;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18681:54;;;;18749:5;-1:-1:-1;;;;;18749:10:71;18758:1;18749:10;18745:2187;;18813:19;18835:6;-1:-1:-1;;;;;18835:16:71;;18852:21;:12;;:19;:21::i;:::-;18875:26;:12;;:24;:26::i;:::-;18835:70;;-1:-1:-1;;;;;;18835:70:71;;;;;;;;23916:15:145;;;;18835:70:71;;;23898:34:145;-1:-1:-1;;;;;23968:32:145;23948:18;;;23941:60;18903:1:71;24017:18:145;;;24010:43;23842:18;;18835:70:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18835:70:71;;;;;;;;;;;;:::i;:::-;18813:92;;18938:7;18963:6;18952:31;;;;;;;;;;;;:::i;:::-;:44;;;18997:1;18952:47;;;;;;;;:::i;:::-;;;;;;;18938:62;;19015:25;19043:21;:12;;:19;:21::i;:::-;19015:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19015:49:71;;-1:-1:-1;19110:22:71;;-1:-1:-1;19110:12:71;;-1:-1:-1;19110:12:71;;-1:-1:-1;19110:20:71;:22::i;:::-;19100:33;;;;;;;:::i;:::-;;;;;;;;19078:55;;19168:23;19205:27;19275:29;;;19322:12;19352:11;19381:3;19235:163;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;19235:163:71;;;;;;;;;;;;;;-1:-1:-1;;;;;19235:163:71;-1:-1:-1;;;;;;19235:163:71;;;;;;;;;;;-1:-1:-1;;;;;;;19445:16:71;;;19462:6;19478;19235:163;19503:22;:15;19521:4;19503:22;:::i;:::-;19445:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19585:58;;28548:66:145;19585:58:71;;;28536:79:145;28631:12;;;28624:28;;;19430:96:71;;-1:-1:-1;19544:28:71;;28668:12:145;;19585:58:71;;;;;;-1:-1:-1;;19585:58:71;;;;;;;19575:69;;19585:58;19575:69;;;;-1:-1:-1;;;19696:32:71;;19704:1;19696:32;;;28873:25:145;28914:18;;;28907:34;;;19575:69:71;-1:-1:-1;19663:7:71;;;;;;19696;;;;28846:18:145;;19696:32:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19781:25;;;;;;29507:19:145;;;;29542:12;;;29535:28;;;;29619:3;29597:16;;;;-1:-1:-1;;;;;;29593:36:145;29579:12;;;29572:58;19781:25:71;;;;;;;;;29646:12:145;;;;19781:25:71;;;;-1:-1:-1;;;;19884:1:71;;-1:-1:-1;19865:21:71;;-1:-1:-1;;;19865:21:71;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19865:21:71;;;;;;;;;;;;;;;;19834:52;;19912:89;;;;;;;;19925:6;19912:89;;;;;;19941:6;-1:-1:-1;;;;;19912:89:71;;;;;19950:14;19912:89;;;;19966:15;19984:4;19966:22;;;;:::i;:::-;19912:89;;;;19990:10;19912:89;;;19900:6;19907:1;19900:9;;;;;;;;:::i;:::-;;;;;;;;;;:101;20015:19;;-1:-1:-1;;;20015:19:71;;-1:-1:-1;;;;;20015:11:71;;;;;:19;;20027:6;;20015:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20084:21;20148:41;;;20207:12;20237:11;20108:154;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;20108:154:71;;;;;;;;;;;;;;-1:-1:-1;;;;;20108:154:71;-1:-1:-1;;;;;;20108:154:71;;;;;;;;;;;-1:-1:-1;;;;;;;20309:16:71;;;20326:6;20342;20108:154;20361:22;:15;20379:4;20361:22;:::i;:::-;20309:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20443:58;;28548:66:145;20443:58:71;;;28536:79:145;28631:12;;;28624:28;;;20294:90:71;;-1:-1:-1;20402:28:71;;28668:12:145;;20443:58:71;;;;;;-1:-1:-1;;20443:58:71;;;;;;;20433:69;;20443:58;20433:69;;;;-1:-1:-1;;;20554:32:71;;20562:1;20554:32;;;28873:25:145;28914:18;;;28907:34;;;20433:69:71;-1:-1:-1;20521:7:71;;;;;;20554;;;;28846:18:145;;20554:32:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20639:25;;;;;;29507:19:145;;;29542:12;;;29535:28;;;-1:-1:-1;;;;;;29619:3:145;29597:16;;;29593:36;29579:12;;;29572:58;20520:66:71;;-1:-1:-1;20520:66:71;;-1:-1:-1;20520:66:71;-1:-1:-1;29646:12:145;;20639:25:71;;;;;;;;;;;;20626:38;;20276:403;;;;;20704:83;;;;;;;;20717:6;20704:83;;;;;;20733:6;-1:-1:-1;;;;;20704:83:71;;;;;20742:8;20704:83;;;;20752:15;20770:4;20752:22;;;;:::i;:::-;20704:83;;;;20776:10;20704:83;;;20692:6;20699:1;20692:9;;;;;;;;:::i;:::-;;;;;;;;;;:95;20801:19;;-1:-1:-1;;;20801:19:71;;-1:-1:-1;;;;;20801:11:71;;;;;:19;;20813:6;;20801:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18761:2070;;;;;;;;18745:2187;;;20851:70;;-1:-1:-1;;;20851:70:71;;-1:-1:-1;;;;;20851:56:71;;;;;:70;;20908:12;;;;20851:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18745:2187;18392:2546;;;;;18330:2608;;:::o;3660:7029::-;3747:32;3799:12;3782:30;;-1:-1:-1;;;;;3782:30:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3782:30:71;;3747:65;;3822:23;3861:12;3848:26;;-1:-1:-1;;;;;3848:26:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3848:26:71;;3822:52;;3927:7;3922:227;3944:12;3940:16;;:1;:16;;;3922:227;;;3977:10;3990:5;:1;3994;3990:5;:::i;:::-;3977:18;;;;4022:3;4009:7;4017:1;4009:10;;;;;;;;;;:::i;:::-;;;;;;:16;;;;;;;;;;;4072:3;4085:4;4057:34;;;;;:::i;:::-;32025:10:145;32013:23;;;31995:42;;-1:-1:-1;;;;;32073:32:145;32068:2;32053:18;;32046:60;31983:2;31968:18;4057:34:71;;;;;;;;;;;;;;;;;;;;;;;4039:12;4052:1;4039:15;;;;;;;;;;:::i;:::-;;;;;;:52;-1:-1:-1;;;;;4039:52:71;;;-1:-1:-1;;;;;4039:52:71;;;;;4105:33;4122:12;4135:1;4122:15;;;;;;;;;;:::i;:::-;;;;;;;4105:16;:33::i;:::-;-1:-1:-1;3958:3:71;;3922:227;;;;4177:25;4219:12;4205:27;;-1:-1:-1;;;;;4205:27:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4205:27:71;;4177:55;;4242:28;4287:12;4273:27;;-1:-1:-1;;;;;4273:27:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4273:27:71;-1:-1:-1;4338:16:71;;;4352:1;4338:16;;;;;;;;;4242:58;;-1:-1:-1;4311:24:71;;4338:16;;;;;;;;;;;;-1:-1:-1;;4377:10:71;;-1:-1:-1;;;;;;4377:10:71;;4385:1;4377:10;;;17626:25:145;4311:43:71;;-1:-1:-1;4377:7:71;;;;17599:18:145;;4377:10:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4364:7;4372:1;4364:10;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;4364:23:71;;;-1:-1:-1;;;;;4364:23:71;;;;;4456:19;4500:4;4478:28;;;;;:::i;:::-;-1:-1:-1;;;;;32727:32:145;;;32709:51;;32697:2;32682:18;4478:28:71;;;;;;;;;;;;;;;;;;;;;;;4456:50;;4522:7;4517:5780;4539:12;4535:16;;:1;:16;;;4517:5780;;;4592:26;4576:12;:42;;;;;;;;:::i;:::-;;4572:5715;;4638:20;4669:12;4682:1;4669:15;;;;;;;;;;:::i;:::-;;;;;;;4638:47;;4704:18;4740:24;4837:4;4844:12;2826:13;2896:6;4814:87;;;;;:::i;:::-;-1:-1:-1;;;;;33206:15:145;;;33188:34;;33258:15;;;;33253:2;33238:18;;33231:43;33305:2;33290:18;;33283:34;33348:2;33333:18;;33326:34;33137:3;33122:19;4814:87:71;;;;;;;;;;;;;;;;;;;;;;;4804:97;;4954:12;4936:31;;;;;:::i;:::-;-1:-1:-1;;;;;32727:32:145;;;32709:51;;32697:2;32682:18;4936:31:71;;;;;;;;;;;;;;;;;;;;;;;4923:44;;4989:12;5002:1;4989:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;:49;;-1:-1:-1;;;4989:49:71;;-1:-1:-1;;;;;32727:32:145;;;4989:49:71;;;32709:51:145;4989:31:71;;;;;;32682:18:145;;4989:49:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5060:12;5073:1;5060:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;:52;;-1:-1:-1;;;5060:52:71;;-1:-1:-1;;;;;32727:32:145;;;5060:52:71;;;32709:51:145;5060:31:71;;;;;;32682:18:145;;5060:52:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5156:7;5134:8;5143:1;5134:11;;;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;5134:30:71;;;-1:-1:-1;;;;;5134:30:71;;;;;5211:10;5186:11;5198:1;5186:14;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5186:36:71;;;;:14;;;;;;;;;;:36;5367:16;;;5381:1;5367:16;;;;;;;;;5259:17;;;;;;5367:16;;;;;5186:14;5367:16;;;;;-1:-1:-1;5367:16:71;5341:42;;5425:4;5405:6;5412:1;5405:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5405:25:71;;;;:9;;;;;;;;;;:25;5484:16;;;5498:1;5484:16;;;;;;;;5453:28;;5484:16;;5498:1;;5484:16;;;;;;;;;-1:-1:-1;5484:16:71;5453:47;;5547:7;5522:11;5534:1;5522:14;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;5522:33:71;;;-1:-1:-1;;;;;5522:33:71;;;;;5602:10;5577:11;5589:1;5577:14;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;5577:36:71;;;-1:-1:-1;;;;;5577:36:71;;;;;5684:12;5730:3;5760:11;5805:9;5849:4;5880:6;5646:262;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5635:273;;5931:26;5960:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6002:46:71;;-1:-1:-1;;;6002:46:71;;-1:-1:-1;;;;;32727:32:145;;;6002:46:71;;;32709:51:145;5931:49:71;;-1:-1:-1;6002:24:71;;;;;;32682:18:145;;6002:46:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6085:1;6089;6085:5;;;;:::i;:::-;6092:11;6113:9;6125:7;6134:1;6137:6;6077:67;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;6071:73;;6166:16;6199:4;6185:19;;;;;:::i;:::-;17626:25:145;;;17614:2;17599:18;6185:19:71;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6226:36:71;;-1:-1:-1;;;6226:36:71;;-1:-1:-1;;;;;32727:32:145;;;6226:36:71;;;32709:51:145;6166:38:71;;-1:-1:-1;6226:19:71;;;;;;32682:18:145;;6226:36:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5319:962;;;;6299:18;6320:12;6299:33;;;;6350:49;6433:11;6402:43;;-1:-1:-1;;;;;6402:43:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6402:43:71;;-1:-1:-1;;6402:43:71;;;;;;;;;;;;6350:95;;6463:44;6536:11;6510:38;;-1:-1:-1;;;;;6510:38:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6510:38:71;;-1:-1:-1;;6510:38:71;;;;;;;;;;;;6463:85;;6571:7;6566:3168;6588:11;6584:15;;:1;:15;;;6566:3168;;;6637:1;6632:6;;:1;:6;;;6628:20;6640:8;6628:20;6670:13;6686:5;:1;6690;6686:5;:::i;:::-;6745:16;;;6759:1;6745:16;;;;;;;;;6670:21;;;;;;-1:-1:-1;6714:28:71;;6745:16;;;;;;;;;;;;-1:-1:-1;;6815:16:71;;;6783:29;6815:16;;;;;;;;;6714:47;;-1:-1:-1;6783:48:71;6878:3;6853:11;6865:1;6853:14;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6853:29:71;;;;:14;;;;;;;;;;;:29;6974:33;;;7005:1;6974:33;;;;;;;;;6931:40;;6974:33;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6931:76;;7033:26;7062:293;;;;;;;;7101:3;-1:-1:-1;;;;;7062:293:71;;;;;7140:11;:18;7062:293;;;;;;7195:12;:19;7062:293;;;;;;7245:1;7062:293;;;;;;7276:11;7062:293;;;;7317:12;7062:293;;;7033:322;;7393:43;;;;;;;;7418:6;7393:43;;;;;;7426:9;7393:43;;;7381:6;7388:1;7381:9;;;;;;;;:::i;:::-;;;;;;;;;;:55;7462:36;;-1:-1:-1;;;7462:36:71;;-1:-1:-1;;;;;7462:28:71;;;;;:36;;7491:6;;7462:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7569:45:71;;-1:-1:-1;7653:1:71;;-1:-1:-1;7617:38:71;;-1:-1:-1;;;7617:38:71;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7569:86;;7681:36;7720:40;;;;;;;;7735:5;7720:40;;;;;;7750:8;-1:-1:-1;;;;;7720:40:71;;;;7681:79;;7798:53;;;;;;;;7828:6;7798:53;;;;;;7836:14;7798:53;;;7786:6;7793:1;7786:9;;;;;;;;:::i;:::-;;;;;;;;;;:65;7877:41;;-1:-1:-1;;;7877:41:71;;-1:-1:-1;;;;;7877:33:71;;;;;:41;;7911:6;;7877:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7989:40:71;;-1:-1:-1;8063:1:71;;-1:-1:-1;8032:33:71;;-1:-1:-1;;;8032:33:71;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7989:76;;8091:26;8120:293;;;;;;;;8159:3;-1:-1:-1;;;;;8120:293:71;;;;;8198:11;:18;8120:293;;;;;;8253:12;:19;8120:293;;;;;;8303:1;8120:293;;;;;;8334:11;8120:293;;;;8375:12;8120:293;;;8091:322;;8451:43;;;;;;;;8476:6;8451:43;;;;;;8484:9;8451:43;;;8439:6;8446:1;8439:9;;;;;;;;:::i;:::-;;;;;;;;;;:55;8520:39;;-1:-1:-1;;;8520:39:71;;-1:-1:-1;;;;;8520:31:71;;;;;:39;;8552:6;;8520:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8664:329:71;;;;;;;;;;;;;8773:4;8664:329;;;;;;;;;;;;;8866:5;8664:329;;;;8913:4;8664:329;;;;8954:16;;-1:-1:-1;;;;;8954:16:71;8664:329;;;;8643:18;;8664:329;;-1:-1:-1;8643:15:71;;-1:-1:-1;8643:18:71;;;;-1:-1:-1;8643:18:71;;;-1:-1:-1;8643:18:71;;;;:::i;:::-;;;;;;:350;;;;9071:210;;;;;;;;9125:6;9071:210;;;;;;9162:4;-1:-1:-1;;;;;9071:210:71;;;;;9207:5;9071:210;;;;;;9254:4;-1:-1:-1;;;;;9071:210:71;;;;9050:15;9066:1;9050:18;;;;;;;;;;:::i;:::-;;;;;;:231;;;;9304:19;9326:9;-1:-1:-1;;;;;9326:34:71;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9434:40;;;9472:1;9434:40;;;;;;;;;9304:58;;-1:-1:-1;9384:47:71;;9434:40;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9434:40:71;;;;;;;;;;;;;;;;9384:90;;9508:159;;;;;;;;9565:6;9508:159;;;;;;9597:48;;;;;;;;9627:11;9623:1;:15;;;;:::i;:::-;-1:-1:-1;;;;;9597:48:71;;;9640:1;9597:48;;;;;;;;;;;9508:159;;9496:9;;:6;;-1:-1:-1;;9496:9:71;;;;:::i;:::-;;;;;;:171;;;;9689:9;-1:-1:-1;;;;;9689:18:71;;9708:6;9689:26;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6606:3128;;;;;6566:3168;6601:3;;;;:::i;:::-;;;;6566:3168;;;-1:-1:-1;9751:38:71;;-1:-1:-1;;;9751:38:71;;-1:-1:-1;;;;;9751:21:71;;;;;:38;;9773:15;;9751:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9807:33:71;;-1:-1:-1;;;9807:33:71;;-1:-1:-1;;;;;9807:16:71;;;-1:-1:-1;9807:16:71;;-1:-1:-1;9807:33:71;;9824:15;;9807:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4620:5235;;;;;;;;4572:5715;;;9881:28;9865:12;:44;;;;;;;;:::i;:::-;;9861:426;;9929:31;9996:4;10011:12;10024:1;10011:15;;;;;;;;;;:::i;:::-;;;;;;;9963:65;;;;;:::i;:::-;-1:-1:-1;;;;;43378:15:145;;;43360:34;;43430:15;;43425:2;43410:18;;43403:43;43310:2;43295:18;9963:65:71;;;;;;;;;;;;;;;;;;;;;;;9929:99;;10046:12;10059:1;10046:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;:52;;-1:-1:-1;;;10046:52:71;;-1:-1:-1;;;;;32727:32:145;;;10046:52:71;;;32709:51:145;10046:31:71;;;;;;32682:18:145;;10046:52:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10138:10;10116:8;10125:1;10116:11;;;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;10116:33:71;;;-1:-1:-1;;;;;10116:33:71;;;;;10192:10;10167:11;10179:1;10167:14;;;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;10167:36:71;;;-1:-1:-1;;;;;10167:36:71;;;;;9911:307;9861:426;;;10242:30;;-1:-1:-1;;;10242:30:71;;43659:2:145;10242:30:71;;;43641:21:145;43698:2;43678:18;;;43671:30;-1:-1:-1;;;43717:18:145;;;43710:50;43777:18;;10242:30:71;;;;;;;;9861:426;4553:3;;4517:5780;;;;10333:7;10328:355;10350:12;10346:16;;:1;:16;;;10328:355;;;10383:19;10405:12;10418:1;10405:15;;;;;;;;;;:::i;:::-;;;;;;;10383:37;;10439:7;10434:239;10456:12;10452:16;;:1;:16;;;10434:239;;;10502:1;10497:6;;:1;:6;;;10493:20;10505:8;10493:20;-1:-1:-1;;;;;10531:30:71;;;10562:5;:1;10566;10562:5;:::i;:::-;10569:8;10578:1;10569:11;;;;;;;;;;:::i;:::-;;;;;;;10531:50;;;;;;;;;;;;;;;44007:4:145;43995:17;;;;43977:36;;-1:-1:-1;;;;;44049:32:145;44044:2;44029:18;;44022:60;43965:2;43950:18;;43806:282;10531:50:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10599:8;-1:-1:-1;;;;;10599:33:71;;10633:1;10637;10633:5;;;;:::i;:::-;10640:11;10652:1;10640:14;;;;;;;;;;:::i;:::-;;;;;;;;;;;10599:59;;-1:-1:-1;;;;;;10599:59:71;;;;;;;44330:4:145;44318:17;;;10599:59:71;;;44300:36:145;-1:-1:-1;;;;;44372:32:145;44352:18;;;44345:60;10656:1:71;44421:18:145;;;44414:34;44273:18;;10599:59:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10434:239;10470:3;;10434:239;;;-1:-1:-1;;10364:3:71;;10328:355;;;;3737:6952;;;;;;3660:7029;;:::o;2452:134:89:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:89;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;11027:490:71:-;11158:22;11214:8;11200:23;;-1:-1:-1;;;;;11200:23:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11200:23:71;-1:-1:-1;11192:31:71;-1:-1:-1;11250:9:71;11233:234;11267:20;11279:8;11267:9;:20;:::i;:::-;11261:26;;:3;:26;;;11233:234;;;11375:14;;;11310:12;11375:14;;;:9;:14;;;;;;;;11356:56;;-1:-1:-1;;;;;11375:14:71;;;11356:56;;;44693:34:145;;;;11400:4:71;44743:18:145;;;44736:43;11375:14:71;44795:18:145;;;44788:50;11325:88:71;;11337:17;;44628:18:145;;11356:56:71;;;;;;;;;;;;11325:11;:88::i;:::-;11310:103;-1:-1:-1;11310:103:71;11427:5;11433:15;11439:9;11433:3;:15;:::i;:::-;11427:22;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11427:29:71;;;:22;;;;;;;;;;;:29;-1:-1:-1;11289:5:71;;11233:234;;;;11494:16;11504:5;11494:9;:16::i;:::-;11027:490;;;;;:::o;3360:151:89:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;17855:469:71:-;18099:18;;;18066:19;18099:18;;;:9;:18;;;;;;-1:-1:-1;;;;;18099:18:71;;18066:19;;18173:39;18203:8;18173:29;:39::i;:::-;18128:84;;;;;;18222:8;-1:-1:-1;;;;;18222:18:71;;18249:5;18261:3;18222:95;18267:5;18274:3;18279:5;18286;18293:12;;18307:9;;;;;;;;;;;;18222:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18056:268;;;;17855:469;;;;;;;:::o;3221:133:89:-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:89;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:89;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2553:261:138:-;2596:5;;2590:21;;-1:-1:-1;;;;;2596:5:138;;;2609:1;2590:5;:21::i;:::-;2638:5;;2655;;2630:34;;-1:-1:-1;;;2630:34:138;;-1:-1:-1;;;;;2655:5:138;;;2630:34;;;46337:51:145;2638:5:138;46404:18:145;;;46397:34;2621:47:138;;2638:5;;;;;2630:24;;46310:18:145;;2630:34:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2666:1;2621:8;:47::i;:::-;2695:5;;2712:3;;2687:32;;-1:-1:-1;;;2687:32:138;;-1:-1:-1;;;;;2712:3:138;;;2687:32;;;46337:51:145;2695:5:138;46404:18:145;;;46397:34;2678:45:138;;2695:5;;;;;2687:24;;46310:18:145;;2687:32:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2721:1;2678:8;:45::i;:::-;2739:3;;2733:19;;-1:-1:-1;;;;;2739:3:138;;;2750:1;2733:5;:19::i;:::-;2779:5;;2796:3;;2771:32;;-1:-1:-1;;;2771:32:138;;-1:-1:-1;;;;;2796:3:138;;;2771:32;;;46337:51:145;2779:5:138;46404:18:145;;;46397:34;2762:45:138;;2779:5;;;;;2771:24;;46310:18:145;;2771:32:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2805:1;2762:8;:45::i;:::-;2553:261::o;3349:204:70:-;3441:12;3455:11;3468:13;3500:46;3538:7;;3500:37;:46::i;:::-;3493:53;;;;;;3349:204;;;;;:::o;14989:1687:71:-;15116:18;;;15146:1;15116:18;;;:9;:18;;;;;;-1:-1:-1;;;;;15116:18:71;15108:72;;;;-1:-1:-1;;;15108:72:71;;47120:2:145;15108:72:71;;;47102:21:145;47159:2;47139:18;;;47132:30;47198:29;47178:18;;;47171:57;47245:18;;15108:72:71;46918:351:145;15108:72:71;15237:21;;;15191:43;15237:21;;;:12;:21;;;;;;;;:34;;;;;;;;;15310:14;15237:34;15310:12;:14::i;:::-;15281:43;;15334:23;15371:13;15388:1;15371:18;15367:201;;15423:14;:5;:12;:14::i;:::-;15405:32;;15367:201;;;15507:13;15486:18;:34;:71;;15539:18;15486:71;;;15523:13;15486:71;15468:89;;15367:201;15584:19;;15577:1093;;15619:17;;;;:::i;:::-;;;;15684:12;15699:15;:5;:13;:15::i;:::-;15728:24;15755:13;;;:7;:13;;;;;15728:40;;15684:30;;-1:-1:-1;15728:24:71;;:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15782:34:71;;-1:-1:-1;;;15782:34:71;;15728:40;;-1:-1:-1;15782:4:71;;:15;;-1:-1:-1;15782:34:71;;-1:-1:-1;15728:40:71;;-1:-1:-1;15811:4:71;;15782:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15830:32:71;;-1:-1:-1;;;15830:32:71;;:4;;-1:-1:-1;15830:19:71;;-1:-1:-1;15830:32:71;;15850:11;;15830:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15877:20:71;15900:19;;;:13;:19;;;;;15877:42;;:20;;-1:-1:-1;15900:19:71;15877:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15937:71;15959:7;351:1:67;15937:21:71;:71::i;:::-;15933:369;;;16029:14;16045:16;16065:39;16096:7;16065:30;:39::i;:::-;16204:28;;16028:76;;-1:-1:-1;16028:76:71;-1:-1:-1;16028:76:71;;16122:10;;-1:-1:-1;;;;;16204:7:71;;;16028:76;;16122:10;16204:28;16122:10;16204:28;16028:76;16204:7;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16188:44;;;16258:4;16250:37;;;;-1:-1:-1;;;16250:37:71;;47827:2:145;16250:37:71;;;47809:21:145;47866:2;47846:18;;;47839:30;-1:-1:-1;;;47885:18:145;;;47878:50;47945:18;;16250:37:71;47625:344:145;16250:37:71;16010:292;;;;15933:369;16319:69;16341:7;294:1:67;16319:21:71;:69::i;:::-;16315:144;;;16408:36;;-1:-1:-1;;;16408:36:71;;:4;;:14;;:36;;16423:11;;16436:7;;16408:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16315:144;-1:-1:-1;;;;;16476:23:71;;;;;;:96;;;16503:69;16525:7;406:1:67;16503:21:71;:69::i;:::-;16472:188;;;16592:53;;-1:-1:-1;;;16592:53:71;;:4;;:14;;:53;;16607:11;;16620:7;;16629:4;;16635:9;;16592:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16472:188;15605:1065;;;15577:1093;;21259:228;21411:21;;;21344:9;21411:21;;;:12;:21;;;;;;;;:34;;;;;;;;21344:9;21462:14;21411:34;21462:12;:14::i;:::-;:18;21455:25;;;21259:228;;;;;:::o;2738:178:89:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2722:249:70;2837:16;2855:21;;2878:14;2911:53;2946:8;;2956:7;2911:34;:53::i;:::-;2904:60;;;;;;;;2722:249;;;;;;;:::o;11786:514:71:-;11861:12;;11846;11883:411;11907:4;11903:1;:8;11883:411;;;11932:14;11962:5;11968:1;11962:8;;;;;;;;:::i;:::-;;;;;;;11932:40;;11991:9;11986:298;12010:4;12006:1;:8;11986:298;;;12039:20;;;12051:8;12039:20;12077:15;12108:5;12114:1;12108:8;;;;;;;;:::i;:::-;;;;;;;12077:41;;12136:16;12156:10;-1:-1:-1;;;;;12156:19:71;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12155:27:71;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12136:48;;12202:9;-1:-1:-1;;;;;12202:17:71;;12220:9;12231:37;12256:10;-1:-1:-1;;;;;21935:23:71;;21837:129;12231:37;12202:67;;-1:-1:-1;;;;;;12202:67:71;;;;;;;;49642:23:145;;;;12202:67:71;;;49624:42:145;49682:18;;;49675:34;49597:18;;12202:67:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12021:263;;11986:298;12016:3;;11986:298;;;-1:-1:-1;;11913:3:71;;11883:411;;;;11836:464;11786:514;:::o;21493:338::-;21664:21;;;21618:43;21664:21;;;:12;:21;;;;;;;;:34;;;;;;;;21582:24;;21712:14;21664:34;21712:12;:14::i;:::-;:18;21708:117;;;21746:12;21761;:5;:10;:12::i;:::-;21801:13;;;;:7;:13;;;;;21787:27;;21746;;-1:-1:-1;21801:13:71;21787:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21732:93;21708:117;21608:223;21493:338;;;;:::o;1025:446:137:-;1113:13;1151:3;1142:5;:12;1138:38;;-1:-1:-1;1163:13:137;;;1174:1;1163:13;;;;;;;;1156:20;;1138:38;1201:5;:12;1194:3;:19;;1186:55;;;;-1:-1:-1;;;1186:55:137;;49922:2:145;1186:55:137;;;49904:21:145;49961:2;49941:18;;;49934:30;50000:25;49980:18;;;49973:53;50043:18;;1186:55:137;49720:347:145;1186:55:137;1252:11;1266;1272:5;1266:3;:11;:::i;:::-;1252:25;;1287;1326:6;-1:-1:-1;;;;;1315:18:137;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1315:18:137;;1287:46;;1349:6;1344:92;1365:6;1361:1;:10;1344:92;;;1409:5;1415:9;1423:1;1415:5;:9;:::i;:::-;1409:16;;;;;;;;:::i;:::-;;;;;;;1392:11;1404:1;1392:14;;;;;;;;:::i;:::-;;;;;;;;;;:33;1373:3;;1344:92;;;-1:-1:-1;1453:11:137;1025:446;-1:-1:-1;;;;;1025:446:137:o;2592:140:89:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:146;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20944:187:71;21030:18;21051;:11;;:16;:18::i;:::-;21030:39;;21101:4;21087:10;:18;21079:45;;;;-1:-1:-1;;;21079:45:71;;50407:2:145;21079:45:71;;;50389:21:145;50446:2;50426:18;;;50419:30;-1:-1:-1;;;50465:18:145;;;50458:44;50519:18;;21079:45:71;50205:338:145;21079:45:71;21020:111;20944:187;;;:::o;17277:376::-;17447:4;:14;17475:21;:12;;:19;:21::i;:::-;17510:26;:12;;:24;:26::i;:::-;17550:8;17572:5;17591:9;17614:22;:12;;:20;:22::i;:::-;17447:199;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21137:116;21237:8;21201:9;:25;21211:8;-1:-1:-1;;;;;21211:12:71;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21201:25;;;;;;;;;;;;;-1:-1:-1;21201:25:71;:45;;-1:-1:-1;;;;;;21201:45:71;-1:-1:-1;;;;;21201:45:71;;;;;;;;;;-1:-1:-1;21137:116:71:o;2157:141:89:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14307:136:71;14384:52;14398:7;14407:11;14420:1;14431:3;14384:13;:52::i;3159:184:70:-;3238:14;3254:16;3289:47;3328:7;;3289:38;:47::i;:::-;3282:54;;;;3159:184;;;;;;:::o;1819:584:83:-;1873:7;;1853:4;;1873:7;;;;;1869:528;;;-1:-1:-1;1903:7:83;;;;;;;;1819:584::o;1869:528::-;1941:17;2997:42;2985:55;3066:16;1980:374;;2196:43;;;1671:64;2196:43;;;46337:51:145;;;-1:-1:-1;;;46404:18:145;;;46397:34;2196:43:83;;;;;;;;;46310:18:145;;;2196:43:83;;;-1:-1:-1;;1671:64:83;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:83;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:83:o;2304:142:89:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:89;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;16682:589:71:-;16780:19;16813:9;:32;16823:21;:12;;:19;:21::i;:::-;16813:32;;;;;;;;;;;;;-1:-1:-1;16813:32:71;;;;-1:-1:-1;;;;;16813:32:71;;-1:-1:-1;;16887:53:71;16931:8;16887:43;:53::i;:::-;16856:84;;;;16951:20;16974:74;;;;;;;;16981:21;:12;;:19;:21::i;:::-;16974:74;;;;;;17004:21;:12;;:19;:21::i;:::-;16974:74;;;;17027:20;:12;;:18;:20::i;:::-;-1:-1:-1;;;;;16974:74:71;;;16951:97;-1:-1:-1;;;;;;17058:18:71;;;17097:3;17085:5;16951:97;17136:26;:12;;:24;:26::i;:::-;17176:19;:12;;:17;:19::i;:::-;17209:22;:12;;:20;:22::i;:::-;17245:9;;;;;;;;;;;;17058:206;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16770:501;;;;16682:589;;;:::o;2977:176:70:-;3055:11;3068:13;3100:46;3138:7;;3100:37;:46::i;13482:464:71:-;13577:13;13593:21;:12;;:19;:21::i;:::-;13577:37;;13624:18;13645:23;:12;;:21;:23::i;:::-;13724:20;;;13678:43;13724:20;;;:12;:20;;;;;;;;:32;;;;;;;;13624:44;;-1:-1:-1;13811:19:71;:12;;:17;:19::i;:::-;13796:34;-1:-1:-1;13840:21:71;:5;13796:34;13840:15;:21::i;:::-;13871:13;;;;:7;:13;;;;;:28;13887:12;;13871:13;:28;:::i;:::-;-1:-1:-1;13909:19:71;;;;:13;:19;;;;;:30;13931:8;;13909:19;:30;:::i;609:155:137:-;683:57;456:1;713:26;683:14;:57::i;:::-;750:7;:5;:7::i;1548:257:138:-;1635:16;;;1649:1;1635:16;;;;;;;;1610:22;;1635:16;;;;;;;;;;-1:-1:-1;;1721:5:138;;1610:41;;-1:-1:-1;1661:17:138;;-1:-1:-1;;;;;1721:5:138;1610:41;1661:17;1698:11;1661:17;1698:11;:::i;:::-;;;1692:18;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1692:35:138;;;:18;;;;;;;;;:35;1766:5;;;1737;1743:11;;;;:::i;:::-;;;1737:18;;;;;;;;:::i;:::-;;;;;;:35;-1:-1:-1;;;;;1737:35:138;;;-1:-1:-1;;;;;1737:35:138;;;;;1782:16;1792:5;1782:9;:16::i;2101:357:42:-;2263:12;2244:8;817:1;1068:20;2244:8;1086:1;1068:17;:20::i;:::-;:30;;;1064:82;;1125:20;:8;1143:1;1125:17;:20::i;:::-;1107:39;;-1:-1:-1;;;1107:39:42;;55941:6:145;55929:19;;;1107:39:42;;;55911:38:145;55884:18;;1107:39:42;55767:188:145;1064:82:42;2287:19:::1;2309:51;2347:4;2353:6;2309:37;:51::i;:::-;2287:73;;2377:74;2395:8;294:1:67;2444:6:42;2377:17;:74::i;:::-;2370:81:::0;2101:357;-1:-1:-1;;;;;;2101:357:42:o;2671:150:68:-;2734:6;2773:39;706:2;655;2773:7;;:39;:::i;:::-;2766:47;;;:::i;:::-;2759:55;;;2671:150;-1:-1:-1;;;2671:150:68:o;2976:130::-;3044:7;3070:29;:17;3079:7;;3070:8;:17::i;:::-;1210:15:60;1084:151;2230:148:68;2293:6;2332:37;605:2;557:1;2332:7;;:37;:::i;1788:125::-;1851:14;;1884:22;785:2;1851:14;1884:7;;:22;:::i;3397:132::-;3461:14;;3500:21;:7;785:2;3500:7;;:21;:::i;12737:399:71:-;12835:12;12859:21;12913:13;12896:31;;;;;;;;:::i;:::-;;;;-1:-1:-1;;12896:31:71;;;;;;;;;;12883:63;;12929:16;;12896:31;12883:63;;:::i;:::-;;;;;;;;;;;;;12859:87;;13024:8;13018:15;13011:4;13001:8;12997:19;12994:1;12987:47;12979:55;;13069:4;13057:17;13047:73;;13104:1;13101;13094:12;1471:427:70;1570:12;1584:11;1597:13;1623:10;1635:19;1658:113;1702:8;406:1:67;1658:30:70;:113::i;:::-;1622:149;;;;1789:5;1781:59;;;;-1:-1:-1;;;1781:59:70;;57323:2:145;1781:59:70;;;57305:21:145;57362:2;57342:18;;;57335:30;57401:34;57381:18;;;57374:62;-1:-1:-1;;;57452:18:145;;;57445:39;57501:19;;1781:59:70;57121:405:145;1781:59:70;1857:34;;-1:-1:-1;;;1857:34:70;;:4;;:26;;:34;;1884:6;;1857:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1850:41;;-1:-1:-1;;;;;1850:41:70;;;;-1:-1:-1;1850:41:70;;;-1:-1:-1;1471:427:70;-1:-1:-1;;;;1471:427:70:o;2355:192:138:-;2453:5;;-1:-1:-1;;;;;2453:5:138;:15;2469:3;2474:29;2485:8;2495:7;2474:10;:29::i;:::-;2505:30;2519:6;2527:7;2505:13;:30::i;:::-;2453:87;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2355:192;;;;:::o;5209:262:83:-;5271:1;5266;:6;5262:203;;5293:41;;;;;59047:2:145;59029:21;;;59086:2;59066:18;;;59059:30;59125:34;59120:2;59105:18;;59098:62;-1:-1:-1;;;59191:2:145;59176:18;;59169:32;59233:3;59218:19;;58845:398;5293:41:83;;;;;;;;5353:31;;;59460:21:145;;;59517:2;59497:18;;;59490:30;-1:-1:-1;;;59551:2:145;59536:18;;59529:40;59636:4;59621:20;;59614:36;;;5353:31:83;;;;;;;59601:3:145;5353:31:83;;;5403;;;59873:21:145;;;59930:2;59910:18;;;59903:30;-1:-1:-1;;;59964:2:145;59949:18;;59942:40;60049:4;60034:20;;60027:36;;;5403:31:83;;;;;;;60014:3:145;5403:31:83;;;5448:6;:4;:6::i;2591:371:67:-;2683:12;;;2757:2;2739:20;;;;;:44;;-1:-1:-1;2781:2:67;2763:20;;;2739:44;2735:90;;;2792:33;;-1:-1:-1;;;2792:33:67;;;;;;;;;;;2735:90;2843:16;:7;;2857:1;2843:13;:16::i;:::-;2835:24;-1:-1:-1;2875:17:67;:7;;2890:1;2875:14;:17::i;:::-;2869:23;-1:-1:-1;2928:2:67;2910:20;;:45;;2954:1;2910:45;;;2933:18;:7;;2948:2;2933:14;:18::i;:::-;2902:53;;2591:371;;;;;:::o;5491:168:131:-;5629:12;-1:-1:-1;;;;;5629:12:131;;;-1:-1:-1;;;5616:10:131;;;;;:25;;;;5608:34;;5491:168::o;2441:371::-;2573:10;;2504:13;;-1:-1:-1;;;;;;;;2573:10:131;;;;;2614:12;2601:25;;2597:50;;2635:12;;-1:-1:-1;;;2635:12:131;;;;;;;;;;;2597:50;-1:-1:-1;;2661:11:131;-1:-1:-1;;;;;2694:22:131;;;;;;;2661:11;2694;;:22;;;;;;;2730:29;;;2773:22;;;;;-1:-1:-1;;;2773:22:131;;;;;;;-1:-1:-1;2694:22:131;2441:371::o;1904:228:70:-;2030:10;2064:61;2095:8;2105:19;2064:30;:61::i;:::-;-1:-1:-1;2052:73:70;1904:228;-1:-1:-1;;;1904:228:70:o;1027:438::-;1127:14;1143:16;1172:10;1184:19;1207:115;1251:8;351:1:67;1207:30:70;:115::i;:::-;1171:151;;;;1340:5;1332:60;;;;-1:-1:-1;;;1332:60:70;;60276:2:145;1332:60:70;;;60258:21:145;60315:2;60295:18;;;60288:30;60354:34;60334:18;;;60327:62;-1:-1:-1;;;60405:18:145;;;60398:40;60455:19;;1332:60:70;60074:406:145;1332:60:70;1423:35;;-1:-1:-1;;;1423:35:70;;:4;;:27;;:35;;1451:6;;1423:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1402:56:70;;;;;;-1:-1:-1;1027:438:70;-1:-1:-1;;;;1027:438:70:o;1251:742:67:-;1366:16;1384:21;1366:16;1506:1;1496:11;;1366:16;1568:22;:8;;1496:11;1568:14;:22::i;:::-;1614:1;1604:11;;;;;1554:36;-1:-1:-1;1675:21:67;:8;;1604:11;1675:13;:21::i;:::-;1662:34;-1:-1:-1;1826:1:67;1817:10;;1881:13;;;;;1917:31;1881:13;1817:10;1917:8;;:31;:::i;:::-;1251:742;;1908:40;;-1:-1:-1;1908:40:67;;-1:-1:-1;;;1962:14:67;;;;-1:-1:-1;;;1251:742:67:o;4238:212:131:-;4303:13;4332:12;4338:5;5832:12;-1:-1:-1;;;5818:10:131;;-1:-1:-1;;;;;5818:10:131;;;5832:12;;5818:26;;5729:122;4332:12;4328:37;;;4353:12;;-1:-1:-1;;;4353:12:131;;;;;;;;;;;4328:37;-1:-1:-1;4418:10:131;;-1:-1:-1;;;;;;;;;;4418:10:131;;;;;:14;4406:27;;;;;:11;;;;:27;;;;;;;4238:212::o;3112:138:68:-;3173:7;3207:35;862:3;785:2;3207:7;;:35;:::i;:::-;3199:44;;;:::i;3256:135::-;3320:14;;3359:24;:7;862:3;3359:7;;:24;:::i;2314:271:67:-;2393:14;;2459:2;2441:20;;2437:67;;2470:34;;-1:-1:-1;;;2470:34:67;;;;;;;;;;;2437:67;2523:17;:7;;2538:1;2523:14;:17::i;:::-;2514:26;-1:-1:-1;2561:17:67;:7;;2575:2;2561:13;:17::i;:::-;2550:28;;2314:271;;;;;:::o;614:407:70:-;699:11;712:13;738:10;750:19;773:113;817:8;294:1:67;773:30:70;:113::i;:::-;737:149;;;;904:5;896:59;;;;-1:-1:-1;;;896:59:70;;61264:2:145;896:59:70;;;61246:21:145;61303:2;61283:18;;;61276:30;61342:34;61322:18;;;61315:62;-1:-1:-1;;;61393:18:145;;;61386:39;61442:19;;896:59:70;61062:405:145;896:59:70;980:34;;-1:-1:-1;;;980:34:70;;:4;;:26;;:34;;1007:6;;980:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;965:49:70;;;;;;;-1:-1:-1;614:407:70;-1:-1:-1;;;;614:407:70:o;2384:142:68:-;2447:7;2481:37;655:2;605;2481:7;;:37;:::i;2078:146::-;2140:6;2179:36;557:1;493;2179:7;;:36;:::i;:::-;2172:44;;;:::i;:::-;2165:52;;;2078:146;-1:-1:-1;;;2078:146:68:o;1999:309:67:-;2077:11;;2137:2;2119:20;;;;;:44;;-1:-1:-1;2161:2:67;2143:20;;;2119:44;2115:90;;;2172:33;;-1:-1:-1;;;2172:33:67;;;;;;;;;;;2115:90;2221:17;:7;;2236:1;2221:14;:17::i;:::-;2215:23;-1:-1:-1;2274:2:67;2256:20;;:45;;2300:1;2256:45;;;2279:18;:7;;2294:2;2279:14;:18::i;2827:143:68:-;2892:7;2926:36;785:2;706;2926:7;;:36;:::i;2954:305:131:-;3080:12;;-1:-1:-1;;;;;3080:12:131;;;-1:-1:-1;;3080:16:131;;-1:-1:-1;;;3128:10:131;;;;3114:24;;;;3110:48;;3147:11;;-1:-1:-1;;;3147:11:131;;;;;;;;;;;3110:48;-1:-1:-1;;;;;3172:23:131;;;;;:11;;;:23;;;;;:31;;;;3217:25;;-1:-1:-1;;;;;;3217:25:131;;;;2954:305::o;834:185:137:-;886:5;;878:38;;-1:-1:-1;;;878:38:137;;-1:-1:-1;;;;;886:5:137;;;878:38;;;46337:51:145;279:10:137;46404:18:145;;;46397:34;878:7:137;;;;46310:18:145;;878:38:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;934:3:137;;926:36;;-1:-1:-1;;;926:36:137;;-1:-1:-1;;;;;934:3:137;;;926:36;;;46337:51:145;279:10:137;46404:18:145;;;46397:34;926:7:137;;-1:-1:-1;926:7:137;;-1:-1:-1;46310:18:145;;926:36:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;980:7:137;;;972:40;;-1:-1:-1;;;972:40:137;;-1:-1:-1;;;;;980:7:137;;;972:40;;;46337:51:145;279:10:137;46404:18:145;;;46397:34;;;;972:7:137;;-1:-1:-1;972:7:137;;-1:-1:-1;46310:18:145;;972:40:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12935:305:134;13013:6;13056:10;:6;13065:1;13056:10;:::i;:::-;13039:6;:13;:27;;13031:60;;;;-1:-1:-1;;;13031:60:134;;62679:2:145;13031:60:134;;;62661:21:145;62718:2;62698:18;;;62691:30;-1:-1:-1;;;62737:18:145;;;62730:50;62797:18;;13031:60:134;62477:344:145;13031:60:134;-1:-1:-1;13168:29:134;13184:3;13168:29;13162:36;;12935:305::o;2968:191:67:-;3052:12;-1:-1:-1;;;;;3083:11:67;;;:69;;3122:30;;;-1:-1:-1;;;;;;63061:3:145;63057:16;;;63053:25;;3122:30:67;;;63041:38:145;63113:16;;;63109:25;63095:12;;;63088:47;63151:12;3122:30:67;;;;;;;;;;;;3083:69;;;3097:22;;-1:-1:-1;;;;;;63323:3:145;63319:16;;;63315:62;3097:22:67;;;63303:75:145;63394:12;;3097:22:67;;;;;;;;;;;;3076:76;;2968:191;;;;:::o;5725:435:42:-;5889:12;5870:8;817:1;1068:20;5870:8;1086:1;1068:17;:20::i;:::-;:30;;;1064:82;;1125:20;:8;1143:1;1125:17;:20::i;1064:82::-;5966:8:::1;238:1:67;6035:25:42;:7;:14;:23;:25::i;:::-;:29;::::0;6063:1:::1;6035:29;:::i;:::-;6103:11;6132:7;5932:221;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5913:240;;5725:435:::0;;;;;;:::o;2138:578:70:-;2348:10;;:27;;-1:-1:-1;;;2348:27:70;;2273:10;;2285:19;;2273:10;;-1:-1:-1;;;;;2348:10:70;;:17;;:27;;2366:8;;2348:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2348:27:70;;;;;;;;;;;;:::i;:::-;2316:59;;;2386:14;2410:300;2426:12;:19;2417:6;:28;2410:300;;;2519:45;;-1:-1:-1;;;2519:45:70;;2462:16;;;;;;2519:4;;:23;;:45;;2543:12;;2557:6;;2519:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2519:45:70;;;;;;;;;;;;:::i;:::-;2461:103;;;;;;2596:19;2582:33;;:10;:33;;;2578:89;;-1:-1:-1;2643:4:70;;-1:-1:-1;2649:2:70;-1:-1:-1;2635:17:70;;-1:-1:-1;;;2635:17:70;2578:89;2689:10;-1:-1:-1;2410:300:70;;-1:-1:-1;;2410:300:70;;2306:410;;2138:578;;;;;:::o;1811:258:138:-;1889:20;1941:7;-1:-1:-1;;;;;1927:22:138;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1927:22:138;;1921:28;;1964:9;1959:84;1983:7;1979:1;:11;1959:84;;;2020:12;2031:1;2020:8;:12;:::i;:::-;2011:3;2015:1;2011:6;;;;;;;;:::i;:::-;;;;;;;;;;:21;1992:3;;1959:84;;2075:274;2157:23;2215:10;-1:-1:-1;;;;;2201:25:138;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2201:25:138;;2192:34;;2241:9;2236:84;2260:10;2256:1;:14;2236:84;;;2303:6;2291;2298:1;2291:9;;;;;;;;:::i;:::-;;;;;;;;;;:18;2272:3;;2236:84;;2409:432:83;2997:42;2985:55;3066:16;2452:359;;2652:67;;;1671:64;2652:67;;;65969:51:145;;;-1:-1:-1;;;66036:18:145;;;66029:34;;;;2712:4:83;66079:18:145;;;66072:34;2489:11:83;;1671:64;2586:43;;65942:18:145;;2652:67:83;;;-1:-1:-1;;2652:67:83;;;;;;;;;;2541:196;;;2652:67;2541:196;;:::i;:::-;;;;-1:-1:-1;;2541:196:83;;;;;;;;;;2506:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2452:359:83;2820:7;:14;;-1:-1:-1;;2820:14:83;;;;;2409:432::o;229:215:61:-;306:6;371:1;362:10;;407:18;362:10;:6;407;;:18;:::i;:::-;400:26;;;:::i;:::-;393:34;;;229:215;-1:-1:-1;;;;;229:215:61:o;892:220::-;970:7;1036:2;1027:11;;1075:18;1027:11;:6;1075;;:18;:::i;:::-;1067:27;;;:::i;:::-;1059:36;;;892:220;-1:-1:-1;;;;;892:220:61:o;95:128::-;171:5;201:6;;208;201:14;;;;;;;:::i;:::-;;;;;;;;;95:128;-1:-1:-1;;;;;95:128:61:o;1570:210::-;1647:7;1713:2;1704:11;;1744:18;1704:11;:6;1744;;:18;:::i;:::-;1736:27;;;:::i;:::-;1729:34;1570:210;-1:-1:-1;;;;;1570:210:61:o;16291:213:129:-;16347:6;16377:16;16369:24;;16365:103;;;16416:41;;-1:-1:-1;;;16416:41:129;;16447:2;16416:41;;;66971:36:145;67023:18;;;67016:34;;;66944:18;;16416:41:129;66790:266:145;16365:103:129;-1:-1:-1;16491:5:129;16291:213::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:121:145:-;99:10;92:5;88:22;81:5;78:33;68:61;;125:1;122;115:12;68:61;14:121;:::o;140:131::-;-1:-1:-1;;;;;215:31:145;;205:42;;195:70;;261:1;258;251:12;276:386;343:6;351;404:2;392:9;383:7;379:23;375:32;372:52;;;420:1;417;410:12;372:52;459:9;446:23;478:30;502:5;478:30;:::i;:::-;527:5;-1:-1:-1;584:2:145;569:18;;556:32;597:33;556:32;597:33;:::i;:::-;649:7;639:17;;;276:386;;;;;:::o;667:347::-;718:8;728:6;782:3;775:4;767:6;763:17;759:27;749:55;;800:1;797;790:12;749:55;-1:-1:-1;823:20:145;;-1:-1:-1;;;;;855:30:145;;852:50;;;898:1;895;888:12;852:50;935:4;927:6;923:17;911:29;;987:3;980:4;971:6;963;959:19;955:30;952:39;949:59;;;1004:1;1001;994:12;1019:409;1089:6;1097;1150:2;1138:9;1129:7;1125:23;1121:32;1118:52;;;1166:1;1163;1156:12;1118:52;1206:9;1193:23;-1:-1:-1;;;;;1231:6:145;1228:30;1225:50;;;1271:1;1268;1261:12;1225:50;1310:58;1360:7;1351:6;1340:9;1336:22;1310:58;:::i;:::-;1387:8;;1284:84;;-1:-1:-1;1019:409:145;-1:-1:-1;;;;1019:409:145:o;1433:114::-;1517:4;1510:5;1506:16;1499:5;1496:27;1486:55;;1537:1;1534;1527:12;1552:410;1635:6;1643;1696:2;1684:9;1675:7;1671:23;1667:32;1664:52;;;1712:1;1709;1702:12;1664:52;1751:9;1738:23;1770:29;1793:5;1770:29;:::i;:::-;1818:5;-1:-1:-1;1875:2:145;1860:18;;1847:32;1910:1;1898:14;;1888:42;;1926:1;1923;1916:12;1967:465;2020:3;2058:5;2052:12;2085:6;2080:3;2073:19;2111:4;2140;2135:3;2131:14;2124:21;;2179:4;2172:5;2168:16;2202:1;2212:195;2226:6;2223:1;2220:13;2212:195;;;2291:13;;-1:-1:-1;;;;;2287:39:145;2275:52;;2347:12;;;;2382:15;;;;2323:1;2241:9;2212:195;;;-1:-1:-1;2423:3:145;;1967:465;-1:-1:-1;;;;;1967:465:145:o;2437:261::-;2616:2;2605:9;2598:21;2579:4;2636:56;2688:2;2677:9;2673:18;2665:6;2636:56;:::i;2926:127::-;2987:10;2982:3;2978:20;2975:1;2968:31;3018:4;3015:1;3008:15;3042:4;3039:1;3032:15;3058:254;3131:2;3125:9;3173:4;3161:17;;-1:-1:-1;;;;;3193:34:145;;3229:22;;;3190:62;3187:88;;;3255:18;;:::i;:::-;3291:2;3284:22;3058:254;:::o;3317:275::-;3388:2;3382:9;3453:2;3434:13;;-1:-1:-1;;3430:27:145;3418:40;;-1:-1:-1;;;;;3473:34:145;;3509:22;;;3470:62;3467:88;;;3535:18;;:::i;:::-;3571:2;3564:22;3317:275;;-1:-1:-1;3317:275:145:o;3597:186::-;3645:4;-1:-1:-1;;;;;3670:6:145;3667:30;3664:56;;;3700:18;;:::i;:::-;-1:-1:-1;3766:2:145;3745:15;-1:-1:-1;;3741:29:145;3772:4;3737:40;;3597:186::o;3788:462::-;3830:5;3883:3;3876:4;3868:6;3864:17;3860:27;3850:55;;3901:1;3898;3891:12;3850:55;3937:6;3924:20;3968:48;3984:31;4012:2;3984:31;:::i;:::-;3968:48;:::i;:::-;4041:2;4032:7;4025:19;4087:3;4080:4;4075:2;4067:6;4063:15;4059:26;4056:35;4053:55;;;4104:1;4101;4094:12;4053:55;4169:2;4162:4;4154:6;4150:17;4143:4;4134:7;4130:18;4117:55;4217:1;4192:16;;;4210:4;4188:27;4181:38;;;;4196:7;3788:462;-1:-1:-1;;;3788:462:145:o;4255:588::-;4337:6;4345;4353;4406:2;4394:9;4385:7;4381:23;4377:32;4374:52;;;4422:1;4419;4412:12;4374:52;4462:9;4449:23;-1:-1:-1;;;;;4487:6:145;4484:30;4481:50;;;4527:1;4524;4517:12;4481:50;4550:49;4591:7;4582:6;4571:9;4567:22;4550:49;:::i;:::-;4540:59;;;4649:2;4638:9;4634:18;4621:32;4662:29;4685:5;4662:29;:::i;:::-;4710:5;-1:-1:-1;4767:2:145;4752:18;;4739:32;4780:31;4739:32;4780:31;:::i;:::-;4830:7;4820:17;;;4255:588;;;;;:::o;4848:250::-;4933:1;4943:113;4957:6;4954:1;4951:13;4943:113;;;5033:11;;;5027:18;5014:11;;;5007:39;4979:2;4972:10;4943:113;;;-1:-1:-1;;5090:1:145;5072:16;;5065:27;4848:250::o;5103:271::-;5145:3;5183:5;5177:12;5210:6;5205:3;5198:19;5226:76;5295:6;5288:4;5283:3;5279:14;5272:4;5265:5;5261:16;5226:76;:::i;:::-;5356:2;5335:15;-1:-1:-1;;5331:29:145;5322:39;;;;5363:4;5318:50;;5103:271;-1:-1:-1;;5103:271:145:o;5379:598::-;5431:3;5462;5494:5;5488:12;5521:6;5516:3;5509:19;5547:4;5576;5571:3;5567:14;5560:21;;5634:4;5624:6;5621:1;5617:14;5610:5;5606:26;5602:37;5673:4;5666:5;5662:16;5696:1;5706:245;5720:6;5717:1;5714:13;5706:245;;;5807:2;5803:7;5795:5;5789:4;5785:16;5781:30;5776:3;5769:43;5833:38;5866:4;5857:6;5851:13;5833:38;:::i;:::-;5929:12;;;;5825:46;-1:-1:-1;5894:15:145;;;;5742:1;5735:9;5706:245;;;-1:-1:-1;5967:4:145;;5379:598;-1:-1:-1;;;;;;;5379:598:145:o;5982:1077::-;6188:4;6217:2;6257;6246:9;6242:18;6287:2;6276:9;6269:21;6310:6;6345;6339:13;6376:6;6368;6361:22;6402:2;6392:12;;6435:2;6424:9;6420:18;6413:25;;6497:2;6487:6;6484:1;6480:14;6469:9;6465:30;6461:39;6535:2;6527:6;6523:15;6556:1;6566:464;6580:6;6577:1;6574:13;6566:464;;;6645:22;;;-1:-1:-1;;6641:36:145;6629:49;;6701:13;;6746:9;;-1:-1:-1;;;;;6742:35:145;6727:51;;6817:11;;6811:18;6849:15;;;6842:27;;;6892:58;6934:15;;;6811:18;6892:58;:::i;:::-;7008:12;;;;6882:68;-1:-1:-1;;6973:15:145;;;;6602:1;6595:9;6566:464;;;-1:-1:-1;7047:6:145;;5982:1077;-1:-1:-1;;;;;;;;5982:1077:145:o;7064:1114::-;7187:6;7195;7203;7211;7219;7227;7235;7288:3;7276:9;7267:7;7263:23;7259:33;7256:53;;;7305:1;7302;7295:12;7256:53;7344:9;7331:23;7363:30;7387:5;7363:30;:::i;:::-;7412:5;-1:-1:-1;7469:2:145;7454:18;;7441:32;7482:33;7441:32;7482:33;:::i;:::-;7534:7;-1:-1:-1;7592:2:145;7577:18;;7564:32;-1:-1:-1;;;;;7645:14:145;;;7642:34;;;7672:1;7669;7662:12;7642:34;7695:49;7736:7;7727:6;7716:9;7712:22;7695:49;:::i;:::-;7685:59;;7791:2;7780:9;7776:18;7763:32;7753:42;;7847:3;7836:9;7832:19;7819:33;7804:48;;7861:33;7886:7;7861:33;:::i;:::-;7913:7;;-1:-1:-1;7973:3:145;7958:19;;7945:33;;7990:16;;;7987:36;;;8019:1;8016;8009:12;7987:36;;8058:60;8110:7;8099:8;8088:9;8084:24;8058:60;:::i;:::-;7064:1114;;;;-1:-1:-1;7064:1114:145;;-1:-1:-1;7064:1114:145;;;;8032:86;;-1:-1:-1;;;7064:1114:145:o;8589:523::-;8674:6;8682;8690;8698;8751:3;8739:9;8730:7;8726:23;8722:33;8719:53;;;8768:1;8765;8758:12;8719:53;8807:9;8794:23;8826:30;8850:5;8826:30;:::i;:::-;8875:5;-1:-1:-1;8927:2:145;8912:18;;8899:32;;-1:-1:-1;8978:2:145;8963:18;;8950:32;;-1:-1:-1;9034:2:145;9019:18;;9006:32;9047:33;9006:32;9047:33;:::i;:::-;8589:523;;;;-1:-1:-1;8589:523:145;;-1:-1:-1;;8589:523:145:o;9117:117::-;9202:6;9195:5;9191:18;9184:5;9181:29;9171:57;;9224:1;9221;9214:12;9239:313;9306:6;9314;9367:2;9355:9;9346:7;9342:23;9338:32;9335:52;;;9383:1;9380;9373:12;9335:52;9422:9;9409:23;9441:30;9465:5;9441:30;:::i;:::-;9490:5;9542:2;9527:18;;;;9514:32;;-1:-1:-1;;;9239:313:145:o;9749:1569::-;9953:4;9982:2;10022;10011:9;10007:18;10052:2;10041:9;10034:21;10075:6;10110;10104:13;10141:6;10133;10126:22;10167:2;10157:12;;10200:2;10189:9;10185:18;10178:25;;10262:2;10252:6;10249:1;10245:14;10234:9;10230:30;10226:39;10300:2;10292:6;10288:15;10321:1;10342;10352:937;10368:6;10363:3;10360:15;10352:937;;;10437:22;;;-1:-1:-1;;10433:36:145;10421:49;;10493:13;;10580:9;;-1:-1:-1;;;;;10576:35:145;10561:51;;10651:11;;10645:18;10683:15;;;10676:27;;;10764:19;;10533:15;;;10796:24;;;10886:21;;;;10931:1;;10854:2;10842:15;;;10945:236;10961:8;10956:3;10953:17;10945:236;;;11042:15;;-1:-1:-1;;;;;;11038:42:145;11024:57;;11150:17;;;;10989:1;10980:11;;;;;11107:14;;;;10945:236;;;-1:-1:-1;11267:12:145;;;;11204:5;-1:-1:-1;;;11232:15:145;;;;10394:1;10385:11;10352:937;;;-1:-1:-1;11306:6:145;;9749:1569;-1:-1:-1;;;;;;;;;9749:1569:145:o;11323:477::-;11402:6;11410;11418;11471:2;11459:9;11450:7;11446:23;11442:32;11439:52;;;11487:1;11484;11477:12;11439:52;11527:9;11514:23;-1:-1:-1;;;;;11552:6:145;11549:30;11546:50;;;11592:1;11589;11582:12;11546:50;11631:58;11681:7;11672:6;11661:9;11657:22;11631:58;:::i;:::-;11708:8;;11605:84;;-1:-1:-1;11790:2:145;11775:18;;;;11762:32;;11323:477;-1:-1:-1;;;;11323:477:145:o;11805:266::-;11893:6;11888:3;11881:19;11945:6;11938:5;11931:4;11926:3;11922:14;11909:43;-1:-1:-1;11997:1:145;11972:16;;;11990:4;11968:27;;;11961:38;;;;12053:2;12032:15;;;-1:-1:-1;;12028:29:145;12019:39;;;12015:50;;11805:266::o;12076:393::-;12297:4;12289:6;12285:17;12274:9;12267:36;12339:2;12334;12323:9;12319:18;12312:30;12248:4;12359:61;12416:2;12405:9;12401:18;12393:6;12385;12359:61;:::i;:::-;12351:69;;12456:6;12451:2;12440:9;12436:18;12429:34;12076:393;;;;;;;:::o;12474:183::-;12534:4;-1:-1:-1;;;;;12559:6:145;12556:30;12553:56;;;12589:18;;:::i;:::-;-1:-1:-1;12634:1:145;12630:14;12646:4;12626:25;;12474:183::o;12662:966::-;12746:6;12777:2;12820;12808:9;12799:7;12795:23;12791:32;12788:52;;;12836:1;12833;12826:12;12788:52;12876:9;12863:23;-1:-1:-1;;;;;12901:6:145;12898:30;12895:50;;;12941:1;12938;12931:12;12895:50;12964:22;;13017:4;13009:13;;13005:27;-1:-1:-1;12995:55:145;;13046:1;13043;13036:12;12995:55;13082:2;13069:16;13105:60;13121:43;13161:2;13121:43;:::i;13105:60::-;13199:15;;;13281:1;13277:10;;;;13269:19;;13265:28;;;13230:12;;;;13305:19;;;13302:39;;;13337:1;13334;13327:12;13302:39;13361:11;;;;13381:217;13397:6;13392:3;13389:15;13381:217;;;13477:3;13464:17;13494:31;13519:5;13494:31;:::i;:::-;13538:18;;13414:12;;;;13576;;;;13381:217;;;13617:5;12662:966;-1:-1:-1;;;;;;;12662:966:145:o;13633:218::-;13780:2;13769:9;13762:21;13743:4;13800:45;13841:2;13830:9;13826:18;13818:6;13800:45;:::i;13856:1029::-;13958:6;13966;13974;14027:2;14015:9;14006:7;14002:23;13998:32;13995:52;;;14043:1;14040;14033:12;13995:52;14083:9;14070:23;-1:-1:-1;;;;;14108:6:145;14105:30;14102:50;;;14148:1;14145;14138:12;14102:50;14171:22;;14224:4;14216:13;;14212:27;-1:-1:-1;14202:55:145;;14253:1;14250;14243:12;14202:55;14289:2;14276:16;14311:4;14335:60;14351:43;14391:2;14351:43;:::i;14335:60::-;14429:15;;;14511:1;14507:10;;;;14499:19;;14495:28;;;14460:12;;;;14535:19;;;14532:39;;;14567:1;14564;14557:12;14532:39;14591:11;;;;14611:142;14627:6;14622:3;14619:15;14611:142;;;14693:17;;14681:30;;14644:12;;;;14731;;;;14611:142;;;14772:5;14809:18;;;14796:32;;-1:-1:-1;;14875:2:145;14860:18;;;14847:32;;13856:1029;-1:-1:-1;;;;;13856:1029:145:o;14890:439::-;14943:3;14981:5;14975:12;15008:6;15003:3;14996:19;15034:4;15063;15058:3;15054:14;15047:21;;15102:4;15095:5;15091:16;15125:1;15135:169;15149:6;15146:1;15143:13;15135:169;;;15210:13;;15198:26;;15244:12;;;;15279:15;;;;15171:1;15164:9;15135:169;;15334:261;15513:2;15502:9;15495:21;15476:4;15533:56;15585:2;15574:9;15570:18;15562:6;15533:56;:::i;15600:280::-;15799:2;15788:9;15781:21;15762:4;15819:55;15870:2;15859:9;15855:18;15847:6;15819:55;:::i;16367:832::-;16473:6;16481;16489;16497;16505;16558:3;16546:9;16537:7;16533:23;16529:33;16526:53;;;16575:1;16572;16565:12;16526:53;16615:9;16602:23;-1:-1:-1;;;;;16685:2:145;16677:6;16674:14;16671:34;;;16701:1;16698;16691:12;16671:34;16740:58;16790:7;16781:6;16770:9;16766:22;16740:58;:::i;:::-;16817:8;;-1:-1:-1;16714:84:145;-1:-1:-1;16905:2:145;16890:18;;16877:32;;-1:-1:-1;16921:16:145;;;16918:36;;;16950:1;16947;16940:12;16918:36;;16973:51;17016:7;17005:8;16994:9;16990:24;16973:51;:::i;:::-;16963:61;;;17071:2;17060:9;17056:18;17043:32;17033:42;;17125:2;17114:9;17110:18;17097:32;17138:31;17163:5;17138:31;:::i;:::-;17188:5;17178:15;;;16367:832;;;;;;;;:::o;17204:271::-;17287:6;17340:2;17328:9;17319:7;17315:23;17311:32;17308:52;;;17356:1;17353;17346:12;17308:52;17395:9;17382:23;17414:31;17439:5;17414:31;:::i;17662:313::-;17729:6;17737;17790:2;17778:9;17769:7;17765:23;17761:32;17758:52;;;17806:1;17803;17796:12;17758:52;17845:9;17832:23;17864:30;17888:5;17864:30;:::i;18274:146::-;-1:-1:-1;;;;;18353:5:145;18349:46;18342:5;18339:57;18329:85;;18410:1;18407;18400:12;18425:247;18484:6;18537:2;18525:9;18516:7;18512:23;18508:32;18505:52;;;18553:1;18550;18543:12;18505:52;18592:9;18579:23;18611:31;18636:5;18611:31;:::i;18677:628::-;18765:6;18773;18781;18834:2;18822:9;18813:7;18809:23;18805:32;18802:52;;;18850:1;18847;18840:12;18802:52;18890:9;18877:23;-1:-1:-1;;;;;18960:2:145;18952:6;18949:14;18946:34;;;18976:1;18973;18966:12;18946:34;19015:58;19065:7;19056:6;19045:9;19041:22;19015:58;:::i;:::-;19092:8;;-1:-1:-1;18989:84:145;-1:-1:-1;19180:2:145;19165:18;;19152:32;;-1:-1:-1;19196:16:145;;;19193:36;;;19225:1;19222;19215:12;19193:36;;19248:51;19291:7;19280:8;19269:9;19265:24;19248:51;:::i;:::-;19238:61;;;18677:628;;;;;:::o;19634:717::-;19724:6;19732;19740;19748;19801:2;19789:9;19780:7;19776:23;19772:32;19769:52;;;19817:1;19814;19807:12;19769:52;19857:9;19844:23;-1:-1:-1;;;;;19927:2:145;19919:6;19916:14;19913:34;;;19943:1;19940;19933:12;19913:34;19982:58;20032:7;20023:6;20012:9;20008:22;19982:58;:::i;:::-;20059:8;;-1:-1:-1;19956:84:145;-1:-1:-1;20147:2:145;20132:18;;20119:32;;-1:-1:-1;20163:16:145;;;20160:36;;;20192:1;20189;20182:12;20160:36;;20231:60;20283:7;20272:8;20261:9;20257:24;20231:60;:::i;:::-;19634:717;;;;-1:-1:-1;20310:8:145;-1:-1:-1;;;;19634:717:145:o;20356:418::-;20561:2;20550:9;20543:21;20524:4;20581:45;20622:2;20611:9;20607:18;20599:6;20581:45;:::i;:::-;-1:-1:-1;;;;;20700:15:145;;;20695:2;20680:18;;20673:43;20752:15;;;;20747:2;20732:18;;;20725:43;20573:53;20356:418;-1:-1:-1;;20356:418:145:o;20779:127::-;20840:10;20835:3;20831:20;20828:1;20821:31;20871:4;20868:1;20861:15;20895:4;20892:1;20885:15;20911:1164;21127:4;21156:2;21196;21185:9;21181:18;21226:2;21215:9;21208:21;21249:6;21284;21278:13;21315:6;21307;21300:22;21341:2;21331:12;;21374:2;21363:9;21359:18;21352:25;;21436:2;21426:6;21423:1;21419:14;21408:9;21404:30;21400:39;21474:2;21466:6;21462:15;21495:1;21505:541;21519:6;21516:1;21513:13;21505:541;;;21584:22;;;-1:-1:-1;;21580:36:145;21568:49;;21640:13;;21712:9;;21723:10;21708:26;21693:42;;21782:11;;;21776:18;21796:6;21772:31;21755:15;;;21748:56;21843:11;;21837:18;21676:4;21875:15;;;21868:27;;;21918:48;21950:15;;;21837:18;21918:48;:::i;:::-;22024:12;;;;21908:58;-1:-1:-1;;;21989:15:145;;;;21541:1;21534:9;21505:541;;22374:164;22450:13;;22499;;22492:21;22482:32;;22472:60;;22528:1;22525;22518:12;22543:330;22619:6;22627;22680:2;22668:9;22659:7;22655:23;22651:32;22648:52;;;22696:1;22693;22686:12;22648:52;22728:9;22722:16;22747:31;22772:5;22747:31;:::i;:::-;22797:5;-1:-1:-1;22821:46:145;22863:2;22848:18;;22821:46;:::i;22878:175::-;22956:13;;-1:-1:-1;;;;;22998:30:145;;22988:41;;22978:69;;23043:1;23040;23033:12;23058:134;23135:13;;23157:29;23135:13;23157:29;:::i;23197:460::-;23280:6;23288;23296;23349:2;23337:9;23328:7;23324:23;23320:32;23317:52;;;23365:1;23362;23355:12;23317:52;23388:39;23417:9;23388:39;:::i;:::-;23378:49;;23470:2;23459:9;23455:18;23449:25;23483:29;23506:5;23483:29;:::i;:::-;23581:2;23566:18;;23560:25;23531:5;;-1:-1:-1;23594:31:145;23560:25;23594:31;:::i;24064:441::-;24117:5;24170:3;24163:4;24155:6;24151:17;24147:27;24137:55;;24188:1;24185;24178:12;24137:55;24217:6;24211:13;24248:48;24264:31;24292:2;24264:31;:::i;24248:48::-;24321:2;24312:7;24305:19;24367:3;24360:4;24355:2;24347:6;24343:15;24339:26;24336:35;24333:55;;;24384:1;24381;24374:12;24333:55;24397:77;24471:2;24464:4;24455:7;24451:18;24444:4;24436:6;24432:17;24397:77;:::i;:::-;24492:7;24064:441;-1:-1:-1;;;;24064:441:145:o;24510:335::-;24589:6;24642:2;24630:9;24621:7;24617:23;24613:32;24610:52;;;24658:1;24655;24648:12;24610:52;24691:9;24685:16;-1:-1:-1;;;;;24716:6:145;24713:30;24710:50;;;24756:1;24753;24746:12;24710:50;24779:60;24831:7;24822:6;24811:9;24807:22;24779:60;:::i;24850:740::-;24915:5;24968:3;24961:4;24953:6;24949:17;24945:27;24935:55;;24986:1;24983;24976:12;24935:55;25015:6;25009:13;25041:4;25065:60;25081:43;25121:2;25081:43;:::i;25065:60::-;25147:3;25171:2;25166:3;25159:15;25199:4;25194:3;25190:14;25183:21;;25256:4;25250:2;25247:1;25243:10;25235:6;25231:23;25227:34;25213:48;;25284:3;25276:6;25273:15;25270:35;;;25301:1;25298;25291:12;25270:35;25337:4;25329:6;25325:17;25351:210;25367:6;25362:3;25359:15;25351:210;;;25440:3;25434:10;25457:31;25482:5;25457:31;:::i;:::-;25501:18;;25539:12;;;;25384;;25351:210;;;-1:-1:-1;25579:5:145;24850:740;-1:-1:-1;;;;;;24850:740:145:o;25595:1116::-;25692:6;25745:2;25733:9;25724:7;25720:23;25716:32;25713:52;;;25761:1;25758;25751:12;25713:52;25794:9;25788:16;-1:-1:-1;;;;;25864:2:145;25856:6;25853:14;25850:34;;;25880:1;25877;25870:12;25850:34;25903:22;;;;25959:4;25941:16;;;25937:27;25934:47;;;25977:1;25974;25967:12;25934:47;26003:23;;:::i;:::-;26049:32;26078:2;26049:32;:::i;:::-;26042:5;26035:47;26114:40;26150:2;26146;26142:11;26114:40;:::i;:::-;26109:2;26102:5;26098:14;26091:64;26187:40;26223:2;26219;26215:11;26187:40;:::i;:::-;26182:2;26175:5;26171:14;26164:64;26260:40;26296:2;26292;26288:11;26260:40;:::i;:::-;26255:2;26248:5;26244:14;26237:64;26340:3;26336:2;26332:12;26326:19;26370:2;26360:8;26357:16;26354:36;;;26386:1;26383;26376:12;26354:36;26423:67;26482:7;26471:8;26467:2;26463:17;26423:67;:::i;:::-;26417:3;26410:5;26406:15;26399:92;;26530:3;26526:2;26522:12;26516:19;26560:2;26550:8;26547:16;26544:36;;;26576:1;26573;26566:12;26544:36;26613:67;26672:7;26661:8;26657:2;26653:17;26613:67;:::i;:::-;26607:3;26596:15;;26589:92;-1:-1:-1;26600:5:145;25595:1116;-1:-1:-1;;;;;25595:1116:145:o;26716:271::-;26899:6;26891;26886:3;26873:33;26855:3;26925:16;;26950:13;;;26925:16;26716:271;-1:-1:-1;26716:271:145:o;26992:379::-;27203:2;27192:9;27185:21;27166:4;27223:45;27264:2;27253:9;27249:18;27241:6;27223:45;:::i;:::-;27215:53;;27304:6;27299:2;27288:9;27284:18;27277:34;27359:4;27351:6;27347:17;27342:2;27331:9;27327:18;27320:45;26992:379;;;;;;:::o;27376:127::-;27437:10;27432:3;27428:20;27425:1;27418:31;27468:4;27465:1;27458:15;27492:4;27489:1;27482:15;27508:125;27573:9;;;27594:10;;;27591:36;;;27607:18;;:::i;27638:474::-;27879:10;27867:23;;27849:42;;-1:-1:-1;;;;;27927:32:145;;27922:2;27907:18;;27900:60;27996:3;27991:2;27976:18;;27969:31;;;-1:-1:-1;;28017:46:145;;28043:19;;28035:6;28017:46;:::i;:::-;28009:54;;28099:6;28094:2;28083:9;28079:18;28072:34;27638:474;;;;;;;:::o;28117:184::-;28187:6;28240:2;28228:9;28219:7;28215:23;28211:32;28208:52;;;28256:1;28253;28246:12;28208:52;-1:-1:-1;28279:16:145;;28117:184;-1:-1:-1;28117:184:145:o;28952:369::-;29038:6;29046;29054;29107:2;29095:9;29086:7;29082:23;29078:32;29075:52;;;29123:1;29120;29113:12;29075:52;29155:9;29149:16;29174:29;29197:5;29174:29;:::i;:::-;29267:2;29252:18;;29246:25;29311:2;29296:18;;;29290:25;29222:5;;29246:25;;-1:-1:-1;29290:25:145;28952:369;-1:-1:-1;;;28952:369:145:o;29669:1453::-;29873:4;29902:2;29942;29931:9;29927:18;29972:2;29961:9;29954:21;29995:6;30030;30024:13;30061:6;30053;30046:22;30087:2;30077:12;;30120:2;30109:9;30105:18;30098:25;;30182:2;30172:6;30169:1;30165:14;30154:9;30150:30;30146:39;30220:2;30212:6;30208:15;30241:1;30251:842;30265:6;30262:1;30259:13;30251:842;;;30330:22;;;-1:-1:-1;;30326:36:145;30314:49;;30386:13;;30458:9;;30469:10;30454:26;30439:42;;30528:11;;;30522:18;-1:-1:-1;;;;;30518:44:145;30501:15;;;30494:69;30602:11;;;30596:18;30422:4;30634:15;;;30627:27;;;30422:4;30681:48;30713:15;;;30596:18;30681:48;:::i;:::-;30667:62;;;30752:4;30807:2;30803;30799:11;30793:18;30788:2;30780:6;30776:15;30769:43;;30835:4;30888:2;30884;30880:11;30874:18;30852:40;;30941:6;30933;30929:19;30924:2;30916:6;30912:15;30905:44;;30972:41;31006:6;30990:14;30972:41;:::i;:::-;31071:12;;;;30962:51;-1:-1:-1;;;31036:15:145;;;;30287:1;30280:9;30251:842;;31127:289;31302:2;31291:9;31284:21;31265:4;31322:45;31363:2;31352:9;31348:18;31340:6;31322:45;:::i;:::-;31314:53;;31403:6;31398:2;31387:9;31383:18;31376:34;31127:289;;;;;:::o;31421:244::-;31578:2;31567:9;31560:21;31541:4;31598:61;31655:2;31644:9;31640:18;31632:6;31624;31598:61;:::i;31670:148::-;31758:4;31737:12;;;31751;;;31733:31;;31776:13;;31773:39;;;31792:18;;:::i;32307:251::-;32377:6;32430:2;32418:9;32409:7;32405:23;32401:32;32398:52;;;32446:1;32443;32436:12;32398:52;32478:9;32472:16;32497:31;32522:5;32497:31;:::i;32771:127::-;32832:10;32827:3;32823:20;32820:1;32813:31;32863:4;32860:1;32853:15;32887:4;32884:1;32877:15;33371:827;33703:4;33749:1;33745;33740:3;33736:11;33732:19;33790:2;33782:6;33778:15;33767:9;33760:34;33842:2;33834:6;33830:15;33825:2;33814:9;33810:18;33803:43;33882:3;33877:2;33866:9;33862:18;33855:31;33909:57;33961:3;33950:9;33946:19;33938:6;33909:57;:::i;:::-;34014:2;34006:6;34002:15;33997:2;33986:9;33982:18;33975:43;34067:2;34059:6;34055:15;34049:3;34038:9;34034:19;34027:44;34120:9;34112:6;34108:22;34102:3;34091:9;34087:19;34080:51;34148:44;34185:6;34177;34148:44;:::i;:::-;34140:52;33371:827;-1:-1:-1;;;;;;;;;;33371:827:145:o;34203:952::-;34638:4;34630:6;34626:17;34615:9;34608:36;34680:3;34675:2;34664:9;34660:18;34653:31;34589:4;34707:57;34759:3;34748:9;34744:19;34736:6;34707:57;:::i;:::-;-1:-1:-1;;;;;34800:32:145;;34795:2;34780:18;;34773:60;34869:22;;;34864:2;34849:18;;34842:50;34915:44;34873:6;34944;34915:44;:::i;:::-;34901:58;;-1:-1:-1;;;;;35000:6:145;34996:31;34990:3;34979:9;34975:19;34968:60;35077:9;35069:6;35065:22;35059:3;35048:9;35044:19;35037:51;35105:44;35142:6;35134;35105:44;:::i;:::-;35097:52;34203:952;-1:-1:-1;;;;;;;;;34203:952:145:o;35849:2036::-;36075:4;36104:2;36144;36133:9;36129:18;36174:2;36163:9;36156:21;36197:6;36232;36226:13;36263:6;36255;36248:22;36289:2;36279:12;;36322:2;36311:9;36307:18;36300:25;;36384:2;36374:6;36371:1;36367:14;36356:9;36352:30;36348:39;36422:2;36414:6;36410:15;36443:1;36453:1403;36467:6;36464:1;36461:13;36453:1403;;;-1:-1:-1;;36562:22:145;;;36558:31;;36546:44;;36613:13;;36658:9;;36669:10;36654:26;36639:42;;36720:11;;36714:18;36752:15;;;36745:27;;;36813:19;;-1:-1:-1;;;;;36809:44:145;36792:15;;;36785:69;36895:21;;;36889:28;36965:4;37006:23;;;36940:2;36989:15;;;36982:48;;;;37071:21;;;37065:28;37156:23;;37116:3;37139:15;;;37132:48;;;;37221:21;;;37215:28;37306:23;;;37266:3;37289:15;;;37282:48;;;;37371:21;;;37365:28;37416:4;37440:15;;;37433:27;37365:28;37487:73;37555:3;37543:16;;37365:28;37487:73;:::i;:::-;37601:21;;37595:28;37665:19;;;37661:28;;37655:3;37643:16;;37636:54;37595:28;37473:87;-1:-1:-1;37713:63:145;37473:87;37595:28;37713:63;:::i;:::-;37834:12;;;;37703:73;-1:-1:-1;;;37799:15:145;;;;-1:-1:-1;36489:1:145;36482:9;36453:1403;;37890:1026;38155:2;38207:21;;;38277:13;;38180:18;;;38299:22;;;38126:4;;38155:2;38340;;38358:18;;;;38399:15;;;38126:4;38442:448;38456:6;38453:1;38450:13;38442:448;;;38515:13;;38590:9;;38551:10;38586:18;;;38574:31;;38644:11;;;38638:18;38694:19;;38690:28;;;38676:12;;;38669:50;38763:21;;38757:28;-1:-1:-1;;;;;38753:54:145;38739:12;;;38732:76;38837:4;38828:14;;;;38865:15;;;;38804:1;38471:9;38442:448;;;-1:-1:-1;38907:3:145;;37890:1026;-1:-1:-1;;;;;;;37890:1026:145:o;38921:251::-;38991:6;39044:2;39032:9;39023:7;39019:23;39015:32;39012:52;;;39060:1;39057;39050:12;39012:52;39092:9;39086:16;39111:31;39136:5;39111:31;:::i;39177:274::-;-1:-1:-1;;;;;39315:10:145;;;39327;;;39311:27;39358:20;;;;39249:34;39397:24;;;39387:58;;39425:18;;:::i;:::-;39387:58;;39177:274;;;;:::o;39456:1093::-;39685:2;39737:21;;;39807:13;;39710:18;;;39829:22;;;39656:4;;39685:2;39870;;39888:18;;;;39929:15;;;39656:4;39972:551;39986:6;39983:1;39980:13;39972:551;;;40045:13;;40120:9;;40081:10;40116:18;;;40104:31;;40174:11;;;40168:18;40224:19;;-1:-1:-1;;;;;40220:60:145;40206:12;;;40199:82;40325:21;;;40319:28;-1:-1:-1;;;;;40315:53:145;40301:12;;;40294:75;40413:21;;40407:28;40403:37;40398:2;40389:12;;40382:59;40470:4;40461:14;;;;40498:15;;;;40008:1;40001:9;39972:551;;40554:175;40591:3;40635:4;40628:5;40624:16;40664:4;40655:7;40652:17;40649:43;;40672:18;;:::i;:::-;40721:1;40708:15;;40554:175;-1:-1:-1;;40554:175:145:o;40734:1355::-;40969:2;41021:21;;;41091:13;;40994:18;;;41113:22;;;40940:4;;40969:2;41154;;41172:18;;;;41213:15;;;40940:4;41256:807;41270:6;41267:1;41264:13;41256:807;;;41329:13;;41371:9;;41382:10;41367:26;41355:39;;41433:11;;;41427:18;-1:-1:-1;;;;;41520:21:145;;;41506:12;;;41499:43;41586:11;;;41580:18;41576:27;41562:12;;;41555:49;41627:4;41675:11;;;41669:18;41689:6;41665:31;41651:12;;;41644:53;41720:4;41765:11;;;41759:18;-1:-1:-1;;;;;41868:23:145;;;41854:12;;;41847:45;;;;41915:4;41963:11;;;41957:18;41953:27;41939:12;;;41932:49;42010:4;42001:14;;;;42038:15;;;;41292:1;41285:9;41256:807;;42094:1033;42329:2;42381:21;;;42451:13;;42354:18;;;42473:22;;;42300:4;;42329:2;42514;;42532:18;;;;42573:15;;;42300:4;42616:485;42630:6;42627:1;42624:13;42616:485;;;42689:13;;42731:9;;42742:10;42727:26;42715:39;;42798:11;;;42792:18;-1:-1:-1;;;;;42788:43:145;42774:12;;;42767:65;42876:11;;;42870:18;42890:6;42866:31;42852:12;;;42845:53;42921:4;42969:11;;;42963:18;-1:-1:-1;;;;;42959:59:145;42945:12;;;42938:81;43048:4;43039:14;;;;43076:15;;;;42652:1;42645:9;42616:485;;44849:151;44939:4;44932:12;;;44918;;;44914:31;;44957:14;;44954:40;;;44974:18;;:::i;45005:380::-;45084:1;45080:12;;;;45127;;;45148:61;;45202:4;45194:6;45190:17;45180:27;;45148:61;45255:2;45247:6;45244:14;45224:18;45221:38;45218:161;;45301:10;45296:3;45292:20;45289:1;45282:31;45336:4;45333:1;45326:15;45364:4;45361:1;45354:15;45218:161;;45005:380;;;:::o;45390:760::-;-1:-1:-1;;;;;45741:15:145;;;45723:34;;45793:15;;45788:2;45773:18;;45766:43;45840:2;45825:18;;45818:34;;;45900:6;45888:19;;45883:2;45868:18;;45861:47;45945:3;45939;45924:19;;45917:32;;;45666:4;;45972:62;;46014:19;;46006:6;45998;45972:62;:::i;:::-;46083:9;46075:6;46071:22;46065:3;46054:9;46050:19;46043:51;46111:33;46137:6;46129;46111:33;:::i;47274:136::-;47313:3;47341:5;47331:39;;47350:18;;:::i;:::-;-1:-1:-1;;;47386:18:145;;47274:136::o;47974:379::-;48167:2;48156:9;48149:21;48130:4;48193:45;48234:2;48223:9;48219:18;48211:6;48193:45;:::i;:::-;48286:9;48278:6;48274:22;48269:2;48258:9;48254:18;48247:50;48314:33;48340:6;48332;48314:33;:::i;48358:549::-;48607:3;48596:9;48589:22;48570:4;48634:46;48675:3;48664:9;48660:19;48652:6;48634:46;:::i;:::-;48728:9;48720:6;48716:22;48711:2;48700:9;48696:18;48689:50;48756:33;48782:6;48774;48756:33;:::i;:::-;48820:2;48805:18;;48798:34;;;;-1:-1:-1;;;;;;;48868:32:145;;;;48863:2;48848:18;;;48841:60;48748:41;48358:549;-1:-1:-1;;48358:549:145:o;49198:249::-;49267:6;49320:2;49308:9;49299:7;49295:23;49291:32;49288:52;;;49336:1;49333;49326:12;49288:52;49368:9;49362:16;49387:30;49411:5;49387:30;:::i;50072:128::-;50139:9;;;50160:11;;;50157:37;;;50174:18;;:::i;50548:764::-;50873:10;50865:6;50861:23;50850:9;50843:42;50824:4;50921:1;50917;50912:3;50908:11;50904:19;50971:2;50963:6;50959:15;50954:2;50943:9;50939:18;50932:43;51011:3;51006:2;50995:9;50991:18;50984:31;51038:46;51079:3;51068:9;51064:19;51056:6;51038:46;:::i;:::-;51120:6;51115:2;51104:9;51100:18;51093:34;51176:2;51168:6;51164:15;51158:3;51147:9;51143:19;51136:44;51229:9;51221:6;51217:22;51211:3;51200:9;51196:19;51189:51;51257:49;51299:6;51291;51283;51257:49;:::i;:::-;51249:57;50548:764;-1:-1:-1;;;;;;;;;;;50548:764:145:o;51596:384::-;-1:-1:-1;;;;;;51781:33:145;;51769:46;;51838:13;;51751:3;;51860:74;51838:13;51923:1;51914:11;;51907:4;51895:17;;51860:74;:::i;:::-;51954:16;;;;51972:1;51950:24;;51596:384;-1:-1:-1;;;51596:384:145:o;51985:287::-;52114:3;52152:6;52146:13;52168:66;52227:6;52222:3;52215:4;52207:6;52203:17;52168:66;:::i;:::-;52250:16;;;;;51985:287;-1:-1:-1;;51985:287:145:o;52277:202::-;52344:6;52397:2;52385:9;52376:7;52372:23;52368:32;52365:52;;;52413:1;52410;52403:12;52365:52;52436:37;52463:9;52436:37;:::i;52484:872::-;52838:10;52829:6;52823:13;52819:30;52808:9;52801:49;52906:4;52898:6;52894:17;52888:24;52881:4;52870:9;52866:20;52859:54;-1:-1:-1;;;;;52973:4:145;52965:6;52961:17;52955:24;52951:49;52944:4;52933:9;52929:20;52922:79;53066:1;53062;53057:3;53053:11;53049:19;53041:6;53037:32;53032:2;53021:9;53017:18;53010:60;53107:6;53101:3;53090:9;53086:19;53079:35;53151:3;53145;53134:9;53130:19;53123:32;52782:4;53178:62;53235:3;53224:9;53220:19;53212:6;53204;53178:62;:::i;:::-;53289:9;53281:6;53277:22;53271:3;53260:9;53256:19;53249:51;53317:33;53343:6;53335;53317:33;:::i;53486:542::-;53587:2;53582:3;53579:11;53576:446;;;53623:1;53647:5;53644:1;53637:16;53691:4;53688:1;53678:18;53761:2;53749:10;53745:19;53742:1;53738:27;53732:4;53728:38;53797:4;53785:10;53782:20;53779:47;;;-1:-1:-1;53820:4:145;53779:47;53875:2;53870:3;53866:12;53863:1;53859:20;53853:4;53849:31;53839:41;;53930:82;53948:2;53941:5;53938:13;53930:82;;;53993:17;;;53974:1;53963:13;53930:82;;;53934:3;;;53486:542;;;:::o;54204:1202::-;-1:-1:-1;;;;;54321:3:145;54318:27;54315:53;;;54348:18;;:::i;:::-;54377:93;54466:3;54426:38;54458:4;54452:11;54426:38;:::i;:::-;54420:4;54377:93;:::i;:::-;54496:1;54521:2;54516:3;54513:11;54538:1;54533:615;;;;55192:1;55209:3;55206:93;;;-1:-1:-1;55265:19:145;;;55252:33;55206:93;-1:-1:-1;;54161:1:145;54157:11;;;54153:24;54149:29;54139:40;54185:1;54181:11;;;54136:57;55312:78;;54506:894;;54533:615;53433:1;53426:14;;;53470:4;53457:18;;-1:-1:-1;;54569:17:145;;;54669:9;54691:229;54705:7;54702:1;54699:14;54691:229;;;54794:19;;;54781:33;54766:49;;54901:4;54886:20;;;;54854:1;54842:14;;;;54721:12;54691:229;;;54695:3;54948;54939:7;54936:16;54933:159;;;55072:1;55068:6;55062:3;55056;55053:1;55049:11;55045:21;55041:34;55037:39;55024:9;55019:3;55015:19;55002:33;54998:79;54990:6;54983:95;54933:159;;;55135:1;55129:3;55126:1;55122:11;55118:19;55112:4;55105:33;54506:894;;54204:1202;;;:::o;55411:135::-;55450:3;55471:17;;;55468:43;;55491:18;;:::i;:::-;-1:-1:-1;55538:1:145;55527:13;;55411:135::o;55960:331::-;56065:9;56076;56118:8;56106:10;56103:24;56100:44;;;56140:1;56137;56130:12;56100:44;56169:6;56159:8;56156:20;56153:40;;;56189:1;56186;56179:12;56153:40;-1:-1:-1;;56215:23:145;;;56260:25;;;;;-1:-1:-1;55960:331:145:o;56296:323::-;-1:-1:-1;;;;;;56416:19:145;;56492:11;;;;56523:1;56515:10;;56512:101;;;56584:1;56580:11;;;;56577:1;56573:19;56569:28;;;56561:37;56557:46;;;;56296:323;-1:-1:-1;;56296:323:145:o;56624:492::-;56799:3;56837:6;56831:13;56853:66;56912:6;56907:3;56900:4;56892:6;56888:17;56853:66;:::i;:::-;56982:13;;56941:16;;;;57004:70;56982:13;56941:16;57051:4;57039:17;;57004:70;:::i;:::-;57090:20;;56624:492;-1:-1:-1;;;;56624:492:145:o;57531:517::-;57618:6;57626;57634;57687:2;57675:9;57666:7;57662:23;57658:32;57655:52;;;57703:1;57700;57693:12;57655:52;57735:9;57729:16;57754:30;57778:5;57754:30;:::i;:::-;57853:2;57838:18;;57832:25;57803:5;;-1:-1:-1;57866:33:145;57832:25;57866:33;:::i;:::-;57970:2;57955:18;;57949:25;57918:7;;-1:-1:-1;57983:33:145;57949:25;57983:33;:::i;58053:787::-;-1:-1:-1;;;;;58438:32:145;;58420:51;;58507:3;58502:2;58487:18;;58480:31;;;-1:-1:-1;;58534:57:145;;58571:19;;58563:6;58534:57;:::i;:::-;58639:9;58631:6;58627:22;58622:2;58611:9;58607:18;58600:50;58673:44;58710:6;58702;58673:44;:::i;:::-;58753:22;;;58748:2;58733:18;;;58726:50;;;;-1:-1:-1;;58800:1:145;58785:17;;58831:2;58819:15;;58053:787;-1:-1:-1;;;58053:787:145:o;60485:312::-;60564:6;60572;60625:2;60613:9;60604:7;60600:23;60596:32;60593:52;;;60641:1;60638;60631:12;60593:52;60673:9;60667:16;60692:31;60717:5;60692:31;:::i;:::-;60787:2;60772:18;;;;60766:25;60742:5;;60766:25;;-1:-1:-1;;;60485:312:145:o;60802:255::-;60922:19;;60961:2;60953:11;;60950:101;;;-1:-1:-1;;61022:2:145;61018:12;;;61015:1;61011:20;61007:33;60996:45;60802:255;;;;:::o;61472:385::-;61551:6;61559;61612:2;61600:9;61591:7;61587:23;61583:32;61580:52;;;61628:1;61625;61618:12;61580:52;61660:9;61654:16;61679:31;61704:5;61679:31;:::i;:::-;61779:2;61764:18;;61758:25;61729:5;;-1:-1:-1;61792:33:145;61758:25;61792:33;:::i;61862:331::-;-1:-1:-1;;;;;;61982:19:145;;62066:11;;;;62097:1;62089:10;;62086:101;;;62158:1;62154:11;;;;62151:1;62147:19;62143:28;;;62135:37;62131:46;;;;61862:331;-1:-1:-1;;61862:331:145:o;63417:168::-;63484:6;63510:10;;;63522;;;63506:27;;63545:11;;;63542:37;;;63559:18;;:::i;63590:790::-;63839:3;63877:6;63871:13;63893:66;63952:6;63947:3;63940:4;63932:6;63928:17;63893:66;:::i;:::-;-1:-1:-1;;;;;;64020:3:145;64056:16;;;64052:25;;63981:16;;;64038:40;;;-1:-1:-1;;;;;;64135:3:145;64113:16;;;64109:38;64105:1;64094:13;;64087:61;64183:16;;;64179:25;64175:1;64164:13;;64157:48;64230:13;;64252:78;64230:13;64317:1;64306:13;;64299:4;64287:17;;64252:78;:::i;:::-;64350:20;64372:1;64346:28;;63590:790;-1:-1:-1;;;;;;;63590:790:145:o;64385:558::-;64482:6;64490;64543:2;64531:9;64522:7;64518:23;64514:32;64511:52;;;64559:1;64556;64549:12;64511:52;64592:9;64586:16;-1:-1:-1;;;;;64662:2:145;64654:6;64651:14;64648:34;;;64678:1;64675;64668:12;64648:34;64701:60;64753:7;64744:6;64733:9;64729:22;64701:60;:::i;:::-;64691:70;;64807:2;64796:9;64792:18;64786:25;64770:41;;64836:2;64826:8;64823:16;64820:36;;;64852:1;64849;64842:12;64820:36;;64875:62;64929:7;64918:8;64907:9;64903:24;64875:62;:::i;:::-;64865:72;;;64385:558;;;;;:::o;65242:520::-;65337:6;65345;65353;65406:2;65394:9;65385:7;65381:23;65377:32;65374:52;;;65422:1;65419;65412:12;65374:52;65454:9;65448:16;65473:29;65496:5;65473:29;:::i;:::-;65570:2;65555:18;;65549:25;65521:5;;-1:-1:-1;;;;;;65586:30:145;;65583:50;;;65629:1;65626;65619:12;65583:50;65652:60;65704:7;65695:6;65684:9;65680:22;65652:60;:::i;:::-;65642:70;;;65752:2;65741:9;65737:18;65731:25;65721:35;;65242:520;;;;;:::o;66117:318::-;-1:-1:-1;;;;;;66237:19:145;;66308:11;;;;66339:1;66331:10;;66328:101;;;66400:1;66396:11;;;;66393:1;66389:19;66385:28;;;66377:37;66373:46;;;;66117:318;-1:-1:-1;;66117:318:145:o;66440:345::-;-1:-1:-1;;;;;;66561:19:145;;66656:11;;;;66687:2;66679:11;;66676:103;;;66749:2;66745:12;;;;66742:1;66738:20;66734:29;;;66726:38;66722:47;;;;66440:345;-1:-1:-1;;66440:345:145:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","TREASURY_GAS_CAP()":"baead19c","TREASURY_GAS_FOR_FEE_CAP()":"b1dcf5c8","assertGuid(bytes,bytes32)":"997cff1b","decodeLzComposeOption(bytes)":"518e8ab0","decodeLzReceiveOption(bytes)":"f93e1d61","decodeNativeDropOption(bytes)":"b954fdf6","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","executorValueCap()":"2113ce62","failed()":"ba414fa6","getNextInflightPacket(uint16,bytes32)":"7982cf42","hasPendingPackets(uint16,bytes32)":"5ea0fefe","lzCompose(bytes,bytes,bytes32,address)":"a29c8984","lzCompose(uint32,address,bytes,bytes32,address,bytes)":"3bbd6a94","lzReceive(bytes,bytes)":"ec53eaa0","nextExecutorOption(bytes,uint256)":"6e1775e3","registerEndpoint(address)":"ae6ce400","schedulePacket(bytes,bytes)":"faed6c58","setExecutorValueCap(uint128)":"defd9da6","setUp()":"0a9254e4","setUpEndpoints(uint8,uint8)":"1cc46525","setupOApps(bytes,uint8,uint8)":"2a35d250","sliceUintArray(uint256[],uint256,uint256)":"7c8bd543","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","test_one()":"450eea2e","validatePacket(bytes)":"12cc947f","verifyPackets(uint32,address)":"090852b6","verifyPackets(uint32,bytes32)":"b752b72a","verifyPackets(uint32,bytes32,uint256,address)":"5e7baa42","wireOApps(address[])":"703ca254"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReceiveOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidNativeDropOption\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"optionType\",\"type\":\"uint16\"}],\"name\":\"InvalidOptionType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueFull\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_GAS_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_GAS_FOR_FEE_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"}],\"name\":\"assertGuid\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzComposeOption\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzReceiveOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeNativeDropOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executorValueCap\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"getNextInflightPacket\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"packetBytes\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"hasPendingPackets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_composerMsg\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_composer\",\"type\":\"address\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_cursor\",\"type\":\"uint256\"}],\"name\":\"nextExecutorOption\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"optionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"option\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract EndpointV2Mock\",\"name\":\"endpoint\",\"type\":\"address\"}],\"name\":\"registerEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"schedulePacket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_valueCap\",\"type\":\"uint128\"}],\"name\":\"setExecutorValueCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_endpointNum\",\"type\":\"uint8\"},{\"internalType\":\"enum TestHelperOz5.LibraryType\",\"name\":\"_libraryType\",\"type\":\"uint8\"}],\"name\":\"setUpEndpoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_oappCreationCode\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"_startEid\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"_oappNum\",\"type\":\"uint8\"}],\"name\":\"setupOApps\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"oapps\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"array\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"sliceUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_one\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"}],\"name\":\"validatePacket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_packetAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_composer\",\"type\":\"address\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"oapps\",\"type\":\"address[]\"}],\"name\":\"wireOApps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"QueueEmpty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}],\"QueueFull()\":[{\"details\":\"A push operation couldn't be completed due to the queue being full.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{\"schedulePacket(bytes,bytes)\":{\"details\":\"Adds the packet to the front of the queue and stores its options for later retrieval.\",\"params\":{\"_options\":\"The options associated with the packet, used during delivery.\",\"_packetBytes\":\"The packet data to be scheduled.\"}},\"setExecutorValueCap(uint128)\":{\"details\":\"set executorValueCap if more than 0.1 ether is necessarythis must be called prior to setUpEndpoints() if the value is to be used\",\"params\":{\"_valueCap\":\"amount executor can pass as msg.value to lzReceive()\"}},\"setUp()\":{\"details\":\"Initializes test environment setup, to be overridden by specific tests.\"},\"setUpEndpoints(uint8,uint8)\":{\"params\":{\"_endpointNum\":\"The number of endpoints to create.\",\"_libraryType\":\"The type of message library to use (UltraLightNode or SimpleMessageLib).\"}},\"setupOApps(bytes,uint8,uint8)\":{\"params\":{\"_oappCreationCode\":\"The bytecode for creating OApp contracts.\",\"_oappNum\":\"The number of OApps to set up.\",\"_startEid\":\"The starting endpoint ID for OApp setup.\"},\"returns\":{\"oapps\":\"An array of addresses for the deployed OApps.\"}},\"verifyPackets(uint32,address)\":{\"details\":\"verify packets to destination chain's OApp address.\",\"params\":{\"_dstAddress\":\"The destination address.\",\"_dstEid\":\"The destination endpoint ID.\"}},\"verifyPackets(uint32,bytes32)\":{\"details\":\"Calls an overloaded version of verifyPackets with default values for packet amount and composer address.\",\"params\":{\"_dstAddress\":\"The destination address in bytes32 format.\",\"_dstEid\":\"The destination chain's endpoint ID.\"}},\"verifyPackets(uint32,bytes32,uint256,address)\":{\"details\":\"dst UA receive/execute packetswill NOT work calling this directly with composer IF the composed payload is different from the lzReceive msg payload\"},\"wireOApps(address[])\":{\"details\":\"Sets each OApp as a peer to every other OApp in the provided array, except itself.\",\"params\":{\"oapps\":\"An array of addresses representing the deployed OApp instances.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"schedulePacket(bytes,bytes)\":{\"notice\":\"Schedules a packet for delivery, storing it in the packets queue.\"},\"setUpEndpoints(uint8,uint8)\":{\"notice\":\"Sets up endpoints for testing.\"},\"setupOApps(bytes,uint8,uint8)\":{\"notice\":\"Sets up mock OApp contracts for testing.\"},\"verifyPackets(uint32,bytes32)\":{\"notice\":\"Verifies and processes packets destined for a specific chain and user address.\"},\"wireOApps(address[])\":{\"notice\":\"Configures the peers between multiple OApp instances.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/onft/onft1155/ONFT1155Performance.t.sol\":\"ONFT1155Performance\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft1155/ONFT1155.sol\":{\"keccak256\":\"0x90993d068e4fdf0e42fb16897673d1119a4e4f955f6565d58776b3951c26c409\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8aaead606e653567b774d93c21154525eaf185d9d17aacb8a06b4d40bddf2def\",\"dweb:/ipfs/QmNwFARa25t14W7bWZrpgCbmexz49cxErkrBU6Au5xLyo4\"]},\"contracts/onft1155/ONFT1155Core.sol\":{\"keccak256\":\"0xa3507a5d977920a65aa04b55ade0b304eaa581be2950b43a6da4e4db97b911cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13da03b54747d237b69b8197d080c1e7a73f0bca76a5d1e0c596608b6ebbe5e7\",\"dweb:/ipfs/QmUPceh23yLaq1vTVAH4CMEGwSaD1R3WZQjiY4vQbzPa7g\"]},\"contracts/onft1155/interfaces/IONFT1155.sol\":{\"keccak256\":\"0xffd1af688b9bfc983dd5832e3b9313e97c840651a1035cfd49de3733f70345e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81a5c37318692f7413ae2c7da568494e6b1431dc7fe1b93c287ce777ac489fe0\",\"dweb:/ipfs/Qmf5iqY84xyooJezLkmtedrEEjME4kF3jC4KLURmag4Gse\"]},\"contracts/onft1155/libs/ONFT1155MsgCodec.sol\":{\"keccak256\":\"0x9c5c02dd90d94526f347440d3d853e13612024305704b95664f7adeff63ede04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66f15af7feeb78d45c41cf52497edfdf7919e89748cd501707303e81c90bc2c1\",\"dweb:/ipfs/QmcEcpcEb192Etv8hJkEdbcBaWMBJh91FsTdYTjsgiCVJi\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol\":{\"keccak256\":\"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2\",\"dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol\":{\"keccak256\":\"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4\",\"dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol\":{\"keccak256\":\"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497\",\"dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":{\"keccak256\":\"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f\",\"dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol\":{\"keccak256\":\"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032\",\"dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":{\"keccak256\":\"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5\",\"dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":{\"keccak256\":\"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89\",\"dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":{\"keccak256\":\"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79\",\"dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol\":{\"keccak256\":\"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2\",\"dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9\",\"dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":{\"keccak256\":\"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55\",\"dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol\":{\"keccak256\":\"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc\",\"dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":{\"keccak256\":\"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850\",\"dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol\":{\"keccak256\":\"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691\",\"dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":{\"keccak256\":\"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241\",\"dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":{\"keccak256\":\"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c\",\"dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":{\"keccak256\":\"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a\",\"dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":{\"keccak256\":\"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54\",\"dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol\":{\"keccak256\":\"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda\",\"dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol\":{\"keccak256\":\"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2\",\"dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol\":{\"keccak256\":\"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11\",\"dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol\":{\"keccak256\":\"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677\",\"dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol\":{\"keccak256\":\"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590\",\"dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol\":{\"keccak256\":\"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045\",\"dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol\":{\"keccak256\":\"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13\",\"dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol\":{\"keccak256\":\"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29\",\"dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol\":{\"keccak256\":\"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f\",\"dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol\":{\"keccak256\":\"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec\",\"dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol\":{\"keccak256\":\"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4\",\"dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol\":{\"keccak256\":\"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574\",\"dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol\":{\"keccak256\":\"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991\",\"dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol\":{\"keccak256\":\"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1\",\"dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e\",\"dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8\",\"dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]},\"test/onft/ONFTBaseTestHelper.sol\":{\"keccak256\":\"0xc391362caf12a23d771d1dd8fa5e072ae7cff39266393f7deeae6de502f5dfb8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2567c9a0dd3e4f035dacb37e784ea5b55faa5fc0a42415e060355de3a969edd6\",\"dweb:/ipfs/QmWfsj1mFmeyMq99s63We4pUsL6jRa6wB9VQmVE1FCNCGN\"]},\"test/onft/onft1155/ONFT1155Performance.t.sol\":{\"keccak256\":\"0x29ba0628b5be8cda793c431b4da0e0095061ea06a104aeea0a4aacf2055b525d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://cf2dae6e87a5450918ca2fb4b8dae74456bfc54d3418a14eed6ccd5eba0fd95a\",\"dweb:/ipfs/QmTvu2zttiYmN3UbAeYGd2Z6aVDHZwjHF13xw4tT6HLUfA\"]},\"test/onft/onft1155/mocks/ONFT1155Mock.sol\":{\"keccak256\":\"0x4a0ad1922f24d37b6c54c723ace70a1cc747076b4b6b66fb1614be5a5fe2509a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8107647d3d981c9067aef972eec2214842a8b2ab322b7a559f3b892a878d8647\",\"dweb:/ipfs/QmbuoAAZTJf7xyQUDm8tTFvpBpYxoubXF5QirETyDdopQ7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Executor_InvalidLzComposeOption"},{"inputs":[],"type":"error","name":"Executor_InvalidLzReceiveOption"},{"inputs":[],"type":"error","name":"Executor_InvalidNativeDropOption"},{"inputs":[{"internalType":"uint16","name":"optionType","type":"uint16"}],"type":"error","name":"InvalidOptionType"},{"inputs":[],"type":"error","name":"QueueEmpty"},{"inputs":[],"type":"error","name":"QueueFull"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_GAS_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_GAS_FOR_FEE_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"packetBytes","type":"bytes"},{"internalType":"bytes32","name":"guid","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertGuid"},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzComposeOption","outputs":[{"internalType":"uint16","name":"index","type":"uint16"},{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzReceiveOption","outputs":[{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeNativeDropOption","outputs":[{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes32","name":"receiver","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"executorValueCap","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getNextInflightPacket","outputs":[{"internalType":"bytes","name":"packetBytes","type":"bytes"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"view","type":"function","name":"hasPendingPackets","outputs":[{"internalType":"bool","name":"flag","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes","name":"_composerMsg","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"address","name":"_composer","type":"address"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"uint256","name":"_cursor","type":"uint256"}],"stateMutability":"pure","type":"function","name":"nextExecutorOption","outputs":[{"internalType":"uint8","name":"optionType","type":"uint8"},{"internalType":"bytes","name":"option","type":"bytes"},{"internalType":"uint256","name":"cursor","type":"uint256"}]},{"inputs":[{"internalType":"contract EndpointV2Mock","name":"endpoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerEndpoint"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"schedulePacket"},{"inputs":[{"internalType":"uint128","name":"_valueCap","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setExecutorValueCap"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint8","name":"_endpointNum","type":"uint8"},{"internalType":"enum TestHelperOz5.LibraryType","name":"_libraryType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setUpEndpoints"},{"inputs":[{"internalType":"bytes","name":"_oappCreationCode","type":"bytes"},{"internalType":"uint8","name":"_startEid","type":"uint8"},{"internalType":"uint8","name":"_oappNum","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setupOApps","outputs":[{"internalType":"address[]","name":"oapps","type":"address[]"}]},{"inputs":[{"internalType":"uint256[]","name":"array","type":"uint256[]"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"pure","type":"function","name":"sliceUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_one"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"validatePacket"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_dstAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"},{"internalType":"uint256","name":"_packetAmount","type":"uint256"},{"internalType":"address","name":"_composer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"address[]","name":"oapps","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"wireOApps"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"schedulePacket(bytes,bytes)":{"details":"Adds the packet to the front of the queue and stores its options for later retrieval.","params":{"_options":"The options associated with the packet, used during delivery.","_packetBytes":"The packet data to be scheduled."}},"setExecutorValueCap(uint128)":{"details":"set executorValueCap if more than 0.1 ether is necessarythis must be called prior to setUpEndpoints() if the value is to be used","params":{"_valueCap":"amount executor can pass as msg.value to lzReceive()"}},"setUp()":{"details":"Initializes test environment setup, to be overridden by specific tests."},"setUpEndpoints(uint8,uint8)":{"params":{"_endpointNum":"The number of endpoints to create.","_libraryType":"The type of message library to use (UltraLightNode or SimpleMessageLib)."}},"setupOApps(bytes,uint8,uint8)":{"params":{"_oappCreationCode":"The bytecode for creating OApp contracts.","_oappNum":"The number of OApps to set up.","_startEid":"The starting endpoint ID for OApp setup."},"returns":{"oapps":"An array of addresses for the deployed OApps."}},"verifyPackets(uint32,address)":{"details":"verify packets to destination chain's OApp address.","params":{"_dstAddress":"The destination address.","_dstEid":"The destination endpoint ID."}},"verifyPackets(uint32,bytes32)":{"details":"Calls an overloaded version of verifyPackets with default values for packet amount and composer address.","params":{"_dstAddress":"The destination address in bytes32 format.","_dstEid":"The destination chain's endpoint ID."}},"verifyPackets(uint32,bytes32,uint256,address)":{"details":"dst UA receive/execute packetswill NOT work calling this directly with composer IF the composed payload is different from the lzReceive msg payload"},"wireOApps(address[])":{"details":"Sets each OApp as a peer to every other OApp in the provided array, except itself.","params":{"oapps":"An array of addresses representing the deployed OApp instances."}}},"version":1},"userdoc":{"kind":"user","methods":{"schedulePacket(bytes,bytes)":{"notice":"Schedules a packet for delivery, storing it in the packets queue."},"setUpEndpoints(uint8,uint8)":{"notice":"Sets up endpoints for testing."},"setupOApps(bytes,uint8,uint8)":{"notice":"Sets up mock OApp contracts for testing."},"verifyPackets(uint32,bytes32)":{"notice":"Verifies and processes packets destined for a specific chain and user address."},"wireOApps(address[])":{"notice":"Configures the peers between multiple OApp instances."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/onft/onft1155/ONFT1155Performance.t.sol":"ONFT1155Performance"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft1155/ONFT1155.sol":{"keccak256":"0x90993d068e4fdf0e42fb16897673d1119a4e4f955f6565d58776b3951c26c409","urls":["bzz-raw://8aaead606e653567b774d93c21154525eaf185d9d17aacb8a06b4d40bddf2def","dweb:/ipfs/QmNwFARa25t14W7bWZrpgCbmexz49cxErkrBU6Au5xLyo4"],"license":"MIT"},"contracts/onft1155/ONFT1155Core.sol":{"keccak256":"0xa3507a5d977920a65aa04b55ade0b304eaa581be2950b43a6da4e4db97b911cf","urls":["bzz-raw://13da03b54747d237b69b8197d080c1e7a73f0bca76a5d1e0c596608b6ebbe5e7","dweb:/ipfs/QmUPceh23yLaq1vTVAH4CMEGwSaD1R3WZQjiY4vQbzPa7g"],"license":"MIT"},"contracts/onft1155/interfaces/IONFT1155.sol":{"keccak256":"0xffd1af688b9bfc983dd5832e3b9313e97c840651a1035cfd49de3733f70345e9","urls":["bzz-raw://81a5c37318692f7413ae2c7da568494e6b1431dc7fe1b93c287ce777ac489fe0","dweb:/ipfs/Qmf5iqY84xyooJezLkmtedrEEjME4kF3jC4KLURmag4Gse"],"license":"MIT"},"contracts/onft1155/libs/ONFT1155MsgCodec.sol":{"keccak256":"0x9c5c02dd90d94526f347440d3d853e13612024305704b95664f7adeff63ede04","urls":["bzz-raw://66f15af7feeb78d45c41cf52497edfdf7919e89748cd501707303e81c90bc2c1","dweb:/ipfs/QmcEcpcEb192Etv8hJkEdbcBaWMBJh91FsTdYTjsgiCVJi"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol":{"keccak256":"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9","urls":["bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2","dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol":{"keccak256":"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1","urls":["bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4","dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol":{"keccak256":"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e","urls":["bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497","dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":{"keccak256":"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a","urls":["bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f","dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol":{"keccak256":"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3","urls":["bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032","dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":{"keccak256":"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345","urls":["bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5","dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":{"keccak256":"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d","urls":["bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89","dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":{"keccak256":"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44","urls":["bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79","dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol":{"keccak256":"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5","urls":["bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2","dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f","urls":["bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9","dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":{"keccak256":"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73","urls":["bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55","dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol":{"keccak256":"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91","urls":["bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc","dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":{"keccak256":"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27","urls":["bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850","dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol":{"keccak256":"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f","urls":["bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691","dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol":{"keccak256":"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a","urls":["bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241","dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol":{"keccak256":"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73","urls":["bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c","dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol":{"keccak256":"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1","urls":["bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a","dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol":{"keccak256":"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420","urls":["bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54","dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":{"keccak256":"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5","urls":["bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b","dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":{"keccak256":"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9","urls":["bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f","dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol":{"keccak256":"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22","urls":["bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda","dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa"],"license":"BUSL-1.1"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol":{"keccak256":"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095","urls":["bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2","dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol":{"keccak256":"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95","urls":["bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11","dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol":{"keccak256":"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef","urls":["bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677","dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol":{"keccak256":"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada","urls":["bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590","dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol":{"keccak256":"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff","urls":["bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045","dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol":{"keccak256":"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21","urls":["bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13","dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol":{"keccak256":"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16","urls":["bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29","dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol":{"keccak256":"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830","urls":["bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f","dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol":{"keccak256":"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44","urls":["bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec","dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol":{"keccak256":"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121","urls":["bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4","dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol":{"keccak256":"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348","urls":["bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574","dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol":{"keccak256":"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9","urls":["bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991","dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol":{"keccak256":"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97","urls":["bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1","dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol":{"keccak256":"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70","urls":["bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e","dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"keccak256":"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde","urls":["bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026","dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"keccak256":"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce","urls":["bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182","dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3","urls":["bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23","dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"keccak256":"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68","urls":["bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522","dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Arrays.sol":{"keccak256":"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1","urls":["bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5","dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"keccak256":"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67","urls":["bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8","dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"},"test/onft/ONFTBaseTestHelper.sol":{"keccak256":"0xc391362caf12a23d771d1dd8fa5e072ae7cff39266393f7deeae6de502f5dfb8","urls":["bzz-raw://2567c9a0dd3e4f035dacb37e784ea5b55faa5fc0a42415e060355de3a969edd6","dweb:/ipfs/QmWfsj1mFmeyMq99s63We4pUsL6jRa6wB9VQmVE1FCNCGN"],"license":"UNLICENSED"},"test/onft/onft1155/ONFT1155Performance.t.sol":{"keccak256":"0x29ba0628b5be8cda793c431b4da0e0095061ea06a104aeea0a4aacf2055b525d","urls":["bzz-raw://cf2dae6e87a5450918ca2fb4b8dae74456bfc54d3418a14eed6ccd5eba0fd95a","dweb:/ipfs/QmTvu2zttiYmN3UbAeYGd2Z6aVDHZwjHF13xw4tT6HLUfA"],"license":"UNLICENSED"},"test/onft/onft1155/mocks/ONFT1155Mock.sol":{"keccak256":"0x4a0ad1922f24d37b6c54c723ace70a1cc747076b4b6b66fb1614be5a5fe2509a","urls":["bzz-raw://8107647d3d981c9067aef972eec2214842a8b2ab322b7a559f3b892a878d8647","dweb:/ipfs/QmbuoAAZTJf7xyQUDm8tTFvpBpYxoubXF5QirETyDdopQ7"],"license":"UNLICENSED"}},"version":1},"id":138} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT721.sol/ONFT721.json b/packages/onft-evm/out/ONFT721.sol/ONFT721.json deleted file mode 100644 index e95c77398..000000000 --- a/packages/onft-evm/out/ONFT721.sol/ONFT721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","name()":"06fdde03","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setApprovalForAll(address,bool)":"a22cb465","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","token()":"fc0c546a","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ONFT721 is an ERC-721 token that extends the functionality of the ONFT721Core contract.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"In the case of ONFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"constructor\":{\"details\":\"Constructor for the ONFT721 contract.\",\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_lzEndpoint\":\"The LayerZero endpoint address.\",\"_name\":\"The name of the ONFT.\",\"_symbol\":\"The symbol of the ONFT.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"ONFT721 Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the underlying ERC721 implementation (ie. this contract).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onft721/ONFT721.sol\":\"ONFT721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft721/ONFT721.sol\":{\"keccak256\":\"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4\",\"dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu\"]},\"contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"In the case of ONFT where the contract IS the token, approval is NOT required.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"constructor":{"details":"Constructor for the ONFT721 contract.","params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_lzEndpoint":"The LayerZero endpoint address.","_name":"The name of the ONFT.","_symbol":"The symbol of the ONFT."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"name()":{"details":"See {IERC721Metadata-name}."},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the ONFT721 contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the underlying ERC721 implementation (ie. this contract)."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onft721/ONFT721.sol":"ONFT721"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft721/ONFT721.sol":{"keccak256":"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04","urls":["bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4","dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu"],"license":"MIT"},"contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":5} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT721.t.sol/ONFT721Test.json b/packages/onft-evm/out/ONFT721.t.sol/ONFT721Test.json deleted file mode 100644 index 7c6176ada..000000000 --- a/packages/onft-evm/out/ONFT721.t.sol/ONFT721Test.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_FOR_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_decodeONFTComposeMsgCodec","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"composeFrom","type":"bytes32","internalType":"bytes32"},{"name":"composeMsg","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"_decodeONFTMsgCodec","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"isComposed","type":"bool","internalType":"bool"},{"name":"sendTo","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"composeMsg","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"assertGuid","inputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"},{"name":"guid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"decodeLzComposeOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"index","type":"uint16","internalType":"uint16"},{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeLzReceiveOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeNativeDropOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"receiver","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"executorValueCap","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextInflightPacket","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"hasPendingPackets","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"flag","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_from","type":"address","internalType":"address"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_to","type":"address","internalType":"address"},{"name":"_composerMsg","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzCompose","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_composer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceive","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextExecutorOption","inputs":[{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_cursor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"optionType","type":"uint8","internalType":"uint8"},{"name":"option","type":"bytes","internalType":"bytes"},{"name":"cursor","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"onfts","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"registerEndpoint","inputs":[{"name":"endpoint","type":"address","internalType":"contract EndpointV2Mock"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"schedulePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setExecutorValueCap","inputs":[{"name":"_valueCap","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUpEndpoints","inputs":[{"name":"_endpointNum","type":"uint8","internalType":"uint8"},{"name":"_libraryType","type":"uint8","internalType":"enum TestHelperOz5.LibraryType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setupOApps","inputs":[{"name":"_oappCreationCode","type":"bytes","internalType":"bytes"},{"name":"_startEid","type":"uint8","internalType":"uint8"},{"name":"_oappNum","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"sliceUintArray","inputs":[{"name":"array","type":"uint256[]","internalType":"uint256[]"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_OAppInspector_inspect","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_to","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ONFTAdapter_debitAndCredit","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ONFTComposeMsgCodec","inputs":[{"name":"_nonce","type":"uint64","internalType":"uint64"},{"name":"_srcEid","type":"uint32","internalType":"uint32"},{"name":"_composeMsg","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_approvalRequired","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_assertOptionsType3","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_prefix","type":"bytes2","internalType":"bytes2"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_buildMsgAndOptions","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_composeMsg","type":"bytes","internalType":"bytes"},{"name":"_baseGas","type":"uint128","internalType":"uint128"},{"name":"_value","type":"uint128","internalType":"uint128"},{"name":"_composeGas","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_buildMsgAndOptions_noComposition","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_useEnforcedOptions","type":"bool","internalType":"bool"},{"name":"_useExtraOptions","type":"bool","internalType":"bool"},{"name":"_lzReceiveGas","type":"uint128","internalType":"uint128"},{"name":"_lzReceiveValue","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_enforcedOptionGas","type":"uint128","internalType":"uint128"},{"name":"_enforcedOptionNativeDrop","type":"uint128","internalType":"uint128"},{"name":"_combinedOptionNativeDrop","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_combineOptions_noEnforcedOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_combinedOptionNativeDrop","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_combineOptions_noExtraOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_enforcedOptionGas","type":"uint128","internalType":"uint128"},{"name":"_enforcedOptionNativeGas","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constructor","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_credit","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_debit","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_onERC721Received","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_onftVersion","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_quoteSend_InvalidReceiver","inputs":[{"name":"_tokenToSend","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_send","inputs":[{"name":"_tokenToSend","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_sendAndCompose","inputs":[{"name":"_tokenToSend","type":"uint8","internalType":"uint8"},{"name":"_composeMsg","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_send_InvalidReceiver","inputs":[{"name":"_tokenToSend","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_setEnforcedOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_optionTypeOneGas","type":"uint128","internalType":"uint128"},{"name":"_optionTypeOneValue","type":"uint128","internalType":"uint128"},{"name":"_optionTypeTwoGas","type":"uint128","internalType":"uint128"},{"name":"_optionTypeTwoValue","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validatePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"},{"name":"_packetAmount","type":"uint256","internalType":"uint256"},{"name":"_composer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wireOApps","inputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"Executor_InvalidLzComposeOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReceiveOption","inputs":[]},{"type":"error","name":"Executor_InvalidNativeDropOption","inputs":[]},{"type":"error","name":"InvalidOptionType","inputs":[{"name":"optionType","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"QueueEmpty","inputs":[]},{"type":"error","name":"QueueFull","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080604081905260078054600160ff199182168117909255600b805490911690911790556200002e90620002a4565b604051809103906000f0801580156200004b573d6000803e3d6000fd5b50601c80546001600160a01b03929092166001600160a01b0319909216919091179055602180546001600160801b03191667016345785d8a0000179055604080518082019091526005815264616c69636560d81b6020820152620000af9062000171565b602280546001600160a01b0319166001600160a01b03929092169190911790556040805180820190915260038152623137b160e91b6020820152620000f49062000171565b602380546001600160a01b0319166001600160a01b0392909216919091179055604080518082019091526007815266636861726c696560c81b60208201526200013d9062000171565b602480546001600160a01b0319166001600160a01b03929092169190911790553480156200016a57600080fd5b506200036c565b60006200017e8262000185565b5092915050565b600080826040516020016200019b9190620002d8565b60408051808303601f190181529082905280516020909101206001625e79b760e01b03198252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa15801562000207573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022d9190620002f6565b6040516318caf8e360e31b8152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906200026b908590879060040162000328565b600060405180830381600087803b1580156200028657600080fd5b505af11580156200029b573d6000803e3d6000fd5b50505050915091565b6107f2806202c79a83390190565b60005b83811015620002cf578181015183820152602001620002b5565b50506000910152565b60008251620002ec818460208701620002b2565b9190910192915050565b6000602082840312156200030957600080fd5b81516001600160a01b03811681146200032157600080fd5b9392505050565b60018060a01b0383168152604060208201526000825180604084015262000357816060850160208701620002b2565b601f01601f1916919091016060019392505050565b6202c41d806200037d6000396000f3fe608060405260043610620003da5760003560e01c8063916a17c61162000203578063d0971b621162000117578063e91461c411620000ad578063f7e131761162000078578063f7e131761462000c35578063f93e1d611462000c5a578063fa7626d41462000ca0578063faed6c581462000cbc57600080fd5b8063e91461c41462000bbc578063e99b6b311462000be1578063ec53eaa01462000bf9578063efe2d2931462000c1057600080fd5b8063dceebec511620000ee578063dceebec51462000b19578063defd9da61462000b3e578063e20c9f711462000b7f578063e71d14a81462000b9757600080fd5b8063d0971b621462000aaa578063d203bce31462000acf578063d79741521462000af457600080fd5b8063b1dcf5c81162000199578063ba414fa61162000164578063ba414fa61462000a2d578063baead19c1462000a45578063c34f24f51462000a60578063c89a1e411462000a8557600080fd5b8063b1dcf5c81462000983578063b5508aa914620009ab578063b752b72a14620009c3578063b954fdf614620009e857600080fd5b8063a299180b11620001da578063a299180b14620008e4578063a29c89841462000909578063ac7b331a1462000920578063ae6ce400146200095e57600080fd5b8063916a17c6146200088257806398f692a8146200089a578063997cff1b14620008bf57600080fd5b80633f7286f411620002fb57806366d9a9a011620002915780637982cf42116200025c5780637982cf4214620007ce5780637c8bd543146200080257806381b84021146200083657806385226c81146200085b57600080fd5b806366d9a9a014620007265780636e0b3c90146200074d5780636e1775e31462000772578063703ca25414620007a957600080fd5b806354a3ce5a11620002d257806354a3ce5a146200066f5780635e7baa4214620006945780635ea0fefe14620006b957806360e5524d14620006ef57600080fd5b80633f7286f414620005e2578063480d285714620005fa578063518e8ab0146200061f57600080fd5b80632113ce6211620003715780632c05152c11620003485780632c05152c1462000557578063364b4dd9146200058e5780633bbd6a9414620005b35780633e5e3c2314620005ca57600080fd5b80632113ce6214620004d05780632a35d250146200050b5780632ade3880146200053057600080fd5b80630a9254e411620003b25780630a9254e4146200043e57806312cc947f14620004565780631cc46525146200047b5780631ed7831c14620004a057600080fd5b806205583d14620003e7578063090852b614620004015780630921d7b6146200042657600080fd5b36620003e257005b600080fd5b348015620003f457600080fd5b50620003ff62000ce1565b005b3480156200040e57600080fd5b50620003ff620004203660046200a572565b62000e22565b3480156200043357600080fd5b50620003ff62000e3e565b3480156200044b57600080fd5b50620003ff62000eed565b3480156200046357600080fd5b50620003ff620004753660046200a5f4565b62000f0b565b3480156200048857600080fd5b50620003ff6200049a3660046200a649565b62001805565b348015620004ad57600080fd5b50620004b862002c71565b604051620004c791906200a6c6565b60405180910390f35b348015620004dd57600080fd5b50602154620004f2906001600160801b031681565b6040516001600160801b039091168152602001620004c7565b3480156200051857600080fd5b50620004b86200052a3660046200a7d5565b62002cd5565b3480156200053d57600080fd5b506200054862002ded565b604051620004c791906200a8f2565b3480156200056457600080fd5b506200057c620005763660046200a5f4565b62002f3b565b604051620004c794939291906200a975565b3480156200059b57600080fd5b50620003ff620005ad3660046200a9ab565b62002f83565b620003ff620005c43660046200a9ea565b620031dc565b348015620005d757600080fd5b50620004b86200329c565b348015620005ef57600080fd5b50620004b8620032fe565b3480156200060757600080fd5b50620003ff620006193660046200aab5565b62003360565b3480156200062c57600080fd5b50620006446200063e3660046200a5f4565b6200353c565b6040805161ffff90941684526001600160801b039283166020850152911690820152606001620004c7565b3480156200067c57600080fd5b50620003ff6200068e3660046200aad5565b6200355a565b348015620006a157600080fd5b50620003ff620006b33660046200aaef565b62003d68565b348015620006c657600080fd5b50620006de620006d83660046200ab3e565b6200421c565b6040519015158152602001620004c7565b348015620006fc57600080fd5b50620007146200070e3660046200a5f4565b62004251565b604051620004c794939291906200ab6d565b3480156200073357600080fd5b506200073e62004282565b604051620004c791906200ab96565b3480156200075a57600080fd5b50620003ff6200076c3660046200ac65565b6200436c565b3480156200077f57600080fd5b5062000797620007913660046200acbf565b62004535565b604051620004c794939291906200ad37565b348015620007b657600080fd5b50620003ff620007c83660046200ad8d565b62004559565b348015620007db57600080fd5b50620007f3620007ed3660046200ab3e565b62004720565b604051620004c791906200ae26565b3480156200080f57600080fd5b5062000827620008213660046200ae3b565b6200480e565b604051620004c791906200aee4565b3480156200084357600080fd5b50620003ff620008553660046200aab5565b62004942565b3480156200086857600080fd5b506200087362004cf4565b604051620004c791906200af2a565b3480156200088f57600080fd5b506200073e62004dce565b348015620008a757600080fd5b50620003ff620008b93660046200aad5565b62004eb8565b348015620008cc57600080fd5b50620003ff620008de3660046200acbf565b620051f9565b348015620008f157600080fd5b50620003ff620009033660046200af3f565b62005251565b620003ff6200091a3660046200afbb565b62005583565b3480156200092d57600080fd5b50620009456200093f3660046200aad5565b62005604565b6040516001600160a01b039091168152602001620004c7565b3480156200096b57600080fd5b50620003ff6200097d3660046200b03d565b6200562f565b3480156200099057600080fd5b506200099c620186a081565b604051908152602001620004c7565b348015620009b857600080fd5b5062000873620056d0565b348015620009d057600080fd5b50620003ff620009e23660046200b05d565b620057aa565b348015620009f557600080fd5b5062000a0d62000a073660046200a5f4565b620057b9565b604080516001600160801b039093168352602083019190915201620004c7565b34801562000a3a57600080fd5b50620006de620057d4565b34801562000a5257600080fd5b506200099c64e8d4a5100081565b34801562000a6d57600080fd5b50620003ff62000a7f3660046200b08d565b62005901565b34801562000a9257600080fd5b50620003ff62000aa43660046200aab5565b62005b90565b34801562000ab757600080fd5b50620003ff62000ac93660046200aad5565b62006185565b34801562000adc57600080fd5b50620003ff62000aee3660046200b0cc565b620064a5565b34801562000b0157600080fd5b50620003ff62000b133660046200b11a565b6200671d565b34801562000b2657600080fd5b50620003ff62000b383660046200b183565b62006896565b34801562000b4b57600080fd5b50620003ff62000b5d3660046200b1d8565b602180546001600160801b0319166001600160801b0392909216919091179055565b34801562000b8c57600080fd5b50620004b862006ee6565b34801562000ba457600080fd5b50620003ff62000bb63660046200b1f8565b62006f48565b34801562000bc957600080fd5b50620003ff62000bdb3660046200b21b565b62007273565b34801562000bee57600080fd5b50620003ff62007348565b620003ff62000c0a3660046200b262565b62007683565b34801562000c1d57600080fd5b50620003ff62000c2f3660046200b2c7565b620077af565b34801562000c4257600080fd5b50620003ff62000c543660046200b33a565b62007854565b34801562000c6757600080fd5b5062000c7f62000c793660046200a5f4565b62007b42565b604080516001600160801b03938416815292909116602083015201620004c7565b34801562000cad57600080fd5b50600754620006de9060ff1681565b34801562000cc957600080fd5b50620003ff62000cdb3660046200b392565b62007b51565b602654604080516327da2e5960e21b8152905162000d5a926001600160a01b031691639f68b9649160048083019260209291908290030181865afa15801562000d2e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d5491906200b404565b62007be3565b602754604080516327da2e5960e21b8152905162000da7926001600160a01b031691639f68b9649160048083019260209291908290030181865afa15801562000d2e573d6000803e3d6000fd5b602854604080516327da2e5960e21b8152905162000e20926001600160a01b031691639f68b9649160048083019260209291908290030181865afa15801562000df4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e1a91906200b404565b62007bea565b565b62000e3a826001600160a01b03831660008062003d68565b5050565b602654604080516314e5ebbb60e31b8152815160009384936001600160a01b039091169263a72f5dd892600480830193928290030181865afa15801562000e89573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000eaf91906200b44a565b90925090506311f0c6d360e11b62000ed26001600160e01b031984168262007c51565b62000ee86001600160401b038316600162007d3a565b505050565b62000ef762007e0e565b62000f0162007e26565b62000e20620080d3565b600062000f19838362008279565b63ffffffff811660009081526020805260408120549192506001600160a01b03909116908163402f846862000f4f8787620082a0565b62000f5b8888620082b5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015263ffffffff1660248201526044016040805180830381865afa15801562000faa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fd091906200b47b565b50905060008190506000826001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001019573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200103f91906200b4bc565b50509050806001600160401b031660030362001797576000826001600160a01b0316639c33abf7620010728a8a620082b5565b6200107e8b8b620082a0565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526001600160a01b0316602482015260026044820152606401600060405180830381865afa158015620010d6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200110091908101906200b551565b90506000818060200190518101906200111a91906200b605565b608001516000815181106200113357620011336200b6ec565b6020026020010151905060006200114b8a8a620082c7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509394506200119092508d91508c9050620082d9565b604051620011a09291906200b702565b6040518091039020905060606000630223536e60e01b84846064604051602401620011ce939291906200b712565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03861663f010cb238d8b8562001224426103e86200b756565b6040518563ffffffff1660e01b81526004016200124594939291906200b76c565b602060405180830381865afa15801562001263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200128991906200b7af565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b825260016004830152602482018190529150600090819081906000805160206202c3a88339815191529063e341eaa490604401606060405180830381865afa15801562001334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200135a91906200b7c9565b6040805160208101939093528281019190915260f89290921b6001600160f81b031916606082015281516041818303018152606190910190915296506000945060019350620013a892505050565b6040519080825280602002602001820160405280156200140557816020015b6040805160a0810182526000808252602082018190526060928201839052828201526080810191909152815260200190600190039081620013c75790505b5090506040518060a001604052808d63ffffffff1681526020018a6001600160a01b03168152602001838152602001426103e86200144491906200b756565b815260200184815250816000815181106200146357620014636200b6ec565b602090810291909101015260405163b143044b60e01b81526001600160a01b0387169063b143044b906200149c9084906004016200b803565b600060405180830381600087803b158015620014b757600080fd5b505af1158015620014cc573d6000803e3d6000fd5b505050506000630894edf160e01b8686604051602401620014ef9291906200b8b5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03881663f010cb238f8d8562001545426103e86200b756565b6040518563ffffffff1660e01b81526004016200156694939291906200b76c565b602060405180830381865afa15801562001584573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015aa91906200b7af565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b825260016004830152602482018190529150600090819081906000805160206202c3a88339815191529063e341eaa490604401606060405180830381865afa15801562001655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200167b91906200b7c9565b60408051602081018490529081018290526001600160f81b031960f885901b1660608201529295509093509150606101604051602081830303815290604052985050505050506040518060a001604052808e63ffffffff1681526020018b6001600160a01b03168152602001828152602001426103e8620016fd91906200b756565b815260200185815250826000815181106200171c576200171c6200b6ec565b602090810291909101015260405163b143044b60e01b81526001600160a01b0388169063b143044b90620017559085906004016200b803565b600060405180830381600087803b1580156200177057600080fd5b505af115801562001785573d6000803e3d6000fd5b505050505050505050505050620017fc565b6040516312cc947f60e01b81526001600160a01b038416906312cc947f90620017c7908a908a906004016200b8d9565b600060405180830381600087803b158015620017e257600080fd5b505af1158015620017f7573d6000803e3d6000fd5b505050505b50505050505050565b60008260ff166001600160401b038111156200182557620018256200a6db565b6040519080825280602002602001820160405280156200184f578160200160208202803683370190505b50905060008360ff166001600160401b038111156200187257620018726200a6db565b6040519080825280602002602001820160405280156200189c578160200160208202803683370190505b50905060005b8460ff168160ff161015620019ad576000620018c08260016200b8ef565b60ff16905080838360ff1681518110620018de57620018de6200b6ec565b602002602001019063ffffffff16908163ffffffff1681525050803060405162001908906200a360565b63ffffffff90921682526001600160a01b03166020820152604001604051809103906000f08015801562001940573d6000803e3d6000fd5b50848360ff16815181106200195957620019596200b6ec565b60200260200101906001600160a01b031690816001600160a01b031681525050620019a3848360ff16815181106200199557620019956200b6ec565b60200260200101516200562f565b50600101620018a2565b5060008460ff166001600160401b03811115620019ce57620019ce6200a6db565b604051908082528060200260200182016040528015620019f8578160200160208202803683370190505b50905060008560ff166001600160401b0381111562001a1b5762001a1b6200a6db565b60405190808252806020026020018201604052801562001a45578160200160208202803683370190505b506040805160018082528183019092529192506000919060208083019080368337019050506040516001625e79b760e01b03198152600160048201529091506000805160206202c3a88339815191529063ffa1864990602401602060405180830381865afa15801562001abc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ae291906200b90b565b8160008151811062001af85762001af86200b6ec565b60200260200101906001600160a01b031690816001600160a01b03168152505060003060405162001b29906200a36e565b6001600160a01b039091168152602001604051809103906000f08015801562001b56573d6000803e3d6000fd5b50905060005b8860ff168160ff16101562002aa957600088600181111562001b825762001b826200b92b565b03620028dd576000878260ff168151811062001ba25762001ba26200b6ec565b60200260200101519050600080308364e8d4a51000620186a060405162001bc9906200a37c565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103906000f08015801562001c09573d6000803e3d6000fd5b5091508260405162001c1b906200a38a565b6001600160a01b039091168152602001604051809103906000f08015801562001c48573d6000803e3d6000fd5b509050898460ff168151811062001c635762001c636200b6ec565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0384811660048301529091169063e8964e8190602401600060405180830381600087803b15801562001cb357600080fd5b505af115801562001cc8573d6000803e3d6000fd5b50505050898460ff168151811062001ce45762001ce46200b6ec565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b15801562001d3457600080fd5b505af115801562001d49573d6000803e3d6000fd5b5050505081888560ff168151811062001d665762001d666200b6ec565b60200260200101906001600160a01b031690816001600160a01b03168152505080878560ff168151811062001d9f5762001d9f6200b6ec565b6001600160a01b039290921660209283029190910182015260408051600180825281830190925260009283928392918281019080368337019050509050308160008151811062001df35762001df36200b6ec565b6001600160a01b03929092166020928302919091018201526040805160028082526060820183526000939192909183019080368337019050509050858160008151811062001e455762001e456200b6ec565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018151811062001e7c5762001e7c6200b6ec565b60200260200101906001600160a01b031690816001600160a01b031681525050866000828b308660405162001eb1906200a398565b62001ec2969594939291906200b941565b604051809103906000f08015801562001edf573d6000803e3d6000fd5b509350600060405162001ef2906200a3a6565b604051809103906000f08015801562001f0f573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b15801562001f5857600080fd5b505af115801562001f6d573d6000803e3d6000fd5b5050505088600162001f8091906200b8ef565b828b8d60018760405162001f94906200a3b4565b62001fa5969594939291906200b99f565b604051809103906000f08015801562001fc2573d6000803e3d6000fd5b5093506000670de0b6b3a764000060405162001fde906200a3c2565b908152602001604051809103906000f08015801562002001573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b1580156200204a57600080fd5b505af11580156200205f573d6000803e3d6000fd5b505050505050505060008e60ff16905060008163ffffffff166001600160401b038111156200209257620020926200a6db565b604051908082528060200260200182016040528015620020f457816020015b6040805160c08101825260008082526020808301829052928201819052606082018190526080820181905260a08201528252600019909201910181620020b15790505b50905060008263ffffffff166001600160401b038111156200211a576200211a6200a6db565b6040519080825280602002602001820160405280156200216e57816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181620021395790505b50905060005b8363ffffffff168160ff1610156200280a578060ff168a60ff160315620027f5576000620021a48260016200b8ef565b60408051600180825281830190925260ff92909216925060009190602080830190803683370190505060408051600080825260208201909252919250508782600081518110620021f857620021f86200b6ec565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b620022326200a3d0565b8152602001906001900390816200222857905050905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff1681526020018281525082600081518110620022c057620022c06200b6ec565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038e16906329460b0b90620022f99085906004016200ba12565b600060405180830381600087803b1580156200231457600080fd5b505af115801562002329573d6000803e3d6000fd5b5060009450600193506200233c92505050565b6040519080825280602002602001820160405280156200237957816020015b620023656200a439565b8152602001906001900390816200235b5790505b5090506000604051806040016040528061271063ffffffff1681526020018c6001600160a01b0316815250905060405180604001604052808663ffffffff1681526020018281525082600081518110620023d757620023d76200b6ec565b602090810291909101015260405163c14c434960e01b81526001600160a01b038e169063c14c434990620024109085906004016200baf0565b600060405180830381600087803b1580156200242b57600080fd5b505af115801562002440573d6000803e3d6000fd5b5060009450600193506200245392505050565b6040519080825280602002602001820160405280156200249057816020015b6200247c6200a3d0565b815260200190600190039081620024725790505b50905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff16815260200182815250826000815181106200250b576200250b6200b6ec565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038d16906329460b0b90620025449085906004016200ba12565b600060405180830381600087803b1580156200255f57600080fd5b505af115801562002574573d6000803e3d6000fd5b50506040805160c08101825263ffffffff89168152611388602082018190529181019190915261271060608201526402540be40060808201526021546001600160801b031660a08201528a519094508a935060ff8916925082109050620025df57620025df6200b6ec565b602002602001018190525060405180608001604052808463ffffffff1681526020016113886001600160401b0316815260200161271061ffff1681526020016402540be4006001600160801b0316815250858560ff16815181106200264857620026486200b6ec565b602002602001018190525060008e6001600160a01b031663c18403276040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002694573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026ba91906200bb61565b60408051600180825281830190925291925060009190816020015b6200270960408051808201825260008082528251606081018452818152602081810183905293810191909152909182015290565b815260200190600190039081620026d557905050905060405180604001604052808663ffffffff16815260200160405180606001604052808560016200275091906200bb81565b6001600160801b031681526001602082018190526040909101529052815182906000906200278257620027826200b6ec565b60200260200101819052508f6001600160a01b0316633161b7f6826040518263ffffffff1660e01b8152600401620027bb91906200bbaf565b600060405180830381600087803b158015620027d657600080fd5b505af1158015620027eb573d6000803e3d6000fd5b5050505050505050505b8062002801816200bc23565b91505062002174565b50604051633d85ac3360e01b81526001600160a01b03861690633d85ac3390620028399085906004016200bc45565b600060405180830381600087803b1580156200285457600080fd5b505af115801562002869573d6000803e3d6000fd5b50506040516352d3b87160e01b81526001600160a01b03871692506352d3b87191506200289b9084906004016200bcd7565b600060405180830381600087803b158015620028b657600080fd5b505af1158015620028cb573d6000803e3d6000fd5b50505050505050505050505062002aa0565b6001886001811115620028f457620028f46200b92b565b0362002a5c57600030888360ff16815181106200291557620029156200b6ec565b60200260200101516040516200292b906200a47e565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156200295f573d6000803e3d6000fd5b509050878260ff16815181106200297a576200297a6200b6ec565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b158015620029ca57600080fd5b505af1158015620029df573d6000803e3d6000fd5b5050505080868360ff1681518110620029fc57620029fc6200b6ec565b60200260200101906001600160a01b031690816001600160a01b03168152505080858360ff168151811062002a355762002a356200b6ec565b60200260200101906001600160a01b031690816001600160a01b0316815250505062002aa0565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206c696272617279207479706560601b60448201526064015b60405180910390fd5b60010162001b5c565b5060005b8860ff168160ff16101562002c66576000878260ff168151811062002ad65762002ad66200b6ec565b6020026020010151905060005b8a60ff168160ff16101562002c5b578060ff168360ff16031562002c52576001600160a01b03821663aafea31262002b1d8360016200b8ef565b898660ff168151811062002b355762002b356200b6ec565b60200260200101516040518363ffffffff1660e01b815260040162002b7292919060ff9290921682526001600160a01b0316602082015260400190565b600060405180830381600087803b15801562002b8d57600080fd5b505af115801562002ba2573d6000803e3d6000fd5b50505050816001600160a01b031663a718531b82600162002bc491906200b8ef565b888660ff168151811062002bdc5762002bdc6200b6ec565b60209081029190910101516040516001600160e01b031960e085901b16815260ff90921660048301526001600160a01b0316602482015260006044820152606401600060405180830381600087803b15801562002c3857600080fd5b505af115801562002c4d573d6000803e3d6000fd5b505050505b60010162002ae3565b505060010162002aad565b505050505050505050565b6060601480548060200260200160405190810160405280929190818152602001828054801562002ccb57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162002cac575b5050505050905090565b60608160ff166001600160401b0381111562002cf55762002cf56200a6db565b60405190808252806020026020018201604052801562002d1f578160200160208202803683370190505b509050825b62002d3083856200b8ef565b60ff168160ff16101562002dda5760ff81166000908152602080805260408083205481516001600160a01b039091169281019290925230908201526001606082015262002d929087906080015b604051602081830303815290604052620082eb565b9050808362002da287856200bd4c565b60ff168151811062002db85762002db86200b6ec565b6001600160a01b03909216602092830291909101909101525060010162002d24565b5062002de68162004559565b9392505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101562002f3257600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562002f1a57838290600052602060002001805462002e86906200bd68565b80601f016020809104026020016040519081016040528092919081815260200182805462002eb4906200bd68565b801562002f055780601f1062002ed95761010080835404028352916020019162002f05565b820191906000526020600020905b81548152906001019060200180831162002ee757829003601f168201915b50505050508152602001906001019062002e64565b50505050815250508152602001906001019062002e11565b50505050905090565b6000806000606062002f4e86866200834a565b935062002f5c868662008370565b925062002f6a868662008382565b915062002f7886866200839f565b905092959194509250565b604051632631f2b160e11b8152600360f01b6001600160f01b03198316141560048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b15801562002fda57600080fd5b505afa15801562002fef573d6000803e3d6000fd5b506000925060019150620030009050565b6040519080825280602002602001820160405280156200304f57816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816200301f5790505b506040805160028082528183019092529192506000919060208201818036833701905050905082602082015260405180606001604052808563ffffffff168152602001600161ffff1681526020018281525082600081518110620030b757620030b76200b6ec565b60209081029190910101526040516000805160206202c3a88339815191529063f28dceb390639a6d49cd60e01b90620030f59085906024016200ae26565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e084901b90921682526200313c916004016200ae26565b600060405180830381600087803b1580156200315757600080fd5b505af11580156200316c573d6000803e3d6000fd5b5050602654604051630b98bd0760e41b81526001600160a01b03909116925063b98bd0709150620031a29085906004016200bda4565b600060405180830381600087803b158015620031bd57600080fd5b505af1158015620031d2573d6000803e3d6000fd5b5050505050505050565b63ffffffff871660009081526020805260408120546001600160a01b03169080806200320889620083ec565b925092509250836001600160a01b03166391d20fa18284908d8b8d898d8d604051806020016040528060008152506040518a63ffffffff1660e01b81526004016200325a97969594939291906200be25565b6000604051808303818589803b1580156200327457600080fd5b5088f115801562003289573d6000803e3d6000fd5b5050505050505050505050505050505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562002ccb576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162002cac575050505050905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562002ccb576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162002cac575050505050905090565b6000805160206202c3a8833981519152634c63e56261020061ffff8416108015906200339157506103008361ffff16105b6040518263ffffffff1660e01b8152600401620033b2911515815260200190565b60006040518083038186803b158015620033cb57600080fd5b505afa158015620033e0573d6000803e3d6000fd5b50505050620033ee620084e9565b6040805160c081018252600281526000602080830182905261ffff8516838501528351808201855282815260608401528351808201855282815260808401528351908101845281815260a08301528251630618f58760e51b8152631e4ec46b60e01b6004820152925191926000805160206202c3a88339815191529263c31eb0e09260248084019391929182900301818387803b1580156200348f57600080fd5b505af1158015620034a4573d6000803e3d6000fd5b505050506025600281548110620034bf57620034bf6200b6ec565b600091825260208220015460405163c6414e7b60e01b81526001600160a01b039091169163c6414e7b91620034f99185916004016200beeb565b6040805180830381865afa15801562003516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ee891906200bf63565b60008060006200354d858562008558565b9250925092509250925092565b6000805160206202c3a8833981519152634c63e5626200357e61010060026200bf82565b83101580156200359b57506200359861010060036200bf82565b83105b6040518263ffffffff1660e01b8152600401620035bc911515815260200190565b60006040518083038186803b158015620035d557600080fd5b505afa158015620035ea573d6000803e3d6000fd5b5050602480546029546040516331a9108f60e11b8152600481018790526000805160206202c3a88339815191529550634c63e56294506001600160a01b03928316939290911691636352211e9101602060405180830381865afa15801562003656573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200367c91906200b90b565b6001600160a01b0316146040518263ffffffff1660e01b8152600401620036a7911515815260200190565b60006040518083038186803b158015620036c057600080fd5b505afa158015620036d5573d6000803e3d6000fd5b5050602954602480546040516370a0823160e01b81526001600160a01b03918216600482015260039550859450620037619391909116916370a0823191015b602060405180830381865afa15801562003732573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200375891906200b7af565b61010062007d3a565b6029546028546040516370a0823160e01b81526001600160a01b039182166004820152620037f19291909116906370a08231906024015b602060405180830381865afa158015620037b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037dc91906200b7af565b620037eb61010060026200bf82565b62007d3a565b6024805460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a88339815191529163ca669fa79101600060405180830381600087803b1580156200384557600080fd5b505af11580156200385a573d6000803e3d6000fd5b505060295460285460405163095ea7b360e01b81526001600160a01b039182166004820152602481018890529116925063095ea7b39150604401600060405180830381600087803b158015620038af57600080fd5b505af1158015620038c4573d6000803e3d6000fd5b50506024805460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a8833981519152935063ca669fa7925001600060405180830381600087803b1580156200391c57600080fd5b505af115801562003931573d6000803e3d6000fd5b505060285460405163dcdfd91160e01b81526004810187905263ffffffff861660248201526001600160a01b03909116925063dcdfd9119150604401600060405180830381600087803b1580156200398857600080fd5b505af11580156200399d573d6000803e3d6000fd5b5050602954602480546040516370a0823160e01b81526001600160a01b03918216600482015262003a289550921692506370a0823191015b602060405180830381865afa158015620039f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003a1991906200b7af565b620037eb60016101006200bf9c565b6029546028546040516370a0823160e01b81526001600160a01b03918216600482015262003abe9291909116906370a0823190602401602060405180830381865afa15801562003a7c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003aa291906200b7af565b62003ab161010060026200bf82565b620037eb9060016200b756565b6029546040516331a9108f60e11b81526004810185905262003b43916001600160a01b031690636352211e90602401602060405180830381865afa15801562003b0b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b3191906200b90b565b6028546001600160a01b0316620085d6565b6024805460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a88339815191529163ca669fa79101600060405180830381600087803b15801562003b9757600080fd5b505af115801562003bac573d6000803e3d6000fd5b5050602854602354604051634dba701b60e01b81526001600160a01b0391821660048201526024810188905263ffffffff8616604482015291169250634dba701b9150606401600060405180830381600087803b15801562003c0d57600080fd5b505af115801562003c22573d6000803e3d6000fd5b50506029546023546040516370a0823160e01b81526001600160a01b03918216600482015262003ca79450911691506370a08231906024015b602060405180830381865afa15801562003c79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003c9f91906200b7af565b600162007d3a565b6029546028546040516370a0823160e01b81526001600160a01b03918216600482015262003ce39291909116906370a082319060240162003798565b6029546040516331a9108f60e11b81526004810185905262000ee8916001600160a01b031690636352211e90602401602060405180830381865afa15801562003d30573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003d5691906200b90b565b6023546001600160a01b0316620085d6565b63ffffffff841660009081526020805260409020546001600160a01b031662003dd45760405162461bcd60e51b815260206004820152601b60248201527f656e64706f696e74206e6f742079657420726567697374657265640000000000604482015260640162002a97565b63ffffffff84166000908152601d6020908152604080832086845290915281209062003e0082620086bf565b905060008460000362003e205762003e1883620086bf565b905062003e34565b84821162003e2f578162003e31565b845b90505b8015620017fc578062003e47816200bfb2565b915050600062003e5784620086dd565b6000818152601e602052604081208054929350909162003e77906200bd68565b80601f016020809104026020016040519081016040528092919081815260200182805462003ea5906200bd68565b801562003ef65780601f1062003eca5761010080835404028352916020019162003ef6565b820191906000526020600020905b81548152906001019060200180831162003ed857829003601f168201915b505060405163997cff1b60e01b8152939450309363997cff1b935062003f25925085915086906004016200b8b5565b60006040518083038186803b15801562003f3e57600080fd5b505afa15801562003f53573d6000803e3d6000fd5b50506040516312cc947f60e01b81523092506312cc947f915062003f7c9084906004016200ae26565b600060405180830381600087803b15801562003f9757600080fd5b505af115801562003fac573d6000803e3d6000fd5b5050506000838152601f6020526040812080549192509062003fce906200bd68565b80601f016020809104026020016040519081016040528092919081815260200182805462003ffc906200bd68565b80156200404d5780601f1062004021576101008083540402835291602001916200404d565b820191906000526020600020905b8154815290600101906020018083116200402f57829003601f168201915b50505050509050620040618160026200874e565b156200411d57600080620040758362008764565b604051919350915081906000906001600160a01b0383169085908381818185875af1925050503d8060008114620040c9576040519150601f19603f3d011682016040523d82523d6000602084013e620040ce565b606091505b5050905080620041185760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640162002a97565b505050505b6200412a8160016200874e565b156200418c576040516307629f5560e51b8152309063ec53eaa0906200415790859085906004016200bfcc565b600060405180830381600087803b1580156200417257600080fd5b505af115801562004187573d6000803e3d6000fd5b505050505b6001600160a01b03871615801590620041ad5750620041ad8160036200874e565b1562004213576040516328a7226160e21b8152309063a29c898490620041de908590859088908d906004016200bff5565b600060405180830381600087803b158015620041f957600080fd5b505af11580156200420e573d6000803e3d6000fd5b505050505b50505062003e34565b61ffff82166000908152601d602090815260408083208484529091528120816200424682620086bf565b119150505b92915050565b6040811160008060606200426686866200885b565b92506200427486866200886c565b915062002f7886866200888d565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101562002f325760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200435357602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620043145790505b50505050508152505081526020019060010190620042a6565b60006200438683836200437e6200889e565b9190620088c1565b60408051600180825281830190925291925060009190816020015b60408051606080820183526000808352602083015291810191909152815260200190600190039081620043a157905050905060405180606001604052808763ffffffff1681526020018661ffff16815260200183815250816000815181106200440e576200440e6200b6ec565b6020908102919091010152602654604051630b98bd0760e41b81526001600160a01b039091169063b98bd070906200444b9084906004016200bda4565b600060405180830381600087803b1580156200446657600080fd5b505af11580156200447b573d6000803e3d6000fd5b5050505060006200449185856200437e6200889e565b602654604051632f1c2cd560e21b815263ffffffff8a16600482015261ffff89166024820152606060448201526000606482018190529293506001600160a01b039091169063bc70b35490608401600060405180830381865afa158015620044fd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200452791908101906200b551565b9050620031d2818362008933565b600036600080620045488787876200893f565b935093509350935093509350935093565b805160005b8181101562000ee85760008382815181106200457e576200457e6200b6ec565b6020026020010151905060005b8381101562004715578281146200470c576000858281518110620045b357620045b36200b6ec565b602002602001015190506000816001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa158015620045fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200462491906200b90b565b6001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200468891906200c040565b9050836001600160a01b0316633400288b82620046ab856001600160a01b031690565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b158015620046f057600080fd5b505af115801562004705573d6000803e3d6000fd5b5050505050505b6001016200458b565b50506001016200455e565b61ffff82166000908152601d6020908152604080832084845290915281206060916200474c82620086bf565b11156200480757600062004760826200899b565b6000818152601e602052604090208054919250906200477f906200bd68565b80601f0160208091040260200160405190810160405280929190818152602001828054620047ad906200bd68565b8015620047fe5780601f10620047d257610100808354040283529160200191620047fe565b820191906000526020600020905b815481529060010190602001808311620047e057829003601f168201915b50505050509250505b5092915050565b60608183036200482e575060408051600081526020810190915262002de6565b8351821115620048815760405162461bcd60e51b815260206004820152601760248201527f656e6420696e646578206f7574206f6620626f756e6473000000000000000000604482015260640162002a97565b60006200488f84846200bf9c565b90506000816001600160401b03811115620048ae57620048ae6200a6db565b604051908082528060200260200182016040528015620048d8578160200160208202803683370190505b50905060005b82811015620049385786620048f482886200b756565b815181106200490757620049076200b6ec565b60200260200101518282815181106200492457620049246200b6ec565b6020908102919091010152600101620048de565b5095945050505050565b6000805160206202c3a8833981519152634c63e56261020061ffff8416108015906200497357506103008361ffff16105b6040518263ffffffff1660e01b815260040162004994911515815260200190565b60006040518083038186803b158015620049ad57600080fd5b505afa158015620049c2573d6000803e3d6000fd5b50505050620049d0620084e9565b6040805160c081018252600281526000602080830182905261ffff8516838501528351808201855282815260608401528351808201855282815260808401528351808201855282815260a08401528351808501855262030d4081529081018290526024805485516303223eab60e11b81526001600160a01b0390911660048201529451939491936000805160206202c3a8833981519152936306447d5693808401939192919082900301818387803b15801562004a8c57600080fd5b505af115801562004aa1573d6000803e3d6000fd5b50505050602860009054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004af9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b1f91906200b90b565b60285460405163095ea7b360e01b81526001600160a01b03918216600482015261ffff8616602482015291169063095ea7b390604401600060405180830381600087803b15801562004b7057600080fd5b505af115801562004b85573d6000803e3d6000fd5b5050604051630618f58760e51b8152631e4ec46b60e01b60048201526000805160206202c3a8833981519152925063c31eb0e09150602401600060405180830381600087803b15801562004bd857600080fd5b505af115801562004bed573d6000803e3d6000fd5b50505050602560028154811062004c085762004c086200b6ec565b60009182526020909120015481516040516321eb730b60e01b81526001600160a01b03909216916321eb730b919062004c4a908690869030906004016200c060565b60806040518083038185885af115801562004c69573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062004c9091906200c0a1565b506000805160206202c3c883398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562004cdf57600080fd5b505af1158015620017fc573d6000803e3d6000fd5b60606018805480602002602001604051908101604052809291908181526020016000905b8282101562002f3257838290600052602060002001805462004d3a906200bd68565b80601f016020809104026020016040519081016040528092919081815260200182805462004d68906200bd68565b801562004db95780601f1062004d8d5761010080835404028352916020019162004db9565b820191906000526020600020905b81548152906001019060200180831162004d9b57829003601f168201915b50505050508152602001906001019062004d18565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101562002f325760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562004e9f57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162004e605790505b5050505050815250508152602001906001019062004df2565b604051632631f2b160e11b815261010082101560048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b15801562004f0357600080fd5b505afa15801562004f18573d6000803e3d6000fd5b50506026546022546040516370a0823160e01b81526001600160a01b0391821660048201526001945062004f5993509116906370a082319060240162003714565b6026546040516370a0823160e01b815230600482015262004fd4916001600160a01b0316906370a08231906024015b602060405180830381865afa15801562004fa6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004fcc91906200b7af565b600062007d3a565b60225460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a88339815191529063ca669fa790602401600060405180830381600087803b1580156200502957600080fd5b505af11580156200503e573d6000803e3d6000fd5b5050602654602254604051634dba701b60e01b81526001600160a01b0391821660048201526024810187905263ffffffff8616604482015291169250634dba701b9150606401600060405180830381600087803b1580156200509f57600080fd5b505af1158015620050b4573d6000803e3d6000fd5b50506026546022546040516370a0823160e01b81526001600160a01b0391821660048201526200513f9450911691506370a0823190602401602060405180830381865afa1580156200510a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200513091906200b7af565b620037eb61010060016200b756565b6026546040516331a9108f60e11b815260048101849052620051c5916001600160a01b031690636352211e906024015b602060405180830381865afa1580156200518d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620051b391906200b90b565b6022546001600160a01b0316620085d6565b6026546040516370a0823160e01b815230600482015262000e3a916001600160a01b0316906370a082319060240162004f88565b600062005207848462008a09565b90508181146200524b5760405162461bcd60e51b815260206004820152600e60248201526d0ceead2c840dcdee840dac2e8c6d60931b604482015260640162002a97565b50505050565b6000805160206202c3a8833981519152634c63e5626001600160801b038616158015906200528757506001600160801b03868116105b80156200529d57506000846001600160801b0316115b8015620052b257506001600160801b03848116105b6040518263ffffffff1660e01b8152600401620052d3911515815260200190565b60006040518083038186803b158015620052ec57600080fd5b505afa15801562005301573d6000803e3d6000fd5b5050505060006200531785856200437e6200889e565b905060006200532b84846200437e6200889e565b6040805160028082526060820190925291925060009190816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816200534757905050905060405180606001604052808963ffffffff168152602001600161ffff1681526020018481525081600081518110620053b557620053b56200b6ec565b602002602001018190525060405180606001604052808963ffffffff168152602001600261ffff1681526020018381525081600181518110620053fc57620053fc6200b6ec565b6020908102919091010152602654604051630b98bd0760e41b81526001600160a01b039091169063b98bd07090620054399084906004016200bda4565b600060405180830381600087803b1580156200545457600080fd5b505af115801562005469573d6000803e3d6000fd5b5050602654604051635535d46160e01b815263ffffffff8c16600482015260016024820152620054f993506001600160a01b039091169150635535d46190604401600060405180830381865afa158015620054c8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620054f291908101906200b551565b8462008933565b602654604051635535d46160e01b815263ffffffff8a16600482015260026024820152620031d2916001600160a01b031690635535d46190604401600060405180830381865afa15801562005552573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200557c91908101906200b551565b8362008933565b30633bbd6a9462005595878762008279565b620055a18888620082a0565b868686620055b08c8c62008a1b565b6040518863ffffffff1660e01b8152600401620055d497969594939291906200c110565b600060405180830381600087803b158015620055ef57600080fd5b505af115801562002c66573d6000803e3d6000fd5b602581815481106200561557600080fd5b6000918252602090912001546001600160a01b0316905081565b8060206000836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562005673573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200569991906200c040565b63ffffffff168152602081019190915260400160002080546001600160a01b0319166001600160a01b039290921691909117905550565b60606017805480602002602001604051908101604052809291908181526020016000905b8282101562002f3257838290600052602060002001805462005716906200bd68565b80601f016020809104026020016040519081016040528092919081815260200182805462005744906200bd68565b8015620057955780601f10620057695761010080835404028352916020019162005795565b820191906000526020600020905b8154815290600101906020018083116200577757829003601f168201915b505050505081526020019060010190620056f4565b62000e3a828260008062003d68565b600080620057c8848462008a2d565b915091505b9250929050565b600754600090610100900460ff1615620057f75750600754610100900460ff1690565b60006000805160206202c3a88339815191523b15620058fc57604080516000805160206202c3a8833981519152602082018190526519985a5b195960d21b828401528251808303840181526060830190935260009290916200587e917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016200c172565b60408051601f19818403018152908290526200589a916200c1a5565b6000604051808303816000865af19150503d8060008114620058d9576040519150601f19603f3d011682016040523d82523d6000602084013e620058de565b606091505b5091505080806020019051810190620058f891906200b404565b9150505b919050565b8315620059125762005912620084e9565b60008362005930576040518060200160405280600081525062005940565b6200594083836200437e6200889e565b6040805160c081018252600281526022546001600160a01b039081166020808401919091528284018b90526060830185905283518082018552600080825260808501919091528451918201855280825260a084019190915260265493516338246f4d60e11b8152949550919391928392911690637048de9a90620059c99086906004016200c1c3565b600060405180830381865afa158015620059e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262005a1191908101906200c1d8565b602654604051632f1c2cd560e21b815292945090925062005aa29183916001600160a01b03169063bc70b3549062005a54906002906001908b906004016200c238565b600060405180830381865afa15801562005a72573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262005a9c91908101906200b551565b62008933565b600080600080306001600160a01b03166360e5524d876040518263ffffffff1660e01b815260040162005ad691906200ae26565b600060405180830381865afa15801562005af4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262005b1e91908101906200c263565b935093509350935062005b3384600062008a79565b60225462005b4c9084906001600160a01b031662007c51565b62005b58828e62007d3a565b62005b668151600062007d3a565b62005b81816040518060200160405280600081525062008933565b50505050505050505050505050565b6000805160206202c3a8833981519152634c63e56261020061ffff84161080159062005bc157506103008361ffff16105b6040518263ffffffff1660e01b815260040162005be2911515815260200190565b60006040518083038186803b15801562005bfb57600080fd5b505afa15801562005c10573d6000803e3d6000fd5b5050505062005c1e620084e9565b6026546022546040516370a0823160e01b81526001600160a01b03918216600482015262005c5a9291909116906370a082319060240162003714565b6027546023546040516370a0823160e01b81526001600160a01b03918216600482015262005c969291909116906370a082319060240162003714565b60285460408051637e062a3560e11b8152905162005d3a926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa15801562005ce3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005d0991906200b90b565b602480546040516370a0823160e01b81526001600160a01b0391821660048201529216916370a08231910162003714565b60285460408051637e062a3560e11b8152905162005e30926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa15801562005d87573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005dad91906200b90b565b6040516331a9108f60e11b815261ffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801562005df8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005e1e91906200b90b565b6024546001600160a01b0316620085d6565b60005b600a8160ff161015620060bc57602480546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206202c3a8833981519152916306447d569101600060405180830381600087803b15801562005e9457600080fd5b505af115801562005ea9573d6000803e3d6000fd5b50505050602860009054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562005f01573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005f2791906200b90b565b60285460405163095ea7b360e01b81526001600160a01b03918216600482015261ffff8516602482015291169063095ea7b390604401600060405180830381600087803b15801562005f7857600080fd5b505af115801562005f8d573d6000803e3d6000fd5b505050506000805160206202c3c883398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562005fdf57600080fd5b505af115801562005ff4573d6000803e3d6000fd5b505060245460225462006029935061ffff861692506003916001916001600160a01b0391821691166101008084600062008bdf565b602254602354620060679161ffff8516916001916002916001600160a01b0391821691166200605b610100856200b756565b61010060008062008bdf565b602354602454620060b39161ffff8516916002916003916001600160a01b0391821691166200609a61010060016200b756565b620060a960016101006200bf9c565b6000600162008bdf565b60010162005e33565b506026546022546040516370a0823160e01b81526001600160a01b039182166004820152620060f99291909116906370a082319060240162003714565b6027546023546040516370a0823160e01b81526001600160a01b039182166004820152620061359291909116906370a082319060240162003714565b60285460408051637e062a3560e11b8152905162006182926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa15801562005ce3573d6000803e3d6000fd5b50565b604051632631f2b160e11b8152610100821060048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b158015620061cf57600080fd5b505afa158015620061e4573d6000803e3d6000fd5b50506022546026546040516331a9108f60e11b8152600481018690526000805160206202c3a88339815191529450634c63e56293506001600160a01b039283169290911690636352211e90602401602060405180830381865afa15801562006250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200627691906200b90b565b6001600160a01b0316146040518263ffffffff1660e01b8152600401620062a1911515815260200190565b60006040518083038186803b158015620062ba57600080fd5b505afa158015620062cf573d6000803e3d6000fd5b50506026546022546040516370a0823160e01b81526001600160a01b039182166004820152600194506200631093509116906370a082319060240162003714565b6026546040516370a0823160e01b815230600482015262006344916001600160a01b0316906370a082319060240162004f88565b60225460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a88339815191529063ca669fa790602401600060405180830381600087803b1580156200639957600080fd5b505af1158015620063ae573d6000803e3d6000fd5b505060265460405163dcdfd91160e01b81526004810186905263ffffffff851660248201526001600160a01b03909116925063dcdfd9119150604401600060405180830381600087803b1580156200640557600080fd5b505af11580156200641a573d6000803e3d6000fd5b50506026546022546040516370a0823160e01b81526001600160a01b039182166004820152620064589450911691506370a0823190602401620039d5565b602654604051634f558e7960e01b815260048101849052620051c5916001600160a01b031690634f558e7990602401602060405180830381865afa15801562000d2e573d6000803e3d6000fd5b6000805160206202c3a8833981519152634c63e5626001600160801b03620064d28482168683166200b756565b6040516001600160e01b031960e085901b1681529111600482015260240160006040518083038186803b1580156200650957600080fd5b505afa1580156200651e573d6000803e3d6000fd5b5050505060006200653484846200437e6200889e565b60408051600180825281830190925291925060009190816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816200654f57905050905060405180606001604052808863ffffffff1681526020018761ffff1681526020018381525081600081518110620065bc57620065bc6200b6ec565b6020908102919091010152602654604051630b98bd0760e41b81526001600160a01b039091169063b98bd07090620065f99084906004016200bda4565b600060405180830381600087803b1580156200661457600080fd5b505af115801562006629573d6000803e3d6000fd5b50506022546000925062006656915085906001600160a01b03165b6200664e6200889e565b919062008c02565b6022549091506000906200667f9086906001600160a01b03166200664e8a8a6200437e6200889e565b602654604051632f1c2cd560e21b81529192506000916001600160a01b039091169063bc70b35490620066bb908d908d9088906004016200c238565b600060405180830381865afa158015620066d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200670391908101906200b551565b905062006711818362008933565b50505050505050505050565b8051604051632631f2b160e11b815290151560048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b1580156200676757600080fd5b505afa1580156200677c573d6000803e3d6000fd5b505050506000620067c2848462006799336001600160a01b031690565b85604051602001620067ad9291906200c2c1565b60405160208183030381529060405262008c49565b9050600080600080306001600160a01b0316632c05152c866040518263ffffffff1660e01b8152600401620067f891906200ae26565b600060405180830381865afa15801562006816573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200684091908101906200c2e9565b935093509350935062006866846001600160401b0316896001600160401b031662007d3a565b6200687e8363ffffffff168863ffffffff1662007d3a565b6200688a823362007c51565b620031d2818762008933565b8051604051632631f2b160e11b815290151560048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b158015620068e057600080fd5b505afa158015620068f5573d6000803e3d6000fd5b50506026546040516331a9108f60e11b815260ff861660048201526200693293506001600160a01b039091169150636352211e906024016200516f565b600060405162006942906200a48c565b604051809103906000f0801580156200695f573d6000803e3d6000fd5b50905060006200698d60006207a1206000620069846207a12060006200437e6200889e565b92919062008c7a565b905060006040518060c00160405280600263ffffffff168152602001620069ba856001600160a01b031690565b81526020018660ff1681526020018381526020018581526020016040518060200160405280600081525081525090506000602660009054906101000a90046001600160a01b03166001600160a01b031663c6414e7b8360006040518363ffffffff1660e01b815260040162006a319291906200beeb565b6040805180830381865afa15801562006a4e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006a7491906200bf63565b6027546040516370a0823160e01b81526001600160a01b03878116600483015292935062006aaf92909116906370a082319060240162004f88565b60225460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a88339815191529063ca669fa790602401600060405180830381600087803b15801562006b0457600080fd5b505af115801562006b19573d6000803e3d6000fd5b505060265483516040516321eb730b60e01b8152600094506001600160a01b0390921692506321eb730b9162006b58908790879030906004016200c060565b60806040518083038185885af115801562006b77573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062006b9e91906200c0a1565b60275490915062006bbb906002906001600160a01b0316620057aa565b602754815160208301516022546001600160a01b03938416938893928a9260009262006bfa9291600191168e604051602001620067ad9291906200c2c1565b604051630eef5aa560e21b81529091503090633bbd6a949062006c2d90600290899089908990899089906004016200c344565b600060405180830381600087803b15801562006c4857600080fd5b505af115801562006c5d573d6000803e3d6000fd5b50506026546022546040516370a0823160e01b81526001600160a01b03918216600482015262006c9b9450911691506370a0823190602401620039d5565b6027546040516370a0823160e01b81526001600160a01b038c8116600483015262006cd19216906370a082319060240162003c5b565b62006d418a6001600160a01b031663d5ce33896040518163ffffffff1660e01b8152600401602060405180830381865afa15801562006d14573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006d3a91906200b90b565b86620085d6565b62006db18a6001600160a01b0316630ae6d46b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562006d84573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006daa91906200b7af565b8462007c51565b62006e258a6001600160a01b031663e21f37ce6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562006df4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262006e1e91908101906200b551565b8262008933565b62006e958a6001600160a01b031663c34c08e56040518163ffffffff1660e01b8152600401602060405180830381865afa15801562006e68573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006e8e91906200b90b565b30620085d6565b62006ed88a6001600160a01b031663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa15801562006df4573d6000803e3d6000fd5b505050505050505050505050565b6060601380548060200260200160405190810160405280929190818152602001828054801562002ccb576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162002cac575050505050905090565b600262006f54620084e9565b6040805160c08101825263ffffffff83168152602080820185905281830186905282518082018452600080825260608401919091528351808301855281815260808401528351918201845280825260a083019190915260265492516338246f4d60e11b8152919290916001600160a01b0390911690637048de9a9062006fdf9085906004016200c1c3565b600060405180830381865afa15801562006ffd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200702791908101906200c1d8565b50905060405162007038906200a49a565b604051809103906000f08015801562007055573d6000803e3d6000fd5b50602a80546001600160a01b0319166001600160a01b039283169081179091556026546040516337e0d98f60e11b8152600481019290925290911690636fc1b31e90602401600060405180830381600087803b158015620070b557600080fd5b505af1158015620070ca573d6000803e3d6000fd5b5050602654604051635535d46160e01b815260026004820152600160248201526000805160206202c3a8833981519152935063f28dceb39250637b43b43960e01b9185916001600160a01b0390911690635535d46190604401600060405180830381865afa15801562007141573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200716b91908101906200b551565b6040516024016200717e9291906200bfcc565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e084901b9092168252620071c5916004016200ae26565b600060405180830381600087803b158015620071e057600080fd5b505af1158015620071f5573d6000803e3d6000fd5b50506026546040516338246f4d60e11b81526001600160a01b039091169250637048de9a91506200722b9085906004016200c1c3565b600060405180830381865afa15801562007249573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620017fc91908101906200c1d8565b6022546000906200728f9083906001600160a01b031662006644565b602254909150600090620072ae9084906001600160a01b031662006644565b602654604051632f1c2cd560e21b81529192506000916001600160a01b039091169063bc70b35490620072ea908990899088906004016200c238565b600060405180830381865afa15801562007308573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200733291908101906200b551565b905062007340818362008933565b505050505050565b60265460408051638da5cb5b60e01b8152905162007395926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801562006e68573d6000803e3d6000fd5b60275460408051638da5cb5b60e01b81529051620073e2926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801562006e68573d6000803e3d6000fd5b60285460408051638da5cb5b60e01b815290516200742f926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801562006e68573d6000803e3d6000fd5b6026546022546040516370a0823160e01b81526001600160a01b0391821660048201526200746b9291909116906370a082319060240162003714565b6027546023546040516370a0823160e01b81526001600160a01b039182166004820152620074a79291909116906370a082319060240162003714565b60285460408051637e062a3560e11b81529051620074f4926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa15801562005ce3573d6000803e3d6000fd5b60265460408051637e062a3560e11b8152905162007579926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa15801562007541573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200756791906200b90b565b6026546001600160a01b0316620085d6565b60275460408051637e062a3560e11b81529051620075fe926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa158015620075c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620075ec91906200b90b565b6027546001600160a01b0316620085d6565b60285460408051637e062a3560e11b8152905162000e20926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa1580156200764b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200767191906200b90b565b6029546001600160a01b0316620085d6565b60006020600062007695868662008279565b63ffffffff16815260208101919091526040016000908120546001600160a01b0316915080620076c58462008ccd565b9150915060006040518060600160405280620076e28989620082b5565b63ffffffff168152602001620076f9898962008dc4565b81526020016200770a898962008dd6565b6001600160401b0316905290506001600160a01b038416630c0c389e848484620077358c8c620082a0565b620077418d8d62008a09565b6200774d8e8e62008a1b565b604051806020016040528060008152506040518963ffffffff1660e01b815260040162007780969594939291906200c396565b6000604051808303818589803b1580156200779a57600080fd5b5088f115801562005b81573d6000803e3d6000fd5b602854604051630a85bd0160e11b81526000916001600160a01b03169063150b7a0290620077e89088908890889088906004016200c3fe565b6020604051808303816000875af115801562007808573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200782e91906200c433565b90506200784d6001600160e01b03198216630a85bd0160e11b62007c51565b5050505050565b604051632631f2b160e11b81526001600160801b038416151560048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b158015620078a557600080fd5b505afa158015620078ba573d6000803e3d6000fd5b5050604051632631f2b160e11b81526001600160801b038416151560048201526000805160206202c3a88339815191529250634c63e562915060240160006040518083038186803b1580156200790f57600080fd5b505afa15801562007924573d6000803e3d6000fd5b5050505060006200793a84846200437e6200889e565b855190915015620079575762007954816000848662008c7a565b90505b6040805160c081018252600281526022546001600160a01b039081166020808401919091528284018a9052606083018590526080830189905283519081018452600080825260a084019190915260265493516338246f4d60e11b81529293909283929190911690637048de9a90620079d49086906004016200c1c3565b600060405180830381865afa158015620079f2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262007a1c91908101906200c1d8565b9150915062007a2c818562008933565b600080600080306001600160a01b03166360e5524d876040518263ffffffff1660e01b815260040162007a6091906200ae26565b600060405180830381865afa15801562007a7e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262007aa891908101906200c263565b935093509350935062007ac08460008e511162008a79565b60225462007ad99084906001600160a01b031662007c51565b62007ae5828e62007d3a565b6000308d60405160200162007afc9291906200c2c1565b604051602081830303815290604052905062007b328260008f511162006e1e576040518060200160405280600081525062008933565b5050505050505050505050505050565b600080620057c8848462008de8565b600062007b5f858562008279565b9050600062007b6f868662008e4c565b63ffffffff83166000908152601d60209081526040808320848452909152812091925062007b9e888862008a09565b905062007bac828262008e5e565b6000818152601e6020526040902062007bc7888a836200c49d565b506000818152601f6020526040902062002c668688836200c49d565b6200618281155b8062006182576000805160206202c38883398151915260405162007c3f9060208082526017908201527f4572726f723a20417373657274696f6e204661696c6564000000000000000000604082015260600190565b60405180910390a16200618262008ec9565b80821462000e3a576000805160206202c38883398151915260405162007cb69060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b627974604082015264657333325d60d81b606082015260800190565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f998260405162007cef91906200c569565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f998160405162007d2891906200c5a2565b60405180910390a162000e3a62008ec9565b80821462000e3a576000805160206202c38883398151915260405162007d9c9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88260405162007dd591906200c569565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88160405162007d2891906200c5a2565b62007e1c6003600062001805565b62000e2062008fd2565b62007ebe6040518060200162007e3c906200a4a8565b601f19828203810183526040601f9092011681810182526005808252641853d3919560da1b6020838101829052845180860186529283528281019190915260016000528080527f156774b33c8bc7cb83eda4cbc43b36c7c9490ff8913c488ccd5132cfc71344ea54935162002d7d946001600160a01b0316913091016200c5cd565b602680546001600160a01b0319166001600160a01b039290921691909117905560405162007f769062007ef4602082016200a4a8565b601f19828203810183526040601f9092011681810182526005808252641893d3919560da1b6020838101829052845180860186529283528281019190915260026000528080527f2c5f9a2e204d4db70ad0f9037679e33061b4c51a386497019bee969e16be28d754935162002d7d946001600160a01b0316913091016200c5cd565b602760006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040518060400160405280600581526020016418d3d3919560da1b8152506040518060400160405280600581526020016418d3d3919560da1b81525060405162007fe6906200a4b6565b62007ff39291906200bfcc565b604051809103906000f08015801562008010573d6000803e3d6000fd5b50602980546001600160a01b0319166001600160a01b0392909216919091179055604051620080b19062008047602082016200a4c4565b601f1982820381018352601f909101166040818152602954600360005260208080527f1ae1eab41a4db68d73559dd6c8b7ac16a4bc819634768486d35edbff05543abf546001600160a01b0392831691850191909152169082015230606082015260800162002d7d565b602880546001600160a01b0319166001600160a01b0392909216919091179055565b60408051600380825260808201909252906020820160608036833750508151620081059260259250602001906200a4d2565b506026546000906001600160a01b031660258262008123816200c61b565b9350815481106200813857620081386200b6ec565b600091825260209091200180546001600160a01b0319166001600160a01b03928316179055602754166025826200816f816200c61b565b9350815481106200818457620081846200b6ec565b600091825260209091200180546001600160a01b0319166001600160a01b0392831617905560285416602582620081bb816200c61b565b935081548110620081d057620081d06200b6ec565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506200826560258054806020026020016040519081016040528092919081815260200182805480156200825a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200823b575b505050505062004559565b6200826f62009148565b62006182620091db565b60006200828b6031602d84866200c637565b62008296916200c663565b60e01c9392505050565b600062002de6620082b2848462008e4c565b90565b60006200828b600d600984866200c637565b366000620057c860518285876200c637565b366000620057c883605181876200c637565b600080836040516020016200830191906200c1a5565b60408051601f1981840301815290829052620083229185906020016200c692565b60405160208183030381529060405290508051602082016000f09150813b6200480757600080fd5b60006200835b60088284866200c637565b62008366916200c6c5565b60c01c9392505050565b60006200828b600c600884866200c637565b600062008394602c600c84866200c637565b62002de6916200c6f4565b6060620083b082602c81866200c637565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6000806000806000620084018660036200962b565b9150915081620084665760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a436f6d706f7365206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002a97565b604051630518e8ab60e41b8152309063518e8ab0906200848b9084906004016200ae26565b606060405180830381865afa158015620084a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620084cf91906200c713565b91986001600160801b039182169850911695509350505050565b60005b60038163ffffffff1611620061825760265462008513906001600160a01b0316826200976a565b6027546200852b906001600160a01b0316826200976a565b60285462008543906001600160a01b0316826200976a565b806200854f816200c75c565b915050620084ec565b60008080601284148015906200856f575060228414155b156200858e57604051638b4aa70b60e01b815260040160405180910390fd5b6200859c858560006200977a565b9250620085ac85856002620097a5565b915060228414620085bf576000620085cd565b620085cd85856012620097a5565b90509250925092565b806001600160a01b0316826001600160a01b03161462000e3a576000805160206202c3888339815191526040516200864d9060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015264726573735d60d81b606082015260800190565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f826040516200868691906200c782565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f8160405162007d2891906200c7c7565b546001600160801b03808216600160801b9092048116919091031690565b80546000906001600160801b03600160801b820481169116810362008715576040516375e52f4f60e01b815260040160405180910390fd5b600019016001600160801b039081166000818152600185016020526040812080549190558454909216600160801b909102179092555090565b60006200875c83836200962b565b509392505050565b600080600080620087778560026200962b565b9150915081620087dd5760405162461bcd60e51b815260206004820152602a60248201527f4f7074696f6e7348656c7065723a206e617469766544726f70206f7074696f6e604482015269081b9bdd08199bdd5b9960b21b606482015260840162002a97565b604051635caa7efb60e11b8152309063b954fdf690620088029084906004016200ae26565b6040805180830381865afa1580156200881f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200884591906200c7f2565b6001600160801b03909116969095509350505050565b60006200839460208284866200c637565b60006200887e6040602084866200c637565b81019062002de691906200aad5565b6060620083b082604081866200c637565b60408051600360f01b602082015281516002818303018152602290910190915290565b6060836003620088d3826000620097d0565b61ffff16146200890b57620088ea816000620097d0565b604051633a51740d60e01b815261ffff909116600482015260240162002a97565b600062008919858562009831565b90506200892986600183620098ad565b9695505050505050565b62000e3a828262009923565b600036816001840181620089558888846200977a565b6002929092019190506200896b88888462009a01565b94506001820161ffff821683016200898681838b8d6200c637565b979b909a50969850505061ffff160193505050565b6000620089bb8254600160801b81046001600160801b0390811691161490565b15620089da576040516375e52f4f60e01b815260040160405180910390fd5b5080546000196001600160801b03600160801b9092048216011660009081526001909101602052604090205490565b6000620083946071605184866200c637565b366000620057c883607181876200c637565b6000806030831462008a52576040516361d0c2c760e11b815260040160405180910390fd5b62008a6084846000620097a5565b915062008a708484601062009a29565b90509250929050565b8015158215151462000e3a576000805160206202c38883398151915260405162008adf9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6040820152616c5d60f01b606082015260800190565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838262008b32576040518060400160405280600581526020016466616c736560d81b81525062008b50565b604051806040016040528060048152602001637472756560e01b8152505b60405162008b5f91906200c823565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838162008bb2576040518060400160405280600581526020016466616c736560d81b81525062008bd0565b604051806040016040528060048152602001637472756560e01b8152505b60405162007d2891906200c862565b62002c668989898989604051806020016040528060008152508a8a8a8a62009a51565b606083600362008c14826000620097d0565b61ffff161462008c2b57620088ea816000620097d0565b600062008c3985856200a0fd565b90506200892986600283620098ad565b606083838360405160200162008c62939291906200c88d565b60405160208183030381529060405290509392505050565b606084600362008c8c826000620097d0565b61ffff161462008ca357620088ea816000620097d0565b600062008cb28686866200a127565b905062008cc287600383620098ad565b979650505050505050565b60008060008062008ce08560016200962b565b915091508162008d455760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a52656365697665206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002a97565b60405163f93e1d6160e01b8152309063f93e1d619062008d6a9084906004016200ae26565b6040805180830381865afa15801562008d87573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008dad91906200c8d9565b6001600160801b0391821697911695509350505050565b600062008394602d600d84866200c637565b60006200835b6009600184866200c637565b6000806010831480159062008dfe575060208314155b1562008e1d57604051634796aee160e01b815260040160405180910390fd5b62008e2b84846000620097a5565b91506020831462008e3e57600062008a70565b62008a7084846010620097a5565b6000620083946051603184866200c637565b81546001600160801b038082166000190191600160801b900481169082160362008e9b57604051638acb5f2760e01b815260040160405180910390fd5b6001600160801b0316600081815260018401602052604090209190915581546001600160801b031916179055565b6000805160206202c3a88339815191523b1562008fc157604080516000805160206202c3a8833981519152602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262008f5c92916020016200c172565b60408051601f198184030181529082905262008f78916200c1a5565b6000604051808303816000865af19150503d806000811462008fb7576040519150601f19603f3d011682016040523d82523d6000602084013e62008fbc565b606091505b505050505b6007805461ff001916610100179055565b60225460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea0000060248201526000805160206202c3a88339815191529063c88a5e6d90604401600060405180830381600087803b1580156200903657600080fd5b505af11580156200904b573d6000803e3d6000fd5b505060235460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea0000060248201526000805160206202c3a8833981519152925063c88a5e6d9150604401600060405180830381600087803b158015620090b357600080fd5b505af1158015620090c8573d6000803e3d6000fd5b50506024805460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea00000918101919091526000805160206202c3a8833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200913357600080fd5b505af11580156200524b573d6000803e3d6000fd5b61010060005b6200915b8260036200bf82565b81101562000e3a57602954602480546040516340c10f1960e01b81526001600160a01b039182166004820152918201849052909116906340c10f1990604401600060405180830381600087803b158015620091b557600080fd5b505af1158015620091ca573d6000803e3d6000fd5b5050600190920191506200914e9050565b6000620091f162030d4060006200437e6200889e565b905061010060005b818110156200940557602480546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206202c3a8833981519152916306447d569101600060405180830381600087803b1580156200925657600080fd5b505af11580156200926b573d6000803e3d6000fd5b50505050602860009054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620092c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620092e991906200b90b565b60285460405163095ea7b360e01b81526001600160a01b0391821660048201526024810184905291169063095ea7b390604401600060405180830381600087803b1580156200933757600080fd5b505af11580156200934c573d6000803e3d6000fd5b505050506000805160206202c3c883398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200939e57600080fd5b505af1158015620093b3573d6000803e3d6000fd5b5050602454602254620093fc93508492506003916001916001600160a01b0391821691168885620093e58a876200bf82565b620093f191906200bf9c565b886001600062009a51565b600101620091f9565b50805b620094158260026200bf82565b81101562000ee857602480546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206202c3a8833981519152916306447d569101600060405180830381600087803b1580156200947157600080fd5b505af115801562009486573d6000803e3d6000fd5b50505050602860009054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620094de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200950491906200b90b565b60285460405163095ea7b360e01b81526001600160a01b0391821660048201526024810184905291169063095ea7b390604401600060405180830381600087803b1580156200955257600080fd5b505af115801562009567573d6000803e3d6000fd5b505050506000805160206202c3c883398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620095b957600080fd5b505af1158015620095ce573d6000803e3d6000fd5b50506024546023546200962293508492506003916002916001600160a01b0391821691168885620096008a876200bf82565b6200960c91906200bf9c565b620096188a8a6200bf9c565b6001600062009a51565b60010162009408565b601c5460405163e5c5e9a360e01b815260009160609183916001600160a01b03169063e5c5e9a390620096639088906004016200ae26565b600060405180830381865afa15801562009681573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620096ab91908101906200c1d8565b50905060005b81518110156200976157604051636e1775e360e01b8152600090819081903090636e1775e390620096e990889088906004016200b8b5565b600060405180830381865afa15801562009707573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200973191908101906200c90d565b9250925092508760ff168360ff1603620097565750600195509350620057cd92505050565b9250620096b1915050565b50509250929050565b62000e3a828262030d406200a1c2565b6000600282016200978e818486886200c637565b62009799916200c96c565b60f01c95945050505050565b600060108201620097b9818486886200c637565b620097c4916200c99b565b60801c95945050505050565b6000620097df8260026200b756565b83511015620098285760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b604482015260640162002a97565b50016002015190565b60606001600160801b038216156200987b57604080516001600160801b0319608086811b8216602084015285901b1660308201520160405160208183030381529060405262002de6565b6040516001600160801b0319608085901b1660208201526030015b604051602081830303815290604052905092915050565b6060836003620098bf826000620097d0565b61ffff1614620098d657620088ea816000620097d0565b846001620098e585516200a1e1565b620098f29060016200c9ca565b86866040516020016200990a9594939291906200c9e8565b6040516020818303038152906040529150509392505050565b6200992f82826200a216565b62000e3a576000805160206202c3888339815191526040516200998f9060208082526023908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b62797460408201526265735d60e81b606082015260800190565b60405180910390a17fd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf1882604051620099c891906200c823565b60405180910390a17fd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf188160405162007d2891906200c862565b600083838381811062009a185762009a186200b6ec565b919091013560f81c95945050505050565b60006020820162009a3d818486886200c637565b62009a48916200c6f4565b95945050505050565b60006040518060c001604052808a63ffffffff16815260200162009a7b896001600160a01b031690565b81526020018c81526020018781526020016040518060200160405280600081525081526020016040518060200160405280600081525081525090506000602560018c62009ac991906200ca53565b63ffffffff168154811062009ae25762009ae26200b6ec565b600091825260208220015460405163c6414e7b60e01b81526001600160a01b039091169163c6414e7b9162009b1c9186916004016200beeb565b6040805180830381865afa15801562009b39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062009b5f91906200bf63565b60405163ca669fa760e01b81526001600160a01b038b1660048201529091506000805160206202c3a88339815191529063ca669fa790602401600060405180830381600087803b15801562009bb357600080fd5b505af115801562009bc8573d6000803e3d6000fd5b50505050602560018c62009bdd91906200ca53565b63ffffffff168154811062009bf65762009bf66200b6ec565b60009182526020909120015481516040516321eb730b60e01b81526001600160a01b03909216916321eb730b919062009c38908690869030906004016200c060565b60806040518083038185885af115801562009c57573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062009c7e91906200c0a1565b5062009cc88a620009e2602562009c976001846200ca53565b63ffffffff168154811062009cb05762009cb06200b6ec565b6000918252602090912001546001600160a01b031690565b62009e30841562009d7657602562009ce260018e6200ca53565b63ffffffff168154811062009cfb5762009cfb6200b6ec565b6000918252602091829020015460408051637e062a3560e11b815290516001600160a01b039092169263fc0c546a926004808401938290030181865afa15801562009d4a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062009d7091906200b90b565b62009db4565b602562009d8560018e6200ca53565b63ffffffff168154811062009d9e5762009d9e6200b6ec565b6000918252602090912001546001600160a01b03165b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa15801562009dfd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062009e2391906200b7af565b620037eb6001896200bf9c565b62009f98831562009ede57602562009e4a60018d6200ca53565b63ffffffff168154811062009e635762009e636200b6ec565b6000918252602091829020015460408051637e062a3560e11b815290516001600160a01b039092169263fc0c546a926004808401938290030181865afa15801562009eb2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062009ed891906200b90b565b62009f1c565b602562009eed60018d6200ca53565b63ffffffff168154811062009f065762009f066200b6ec565b6000918252602090912001546001600160a01b03165b6040516370a0823160e01b81526001600160a01b038b8116600483015291909116906370a0823190602401602060405180830381865afa15801562009f65573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062009f8b91906200b7af565b620037eb8760016200b756565b62006ed883156200a04657602562009fb260018d6200ca53565b63ffffffff168154811062009fcb5762009fcb6200b6ec565b6000918252602091829020015460408051637e062a3560e11b815290516001600160a01b039092169263fc0c546a926004808401938290030181865afa1580156200a01a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200a04091906200b90b565b6200a084565b60256200a05560018d6200ca53565b63ffffffff16815481106200a06e576200a06e6200b6ec565b6000918252602090912001546001600160a01b03165b6001600160a01b0316636352211e8e6040518263ffffffff1660e01b81526004016200a0b291815260200190565b602060405180830381865afa1580156200a0d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200a0f691906200b90b565b89620085d6565b6040516001600160801b0319608084901b1660208201526030810182905260609060500162009896565b60606001600160801b038216156200a186576040516001600160f01b031960f086901b1660208201526001600160801b0319608085811b8216602284015284901b1660328201526042016040516020818303038152906040526200a1ba565b6040516001600160f01b031960f086901b1660208201526001600160801b0319608085901b16602282015260320162008c62565b949350505050565b62000ee8838360016200a1db8560006200437e6200889e565b6200a2a3565b600061ffff8211156200a212576040516306dfcc6560e41b8152601060048201526024810183905260440162002a97565b5090565b8051825160019190036200a29a5760005b83518110156200a293578281815181106200a246576200a2466200b6ec565b602001015160f81c60f81b6001600160f81b0319168482815181106200a270576200a2706200b6ec565b01602001516001600160f81b031916146200a28a57600091505b6001016200a227565b506200424b565b50600092915050565b604080516001808252818301909252600091816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816200a2ba57905050905060405180606001604052808563ffffffff1681526020018461ffff16815260200183815250816000815181106200a327576200a3276200b6ec565b6020908102919091010152604051630b98bd0760e41b81526001600160a01b0386169063b98bd07090620055d49084906004016200bda4565b6155c1806200ca7483390190565b6114d6806201203583390190565b614ac0806201350b83390190565b6124418062017fcb83390190565b612c70806201a40c83390190565b611257806201d07c83390190565b6138e7806201e2d383390190565b610e2e8062021bba83390190565b6040518060400160405280600063ffffffff1681526020016200a4346040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b905290565b6040518060400160405280600063ffffffff1681526020016200a4346040518060400160405280600063ffffffff16815260200160006001600160a01b031681525090565b611a4480620229e883390190565b61052c806202442c83390190565b6101e9806202495883390190565b613ac68062024b4183390190565b611277806202860783390190565b612b0a806202987e83390190565b8280548282559060005260206000209081019282156200a52a579160200282015b828111156200a52a57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200a4f3565b506200a2129291505b808211156200a21257600081556001016200a533565b63ffffffff811681146200618257600080fd5b6001600160a01b03811681146200618257600080fd5b600080604083850312156200a58657600080fd5b82356200a593816200a549565b915060208301356200a5a5816200a55c565b809150509250929050565b60008083601f8401126200a5c357600080fd5b5081356001600160401b038111156200a5db57600080fd5b602083019150836020828501011115620057cd57600080fd5b600080602083850312156200a60857600080fd5b82356001600160401b038111156200a61f57600080fd5b6200a62d858286016200a5b0565b90969095509350505050565b60ff811681146200618257600080fd5b600080604083850312156200a65d57600080fd5b82356200a66a816200a639565b91506020830135600281106200a5a557600080fd5b60008151808452602080850194506020840160005b838110156200a6bb5781516001600160a01b0316875295820195908201906001016200a694565b509495945050505050565b60208152600062002de660208301846200a67f565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b03811182821017156200a716576200a7166200a6db565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200a747576200a7476200a6db565b604052919050565b60006001600160401b038211156200a76b576200a76b6200a6db565b50601f01601f191660200190565b600082601f8301126200a78b57600080fd5b81356200a7a26200a79c826200a74f565b6200a71c565b8181528460208386010111156200a7b857600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156200a7eb57600080fd5b83356001600160401b038111156200a80257600080fd5b6200a810868287016200a779565b93505060208401356200a823816200a639565b915060408401356200a835816200a639565b809150509250925092565b60005b838110156200a85d5781810151838201526020016200a843565b50506000910152565b600081518084526200a8808160208601602086016200a840565b601f01601f19169290920160200192915050565b60008282518085526020808601955060208260051b8401016020860160005b848110156200a8e557601f198684030189526200a8d28383516200a866565b988401989250908301906001016200a8b3565b5090979650505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200a96757888303603f19018552815180516001600160a01b031684528701518784018790526200a953878501826200a894565b95880195935050908601906001016200a91b565b509098975050505050505050565b6001600160401b038516815263ffffffff841660208201528260408201526080606082015260006200892960808301846200a866565b600080604083850312156200a9bf57600080fd5b82356200a9cc816200a549565b915060208301356001600160f01b0319811681146200a5a557600080fd5b600080600080600080600060c0888a0312156200aa0657600080fd5b87356200aa13816200a549565b965060208801356200aa25816200a55c565b955060408801356001600160401b03808211156200aa4257600080fd5b6200aa508b838c016200a779565b965060608a0135955060808a013591506200aa6b826200a55c565b90935060a089013590808211156200aa8257600080fd5b506200aa918a828b016200a5b0565b989b979a50959850939692959293505050565b61ffff811681146200618257600080fd5b6000602082840312156200aac857600080fd5b813562002de6816200aaa4565b6000602082840312156200aae857600080fd5b5035919050565b600080600080608085870312156200ab0657600080fd5b84356200ab13816200a549565b9350602085013592506040850135915060608501356200ab33816200a55c565b939692955090935050565b600080604083850312156200ab5257600080fd5b82356200ab5f816200aaa4565b946020939093013593505050565b84151581528360208201528260408201526080606082015260006200892960808301846200a866565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b848110156200ac4057898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156200ac2a5783516001600160e01b0319168252928b019260019290920191908b01906200abfe565b50978a019795505050918701916001016200abc0565b50919998505050505050505050565b6001600160801b03811681146200618257600080fd5b600080600080608085870312156200ac7c57600080fd5b84356200ac89816200a549565b935060208501356200ac9b816200aaa4565b925060408501356200acad816200ac4f565b915060608501356200ab33816200ac4f565b6000806000604084860312156200acd557600080fd5b83356001600160401b038111156200acec57600080fd5b6200acfa868287016200a5b0565b909790965060209590950135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60ff851681526060602082015260006200ad566060830185876200ad0e565b905082604083015295945050505050565b60006001600160401b038211156200ad83576200ad836200a6db565b5060051b60200190565b600060208083850312156200ada157600080fd5b82356001600160401b038111156200adb857600080fd5b8301601f810185136200adca57600080fd5b80356200addb6200a79c826200ad67565b81815260059190911b820183019083810190878311156200adfb57600080fd5b928401925b8284101562008cc25783356200ae16816200a55c565b825292840192908401906200ae00565b60208152600062002de660208301846200a866565b6000806000606084860312156200ae5157600080fd5b83356001600160401b038111156200ae6857600080fd5b8401601f810186136200ae7a57600080fd5b803560206200ae8d6200a79c836200ad67565b82815260059290921b830181019181810190898411156200aead57600080fd5b938201935b838510156200aecd578435825293820193908201906200aeb2565b999188013598505060409096013595945050505050565b6020808252825182820181905260009190848201906040850190845b818110156200af1e578351835292840192918401916001016200af00565b50909695505050505050565b60208152600062002de660208301846200a894565b600080600080600060a086880312156200af5857600080fd5b85356200af65816200a549565b945060208601356200af77816200ac4f565b935060408601356200af89816200ac4f565b925060608601356200af9b816200ac4f565b915060808601356200afad816200ac4f565b809150509295509295909350565b6000806000806000608086880312156200afd457600080fd5b85356001600160401b03808211156200afec57600080fd5b6200affa89838a016200a5b0565b909750955060208801359150808211156200b01457600080fd5b506200b023888289016200a779565b9350506040860135915060608601356200afad816200a55c565b6000602082840312156200b05057600080fd5b813562002de6816200a55c565b600080604083850312156200b07157600080fd5b82356200ab5f816200a549565b80151581146200618257600080fd5b600080600080600060a086880312156200b0a657600080fd5b8535945060208601356200b0ba816200b07e565b935060408601356200af89816200b07e565b600080600080600060a086880312156200b0e557600080fd5b85356200b0f2816200a549565b945060208601356200af77816200aaa4565b6001600160401b03811681146200618257600080fd5b6000806000606084860312156200b13057600080fd5b83356200b13d816200b104565b925060208401356200b14f816200a549565b915060408401356001600160401b038111156200b16b57600080fd5b6200b179868287016200a779565b9150509250925092565b600080604083850312156200b19757600080fd5b82356200b1a4816200a639565b915060208301356001600160401b038111156200b1c057600080fd5b6200b1ce858286016200a779565b9150509250929050565b6000602082840312156200b1eb57600080fd5b813562002de6816200ac4f565b600080604083850312156200b20c57600080fd5b50508035926020909101359150565b6000806000606084860312156200b23157600080fd5b83356200b23e816200a549565b925060208401356200b250816200aaa4565b915060408401356200a835816200ac4f565b6000806000604084860312156200b27857600080fd5b83356001600160401b03808211156200b29057600080fd5b6200b29e878388016200a5b0565b909550935060208601359150808211156200b2b857600080fd5b506200b179868287016200a779565b600080600080608085870312156200b2de57600080fd5b84356200b2eb816200a55c565b935060208501356200b2fd816200a55c565b92506040850135915060608501356001600160401b038111156200b32057600080fd5b6200b32e878288016200a779565b91505092959194509250565b600080600080600060a086880312156200b35357600080fd5b8535945060208601356001600160401b038111156200b37157600080fd5b6200b37f888289016200a779565b94505060408601356200af89816200ac4f565b600080600080604085870312156200b3a957600080fd5b84356001600160401b03808211156200b3c157600080fd5b6200b3cf888389016200a5b0565b909650945060208701359150808211156200b3e957600080fd5b506200b3f8878288016200a5b0565b95989497509550505050565b6000602082840312156200b41757600080fd5b815162002de6816200b07e565b80516001600160e01b031981168114620058fc57600080fd5b8051620058fc816200b104565b600080604083850312156200b45e57600080fd5b6200b469836200b424565b915060208301516200a5a5816200b104565b600080604083850312156200b48f57600080fd5b82516200b49c816200a55c565b60208401519092506200a5a5816200b07e565b8051620058fc816200a639565b6000806000606084860312156200b4d257600080fd5b83516200b4df816200b104565b60208501519093506200b4f2816200a639565b60408501519092506200a835816200a639565b600082601f8301126200b51757600080fd5b81516200b5286200a79c826200a74f565b8181528460208386010111156200b53e57600080fd5b6200a1ba8260208301602087016200a840565b6000602082840312156200b56457600080fd5b81516001600160401b038111156200b57b57600080fd5b6200a1ba848285016200b505565b600082601f8301126200b59b57600080fd5b815160206200b5ae6200a79c836200ad67565b8083825260208201915060208460051b8701019350868411156200b5d157600080fd5b602086015b848110156200b5fa5780516200b5ec816200a55c565b83529183019183016200b5d6565b509695505050505050565b6000602082840312156200b61857600080fd5b81516001600160401b03808211156200b63057600080fd5b9083019060c082860312156200b64557600080fd5b6200b64f6200a6f1565b6200b65a836200b43d565b81526200b66a602084016200b4af565b60208201526200b67d604084016200b4af565b60408201526200b690606084016200b4af565b60608201526080830151828111156200b6a857600080fd5b6200b6b6878286016200b589565b60808301525060a0830151828111156200b6cf57600080fd5b6200b6dd878286016200b589565b60a08301525095945050505050565b634e487b7160e01b600052603260045260246000fd5b8183823760009101908152919050565b6060815260006200b72760608301866200a866565b905083602083015260ff83166040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200424b576200424b6200b740565b63ffffffff851681526001600160a01b03841660208201526080604082018190526000906200b79e908301856200a866565b905082606083015295945050505050565b6000602082840312156200b7c257600080fd5b5051919050565b6000806000606084860312156200b7df57600080fd5b83516200b7ec816200a639565b602085015160409095015190969495509392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200a96757888303603f190185528151805163ffffffff168452878101516001600160a01b0316888501528681015160a0888601819052906200b876828701826200a866565b9150506060808301518187015250608080830151925085820381870152506200b8a081836200a866565b9689019694505050908601906001016200b82c565b6040815260006200b8ca60408301856200a866565b90508260208301529392505050565b6020815260006200a1ba6020830184866200ad0e565b60ff81811683821601908111156200424b576200424b6200b740565b6000602082840312156200b91e57600080fd5b815162002de6816200a55c565b634e487b7160e01b600052602160045260246000fd5b600060018060a01b038089168352808816602084015260c060408401526200b96d60c08401886200a67f565b8187166060850152818616608085015283810360a08501526200b99181866200a67f565b9a9950505050505050505050565b60ff8716815260c0602082015260006200b9bd60c08301886200a67f565b6001600160a01b038716604084015282810360608401526200b9e081876200a67f565b90506001600160401b038516608084015282810360a08401526200ba0581856200a67f565b9998505050505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200a96757603f19898403810186528251805163ffffffff16855288015188850188905280516001600160401b0316888601528089015160ff9081166060808801919091528983015182166080808901919091529083015190911660a0808801919091529082015160c080880152906200babe6101008801836200a67f565b920151868303840160e08801529190506200bada81836200a67f565b978a01979550505091870191506001016200ba3b565b602080825282518282018190526000919060409081850190868401855b828110156200bb54578151805163ffffffff9081168652908701518051909116878601528601516001600160a01b031685850152606090930192908501906001016200bb0d565b5091979650505050505050565b6000602082840312156200bb7457600080fd5b815162002de6816200ac4f565b6001600160801b038181168382160280821691908281146200bba7576200bba76200b740565b505092915050565b602080825282518282018190526000919060409081850190868401855b828110156200bb54578151805163ffffffff90811686529087015180516001600160801b031688870152808801516001600160401b031687870152860151166060850152608090930192908501906001016200bbcc565b600060ff821660ff81036200bc3c576200bc3c6200b740565b60010192915050565b602080825282518282018190526000919060409081850190868401855b828110156200bb54578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016200bc62565b602080825282518282018190526000919060409081850190868401855b828110156200bb54578151805163ffffffff168552868101516001600160401b0316878601528581015161ffff16868601526060908101516001600160801b031690850152608090930192908501906001016200bcf4565b60ff82811682821603908111156200424b576200424b6200b740565b600181811c908216806200bd7d57607f821691505b6020821081036200bd9e57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200a96757888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526200be10818601836200a866565b9689019694505050908601906001016200bdcd565b6001600160a01b038881168252871660208201526040810186905261ffff8516606082015260c0608082018190526000906200be6590830185876200ad0e565b82810360a08401526200b99181856200a866565b63ffffffff815116825260208101516020830152604081015160408301526000606082015160c060608501526200beb460c08501826200a866565b9050608083015184820360808601526200becf82826200a866565b91505060a083015184820360a086015262009a4882826200a866565b6040815260006200bf0060408301856200be79565b905082151560208301529392505050565b6000604082840312156200bf2457600080fd5b604051604081018181106001600160401b03821117156200bf49576200bf496200a6db565b604052825181526020928301519281019290925250919050565b6000604082840312156200bf7657600080fd5b62002de683836200bf11565b80820281158282048414176200424b576200424b6200b740565b818103818111156200424b576200424b6200b740565b6000816200bfc4576200bfc46200b740565b506000190190565b6040815260006200bfe160408301856200a866565b828103602084015262009a4881856200a866565b6080815260006200c00a60808301876200a866565b82810360208401526200c01e81876200a866565b604084019590955250506001600160a01b039190911660609091015292915050565b6000602082840312156200c05357600080fd5b815162002de6816200a549565b6080815260006200c07560808301866200be79565b8451602084810191909152909401516040830152506001600160a01b0391909116606090910152919050565b6000608082840312156200c0b457600080fd5b604051606081018181106001600160401b03821117156200c0d9576200c0d96200a6db565b6040528251815260208301516200c0f0816200b104565b60208201526200c10484604085016200bf11565b60408201529392505050565b63ffffffff88168152600060018060a01b03808916602084015260c060408401526200c14060c08401896200a866565b876060850152818716608085015283810360a08501526200c1638186886200ad0e565b9b9a5050505050505050505050565b6001600160e01b03198316815281516000906200c1978160048501602087016200a840565b919091016004019392505050565b600082516200c1b98184602087016200a840565b9190910192915050565b60208152600062002de660208301846200be79565b600080604083850312156200c1ec57600080fd5b82516001600160401b03808211156200c20457600080fd5b6200c212868387016200b505565b935060208501519150808211156200c22957600080fd5b506200b1ce858286016200b505565b63ffffffff8416815261ffff8316602082015260606040820152600062009a4860608301846200a866565b600080600080608085870312156200c27a57600080fd5b84516200c287816200b07e565b80945050602085015192506040850151915060608501516001600160401b038111156200c2b357600080fd5b6200b32e878288016200b505565b828152600082516200c2db8160208501602087016200a840565b919091016020019392505050565b600080600080608085870312156200c30057600080fd5b84516200c30d816200b104565b60208601519094506200c320816200a549565b6040860151606087015191945092506001600160401b038111156200c2b357600080fd5b63ffffffff87168152600060018060a01b03808816602084015260c060408401526200c37460c08401886200a866565b866060850152818616608085015283810360a08501526200b99181866200a866565b63ffffffff8751168152602087015160208201526001600160401b03604088015116604082015260018060a01b038616606082015284608082015260e060a082015260006200c3ea60e0830185876200ad0e565b82810360c08401526200ba0581856200a866565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009062008929908301846200a866565b6000602082840312156200c44657600080fd5b62002de6826200b424565b601f82111562000ee8576000816000526020600020601f850160051c810160208610156200c47c5750805b601f850160051c820191505b8181101562007340578281556001016200c488565b6001600160401b038311156200c4b7576200c4b76200a6db565b6200c4cf836200c4c883546200bd68565b836200c451565b6000601f8411600181146200c50657600085156200c4ed5750838201355b600019600387901b1c1916600186901b1783556200784d565b600083815260209020601f19861690835b828110156200c53957868501358255602094850194600190920191016200c517565b50868210156200c5575760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6040815260006200c59460408301600a8152690808080808081319599d60b21b602082015260400190565b905082602083015292915050565b6040815260006200c59460408301600a8152690808080808149a59da1d60b21b602082015260400190565b6080815260006200c5e260808301876200a866565b82810360208401526200c5f681876200a866565b6001600160a01b03958616604085015293909416606090920191909152509392505050565b6000600182016200c630576200c6306200b740565b5060010190565b600080858511156200c64857600080fd5b838611156200c65657600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156200bba75760049490940360031b84901b1690921692915050565b600083516200c6a68184602088016200a840565b8351908301906200c6bc8183602088016200a840565b01949350505050565b6001600160c01b031981358181169160088510156200bba75760089490940360031b84901b1690921692915050565b803560208310156200424b57600019602084900360031b1b1692915050565b6000806000606084860312156200c72957600080fd5b83516200c736816200aaa4565b60208501519093506200c749816200ac4f565b60408501519092506200a835816200ac4f565b600063ffffffff8083168181036200c778576200c7786200b740565b6001019392505050565b6040815260006200c7ad60408301600a8152690808080808081319599d60b21b602082015260400190565b6001600160a01b0393909316602092909201919091525090565b6040815260006200c7ad60408301600a8152690808080808149a59da1d60b21b602082015260400190565b600080604083850312156200c80657600080fd5b82516200c813816200ac4f565b6020939093015192949293505050565b6040815260006200c84e60408301600a8152690808080808081319599d60b21b602082015260400190565b82810360208401526200a1ba81856200a866565b6040815260006200c84e60408301600a8152690808080808149a59da1d60b21b602082015260400190565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906200c8ca81600c8501602087016200a840565b91909101600c01949350505050565b600080604083850312156200c8ed57600080fd5b82516200c8fa816200ac4f565b60208401519092506200a5a5816200ac4f565b6000806000606084860312156200c92357600080fd5b83516200c930816200a639565b60208501519093506001600160401b038111156200c94d57600080fd5b6200c95b868287016200b505565b925050604084015190509250925092565b6001600160f01b031981358181169160028510156200bba75760029490940360031b84901b1690921692915050565b6001600160801b031981358181169160108510156200bba75760109490940360031b84901b1690921692915050565b61ffff8181168382160190808211156200480757620048076200b740565b600086516200c9fc818460208b016200a840565b6001600160f81b031960f888811b82169285019283526001600160f01b031960f089901b16600184015286901b16600382015283516200ca448160048401602088016200a840565b01600401979650505050505050565b63ffffffff8281168282160390808211156200480757620048076200b74056fe60c06040526001600d553480156200001657600080fd5b50604051620055c1380380620055c18339810160408190526200003991620002cd565b81816001600160a01b0381166200006b57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200007681620000cd565b5063ffffffff166080526040516200008e90620002bf565b604051809103906000f080158015620000ab573d6000803e3d6000fd5b506001600160a01b031660a0819052620000c5906200011d565b50506200034a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001276200028e565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019991906200031f565b620001b75760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620001f25760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910160405180910390a150565b6000546001600160a01b03163314620002bd5760405163118cdaa760e01b815233600482015260240162000062565b565b6101e380620053de83390190565b60008060408385031215620002e157600080fd5b825163ffffffff81168114620002f657600080fd5b60208401519092506001600160a01b03811681146200031457600080fd5b809150509250929050565b6000602082840312156200033257600080fd5b815180151581146200034357600080fd5b9392505050565b60805160a05161504b6200039360003960006107810152600081816105310152818161278901528181612f7b01528181612fe20152818161355301526135ba015261504b6000f3fe6080604052600436106103505760003560e01c80639132e5c3116101c6578063c9fc7bcd116100f7578063ddc28c5811610095578063e8964e811161006f578063e8964e8114610b8f578063ef667aa114610baf578063f2fde38b14610bfa578063f64be4c714610c1a57600080fd5b8063ddc28c5814610b2e578063e1758bd814610b5b578063e4fe1d9414610b6f57600080fd5b8063d4b4ec8f116100d1578063d4b4ec8f14610a72578063d70b890214610a92578063dc706a6214610ab2578063dc93c8a214610ae257600080fd5b8063c9fc7bcd146109f6578063ca5eb5e114610a3d578063cb5026b914610a5d57600080fd5b8063a7229fd911610164578063aafea3121161013e578063aafea31214610976578063b96a277f14610996578063c28e0eed146109b6578063c9a54a99146109d657600080fd5b8063a7229fd914610916578063a825d74714610936578063aafe5e071461095657600080fd5b80639c6d7340116101a05780639c6d73401461086f5780639d7f9775146108b6578063a0dd43fc146108d6578063a718531b146108f657600080fd5b80639132e5c31461081a57806391d20fa11461083c5780639535ff301461084f57600080fd5b80635b17bb70116102a05780636f50a8031161023e57806379624ca91161021857806379624ca9146107a35780637cb59012146107bc578063861e1ca5146107dc5780638da5cb5b146107fc57600080fd5b80636f50a80314610724578063715018a61461075a578063733180911461076f57600080fd5b80636a14d7151161027a5780636a14d715146106655780636bf73fa3146106855780636dbd9f90146106a55780636e83f5bb146106c557600080fd5b80635b17bb70146105b65780636750cd4c14610615578063697fe6b61461064557600080fd5b80632baf0be71161030d578063402f8468116102e7578063402f8468146104c057806340f80683146104ff578063416ecebf1461051f578063587cde1e1461056857600080fd5b80632baf0be7146104355780632e80fbf31461045957806335d330b01461047957600080fd5b80630c0c389e1461035557806314f651a91461036a578063183c834f146103a85780632637a450146103c85780632a56c1b0146103e85780632b3197b914610408575b600080fd5b610368610363366004613ef7565b610c50565b005b34801561037657600080fd5b5061037f610d4e565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103b457600080fd5b506103686103c3366004613fa6565b610d80565b6103db6103d6366004613ff1565b611027565b60405161039f9190614043565b3480156103f457600080fd5b50610368610403366004614085565b61114d565b34801561041457600080fd5b506104286104233660046140f4565b6111ed565b60405161039f9190614198565b34801561044157600080fd5b5061044b60001981565b60405190815260200161039f565b34801561046557600080fd5b506103686104743660046141c2565b6112b8565b34801561048557600080fd5b5061044b610494366004614229565b600c60209081526000948552604080862082529385528385208152918452828420909152825290205481565b3480156104cc57600080fd5b506104e06104db36600461426b565b611427565b604080516001600160a01b03909316835290151560208301520161039f565b34801561050b57600080fd5b5061036861051a3660046141c2565b6114a5565b34801561052b57600080fd5b506105537f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161039f565b34801561057457600080fd5b5061059e610583366004614295565b600f602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161039f565b3480156105c257600080fd5b506105fd6105d13660046142b0565b60016020908152600093845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161039f565b34801561062157600080fd5b506106356106303660046142ec565b61160b565b604051901515815260200161039f565b34801561065157600080fd5b50610368610660366004614307565b61165b565b34801561067157600080fd5b50610368610680366004613fa6565b6116d0565b34801561069157600080fd5b506103686106a0366004614402565b611aae565b3480156106b157600080fd5b506103686106c03660046144e5565b611b18565b3480156106d157600080fd5b506107056106e03660046142ec565b600b60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161039f565b34801561073057600080fd5b5061059e61073f3660046142ec565b600a602052600090815260409020546001600160a01b031681565b34801561076657600080fd5b50610368611bba565b34801561077b57600080fd5b5061059e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107af57600080fd5b50600d5460011415610635565b3480156107c857600080fd5b506103686107d7366004614575565b611bce565b3480156107e857600080fd5b506106356107f73660046145c6565b611cba565b34801561080857600080fd5b506000546001600160a01b031661059e565b34801561082657600080fd5b5061082f611d26565b60405161039f91906145f1565b61036861084a36600461463e565b611d88565b34801561085b57600080fd5b5061036861086a3660046146e8565b611f18565b34801561087b57600080fd5b506105fd61088a3660046142b0565b60036020908152600093845260408085208252928452828420905282529020546001600160401b031681565b3480156108c257600080fd5b506106356108d13660046146e8565b61217c565b3480156108e257600080fd5b506105fd6108f13660046142b0565b612256565b34801561090257600080fd5b5061036861091136600461472b565b6122b6565b34801561092257600080fd5b50610368610931366004614757565b6125d6565b34801561094257600080fd5b50610368610951366004614775565b6125ee565b34801561096257600080fd5b5061044b6109713660046142b0565b612739565b34801561098257600080fd5b506103686109913660046147b2565b6127b9565b3480156109a257600080fd5b5061059e6109b136600461426b565b6129e2565b3480156109c257600080fd5b506103686109d1366004614295565b612a51565b3480156109e257600080fd5b506106356109f13660046145c6565b612aae565b348015610a0257600080fd5b5061044b610a113660046147ce565b600260209081526000948552604080862082529385528385208152918452828420909152825290205481565b348015610a4957600080fd5b50610368610a58366004614295565b612b13565b348015610a6957600080fd5b5061044b600081565b348015610a7e57600080fd5b50610368610a8d36600461472b565b612b73565b348015610a9e57600080fd5b50610368610aad3660046147ce565b612db1565b348015610abe57600080fd5b50610635610acd366004614295565b60056020526000908152604090205460ff1681565b348015610aee57600080fd5b50610635610afd36600461426b565b6001600160a01b03918216600090815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610b3a57600080fd5b50610b4e610b49366004613ff1565b612ea0565b60405161039f9190614810565b348015610b6757600080fd5b50600061059e565b348015610b7b57600080fd5b50600e5461059e906001600160a01b031681565b348015610b9b57600080fd5b50610368610baa366004614295565b61310c565b348015610bbb57600080fd5b50610705610bca36600461426b565b6008602090815260009283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610c0657600080fd5b50610368610c15366004614295565b613270565b348015610c2657600080fd5b5061059e610c353660046142ec565b6009602052600090815260409020546001600160a01b031681565b610c9f86610c6160208a018a6142ec565b60208a0135610c7660608c0160408d01614827565b898989604051602001610c8b93929190614842565b6040516020818303038152906040526132ae565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610cda908b908a908a908a9033908b908b906004016148be565b6000604051808303818588803b158015610cf357600080fd5b505af1158015610d07573d6000803e3d6000fd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d3d929190614915565b60405180910390a150505050505050565b600080610d5e600d546001141590565b610d6a57600080610d78565b610d78600d5460a081901c91565b915091509091565b6001600160a01b038216600090815260056020526040902054829060ff16610dbb57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e5e576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f9190614951565b6002811115610e4057610e4061493b565b03610e5e576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610efa576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190614980565b610efa57604051630e476aa960e21b815260040160405180910390fd5b610f0388613469565b6000610f0f8989611427565b9150508015610f3157604051633c075f7560e01b815260040160405180910390fd5b85600003610f79576001600160a01b038916600090815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610fdf565b438611610f99576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b03898116600090815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051611014949392919061499d565b60405180910390a1505050505050505050565b61102f613e40565b61103c60208401846142ec565b336001600d54146110605760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561108e908601608087016149cd565b80156110a35750600e546001600160a01b0316155b156110c157604051632d7b695560e11b815260040160405180910390fd5b6000806110ce33886134ba565b9150915060006110db3490565b905060006110f76110f260a08b0160808c016149cd565b613766565b905061110884604001518383613802565b600e5460408501516020015161112a916001600160a01b03169083868c613850565b60408401515161113c9083858b61387d565b50506001600d555095945050505050565b61115685613469565b600083838360405160200161116d93929190614842565b60408051601f1981840301815291905290506111ab8661119060208801886142ec565b60208801356111a560608a0160408b01614827565b856132ae565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111dd929190614915565b60405180910390a1505050505050565b6001600160a01b038316600090815260056020526040902054606090849060ff1661122b57604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf790606401600060405180830381865afa158015611286573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ae9190810190614a7d565b9695505050505050565b6112c185613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461133357604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b039081169084161180159061137f575080155b156113a857604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190206000199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb55292906111dd90879087908a9088908890614ab1565b6001600160a01b03808316600090815260076020908152604080832063ffffffff86168452909152812054909116908161149e5763ffffffff83166000908152600a60205260409020546001600160a01b031691508161149a57604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b6114ae85613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461151b57604051637182306f60e01b8152600481018290526024810183905260440161132a565b80158061156557506001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561158e57604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e906111dd90879087908a9088908890614ab1565b63ffffffff81166000908152600960205260408120546001600160a01b031615801590611655575063ffffffff82166000908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116ba9a99989796959493929190614aee565b60405180910390a4505050505050505050505050565b6001600160a01b038216600090815260056020526040902054829060ff1615801561170357506001600160a01b03811615155b156117215760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b038116156117c4576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117959190614951565b60028111156117a6576117a661493b565b036117c4576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615611860576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190614980565b61186057604051630e476aa960e21b815260040160405180910390fd5b61186988613469565b6001600160a01b03808916600090815260076020908152604080832063ffffffff8c168452909152902054811690871681036118b85760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03898116600081815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a18515611a32576001600160a01b038116158061195b57506001600160a01b038716155b1561197957604051633c075f7560e01b815260040160405180910390fd5b60006040518060400160405280836001600160a01b0316815260200188436119a19190614b6d565b90526001600160a01b038b8116600090815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611a24918d918d91879161499d565b60405180910390a150611aa3565b6001600160a01b038916600090815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611014918c918c9186919061499d565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611b039a99989796959493929190614b80565b60405180910390a35050505050505050505050565b6001600160a01b038316600090815260056020526040902054839060ff16611b5357604051631bc58ef360e11b815260040160405180910390fd5b611b5c85613469565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b8c90889087908790600401614bdf565b600060405180830381600087803b158015611ba657600080fd5b505af1158015611aa3573d6000803e3d6000fd5b611bc26138a7565b611bcc60006138d4565b565b336000908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611c2457604051630542086560e21b815260040160405180910390fd5b8181604051611c34929190614cd2565b60408051918290038220336000818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611cab919088908890889088908890614ce2565b60405180910390a15050505050565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590611cea908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613924565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050505050905090565b6001600160a01b038089166000908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611dd39087908790614cd2565b60405180910390209050808214611e07576040516335ca595f60e01b8152600481018390526024810182905260440161132a565b6001600160a01b03808b166000908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611e76908e908d908c908c9033908d908d90600401614d2c565b6000604051808303818588803b158015611e8f57600080fd5b505af1158015611ea3573d6000803e3d6000fd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611f0494939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b038116600090815260056020526040902054819060ff16158015611f4b57506001600160a01b03811615155b15611f695760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b0381161561200c576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdd9190614951565b6002811115611fee57611fee61493b565b0361200c57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b038216156120a8576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190614980565b6120a857604051630e476aa960e21b815260040160405180910390fd5b6120b187613469565b6001600160a01b03878116600090815260066020908152604080832063ffffffff8b1684529091529020548187169116036120ff5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03878116600081815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d3d565b600080600061218b8686611427565b91509150816001600160a01b0316846001600160a01b0316036121b357600192505050611d1f565b6000816121e8576001600160a01b038716600090815260086020908152604080832063ffffffff8a16845290915290206121fe565b63ffffffff86166000908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156122385750438160200151115b156122495760019350505050611d1f565b5060009695505050505050565b6001600160a01b038316600090815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b6122a1858585846001016139a8565b156122ae57600101612292565b949350505050565b6122be6138a7565b6001600160a01b038216600090815260056020526040902054829060ff166122f957604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b0381161561239c576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236d9190614951565b600281111561237e5761237e61493b565b0361239c576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612438576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156123f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241b9190614980565b61243857604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87166000908152600a60205260409020546001600160a01b03908116908716810361247b5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88166000818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156125695763ffffffff88166000908152600b6020526040902080546001600160a01b0319166001600160a01b0383161781556125228743614b6d565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89161255b918c918691614d7f565b60405180910390a1506125cc565b63ffffffff88166000908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916125c3918b918591614d7f565b60405180910390a15b5050505050505050565b6125de6138a7565b6125e98383836139f5565b505050565b612605826125ff60208601866142ec565b3361217c565b612622576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040822090829061264b908701876142ec565b63ffffffff168152602080820192909252604090810160009081208784013582529092529020546001600160401b03169050612688848483613924565b6126a55760405163751cb20f60e01b815260040160405180910390fd5b6126b0848483613a18565b6126cc5760405162bbf0e560e11b815260040160405180910390fd5b6126f8836126dd60208701876142ec565b60208701356126f26060890160408a01614827565b86613ad5565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161272b93929190614da6565b60405180910390a150505050565b6001600160a01b038316600090815260036020908152604080832063ffffffff8616845282528083208484529091528120548190612781906001600160401b03166001614dce565b90506127b0817f0000000000000000000000000000000000000000000000000000000000000000878787613b3b565b95945050505050565b6127c16138a7565b6001600160a01b038116600090815260056020526040902054819060ff166127fc57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b0381161561289f576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561284c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128709190614951565b60028111156128815761288161493b565b0361289f57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561293b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156128fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291e9190614980565b61293b57604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86166000908152600960205260409020546001600160a01b0380871691160361297c5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff861660008181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f591016111dd565b6001600160a01b03808316600090815260066020908152604080832063ffffffff861684529091529020541680611655575063ffffffff81166000908152600960205260409020546001600160a01b03168061165557604051636c1ccdb560e01b815260040160405180910390fd5b612a596138a7565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590612ade908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613a18565b336000818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d79839819101612aa3565b6001600160a01b038216600090815260056020526040902054829060ff16612bae57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612c51576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c229190614951565b6002811115612c3357612c3361493b565b03612c51576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612ced576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd09190614980565b612ced57604051630e476aa960e21b815260040160405180910390fd5b612cf56138a7565b84600003612d295763ffffffff87166000908152600b6020526040812080546001600160a01b031916815560010155612d7e565b438511612d49576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87166000908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610d3d93929190614d7f565b612dba84613469565b612dc5848484612256565b612dd0906001614dce565b6001600160401b0316816001600160401b031614612e0c57604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001600160a01b038416600081815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161272b565b6040805180820190915260008082526020820152612ec460a08401608085016149cd565b8015612ed95750600e546001600160a01b0316155b15612ef757604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b03821660009081526003602090815260408220908290612f20908701876142ec565b63ffffffff16815260208082019290925260409081016000908120878401358252909252902054612f5b906001600160401b03166001614dce565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001866000016020810190612fc791906142ec565b63ffffffff1681526020018660200135815260200161301f847f0000000000000000000000000000000000000000000000000000000000000000888a600001602081019061301591906142ec565b8b60200135613b3b565b81526020016130316040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061307e9050856109b160208901896142ec565b90506001600160a01b03811663d80e9bd98361309d60608a018a614dee565b6130ad60a08c0160808d016149cd565b6040518563ffffffff1660e01b81526004016130cc9493929190614e34565b6040805180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190614f28565b6131146138a7565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561315f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131839190614980565b6131a05760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156131da5760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af59101612aa3565b6132786138a7565b6001600160a01b0381166132a257604051631e4fbdf760e01b81526000600482015260240161132a565b6132ab816138d4565b50565b6001600160a01b038516600090815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b0390811690841681101561339c57600181015b846001600160401b0316816001600160401b03161161334f5761331f888888846139a8565b61334757604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001016132fa565b506001600160a01b038716600090815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b038916600090815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461341657604051637182306f60e01b8152600481018290526024810184905260440161132a565b50506001600160a01b03909516600090815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b0382161480159061349c57506001600160a01b038181166000908152600f6020526040902054163314155b156132ab5760405163c4c5259360e01b815260040160405180910390fd5b6134c2613e40565b600080613533856134d660208701876142ec565b6001600160a01b0391909116600090815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b0316815260200186600001602081019061359f91906142ec565b63ffffffff168152602001866020013581526020016135ed847f00000000000000000000000000000000000000000000000000000000000000008a8a600001602081019061301591906142ec565b81526020016135ff6040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061364c9050876109b160208901896142ec565b90506000806001600160a01b038316634389e58f8561366e60608c018c614dee565b61367e60a08e0160808f016149cd565b6040518563ffffffff1660e01b815260040161369d9493929190614e34565b6000604051808303816000875af11580156136bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136e49190810190614f44565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161371860608b018b614dee565b866040516137299493929190614f92565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b600081156137fd57600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156137b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137da9190614fd2565b9050806000036137fd57604051631775123760e01b815260040160405180910390fd5b919050565b82518210806138145750808360200151115b156125e95782516020840151604051634f3ec0d360e01b815260048101929092526024820184905260448201526064810182905260840161132a565b831561386157613861858386613bb4565b82841015613876576138768582868603613bb4565b5050505050565b831561388d5761388d8285613bef565b828410156138a1576138a181858503613bef565b50505050565b6000546001600160a01b03163314611bcc5760405163118cdaa760e01b815233600482015260240161132a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080826001600160401b031611806122ae5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d90613967908790600401614feb565b602060405180830381865afa158015613984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ae9190614980565b6001600160a01b038416600090815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b038316613a0d576125e98282613bef565b6125e9838383613bb4565b60006001600160401b038216613a346060860160408701614827565b6001600160401b031611806122ae57506001600160a01b03831660009081526002602090815260408220908290613a6d908801886142ec565b63ffffffff1663ffffffff1681526020019081526020016000206000866020013581526020019081526020016000206000866040016020810190613ab19190614827565b6001600160401b031681526020810191909152604001600020541415949350505050565b80613af3576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b03909416600090815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b600085856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b6001600160a01b038216613bdb576040516306b7a93160e41b815260040160405180910390fd5b6125e96001600160a01b0384168383613c9c565b6001600160a01b038216613c16576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613c63576040519150601f19603f3d011682016040523d82523d6000602084013e613c68565b606091505b50509050806125e957604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161132a565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b1790526125e991859190600090613cfa90841683613d48565b90508051600014158015613d1f575080806020019051810190613d1d9190614980565b155b156125e957604051635274afe760e01b81526001600160a01b038416600482015260240161132a565b6060611d1f8383600084600080856001600160a01b03168486604051613d6e9190614ff9565b60006040518083038185875af1925050503d8060008114613dab576040519150601f19603f3d011682016040523d82523d6000602084013e613db0565b606091505b50915091506112ae868383606082613dd057613dcb82613e17565b611d1f565b8151158015613de757506001600160a01b0384163b155b15613e1057604051639996b31560e01b81526001600160a01b038516600482015260240161132a565b5080611d1f565b805115613e275780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001613e82604051806040016040528060008152602001600081525090565b905290565b600060608284031215613e9957600080fd5b50919050565b80356001600160a01b03811681146137fd57600080fd5b60008083601f840112613ec857600080fd5b5081356001600160401b03811115613edf57600080fd5b60208301915083602082850101111561149e57600080fd5b600080600080600080600060e0888a031215613f1257600080fd5b613f1c8989613e87565b9650613f2a60608901613e9f565b95506080880135945060a08801356001600160401b0380821115613f4d57600080fd5b613f598b838c01613eb6565b909650945060c08a0135915080821115613f7257600080fd5b50613f7f8a828b01613eb6565b989b979a50959850939692959293505050565b803563ffffffff811681146137fd57600080fd5b60008060008060808587031215613fbc57600080fd5b613fc585613e9f565b9350613fd360208601613f92565b9250613fe160408601613e9f565b9396929550929360600135925050565b6000806040838503121561400457600080fd5b82356001600160401b0381111561401a57600080fd5b830160a0818603121561402c57600080fd5b915061403a60208401613e9f565b90509250929050565b6000608082019050825182526001600160401b036020840151166020830152604083015161407e604084018280518252602090810151910152565b5092915050565b600080600080600060c0868803121561409d57600080fd5b6140a686613e9f565b94506140b58760208801613e87565b93506080860135925060a08601356001600160401b038111156140d757600080fd5b6140e388828901613eb6565b969995985093965092949392505050565b6000806000806080858703121561410a57600080fd5b61411385613e9f565b935061412160208601613e9f565b925061412f60408601613f92565b915061413d60608601613f92565b905092959194509250565b60005b8381101561416357818101518382015260200161414b565b50506000910152565b60008151808452614184816020860160208601614148565b601f01601f19169290920160200192915050565b602081526000611d1f602083018461416c565b80356001600160401b03811681146137fd57600080fd5b600080600080600060a086880312156141da57600080fd5b6141e386613e9f565b94506141f160208701613f92565b935060408601359250614206606087016141ab565b949793965091946080013592915050565b803561ffff811681146137fd57600080fd5b6000806000806080858703121561423f57600080fd5b61424885613e9f565b935061425660208601613e9f565b92506040850135915061413d60608601614217565b6000806040838503121561427e57600080fd5b61428783613e9f565b915061403a60208401613f92565b6000602082840312156142a757600080fd5b611d1f82613e9f565b6000806000606084860312156142c557600080fd5b6142ce84613e9f565b92506142dc60208501613f92565b9150604084013590509250925092565b6000602082840312156142fe57600080fd5b611d1f82613f92565b6000806000806000806000806000806000806101208d8f03121561432a57600080fd5b6143338d613e9f565b9b5061434160208e01613e9f565b9a5060408d0135995061435660608e01614217565b985060808d0135975060a08d013596506001600160401b0360c08e0135111561437e57600080fd5b61438e8e60c08f01358f01613eb6565b90965094506001600160401b0360e08e013511156143ab57600080fd5b6143bb8e60e08f01358f01613eb6565b90945092506001600160401b036101008e013511156143d957600080fd5b6143ea8e6101008f01358f01613eb6565b81935080925050509295989b509295989b509295989b565b60008060008060008060008060008060006101408c8e03121561442457600080fd5b61442e8d8d613e87565b9a5061443c60608d01613e9f565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e0135111561446c57600080fd5b61447c8e60e08f01358f01613eb6565b90975095506101008d013581101561449357600080fd5b6144a48e6101008f01358f01613eb6565b90955093506101208d01358110156144bb57600080fd5b506144cd8d6101208e01358e01613eb6565b81935080925050509295989b509295989b9093969950565b600080600080606085870312156144fb57600080fd5b61450485613e9f565b935061451260208601613e9f565b925060408501356001600160401b038082111561452e57600080fd5b818701915087601f83011261454257600080fd5b81358181111561455157600080fd5b8860208260051b850101111561456657600080fd5b95989497505060200194505050565b60008060008060006080868803121561458d57600080fd5b61459686613e9f565b9450602086013593506145ab60408701614217565b925060608601356001600160401b038111156140d757600080fd5b600080608083850312156145d957600080fd5b6145e38484613e87565b915061403a60608401613e9f565b6020808252825182820181905260009190848201906040850190845b818110156146325783516001600160a01b03168352928401929184019160010161460d565b50909695505050505050565b60008060008060008060008060c0898b03121561465a57600080fd5b61466389613e9f565b975061467160208a01613e9f565b96506040890135955061468660608a01614217565b945060808901356001600160401b03808211156146a257600080fd5b6146ae8c838d01613eb6565b909650945060a08b01359150808211156146c757600080fd5b506146d48b828c01613eb6565b999c989b5096995094979396929594505050565b6000806000606084860312156146fd57600080fd5b61470684613e9f565b925061471460208501613f92565b915061472260408501613e9f565b90509250925092565b60008060006060848603121561474057600080fd5b61474984613f92565b92506142dc60208501613e9f565b60008060006060848603121561476c57600080fd5b61474984613e9f565b600080600060a0848603121561478a57600080fd5b6147948585613e87565b92506147a260608501613e9f565b9150608084013590509250925092565b600080604083850312156147c557600080fd5b61402c83613f92565b600080600080608085870312156147e457600080fd5b6147ed85613e9f565b93506147fb60208601613f92565b92506040850135915061413d606086016141ab565b815181526020808301519082015260408101611655565b60006020828403121561483957600080fd5b611d1f826141ab565b838152818360208301376000910160200190815292915050565b63ffffffff61486a82613f92565b168252602081013560208301526001600160401b0361488b604083016141ab565b1660408301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6148c8818961485c565b86606082015260e0608082015260006148e560e083018789614895565b6001600160a01b03861660a084015282810360c0840152614907818587614895565b9a9950505050505050505050565b60808101614923828561485c565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561496357600080fd5b815160038110611d1f57600080fd5b80151581146132ab57600080fd5b60006020828403121561499257600080fd5b8151611d1f81614972565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b6000602082840312156149df57600080fd5b8135611d1f81614972565b634e487b7160e01b600052604160045260246000fd5b600082601f830112614a1157600080fd5b81516001600160401b0380821115614a2b57614a2b6149ea565b604051601f8301601f19908116603f01168101908282118183101715614a5357614a536149ea565b81604052838152866020858801011115614a6c57600080fd5b6112ae846020830160208901614148565b600060208284031215614a8f57600080fd5b81516001600160401b03811115614aa557600080fd5b6122ae84828501614a00565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201526000614b1e60e08301888a614895565b82810360a0840152614b31818789614895565b905082810360c0840152614b46818587614895565b9d9c50505050505050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561165557611655614b57565b6000610120614b8f838e61485c565b8b60608401528a60808401528960a08401528060c0840152614bb4818401898b614895565b905082810360e0840152614bc9818789614895565b9050828103610100840152614b46818587614895565b6001600160a01b03841681526040602080830182905282820184905260009190606090818501600587901b8601830188865b89811015614cc257888303605f190184528135368c9003605e19018112614c3757600080fd5b8b0163ffffffff80614c4883613f92565b16855280614c57888401613f92565b16878601525087810135601e19823603018112614c7357600080fd5b0185810190356001600160401b03811115614c8d57600080fd5b803603821315614c9c57600080fd5b8789860152614cae8886018284614895565b958701959450505090840190600101614c11565b50909a9950505050505050505050565b8183823760009101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a060808201819052600090614d209083018486614895565b98975050505050505050565b600060018060a01b03808a16835288602084015260a06040840152614d5560a08401888a614895565b81871660608501528381036080850152614d70818688614895565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614db4828661485c565b6001600160a01b0393909316606082015260800152919050565b6001600160401b0381811683821601908082111561407e5761407e614b57565b6000808335601e19843603018112614e0557600080fd5b8301803591506001600160401b03821115614e1f57600080fd5b60200191503681900382131561149e57600080fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a0830152850151600090614e8360c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614eb461014084018261416c565b90508281036020840152614ec9818688614895565b9150506127b0604083018415159052565b600060408284031215614eec57600080fd5b604051604081018181106001600160401b0382111715614f0e57614f0e6149ea565b604052825181526020928301519281019290925250919050565b600060408284031215614f3a57600080fd5b611d1f8383614eda565b60008060608385031215614f5757600080fd5b614f618484614eda565b915060408301516001600160401b03811115614f7c57600080fd5b614f8885828601614a00565b9150509250929050565b606081526000614fa5606083018761416c565b8281036020840152614fb8818688614895565b91505060018060a01b038316604083015295945050505050565b600060208284031215614fe457600080fd5b5051919050565b60608101611655828461485c565b6000825161500b818460208701614148565b919091019291505056fea264697066735822122060b78f73c9ab9c1651b5848f9a662a4d7443b5174845f63dab183c0e0ef4aa8b64736f6c63430008160033608060405234801561001057600080fd5b506101c3806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a7146100655780631881d94d1461008d57806354fd4d501461009c5780636750cd4c146100c3575b604051632657b6c360e01b815260040160405180910390fd5b61007861007336600461010e565b6100d7565b60405190151581526020015b60405180910390f35b6002604051610084919061013f565b6040805167ffffffffffffffff815260ff6020820152600291810191909152606001610084565b6100786100d1366004610167565b50600190565b60006001600160e01b031982166325fc096160e21b148061010857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561012057600080fd5b81356001600160e01b03198116811461013857600080fd5b9392505050565b602081016003831061016157634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561017957600080fd5b813563ffffffff8116811461013857600080fdfea26469706673582212201492a62cde195effaf02cad81258b16b83979b7f432c3fe0ca641db583822bb764736f6c63430008160033608060405234801561001057600080fd5b506040516114d63803806114d683398101604081905261002f9161010a565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e816100ba565b506001600160a01b03166000908152600260205260409020805460ff1916600190811790915580546001600160801b03191668056bc75e2d6310000017905560058054602f60801b6001600160801b039190911617905561013a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561011c57600080fd5b81516001600160a01b038116811461013357600080fd5b9392505050565b61138d806101496000396000f3fe6080604052600436106101405760003560e01c80638ca2fb08116100b6578063d350ad251161006f578063d350ad2514610441578063da26663a14610461578063dbbb415514610522578063e0ad121a14610542578063f2fde38b146105cb578063fd9be522146105eb57600080fd5b80638ca2fb08146103595780638da5cb5b1461039957806392807f58146103b7578063c1723a1d146103e9578063c1840327146103fc578063cd68b79b1461041a57600080fd5b80635d6d7ccb116101085780635d6d7ccb146102405780635e280f1114610260578063715018a6146102985780637bc3c9ab146102ad5780637dc438a4146102ea57806388a4124c1461030a57600080fd5b806311f2c343146101455780632f7cb0b41461017c5780633161b7f61461019e57806336a5beba146101be57806352a7251014610220575b600080fd5b34801561015157600080fd5b5061016961016036600461100d565b60009392505050565b6040519081526020015b60405180910390f35b34801561018857600080fd5b5061019c610197366004611057565b61060b565b005b3480156101aa57600080fd5b5061019c6101b9366004611079565b610632565b3480156101ca57600080fd5b506040805180820182526000808252602091820152815180830183526004546001600160401b03811680835263ffffffff600160401b909204821692840192835284519081529151169181019190915201610173565b34801561022c57600080fd5b5061019c61023b366004611104565b610773565b34801561024c57600080fd5b5061019c61025b366004611057565b6107a6565b34801561026c57600080fd5b50600654610280906001600160a01b031681565b6040516001600160a01b039091168152602001610173565b3480156102a457600080fd5b5061019c610819565b3480156102b957600080fd5b506102cd6102c8366004611152565b61082d565b604080519283526001600160801b03909116602083015201610173565b3480156102f657600080fd5b5061019c610305366004611170565b6108c8565b34801561031657600080fd5b5061032a61032536600461100d565b610989565b604080519485526001600160801b03938416602086015291831691840191909152166060820152608001610173565b34801561036557600080fd5b50610389610374366004611188565b60026020526000908152604090205460ff1681565b6040519015158152602001610173565b3480156103a557600080fd5b506000546001600160a01b0316610280565b3480156103c357600080fd5b506005546001600160801b03165b6040516001600160801b039091168152602001610173565b61032a6103f736600461100d565b6109ab565b34801561040857600080fd5b506001546001600160801b03166103d1565b34801561042657600080fd5b506005546103d190600160801b90046001600160801b031681565b34801561044d57600080fd5b5061019c61045c366004611057565b6109dc565b34801561046d57600080fd5b506104e861047c3660046111a3565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526003835283902083519182018452546001600160801b0381168252600160801b81046001600160401b031692820192909252600160c01b9091049092169082015290565b6040805182516001600160801b031681526020808401516001600160401b0316908201529181015163ffffffff1690820152606001610173565b34801561052e57600080fd5b5061019c61053d366004611188565b610a06565b34801561054e57600080fd5b506104e861055d3660046111be565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452600382529282902082519384018352546001600160801b03811684526001600160401b03600160801b82041691840191909152600160c01b900463ffffffff169082015290565b3480156105d757600080fd5b5061019c6105e6366004611188565b610a30565b3480156105f757600080fd5b5061019c6106063660046111d9565b610a6e565b610613610a84565b600580546001600160801b03928316600160801b029216919091179055565b336106456000546001600160a01b031690565b6001600160a01b031614610683573360009081526002602052604090205460ff166106835760405163320ae52960e01b815260040160405180910390fd5b60005b8181101561076e57368383838181106106a1576106a1611203565b60800291909101915061076590506106bc60208301836111a3565b6106ce36849003840160208501611230565b805160208083015160409384015184516060810186526001600160801b0394851681526001600160401b0392831681850190815263ffffffff9283168288019081529783166000908152600390955295909320925183549551965194166001600160c01b031990951694909417600160801b95909116949094029390931763ffffffff60c01b1916600160c01b9190921602179055565b50600101610686565b505050565b61077b610a84565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b336107b96000546001600160a01b031690565b6001600160a01b0316146107f7573360009081526002602052604090205460ff166107f75760405163320ae52960e01b815260040160405180910390fd5b600580546001600160801b0319166001600160801b0392909216919091179055565b610821610a84565b61082b6000610ab1565b565b6000808461ffff16606e148061084857508461ffff1661279f145b8061085857508461ffff16614eaf145b156108755761086c8561ffff168585610b01565b915091506108c0565b8461ffff16606f148061088d57508461ffff16612794145b8061089d57508461ffff16614ea4145b156108b15761086c8561ffff168585610c0e565b61086c8561ffff168585610d5e565b935093915050565b336108db6000546001600160a01b031690565b6001600160a01b031614610919573360009081526002602052604090205460ff166109195760405163320ae52960e01b815260040160405180910390fd5b6109296106bc60208301836111a3565b600061093b60a08301608084016112a9565b9050600061094f60c0840160a085016111a3565b6004805463ffffffff909216600160401b026bffffffffffffffffffffffff199092166001600160401b0390941693909317179091555050565b60008060008061099a878787610dfe565b935093509350935093509350935093565b6000808080806109bf565b60405180910390fd5b6109ca888888610dfe565b94509450945094505093509350935093565b6109e4610a84565b600180546001600160801b0319166001600160801b0392909216919091179055565b610a0e610a84565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a38610a84565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024016109b6565b610a6b81610ab1565b50565b610a76610a84565b610a808282610ecc565b5050565b6000546001600160a01b0316331461082b5760405163118cdaa760e01b81523360048201526024016109b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff8381166000908152600360205260408120600454600554929384938492600160401b900490911690606490610b4b90600160801b90046001600160801b0316896112da565b610b55919061130d565b610b5f91906112da565b8254909150600090610b7e90600160c01b900463ffffffff16886112da565b83546004549192506000916001600160401b03600160801b90920482169184918691610bab91168b611321565b610bb59190611321565b610bbf9190611321565b610bc991906112da565b60015485549192506001600160801b0390811691610be89116836112da565b610bf2919061130d565b935493996001600160801b039094169850929650505050505050565b6000806000610c1c86610f79565b63ffffffff80821660009081526003602052604081208054939450929091610c4c91600160c01b900416886112da565b610c5890610c74611321565b8254909150600090610c7a90600160801b90046001600160401b0316836112da565b63ffffffff808b1660009081526003602052604081208054939450929091610caa91600160c01b9004168b6112da565b8254909150600090600160801b90046001600160401b0316610ccc8b84611321565b610cd691906112da565b60015487549192506000916001600160801b0391821691610cf89116876112da565b610d02919061130d565b60015485549192506000916001600160801b0391821691610d249116856112da565b610d2e919061130d565b90506000610d3c8284611321565b9554959f6001600160801b039096169e50949c50505050505050505050505050565b63ffffffff80841660009081526003602052604081208054919283928391610d8e91600160c01b900416876112da565b8254909150600090600160801b90046001600160401b0316610db08784611321565b610dba91906112da565b60015484549192506001600160801b0390811691610dd99116836112da565b610de3919061130d565b925492986001600160801b0390931697509195505050505050565b600080808080610e1061753089611334565b90508063ffffffff16606e1480610e2e57508063ffffffff1661279f145b80610e4057508063ffffffff16614eaf145b15610e5a57610e50818888610b01565b9095509350610ea9565b8063ffffffff16606f1480610e7657508063ffffffff16612794145b80610e8857508063ffffffff16614ea4145b15610e9857610e50818888610c0e565b610ea3818888610d5e565b90955093505b505060015460055493979296506001600160801b03908116955090921692509050565b6001600160a01b038216610ef3576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f40576040519150601f19603f3d011682016040523d82523d6000602084013e610f45565b606091505b505090508061076e57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016109b6565b600080610f8861753084611334565b90508063ffffffff16606f03610fa15750606592915050565b8063ffffffff1661279403610fba575061278992915050565b8063ffffffff16614ea403610fd35750614e9992915050565b604051633d0b0cf760e21b815263ffffffff821660048201526024016109b6565b803563ffffffff8116811461100857600080fd5b919050565b60008060006060848603121561102257600080fd5b61102b84610ff4565b95602085013595506040909401359392505050565b80356001600160801b038116811461100857600080fd5b60006020828403121561106957600080fd5b61107282611040565b9392505050565b6000806020838503121561108c57600080fd5b82356001600160401b03808211156110a357600080fd5b818501915085601f8301126110b757600080fd5b8135818111156110c657600080fd5b8660208260071b85010111156110db57600080fd5b60209290920196919550909350505050565b80356001600160a01b038116811461100857600080fd5b6000806040838503121561111757600080fd5b611120836110ed565b91506020830135801515811461113557600080fd5b809150509250929050565b803561ffff8116811461100857600080fd5b60008060006060848603121561116757600080fd5b61102b84611140565b600060c0828403121561118257600080fd5b50919050565b60006020828403121561119a57600080fd5b611072826110ed565b6000602082840312156111b557600080fd5b61107282610ff4565b6000602082840312156111d057600080fd5b61107282611140565b600080604083850312156111ec57600080fd5b6111f5836110ed565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b80356001600160401b038116811461100857600080fd5b60006060828403121561124257600080fd5b604051606081018181106001600160401b038211171561127257634e487b7160e01b600052604160045260246000fd5b60405261127e83611040565b815261128c60208401611219565b602082015261129d60408401610ff4565b60408201529392505050565b6000602082840312156112bb57600080fd5b61107282611219565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176112f1576112f16112c4565b92915050565b634e487b7160e01b600052601260045260246000fd5b60008261131c5761131c6112f7565b500490565b808201808211156112f1576112f16112c4565b600063ffffffff8084168061134b5761134b6112f7565b9216919091069291505056fea264697066735822122043d40d861fac89f60c4938c8341172f4eaeb8b3e6729e13e77697283f99e882864736f6c6343000816003360e06040523480156200001157600080fd5b5060405162004ac038038062004ac083398101604081905262000034916200018b565b82828282836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000077573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009d9190620001d8565b6001600160a01b03821660805263ffffffff811660a05283833380620000dd57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000e88162000122565b5060c0919091526002555050600680546001600160a01b0319166001600160a01b0398909816979097179096555062000207945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200018857600080fd5b50565b60008060008060808587031215620001a257600080fd5b8451620001af8162000172565b6020860151909450620001c28162000172565b6040860151606090960151949790965092505050565b600060208284031215620001eb57600080fd5b815163ffffffff811681146200020057600080fd5b9392505050565b60805160a05160c0516148706200025060003960008181611d100152611e730152600050506000818161069a0152818161079f015281816112b101526117d901526148706000f3fe60806040526004361061014f5760003560e01c806361d027b3116100b6578063d15b0d491161006f578063d15b0d4914610450578063d80e9bd914610470578063f0f442601461049d578063f2fde38b146104bd578063faaebd21146104dd578063fd9be5221461051857600080fd5b806361d027b3146103905780636750cd4c146103b0578063715018a6146103d05780638da5cb5b146103e55780639c33abf714610403578063c14c43491461043057600080fd5b806329460b0b1161010857806329460b0b1461025357806339e3f938146102735780634389e58f146102a057806343ea4fa9146102ce5780634d963200146102ee57806354fd4d501461036357600080fd5b806301ffc9a71461015b5780630e97289b14610190578063188183f4146101c85780631881d94d146101f5578063200175f71461021157806320efd7221461023357600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b6101763660046136fd565b610538565b60405190151581526020015b60405180910390f35b34801561019c57600080fd5b506006546101b0906001600160a01b031681565b6040516001600160a01b039091168152602001610187565b3480156101d457600080fd5b506101e86101e3366004613769565b61058a565b60405161018791906137a2565b34801561020157600080fd5b50600060405161018791906137c8565b34801561021d57600080fd5b5061023161022c3660046137f0565b610663565b005b34801561023f57600080fd5b5061023161024e366004613875565b61079d565b34801561025f57600080fd5b5061023161026e3660046138c9565b610912565b34801561027f57600080fd5b5061029361028e366004613769565b610aaa565b60405161018791906139c0565b3480156102ac57600080fd5b506102c06102bb3660046139ec565b610be5565b604051610187929190613aeb565b3480156102da57600080fd5b506102936102e9366004613769565b610c7a565b3480156102fa57600080fd5b5061033f610309366004613769565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160a01b031682565b6040805163ffffffff90931683526001600160a01b03909116602083015201610187565b34801561036f57600080fd5b50604080516003815260006020820152600291810191909152606001610187565b34801561039c57600080fd5b506003546101b0906001600160a01b031681565b3480156103bc57600080fd5b5061017b6103cb366004613b0f565b610f86565b3480156103dc57600080fd5b50610231610f91565b3480156103f157600080fd5b506000546001600160a01b03166101b0565b34801561040f57600080fd5b5061042361041e366004613b2c565b610fa5565b6040516101879190613b77565b34801561043c57600080fd5b5061023161044b366004613b8a565b611037565b34801561045c57600080fd5b5061023161046b366004613bfe565b611170565b34801561047c57600080fd5b5061049061048b3660046139ec565b6111e5565b6040516101879190613c17565b3480156104a957600080fd5b506102316104b8366004613c2e565b611255565b3480156104c957600080fd5b506102316104d8366004613c2e565b611269565b3480156104e957600080fd5b5061050a6104f8366004613c2e565b60056020526000908152604090205481565b604051908152602001610187565b34801561052457600080fd5b50610231610533366004613c4b565b6112a4565b60006001600160e01b031982166325fc096160e21b148061056957506001600160e01b0319821663b6e9ace360e01b145b8061058457506301ffc9a760e01b6001600160e01b03198316145b92915050565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec602090815260408083206001600160a01b038916845260048352818420948452939091528120805492939092169081900361060e57825463ffffffff16610610565b805b63ffffffff168452815464010000000090046001600160a01b03168061064857835464010000000090046001600160a01b031661064a565b805b6001600160a01b03166020860152509295945050505050565b6003546001600160a01b0316331461068e5760405163885762a760e01b815260040160405180910390fd5b826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071a9190613c77565b6001600160a01b031603610741576040516339a5741160e21b815260040160405180910390fd5b61074c838383611384565b604080516001600160a01b038086168252841660208201529081018290527fe081464b7278501267de69fa85b7b9560b0ae05d5fbfaab9b1986c70356e2efe906060015b60405180910390a1505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107e65760405163467409c360e01b815260040160405180910390fd5b60005b8181101561090c573683838381811061080457610804613c94565b90506020028101906108169190613caa565b905061082d6108286020830183613b0f565b6113c4565b600161083f6040830160208401613b0f565b63ffffffff160361087f5761087a61085a6020830183613b0f565b866108686040850185613cca565b8101906108759190613da0565b6113f2565b610903565b60026108916040830160208401613b0f565b63ffffffff16036108cc5761087a6108ac6020830183613b0f565b866108ba6040850185613cca565b8101906108c79190613f60565b61147a565b6108dc6040820160208301613b0f565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016107e9565b50505050565b61091a6114c3565b60005b81811015610a6c573683838381811061093857610938613c94565b905060200281019061094a9190613f94565b905060ff61095b6020830183613faa565b61096c906040810190602001613fc0565b60ff160361098d576040516341d50bed60e11b815260040160405180910390fd5b60ff61099c6020830183613faa565b6109ad906060810190604001613fc0565b60ff16036109ce5760405163211089b360e11b815260040160405180910390fd5b6001600160401b036109e36020830183613faa565b6109f1906020810190613fdb565b6001600160401b031603610a185760405163281b33d760e11b815260040160405180910390fd5b610a36610a286020830183613faa565b610a3190613ff6565b6114f0565b610a636000610a486020840184613b0f565b610a556020850185613faa565b610a5e90613ff6565b611528565b5060010161091d565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610a9e929190614088565b60405180910390a15050565b610ab2613644565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610b7257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b54575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610bd457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bb6575b505050505081525050905092915050565b60408051808201909152600080825260208201526060610c07868686866117c1565b600654604051631f5dad8b60e31b81529294509092506001600160a01b03169063faed6c5890610c3f908490899089906004016141cd565b600060405180830381600087803b158015610c5957600080fd5b505af1158015610c6d573d6000803e3d6000fd5b5050505094509492505050565b610c82613644565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b031680610cf75782546001600160401b03168452610d14565b6001600160401b0381811614610d14576001600160401b03811684525b8154600160401b900460ff16610dae578254600160401b900460ff1615610da95782600101805480602002602001604051908101604052809291908181526020018280548015610d8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d6f575b505050505060808501528254600160401b900460ff1660208501525b610e35565b8154600160401b900460ff90811614610e355781600101805480602002602001604051908101604052809291908181526020018280548015610e1957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610dfb575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610ede578254600160481b900460ff1615610ed95782600201805480602002602001604051908101604052809291908181526020018280548015610eae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e90575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610f74565b8154600160481b900460ff90811614610f745781600201805480602002602001604051908101604052809291908181526020018280548015610f4957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f2b575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610f7d846114f0565b50505092915050565b600061058482611895565b610f996114c3565b610fa360006118f0565b565b606060001963ffffffff831601610fe657610fc0838561058a565b604051602001610fd091906137a2565b6040516020818303038152906040529050611030565b60011963ffffffff83160161100f57610fff8385610c7a565b604051602001610fd091906139c0565b604051635d4be0fd60e11b815263ffffffff831660048201526024016108fa565b9392505050565b61103f6114c3565b60005b8181101561113e573683838381811061105d5761105d613c94565b606090810292909201925060009161107b9150830160408401613c2e565b6001600160a01b0316036110a257604051631074e82d60e11b815260040160405180910390fd5b6110b26040820160208301613b0f565b63ffffffff166000036110d8576040516349cfac4360e01b815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec906111138385613b0f565b63ffffffff16815260208101919091526040016000206111338282614213565b505050600101611042565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610a9e92919061426c565b6111786114c3565b6002548111156111a95760025460405163068109f760e31b81526108fa918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b7842906020015b60405180910390a150565b604080518082019091526000808252602082015260008061123661120f6060890160408a01613c2e565b61121f60808a0160608b01613b0f565b61122c60c08b018b613cca565b9050878a8a611940565b604080518082019091529182526020820152925050505b949350505050565b61125d6114c3565b61126681611a39565b50565b6112716114c3565b6001600160a01b03811661129b57604051631e4fbdf760e01b8152600060048201526024016108fa565b611266816118f0565b6112ad81611a87565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561130d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113319190613c77565b905061133e818484611ad8565b604080513381526001600160a01b03851660208201529081018390527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610790565b6001600160a01b0382166113ab576040516306b7a93160e41b815260040160405180910390fd5b6113bf6001600160a01b0384168383611afb565b505050565b6113cd81611895565b61126657604051633c30434160e21b815263ffffffff821660048201526024016108fa565b6001600160a01b03808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000026001600160c01b03199093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc80590610790908490869085906142ec565b611485828483611528565b61148f8284610c7a565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516107909392919061432e565b6000546001600160a01b03163314610fa35760405163118cdaa760e01b81523360048201526024016108fa565b602081015160ff1615801561150a5750606081015160ff16155b156112665760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806115435750602081015160ff16155b15611571576080810151511561156c576040516341d50bed60e11b815260040160405180910390fd5b6115d7565b806020015160ff168160800151511415806115ac57506002611595600160ff614374565b61159f919061438d565b60ff16816020015160ff16115b156115ca576040516341d50bed60e11b815260040160405180910390fd5b6115d78160800151611b4d565b604081015160ff90811614806115f25750604081015160ff16155b156116465760a0810151511561161b5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615611641576040516338682fa960e01b815260040160405180910390fd5b6116eb565b806040015160ff168160a00151511415806116815750600261166a600160ff614374565b611674919061438d565b60ff16816040015160ff16115b1561169f5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615806116c05750806040015160ff16816060015160ff16115b156116de576040516338682fa960e01b815260040160405180910390fd5b6116eb8160a00151611b4d565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361179d9390850192019061368c565b5060a082015180516117b991600284019160209091019061368c565b505050505050565b604080518082019091526000808252602082015260607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118205760405163467409c360e01b815260040160405180910390fd5b60008061182e888888611bb4565b909250905060008061186061184960608c0160408d01613c2e565b61185960808d0160608e01613b0f565b858a611c81565b909250905061186f82846143bd565b604080518082019091529081526020810191909152945091925050505b94509492505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580611030575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000806119508686611d8f565b9150915060006119618b8b84611da8565b9050600061196f8c8c61058a565b90506119858a826000015163ffffffff16611db5565b80602001516001600160a01b031663709eb6648c8e8d886040518563ffffffff1660e01b81526004016119bb94939291906143d0565b602060405180830381865afa1580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614403565b611a0690836143bd565b9150600080611a178e8e868e611de4565b9092509050611a2682856143bd565b9e909d509b505050505050505050505050565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f906020016111da565b3360009081526005602052604090205480821115611ac25760405163068109f760e31b815260048101839052602481018290526044016108fa565b3360009081526005602052604090209190039055565b6001600160a01b038316611af0576113bf8282611eb5565b6113bf838383611384565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113bf908490611f62565b6000805b82518110156113bf576000838281518110611b6e57611b6e613c94565b60200260200101519050826001600160a01b0316816001600160a01b031611611baa5760405163447516e160e01b815260040160405180910390fd5b9150600101611b51565b60606000806000611bc58686611d8f565b90925090506000611bef611bdf60608a0160408b01613c2e565b6101e360808b0160608c01613b0f565b90506000611c0060c08a018a613cca565b90509050611c1881836000015163ffffffff16611db5565b6020820151611c4890611c3160808c0160608d01613b0f565b611c4160608d0160408e01613c2e565b8488611fc5565b611c5290866143bd565b9450600080611c618b866120be565b9092509050611c7082886143bd565b909b909a5098505050505050505050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b0316636a8e2a4360e11b1790526003549192506000918291611d38916001600160a01b0316907f0000000000000000000000000000000000000000000000000000000000000000908490876120e1565b91509150611d4887878484612191565b90955093508415611d83576003546001600160a01b031660009081526005602052604081208054879290611d7d9084906143bd565b90915550505b50505094509492505050565b606080611d9c848461220c565b915091505b9250929050565b600061124d8484846122f9565b80821115611de057604051636333d79f60e11b815260048101839052602481018290526044016108fa565b5050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b031663d424422160e01b1790526003549192506000918291611e99916001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000009086612373565b91509150611ea987878484612191565b9450945050505061188c565b6001600160a01b038216611edc576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611f29576040519150601f19603f3d011682016040523d82523d6000602084013e611f2e565b606091505b50509050806113bf57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016108fa565b6000611f776001600160a01b0384168361241f565b90508051600014158015611f9c575080806020019051810190611f9a919061441c565b155b156113bf57604051635274afe760e01b81526001600160a01b03841660048201526024016108fa565b6040516338bf452160e11b81526000906001600160a01b0387169063717e8a4290611ffa9088908890889088906004016143d0565b6020604051808303816000875af1158015612019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203d9190614403565b90508015612073576001600160a01b0386166000908152600560205260408120805483929061206d9084906143bd565b90915550505b604080516001600160a01b0388168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b600060606120d660056120d0866144a8565b8561242d565b909590945092505050565b60006060863b80830361210857604080516000808252602082019092529250925050612187565b60008060008761ffff166001600160401b0381111561212957612129613d10565b6040519080825280601f01601f191660200182016040528015612153576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612174578792505b828152826000602083013e909450925050505b9550959350505050565b6000808315806121a2575082516020115b156121b25750600090508061188c565b6000838060200190518101906121c89190614403565b905085156121d857809150612202565b600060025488116121eb576002546121ed565b875b90508082116121fc57816121fe565b805b9350505b5094509492505050565b60608060008061221c868661257b565b91509150805160000361227457604080516000808252602082019092528391612268565b6040805180820190915260008152606060208201528152602001906001900390816122405790505b50935093505050611da1565b604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908161228b5790505090506040518060400160405280600260ff16815260200183815250816000815181106122e1576122e1613c94565b60209081029190910101529196919550909350505050565b6000806123068585610c7a565b905060008351600014612337578360008151811061232657612326613c94565b602002602001015160200151612348565b604051806020016040528060008152505b90506000806123568361273a565b9150915061236784888a85856129a0565b98975050505050505050565b60006060853b80830361239a5760408051600080825260208201909252925092505061188c565b60008060008761ffff166001600160401b038111156123bb576123bb613d10565b6040519080825280601f01601f1916602001820160405280156123e5576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612405578792505b828152826000602083013e90999098509650505050505050565b606061103083836000612b38565b60006060600061243c85612bd5565b9050600061244986612c62565b80516020820120606088015160408901519293509091600061246b8284610c7a565b90506000895160001461249c578960008151811061248b5761248b613c94565b6020026020010151602001516124ad565b604051806020016040528060008152505b905060606124ff8d846040518060a001604052808963ffffffff1681526020018c81526020018a815260200187600001516001600160401b03168152602001886001600160a01b031681525085612c7f565b604051919b5091506125179089908990602001614545565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a001518360405161256393929190614574565b60405180910390a15050505050505050935093915050565b60608060028310156125a35760405163196499c760e21b8152600060048201526024016108fa565b60006125b260028286886145d2565b6125bb916145fc565b60f01c905060026002198201612723578060005b868310156126c85760006125e860018501858a8c6145d2565b6125f19161462c565b60f81c9050600081900361261b57604051636780cfaf60e01b8152600060048201526024016108fa565b8160ff1660000361262e5780915061266b565b8160ff168160ff161461266b5736600061264a86868c8e6145d2565b9150915061265b8989868585612f1d565b9099509750859450919250829150505b600184019360009061268290600301868b8d6145d2565b61268b916145fc565b60f01c905060008190036126b55760405163196499c760e21b8152600481018690526024016108fa565b8060020161ffff168501945050506125cf565b8287146126eb5760405163196499c760e21b8152600481018490526024016108fa565b600287111561271c5736600061270385858b8d6145d2565b915091506127148888858585612f1d565b909850965050505b5050612731565b61272e82878761303d565b93505b50509250929050565b606080825160000361274b57915091565b6000612756846131c8565b90508060ff166001036128085760408051600180825281830190925290816020015b606081526020019060019003908161277857905050925083836000815181106127a3576127a3613c94565b6020908102919091010152604080516001808252818301909252908160200160208202803683370190505091506127db8460036132a2565b826000815181106127ee576127ee613c94565b602002602001019060ff16908160ff168152505050915091565b8060ff166001600160401b0381111561282357612823613d10565b60405190808252806020026020018201604052801561284c578160200160208202803683370190505b5091508060ff166001600160401b0381111561286a5761286a613d10565b60405190808252806020026020018201604052801561289d57816020015b60608152602001906001900390816128885790505b50925060008060ff5b86518310156129335760019092019160006128c188856132fe565b60029490940193905060006128d689866132a2565b90508260ff1660ff036128eb57809250612924565b8260ff168160ff16146129245760021984860301600061290c8b878461335b565b905061291a8a8a8784613468565b5093909301929150815b5061ffff1692909201916128a6565b818303600061294389858461335b565b905061295188888584613468565b60005b8660ff168160ff16101561299457878160ff168151811061297757612977613c94565b6020908102919091010180516000190160ff169052600101612954565b50505050505050915091565b600080866040015187602001516129b7919061465a565b905060005b8160ff168160ff161015612b2d576000886020015160ff168260ff1610612a115760a089015160208a01516129f19084614374565b60ff1681518110612a0457612a04613c94565b6020026020010151612a33565b88608001518260ff1681518110612a2a57612a2a613c94565b60200260200101515b60408051602081019091526000808252919250905b8651811015612aa0578360ff16878281518110612a6757612a67613c94565b602002602001015160ff1603612a9857878181518110612a8957612a89613c94565b60200260200101519150612aa0565b600101612a48565b508951604051630c2eceab60e21b81526001600160a01b038416916330bb3aac91612ad3918d918d908790600401614673565b602060405180830381865afa158015612af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b149190614403565b612b1e90866143bd565b945050508060010190506129bc565b505095945050505050565b606081471015612b5d5760405163cd78605960e01b81523060048201526024016108fa565b600080856001600160a01b03168486604051612b7991906146b2565b60006040518083038185875af1925050503d8060008114612bb6576040519150601f19603f3d011682016040523d82523d6000602084013e612bbb565b606091505b5091509150612bcb86838361357e565b9695505050505050565b805160208083015160408085015160608087015160808801519351600160f81b9681019690965260c09690961b6001600160c01b031916602186015260e093841b6001600160e01b031990811660298701526001600160a01b03909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c00151604051602001612c4c9291906146c4565b60006060600080612c8f8561273a565b91509150600087604001518860200151612ca9919061465a565b90508060ff166001600160401b03811115612cc657612cc6613d10565b604051908082528060200260200182016040528015612cef578160200160208202803683370190505b50935060005b8160ff168160ff161015610c6d576000896020015160ff168260ff1610612d4a5760a08a015160208b0151612d2a9084614374565b60ff1681518110612d3d57612d3d613c94565b6020026020010151612d6c565b89608001518260ff1681518110612d6357612d63613c94565b60200260200101515b60408051602081019091526000808252919250905b8551811015612dd9578360ff16868281518110612da057612da0613c94565b602002602001015160ff1603612dd157868181518110612dc257612dc2613c94565b60200260200101519150612dd9565b600101612d81565b506040516395d376d760e01b81526001600160a01b038316906395d376d790612e08908d9085906004016146ea565b6020604051808303816000875af1158015612e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4b9190614403565b878460ff1681518110612e6057612e60613c94565b6020026020010181815250506000878460ff1681518110612e8357612e83613c94565b60200260200101511115612f1357868360ff1681518110612ea657612ea6613c94565b60200260200101518c6000846001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ee191906143bd565b92505081905550868360ff1681518110612efd57612efd613c94565b602002602001015188612f1091906143bd565b97505b5050600101612cf5565b60608060001960ff861601612f9a57865115612f5c57868484604051602001612f489392919061475c565b604051602081830303815290604052612f93565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613032565b60011960ff86160161301457855115612fd657858484604051602001612fc29392919061475c565b60405160208183030381529060405261300d565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613032565b604051636780cfaf60e01b815260ff861660048201526024016108fa565b509495939450505050565b606060001961ffff8516016130dd576022821461306d576040516301b8ca5560e31b815260040160405180910390fd5b600061308e6130806022600286886145d2565b61308991614784565b6135da565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b166024820152909150603401604051602081830303815290604052915050611030565b60011961ffff8516016131a9576042821115806130fa5750606282115b15613118576040516360493e2b60e11b815260040160405180910390fd5b600061312b6130806022600286886145d2565b905060006131406130806042602287896145d2565b905060006041198501613156866042818a6145d2565b61315f91614784565b60405160086020938403029190911c9250613190916001916011918391889183916031916002918b918b91016147a2565b6040516020818303038152906040529350505050611030565b604051630417051360e41b815261ffff851660048201526024016108fa565b600080805b83518210156132775760019091019060006131e885846132fe565b905060028301925060028161ffff1610156132195760405163013adb8360e21b8152600481018490526024016108fa565b600061322586856132a2565b90508060ff1660ff0361324b576040516334f4f66f60e21b815260040160405180910390fd5b600160ff82161b83166132685760019485019460ff82161b831792505b5061ffff1691909101906131cd565b8351821461329b5760405163013adb8360e21b8152600481018390526024016108fa565b5050919050565b60006132af8260016143bd565b835110156132f55760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b60448201526064016108fa565b50016001015190565b600061330b8260026143bd565b835110156133525760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b60448201526064016108fa565b50016002015190565b60608161336981601f6143bd565b10156133a85760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016108fa565b6133b282846143bd565b845110156133f65760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016108fa565b606082158015613415576040519150600082526020820160405261345f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561344e578051835260209283019201613436565b5050858452601f01601f1916604052505b50949350505050565b8160ff1660ff0361348c576040516334f4f66f60e21b815260040160405180910390fd5b600061349983600161465a565b905060005b84518110156117b95760008582815181106134bb576134bb613c94565b602002602001015190508060ff168360ff1603613530578682815181106134e4576134e4613c94565b6020026020010151846040516020016134fe929190614545565b60405160208183030381529060405287838151811061351f5761351f613c94565b6020026020010181905250506117b9565b8060ff16600003613575578286838151811061354e5761354e613c94565b602002602001019060ff16908160ff16815250508387838151811061351f5761351f613c94565b5060010161349e565b6060826135935761358e8261361b565b611030565b81511580156135aa57506001600160a01b0384163b155b156135d357604051639996b31560e01b81526001600160a01b03851660048201526024016108fa565b5080611030565b60006fffffffffffffffffffffffffffffffff821115613617576040516306dfcc6560e41b815260806004820152602481018390526044016108fa565b5090565b80511561362b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156136e1579160200282015b828111156136e157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906136ac565b506136179291505b8082111561361757600081556001016136e9565b60006020828403121561370f57600080fd5b81356001600160e01b03198116811461103057600080fd5b6001600160a01b038116811461126657600080fd5b803561374781613727565b919050565b63ffffffff8116811461126657600080fd5b80356137478161374c565b6000806040838503121561377c57600080fd5b823561378781613727565b915060208301356137978161374c565b809150509250929050565b815163ffffffff1681526020808301516001600160a01b03169082015260408101610584565b60208101600383106137ea57634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006060848603121561380557600080fd5b833561381081613727565b9250602084013561382081613727565b929592945050506040919091013590565b60008083601f84011261384357600080fd5b5081356001600160401b0381111561385a57600080fd5b6020830191508360208260051b8501011115611da157600080fd5b60008060006040848603121561388a57600080fd5b833561389581613727565b925060208401356001600160401b038111156138b057600080fd5b6138bc86828701613831565b9497909650939450505050565b600080602083850312156138dc57600080fd5b82356001600160401b038111156138f257600080fd5b6138fe85828601613831565b90969095509350505050565b60008151808452602080850194506020840160005b838110156139445781516001600160a01b03168752958201959082019060010161391f565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261399e60c085018261390a565b905060a083015184820360a08601526139b7828261390a565b95945050505050565b602081526000611030602083018461394f565b801515811461126657600080fd5b8035613747816139d3565b60008060008060608587031215613a0257600080fd5b84356001600160401b0380821115613a1957600080fd5b9086019060e08289031215613a2d57600080fd5b90945060208601359080821115613a4357600080fd5b818701915087601f830112613a5757600080fd5b813581811115613a6657600080fd5b886020828501011115613a7857600080fd5b602083019550809450505050613a90604086016139e1565b905092959194509250565b60005b83811015613ab6578181015183820152602001613a9e565b50506000910152565b60008151808452613ad7816020860160208601613a9b565b601f01601f19169290920160200192915050565b825181526020808401519082015260606040820152600061124d6060830184613abf565b600060208284031215613b2157600080fd5b81356110308161374c565b600080600060608486031215613b4157600080fd5b8335613b4c8161374c565b92506020840135613b5c81613727565b91506040840135613b6c8161374c565b809150509250925092565b6020815260006110306020830184613abf565b60008060208385031215613b9d57600080fd5b82356001600160401b0380821115613bb457600080fd5b818501915085601f830112613bc857600080fd5b813581811115613bd757600080fd5b866020606083028501011115613bec57600080fd5b60209290920196919550909350505050565b600060208284031215613c1057600080fd5b5035919050565b815181526020808301519082015260408101610584565b600060208284031215613c4057600080fd5b813561103081613727565b60008060408385031215613c5e57600080fd5b8235613c6981613727565b946020939093013593505050565b600060208284031215613c8957600080fd5b815161103081613727565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112613cc057600080fd5b9190910192915050565b6000808335601e19843603018112613ce157600080fd5b8301803591506001600160401b03821115613cfb57600080fd5b602001915036819003821315611da157600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715613d4857613d48613d10565b60405290565b60405160e081016001600160401b0381118282101715613d4857613d48613d10565b604051601f8201601f191681016001600160401b0381118282101715613d9857613d98613d10565b604052919050565b600060408284031215613db257600080fd5b604051604081018181106001600160401b0382111715613dd457613dd4613d10565b6040528235613de28161374c565b81526020830135613df281613727565b60208201529392505050565b80356001600160401b038116811461374757600080fd5b803560ff8116811461374757600080fd5b600082601f830112613e3757600080fd5b813560206001600160401b03821115613e5257613e52613d10565b8160051b613e61828201613d70565b9283528481018201928281019087851115613e7b57600080fd5b83870192505b84831015613ea3578235613e9481613727565b82529183019190830190613e81565b979650505050505050565b600060c08284031215613ec057600080fd5b613ec8613d26565b9050613ed382613dfe565b8152613ee160208301613e15565b6020820152613ef260408301613e15565b6040820152613f0360608301613e15565b606082015260808201356001600160401b0380821115613f2257600080fd5b613f2e85838601613e26565b608084015260a0840135915080821115613f4757600080fd5b50613f5484828501613e26565b60a08301525092915050565b600060208284031215613f7257600080fd5b81356001600160401b03811115613f8857600080fd5b61124d84828501613eae565b60008235603e19833603018112613cc057600080fd5b6000823560be19833603018112613cc057600080fd5b600060208284031215613fd257600080fd5b61103082613e15565b600060208284031215613fed57600080fd5b61103082613dfe565b60006105843683613eae565b6000808335601e1984360301811261401957600080fd5b83016020810192503590506001600160401b0381111561403857600080fd5b8060051b3603821315611da157600080fd5b8183526000602080850194508260005b8581101561394457813561406d81613727565b6001600160a01b03168752958201959082019060010161405a565b60208082528181018390526000906040808401600586901b8501820187855b888110156141bf57603f19808985030185528235603e198c36030181126140cd57600080fd5b8b0180356140da8161374c565b63ffffffff168552808801353682900360be190181126140f957600080fd5b858901889052016001600160401b0361411182613dfe565b1687860152614121888201613e15565b606060ff808316828901526141378a8501613e15565b92506080818416818a015261414d838601613e15565b935060a09250818416838a015261416681860186614002565b60c08b8101529450915061418190506101008901848361404a565b92505061419081840184614002565b93509050838783030160e08801526141a982848361404a565b978a0197965050509287019250506001016140a7565b509098975050505050505050565b6040815260006141e06040830186613abf565b8281036020840152838152838560208301376000602085830101526020601f19601f860116820101915050949350505050565b813561421e8161374c565b63ffffffff8116905081548163ffffffff198216178355602084013561424381613727565b6001600160c01b03199190911690911760209190911b640100000000600160c01b031617905550565b6020808252818101839052600090604080840186845b878110156142df5781356142958161374c565b63ffffffff908116845282860135906142ad8261374c565b1683860152818401356142bf81613727565b6001600160a01b0316838501526060928301929190910190600101614282565b5090979650505050505050565b6001600160a01b038416815263ffffffff831660208201526080810161124d6040830184805163ffffffff1682526020908101516001600160a01b0316910152565b6001600160a01b038416815263ffffffff831660208201526060604082018190526000906139b79083018461394f565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156105845761058461435e565b600060ff8316806143ae57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b808201808211156105845761058461435e565b63ffffffff8516815260018060a01b0384166020820152826040820152608060608201526000612bcb6080830184613abf565b60006020828403121561441557600080fd5b5051919050565b60006020828403121561442e57600080fd5b8151611030816139d3565b600082601f83011261444a57600080fd5b81356001600160401b0381111561446357614463613d10565b614476601f8201601f1916602001613d70565b81815284602083860101111561448b57600080fd5b816020850160208301376000918101602001919091529392505050565b600060e082360312156144ba57600080fd5b6144c2613d4e565b6144cb83613dfe565b81526144d96020840161375e565b60208201526144ea6040840161373c565b60408201526144fb6060840161375e565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b0381111561452d57600080fd5b61453936828601614439565b60c08301525092915050565b60008351614557818460208801613a9b565b83519083019061456b818360208801613a9b565b01949350505050565b606081526000614587606083018661390a565b6020838203602085015261459b828761390a565b84810360408601528551808252602080880194509091019060005b818110156141bf578451835293830193918301916001016145b6565b600080858511156145e257600080fd5b838611156145ef57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156146245780818660020360031b1b83161692505b505092915050565b6001600160f81b031981358181169160018510156146245760019490940360031b84901b1690921692915050565b60ff81811683821601908111156105845761058461435e565b63ffffffff851681526001600160401b03841660208201526001600160a01b0383166040820152608060608201819052600090612bcb90830184613abf565b60008251613cc0818460208701613a9b565b828152600082516146dc816020850160208701613a9b565b919091016020019392505050565b6040815263ffffffff83511660408201526000602084015160a0606084015261471660e0840182613abf565b604086015160808581019190915260608701516001600160401b031660a08601528601516001600160a01b031660c0850152838103602085015290506139b78185613abf565b6000845161476e818460208901613a9b565b8201838582376000930192835250909392505050565b8035602083101561058457600019602084900360031b1b1692915050565b60f88a811b6001600160f81b0319908116835260f08b811b6001600160f01b031990811660018601528b841b8316600386015260808b901b6001600160801b031916600486015289841b831660148601529088901b1660158401529085901b1660178201526000614822601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea26469706673582212209c4e56d6c67105dfab95a5db652280357c444a31ddd8e746e20a46bf6d44b3bb64736f6c6343000816003360c06040523480156200001157600080fd5b50604051620024413803806200244183398101604081905262000034916200013e565b8080816001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009b919062000170565b3380620000c257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000cd81620000ee565b506001600160a01b0390911660805263ffffffff1660a05250620001989050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200015157600080fd5b81516001600160a01b03811681146200016957600080fd5b9392505050565b6000602082840312156200018357600080fd5b815163ffffffff811681146200016957600080fd5b60805160a05161227c620001c5600039600061031e01526000818161041b0152610484015261227c6000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806343ea4fa9116100a25780638da5cb5b116100715780638da5cb5b146102665780639c33abf714610281578063c40ff835146102a1578063e084d952146102b4578063f2fde38b146102c757600080fd5b806343ea4fa91461021857806354fd4d501461022b5780636750cd4c1461024b578063715018a61461025e57600080fd5b806320efd722116100de57806320efd7221461016f57806329460b0b1461018257806339e3f938146101955780633c782a52146101b557600080fd5b806301ffc9a7146101105780630223536e146101385780630894edf11461014d5780631881d94d14610160575b600080fd5b61012361011e3660046116ed565b6102da565b60405190151581526020015b60405180910390f35b61014b61014636600461177b565b610305565b005b61014b61015b3660046117d7565b610317565b600160405161012f9190611822565b61014b61017d3660046118a5565b610482565b61014b6101903660046118f7565b6105a4565b6101a86101a336600461194c565b61073c565b60405161012f9190611a35565b6101f96101c3366004611a48565b600260209081526000938452604080852082529284528284209052825290205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161012f565b6101a861022636600461194c565b610877565b60408051600381526000602082015260029181019190915260600161012f565b610123610259366004611a7d565b610b83565b61014b610b8e565b6000546040516001600160a01b03909116815260200161012f565b61029461028f366004611a98565b610ba2565b60405161012f9190611ad2565b61014b6102af366004611b21565b610c0b565b6101236102c2366004611d10565b610c1b565b61014b6102d5366004611d5d565b610c30565b60006001600160e01b03198216630ab7be9f60e01b14806102ff57506102ff82610c6e565b92915050565b61031184848484610ca3565b50505050565b61034283837f0000000000000000000000000000000000000000000000000000000000000000610d89565b600061034e8484610e0c565b9050600061035c8585610e1e565b9050600061036a8383610877565b905061038e818787604051610380929190611d78565b604051809103902086610e41565b600060405180606001604052808463ffffffff1681526020016103b18989610f91565b81526020016103c08989610faa565b6001600160401b039081169091526040805163a825d74760e01b8152835163ffffffff166004820152602084015160248201529083015190911660448201526001600160a01b038681166064830152608482018890529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a825d7479060a401600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b5050505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146104cb5760405163467409c360e01b815260040160405180910390fd5b60005b8181101561031157368383838181106104e9576104e9611d88565b90506020028101906104fb9190611d9e565b905061051261050d6020830183611a7d565b610fcd565b60026105246040830160208401611a7d565b63ffffffff16036105645761055f61053f6020830183611a7d565b8661054d6040850185611dbe565b81019061055a9190611e04565b610ffb565b61059b565b6105746040820160208301611a7d565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016104ce565b6105ac611051565b60005b818110156106fe57368383838181106105ca576105ca611d88565b90506020028101906105dc9190611e38565b905060ff6105ed6020830183611e4e565b6105fe906040810190602001611e64565b60ff160361061f576040516341d50bed60e11b815260040160405180910390fd5b60ff61062e6020830183611e4e565b61063f906060810190604001611e64565b60ff16036106605760405163211089b360e11b815260040160405180910390fd5b6001600160401b036106756020830183611e4e565b610683906020810190611e7f565b6001600160401b0316036106aa5760405163281b33d760e11b815260040160405180910390fd5b6106c86106ba6020830183611e4e565b6106c390611e9a565b61107e565b6106f560006106da6020840184611a7d565b6106e76020850185611e4e565b6106f090611e9a565b6110b6565b506001016105af565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610730929190611f2a565b60405180910390a15050565b61074461162b565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561080457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107e6575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561086657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610848575b505050505081525050905092915050565b61087f61162b565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b0316806108f45782546001600160401b03168452610911565b6001600160401b0381811614610911576001600160401b03811684525b8154600160401b900460ff166109ab578254600160401b900460ff16156109a6578260010180548060200260200160405190810160405280929190818152602001828054801561098a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161096c575b505050505060808501528254600160401b900460ff1660208501525b610a32565b8154600160401b900460ff90811614610a325781600101805480602002602001604051908101604052809291908181526020018280548015610a1657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109f8575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610adb578254600160481b900460ff1615610ad65782600201805480602002602001604051908101604052809291908181526020018280548015610aab57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a8d575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610b71565b8154600160481b900460ff90811614610b715781600201805480602002602001604051908101604052809291908181526020018280548015610b4657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b28575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610b7a8461107e565b50505092915050565b60006102ff8261134f565b610b96611051565b610ba060006113aa565b565b606060011963ffffffff831601610be357610bbd8385610877565b604051602001610bcd9190611a35565b6040516020818303038152906040529050610c04565b604051635d4be0fd60e11b815263ffffffff83166004820152602401610592565b9392505050565b610c16838383610d89565b505050565b6000610c288484846113fa565b949350505050565b610c38611051565b6001600160a01b038116610c6257604051631e4fbdf760e01b815260006004820152602401610592565b610c6b816113aa565b50565b60006001600160e01b031982166325fc096160e21b14806102ff57506301ffc9a760e01b6001600160e01b03198316146102ff565b604080518082018252600181526001600160401b03831660208201529051600290600090610cd49088908890611d78565b604080519182900390912082526020808301939093529081016000908120868252835281812033808352908452908290208451815495909401516001600160401b03166101000268ffffffffffffffff00199415159490941668ffffffffffffffffff19909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab5691610d7b91879087908690889061206c565b60405180910390a150505050565b60518214610daa5760405163c9bf37b760e01b815260040160405180910390fd5b6001610db68484611503565b60ff1614610dd757604051633a9ae7b960e01b815260040160405180910390fd5b8063ffffffff16610de88484611525565b63ffffffff1614610c165760405163216964bf60e11b815260040160405180910390fd5b6000610c04610e1b8484611535565b90565b6000610e2e600d600984866120c6565b610e37916120f0565b60e01c9392505050565b610e4c8383836113fa565b610e695760405163130c463560e21b815260040160405180910390fd5b602083015160ff1615610efe5760005b836020015160ff168160ff161015610efc57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110610ec157610ec1611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610e79565b505b604083015160ff1615610c165760005b836040015160ff168160ff161015610311576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110610f5657610f56611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610f0e565b6000610fa1602d600d84866120c6565b610c0491612120565b6000610fba6009600184866120c6565b610fc39161213e565b60c01c9392505050565b610fd68161134f565b610c6b57604051633c30434160e21b815263ffffffff82166004820152602401610592565b6110068284836110b6565b6110108284610877565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516110449392919061216c565b60405180910390a1505050565b6000546001600160a01b03163314610ba05760405163118cdaa760e01b8152336004820152602401610592565b602081015160ff161580156110985750606081015160ff16155b15610c6b5760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806110d15750602081015160ff16155b156110ff57608081015151156110fa576040516341d50bed60e11b815260040160405180910390fd5b611165565b806020015160ff1681608001515114158061113a57506002611123600160ff6121b2565b61112d91906121cb565b60ff16816020015160ff16115b15611158576040516341d50bed60e11b815260040160405180910390fd5b6111658160800151611545565b604081015160ff90811614806111805750604081015160ff16155b156111d45760a081015151156111a95760405163211089b360e11b815260040160405180910390fd5b606081015160ff16156111cf576040516338682fa960e01b815260040160405180910390fd5b611279565b806040015160ff168160a001515114158061120f575060026111f8600160ff6121b2565b61120291906121cb565b60ff16816040015160ff16115b1561122d5760405163211089b360e11b815260040160405180910390fd5b606081015160ff16158061124e5750806040015160ff16816060015160ff16115b1561126c576040516338682fa960e01b815260040160405180910390fd5b6112798160a00151611545565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361132b93908501920190611673565b5060a08201518051611347916002840191602090910190611673565b505050505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580610c04575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b602083015160009060ff161561147d5760005b846020015160ff168160ff1610156114655761144f85608001518260ff168151811061143b5761143b611d88565b6020026020010151858588600001516115ac565b61145d576000915050610c04565b60010161140d565b50836040015160ff1660000361147d57506001610c04565b606084015160005b856040015160ff168160ff1610156114f7576114c78660a001518260ff16815181106114b3576114b3611d88565b6020026020010151868689600001516115ac565b156114ef57816114d6816121fb565b9250508160ff166000036114ef57600192505050610c04565b600101611485565b50600095945050505050565b600061151260018284866120c6565b61151b91612218565b60f81c9392505050565b6000610e2e6031602d84866120c6565b6000610fa16051603184866120c6565b6000805b8251811015610c1657600083828151811061156657611566611d88565b60200260200101519050826001600160a01b0316816001600160a01b0316116115a25760405163447516e160e01b815260040160405180910390fd5b9150600101611549565b600083815260026020908152604080832085845282528083206001600160a01b0388168452825280832081518083019092525460ff81161580158084526101009092046001600160401b03169383019390935290916116215750826001600160401b031681602001516001600160401b031610155b9695505050505050565b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156116c8579160200282015b828111156116c857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611693565b506116d49291506116d8565b5090565b5b808211156116d457600081556001016116d9565b6000602082840312156116ff57600080fd5b81356001600160e01b031981168114610c0457600080fd5b60008083601f84011261172957600080fd5b5081356001600160401b0381111561174057600080fd5b60208301915083602082850101111561175857600080fd5b9250929050565b80356001600160401b038116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b84356001600160401b038111156117a757600080fd5b6117b387828801611717565b909550935050602085013591506117cc6040860161175f565b905092959194509250565b6000806000604084860312156117ec57600080fd5b83356001600160401b0381111561180257600080fd5b61180e86828701611717565b909790965060209590950135949350505050565b602081016003831061184457634e487b7160e01b600052602160045260246000fd5b91905290565b80356001600160a01b038116811461177657600080fd5b60008083601f84011261187357600080fd5b5081356001600160401b0381111561188a57600080fd5b6020830191508360208260051b850101111561175857600080fd5b6000806000604084860312156118ba57600080fd5b6118c38461184a565b925060208401356001600160401b038111156118de57600080fd5b6118ea86828701611861565b9497909650939450505050565b6000806020838503121561190a57600080fd5b82356001600160401b0381111561192057600080fd5b61192c85828601611861565b90969095509350505050565b803563ffffffff8116811461177657600080fd5b6000806040838503121561195f57600080fd5b6119688361184a565b915061197660208401611938565b90509250929050565b60008151808452602080850194506020840160005b838110156119b95781516001600160a01b031687529582019590820190600101611994565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c06080850152611a1360c085018261197f565b905060a083015184820360a0860152611a2c828261197f565b95945050505050565b602081526000610c0460208301846119c4565b600080600060608486031215611a5d57600080fd5b8335925060208401359150611a746040850161184a565b90509250925092565b600060208284031215611a8f57600080fd5b610c0482611938565b600080600060608486031215611aad57600080fd5b611ab684611938565b9250611ac46020850161184a565b9150611a7460408501611938565b60006020808352835180602085015260005b81811015611b0057858101830151858201604001528201611ae4565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060408486031215611b3657600080fd5b83356001600160401b03811115611b4c57600080fd5b611b5886828701611717565b9094509250611a74905060208501611938565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611ba357611ba3611b6b565b60405290565b803560ff8116811461177657600080fd5b600082601f830112611bcb57600080fd5b813560206001600160401b0380831115611be757611be7611b6b565b8260051b604051601f19603f83011681018181108482111715611c0c57611c0c611b6b565b6040529384526020818701810194908101925087851115611c2c57600080fd5b6020870191505b84821015611c5357611c448261184a565b83529183019190830190611c33565b979650505050505050565b600060c08284031215611c7057600080fd5b611c78611b81565b9050611c838261175f565b8152611c9160208301611ba9565b6020820152611ca260408301611ba9565b6040820152611cb360608301611ba9565b606082015260808201356001600160401b0380821115611cd257600080fd5b611cde85838601611bba565b608084015260a0840135915080821115611cf757600080fd5b50611d0484828501611bba565b60a08301525092915050565b600080600060608486031215611d2557600080fd5b83356001600160401b03811115611d3b57600080fd5b611d4786828701611c5e565b9660208601359650604090950135949350505050565b600060208284031215611d6f57600080fd5b610c048261184a565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112611db457600080fd5b9190910192915050565b6000808335601e19843603018112611dd557600080fd5b8301803591506001600160401b03821115611def57600080fd5b60200191503681900382131561175857600080fd5b600060208284031215611e1657600080fd5b81356001600160401b03811115611e2c57600080fd5b610c2884828501611c5e565b60008235603e19833603018112611db457600080fd5b6000823560be19833603018112611db457600080fd5b600060208284031215611e7657600080fd5b610c0482611ba9565b600060208284031215611e9157600080fd5b610c048261175f565b60006102ff3683611c5e565b6000808335601e19843603018112611ebd57600080fd5b83016020810192503590506001600160401b03811115611edc57600080fd5b8060051b360382131561175857600080fd5b8183526000602080850194508260005b858110156119b9576001600160a01b03611f178361184a565b1687529582019590820190600101611efe565b60208082528181018390526000906040808401600586901b8501820187855b8881101561205e57603f19808985030185528235603e198c3603018112611f6f57600080fd5b8b0163ffffffff611f7f82611938565b1685528781013560be19823603018112611f9857600080fd5b858901889052016001600160401b03611fb08261175f565b1687860152611fc0888201611ba9565b606060ff80831682890152611fd68a8501611ba9565b92506080818416818a0152611fec838601611ba9565b935060a09250818416838a015261200581860186611ea6565b60c08b81015294509150612020905061010089018483611eee565b92505061202f81840184611ea6565b93509050838783030160e0880152612048828483611eee565b978a019796505050928701925050600101611f49565b509098975050505050505050565b6001600160a01b03861681526080602082018190528101849052838560a0830137600060a08583010152600060a0601f19601f87011683010190506001600160401b03841660408301528260608301529695505050505050565b600080858511156120d657600080fd5b838611156120e357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156121185780818660040360031b1b83161692505b505092915050565b803560208310156102ff57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156121185760089490940360031b84901b1690921692915050565b6001600160a01b038416815263ffffffff83166020820152606060408201819052600090611a2c908301846119c4565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ff576102ff61219c565b600060ff8316806121ec57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b600060ff82168061220e5761220e61219c565b6000190192915050565b6001600160f81b031981358181169160018510156121185760019490940360031b84901b169092169291505056fea26469706673582212209a9d42e4d24ba1f5577ac32292c65d2ac9fe71fc72829f0ae54477497a89995e64736f6c6343000816003360806040523480156200001157600080fd5b5060405162002c7038038062002c7083398101604081905262000034916200046f565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b038581169190911790915584908490612ee090859085908216156200008f576200008d60008362000226565b505b60005b8551811015620000f457620000ea7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000d657620000d662000523565b60200260200101516200022660201b60201c565b5060010162000092565b5060005b815181101562000146576200013c7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000d657620000d662000523565b50600101620000f8565b505060016004908155600680546001600160a01b0319166001600160a01b038d169081179091556040805163416ecebf60e01b8152905191965063416ecebf95508083019450602093509091908290030181865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d3919062000539565b6006805463ffffffff92909216600160a01b0263ffffffff60a01b199092169190911790555050600780546001600160a01b039094166001600160a01b03199094169390931790925550620005a5915050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156200027957506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b15620002c65760018054601590620002a190600160a81b90046001600160401b031662000568565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b620002d28383620002de565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1662000383576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556200033a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620002d8565b506000620002d8565b80516001600160a01b0381168114620003a457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003d157600080fd5b815160206001600160401b0380831115620003f057620003f0620003a9565b8260051b604051601f19603f83011681018181108482111715620004185762000418620003a9565b60405293845260208187018101949081019250878511156200043957600080fd5b6020870191505b84821015620004645762000454826200038c565b8352918301919083019062000440565b979650505050505050565b60008060008060008060c087890312156200048957600080fd5b62000494876200038c565b9550620004a4602088016200038c565b60408801519095506001600160401b0380821115620004c257600080fd5b620004d08a838b01620003bf565b9550620004e060608a016200038c565b9450620004f060808a016200038c565b935060a08901519150808211156200050757600080fd5b506200051689828a01620003bf565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156200054c57600080fd5b815163ffffffff811681146200056157600080fd5b9392505050565b60006001600160401b038281166002600160401b031981016200059b57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6126bb80620005b56000396000f3fe6080604052600436106101e25760003560e01c8063709eb66411610102578063a217fddf11610095578063c7b2370b11610064578063c7b2370b14610649578063cd88b90314610669578063d2ae210414610689578063d547741f146106c857600080fd5b8063a217fddf146105cf578063c2803b2c146105e4578063c358de0a14610604578063c416aa511461062457600080fd5b8063741bef1a116100d1578063741bef1a146104cd5780638624ba07146104ed57806391d14854146105005780639e9449651461052057600080fd5b8063709eb66414610434578063717e8a4214610454578063724e78da14610474578063726075371461049457600080fd5b80632f2ff15d1161017a5780633d85ac33116101495780633d85ac33146103b1578063475b6d9e146103d15780635c975abb146103e45780635e280f11146103fc57600080fd5b80632f2ff15d1461033e5780633146646a1461035e57806336568abe1461037e5780633927c0751461039e57600080fd5b806316c38b3c116101b657806316c38b3c14610293578063248a9ca3146102b357806326e67a37146102f15780632de113761461031e57600080fd5b8062bf2e80146101e757806301e336671461022157806301ffc9a7146102435780631095b6d714610273575b600080fd5b3480156101f357600080fd5b5060015461020990600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561022d57600080fd5b5061024161023c366004611a9c565b6106e8565b005b34801561024f57600080fd5b5061026361025e366004611ad8565b610711565b6040519015158152602001610218565b34801561027f57600080fd5b5061024161028e366004611a9c565b610748565b34801561029f57600080fd5b506102416102ae366004611b10565b61085b565b3480156102bf57600080fd5b506102e36102ce366004611b2d565b60009081526020819052604090206001015490565b604051908152602001610218565b3480156102fd57600080fd5b5061031161030c366004611b5a565b610880565b6040516102189190611b75565b34801561032a57600080fd5b50610263610339366004611bbc565b610907565b34801561034a57600080fd5b50610241610359366004611bd7565b61099e565b34801561036a57600080fd5b50610241610379366004611c4b565b6109c3565b34801561038a57600080fd5b50610241610399366004611bd7565b610a53565b6102416103ac366004611cf2565b610a6c565b3480156103bd57600080fd5b506102416103cc366004611e33565b610b27565b6102416103df366004611f4e565b610c9e565b3480156103f057600080fd5b5060015460ff16610263565b34801561040857600080fd5b5060065461041c906001600160a01b031681565b6040516001600160a01b039091168152602001610218565b34801561044057600080fd5b506102e361044f366004611fcc565b610ce0565b34801561046057600080fd5b506102e361046f366004611fcc565b610de7565b34801561048057600080fd5b5061024161048f366004611bbc565b610f13565b3480156104a057600080fd5b506006546104b890600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610218565b3480156104d957600080fd5b5060025461041c906001600160a01b031681565b6102416104fb36600461203a565b610f79565b34801561050c57600080fd5b5061026361051b366004611bd7565b611084565b34801561052c57600080fd5b5061058c61053b366004611b5a565b600560205260009081526040902080546001909101546001600160401b038083169261ffff600160401b820416926001600160801b03600160501b90920482169291811691600160801b9091041685565b604080516001600160401b03968716815261ffff90951660208601526001600160801b03938416908501529116606083015291909116608082015260a001610218565b3480156105db57600080fd5b506102e3600081565b3480156105f057600080fd5b5060075461041c906001600160a01b031681565b34801561061057600080fd5b5061024161061f3660046120b2565b6110ad565b34801561063057600080fd5b5060015461041c9061010090046001600160a01b031681565b34801561065557600080fd5b50610241610664366004611bbc565b611115565b34801561067557600080fd5b506102416106843660046120cd565b611183565b34801561069557600080fd5b506001546106b090600160a81b90046001600160401b031681565b6040516001600160401b039091168152602001610218565b3480156106d457600080fd5b506102416106e3366004611bd7565b6111bb565b600080516020612666833981519152610700816111e0565b61070b8484846111ed565b50505050565b60006001600160e01b03198216637965db0b60e01b148061074257506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020612666833981519152610760816111e0565b61078a7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de85611084565b6107a757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610866816111e0565b811561087857610874611215565b5050565b610874611269565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156108fb57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108cc5790505b50505050509050919050565b60006109337f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611084565b1561094057506000919050565b600154600160a81b90046001600160401b0316158061098457506109847f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83611084565b1561099157506001919050565b506000919050565b919050565b6000828152602081905260409020600101546109b9816111e0565b61070b83836112a2565b6000805160206126668339815191526109db816111e0565b6109e3611338565b600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610a179087908790879060040161217b565b600060405180830381600087803b158015610a3157600080fd5b505af1158015610a45573d6000803e3d6000fd5b5050505061070b6001600455565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020612666833981519152610a84816111e0565b610a8c611338565b610aac88610a9a8686611362565b610aa48787611385565b8a8a8a61139e565b50600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610ae19087908790879060040161217b565b600060405180830381600087803b158015610afb57600080fd5b505af1158015610b0f573d6000803e3d6000fd5b50505050610b1d6001600455565b5050505050505050565b600080516020612666833981519152610b3f816111e0565b60005b8251811015610c62576000838281518110610b5f57610b5f61219f565b6020908102919091018101516040805160a08082018352838501516001600160401b03908116835260608086015161ffff9081168589019081526080808901516001600160801b03908116888a01908152968a01518116948801948552888a01518616918801918252985163ffffffff1660009081526005909a529690982094518554985194518816600160501b026fffffffffffffffffffffffffffffffff60501b1995909216600160401b0269ffffffffffffffffffff1990991690841617979097179290921695909517825551600191820180549351909516600160801b026001600160c01b031990931693169290921717909155919091019050610b42565b507fb99f6de5e22c60c178b03bfacf2daeb4b6089f5b37e0fe2c48a5d5141191fc5382604051610c9291906121b5565b60405180910390a15050565b600080516020612666833981519152610cb6816111e0565b610cbe611338565b610ccc87878787878761139e565b50610cd76001600455565b50505050505050565b600084610cec81610907565b610d0957604051634ab5ebcd60e01b815260040160405180910390fd5b610d11611505565b6040805160a0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290528a831684860152606084018a905260015461ffff600160e81b8204166080860152600092835260059091529084902093516321a7700b60e11b815292936101009091049091169163434ee01691610d9a918591908a908a90600401612252565b602060405180830381865afa158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb9190612306565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de610e13816111e0565b85610e1d81610907565b610e3a57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160a0810182526002546001600160a01b03908116825263ffffffff8b1660208084018290528b831684860152606084018b905260015461ffff600160e81b820416608086015260009283526005909152908490209351632b377bb160e11b815292936101009091049091169163566ef76291610ec3918591908b908b90600401612252565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f069190612306565b9998505050505050505050565b600080516020612666833981519152610f2b816111e0565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d90602001610c92565b600080516020612666833981519152610f91816111e0565b610f99611338565b600654600090610fc7906020850190600160a01b900463ffffffff16610fbf8287611bbc565b89898961139e565b90506000610fd58234612335565b6006549091506001600160a01b0316630c0c389e60e08601358360208801610ffd818a611bbc565b60808a013561100f60a08c018c612348565b61101c60c08e018e612348565b6040518a63ffffffff1660e01b815260040161103e97969594939291906123c7565b6000604051808303818589803b15801561105757600080fd5b5088f115801561106b573d6000803e3d6000fd5b505050505050505061107d6001600455565b5050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206126668339815191526110c5816111e0565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610c92565b60008051602061266683398151915261112d816111e0565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610c92565b60008051602061266683398151915261119b816111e0565b63ffffffff8416600090815260036020526040902061107d9084846119c7565b6000828152602081905260409020600101546111d6816111e0565b61070b838361152b565b6111ea81336115b5565b50565b6001600160a01b03831661120a5761120582826115f3565b505050565b6112058383836116a0565b61121d611505565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b6112716116db565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361124c565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156112da57506112d88383611084565b155b1561132457600180546015906112ff90600160a81b90046001600160401b031661241d565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836116fe565b5060019392505050565b60026004540361135b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600455565b60006113726031602d8486612443565b61137b9161246d565b60e01c9392505050565b60006113976113948484611790565b90565b9392505050565b600080836001600160401b038111156113b9576113b9611d85565b6040519080825280602002602001820160405280156113e2578160200160208202803683370190505b50905060005b848110156114b85760008686838181106114045761140461219f565b90506040020180360381019061141a919061249d565b9050600081600001516001600160a01b031682602001518790604051600060405180830381858888f193505050503d8060008114611474576040519150601f19603f3d011682016040523d82523d6000602084013e611479565b606091505b50509050808484815181106114905761149061219f565b9115156020928302919091018201528201516114ac90866124f3565b945050506001016113e8565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c34688888888888866040516114f296959493929190612544565b60405180910390a1509695505050505050565b60015460ff16156115295760405163d93c066560e01b815260040160405180910390fd5b565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8314801561156157506115618383611084565b156115ab576001805460159061158690600160a81b90046001600160401b03166125d8565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836117a9565b6115bf8282611084565b6108745760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044015b60405180910390fd5b6001600160a01b03821661161a576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611667576040519150601f19603f3d011682016040523d82523d6000602084013e61166c565b606091505b505090508061120557604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016115ea565b6001600160a01b0382166116c7576040516306b7a93160e41b815260040160405180910390fd5b6112056001600160a01b0384168383611814565b60015460ff1661152957604051638dfc202b60e01b815260040160405180910390fd5b600061170a8383611084565b611788576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117403390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610742565b506000610742565b60006117a0605160318486612443565b611397916125fb565b60006117b58383611084565b15611788576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610742565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b17905261120591859190600090611872908416836118c0565b905080516000141580156118975750808060200190518101906118959190612619565b155b1561120557604051635274afe760e01b81526001600160a01b03841660048201526024016115ea565b60606113978383600084600080856001600160a01b031684866040516118e69190612636565b60006040518083038185875af1925050503d8060008114611923576040519150601f19603f3d011682016040523d82523d6000602084013e611928565b606091505b5091509150611938868383611942565b9695505050505050565b606082611957576119528261199e565b611397565b815115801561196e57506001600160a01b0384163b155b1561199757604051639996b31560e01b81526001600160a01b03851660048201526024016115ea565b5080611397565b8051156119ae5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f01602090048101928215611a605791602002820160005b83821115611a3157833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026119f0565b8015611a5e5782816101000a81549060ff0219169055600101602081600001049283019260010302611a31565b505b50611a6c929150611a70565b5090565b5b80821115611a6c5760008155600101611a71565b80356001600160a01b038116811461099957600080fd5b600080600060608486031215611ab157600080fd5b611aba84611a85565b9250611ac860208501611a85565b9150604084013590509250925092565b600060208284031215611aea57600080fd5b81356001600160e01b03198116811461139757600080fd5b80151581146111ea57600080fd5b600060208284031215611b2257600080fd5b813561139781611b02565b600060208284031215611b3f57600080fd5b5035919050565b803563ffffffff8116811461099957600080fd5b600060208284031215611b6c57600080fd5b61139782611b46565b6020808252825182820181905260009190848201906040850190845b81811015611bb057835160ff1683529284019291840191600101611b91565b50909695505050505050565b600060208284031215611bce57600080fd5b61139782611a85565b60008060408385031215611bea57600080fd5b82359150611bfa60208401611a85565b90509250929050565b60008083601f840112611c1557600080fd5b5081356001600160401b03811115611c2c57600080fd5b602083019150836020828501011115611c4457600080fd5b9250929050565b600080600060408486031215611c6057600080fd5b83356001600160401b03811115611c7657600080fd5b611c8286828701611c03565b909790965060209590950135949350505050565b600060608284031215611ca857600080fd5b50919050565b60008083601f840112611cc057600080fd5b5081356001600160401b03811115611cd757600080fd5b6020830191508360208260061b8501011115611c4457600080fd5b600080600080600080600060e0888a031215611d0d57600080fd5b611d178989611c96565b965060608801356001600160401b0380821115611d3357600080fd5b611d3f8b838c01611cae565b909850965060808a0135955060a08a0135915080821115611d5f57600080fd5b50611d6c8a828b01611c03565b989b979a5095989497959660c090950135949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611dbd57611dbd611d85565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611deb57611deb611d85565b604052919050565b80356001600160401b038116811461099957600080fd5b803561ffff8116811461099957600080fd5b80356001600160801b038116811461099957600080fd5b60006020808385031215611e4657600080fd5b82356001600160401b0380821115611e5d57600080fd5b818501915085601f830112611e7157600080fd5b813581811115611e8357611e83611d85565b611e91848260051b01611dc3565b818152848101925060c0918202840185019188831115611eb057600080fd5b938501935b82851015611f425780858a031215611ecd5760008081fd5b611ed5611d9b565b611ede86611b46565b8152611eeb878701611df3565b878201526040611efc818801611df3565b908201526060611f0d878201611e0a565b908201526080611f1e878201611e1c565b9082015260a0611f2f878201611e1c565b9082015284529384019392850192611eb5565b50979650505050505050565b60008060008060008060e08789031215611f6757600080fd5b611f718888611c96565b9550611f7f60608801611b46565b9450611f8d60808801611a85565b935060a08701356001600160401b03811115611fa857600080fd5b611fb489828a01611cae565b979a969950949794969560c090950135949350505050565b600080600080600060808688031215611fe457600080fd5b611fed86611b46565b9450611ffb60208701611a85565b93506040860135925060608601356001600160401b0381111561201d57600080fd5b61202988828901611c03565b969995985093965092949392505050565b6000806000806060858703121561205057600080fd5b84356001600160401b038082111561206757600080fd5b61207388838901611cae565b909650945060208701359350604087013591508082111561209357600080fd5b50850161010081880312156120a757600080fd5b939692955090935050565b6000602082840312156120c457600080fd5b61139782611e0a565b6000806000604084860312156120e257600080fd5b6120eb84611b46565b925060208401356001600160401b038082111561210757600080fd5b818601915086601f83011261211b57600080fd5b81358181111561212a57600080fd5b8760208260051b850101111561213f57600080fd5b6020830194508093505050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061218f604083018587612152565b9050826020830152949350505050565b634e487b7160e01b600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015612245578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016121d2565b5091979650505050505050565b84516001600160a01b03908116825260208087015163ffffffff1690830152604080870151909116818301526060808701519083015260808087015161ffff9081168285015286546001600160401b0380821660a08701529381901c90911660c085015260501c6001600160801b0390811660e08501526001870154908116610100850152901c1661012082015261016061014082018190526000906122fb8382018587612152565b979650505050505050565b60006020828403121561231857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107425761074261231f565b6000808335601e1984360301811261235f57600080fd5b8301803591506001600160401b0382111561237957600080fd5b602001915036819003821315611c4457600080fd5b63ffffffff61239c82611b46565b168252602081013560208301526001600160401b036123bd60408301611df3565b1660408301525050565b6123d1818961238e565b60018060a01b038716606082015285608082015260e060a082015260006123fc60e083018688612152565b82810360c084015261240f818587612152565b9a9950505050505050505050565b60006001600160401b038083168181036124395761243961231f565b6001019392505050565b6000808585111561245357600080fd5b8386111561246057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156124955780818660040360031b1b83161692505b505092915050565b6000604082840312156124af57600080fd5b604051604081018181106001600160401b03821117156124d1576124d1611d85565b6040526124dd83611a85565b8152602083013560208201528091505092915050565b808201808211156107425761074261231f565b60008151808452602080850194506020840160005b8381101561253957815115158752958201959082019060010161251b565b509495945050505050565b600060e08201612554838a61238e565b63ffffffff881660608401526001600160a01b03878116608085015260e060a0850152908590528590610100840160005b878110156125b6578261259785611a85565b1682526020848101359083015260409384019390910190600101612585565b5084810360c08601526125c98187612506565b9b9a5050505050505050505050565b60006001600160401b038216806125f1576125f161231f565b6000190192915050565b8035602083101561074257600019602084900360031b1b1692915050565b60006020828403121561262b57600080fd5b815161139781611b02565b6000825160005b81811015612657576020818601810151858301520161263d565b50600092019182525091905056fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220cab19ebaa8e6602c84c9f9f739a45b5571c5513ee60da41f638da9127243412364736f6c6343000816003360a060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610052565b50670de0b6b3a76400006080526100a2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60805161119a6100bd60003960006107cb015261119a6000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063434ee01614610087578063566ef762146100ba578063715018a6146100da5780638da5cb5b146100ef578063f2fde38b1461011757600080fd5b3661006057005b600080fd5b34801561007157600080fd5b50610085610080366004610dc9565b610137565b005b34801561009357600080fd5b506100a76100a2366004610e1d565b61014f565b6040519081526020015b60405180910390f35b3480156100c657600080fd5b506100a76100d5366004610e1d565b610328565b3480156100e657600080fd5b506100856103fb565b3480156100fb57600080fd5b506000546040516001600160a01b0390911681526020016100b1565b34801561012357600080fd5b50610085610132366004610eaf565b61040f565b61013f61044d565b61014a83838361047a565b505050565b600061015e6020850185610eca565b67ffffffffffffffff166000036101a65761017f6040860160208701610ef4565b60405163c3baa0b760e01b815263ffffffff90911660048201526024015b60405180910390fd5b6000806101f96101c56101bf60408a0160208b01610ef4565b50600090565b6101d26020890189610eca565b6101e260a08a0160808b01610eca565b6101f260808b0160608c01610f2f565b898961049d565b9092509050600080808061021060208c018c610eaf565b6001600160a01b03166388a4124c61022e60408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa158015610281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a59190610f4c565b929650909450925090506102ef846102c360408d0160208e01610fa1565b8d60800160208101906102d69190610fa1565b8d60400160208101906102e99190610f2f565b8561075b565b965061030f8684848e608001602081019061030a9190610fa1565b610832565b6103199088610fdb565b9b9a5050505050505050505050565b60006103376020850185610eca565b67ffffffffffffffff166000036103585761017f6040860160208701610ef4565b6000806103716101c56101bf60408a0160208b01610ef4565b9092509050600080808061038860208c018c610eaf565b6001600160a01b031663c1723a1d6103a660408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af1158015610281573d6000803e3d6000fd5b61040361044d565b61040d600061088a565b565b61041761044d565b6001600160a01b03811661044157604051631e4fbdf760e01b81526000600482015260240161019d565b61044a8161088a565b50565b6000546001600160a01b0316331461040d5760405163118cdaa760e01b815233600482015260240161019d565b6001600160a01b0383166104925761014a82826108da565b61014a838383610987565b6000808281036104bf5760405162575ea160e01b815260040160405180910390fd5b5067ffffffffffffffff861660008089815b868410156106a15760003681806104e98c8c8a6109c2565b9a509195509350915087905060001960ff85160161057c5760008061050e8585610a18565b9150915087801561052857506000816001600160801b0316115b1561054b5760405163052e551560e01b815260ff8716600482015260240161019d565b61055e6001600160801b0382168d610fdb565b9b506105736001600160801b03831688610fdb565b96505050610698565b60011960ff8516016105b25760006105948484610a7d565b5090506105aa6001600160801b0382168c610fdb565b9a5050610698565b60021960ff8516016106655785156105e25760405163052e551560e01b815260ff8516600482015260240161019d565b6000806105ef8585610abb565b9250925050816001600160801b031660000361061e5760405163a169d0e160e01b815260040160405180910390fd5b6106316001600160801b0382168d610fdb565b9b508f67ffffffffffffffff16826106499190610fee565b61065c906001600160801b03168c610fdb565b9a505050610698565b60031960ff85160161067a5760019650610698565b60405163052e551560e01b815260ff8516600482015260240161019d565b505050506104d1565b8387146106c457604051634c83bb7560e11b81526004810185905260240161019d565b886001600160801b03168611156106ff576040516242670160e11b8152600481018790526001600160801b038a16602482015260440161019d565b8060000361072057604051630e5eb8f360e41b815260040160405180910390fd5b61072a8186610fdb565b9450821561074c57606461073f866066611015565b610749919061102c565b94505b50505050965096945050505050565b60008061ffff86161561076e5785610770565b845b9050600061271061078561ffff84168a611015565b61078f919061102c565b90506001600160801b03841615806107ae57506001600160801b038516155b156107bc5791506108299050565b600088856001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000886001600160801b03166107fe9190611015565b610808919061102c565b6108129190610fdb565b90508181116108215781610823565b805b93505050505b95945050505050565b60008415610882576127108261ffff16846001600160801b0316866001600160801b0316886108619190611015565b61086b919061102c565b6108759190611015565b61087f919061102c565b90505b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216610901576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461094e576040519150601f19603f3d011682016040523d82523d6000602084013e610953565b606091505b505090508061014a57604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161019d565b6001600160a01b0382166109ae576040516306b7a93160e41b815260040160405180910390fd5b61014a6001600160a01b0384168383610b2f565b6000368160018401816109d6888884610b81565b6002929092019190506109ea888884610baa565b94506001820161ffff82168301610a0381838b8d61104e565b979b909a50969850505061ffff160193505050565b60008060108314801590610a2d575060208314155b15610a4b57604051634796aee160e01b815260040160405180910390fd5b610a5784846000610bcf565b915060208314610a68576000610a74565b610a7484846010610bcf565b90509250929050565b60008060308314610aa1576040516361d0c2c760e11b815260040160405180910390fd5b610aad84846000610bcf565b9150610a7484846010610bf6565b6000808060128414801590610ad1575060228414155b15610aef57604051638b4aa70b60e01b815260040160405180910390fd5b610afb85856000610b81565b9250610b0985856002610bcf565b915060228414610b1a576000610b26565b610b2685856012610bcf565b90509250925092565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261014a908490610c11565b600060028201610b938184868861104e565b610b9c91611078565b60f01c9150505b9392505050565b6000838383818110610bbe57610bbe6110a8565b919091013560f81c95945050505050565b600060108201610be18184868861104e565b610bea916110be565b60801c95945050505050565b600060208201610c088184868861104e565b610829916110f5565b6000610c266001600160a01b03841683610c74565b90508051600014158015610c4b575080806020019051810190610c499190611113565b155b1561014a57604051635274afe760e01b81526001600160a01b038416600482015260240161019d565b6060610c8283836000610c8b565b90505b92915050565b606081471015610cb05760405163cd78605960e01b815230600482015260240161019d565b600080856001600160a01b03168486604051610ccc9190611135565b60006040518083038185875af1925050503d8060008114610d09576040519150601f19603f3d011682016040523d82523d6000602084013e610d0e565b606091505b5091509150610d1e868383610d28565b9695505050505050565b606082610d3d57610d3882610d84565b610ba3565b8151158015610d5457506001600160a01b0384163b155b15610d7d57604051639996b31560e01b81526001600160a01b038516600482015260240161019d565b5080610ba3565b805115610d945780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610dc457600080fd5b919050565b600080600060608486031215610dde57600080fd5b610de784610dad565b9250610df560208501610dad565b9150604084013590509250925092565b600060a08284031215610e1757600080fd5b50919050565b6000806000806101608587031215610e3457600080fd5b610e3e8686610e05565b9350610e4d8660a08701610e05565b925061014085013567ffffffffffffffff80821115610e6b57600080fd5b818701915087601f830112610e7f57600080fd5b813581811115610e8e57600080fd5b886020828501011115610ea057600080fd5b95989497505060200194505050565b600060208284031215610ec157600080fd5b610c8282610dad565b600060208284031215610edc57600080fd5b813567ffffffffffffffff81168114610ba357600080fd5b600060208284031215610f0657600080fd5b813563ffffffff81168114610ba357600080fd5b6001600160801b038116811461044a57600080fd5b600060208284031215610f4157600080fd5b8135610ba381610f1a565b60008060008060808587031215610f6257600080fd5b845193506020850151610f7481610f1a565b6040860151909350610f8581610f1a565b6060860151909250610f9681610f1a565b939692955090935050565b600060208284031215610fb357600080fd5b813561ffff81168114610ba357600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610c8557610c85610fc5565b6001600160801b0381811683821601908082111561100e5761100e610fc5565b5092915050565b8082028115828204841417610c8557610c85610fc5565b60008261104957634e487b7160e01b600052601260045260246000fd5b500490565b6000808585111561105e57600080fd5b8386111561106b57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156110a05780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b6fffffffffffffffffffffffffffffffff1981358181169160108510156110a05760109490940360031b84901b1690921692915050565b80356020831015610c8557600019602084900360031b1b1692915050565b60006020828403121561112557600080fd5b81518015158114610ba357600080fd5b6000825160005b81811015611156576020818601810151858301520161113c565b50600092019182525091905056fea26469706673582212203780ea40a0f93eab5083efacc1d316a7c83f03997bd6b3821d356fbf88b94a5164736f6c6343000816003360a06040523480156200001157600080fd5b50604051620038e7380380620038e78339810160408190526200003491620004de565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b03861617905582828686612ee060008660005b8551811015620000d657620000cc7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000b857620000b8620005b1565b60200260200101516200027d60201b60201c565b5060010162000074565b5060005b815181101562000128576200011e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000b857620000b8620005b1565b50600101620000da565b505050505050806001600160401b03166000036200015957604051635f86e17760e01b815260040160405180910390fd5b806001600160401b0316825110156200019f5781516040516378e2c15760e11b81526001600160401b039182166004820152908216602482015260440160405180910390fd5b6000805b835181101562000231576000848281518110620001c457620001c4620005b1565b60200260200101519050826001600160a01b0316816001600160a01b03161162000201576040516305fa937f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600460205260409020805460ff1916600190811790915590925001620001a3565b50509051600580546001600160401b0393841668010000000000000000026001600160801b0319909116939092169290921717905550505063ffffffff90921660805250620006049050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83148015620002d057506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b156200031d5760018054601590620002f890600160a81b90046001600160401b0316620005c7565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b62000329838362000335565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16620003da576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620003913390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200032f565b5060006200032f565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200041157600080fd5b919050565b600082601f8301126200042857600080fd5b815160206001600160401b0380831115620004475762000447620003e3565b8260051b604051601f19603f830116810181811084821117156200046f576200046f620003e3565b60405293845260208187018101949081019250878511156200049057600080fd5b6020870191505b84821015620004bb57620004ab82620003f9565b8352918301919083019062000497565b979650505050505050565b80516001600160401b03811681146200041157600080fd5b60008060008060008060c08789031215620004f857600080fd5b865163ffffffff811681146200050d57600080fd5b60208801519096506001600160401b03808211156200052b57600080fd5b620005398a838b0162000416565b96506200054960408a01620003f9565b955060608901519150808211156200056057600080fd5b6200056e8a838b0162000416565b94506200057e60808a01620004c6565b935060a08901519150808211156200059557600080fd5b50620005a489828a0162000416565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b03198101620005fa57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6080516132b96200062e6000396000818161074c015281816112280152611b1001526132b96000f3fe60806040526004361061022f5760003560e01c80638585c9451161012e578063c7a823e0116100ab578063d547741f1161006f578063d547741f146107aa578063dafe0ccc146107ca578063f010cb23146107ea578063f3b4ebd01461080a578063fd62e7501461082a57600080fd5b8063c7a823e0146106cc578063c7b2370b146106fa578063cd88b9031461071a578063cf34c7681461073a578063d2ae21041461078357600080fd5b8063aef18bf7116100f2578063aef18bf714610617578063b143044b14610647578063c358de0a14610667578063c416aa5114610687578063c5e193cd146106ac57600080fd5b80638585c9451461052a57806391d148541461054a57806395d376d71461056a5780639e9449651461057d578063a217fddf1461060257600080fd5b80632f2ff15d116101bc5780635553fb8e116101805780635553fb8e1461046a5780635c975abb1461048a578063724e78da146104a2578063736c0d5b146104c2578063741bef1a146104f257600080fd5b80632f2ff15d146103ca57806330bb3aac146103ea57806331cb61051461040a57806336568abe1461042a57806352d3b8711461044a57600080fd5b806316c38b3c1161020357806316c38b3c146102e05780631703a01814610300578063248a9ca31461033f57806326e67a371461037d5780632de11376146103aa57600080fd5b8062bf2e801461023457806301e336671461026e57806301ffc9a7146102905780631095b6d7146102c0575b600080fd5b34801561024057600080fd5b5060015461025690600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561027a57600080fd5b5061028e610289366004612695565b61084a565b005b34801561029c57600080fd5b506102b06102ab3660046126d6565b610873565b6040519015158152602001610265565b3480156102cc57600080fd5b5061028e6102db366004612695565b6108aa565b3480156102ec57600080fd5b5061028e6102fb36600461270e565b6109ac565b34801561030c57600080fd5b5060055461032790600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610265565b34801561034b57600080fd5b5061036f61035a36600461272b565b60009081526020819052604090206001015490565b604051908152602001610265565b34801561038957600080fd5b5061039d610398366004612758565b6109d1565b6040516102659190612773565b3480156103b657600080fd5b506102b06103c53660046127ba565b610a58565b3480156103d657600080fd5b5061028e6103e53660046127d7565b610add565b3480156103f657600080fd5b5061036f610405366004612866565b610bb2565b34801561041657600080fd5b5061028e6104253660046128dd565b610cca565b34801561043657600080fd5b5061028e6104453660046127d7565b610cf4565b34801561045657600080fd5b5061028e61046536600461290b565b610d0d565b34801561047657600080fd5b5061036f610485366004612991565b610e86565b34801561049657600080fd5b5060015460ff166102b0565b3480156104ae57600080fd5b5061028e6104bd3660046127ba565b610f9e565b3480156104ce57600080fd5b506102b06104dd3660046127ba565b60046020526000908152604090205460ff1681565b3480156104fe57600080fd5b50600254610512906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b34801561053657600080fd5b5061028e6105453660046129e7565b61100c565b34801561055657600080fd5b506102b06105653660046127d7565b611038565b61036f610578366004612a1a565b611061565b34801561058957600080fd5b506105d1610598366004612758565b6006602052600090815260409020546001600160401b03811690600160401b810461ffff1690600160501b90046001600160801b031683565b604080516001600160401b03909416845261ffff90921660208401526001600160801b031690820152606001610265565b34801561060e57600080fd5b5061036f600081565b34801561062357600080fd5b506102b061063236600461272b565b60076020526000908152604090205460ff1681565b34801561065357600080fd5b5061028e610662366004612ac6565b6111d7565b34801561067357600080fd5b5061028e610682366004612b07565b61148c565b34801561069357600080fd5b506001546105129061010090046001600160a01b031681565b3480156106b857600080fd5b5061036f6106c7366004612991565b6114f4565b3480156106d857600080fd5b506106ec6106e7366004612b22565b611661565b604051610265929190612b76565b34801561070657600080fd5b5061028e6107153660046127ba565b61183f565b34801561072657600080fd5b5061028e610735366004612baa565b6118ad565b34801561074657600080fd5b5061076e7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610265565b34801561078f57600080fd5b5060015461032790600160a81b90046001600160401b031681565b3480156107b657600080fd5b5061028e6107c53660046127d7565b6118ec565b3480156107d657600080fd5b5061028e6107e5366004612695565b6119a0565b3480156107f657600080fd5b5061036f610805366004612bef565b611a55565b34801561081657600080fd5b5061028e610825366004612c59565b611a91565b34801561083657600080fd5b50600554610327906001600160401b031681565b60008051602061324483398151915261086281611c3f565b61086d848484611c49565b50505050565b60006001600160e01b03198216637965db0b60e01b14806108a457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000805160206132448339815191526108c281611c3f565b6108da60008051602061322483398151915285611038565b6108f757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561094157600080fd5b505af1158015610955573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b60006109b781611c3f565b81156109c9576109c5611c71565b5050565b6109c5611cc5565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610a4c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610a1d5790505b50505050509050919050565b6000610a847f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611038565b15610a9157506000919050565b600154600160a81b90046001600160401b03161580610ac35750610ac360008051602061326483398151915283611038565b15610ad057506001919050565b506000919050565b919050565b81600080516020613264833981519152811480610b1957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610b31575060008051602061322483398151915281145b15610b5b57303314610b5657604051637d5d391d60e11b815260040160405180910390fd5b610ba8565b6000805160206132448339815191528103610b8757610b56600080516020613244833981519152611c3f565b604051634a7ee1b960e11b8152600481018290526024015b60405180910390fd5b61086d8383611cfe565b600083610bbe81610a58565b610bdb57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290526001600160401b03808c16858701528a84166060860152600554600160401b900416608085015260015461ffff600160e81b82041660a086015260009283526006909152908490209351637bfa20a960e01b8152929361010090910490911691637bfa20a991610c7d918591908a908a90600401612d1d565b602060405180830381865afa158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbe9190612d77565b98975050505050505050565b303314610cea57604051637d5d391d60e11b815260040160405180910390fd5b6109c58282611d82565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020613244833981519152610d2581611c3f565b60005b82811015610e475736848483818110610d4357610d43612d90565b90506080020190506040518060600160405280826020016020810190610d6991906129e7565b6001600160401b03168152602001610d876060840160408501612b07565b61ffff168152602001610da06080840160608501612dbd565b6001600160801b0316905260066000610dbc6020850185612758565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516001600160801b0316600160501b026fffffffffffffffffffffffffffffffff60501b1961ffff909516600160401b0269ffffffffffffffffffff199094166001600160401b0390931692909217929092179290921691909117905550600101610d28565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051610e79929190612dd8565b60405180910390a1505050565b600081610e9281610a58565b610eaf57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808a1660208085018290526001600160401b03808b16868801528985166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451637bfa20a960e01b8152939461010090920490921692637bfa20a992610f52928692600401612ebc565b602060405180830381865afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190612d77565b979650505050505050565b600080516020613244833981519152610fb681611c3f565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b30331461102c57604051637d5d391d60e11b815260040160405180910390fd5b61103581611edd565b50565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600060008051602061322483398151915261107b81611c3f565b61108b60a08601608087016127ba565b61109481610a58565b6110b157604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c081019091526002546001600160a01b031681526000906020808201906110df908a018a612758565b63ffffffff1681526020016110fa60808a0160608b016129e7565b6001600160401b0316815260200161111860a08a0160808b016127ba565b6001600160a01b039081168252600554600160401b90046001600160401b0316602080840191909152600154600160e81b810461ffff16604090940193909352929350610100909104169063df2b057e90839060069060009061117d908d018d612758565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b81526004016111b89493929190612d1d565b6020604051808303816000875af1158015610f6f573d6000803e3d6000fd5b6000805160206132448339815191526111ef81611c3f565b60005b8281101561086d573684848381811061120d5761120d612d90565b905060200281019061121f9190612f15565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112556020830183612758565b63ffffffff16146112665750611484565b428160600135116112775750611484565b60006112b06112896020840184612758565b61129960408501602086016127ba565b6112a66040860186612f35565b8660600135611a55565b905060006112c5826106e76080860186612f35565b50905080611308576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611484565b600061132861131a6040860186612f35565b61132391612f7b565b611fab565b905080156113a35760008381526007602052604090205460ff1615611389577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611378929190612ff0565b60405180910390a150505050611484565b6000838152600760205260409020805460ff191660011790555b6000806113b660408701602088016127ba565b6001600160a01b03166113cc6040880188612f35565b6040516113da92919061308b565b6000604051808303816000865af19150503d8060008114611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50915091508161147d578215611443576000858152600760205260409020805460ff191690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf878260405161147492919061309b565b60405180910390a15b5050505050505b6001016111f2565b6000805160206132448339815191526114a481611c3f565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611000565b600060008051602061322483398151915261150e81611c3f565b8261151881610a58565b61153557604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808b1660208085018290526001600160401b03808c16868801528a85166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451636f9582bf60e11b815293946101009092049092169263df2b057e926115d8928692600401612ebc565b6020604051808303816000875af11580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612d77565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef8460405161164e91815260200190565b60405180910390a1505050949350505050565b600554600090819061168490600160401b90046001600160401b031660416130ca565b83146116965750600090506001611837565b60006116ef866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b600554600160401b90046001600160401b031681101561182b57366000888861171f8560416130ca565b9061172b8660016130e1565b6117369060416130ca565b92611743939291906130f4565b9150915060008061178a8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fe492505050565b50909250905060008160038111156117a4576117a4612b60565b146117bd57600060019850985050505050505050611837565b856001600160a01b0316826001600160a01b0316116117ea57600060029850985050505050505050611837565b6001600160a01b03821660009081526004602052604090205460ff1661181e57600060039850985050505050505050611837565b50935050506001016116f5565b50600160009350935050505b935093915050565b60008051602061324483398151915261185781611c3f565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611000565b6000805160206132448339815191526118c581611c3f565b63ffffffff841660009081526003602052604090206118e59084846125c2565b5050505050565b8160008051602061326483398151915281148061192857507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611940575060008051602061322483398151915281145b1561196a5730331461196557604051637d5d391d60e11b815260040160405180910390fd5b611996565b6000805160206132448339815191528103610b8757611965600080516020613244833981519152611c3f565b61086d8383612031565b6000805160206132448339815191526119b881611c3f565b6119d060008051602061322483398151915285611038565b6119ed57604051635ee08b9760e01b815260040160405180910390fd5b6040516303d8c5ef60e11b81526001600160a01b038481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001611a7095949392919061311e565b60405160208183030381529060405280519060200120905095945050505050565b42816060013511611ab557604051630bbaf26360e01b815260040160405180910390fd5b30611ac660408301602084016127ba565b6001600160a01b031614611b0957611ae460408201602083016127ba565b604051631ce0bfcd60e01b81526001600160a01b039091166004820152602401610b9f565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611b3d6020830183612758565b63ffffffff1614611b7757611b556020820182612758565b60405163134bf0e160e11b815263ffffffff9091166004820152602401610b9f565b6000611b896112896020840184612758565b90506000611b9e826106e76080860186612f35565b50905080611bbf57604051630af656f760e11b815260040160405180910390fd5b60008281526007602052604090205460ff1615611bf257604051634eb522d360e11b815260048101839052602401610b9f565b60008281526007602052604090819020805460ff1916600117905561086d9060008051602061324483398151915290611c2d90860186612f35565b810190611c3a91906127ba565b611cfe565b61103581336120a9565b6001600160a01b038316611c6657611c6182826120e2565b505050565b611c6183838361218f565b611c796121ca565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b611ccd6121f0565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ca8565b600060008051602061326483398151915283148015611d245750611d228383611038565b155b15611d6e5760018054601590611d4990600160a81b90046001600160401b0316613164565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612213565b5060019392505050565b6001600160a01b03821660009081526004602052604090205481151560ff909116151503611dd6576040516302c6469560e51b81526001600160a01b03831660048201528115156024820152604401610b9f565b6001600160a01b0382166000908152600460205260408120805460ff191683151517905581611e1c57600554611e17906001906001600160401b031661318a565b611e33565b600554611e33906001600160401b031660016131b1565b6005549091506001600160401b03600160401b9091048116908216811115611e81576040516378e2c15760e11b81526001600160401b03808416600483015282166024820152604401610b9f565b6005805467ffffffffffffffff19166001600160401b038416179055604080516001600160a01b038616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce910161099e565b806001600160401b0316600003611f0757604051635f86e17760e01b815260040160405180910390fd5b6005546001600160401b03908116908216811015611f4b576040516378e2c15760e11b81526001600160401b03808316600483015283166024820152604401610b9f565b600580546fffffffffffffffff00000000000000001916600160401b6001600160401b038516908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611000565b60006001600160e01b03198216630111a9b760e11b148015906108a457506001600160e01b0319821663704316e560e01b141592915050565b6000806000835160410361201e5760208401516040850151606086015160001a612010888285856122a5565b95509550955050505061202a565b50508151600091506002905b9250925092565b60006000805160206132648339815191528314801561205557506120558383611038565b1561209f576001805460159061207a90600160a81b90046001600160401b03166131d1565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612374565b6120b38282611038565b6109c55760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610b9f565b6001600160a01b038216612109576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612156576040519150601f19603f3d011682016040523d82523d6000602084013e61215b565b606091505b5050905080611c6157604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610b9f565b6001600160a01b0382166121b6576040516306b7a93160e41b815260040160405180910390fd5b611c616001600160a01b03841683836123df565b60015460ff16156121ee5760405163d93c066560e01b815260040160405180910390fd5b565b60015460ff166121ee57604051638dfc202b60e01b815260040160405180910390fd5b600061221f8383611038565b61229d576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556122553390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016108a4565b5060006108a4565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156122e0575060009150600390508261236a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612334573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123605750600092506001915082905061236a565b9250600091508190505b9450945094915050565b60006123808383611038565b1561229d576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016108a4565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b179052611c619185919060009061243d9084168361248b565b9050805160001415801561246257508080602001905181019061246091906131f4565b155b15611c6157604051635274afe760e01b81526001600160a01b0384166004820152602401610b9f565b6060612499838360006124a0565b9392505050565b6060814710156124c55760405163cd78605960e01b8152306004820152602401610b9f565b600080856001600160a01b031684866040516124e19190613211565b60006040518083038185875af1925050503d806000811461251e576040519150601f19603f3d011682016040523d82523d6000602084013e612523565b606091505b509150915061253386838361253d565b9695505050505050565b6060826125525761254d82612599565b612499565b815115801561256957506001600160a01b0384163b155b1561259257604051639996b31560e01b81526001600160a01b0385166004820152602401610b9f565b5080612499565b8051156125a95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f0160209004810192821561265b5791602002820160005b8382111561262c57833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026125eb565b80156126595782816101000a81549060ff021916905560010160208160000104928301926001030261262c565b505b5061266792915061266b565b5090565b5b80821115612667576000815560010161266c565b6001600160a01b038116811461103557600080fd5b6000806000606084860312156126aa57600080fd5b83356126b581612680565b925060208401356126c581612680565b929592945050506040919091013590565b6000602082840312156126e857600080fd5b81356001600160e01b03198116811461249957600080fd5b801515811461103557600080fd5b60006020828403121561272057600080fd5b813561249981612700565b60006020828403121561273d57600080fd5b5035919050565b803563ffffffff81168114610ad857600080fd5b60006020828403121561276a57600080fd5b61249982612744565b6020808252825182820181905260009190848201906040850190845b818110156127ae57835160ff168352928401929184019160010161278f565b50909695505050505050565b6000602082840312156127cc57600080fd5b813561249981612680565b600080604083850312156127ea57600080fd5b8235915060208301356127fc81612680565b809150509250929050565b80356001600160401b0381168114610ad857600080fd5b60008083601f84011261283057600080fd5b5081356001600160401b0381111561284757600080fd5b60208301915083602082850101111561285f57600080fd5b9250929050565b60008060008060006080868803121561287e57600080fd5b61288786612744565b945061289560208701612807565b935060408601356128a581612680565b925060608601356001600160401b038111156128c057600080fd5b6128cc8882890161281e565b969995985093965092949392505050565b600080604083850312156128f057600080fd5b82356128fb81612680565b915060208301356127fc81612700565b6000806020838503121561291e57600080fd5b82356001600160401b038082111561293557600080fd5b818501915085601f83011261294957600080fd5b81358181111561295857600080fd5b8660208260071b850101111561296d57600080fd5b60209290920196919550909350505050565b803561ffff81168114610ad857600080fd5b600080600080608085870312156129a757600080fd5b6129b08561297f565b93506129be6020860161297f565b92506129cc60408601612807565b915060608501356129dc81612680565b939692955090935050565b6000602082840312156129f957600080fd5b61249982612807565b600060a08284031215612a1457600080fd5b50919050565b600080600060408486031215612a2f57600080fd5b83356001600160401b0380821115612a4657600080fd5b612a5287838801612a02565b94506020860135915080821115612a6857600080fd5b50612a758682870161281e565b9497909650939450505050565b60008083601f840112612a9457600080fd5b5081356001600160401b03811115612aab57600080fd5b6020830191508360208260051b850101111561285f57600080fd5b60008060208385031215612ad957600080fd5b82356001600160401b03811115612aef57600080fd5b612afb85828601612a82565b90969095509350505050565b600060208284031215612b1957600080fd5b6124998261297f565b600080600060408486031215612b3757600080fd5b8335925060208401356001600160401b03811115612b5457600080fd5b612a758682870161281e565b634e487b7160e01b600052602160045260246000fd5b82151581526040810160048310612b9d57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b600080600060408486031215612bbf57600080fd5b612bc884612744565b925060208401356001600160401b03811115612be357600080fd5b612a7586828701612a82565b600080600080600060808688031215612c0757600080fd5b612c1086612744565b94506020860135612c2081612680565b935060408601356001600160401b03811115612c3b57600080fd5b612c478882890161281e565b96999598509660600135949350505050565b600060208284031215612c6b57600080fd5b81356001600160401b03811115612c8157600080fd5b612c8d84828501612a02565b949350505050565b60018060a01b0380825116835263ffffffff602083015116602084015260408201516001600160401b03808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000610140612d2c8388612c95565b612d6360c0840187546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b80610120840152610f938184018587612cf4565b600060208284031215612d8957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b80356001600160801b0381168114610ad857600080fd5b600060208284031215612dcf57600080fd5b61249982612da6565b6020808252818101839052600090604080840186845b87811015612e5f5763ffffffff612e0483612744565b1683526001600160401b03612e1a868401612807565b168584015261ffff612e2d85840161297f565b168484015260606001600160801b03612e47828501612da6565b16908401526080928301929190910190600101612dee565b5090979650505050505050565b60005b83811015612e87578181015183820152602001612e6f565b50506000910152565b60008151808452612ea8816020860160208601612e6c565b601f01601f19169290920160200192915050565b6000610140612ecb8387612c95565b612f0260c0840186546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b8061012084015261253381840185612e90565b60008235609e19833603018112612f2b57600080fd5b9190910192915050565b6000808335601e19843603018112612f4c57600080fd5b8301803591506001600160401b03821115612f6657600080fd5b60200191503681900382131561285f57600080fd5b6001600160e01b03198135818116916004851015612fa35780818660040360031b1b83161692505b505092915050565b6000808335601e19843603018112612fc257600080fd5b83016020810192503590506001600160401b03811115612fe157600080fd5b80360382131561285f57600080fd5b6040815263ffffffff61300284612744565b1660408201526000602084013561301881612680565b6001600160a01b031660608301526130336040850185612fab565b60a0608085015261304860e085018284612cf4565b915050606085013560a08401526130626080860186612fab565b848303603f190160c0860152613079838284612cf4565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000612c8d6040830184612e90565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a4576108a46130b4565b808201808211156108a4576108a46130b4565b6000808585111561310457600080fd5b8386111561311157600080fd5b5050820193919092039150565b63ffffffff60e01b8660e01b1681526bffffffffffffffffffffffff198560601b1660048201528360188201528183603883013760009101603801908152949350505050565b60006001600160401b03808316818103613180576131806130b4565b6001019392505050565b6001600160401b038281168282160390808211156131aa576131aa6130b4565b5092915050565b6001600160401b038181168382160190808211156131aa576131aa6130b4565b60006001600160401b038216806131ea576131ea6130b4565b6000190192915050565b60006020828403121561320657600080fd5b815161249981612700565b60008251612f2b818460208701612e6c56fe724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19dea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177574845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bcaa26469706673582212203b61bbdddbd40de2a99f40cf79bc54fd320e09acc6ea01dd4f473c7f674ee39f64736f6c6343000816003360a060405234801561001057600080fd5b50604051610e2e380380610e2e83398101604081905261002f916100b7565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610067565b506080526100d0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100c957600080fd5b5051919050565b608051610d436100eb60003960006105fa0152610d436000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063715018a6146100875780637bfa20a91461009c5780638da5cb5b146100cf578063df2b057e146100f7578063f2fde38b1461010a57600080fd5b3661006057005b600080fd5b34801561007157600080fd5b506100856100803660046109c7565b61012a565b005b34801561009357600080fd5b50610085610142565b3480156100a857600080fd5b506100bc6100b7366004610a03565b610156565b6040519081526020015b60405180910390f35b3480156100db57600080fd5b506000546040516001600160a01b0390911681526020016100c6565b6100bc610105366004610a03565b6102e6565b34801561011657600080fd5b50610085610125366004610aa5565b6103cf565b61013261040d565b61013d83838361043a565b505050565b61014a61040d565b610154600061045d565b565b60006101656020850185610ac0565b67ffffffffffffffff166000036101ad576101866040860160208701610aea565b60405163680489c560e11b815263ffffffff90911660048201526024015b60405180910390fd5b6101b783836104ad565b5060006101dc6101cd60a0880160808901610ac0565b67ffffffffffffffff1661051f565b90506000806101ee6020890189610aa5565b6001600160a01b03166388a4124c61020c60408b0160208c01610aea565b8561021a60208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff166044820152606401608060405180830381865afa158015610273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102979190610b25565b9350505091506102da828860200160208101906102b49190610b7a565b6102c460c08c0160a08d01610b7a565b6102d460608c0160408d01610b9e565b8561058b565b98975050505050505050565b60006102f56020850185610ac0565b67ffffffffffffffff16600003610316576101866040860160208701610aea565b61032083836104ad565b5060006103366101cd60a0880160808901610ac0565b90506000806103486020890189610aa5565b6001600160a01b031663c1723a1d61036660408b0160208c01610aea565b8561037460208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff1660448201526064016080604051808303816000875af1158015610273573d6000803e3d6000fd5b6103d761040d565b6001600160a01b03811661040157604051631e4fbdf760e01b8152600060048201526024016101a4565b61040a8161045d565b50565b6000546001600160a01b031633146101545760405163118cdaa760e01b81523360048201526024016101a4565b6001600160a01b0383166104525761013d8282610661565b61013d83838361070e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082156104f0576000806104c4868685610749565b604051637085244b60e01b815260ff8516600482015290965092945085935050602490910190506101a4565b8083146105135760405163013adb8360e21b8152600481018290526024016101a4565b60009150505b92915050565b60008061052d604184610bd1565b905061053a602082610bfe565b156105625761054a602082610bfe565b6105549082610c12565b61055f906020610c25565b90505b8061056f60e06044610c25565b6105799190610c25565b610584906040610c25565b9392505050565b60008061ffff86161561059e57856105a0565b845b905060006127106105b561ffff84168a610bd1565b6105bf9190610c38565b90506001600160801b03841615806105de57506001600160801b038516155b156105ec5791506106589050565b6000846001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000876001600160801b031661062d9190610bd1565b6106379190610c38565b610641908a610c25565b90508181116106505781610652565b805b93505050505b95945050505050565b6001600160a01b038216610688576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b505090508061013d57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016101a4565b6001600160a01b038216610735576040516306b7a93160e41b815260040160405180910390fd5b61013d6001600160a01b03841683836107a3565b60003681600184018161075d8888846107f5565b6002830192909150610775908990899060030161081c565b94506002820161ffff8216830161078e81838b8d610c4c565b979b909a50969850505061ffff160193505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261013d908490610841565b60006002820161080781848688610c4c565b61081091610c76565b60f01c95945050505050565b600083838381811061083057610830610ca6565b919091013560f81c95945050505050565b60006108566001600160a01b038416836108a4565b9050805160001415801561087b5750808060200190518101906108799190610cbc565b155b1561013d57604051635274afe760e01b81526001600160a01b03841660048201526024016101a4565b60606105848383600084600080856001600160a01b031684866040516108ca9190610cde565b60006040518083038185875af1925050503d8060008114610907576040519150601f19603f3d011682016040523d82523d6000602084013e61090c565b606091505b509150915061091c868383610926565b9695505050505050565b60608261093b5761093682610982565b610584565b815115801561095257506001600160a01b0384163b155b1561097b57604051639996b31560e01b81526001600160a01b03851660048201526024016101a4565b5080610584565b8051156109925780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109c257600080fd5b919050565b6000806000606084860312156109dc57600080fd5b6109e5846109ab565b92506109f3602085016109ab565b9150604084013590509250925092565b600080600080848603610140811215610a1b57600080fd5b60c0811215610a2957600080fd5b859450606060bf1982011215610a3e57600080fd5b5060c08501925061012085013567ffffffffffffffff80821115610a6157600080fd5b818701915087601f830112610a7557600080fd5b813581811115610a8457600080fd5b886020828501011115610a9657600080fd5b95989497505060200194505050565b600060208284031215610ab757600080fd5b610584826109ab565b600060208284031215610ad257600080fd5b813567ffffffffffffffff8116811461058457600080fd5b600060208284031215610afc57600080fd5b813563ffffffff8116811461058457600080fd5b6001600160801b038116811461040a57600080fd5b60008060008060808587031215610b3b57600080fd5b845193506020850151610b4d81610b10565b6040860151909350610b5e81610b10565b6060860151909250610b6f81610b10565b939692955090935050565b600060208284031215610b8c57600080fd5b813561ffff8116811461058457600080fd5b600060208284031215610bb057600080fd5b813561058481610b10565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761051957610519610bbb565b634e487b7160e01b600052601260045260246000fd5b600082610c0d57610c0d610be8565b500690565b8181038181111561051957610519610bbb565b8082018082111561051957610519610bbb565b600082610c4757610c47610be8565b500490565b60008085851115610c5c57600080fd5b83861115610c6957600080fd5b5050820193919092039150565b6001600160f01b03198135818116916002851015610c9e5780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610cce57600080fd5b8151801515811461058457600080fd5b6000825160005b81811015610cff5760208186018101518583015201610ce5565b50600092019182525091905056fea2646970667358221220a3bc24e7c5cbedac7e00899eb168625849d3210800cd0b59d0aa08cd2b3af71664736f6c6343000816003360e06040523480156200001157600080fd5b5060405162001a4438038062001a44833981016040819052620000349162000179565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000668162000110565b50600180546001600160a01b0319166001600160a01b038481169190911790915581166080819052600060a0526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa158015620000cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f59190620001b8565b63ffffffff1660c052505060636003556064600455620001e7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200017657600080fd5b50565b600080604083850312156200018d57600080fd5b82516200019a8162000160565b6020840151909250620001ad8162000160565b809150509250929050565b600060208284031215620001cb57600080fd5b815163ffffffff81168114620001e057600080fd5b9392505050565b60805160a05160c05161181162000233600039600061038c015260006102fb0152600081816102c7015281816105d6015281816106df015281816108e50152610aa101526118116000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063996f79c01161006f578063996f79c014610447578063aec336e61461045d578063d80e9bd91461047d578063dabca063146104aa578063f2fde38b146104ca578063fd9be522146104ea57610156565b8063715018a614610365578063726075371461037a57806372d71322146103c35780638da5cb5b146103e55780638f58aa7a14610403578063909532381461042357610156565b80634389e58f116101085780634389e58f1461025a57806354fd4d50146102895780635e280f11146102b557806361d027b3146102e95780636251b6371461031d5780636750cd4c1461034457610156565b806301ffc9a71461016f5780630e97289b146101a457806312cc947f146101dc5780631881d94d146101fe5780631c7c294e1461021a578063334993ff1461023a57610156565b3661015657005b604051632657b6c360e01b815260040160405180910390fd5b34801561017b57600080fd5b5061018f61018a366004610fd6565b61050a565b60405190151581526020015b60405180910390f35b3480156101b057600080fd5b506001546101c4906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b3480156101e857600080fd5b506101fc6101f7366004611041565b610541565b005b34801561020a57600080fd5b50600260405161019b9190611082565b34801561022657600080fd5b506002546101c4906001600160a01b031681565b34801561024657600080fd5b506101fc6102553660046110aa565b6106b3565b34801561026657600080fd5b5061027a6102753660046111bc565b6106c6565b60405161019b93929190611283565b34801561029557600080fd5b50604080516000808252602082015260029181019190915260600161019b565b3480156102c157600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f557600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b34801561032957600080fd5b50610332600181565b60405160ff909116815260200161019b565b34801561035057600080fd5b5061018f61035f3660046112d2565b50600190565b34801561037157600080fd5b506101fc610810565b34801561038657600080fd5b506103ae7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161019b565b3480156103cf57600080fd5b506103d8610824565b60405161019b91906112ed565b3480156103f157600080fd5b506000546001600160a01b03166101c4565b34801561040f57600080fd5b506101fc61041e366004611320565b6108b2565b34801561042f57600080fd5b5061043960035481565b60405190815260200161019b565b34801561045357600080fd5b5061043960045481565b34801561046957600080fd5b506101fc61047836600461134c565b6109a7565b34801561048957600080fd5b5061049d610498366004611369565b6109d1565b60405161019b91906113e4565b3480156104b657600080fd5b506101fc6104c53660046113fb565b610a13565b3480156104d657600080fd5b506101fc6104e536600461134c565b610a2b565b3480156104f657600080fd5b506101fc610505366004611320565b610a6e565b60006001600160e01b031982166325fc096160e21b148061053b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6002546001600160a01b03161580159061056657506002546001600160a01b03163314155b1561058457604051631c2c85bb60e21b815260040160405180910390fd5b6000604051806060016040528061059b8585610b2e565b63ffffffff1681526020016105b08585610b51565b81526020016105bf8585610b71565b6001600160401b0316905290506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106068686610b94565b6106108787610ba6565b60405161061e929190611437565b6040805191829003822060e086901b6001600160e01b0319168352845163ffffffff166004840152602085015160248401529301516001600160401b031660448201526001600160a01b039091166064820152608481019190915260a401600060405180830381600087803b15801561069657600080fd5b505af11580156106aa573d6000803e3d6000fd5b50505050505050565b6106bb610bc2565b600491909155600355565b60408051808201909152600080825260208201526060807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461072657604051630fd72cd960e31b815260040160405180910390fd5b6107376107328761145e565b610bef565b9150845160001461074857846107d4565b60058054610755906114fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610781906114fb565b80156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b50505050505b90506107e08282610c47565b60405180604001604052806004548152602001856107ff576000610803565b6003545b9052969195509350915050565b610818610bc2565b6108226000610caf565b565b60058054610831906114fb565b80601f016020809104026020016040519081016040528092919081815260200182805461085d906114fb565b80156108aa5780601f1061087f576101008083540402835291602001916108aa565b820191906000526020600020905b81548152906001019060200180831161088d57829003601f168201915b505050505081565b6108ba610bc2565b6001600160a01b0382166108e157604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061152f565b90506001600160a01b03811661098e576040516354c1781b60e01b815260040160405180910390fd5b6109a26001600160a01b0382168484610cff565b505050565b6109af610bc2565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600454815260200183610a04576000610a08565b6003545b905295945050505050565b610a1b610bc2565b6005610a278282611594565b5050565b610a33610bc2565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610a6b81610caf565b50565b610a76610bc2565b6001600160a01b038216610a9d57604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b21919061152f565b90506109a2818484610d51565b6000610b3e600d60098486611653565b610b479161167d565b60e01c9392505050565b6000610b61602d600d8486611653565b610b6a916116ad565b9392505050565b6000610b81600960018486611653565b610b8a916116cb565b60c01c9392505050565b6000610b6a610ba38484610d74565b90565b366000610bb68360518187611653565b915091505b9250929050565b6000546001600160a01b031633146108225760405163118cdaa760e01b8152336004820152602401610a59565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610c3198600198919791966001600160a01b031695016116f9565b6040516020818303038152906040529050919050565b600154604051631f5dad8b60e31b81526001600160a01b039091169063faed6c5890610c799085908590600401611774565b600060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526109a2908490610d84565b6001600160a01b038316610d69576109a28282610de7565b6109a2838383610e94565b6000610b61605160318486611653565b6000610d996001600160a01b03841683610ecf565b90508051600014158015610dbe575080806020019051810190610dbc91906117a2565b155b156109a257604051635274afe760e01b81526001600160a01b0384166004820152602401610a59565b6001600160a01b038216610e0e576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b50509050806109a257604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610a59565b6001600160a01b038216610ebb576040516306b7a93160e41b815260040160405180910390fd5b6109a26001600160a01b0384168383610cff565b6060610b6a8383600084600080856001600160a01b03168486604051610ef591906117bf565b60006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b5091509150610f47868383610f51565b9695505050505050565b606082610f6657610f6182610fad565b610b6a565b8151158015610f7d57506001600160a01b0384163b155b15610fa657604051639996b31560e01b81526001600160a01b0385166004820152602401610a59565b5080610b6a565b805115610fbd5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610fe857600080fd5b81356001600160e01b031981168114610b6a57600080fd5b60008083601f84011261101257600080fd5b5081356001600160401b0381111561102957600080fd5b602083019150836020828501011115610bbb57600080fd5b6000806020838503121561105457600080fd5b82356001600160401b0381111561106a57600080fd5b61107685828601611000565b90969095509350505050565b60208101600383106110a457634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156110bd57600080fd5b50508035926020909101359150565b600060e082840312156110de57600080fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561111c5761111c6110e4565b60405290565b600082601f83011261113357600080fd5b81356001600160401b038082111561114d5761114d6110e4565b604051601f8301601f19908116603f01168101908282118183101715611175576111756110e4565b8160405283815286602085880101111561118e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610a6b57600080fd5b6000806000606084860312156111d157600080fd5b83356001600160401b03808211156111e857600080fd5b6111f4878388016110cc565b9450602086013591508082111561120a57600080fd5b5061121786828701611122565b9250506040840135611228816111ae565b809150509250925092565b60005b8381101561124e578181015183820152602001611236565b50506000910152565b6000815180845261126f816020860160208601611233565b601f01601f19169290920160200192915050565b83518152602080850151908201526080604082015260006112a76080830185611257565b8281036060840152610f478185611257565b803563ffffffff811681146112cd57600080fd5b919050565b6000602082840312156112e457600080fd5b610b6a826112b9565b602081526000610b6a6020830184611257565b6001600160a01b0381168114610a6b57600080fd5b80356112cd81611300565b6000806040838503121561133357600080fd5b823561133e81611300565b946020939093013593505050565b60006020828403121561135e57600080fd5b8135610b6a81611300565b6000806000806060858703121561137f57600080fd5b84356001600160401b038082111561139657600080fd5b6113a2888389016110cc565b955060208701359150808211156113b857600080fd5b506113c587828801611000565b90945092505060408501356113d9816111ae565b939692955090935050565b81518152602080830151908201526040810161053b565b60006020828403121561140d57600080fd5b81356001600160401b0381111561142357600080fd5b61142f84828501611122565b949350505050565b8183823760009101908152919050565b80356001600160401b03811681146112cd57600080fd5b600060e0823603121561147057600080fd5b6114786110fa565b61148183611447565b815261148f602084016112b9565b60208201526114a060408401611315565b60408201526114b1606084016112b9565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b038111156114e357600080fd5b6114ef36828601611122565b60c08301525092915050565b600181811c9082168061150f57607f821691505b6020821081036110de57634e487b7160e01b600052602260045260246000fd5b60006020828403121561154157600080fd5b8151610b6a81611300565b601f8211156109a2576000816000526020600020601f850160051c810160208610156115755750805b601f850160051c820191505b81811015610ca757828155600101611581565b81516001600160401b038111156115ad576115ad6110e4565b6115c1816115bb84546114fb565b8461154c565b602080601f8311600181146115f657600084156115de5750858301515b600019600386901b1c1916600185901b178555610ca7565b600085815260208120601f198616915b8281101561162557888601518255948401946001909101908401611606565b50858210156116435787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808585111561166357600080fd5b8386111561167057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116a55780818660040360031b1b83161692505b505092915050565b8035602083101561053b57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156116a55760089490940360031b84901b1690921692915050565b60ff60f81b8960f81b1681526001600160401b0360c01b8860c01b166001820152600063ffffffff60e01b808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611760816071850160208701611233565b919091016071019998505050505050505050565b6040815260006117876040830185611257565b82810360208401526117998185611257565b95945050505050565b6000602082840312156117b457600080fd5b8151610b6a816111ae565b600082516117d1818460208701611233565b919091019291505056fea2646970667358221220990cfb4d672f3a4b176b2a0dac3fbeff814b316fc90a05799662ae7184d6045a64736f6c63430008160033608060405234801561001057600080fd5b5061050c806100206000396000f3fe6080604052600436106100555760003560e01c80630ae6d46b1461005a578063609d333414610083578063c34c08e5146100a5578063d0a10260146100dd578063d5ce3389146100f2578063e21f37ce14610112575b600080fd5b34801561006657600080fd5b5061007060015481565b6040519081526020015b60405180910390f35b34801561008f57600080fd5b50610098610127565b60405161007a9190610222565b3480156100b157600080fd5b506003546100c5906001600160a01b031681565b6040516001600160a01b03909116815260200161007a565b6100f06100eb3660046102d6565b6101b5565b005b3480156100fe57600080fd5b506000546100c5906001600160a01b031681565b34801561011e57600080fd5b50610098610215565b6004805461013490610374565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610374565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b505050505081565b600080546001600160a01b0319166001600160a01b038916179055600186905560026101e2858783610415565b50600380546001600160a01b0319166001600160a01b038516179055600461020b858783610415565b5050505050505050565b6002805461013490610374565b60006020808352835180602085015260005b8181101561025057858101830151858201604001528201610234565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461028857600080fd5b919050565b60008083601f84011261029f57600080fd5b50813567ffffffffffffffff8111156102b757600080fd5b6020830191508360208285010111156102cf57600080fd5b9250929050565b600080600080600080600060a0888a0312156102f157600080fd5b6102fa88610271565b965060208801359550604088013567ffffffffffffffff8082111561031e57600080fd5b61032a8b838c0161028d565b909750955085915061033e60608b01610271565b945060808a013591508082111561035457600080fd5b506103618a828b0161028d565b989b979a50959850939692959293505050565b600181811c9082168061038857607f821691505b6020821081036103a857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b601f821115610410576000816000526020600020601f850160051c810160208610156103ed5750805b601f850160051c820191505b8181101561040c578281556001016103f9565b5050505b505050565b67ffffffffffffffff83111561042d5761042d6103ae565b6104418361043b8354610374565b836103c4565b6000601f841160018114610475576000851561045d5750838201355b600019600387901b1c1916600186901b1783556104cf565b600083815260209020601f19861690835b828110156104a65786850135825560209485019460019092019101610486565b50868210156104c35760001960f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea264697066735822122018aae83154d1fdb76542fdfef3ea577783f67dc8a90b8667d1027536f3d0416264736f6c63430008160033608060405234801561001057600080fd5b506101c9806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063043a78eb14610030575b600080fd5b61004361003e3660046100cc565b610057565b604051901515815260200160405180910390f35b600084848484604051637b43b43960e01b815260040161007a9493929190610161565b60405180910390fd5b60008083601f84011261009557600080fd5b50813567ffffffffffffffff8111156100ad57600080fd5b6020830191508360208285010111156100c557600080fd5b9250929050565b600080600080604085870312156100e257600080fd5b843567ffffffffffffffff808211156100fa57600080fd5b61010688838901610083565b9096509450602087013591508082111561011f57600080fd5b5061012c87828801610083565b95989497509550505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000610175604083018688610138565b8281036020840152610188818587610138565b97965050505050505056fea2646970667358221220ea9bbad397a0be403cdd619a7d40c7c06497bc53685000434d5009331c3f240064736f6c6343000816003360a06040523480156200001157600080fd5b5060405162003ac638038062003ac6833981016040819052620000349162000277565b838383838383838381818181806001600160a01b0381166200007057604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007b8162000142565b506001600160a01b038083166080528116620000aa57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000f257600080fd5b505af115801562000107573d6000803e3d6000fd5b50505050505050505050816005908162000122919062000397565b50600662000131828262000397565b505050505050505050505062000463565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ba57600080fd5b81516001600160401b0380821115620001d757620001d762000192565b604051601f8301601f19908116603f0116810190828211818310171562000202576200020262000192565b81604052838152602092508660208588010111156200022057600080fd5b600091505b8382101562000244578582018301518183018401529082019062000225565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200027257600080fd5b919050565b600080600080608085870312156200028e57600080fd5b84516001600160401b0380821115620002a657600080fd5b620002b488838901620001a8565b95506020870151915080821115620002cb57600080fd5b50620002da87828801620001a8565b935050620002eb604086016200025a565b9150620002fb606086016200025a565b905092959194509250565b600181811c908216806200031b57607f821691505b6020821081036200033c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000392576000816000526020600020601f850160051c810160208610156200036d5750805b601f850160051c820191505b818110156200038e5782815560010162000379565b5050505b505050565b81516001600160401b03811115620003b357620003b362000192565b620003cb81620003c4845462000306565b8462000342565b602080601f831160018114620004035760008415620003ea5750858301515b600019600386901b1c1916600185901b1785556200038e565b600085815260208120601f198616915b82811015620004345788860151825594840194600190910190840162000413565b5085821015620004535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051613616620004b06000396000818161053a01528181610a0a0152818161128901528181611529015281816117ac01528181611dc80152818161219d015261225601526136166000f3fe6080604052600436106102935760003560e01c80637d25a05e1161015a578063bc70b354116100c1578063d42438851161007a578063d42438851461084c578063dcdfd9111461086c578063e985e9c51461088c578063f2fde38b146108ac578063fc0c546a146104be578063ff7bd03d146108cc57600080fd5b8063bc70b35414610799578063bd815db0146107b9578063c6414e7b146107cc578063c87b56dd146107f9578063ca5eb5e114610819578063d045a0dc1461083957600080fd5b8063a72f5dd811610113578063a72f5dd8146106cf578063b21a33e4146106f7578063b731ea0a1461070c578063b88d4fde1461072c578063b98bd0701461074c578063bb0b6a531461076c57600080fd5b80637d25a05e1461060d57806382413eac146106485780638da5cb5b1461066857806395d89b41146106865780639f68b9641461069b578063a22cb465146106af57600080fd5b806342842e0e116101fe5780635e280f11116101b75780635e280f11146105285780636352211e1461055c5780636fc1b31e1461057c5780637048de9a1461059c57806370a08231146105ca578063715018a6146105f857600080fd5b806342842e0e146104465780634dba701b146104665780634f558e791461048657806352ae2879146104be5780635535d461146104d15780635a0dfe4d146104f157600080fd5b806317442b701161025057806317442b701461037c5780631f5e13341461039e57806321eb730b146103c657806323b872dd146103e65780633400288b1461040657806340c10f191461042657600080fd5b806301ffc9a71461029857806306fdde03146102cd578063081812fc146102ef578063095ea7b314610327578063111ecdad1461034957806313137d6514610369575b600080fd5b3480156102a457600080fd5b506102b86102b336600461263b565b6108ec565b60405190151581526020015b60405180910390f35b3480156102d957600080fd5b506102e261093e565b6040516102c491906126a8565b3480156102fb57600080fd5b5061030f61030a3660046126bb565b6109d0565b6040516001600160a01b0390911681526020016102c4565b34801561033357600080fd5b506103476103423660046126e9565b6109f9565b005b34801561035557600080fd5b5060045461030f906001600160a01b031681565b610347610377366004612775565b610a08565b34801561038857600080fd5b50604080516001815260026020820152016102c4565b3480156103aa57600080fd5b506103b3600181565b60405161ffff90911681526020016102c4565b6103d96103d4366004612826565b610ac8565b6040516102c49190612893565b3480156103f257600080fd5b506103476104013660046128d5565b610ba3565b34801561041257600080fd5b5061034761042136600461292f565b610c2e565b34801561043257600080fd5b506103476104413660046126e9565b610c40565b34801561045257600080fd5b506103476104613660046128d5565b610c4a565b34801561047257600080fd5b5061034761048136600461294b565b610c6a565b34801561049257600080fd5b506102b86104a13660046126bb565b6000908152600760205260409020546001600160a01b0316151590565b3480156104ca57600080fd5b503061030f565b3480156104dd57600080fd5b506102e26104ec36600461299b565b610c75565b3480156104fd57600080fd5b506102b861050c36600461292f565b63ffffffff919091166000908152600160205260409020541490565b34801561053457600080fd5b5061030f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561056857600080fd5b5061030f6105773660046126bb565b610d1a565b34801561058857600080fd5b506103476105973660046129ce565b610d25565b3480156105a857600080fd5b506105bc6105b73660046129eb565b610d82565b6040516102c4929190612a1f565b3480156105d657600080fd5b506105ea6105e53660046129ce565b610d97565b6040519081526020016102c4565b34801561060457600080fd5b50610347610ddf565b34801561061957600080fd5b5061063061062836600461292f565b600092915050565b6040516001600160401b0390911681526020016102c4565b34801561065457600080fd5b506102b8610663366004612a44565b610df3565b34801561067457600080fd5b506000546001600160a01b031661030f565b34801561069257600080fd5b506102e2610e08565b3480156106a757600080fd5b5060006102b8565b3480156106bb57600080fd5b506103476106ca366004612ab8565b610e17565b3480156106db57600080fd5b50604080516311f0c6d360e11b815260016020820152016102c4565b34801561070357600080fd5b506103b3600281565b34801561071857600080fd5b5060025461030f906001600160a01b031681565b34801561073857600080fd5b50610347610747366004612bfe565b610e22565b34801561075857600080fd5b50610347610767366004612cad565b610e39565b34801561077857600080fd5b506105ea610787366004612cee565b60016020526000908152604090205481565b3480156107a557600080fd5b506102e26107b4366004612d09565b610e53565b6103476107c7366004612cad565b610ffb565b3480156107d857600080fd5b506107ec6107e7366004612d69565b611185565b6040516102c49190612daf565b34801561080557600080fd5b506102e26108143660046126bb565b6111ed565b34801561082557600080fd5b506103476108343660046129ce565b611262565b610347610847366004612775565b6112e8565b34801561085857600080fd5b506103476108673660046129ce565b611317565b34801561087857600080fd5b50610347610887366004612dc6565b61136d565b34801561089857600080fd5b506102b86108a7366004612de9565b611378565b3480156108b857600080fd5b506103476108c73660046129ce565b6113a6565b3480156108d857600080fd5b506102b86108e7366004612e17565b6113e4565b60006001600160e01b031982166380ac58cd60e01b148061091d57506001600160e01b03198216635b5e139f60e01b145b8061093857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461094d90612e33565b80601f016020809104026020016040519081016040528092919081815260200182805461097990612e33565b80156109c65780601f1061099b576101008083540402835291602001916109c6565b820191906000526020600020905b8154815290600101906020018083116109a957829003601f168201915b5050505050905090565b60006109db8261141a565b506000828152600960205260409020546001600160a01b0316610938565b610a04828233611453565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610a58576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610a7290610a6d908a612cee565b611460565b14610ab057610a846020880188612cee565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610a4f565b610abf8787878787878761149c565b50505050505050565b610ad06125de565b6020840135610af257604051631e4ec46b60e01b815260040160405180910390fd5b610b0d336040860135610b086020880188612cee565b6115fb565b600080610b198661165b565b9092509050610b45610b2e6020880188612cee565b8383610b3f368a90038a018a612e67565b88611779565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610b7a60208a018a612cee565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610bcd57604051633250574960e11b815260006004820152602401610a4f565b6000610bda838333611884565b9050836001600160a01b0316816001600160a01b031614610c28576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610a4f565b50505050565b610c3661197d565b610a0482826119aa565b610a0482826119ff565b610c6583838360405180602001604052806000815250610e22565b505050565b610c65838383611a64565b600360209081526000928352604080842090915290825290208054610c9990612e33565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc590612e33565b8015610d125780601f10610ce757610100808354040283529160200191610d12565b820191906000526020600020905b815481529060010190602001808311610cf557829003601f168201915b505050505081565b60006109388261141a565b610d2d61197d565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b606080610d8e8361165b565b91509150915091565b60006001600160a01b038216610dc3576040516322718ad960e21b815260006004820152602401610a4f565b506001600160a01b031660009081526008602052604090205490565b610de761197d565b610df16000611a6e565b565b6001600160a01b03811630145b949350505050565b60606006805461094d90612e33565b610a04338383611abe565b610e2d848484610ba3565b610c2884848484611b5d565b610e4161197d565b610a04610e4e8284612e99565b611c7f565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610e8790612e33565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb390612e33565b8015610f005780601f10610ed557610100808354040283529160200191610f00565b820191906000526020600020905b815481529060010190602001808311610ee357829003601f168201915b505050505090508051600003610f505783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610e009350505050565b6000839003610f60579050610e00565b60028310610fde57610fa784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d8692505050565b80610fb58460028188612f6e565b604051602001610fc793929190612f98565b604051602081830303815290604052915050610e00565b8383604051639a6d49cd60e01b8152600401610a4f929190612fe9565b60005b81811015611104573683838381811061101957611019612ffd565b905060200281019061102b9190613013565b905061105e61103d6020830183612cee565b602083013563ffffffff919091166000908152600160205260409020541490565b61106857506110fc565b3063d045a0dc60c08301358360a0810135611087610100830183613034565b611098610100890160e08a016129ce565b6110a66101208a018a613034565b6040518963ffffffff1660e01b81526004016110c8979695949392919061308f565b6000604051808303818588803b1580156110e157600080fd5b505af11580156110f5573d6000803e3d6000fd5b5050505050505b600101610ffe565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611143573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116b9190810190613115565b604051638351eea760e01b8152600401610a4f91906126a8565b604080518082019091526000808252602082015260208301356111bb57604051631e4ec46b60e01b815260040160405180910390fd5b6000806111c78561165b565b90925090506111e46111dc6020870187612cee565b838387611db2565b95945050505050565b60606111f88261141a565b50600061121060408051602081019091526000815290565b90506000815111611230576040518060200160405280600081525061125b565b8061123a84611e8a565b60405160200161124b929190613182565b6040516020818303038152906040525b9392505050565b61126a61197d565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b5050505050565b3330146113085760405163029a949d60e31b815260040160405180910390fd5b610abf87878787878787610ab0565b61131f61197d565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610d77565b610a043383836115fb565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6113ae61197d565b6001600160a01b0381166113d857604051631e4fbdf760e01b815260006004820152602401610a4f565b6113e181611a6e565b50565b60006020820180359060019083906113fc9086612cee565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061093857604051637e27328960e01b815260048101849052602401610a4f565b610c658383836001611f1c565b63ffffffff8116600090815260016020526040812054806109385760405163f6ff4fb760e01b815263ffffffff84166004820152602401610a4f565b60006114ae6114ab8787612022565b90565b905060006114bc878761203a565b90506114d582826114d060208d018d612cee565b611a64565b604086111561159957600061150f6114f360608c0160408d016131b1565b61150060208d018d612cee565b61150a8b8b612057565b6120a2565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906115659086908d9060009087906004016131ce565b600060405180830381600087803b15801561157f57600080fd5b505af1158015611593573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56115d260208d018d612cee565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b61160482610d1a565b6001600160a01b0316836001600160a01b031614611652578261162683610d1a565b604051634342715b60e11b81526001600160a01b03928316600482015291166024820152604401610a4f565b610c65826120d1565b60608060006116b46020850135604086013561167a6080880188613034565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061210c92505050565b90935090506000816116c75760016116ca565b60025b90506116ea6116dc6020870187612cee565b826107b46060890189613034565b6004549093506001600160a01b031615611772576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb9161172f918891889101612a1f565b602060405180830381865afa15801561174c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177091906131ff565b505b5050915091565b6117816125de565b60006117908460000151612171565b6020850151909150156117aa576117aa8460200151612199565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016117fa8c611460565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161183692919061321c565b60806040518083038185885af1158015611854573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061187991906132c5565b979650505050505050565b6000828152600760205260408120546001600160a01b03908116908316156118b1576118b181848661227b565b6001600160a01b038116156118ef576118ce600085600080611f1c565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b0385161561191e576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610df15760405163118cdaa760e01b8152336004820152602401610a4f565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6001600160a01b038216611a2957604051633250574960e11b815260006004820152602401610a4f565b6000611a3783836000611884565b90506001600160a01b03811615610c65576040516339e3563760e11b815260006004820152602401610a4f565b610c6583836119ff565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216611af057604051630b61174360e31b81526001600160a01b0383166004820152602401610a4f565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610c2857604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611b9f90339088908790879060040161330f565b6020604051808303816000875af1925050508015611bda575060408051601f3d908101601f19168201909252611bd791810190613342565b60015b611c43573d808015611c08576040519150601f19603f3d011682016040523d82523d6000602084013e611c0d565b606091505b508051600003611c3b57604051633250574960e11b81526001600160a01b0385166004820152602401610a4f565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146112e157604051633250574960e11b81526001600160a01b0385166004820152602401610a4f565b60005b8151811015611d5657611cb1828281518110611ca057611ca0612ffd565b602002602001015160400151611d86565b818181518110611cc357611cc3612ffd565b60200260200101516040015160036000848481518110611ce557611ce5612ffd565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611d1f57611d1f612ffd565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611d4d91906133af565b50600101611c82565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610d77919061346e565b600281015161ffff8116600314610a045781604051639a6d49cd60e01b8152600401610a4f91906126a8565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611e1589611460565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611e4a92919061321c565b6040805180830381865afa158015611e66573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906134f9565b60606000611e97836122df565b60010190506000816001600160401b03811115611eb657611eb6612af1565b6040519080825280601f01601f191660200182016040528015611ee0576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611eea57509392505050565b8080611f3057506001600160a01b03821615155b15611ff2576000611f408461141a565b90506001600160a01b03831615801590611f6c5750826001600160a01b0316816001600160a01b031614155b8015611f7f5750611f7d8184611378565b155b15611fa85760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610a4f565b8115611ff05783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b60006120316020828486612f6e565b61125b91613515565b600061204a604060208486612f6e565b81019061125b91906126bb565b60606120668260408186612f6e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b60608383836040516020016120b993929190613533565b60405160208183030381529060405290509392505050565b60006120e06000836000611884565b90506001600160a01b038116610a0457604051637e27328960e01b815260048101839052602401610a4f565b8051606090151580612140576040805160208101879052908101859052606001604051602081830303815290604052612167565b84843385604051602001612157949392919061357d565b6040516020818303038152906040525b9150935093915050565b6000813414612195576040516304fb820960e51b8152346004820152602401610a4f565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221d91906135b1565b90506001600160a01b038116612246576040516329b99a9560e11b815260040160405180910390fd5b610a046001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856123b7565b612286838383612411565b610c65576001600160a01b0383166122b457604051637e27328960e01b815260048101829052602401610a4f565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610a4f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061231e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061234a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061236857662386f26fc10000830492506010015b6305f5e1008310612380576305f5e100830492506008015b612710831061239457612710830492506004015b606483106123a6576064830492506002015b600a83106109385760010192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610c28908590612474565b60006001600160a01b03831615801590610e005750826001600160a01b0316846001600160a01b0316148061244b575061244b8484611378565b80610e005750506000908152600960205260409020546001600160a01b03908116911614919050565b60006124896001600160a01b038416836124d7565b905080516000141580156124ae5750808060200190518101906124ac91906131ff565b155b15610c6557604051635274afe760e01b81526001600160a01b0384166004820152602401610a4f565b606061125b8383600084600080856001600160a01b031684866040516124fd91906135ce565b60006040518083038185875af1925050503d806000811461253a576040519150601f19603f3d011682016040523d82523d6000602084013e61253f565b606091505b509150915061254f868383612559565b9695505050505050565b60608261256e57612569826125b5565b61125b565b815115801561258557506001600160a01b0384163b155b156125ae57604051639996b31560e01b81526001600160a01b0385166004820152602401610a4f565b508061125b565b8051156125c55780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001612620604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146113e157600080fd5b60006020828403121561264d57600080fd5b813561125b81612625565b60005b8381101561267357818101518382015260200161265b565b50506000910152565b60008151808452612694816020860160208601612658565b601f01601f19169290920160200192915050565b60208152600061125b602083018461267c565b6000602082840312156126cd57600080fd5b5035919050565b6001600160a01b03811681146113e157600080fd5b600080604083850312156126fc57600080fd5b8235612707816126d4565b946020939093013593505050565b60006060828403121561272757600080fd5b50919050565b60008083601f84011261273f57600080fd5b5081356001600160401b0381111561275657600080fd5b60208301915083602082850101111561276e57600080fd5b9250929050565b600080600080600080600060e0888a03121561279057600080fd5b61279a8989612715565b96506060880135955060808801356001600160401b03808211156127bd57600080fd5b6127c98b838c0161272d565b909750955060a08a013591506127de826126d4565b90935060c089013590808211156127f457600080fd5b506128018a828b0161272d565b989b979a50959850939692959293505050565b600060c0828403121561272757600080fd5b6000806000838503608081121561283c57600080fd5b84356001600160401b0381111561285257600080fd5b61285e87828801612814565b9450506040601f198201121561287357600080fd5b506020840191506060840135612888816126d4565b809150509250925092565b6000608082019050825182526001600160401b03602084015116602083015260408301516128ce604084018280518252602090810151910152565b5092915050565b6000806000606084860312156128ea57600080fd5b83356128f5816126d4565b92506020840135612905816126d4565b929592945050506040919091013590565b803563ffffffff8116811461292a57600080fd5b919050565b6000806040838503121561294257600080fd5b61270783612916565b60008060006060848603121561296057600080fd5b833561296b816126d4565b92506020840135915061298060408501612916565b90509250925092565b803561ffff8116811461292a57600080fd5b600080604083850312156129ae57600080fd5b6129b783612916565b91506129c560208401612989565b90509250929050565b6000602082840312156129e057600080fd5b813561125b816126d4565b6000602082840312156129fd57600080fd5b81356001600160401b03811115612a1357600080fd5b610e0084828501612814565b604081526000612a32604083018561267c565b82810360208401526111e4818561267c565b60008060008060a08587031215612a5a57600080fd5b612a648686612715565b935060608501356001600160401b03811115612a7f57600080fd5b612a8b8782880161272d565b9094509250506080850135612a9f816126d4565b939692955090935050565b80151581146113e157600080fd5b60008060408385031215612acb57600080fd5b8235612ad6816126d4565b91506020830135612ae681612aaa565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612b2957612b29612af1565b60405290565b604051606081016001600160401b0381118282101715612b2957612b29612af1565b604051601f8201601f191681016001600160401b0381118282101715612b7957612b79612af1565b604052919050565b60006001600160401b03821115612b9a57612b9a612af1565b50601f01601f191660200190565b600082601f830112612bb957600080fd5b8135612bcc612bc782612b81565b612b51565b818152846020838601011115612be157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612c1457600080fd5b8435612c1f816126d4565b93506020850135612c2f816126d4565b92506040850135915060608501356001600160401b03811115612c5157600080fd5b612c5d87828801612ba8565b91505092959194509250565b60008083601f840112612c7b57600080fd5b5081356001600160401b03811115612c9257600080fd5b6020830191508360208260051b850101111561276e57600080fd5b60008060208385031215612cc057600080fd5b82356001600160401b03811115612cd657600080fd5b612ce285828601612c69565b90969095509350505050565b600060208284031215612d0057600080fd5b61125b82612916565b60008060008060608587031215612d1f57600080fd5b612d2885612916565b9350612d3660208601612989565b925060408501356001600160401b03811115612d5157600080fd5b612d5d8782880161272d565b95989497509550505050565b60008060408385031215612d7c57600080fd5b82356001600160401b03811115612d9257600080fd5b612d9e85828601612814565b9250506020830135612ae681612aaa565b815181526020808301519082015260408101610938565b60008060408385031215612dd957600080fd5b823591506129c560208401612916565b60008060408385031215612dfc57600080fd5b8235612e07816126d4565b91506020830135612ae6816126d4565b600060608284031215612e2957600080fd5b61125b8383612715565b600181811c90821680612e4757607f821691505b60208210810361272757634e487b7160e01b600052602260045260246000fd5b600060408284031215612e7957600080fd5b612e81612b07565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612eb357612eb3612af1565b8360051b6020612ec4818301612b51565b868152918501918181019036841115612edc57600080fd5b865b84811015612f6257803586811115612ef65760008081fd5b88016060368290031215612f0a5760008081fd5b612f12612b2f565b612f1b82612916565b8152612f28868301612989565b8682015260408083013589811115612f405760008081fd5b612f4c36828601612ba8565b9183019190915250845250918301918301612ede565b50979650505050505050565b60008085851115612f7e57600080fd5b83861115612f8b57600080fd5b5050820193919092039150565b60008451612faa818460208901612658565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610e00602083018486612fc0565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1983360301811261302a57600080fd5b9190910192915050565b6000808335601e1984360301811261304b57600080fd5b8301803591506001600160401b0382111561306557600080fd5b60200191503681900382131561276e57600080fd5b6001600160401b03811681146113e157600080fd5b63ffffffff61309d89612916565b16815260208801356020820152600060408901356130ba8161307a565b6001600160401b03811660408401525087606083015260e060808301526130e560e083018789612fc0565b6001600160a01b03861660a084015282810360c0840152613107818587612fc0565b9a9950505050505050505050565b60006020828403121561312757600080fd5b81516001600160401b0381111561313d57600080fd5b8201601f8101841361314e57600080fd5b805161315c612bc782612b81565b81815285602083850101111561317157600080fd5b6111e4826020830160208601612658565b60008351613194818460208801612658565b8351908301906131a8818360208801612658565b01949350505050565b6000602082840312156131c357600080fd5b813561125b8161307a565b60018060a01b038516815283602082015261ffff8316604082015260806060820152600061254f608083018461267c565b60006020828403121561321157600080fd5b815161125b81612aaa565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261325260e084018261267c565b90506060850151603f198483030160a085015261326f828261267c565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156132a757600080fd5b6132af612b07565b9050815181526020820151602082015292915050565b6000608082840312156132d757600080fd5b6132df612b2f565b8251815260208301516132f18161307a565b60208201526133038460408501613295565b60408201529392505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061254f9083018461267c565b60006020828403121561335457600080fd5b815161125b81612625565b601f821115610c65576000816000526020600020601f850160051c810160208610156133885750805b601f850160051c820191505b818110156133a757828155600101613394565b505050505050565b81516001600160401b038111156133c8576133c8612af1565b6133dc816133d68454612e33565b8461335f565b602080601f83116001811461341157600084156133f95750858301515b600019600386901b1c1916600185901b1785556133a7565b600085815260208120601f198616915b8281101561344057888601518255948401946001909101908401613421565b508582101561345e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156134eb57888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526134d78186018361267c565b968901969450505090860190600101613497565b509098975050505050505050565b60006040828403121561350b57600080fd5b61125b8383613295565b8035602083101561093857600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061356e81600c850160208701612658565b91909101600c01949350505050565b848152836020820152826040820152600082516135a1816060850160208701612658565b9190910160600195945050505050565b6000602082840312156135c357600080fd5b815161125b816126d4565b6000825161302a81846020870161265856fea264697066735822122071957703e50ccb286e5ebe46d2f949f82f18febb51e7410edae37ef294c4ceff64736f6c6343000816003360806040523480156200001157600080fd5b506040516200127738038062001277833981016040819052620000349162000126565b8181600062000044838262000221565b50600162000053828262000221565b5050505050620002ed565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008657600080fd5b81516001600160401b0380821115620000a357620000a36200005e565b604051601f8301601f19908116603f01168101908282118183101715620000ce57620000ce6200005e565b8160405283815260209250866020858801011115620000ec57600080fd5b600091505b83821015620001105785820183015181830184015290820190620000f1565b6000602085830101528094505050505092915050565b600080604083850312156200013a57600080fd5b82516001600160401b03808211156200015257600080fd5b620001608683870162000074565b935060208501519150808211156200017757600080fd5b50620001868582860162000074565b9150509250929050565b600181811c90821680620001a557607f821691505b602082108103620001c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021c576000816000526020600020601f850160051c81016020861015620001f75750805b601f850160051c820191505b81811015620002185782815560010162000203565b5050505b505050565b81516001600160401b038111156200023d576200023d6200005e565b62000255816200024e845462000190565b84620001cc565b602080601f8311600181146200028d5760008415620002745750858301515b600019600386901b1c1916600185901b17855562000218565b600085815260208120601f198616915b82811015620002be578886015182559484019460019091019084016200029d565b5085821015620002dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610f7a80620002fd6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806340c10f191461017f57806342842e0e1461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610bea565b61022d565b60405190151581526020015b60405180910390f35b61011f61027f565b60405161010e9190610c57565b61013f61013a366004610c6a565b610311565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610c9f565b61033a565b005b61016a61017a366004610cc9565b610349565b61016a61018d366004610c9f565b6103d9565b61016a6101a0366004610cc9565b6103e3565b61013f6101b3366004610c6a565b610403565b6101cb6101c6366004610d05565b61040e565b60405190815260200161010e565b61011f610456565b61016a6101ef366004610d20565b610465565b61016a610202366004610d72565b610470565b61011f610215366004610c6a565b610487565b610102610228366004610e4e565b6104fc565b60006001600160e01b031982166380ac58cd60e01b148061025e57506001600160e01b03198216635b5e139f60e01b145b8061027957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461028e90610e81565b80601f01602080910402602001604051908101604052809291908181526020018280546102ba90610e81565b80156103075780601f106102dc57610100808354040283529160200191610307565b820191906000526020600020905b8154815290600101906020018083116102ea57829003601f168201915b5050505050905090565b600061031c8261052a565b506000828152600460205260409020546001600160a01b0316610279565b610345828233610563565b5050565b6001600160a01b03821661037857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610385838333610570565b9050836001600160a01b0316816001600160a01b0316146103d3576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161036f565b50505050565b6103458282610669565b6103fe83838360405180602001604052806000815250610470565b505050565b60006102798261052a565b60006001600160a01b03821661043a576040516322718ad960e21b81526000600482015260240161036f565b506001600160a01b031660009081526003602052604090205490565b60606001805461028e90610e81565b6103453383836106ce565b61047b848484610349565b6103d38484848461076d565b60606104928261052a565b5060006104aa60408051602081019091526000815290565b905060008151116104ca57604051806020016040528060008152506104f5565b806104d484610896565b6040516020016104e5929190610ebb565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260408120546001600160a01b03168061027957604051637e27328960e01b81526004810184905260240161036f565b6103fe8383836001610929565b6000828152600260205260408120546001600160a01b039081169083161561059d5761059d818486610a2f565b6001600160a01b038116156105db576105ba600085600080610929565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b0385161561060a576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661069357604051633250574960e11b81526000600482015260240161036f565b60006106a183836000610570565b90506001600160a01b038116156103fe576040516339e3563760e11b81526000600482015260240161036f565b6001600160a01b03821661070057604051630b61174360e31b81526001600160a01b038316600482015260240161036f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156103d357604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906107af903390889087908790600401610eea565b6020604051808303816000875af19250505080156107ea575060408051601f3d908101601f191682019092526107e791810190610f27565b60015b610853573d808015610818576040519150601f19603f3d011682016040523d82523d6000602084013e61081d565b606091505b50805160000361084b57604051633250574960e11b81526001600160a01b038516600482015260240161036f565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461088f57604051633250574960e11b81526001600160a01b038516600482015260240161036f565b5050505050565b606060006108a383610a93565b600101905060008167ffffffffffffffff8111156108c3576108c3610d5c565b6040519080825280601f01601f1916602001820160405280156108ed576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846108f757509392505050565b808061093d57506001600160a01b03821615155b156109ff57600061094d8461052a565b90506001600160a01b038316158015906109795750826001600160a01b0316816001600160a01b031614155b801561098c575061098a81846104fc565b155b156109b55760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161036f565b81156109fd5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a3a838383610b6b565b6103fe576001600160a01b038316610a6857604051637e27328960e01b81526004810182905260240161036f565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161036f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ad25772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610afe576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610b1c57662386f26fc10000830492506010015b6305f5e1008310610b34576305f5e100830492506008015b6127108310610b4857612710830492506004015b60648310610b5a576064830492506002015b600a83106102795760010192915050565b60006001600160a01b03831615801590610bc95750826001600160a01b0316846001600160a01b03161480610ba55750610ba584846104fc565b80610bc957506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610be757600080fd5b50565b600060208284031215610bfc57600080fd5b81356104f581610bd1565b60005b83811015610c22578181015183820152602001610c0a565b50506000910152565b60008151808452610c43816020860160208601610c07565b601f01601f19169290920160200192915050565b6020815260006104f56020830184610c2b565b600060208284031215610c7c57600080fd5b5035919050565b80356001600160a01b0381168114610c9a57600080fd5b919050565b60008060408385031215610cb257600080fd5b610cbb83610c83565b946020939093013593505050565b600080600060608486031215610cde57600080fd5b610ce784610c83565b9250610cf560208501610c83565b9150604084013590509250925092565b600060208284031215610d1757600080fd5b6104f582610c83565b60008060408385031215610d3357600080fd5b610d3c83610c83565b915060208301358015158114610d5157600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610d8857600080fd5b610d9185610c83565b9350610d9f60208601610c83565b925060408501359150606085013567ffffffffffffffff80821115610dc357600080fd5b818701915087601f830112610dd757600080fd5b813581811115610de957610de9610d5c565b604051601f8201601f19908116603f01168101908382118183101715610e1157610e11610d5c565b816040528281528a6020848701011115610e2a57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610e6157600080fd5b610e6a83610c83565b9150610e7860208401610c83565b90509250929050565b600181811c90821680610e9557607f821691505b602082108103610eb557634e487b7160e01b600052602260045260246000fd5b50919050565b60008351610ecd818460208801610c07565b835190830190610ee1818360208801610c07565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1d90830184610c2b565b9695505050505050565b600060208284031215610f3957600080fd5b81516104f581610bd156fea264697066735822122088cc6c10546349f88c7fe8c1e7f85adb8574de2cf8b22462707399dc43c8019364736f6c6343000816003360c06040523480156200001157600080fd5b5060405162002b0a38038062002b0a833981016040819052620000349162000195565b828282818181818181806001600160a01b0381166200006d57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000788162000128565b506001600160a01b038083166080528116620000a757604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000ef57600080fd5b505af115801562000104573d6000803e3d6000fd5b5050506001600160a01b0390991660a05250620001df9a5050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200019057600080fd5b919050565b600080600060608486031215620001ab57600080fd5b620001b68462000178565b9250620001c66020850162000178565b9150620001d66040850162000178565b90509250925092565b60805160a0516128c662000244600039600081816106570152818161109001526113c00152600081816103aa0152818161069d01528181610d6601528181610f920152818161123a0152818161158801528181611791015261184801526128c66000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063bd815db0116100a0578063d42438851161006f578063d4243885146105e8578063dcdfd91114610608578063f2fde38b14610628578063fc0c546a14610648578063ff7bd03d1461067b57600080fd5b8063bd815db014610575578063c6414e7b14610588578063ca5eb5e1146105b5578063d045a0dc146105d557600080fd5b8063b731ea0a116100dc578063b731ea0a146104da578063b98bd070146104fa578063bb0b6a531461051a578063bc70b3541461055557600080fd5b80638da5cb5b1461046b5780639f68b96414610489578063a72f5dd81461049d578063b21a33e4146104c557600080fd5b806352ae2879116101855780636fc1b31e116101545780636fc1b31e146103cc578063715018a6146103ec5780637d25a05e1461040157806382413eac1461043c57600080fd5b806352ae2879146103285780635535d4611461033b5780635a0dfe4d146103685780635e280f111461039857600080fd5b80631f5e1334116101c15780631f5e1334146102a057806321eb730b146102c85780633400288b146102e85780634dba701b1461030857600080fd5b8063111ecdad146101f357806313137d6514610230578063150b7a021461024557806317442b701461027e575b600080fd5b3480156101ff57600080fd5b50600454610213906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61024361023e366004611aeb565b61069b565b005b34801561025157600080fd5b50610265610260366004611c97565b61075b565b6040516001600160e01b03199091168152602001610227565b34801561028a57600080fd5b5060408051600181526002602082015201610227565b3480156102ac57600080fd5b506102b5600181565b60405161ffff9091168152602001610227565b6102db6102d6366004611d14565b61076c565b6040516102279190611d81565b3480156102f457600080fd5b50610243610303366004611ddc565b610847565b34801561031457600080fd5b50610243610323366004611e06565b61085d565b34801561033457600080fd5b5030610213565b34801561034757600080fd5b5061035b610356366004611e56565b61086d565b6040516102279190611ed9565b34801561037457600080fd5b50610388610383366004611ddc565b610912565b6040519015158152602001610227565b3480156103a457600080fd5b506102137f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d857600080fd5b506102436103e7366004611eec565b610931565b3480156103f857600080fd5b5061024361098e565b34801561040d57600080fd5b5061042461041c366004611ddc565b600092915050565b6040516001600160401b039091168152602001610227565b34801561044857600080fd5b50610388610457366004611f09565b6001600160a01b0381163014949350505050565b34801561047757600080fd5b506000546001600160a01b0316610213565b34801561049557600080fd5b506001610388565b3480156104a957600080fd5b50604080516311f0c6d360e11b81526001602082015201610227565b3480156104d157600080fd5b506102b5600281565b3480156104e657600080fd5b50600254610213906001600160a01b031681565b34801561050657600080fd5b50610243610515366004611fb3565b6109a2565b34801561052657600080fd5b50610547610535366004611ff4565b60016020526000908152604090205481565b604051908152602001610227565b34801561056157600080fd5b5061035b61057036600461200f565b6109bc565b610243610583366004611fb3565b610b64565b34801561059457600080fd5b506105a86105a336600461207d565b610cd7565b60405161022791906120ce565b3480156105c157600080fd5b506102436105d0366004611eec565b610d3f565b6102436105e3366004611aeb565b610dc5565b3480156105f457600080fd5b50610243610603366004611eec565b610df4565b34801561061457600080fd5b506102436106233660046120e5565b610e4a565b34801561063457600080fd5b50610243610643366004611eec565b610e55565b34801561065457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610213565b34801561068757600080fd5b50610388610696366004612108565b610e93565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146106eb576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061070590610700908a611ff4565b610ec9565b14610743576107176020880188611ff4565b60405163309afaf360e21b815263ffffffff9091166004820152602088013560248201526044016106e2565b61075287878787878787610f05565b50505050505050565b630a85bd0160e11b5b949350505050565b610774611a2f565b602084013561079657604051631e4ec46b60e01b815260040160405180910390fd5b6107b13360408601356107ac6020880188611ff4565b611064565b6000806107bd866110e9565b90925090506107e96107d26020880188611ff4565b83836107e3368a90038a018a612124565b88611207565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f61081e60208a018a611ff4565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b61084f611312565b610859828261133f565b5050565b610868838383611394565b505050565b60036020908152600092835260408084209091529082529020805461089190612156565b80601f01602080910402602001604051908101604052809291908181526020018280546108bd90612156565b801561090a5780601f106108df5761010080835404028352916020019161090a565b820191906000526020600020905b8154815290600101906020018083116108ed57829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610939611312565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610996611312565b6109a060006113ef565b565b6109aa611312565b6108596109b7828461218a565b61143f565b63ffffffff8416600090815260036020908152604080832061ffff871684529091528120805460609291906109f090612156565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1c90612156565b8015610a695780601f10610a3e57610100808354040283529160200191610a69565b820191906000526020600020905b815481529060010190602001808311610a4c57829003601f168201915b505050505090508051600003610ab95783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506107649350505050565b6000839003610ac9579050610764565b60028310610b4757610b1084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061154692505050565b80610b1e846002818861225f565b604051602001610b3093929190612289565b604051602081830303815290604052915050610764565b8383604051639a6d49cd60e01b81526004016106e29291906122da565b60005b81811015610c565736838383818110610b8257610b826122ee565b9050602002810190610b949190612304565b9050610bb0610ba66020830183611ff4565b6020830135610912565b610bba5750610c4e565b3063d045a0dc60c08301358360a0810135610bd9610100830183612325565b610bea610100890160e08a01611eec565b610bf86101208a018a612325565b6040518963ffffffff1660e01b8152600401610c1a9796959493929190612380565b6000604051808303818588803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b5050505050505b600101610b67565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610c95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cbd9190810190612406565b604051638351eea760e01b81526004016106e29190611ed9565b60408051808201909152600080825260208201526020830135610d0d57604051631e4ec46b60e01b815260040160405180910390fd5b600080610d19856110e9565b9092509050610d36610d2e6020870187611ff4565b838387611572565b95945050505050565b610d47611312565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610daa57600080fd5b505af1158015610dbe573d6000803e3d6000fd5b5050505050565b333014610de55760405163029a949d60e31b815260040160405180910390fd5b61075287878787878787610743565b610dfc611312565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610983565b610859338383611064565b610e5d611312565b6001600160a01b038116610e8757604051631e4fbdf760e01b8152600060048201526024016106e2565b610e90816113ef565b50565b6000602082018035906001908390610eab9086611ff4565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff81166000908152600160205260408120548061092b5760405163f6ff4fb760e01b815263ffffffff841660048201526024016106e2565b6000610f17610f14878761164a565b90565b90506000610f258787611669565b9050610f3e8282610f3960208d018d611ff4565b611394565b6040861115611002576000610f78610f5c60608c0160408d01612473565b610f6960208d018d611ff4565b610f738b8b611686565b6116d1565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290610fce9086908d906000908790600401612490565b600060405180830381600087803b158015610fe857600080fd5b505af1158015610ffc573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef561103b60208d018d611ff4565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6040516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064015b600060405180830381600087803b1580156110d557600080fd5b505af1158015610752573d6000803e3d6000fd5b6060806000611142602085013560408601356111086080880188612325565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061170092505050565b9093509050600081611155576001611158565b60025b905061117861116a6020870187611ff4565b826105706060890189612325565b6004549093506001600160a01b031615611200576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb916111bd9188918891016124c1565b602060405180830381865afa1580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fe91906124e6565b505b5050915091565b61120f611a2f565b600061121e8460000151611765565b60208501519091501561123857611238846020015161178d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016112888c610ec9565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016112c4929190612503565b60806040518083038185885af11580156112e2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061130791906125ac565b979650505050505050565b6000546001600160a01b031633146109a05760405163118cdaa760e01b81523360048201526024016106e2565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e906064016110bb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b815181101561151657611471828281518110611460576114606122ee565b602002602001015160400151611546565b818181518110611483576114836122ee565b602002602001015160400151600360008484815181106114a5576114a56122ee565b60200260200101516000015163ffffffff1663ffffffff16815260200190815260200160002060008484815181106114df576114df6122ee565b60200260200101516020015161ffff1661ffff168152602001908152602001600020908161150d9190612646565b50600101611442565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516109839190612705565b600281015161ffff81166003146108595781604051639a6d49cd60e01b81526004016106e29190611ed9565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016115d589610ec9565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161160a929190612503565b6040805180830381865afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d369190612790565b6000611659602082848661225f565b611662916127ac565b9392505050565b600061167960406020848661225f565b81019061166291906127ca565b6060611695826040818661225f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b60608383836040516020016116e8939291906127e3565b60405160208183030381529060405290509392505050565b805160609015158061173457604080516020810187905290810185905260600160405160208183030381529060405261175b565b8484338560405160200161174b949392919061282d565b6040516020818303038152906040525b9150935093915050565b6000813414611789576040516304fb820960e51b81523460048201526024016106e2565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118119190612861565b90506001600160a01b03811661183a576040516329b99a9560e11b815260040160405180910390fd5b6040805133602482018190527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03818116604485015260648085018890528551808603909101815260849094019094526020830180516001600160e01b03166323b872dd60e01b1790526108599385169286906118bf9085906118c5565b50505050565b60006118da6001600160a01b03841683611928565b905080516000141580156118ff5750808060200190518101906118fd91906124e6565b155b1561086857604051635274afe760e01b81526001600160a01b03841660048201526024016106e2565b60606116628383600084600080856001600160a01b0316848660405161194e919061287e565b60006040518083038185875af1925050503d806000811461198b576040519150601f19603f3d011682016040523d82523d6000602084013e611990565b606091505b50915091506119a08683836119aa565b9695505050505050565b6060826119bf576119ba82611a06565b611662565b81511580156119d657506001600160a01b0384163b155b156119ff57604051639996b31560e01b81526001600160a01b03851660048201526024016106e2565b5080611662565b805115611a165780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001611a71604051806040016040528060008152602001600081525090565b905290565b600060608284031215611a8857600080fd5b50919050565b60008083601f840112611aa057600080fd5b5081356001600160401b03811115611ab757600080fd5b602083019150836020828501011115611acf57600080fd5b9250929050565b6001600160a01b0381168114610e9057600080fd5b600080600080600080600060e0888a031215611b0657600080fd5b611b108989611a76565b96506060880135955060808801356001600160401b0380821115611b3357600080fd5b611b3f8b838c01611a8e565b909750955060a08a01359150611b5482611ad6565b90935060c08901359080821115611b6a57600080fd5b50611b778a828b01611a8e565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611bc257611bc2611b8a565b60405290565b604051606081016001600160401b0381118282101715611bc257611bc2611b8a565b604051601f8201601f191681016001600160401b0381118282101715611c1257611c12611b8a565b604052919050565b60006001600160401b03821115611c3357611c33611b8a565b50601f01601f191660200190565b600082601f830112611c5257600080fd5b8135611c65611c6082611c1a565b611bea565b818152846020838601011115611c7a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611cad57600080fd5b8435611cb881611ad6565b93506020850135611cc881611ad6565b92506040850135915060608501356001600160401b03811115611cea57600080fd5b611cf687828801611c41565b91505092959194509250565b600060c08284031215611a8857600080fd5b60008060008385036080811215611d2a57600080fd5b84356001600160401b03811115611d4057600080fd5b611d4c87828801611d02565b9450506040601f1982011215611d6157600080fd5b506020840191506060840135611d7681611ad6565b809150509250925092565b6000608082019050825182526001600160401b0360208401511660208301526040830151611dbc604084018280518252602090810151910152565b5092915050565b803563ffffffff81168114611dd757600080fd5b919050565b60008060408385031215611def57600080fd5b611df883611dc3565b946020939093013593505050565b600080600060608486031215611e1b57600080fd5b8335611e2681611ad6565b925060208401359150611e3b60408501611dc3565b90509250925092565b803561ffff81168114611dd757600080fd5b60008060408385031215611e6957600080fd5b611e7283611dc3565b9150611e8060208401611e44565b90509250929050565b60005b83811015611ea4578181015183820152602001611e8c565b50506000910152565b60008151808452611ec5816020860160208601611e89565b601f01601f19169290920160200192915050565b6020815260006116626020830184611ead565b600060208284031215611efe57600080fd5b813561166281611ad6565b60008060008060a08587031215611f1f57600080fd5b611f298686611a76565b935060608501356001600160401b03811115611f4457600080fd5b611f5087828801611a8e565b9094509250506080850135611f6481611ad6565b939692955090935050565b60008083601f840112611f8157600080fd5b5081356001600160401b03811115611f9857600080fd5b6020830191508360208260051b8501011115611acf57600080fd5b60008060208385031215611fc657600080fd5b82356001600160401b03811115611fdc57600080fd5b611fe885828601611f6f565b90969095509350505050565b60006020828403121561200657600080fd5b61166282611dc3565b6000806000806060858703121561202557600080fd5b61202e85611dc3565b935061203c60208601611e44565b925060408501356001600160401b0381111561205757600080fd5b61206387828801611a8e565b95989497509550505050565b8015158114610e9057600080fd5b6000806040838503121561209057600080fd5b82356001600160401b038111156120a657600080fd5b6120b285828601611d02565b92505060208301356120c38161206f565b809150509250929050565b81518152602080830151908201526040810161092b565b600080604083850312156120f857600080fd5b82359150611e8060208401611dc3565b60006060828403121561211a57600080fd5b6116628383611a76565b60006040828403121561213657600080fd5b61213e611ba0565b82358152602083013560208201528091505092915050565b600181811c9082168061216a57607f821691505b602082108103611a8857634e487b7160e01b600052602260045260246000fd5b60006001600160401b03808411156121a4576121a4611b8a565b8360051b60206121b5818301611bea565b8681529185019181810190368411156121cd57600080fd5b865b84811015612253578035868111156121e75760008081fd5b880160603682900312156121fb5760008081fd5b612203611bc8565b61220c82611dc3565b8152612219868301611e44565b86820152604080830135898111156122315760008081fd5b61223d36828601611c41565b91830191909152508452509183019183016121cf565b50979650505050505050565b6000808585111561226f57600080fd5b8386111561227c57600080fd5b5050820193919092039150565b6000845161229b818460208901611e89565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006107646020830184866122b1565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1983360301811261231b57600080fd5b9190910192915050565b6000808335601e1984360301811261233c57600080fd5b8301803591506001600160401b0382111561235657600080fd5b602001915036819003821315611acf57600080fd5b6001600160401b0381168114610e9057600080fd5b63ffffffff61238e89611dc3565b16815260208801356020820152600060408901356123ab8161236b565b6001600160401b03811660408401525087606083015260e060808301526123d660e0830187896122b1565b6001600160a01b03861660a084015282810360c08401526123f88185876122b1565b9a9950505050505050505050565b60006020828403121561241857600080fd5b81516001600160401b0381111561242e57600080fd5b8201601f8101841361243f57600080fd5b805161244d611c6082611c1a565b81815285602083850101111561246257600080fd5b610d36826020830160208601611e89565b60006020828403121561248557600080fd5b81356116628161236b565b60018060a01b038516815283602082015261ffff831660408201526080606082015260006119a06080830184611ead565b6040815260006124d46040830185611ead565b8281036020840152610d368185611ead565b6000602082840312156124f857600080fd5b81516116628161206f565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261253960e0840182611ead565b90506060850151603f198483030160a08501526125568282611ead565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561258e57600080fd5b612596611ba0565b9050815181526020820151602082015292915050565b6000608082840312156125be57600080fd5b6125c6611bc8565b8251815260208301516125d88161236b565b60208201526125ea846040850161257c565b60408201529392505050565b601f821115610868576000816000526020600020601f850160051c8101602086101561261f5750805b601f850160051c820191505b8181101561263e5782815560010161262b565b505050505050565b81516001600160401b0381111561265f5761265f611b8a565b6126738161266d8454612156565b846125f6565b602080601f8311600181146126a857600084156126905750858301515b600019600386901b1c1916600185901b17855561263e565b600085815260208120601f198616915b828110156126d7578886015182559484019460019091019084016126b8565b50858210156126f55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561278257888303603f190185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261276e81860183611ead565b96890196945050509086019060010161272e565b509098975050505050505050565b6000604082840312156127a257600080fd5b611662838361257c565b8035602083101561092b57600019602084900360031b1b1692915050565b6000602082840312156127dc57600080fd5b5035919050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061281e81600c850160208701611e89565b91909101600c01949350505050565b84815283602082015282604082015260008251612851816060850160208701611e89565b9190910160600195945050505050565b60006020828403121561287357600080fd5b815161166281611ad6565b6000825161231b818460208701611e8956fea26469706673582212207d3ba4a090246cc8a8a9c26a856c9f74e618e1fa27f15b2af2299f3e283fae1764736f6c6343000816003341304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f500000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12da264697066735822122064d52539aa10463fe73f3faadba1b04768cfbe0f094a5528c5c54a0295b3536864736f6c63430008160033608060405234801561001057600080fd5b506107d2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e5c5e9a314610030575b600080fd5b61004361003e366004610529565b61005a565b6040516100519291906105eb565b60405180910390f35b6060806100678484610072565b915091509250929050565b606080600283101561009f5760405163196499c760e21b8152600060048201526024015b60405180910390fd5b60006100ae6002828688610619565b6100b791610643565b60f01c90506002600219820161021f578060005b868310156101c45760006100e460018501858a8c610619565b6100ed91610673565b60f81c9050600081900361011757604051636780cfaf60e01b815260006004820152602401610096565b8160ff1660000361012a57809150610167565b8160ff168160ff16146101675736600061014686868c8e610619565b915091506101578989868585610236565b9099509750859450919250829150505b600184019360009061017e90600301868b8d610619565b61018791610643565b60f01c905060008190036101b15760405163196499c760e21b815260048101869052602401610096565b8060020161ffff168501945050506100cb565b8287146101e75760405163196499c760e21b815260048101849052602401610096565b6002871115610218573660006101ff85858b8d610619565b915091506102108888858585610236565b909850965050505b505061022d565b61022a828787610356565b93505b50509250929050565b60608060001960ff8616016102b35786511561027557868484604051602001610261939291906106a1565b6040516020818303038152906040526102ac565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b965061034b565b60011960ff86160161032d578551156102ef578584846040516020016102db939291906106a1565b604051602081830303815290604052610326565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b955061034b565b604051636780cfaf60e01b815260ff86166004820152602401610096565b509495939450505050565b606060001961ffff8516016103f65760228214610386576040516301b8ca5560e31b815260040160405180910390fd5b60006103a7610399602260028688610619565b6103a2916106c9565b6104e8565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b1660248201529091506034016040516020818303038152906040529150506104e1565b60011961ffff8516016104c2576042821115806104135750606282115b15610431576040516360493e2b60e11b815260040160405180910390fd5b6000610444610399602260028688610619565b90506000610459610399604260228789610619565b90506000604119850161046f866042818a610619565b610478916106c9565b60405160086020938403029190911c92506104a9916001916011918391889183916031916002918b918b91016106e8565b60405160208183030381529060405293505050506104e1565b604051630417051360e41b815261ffff85166004820152602401610096565b9392505050565b60006fffffffffffffffffffffffffffffffff821115610525576040516306dfcc6560e41b81526080600482015260248101839052604401610096565b5090565b6000806020838503121561053c57600080fd5b823567ffffffffffffffff8082111561055457600080fd5b818501915085601f83011261056857600080fd5b81358181111561057757600080fd5b86602082850101111561058957600080fd5b60209290920196919550909350505050565b60005b838110156105b657818101518382015260200161059e565b50506000910152565b600081518084526105d781602086016020860161059b565b601f01601f19169290920160200192915050565b6040815260006105fe60408301856105bf565b828103602084015261061081856105bf565b95945050505050565b6000808585111561062957600080fd5b8386111561063657600080fd5b5050820193919092039150565b6001600160f01b0319813581811691600285101561066b5780818660020360031b1b83161692505b505092915050565b6001600160f81b0319813581811691600185101561066b5760019490940360031b84901b1690921692915050565b600084516106b381846020890161059b565b8201838582376000930192835250909392505050565b803560208310156106e257600019602084900360031b1b165b92915050565b60f88a811b6001600160f81b0319908116835260f08b901b6001600160f01b031916600184015289821b81166003840152608089901b6001600160801b03191660048401529087901b1660148201526000610752601583018760f01b6001600160f01b0319169052565b61076b601783018660f81b6001600160f81b0319169052565b610784601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea2646970667358221220ff331a469c287e3288e36db706f577b76ad4abf0ff12a11a4a37a3a30fa3315164736f6c63430008160033","sourceMap":"1345:19219:140:-:0;;;;;1572:26:83;;;1594:4;-1:-1:-1;;1572:26:83;;;;;;;;3126:44:86;;;;;;;;;;;587:20:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;559:48:70;;;-1:-1:-1;;;;;559:48:70;;;;-1:-1:-1;;;;;;559:48:70;;;;;;;;;2909:43:71;;;-1:-1:-1;;;;;;2909:43:71;2943:9;2909:43;;;489:17:137;;;;;;;;;;;;-1:-1:-1;;;489:17:137;;;;;;:8;:17::i;:::-;464:42;;;-1:-1:-1;;;;;;464:42:137;-1:-1:-1;;;;;464:42:137;;;;;;;;;;535:15;;;;;;;;;;;;-1:-1:-1;;;535:15:137;;;;;;:8;:15::i;:::-;512:38;;;-1:-1:-1;;;;;;512:38:137;-1:-1:-1;;;;;512:38:137;;;;;;;;;;583:19;;;;;;;;;;;;-1:-1:-1;;;583:19:137;;;;;;:8;:19::i;:::-;556:46;;;-1:-1:-1;;;;;;556:46:137;-1:-1:-1;;;;;556:46:137;;;;;;;;;;1345:19219:140;;;;;;;;;;;;20439:125:87;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:87;20439:125;-1:-1:-1;;20439:125:87:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:87;;;;;;;20293:33;;20303:22;20293:33;;;;-1:-1:-1;;;;;;20344:19:87;;;;;709:25:145;;;20293:33:87;-1:-1:-1;20344:7:87;;;;682:18:145;;20344:19:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;-1:-1:-1;;;20373:20:87;;20337:26;;-1:-1:-1;20373:8:87;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;1345:19219:140:-;;;;;;;;:::o;14:250:145:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:145;238:16;;231:27;14:250::o;269:289::-;400:3;438:6;432:13;454:66;513:6;508:3;501:4;493:6;489:17;454:66;:::i;:::-;536:16;;;;;269:289;-1:-1:-1;;269:289:145:o;745:290::-;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;910:16;;-1:-1:-1;;;;;955:31:145;;945:42;;935:70;;1001:1;998;991:12;935:70;1024:5;745:290;-1:-1:-1;;;745:290:145:o;1040:493::-;1246:1;1242;1237:3;1233:11;1229:19;1221:6;1217:32;1206:9;1199:51;1286:2;1281;1270:9;1266:18;1259:30;1180:4;1318:6;1312:13;1361:6;1356:2;1345:9;1341:18;1334:34;1377:79;1449:6;1444:2;1433:9;1429:18;1424:2;1416:6;1412:15;1377:79;:::i;:::-;1517:2;1496:15;-1:-1:-1;;1492:29:145;1477:45;;;;1524:2;1473:54;;1040:493;-1:-1:-1;;;1040:493:145:o;:::-;1345:19219:140;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610620003da5760003560e01c8063916a17c61162000203578063d0971b621162000117578063e91461c411620000ad578063f7e131761162000078578063f7e131761462000c35578063f93e1d611462000c5a578063fa7626d41462000ca0578063faed6c581462000cbc57600080fd5b8063e91461c41462000bbc578063e99b6b311462000be1578063ec53eaa01462000bf9578063efe2d2931462000c1057600080fd5b8063dceebec511620000ee578063dceebec51462000b19578063defd9da61462000b3e578063e20c9f711462000b7f578063e71d14a81462000b9757600080fd5b8063d0971b621462000aaa578063d203bce31462000acf578063d79741521462000af457600080fd5b8063b1dcf5c81162000199578063ba414fa61162000164578063ba414fa61462000a2d578063baead19c1462000a45578063c34f24f51462000a60578063c89a1e411462000a8557600080fd5b8063b1dcf5c81462000983578063b5508aa914620009ab578063b752b72a14620009c3578063b954fdf614620009e857600080fd5b8063a299180b11620001da578063a299180b14620008e4578063a29c89841462000909578063ac7b331a1462000920578063ae6ce400146200095e57600080fd5b8063916a17c6146200088257806398f692a8146200089a578063997cff1b14620008bf57600080fd5b80633f7286f411620002fb57806366d9a9a011620002915780637982cf42116200025c5780637982cf4214620007ce5780637c8bd543146200080257806381b84021146200083657806385226c81146200085b57600080fd5b806366d9a9a014620007265780636e0b3c90146200074d5780636e1775e31462000772578063703ca25414620007a957600080fd5b806354a3ce5a11620002d257806354a3ce5a146200066f5780635e7baa4214620006945780635ea0fefe14620006b957806360e5524d14620006ef57600080fd5b80633f7286f414620005e2578063480d285714620005fa578063518e8ab0146200061f57600080fd5b80632113ce6211620003715780632c05152c11620003485780632c05152c1462000557578063364b4dd9146200058e5780633bbd6a9414620005b35780633e5e3c2314620005ca57600080fd5b80632113ce6214620004d05780632a35d250146200050b5780632ade3880146200053057600080fd5b80630a9254e411620003b25780630a9254e4146200043e57806312cc947f14620004565780631cc46525146200047b5780631ed7831c14620004a057600080fd5b806205583d14620003e7578063090852b614620004015780630921d7b6146200042657600080fd5b36620003e257005b600080fd5b348015620003f457600080fd5b50620003ff62000ce1565b005b3480156200040e57600080fd5b50620003ff620004203660046200a572565b62000e22565b3480156200043357600080fd5b50620003ff62000e3e565b3480156200044b57600080fd5b50620003ff62000eed565b3480156200046357600080fd5b50620003ff620004753660046200a5f4565b62000f0b565b3480156200048857600080fd5b50620003ff6200049a3660046200a649565b62001805565b348015620004ad57600080fd5b50620004b862002c71565b604051620004c791906200a6c6565b60405180910390f35b348015620004dd57600080fd5b50602154620004f2906001600160801b031681565b6040516001600160801b039091168152602001620004c7565b3480156200051857600080fd5b50620004b86200052a3660046200a7d5565b62002cd5565b3480156200053d57600080fd5b506200054862002ded565b604051620004c791906200a8f2565b3480156200056457600080fd5b506200057c620005763660046200a5f4565b62002f3b565b604051620004c794939291906200a975565b3480156200059b57600080fd5b50620003ff620005ad3660046200a9ab565b62002f83565b620003ff620005c43660046200a9ea565b620031dc565b348015620005d757600080fd5b50620004b86200329c565b348015620005ef57600080fd5b50620004b8620032fe565b3480156200060757600080fd5b50620003ff620006193660046200aab5565b62003360565b3480156200062c57600080fd5b50620006446200063e3660046200a5f4565b6200353c565b6040805161ffff90941684526001600160801b039283166020850152911690820152606001620004c7565b3480156200067c57600080fd5b50620003ff6200068e3660046200aad5565b6200355a565b348015620006a157600080fd5b50620003ff620006b33660046200aaef565b62003d68565b348015620006c657600080fd5b50620006de620006d83660046200ab3e565b6200421c565b6040519015158152602001620004c7565b348015620006fc57600080fd5b50620007146200070e3660046200a5f4565b62004251565b604051620004c794939291906200ab6d565b3480156200073357600080fd5b506200073e62004282565b604051620004c791906200ab96565b3480156200075a57600080fd5b50620003ff6200076c3660046200ac65565b6200436c565b3480156200077f57600080fd5b5062000797620007913660046200acbf565b62004535565b604051620004c794939291906200ad37565b348015620007b657600080fd5b50620003ff620007c83660046200ad8d565b62004559565b348015620007db57600080fd5b50620007f3620007ed3660046200ab3e565b62004720565b604051620004c791906200ae26565b3480156200080f57600080fd5b5062000827620008213660046200ae3b565b6200480e565b604051620004c791906200aee4565b3480156200084357600080fd5b50620003ff620008553660046200aab5565b62004942565b3480156200086857600080fd5b506200087362004cf4565b604051620004c791906200af2a565b3480156200088f57600080fd5b506200073e62004dce565b348015620008a757600080fd5b50620003ff620008b93660046200aad5565b62004eb8565b348015620008cc57600080fd5b50620003ff620008de3660046200acbf565b620051f9565b348015620008f157600080fd5b50620003ff620009033660046200af3f565b62005251565b620003ff6200091a3660046200afbb565b62005583565b3480156200092d57600080fd5b50620009456200093f3660046200aad5565b62005604565b6040516001600160a01b039091168152602001620004c7565b3480156200096b57600080fd5b50620003ff6200097d3660046200b03d565b6200562f565b3480156200099057600080fd5b506200099c620186a081565b604051908152602001620004c7565b348015620009b857600080fd5b5062000873620056d0565b348015620009d057600080fd5b50620003ff620009e23660046200b05d565b620057aa565b348015620009f557600080fd5b5062000a0d62000a073660046200a5f4565b620057b9565b604080516001600160801b039093168352602083019190915201620004c7565b34801562000a3a57600080fd5b50620006de620057d4565b34801562000a5257600080fd5b506200099c64e8d4a5100081565b34801562000a6d57600080fd5b50620003ff62000a7f3660046200b08d565b62005901565b34801562000a9257600080fd5b50620003ff62000aa43660046200aab5565b62005b90565b34801562000ab757600080fd5b50620003ff62000ac93660046200aad5565b62006185565b34801562000adc57600080fd5b50620003ff62000aee3660046200b0cc565b620064a5565b34801562000b0157600080fd5b50620003ff62000b133660046200b11a565b6200671d565b34801562000b2657600080fd5b50620003ff62000b383660046200b183565b62006896565b34801562000b4b57600080fd5b50620003ff62000b5d3660046200b1d8565b602180546001600160801b0319166001600160801b0392909216919091179055565b34801562000b8c57600080fd5b50620004b862006ee6565b34801562000ba457600080fd5b50620003ff62000bb63660046200b1f8565b62006f48565b34801562000bc957600080fd5b50620003ff62000bdb3660046200b21b565b62007273565b34801562000bee57600080fd5b50620003ff62007348565b620003ff62000c0a3660046200b262565b62007683565b34801562000c1d57600080fd5b50620003ff62000c2f3660046200b2c7565b620077af565b34801562000c4257600080fd5b50620003ff62000c543660046200b33a565b62007854565b34801562000c6757600080fd5b5062000c7f62000c793660046200a5f4565b62007b42565b604080516001600160801b03938416815292909116602083015201620004c7565b34801562000cad57600080fd5b50600754620006de9060ff1681565b34801562000cc957600080fd5b50620003ff62000cdb3660046200b392565b62007b51565b602654604080516327da2e5960e21b8152905162000d5a926001600160a01b031691639f68b9649160048083019260209291908290030181865afa15801562000d2e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d5491906200b404565b62007be3565b602754604080516327da2e5960e21b8152905162000da7926001600160a01b031691639f68b9649160048083019260209291908290030181865afa15801562000d2e573d6000803e3d6000fd5b602854604080516327da2e5960e21b8152905162000e20926001600160a01b031691639f68b9649160048083019260209291908290030181865afa15801562000df4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e1a91906200b404565b62007bea565b565b62000e3a826001600160a01b03831660008062003d68565b5050565b602654604080516314e5ebbb60e31b8152815160009384936001600160a01b039091169263a72f5dd892600480830193928290030181865afa15801562000e89573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000eaf91906200b44a565b90925090506311f0c6d360e11b62000ed26001600160e01b031984168262007c51565b62000ee86001600160401b038316600162007d3a565b505050565b62000ef762007e0e565b62000f0162007e26565b62000e20620080d3565b600062000f19838362008279565b63ffffffff811660009081526020805260408120549192506001600160a01b03909116908163402f846862000f4f8787620082a0565b62000f5b8888620082b5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015263ffffffff1660248201526044016040805180830381865afa15801562000faa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fd091906200b47b565b50905060008190506000826001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001019573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200103f91906200b4bc565b50509050806001600160401b031660030362001797576000826001600160a01b0316639c33abf7620010728a8a620082b5565b6200107e8b8b620082a0565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526001600160a01b0316602482015260026044820152606401600060405180830381865afa158015620010d6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200110091908101906200b551565b90506000818060200190518101906200111a91906200b605565b608001516000815181106200113357620011336200b6ec565b6020026020010151905060006200114b8a8a620082c7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509394506200119092508d91508c9050620082d9565b604051620011a09291906200b702565b6040518091039020905060606000630223536e60e01b84846064604051602401620011ce939291906200b712565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03861663f010cb238d8b8562001224426103e86200b756565b6040518563ffffffff1660e01b81526004016200124594939291906200b76c565b602060405180830381865afa15801562001263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200128991906200b7af565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b825260016004830152602482018190529150600090819081906000805160206202c3a88339815191529063e341eaa490604401606060405180830381865afa15801562001334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200135a91906200b7c9565b6040805160208101939093528281019190915260f89290921b6001600160f81b031916606082015281516041818303018152606190910190915296506000945060019350620013a892505050565b6040519080825280602002602001820160405280156200140557816020015b6040805160a0810182526000808252602082018190526060928201839052828201526080810191909152815260200190600190039081620013c75790505b5090506040518060a001604052808d63ffffffff1681526020018a6001600160a01b03168152602001838152602001426103e86200144491906200b756565b815260200184815250816000815181106200146357620014636200b6ec565b602090810291909101015260405163b143044b60e01b81526001600160a01b0387169063b143044b906200149c9084906004016200b803565b600060405180830381600087803b158015620014b757600080fd5b505af1158015620014cc573d6000803e3d6000fd5b505050506000630894edf160e01b8686604051602401620014ef9291906200b8b5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03881663f010cb238f8d8562001545426103e86200b756565b6040518563ffffffff1660e01b81526004016200156694939291906200b76c565b602060405180830381865afa15801562001584573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015aa91906200b7af565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b825260016004830152602482018190529150600090819081906000805160206202c3a88339815191529063e341eaa490604401606060405180830381865afa15801562001655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200167b91906200b7c9565b60408051602081018490529081018290526001600160f81b031960f885901b1660608201529295509093509150606101604051602081830303815290604052985050505050506040518060a001604052808e63ffffffff1681526020018b6001600160a01b03168152602001828152602001426103e8620016fd91906200b756565b815260200185815250826000815181106200171c576200171c6200b6ec565b602090810291909101015260405163b143044b60e01b81526001600160a01b0388169063b143044b90620017559085906004016200b803565b600060405180830381600087803b1580156200177057600080fd5b505af115801562001785573d6000803e3d6000fd5b505050505050505050505050620017fc565b6040516312cc947f60e01b81526001600160a01b038416906312cc947f90620017c7908a908a906004016200b8d9565b600060405180830381600087803b158015620017e257600080fd5b505af1158015620017f7573d6000803e3d6000fd5b505050505b50505050505050565b60008260ff166001600160401b038111156200182557620018256200a6db565b6040519080825280602002602001820160405280156200184f578160200160208202803683370190505b50905060008360ff166001600160401b038111156200187257620018726200a6db565b6040519080825280602002602001820160405280156200189c578160200160208202803683370190505b50905060005b8460ff168160ff161015620019ad576000620018c08260016200b8ef565b60ff16905080838360ff1681518110620018de57620018de6200b6ec565b602002602001019063ffffffff16908163ffffffff1681525050803060405162001908906200a360565b63ffffffff90921682526001600160a01b03166020820152604001604051809103906000f08015801562001940573d6000803e3d6000fd5b50848360ff16815181106200195957620019596200b6ec565b60200260200101906001600160a01b031690816001600160a01b031681525050620019a3848360ff16815181106200199557620019956200b6ec565b60200260200101516200562f565b50600101620018a2565b5060008460ff166001600160401b03811115620019ce57620019ce6200a6db565b604051908082528060200260200182016040528015620019f8578160200160208202803683370190505b50905060008560ff166001600160401b0381111562001a1b5762001a1b6200a6db565b60405190808252806020026020018201604052801562001a45578160200160208202803683370190505b506040805160018082528183019092529192506000919060208083019080368337019050506040516001625e79b760e01b03198152600160048201529091506000805160206202c3a88339815191529063ffa1864990602401602060405180830381865afa15801562001abc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ae291906200b90b565b8160008151811062001af85762001af86200b6ec565b60200260200101906001600160a01b031690816001600160a01b03168152505060003060405162001b29906200a36e565b6001600160a01b039091168152602001604051809103906000f08015801562001b56573d6000803e3d6000fd5b50905060005b8860ff168160ff16101562002aa957600088600181111562001b825762001b826200b92b565b03620028dd576000878260ff168151811062001ba25762001ba26200b6ec565b60200260200101519050600080308364e8d4a51000620186a060405162001bc9906200a37c565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103906000f08015801562001c09573d6000803e3d6000fd5b5091508260405162001c1b906200a38a565b6001600160a01b039091168152602001604051809103906000f08015801562001c48573d6000803e3d6000fd5b509050898460ff168151811062001c635762001c636200b6ec565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0384811660048301529091169063e8964e8190602401600060405180830381600087803b15801562001cb357600080fd5b505af115801562001cc8573d6000803e3d6000fd5b50505050898460ff168151811062001ce45762001ce46200b6ec565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b15801562001d3457600080fd5b505af115801562001d49573d6000803e3d6000fd5b5050505081888560ff168151811062001d665762001d666200b6ec565b60200260200101906001600160a01b031690816001600160a01b03168152505080878560ff168151811062001d9f5762001d9f6200b6ec565b6001600160a01b039290921660209283029190910182015260408051600180825281830190925260009283928392918281019080368337019050509050308160008151811062001df35762001df36200b6ec565b6001600160a01b03929092166020928302919091018201526040805160028082526060820183526000939192909183019080368337019050509050858160008151811062001e455762001e456200b6ec565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018151811062001e7c5762001e7c6200b6ec565b60200260200101906001600160a01b031690816001600160a01b031681525050866000828b308660405162001eb1906200a398565b62001ec2969594939291906200b941565b604051809103906000f08015801562001edf573d6000803e3d6000fd5b509350600060405162001ef2906200a3a6565b604051809103906000f08015801562001f0f573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b15801562001f5857600080fd5b505af115801562001f6d573d6000803e3d6000fd5b5050505088600162001f8091906200b8ef565b828b8d60018760405162001f94906200a3b4565b62001fa5969594939291906200b99f565b604051809103906000f08015801562001fc2573d6000803e3d6000fd5b5093506000670de0b6b3a764000060405162001fde906200a3c2565b908152602001604051809103906000f08015801562002001573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b1580156200204a57600080fd5b505af11580156200205f573d6000803e3d6000fd5b505050505050505060008e60ff16905060008163ffffffff166001600160401b038111156200209257620020926200a6db565b604051908082528060200260200182016040528015620020f457816020015b6040805160c08101825260008082526020808301829052928201819052606082018190526080820181905260a08201528252600019909201910181620020b15790505b50905060008263ffffffff166001600160401b038111156200211a576200211a6200a6db565b6040519080825280602002602001820160405280156200216e57816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181620021395790505b50905060005b8363ffffffff168160ff1610156200280a578060ff168a60ff160315620027f5576000620021a48260016200b8ef565b60408051600180825281830190925260ff92909216925060009190602080830190803683370190505060408051600080825260208201909252919250508782600081518110620021f857620021f86200b6ec565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b620022326200a3d0565b8152602001906001900390816200222857905050905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff1681526020018281525082600081518110620022c057620022c06200b6ec565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038e16906329460b0b90620022f99085906004016200ba12565b600060405180830381600087803b1580156200231457600080fd5b505af115801562002329573d6000803e3d6000fd5b5060009450600193506200233c92505050565b6040519080825280602002602001820160405280156200237957816020015b620023656200a439565b8152602001906001900390816200235b5790505b5090506000604051806040016040528061271063ffffffff1681526020018c6001600160a01b0316815250905060405180604001604052808663ffffffff1681526020018281525082600081518110620023d757620023d76200b6ec565b602090810291909101015260405163c14c434960e01b81526001600160a01b038e169063c14c434990620024109085906004016200baf0565b600060405180830381600087803b1580156200242b57600080fd5b505af115801562002440573d6000803e3d6000fd5b5060009450600193506200245392505050565b6040519080825280602002602001820160405280156200249057816020015b6200247c6200a3d0565b815260200190600190039081620024725790505b50905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff16815260200182815250826000815181106200250b576200250b6200b6ec565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038d16906329460b0b90620025449085906004016200ba12565b600060405180830381600087803b1580156200255f57600080fd5b505af115801562002574573d6000803e3d6000fd5b50506040805160c08101825263ffffffff89168152611388602082018190529181019190915261271060608201526402540be40060808201526021546001600160801b031660a08201528a519094508a935060ff8916925082109050620025df57620025df6200b6ec565b602002602001018190525060405180608001604052808463ffffffff1681526020016113886001600160401b0316815260200161271061ffff1681526020016402540be4006001600160801b0316815250858560ff16815181106200264857620026486200b6ec565b602002602001018190525060008e6001600160a01b031663c18403276040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002694573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026ba91906200bb61565b60408051600180825281830190925291925060009190816020015b6200270960408051808201825260008082528251606081018452818152602081810183905293810191909152909182015290565b815260200190600190039081620026d557905050905060405180604001604052808663ffffffff16815260200160405180606001604052808560016200275091906200bb81565b6001600160801b031681526001602082018190526040909101529052815182906000906200278257620027826200b6ec565b60200260200101819052508f6001600160a01b0316633161b7f6826040518263ffffffff1660e01b8152600401620027bb91906200bbaf565b600060405180830381600087803b158015620027d657600080fd5b505af1158015620027eb573d6000803e3d6000fd5b5050505050505050505b8062002801816200bc23565b91505062002174565b50604051633d85ac3360e01b81526001600160a01b03861690633d85ac3390620028399085906004016200bc45565b600060405180830381600087803b1580156200285457600080fd5b505af115801562002869573d6000803e3d6000fd5b50506040516352d3b87160e01b81526001600160a01b03871692506352d3b87191506200289b9084906004016200bcd7565b600060405180830381600087803b158015620028b657600080fd5b505af1158015620028cb573d6000803e3d6000fd5b50505050505050505050505062002aa0565b6001886001811115620028f457620028f46200b92b565b0362002a5c57600030888360ff16815181106200291557620029156200b6ec565b60200260200101516040516200292b906200a47e565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156200295f573d6000803e3d6000fd5b509050878260ff16815181106200297a576200297a6200b6ec565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b158015620029ca57600080fd5b505af1158015620029df573d6000803e3d6000fd5b5050505080868360ff1681518110620029fc57620029fc6200b6ec565b60200260200101906001600160a01b031690816001600160a01b03168152505080858360ff168151811062002a355762002a356200b6ec565b60200260200101906001600160a01b031690816001600160a01b0316815250505062002aa0565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206c696272617279207479706560601b60448201526064015b60405180910390fd5b60010162001b5c565b5060005b8860ff168160ff16101562002c66576000878260ff168151811062002ad65762002ad66200b6ec565b6020026020010151905060005b8a60ff168160ff16101562002c5b578060ff168360ff16031562002c52576001600160a01b03821663aafea31262002b1d8360016200b8ef565b898660ff168151811062002b355762002b356200b6ec565b60200260200101516040518363ffffffff1660e01b815260040162002b7292919060ff9290921682526001600160a01b0316602082015260400190565b600060405180830381600087803b15801562002b8d57600080fd5b505af115801562002ba2573d6000803e3d6000fd5b50505050816001600160a01b031663a718531b82600162002bc491906200b8ef565b888660ff168151811062002bdc5762002bdc6200b6ec565b60209081029190910101516040516001600160e01b031960e085901b16815260ff90921660048301526001600160a01b0316602482015260006044820152606401600060405180830381600087803b15801562002c3857600080fd5b505af115801562002c4d573d6000803e3d6000fd5b505050505b60010162002ae3565b505060010162002aad565b505050505050505050565b6060601480548060200260200160405190810160405280929190818152602001828054801562002ccb57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162002cac575b5050505050905090565b60608160ff166001600160401b0381111562002cf55762002cf56200a6db565b60405190808252806020026020018201604052801562002d1f578160200160208202803683370190505b509050825b62002d3083856200b8ef565b60ff168160ff16101562002dda5760ff81166000908152602080805260408083205481516001600160a01b039091169281019290925230908201526001606082015262002d929087906080015b604051602081830303815290604052620082eb565b9050808362002da287856200bd4c565b60ff168151811062002db85762002db86200b6ec565b6001600160a01b03909216602092830291909101909101525060010162002d24565b5062002de68162004559565b9392505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101562002f3257600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562002f1a57838290600052602060002001805462002e86906200bd68565b80601f016020809104026020016040519081016040528092919081815260200182805462002eb4906200bd68565b801562002f055780601f1062002ed95761010080835404028352916020019162002f05565b820191906000526020600020905b81548152906001019060200180831162002ee757829003601f168201915b50505050508152602001906001019062002e64565b50505050815250508152602001906001019062002e11565b50505050905090565b6000806000606062002f4e86866200834a565b935062002f5c868662008370565b925062002f6a868662008382565b915062002f7886866200839f565b905092959194509250565b604051632631f2b160e11b8152600360f01b6001600160f01b03198316141560048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b15801562002fda57600080fd5b505afa15801562002fef573d6000803e3d6000fd5b506000925060019150620030009050565b6040519080825280602002602001820160405280156200304f57816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816200301f5790505b506040805160028082528183019092529192506000919060208201818036833701905050905082602082015260405180606001604052808563ffffffff168152602001600161ffff1681526020018281525082600081518110620030b757620030b76200b6ec565b60209081029190910101526040516000805160206202c3a88339815191529063f28dceb390639a6d49cd60e01b90620030f59085906024016200ae26565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e084901b90921682526200313c916004016200ae26565b600060405180830381600087803b1580156200315757600080fd5b505af11580156200316c573d6000803e3d6000fd5b5050602654604051630b98bd0760e41b81526001600160a01b03909116925063b98bd0709150620031a29085906004016200bda4565b600060405180830381600087803b158015620031bd57600080fd5b505af1158015620031d2573d6000803e3d6000fd5b5050505050505050565b63ffffffff871660009081526020805260408120546001600160a01b03169080806200320889620083ec565b925092509250836001600160a01b03166391d20fa18284908d8b8d898d8d604051806020016040528060008152506040518a63ffffffff1660e01b81526004016200325a97969594939291906200be25565b6000604051808303818589803b1580156200327457600080fd5b5088f115801562003289573d6000803e3d6000fd5b5050505050505050505050505050505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562002ccb576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162002cac575050505050905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562002ccb576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162002cac575050505050905090565b6000805160206202c3a8833981519152634c63e56261020061ffff8416108015906200339157506103008361ffff16105b6040518263ffffffff1660e01b8152600401620033b2911515815260200190565b60006040518083038186803b158015620033cb57600080fd5b505afa158015620033e0573d6000803e3d6000fd5b50505050620033ee620084e9565b6040805160c081018252600281526000602080830182905261ffff8516838501528351808201855282815260608401528351808201855282815260808401528351908101845281815260a08301528251630618f58760e51b8152631e4ec46b60e01b6004820152925191926000805160206202c3a88339815191529263c31eb0e09260248084019391929182900301818387803b1580156200348f57600080fd5b505af1158015620034a4573d6000803e3d6000fd5b505050506025600281548110620034bf57620034bf6200b6ec565b600091825260208220015460405163c6414e7b60e01b81526001600160a01b039091169163c6414e7b91620034f99185916004016200beeb565b6040805180830381865afa15801562003516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ee891906200bf63565b60008060006200354d858562008558565b9250925092509250925092565b6000805160206202c3a8833981519152634c63e5626200357e61010060026200bf82565b83101580156200359b57506200359861010060036200bf82565b83105b6040518263ffffffff1660e01b8152600401620035bc911515815260200190565b60006040518083038186803b158015620035d557600080fd5b505afa158015620035ea573d6000803e3d6000fd5b5050602480546029546040516331a9108f60e11b8152600481018790526000805160206202c3a88339815191529550634c63e56294506001600160a01b03928316939290911691636352211e9101602060405180830381865afa15801562003656573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200367c91906200b90b565b6001600160a01b0316146040518263ffffffff1660e01b8152600401620036a7911515815260200190565b60006040518083038186803b158015620036c057600080fd5b505afa158015620036d5573d6000803e3d6000fd5b5050602954602480546040516370a0823160e01b81526001600160a01b03918216600482015260039550859450620037619391909116916370a0823191015b602060405180830381865afa15801562003732573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200375891906200b7af565b61010062007d3a565b6029546028546040516370a0823160e01b81526001600160a01b039182166004820152620037f19291909116906370a08231906024015b602060405180830381865afa158015620037b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037dc91906200b7af565b620037eb61010060026200bf82565b62007d3a565b6024805460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a88339815191529163ca669fa79101600060405180830381600087803b1580156200384557600080fd5b505af11580156200385a573d6000803e3d6000fd5b505060295460285460405163095ea7b360e01b81526001600160a01b039182166004820152602481018890529116925063095ea7b39150604401600060405180830381600087803b158015620038af57600080fd5b505af1158015620038c4573d6000803e3d6000fd5b50506024805460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a8833981519152935063ca669fa7925001600060405180830381600087803b1580156200391c57600080fd5b505af115801562003931573d6000803e3d6000fd5b505060285460405163dcdfd91160e01b81526004810187905263ffffffff861660248201526001600160a01b03909116925063dcdfd9119150604401600060405180830381600087803b1580156200398857600080fd5b505af11580156200399d573d6000803e3d6000fd5b5050602954602480546040516370a0823160e01b81526001600160a01b03918216600482015262003a289550921692506370a0823191015b602060405180830381865afa158015620039f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003a1991906200b7af565b620037eb60016101006200bf9c565b6029546028546040516370a0823160e01b81526001600160a01b03918216600482015262003abe9291909116906370a0823190602401602060405180830381865afa15801562003a7c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003aa291906200b7af565b62003ab161010060026200bf82565b620037eb9060016200b756565b6029546040516331a9108f60e11b81526004810185905262003b43916001600160a01b031690636352211e90602401602060405180830381865afa15801562003b0b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b3191906200b90b565b6028546001600160a01b0316620085d6565b6024805460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a88339815191529163ca669fa79101600060405180830381600087803b15801562003b9757600080fd5b505af115801562003bac573d6000803e3d6000fd5b5050602854602354604051634dba701b60e01b81526001600160a01b0391821660048201526024810188905263ffffffff8616604482015291169250634dba701b9150606401600060405180830381600087803b15801562003c0d57600080fd5b505af115801562003c22573d6000803e3d6000fd5b50506029546023546040516370a0823160e01b81526001600160a01b03918216600482015262003ca79450911691506370a08231906024015b602060405180830381865afa15801562003c79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003c9f91906200b7af565b600162007d3a565b6029546028546040516370a0823160e01b81526001600160a01b03918216600482015262003ce39291909116906370a082319060240162003798565b6029546040516331a9108f60e11b81526004810185905262000ee8916001600160a01b031690636352211e90602401602060405180830381865afa15801562003d30573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003d5691906200b90b565b6023546001600160a01b0316620085d6565b63ffffffff841660009081526020805260409020546001600160a01b031662003dd45760405162461bcd60e51b815260206004820152601b60248201527f656e64706f696e74206e6f742079657420726567697374657265640000000000604482015260640162002a97565b63ffffffff84166000908152601d6020908152604080832086845290915281209062003e0082620086bf565b905060008460000362003e205762003e1883620086bf565b905062003e34565b84821162003e2f578162003e31565b845b90505b8015620017fc578062003e47816200bfb2565b915050600062003e5784620086dd565b6000818152601e602052604081208054929350909162003e77906200bd68565b80601f016020809104026020016040519081016040528092919081815260200182805462003ea5906200bd68565b801562003ef65780601f1062003eca5761010080835404028352916020019162003ef6565b820191906000526020600020905b81548152906001019060200180831162003ed857829003601f168201915b505060405163997cff1b60e01b8152939450309363997cff1b935062003f25925085915086906004016200b8b5565b60006040518083038186803b15801562003f3e57600080fd5b505afa15801562003f53573d6000803e3d6000fd5b50506040516312cc947f60e01b81523092506312cc947f915062003f7c9084906004016200ae26565b600060405180830381600087803b15801562003f9757600080fd5b505af115801562003fac573d6000803e3d6000fd5b5050506000838152601f6020526040812080549192509062003fce906200bd68565b80601f016020809104026020016040519081016040528092919081815260200182805462003ffc906200bd68565b80156200404d5780601f1062004021576101008083540402835291602001916200404d565b820191906000526020600020905b8154815290600101906020018083116200402f57829003601f168201915b50505050509050620040618160026200874e565b156200411d57600080620040758362008764565b604051919350915081906000906001600160a01b0383169085908381818185875af1925050503d8060008114620040c9576040519150601f19603f3d011682016040523d82523d6000602084013e620040ce565b606091505b5050905080620041185760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640162002a97565b505050505b6200412a8160016200874e565b156200418c576040516307629f5560e51b8152309063ec53eaa0906200415790859085906004016200bfcc565b600060405180830381600087803b1580156200417257600080fd5b505af115801562004187573d6000803e3d6000fd5b505050505b6001600160a01b03871615801590620041ad5750620041ad8160036200874e565b1562004213576040516328a7226160e21b8152309063a29c898490620041de908590859088908d906004016200bff5565b600060405180830381600087803b158015620041f957600080fd5b505af11580156200420e573d6000803e3d6000fd5b505050505b50505062003e34565b61ffff82166000908152601d602090815260408083208484529091528120816200424682620086bf565b119150505b92915050565b6040811160008060606200426686866200885b565b92506200427486866200886c565b915062002f7886866200888d565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101562002f325760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200435357602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620043145790505b50505050508152505081526020019060010190620042a6565b60006200438683836200437e6200889e565b9190620088c1565b60408051600180825281830190925291925060009190816020015b60408051606080820183526000808352602083015291810191909152815260200190600190039081620043a157905050905060405180606001604052808763ffffffff1681526020018661ffff16815260200183815250816000815181106200440e576200440e6200b6ec565b6020908102919091010152602654604051630b98bd0760e41b81526001600160a01b039091169063b98bd070906200444b9084906004016200bda4565b600060405180830381600087803b1580156200446657600080fd5b505af11580156200447b573d6000803e3d6000fd5b5050505060006200449185856200437e6200889e565b602654604051632f1c2cd560e21b815263ffffffff8a16600482015261ffff89166024820152606060448201526000606482018190529293506001600160a01b039091169063bc70b35490608401600060405180830381865afa158015620044fd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200452791908101906200b551565b9050620031d2818362008933565b600036600080620045488787876200893f565b935093509350935093509350935093565b805160005b8181101562000ee85760008382815181106200457e576200457e6200b6ec565b6020026020010151905060005b8381101562004715578281146200470c576000858281518110620045b357620045b36200b6ec565b602002602001015190506000816001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa158015620045fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200462491906200b90b565b6001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200468891906200c040565b9050836001600160a01b0316633400288b82620046ab856001600160a01b031690565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b158015620046f057600080fd5b505af115801562004705573d6000803e3d6000fd5b5050505050505b6001016200458b565b50506001016200455e565b61ffff82166000908152601d6020908152604080832084845290915281206060916200474c82620086bf565b11156200480757600062004760826200899b565b6000818152601e602052604090208054919250906200477f906200bd68565b80601f0160208091040260200160405190810160405280929190818152602001828054620047ad906200bd68565b8015620047fe5780601f10620047d257610100808354040283529160200191620047fe565b820191906000526020600020905b815481529060010190602001808311620047e057829003601f168201915b50505050509250505b5092915050565b60608183036200482e575060408051600081526020810190915262002de6565b8351821115620048815760405162461bcd60e51b815260206004820152601760248201527f656e6420696e646578206f7574206f6620626f756e6473000000000000000000604482015260640162002a97565b60006200488f84846200bf9c565b90506000816001600160401b03811115620048ae57620048ae6200a6db565b604051908082528060200260200182016040528015620048d8578160200160208202803683370190505b50905060005b82811015620049385786620048f482886200b756565b815181106200490757620049076200b6ec565b60200260200101518282815181106200492457620049246200b6ec565b6020908102919091010152600101620048de565b5095945050505050565b6000805160206202c3a8833981519152634c63e56261020061ffff8416108015906200497357506103008361ffff16105b6040518263ffffffff1660e01b815260040162004994911515815260200190565b60006040518083038186803b158015620049ad57600080fd5b505afa158015620049c2573d6000803e3d6000fd5b50505050620049d0620084e9565b6040805160c081018252600281526000602080830182905261ffff8516838501528351808201855282815260608401528351808201855282815260808401528351808201855282815260a08401528351808501855262030d4081529081018290526024805485516303223eab60e11b81526001600160a01b0390911660048201529451939491936000805160206202c3a8833981519152936306447d5693808401939192919082900301818387803b15801562004a8c57600080fd5b505af115801562004aa1573d6000803e3d6000fd5b50505050602860009054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562004af9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b1f91906200b90b565b60285460405163095ea7b360e01b81526001600160a01b03918216600482015261ffff8616602482015291169063095ea7b390604401600060405180830381600087803b15801562004b7057600080fd5b505af115801562004b85573d6000803e3d6000fd5b5050604051630618f58760e51b8152631e4ec46b60e01b60048201526000805160206202c3a8833981519152925063c31eb0e09150602401600060405180830381600087803b15801562004bd857600080fd5b505af115801562004bed573d6000803e3d6000fd5b50505050602560028154811062004c085762004c086200b6ec565b60009182526020909120015481516040516321eb730b60e01b81526001600160a01b03909216916321eb730b919062004c4a908690869030906004016200c060565b60806040518083038185885af115801562004c69573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062004c9091906200c0a1565b506000805160206202c3c883398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562004cdf57600080fd5b505af1158015620017fc573d6000803e3d6000fd5b60606018805480602002602001604051908101604052809291908181526020016000905b8282101562002f3257838290600052602060002001805462004d3a906200bd68565b80601f016020809104026020016040519081016040528092919081815260200182805462004d68906200bd68565b801562004db95780601f1062004d8d5761010080835404028352916020019162004db9565b820191906000526020600020905b81548152906001019060200180831162004d9b57829003601f168201915b50505050508152602001906001019062004d18565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101562002f325760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562004e9f57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162004e605790505b5050505050815250508152602001906001019062004df2565b604051632631f2b160e11b815261010082101560048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b15801562004f0357600080fd5b505afa15801562004f18573d6000803e3d6000fd5b50506026546022546040516370a0823160e01b81526001600160a01b0391821660048201526001945062004f5993509116906370a082319060240162003714565b6026546040516370a0823160e01b815230600482015262004fd4916001600160a01b0316906370a08231906024015b602060405180830381865afa15801562004fa6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004fcc91906200b7af565b600062007d3a565b60225460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a88339815191529063ca669fa790602401600060405180830381600087803b1580156200502957600080fd5b505af11580156200503e573d6000803e3d6000fd5b5050602654602254604051634dba701b60e01b81526001600160a01b0391821660048201526024810187905263ffffffff8616604482015291169250634dba701b9150606401600060405180830381600087803b1580156200509f57600080fd5b505af1158015620050b4573d6000803e3d6000fd5b50506026546022546040516370a0823160e01b81526001600160a01b0391821660048201526200513f9450911691506370a0823190602401602060405180830381865afa1580156200510a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200513091906200b7af565b620037eb61010060016200b756565b6026546040516331a9108f60e11b815260048101849052620051c5916001600160a01b031690636352211e906024015b602060405180830381865afa1580156200518d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620051b391906200b90b565b6022546001600160a01b0316620085d6565b6026546040516370a0823160e01b815230600482015262000e3a916001600160a01b0316906370a082319060240162004f88565b600062005207848462008a09565b90508181146200524b5760405162461bcd60e51b815260206004820152600e60248201526d0ceead2c840dcdee840dac2e8c6d60931b604482015260640162002a97565b50505050565b6000805160206202c3a8833981519152634c63e5626001600160801b038616158015906200528757506001600160801b03868116105b80156200529d57506000846001600160801b0316115b8015620052b257506001600160801b03848116105b6040518263ffffffff1660e01b8152600401620052d3911515815260200190565b60006040518083038186803b158015620052ec57600080fd5b505afa15801562005301573d6000803e3d6000fd5b5050505060006200531785856200437e6200889e565b905060006200532b84846200437e6200889e565b6040805160028082526060820190925291925060009190816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816200534757905050905060405180606001604052808963ffffffff168152602001600161ffff1681526020018481525081600081518110620053b557620053b56200b6ec565b602002602001018190525060405180606001604052808963ffffffff168152602001600261ffff1681526020018381525081600181518110620053fc57620053fc6200b6ec565b6020908102919091010152602654604051630b98bd0760e41b81526001600160a01b039091169063b98bd07090620054399084906004016200bda4565b600060405180830381600087803b1580156200545457600080fd5b505af115801562005469573d6000803e3d6000fd5b5050602654604051635535d46160e01b815263ffffffff8c16600482015260016024820152620054f993506001600160a01b039091169150635535d46190604401600060405180830381865afa158015620054c8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620054f291908101906200b551565b8462008933565b602654604051635535d46160e01b815263ffffffff8a16600482015260026024820152620031d2916001600160a01b031690635535d46190604401600060405180830381865afa15801562005552573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200557c91908101906200b551565b8362008933565b30633bbd6a9462005595878762008279565b620055a18888620082a0565b868686620055b08c8c62008a1b565b6040518863ffffffff1660e01b8152600401620055d497969594939291906200c110565b600060405180830381600087803b158015620055ef57600080fd5b505af115801562002c66573d6000803e3d6000fd5b602581815481106200561557600080fd5b6000918252602090912001546001600160a01b0316905081565b8060206000836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562005673573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200569991906200c040565b63ffffffff168152602081019190915260400160002080546001600160a01b0319166001600160a01b039290921691909117905550565b60606017805480602002602001604051908101604052809291908181526020016000905b8282101562002f3257838290600052602060002001805462005716906200bd68565b80601f016020809104026020016040519081016040528092919081815260200182805462005744906200bd68565b8015620057955780601f10620057695761010080835404028352916020019162005795565b820191906000526020600020905b8154815290600101906020018083116200577757829003601f168201915b505050505081526020019060010190620056f4565b62000e3a828260008062003d68565b600080620057c8848462008a2d565b915091505b9250929050565b600754600090610100900460ff1615620057f75750600754610100900460ff1690565b60006000805160206202c3a88339815191523b15620058fc57604080516000805160206202c3a8833981519152602082018190526519985a5b195960d21b828401528251808303840181526060830190935260009290916200587e917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016200c172565b60408051601f19818403018152908290526200589a916200c1a5565b6000604051808303816000865af19150503d8060008114620058d9576040519150601f19603f3d011682016040523d82523d6000602084013e620058de565b606091505b5091505080806020019051810190620058f891906200b404565b9150505b919050565b8315620059125762005912620084e9565b60008362005930576040518060200160405280600081525062005940565b6200594083836200437e6200889e565b6040805160c081018252600281526022546001600160a01b039081166020808401919091528284018b90526060830185905283518082018552600080825260808501919091528451918201855280825260a084019190915260265493516338246f4d60e11b8152949550919391928392911690637048de9a90620059c99086906004016200c1c3565b600060405180830381865afa158015620059e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262005a1191908101906200c1d8565b602654604051632f1c2cd560e21b815292945090925062005aa29183916001600160a01b03169063bc70b3549062005a54906002906001908b906004016200c238565b600060405180830381865afa15801562005a72573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262005a9c91908101906200b551565b62008933565b600080600080306001600160a01b03166360e5524d876040518263ffffffff1660e01b815260040162005ad691906200ae26565b600060405180830381865afa15801562005af4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262005b1e91908101906200c263565b935093509350935062005b3384600062008a79565b60225462005b4c9084906001600160a01b031662007c51565b62005b58828e62007d3a565b62005b668151600062007d3a565b62005b81816040518060200160405280600081525062008933565b50505050505050505050505050565b6000805160206202c3a8833981519152634c63e56261020061ffff84161080159062005bc157506103008361ffff16105b6040518263ffffffff1660e01b815260040162005be2911515815260200190565b60006040518083038186803b15801562005bfb57600080fd5b505afa15801562005c10573d6000803e3d6000fd5b5050505062005c1e620084e9565b6026546022546040516370a0823160e01b81526001600160a01b03918216600482015262005c5a9291909116906370a082319060240162003714565b6027546023546040516370a0823160e01b81526001600160a01b03918216600482015262005c969291909116906370a082319060240162003714565b60285460408051637e062a3560e11b8152905162005d3a926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa15801562005ce3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005d0991906200b90b565b602480546040516370a0823160e01b81526001600160a01b0391821660048201529216916370a08231910162003714565b60285460408051637e062a3560e11b8152905162005e30926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa15801562005d87573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005dad91906200b90b565b6040516331a9108f60e11b815261ffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa15801562005df8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005e1e91906200b90b565b6024546001600160a01b0316620085d6565b60005b600a8160ff161015620060bc57602480546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206202c3a8833981519152916306447d569101600060405180830381600087803b15801562005e9457600080fd5b505af115801562005ea9573d6000803e3d6000fd5b50505050602860009054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562005f01573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005f2791906200b90b565b60285460405163095ea7b360e01b81526001600160a01b03918216600482015261ffff8516602482015291169063095ea7b390604401600060405180830381600087803b15801562005f7857600080fd5b505af115801562005f8d573d6000803e3d6000fd5b505050506000805160206202c3c883398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562005fdf57600080fd5b505af115801562005ff4573d6000803e3d6000fd5b505060245460225462006029935061ffff861692506003916001916001600160a01b0391821691166101008084600062008bdf565b602254602354620060679161ffff8516916001916002916001600160a01b0391821691166200605b610100856200b756565b61010060008062008bdf565b602354602454620060b39161ffff8516916002916003916001600160a01b0391821691166200609a61010060016200b756565b620060a960016101006200bf9c565b6000600162008bdf565b60010162005e33565b506026546022546040516370a0823160e01b81526001600160a01b039182166004820152620060f99291909116906370a082319060240162003714565b6027546023546040516370a0823160e01b81526001600160a01b039182166004820152620061359291909116906370a082319060240162003714565b60285460408051637e062a3560e11b8152905162006182926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa15801562005ce3573d6000803e3d6000fd5b50565b604051632631f2b160e11b8152610100821060048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b158015620061cf57600080fd5b505afa158015620061e4573d6000803e3d6000fd5b50506022546026546040516331a9108f60e11b8152600481018690526000805160206202c3a88339815191529450634c63e56293506001600160a01b039283169290911690636352211e90602401602060405180830381865afa15801562006250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200627691906200b90b565b6001600160a01b0316146040518263ffffffff1660e01b8152600401620062a1911515815260200190565b60006040518083038186803b158015620062ba57600080fd5b505afa158015620062cf573d6000803e3d6000fd5b50506026546022546040516370a0823160e01b81526001600160a01b039182166004820152600194506200631093509116906370a082319060240162003714565b6026546040516370a0823160e01b815230600482015262006344916001600160a01b0316906370a082319060240162004f88565b60225460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a88339815191529063ca669fa790602401600060405180830381600087803b1580156200639957600080fd5b505af1158015620063ae573d6000803e3d6000fd5b505060265460405163dcdfd91160e01b81526004810186905263ffffffff851660248201526001600160a01b03909116925063dcdfd9119150604401600060405180830381600087803b1580156200640557600080fd5b505af11580156200641a573d6000803e3d6000fd5b50506026546022546040516370a0823160e01b81526001600160a01b039182166004820152620064589450911691506370a0823190602401620039d5565b602654604051634f558e7960e01b815260048101849052620051c5916001600160a01b031690634f558e7990602401602060405180830381865afa15801562000d2e573d6000803e3d6000fd5b6000805160206202c3a8833981519152634c63e5626001600160801b03620064d28482168683166200b756565b6040516001600160e01b031960e085901b1681529111600482015260240160006040518083038186803b1580156200650957600080fd5b505afa1580156200651e573d6000803e3d6000fd5b5050505060006200653484846200437e6200889e565b60408051600180825281830190925291925060009190816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816200654f57905050905060405180606001604052808863ffffffff1681526020018761ffff1681526020018381525081600081518110620065bc57620065bc6200b6ec565b6020908102919091010152602654604051630b98bd0760e41b81526001600160a01b039091169063b98bd07090620065f99084906004016200bda4565b600060405180830381600087803b1580156200661457600080fd5b505af115801562006629573d6000803e3d6000fd5b50506022546000925062006656915085906001600160a01b03165b6200664e6200889e565b919062008c02565b6022549091506000906200667f9086906001600160a01b03166200664e8a8a6200437e6200889e565b602654604051632f1c2cd560e21b81529192506000916001600160a01b039091169063bc70b35490620066bb908d908d9088906004016200c238565b600060405180830381865afa158015620066d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200670391908101906200b551565b905062006711818362008933565b50505050505050505050565b8051604051632631f2b160e11b815290151560048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b1580156200676757600080fd5b505afa1580156200677c573d6000803e3d6000fd5b505050506000620067c2848462006799336001600160a01b031690565b85604051602001620067ad9291906200c2c1565b60405160208183030381529060405262008c49565b9050600080600080306001600160a01b0316632c05152c866040518263ffffffff1660e01b8152600401620067f891906200ae26565b600060405180830381865afa15801562006816573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200684091908101906200c2e9565b935093509350935062006866846001600160401b0316896001600160401b031662007d3a565b6200687e8363ffffffff168863ffffffff1662007d3a565b6200688a823362007c51565b620031d2818762008933565b8051604051632631f2b160e11b815290151560048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b158015620068e057600080fd5b505afa158015620068f5573d6000803e3d6000fd5b50506026546040516331a9108f60e11b815260ff861660048201526200693293506001600160a01b039091169150636352211e906024016200516f565b600060405162006942906200a48c565b604051809103906000f0801580156200695f573d6000803e3d6000fd5b50905060006200698d60006207a1206000620069846207a12060006200437e6200889e565b92919062008c7a565b905060006040518060c00160405280600263ffffffff168152602001620069ba856001600160a01b031690565b81526020018660ff1681526020018381526020018581526020016040518060200160405280600081525081525090506000602660009054906101000a90046001600160a01b03166001600160a01b031663c6414e7b8360006040518363ffffffff1660e01b815260040162006a319291906200beeb565b6040805180830381865afa15801562006a4e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006a7491906200bf63565b6027546040516370a0823160e01b81526001600160a01b03878116600483015292935062006aaf92909116906370a082319060240162004f88565b60225460405163ca669fa760e01b81526001600160a01b0390911660048201526000805160206202c3a88339815191529063ca669fa790602401600060405180830381600087803b15801562006b0457600080fd5b505af115801562006b19573d6000803e3d6000fd5b505060265483516040516321eb730b60e01b8152600094506001600160a01b0390921692506321eb730b9162006b58908790879030906004016200c060565b60806040518083038185885af115801562006b77573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062006b9e91906200c0a1565b60275490915062006bbb906002906001600160a01b0316620057aa565b602754815160208301516022546001600160a01b03938416938893928a9260009262006bfa9291600191168e604051602001620067ad9291906200c2c1565b604051630eef5aa560e21b81529091503090633bbd6a949062006c2d90600290899089908990899089906004016200c344565b600060405180830381600087803b15801562006c4857600080fd5b505af115801562006c5d573d6000803e3d6000fd5b50506026546022546040516370a0823160e01b81526001600160a01b03918216600482015262006c9b9450911691506370a0823190602401620039d5565b6027546040516370a0823160e01b81526001600160a01b038c8116600483015262006cd19216906370a082319060240162003c5b565b62006d418a6001600160a01b031663d5ce33896040518163ffffffff1660e01b8152600401602060405180830381865afa15801562006d14573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006d3a91906200b90b565b86620085d6565b62006db18a6001600160a01b0316630ae6d46b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562006d84573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006daa91906200b7af565b8462007c51565b62006e258a6001600160a01b031663e21f37ce6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562006df4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262006e1e91908101906200b551565b8262008933565b62006e958a6001600160a01b031663c34c08e56040518163ffffffff1660e01b8152600401602060405180830381865afa15801562006e68573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006e8e91906200b90b565b30620085d6565b62006ed88a6001600160a01b031663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa15801562006df4573d6000803e3d6000fd5b505050505050505050505050565b6060601380548060200260200160405190810160405280929190818152602001828054801562002ccb576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831162002cac575050505050905090565b600262006f54620084e9565b6040805160c08101825263ffffffff83168152602080820185905281830186905282518082018452600080825260608401919091528351808301855281815260808401528351918201845280825260a083019190915260265492516338246f4d60e11b8152919290916001600160a01b0390911690637048de9a9062006fdf9085906004016200c1c3565b600060405180830381865afa15801562006ffd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200702791908101906200c1d8565b50905060405162007038906200a49a565b604051809103906000f08015801562007055573d6000803e3d6000fd5b50602a80546001600160a01b0319166001600160a01b039283169081179091556026546040516337e0d98f60e11b8152600481019290925290911690636fc1b31e90602401600060405180830381600087803b158015620070b557600080fd5b505af1158015620070ca573d6000803e3d6000fd5b5050602654604051635535d46160e01b815260026004820152600160248201526000805160206202c3a8833981519152935063f28dceb39250637b43b43960e01b9185916001600160a01b0390911690635535d46190604401600060405180830381865afa15801562007141573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200716b91908101906200b551565b6040516024016200717e9291906200bfcc565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e084901b9092168252620071c5916004016200ae26565b600060405180830381600087803b158015620071e057600080fd5b505af1158015620071f5573d6000803e3d6000fd5b50506026546040516338246f4d60e11b81526001600160a01b039091169250637048de9a91506200722b9085906004016200c1c3565b600060405180830381865afa15801562007249573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620017fc91908101906200c1d8565b6022546000906200728f9083906001600160a01b031662006644565b602254909150600090620072ae9084906001600160a01b031662006644565b602654604051632f1c2cd560e21b81529192506000916001600160a01b039091169063bc70b35490620072ea908990899088906004016200c238565b600060405180830381865afa15801562007308573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200733291908101906200b551565b905062007340818362008933565b505050505050565b60265460408051638da5cb5b60e01b8152905162007395926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801562006e68573d6000803e3d6000fd5b60275460408051638da5cb5b60e01b81529051620073e2926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801562006e68573d6000803e3d6000fd5b60285460408051638da5cb5b60e01b815290516200742f926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801562006e68573d6000803e3d6000fd5b6026546022546040516370a0823160e01b81526001600160a01b0391821660048201526200746b9291909116906370a082319060240162003714565b6027546023546040516370a0823160e01b81526001600160a01b039182166004820152620074a79291909116906370a082319060240162003714565b60285460408051637e062a3560e11b81529051620074f4926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa15801562005ce3573d6000803e3d6000fd5b60265460408051637e062a3560e11b8152905162007579926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa15801562007541573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200756791906200b90b565b6026546001600160a01b0316620085d6565b60275460408051637e062a3560e11b81529051620075fe926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa158015620075c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620075ec91906200b90b565b6027546001600160a01b0316620085d6565b60285460408051637e062a3560e11b8152905162000e20926001600160a01b03169163fc0c546a9160048083019260209291908290030181865afa1580156200764b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200767191906200b90b565b6029546001600160a01b0316620085d6565b60006020600062007695868662008279565b63ffffffff16815260208101919091526040016000908120546001600160a01b0316915080620076c58462008ccd565b9150915060006040518060600160405280620076e28989620082b5565b63ffffffff168152602001620076f9898962008dc4565b81526020016200770a898962008dd6565b6001600160401b0316905290506001600160a01b038416630c0c389e848484620077358c8c620082a0565b620077418d8d62008a09565b6200774d8e8e62008a1b565b604051806020016040528060008152506040518963ffffffff1660e01b815260040162007780969594939291906200c396565b6000604051808303818589803b1580156200779a57600080fd5b5088f115801562005b81573d6000803e3d6000fd5b602854604051630a85bd0160e11b81526000916001600160a01b03169063150b7a0290620077e89088908890889088906004016200c3fe565b6020604051808303816000875af115801562007808573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200782e91906200c433565b90506200784d6001600160e01b03198216630a85bd0160e11b62007c51565b5050505050565b604051632631f2b160e11b81526001600160801b038416151560048201526000805160206202c3a883398151915290634c63e5629060240160006040518083038186803b158015620078a557600080fd5b505afa158015620078ba573d6000803e3d6000fd5b5050604051632631f2b160e11b81526001600160801b038416151560048201526000805160206202c3a88339815191529250634c63e562915060240160006040518083038186803b1580156200790f57600080fd5b505afa15801562007924573d6000803e3d6000fd5b5050505060006200793a84846200437e6200889e565b855190915015620079575762007954816000848662008c7a565b90505b6040805160c081018252600281526022546001600160a01b039081166020808401919091528284018a9052606083018590526080830189905283519081018452600080825260a084019190915260265493516338246f4d60e11b81529293909283929190911690637048de9a90620079d49086906004016200c1c3565b600060405180830381865afa158015620079f2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262007a1c91908101906200c1d8565b9150915062007a2c818562008933565b600080600080306001600160a01b03166360e5524d876040518263ffffffff1660e01b815260040162007a6091906200ae26565b600060405180830381865afa15801562007a7e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262007aa891908101906200c263565b935093509350935062007ac08460008e511162008a79565b60225462007ad99084906001600160a01b031662007c51565b62007ae5828e62007d3a565b6000308d60405160200162007afc9291906200c2c1565b604051602081830303815290604052905062007b328260008f511162006e1e576040518060200160405280600081525062008933565b5050505050505050505050505050565b600080620057c8848462008de8565b600062007b5f858562008279565b9050600062007b6f868662008e4c565b63ffffffff83166000908152601d60209081526040808320848452909152812091925062007b9e888862008a09565b905062007bac828262008e5e565b6000818152601e6020526040902062007bc7888a836200c49d565b506000818152601f6020526040902062002c668688836200c49d565b6200618281155b8062006182576000805160206202c38883398151915260405162007c3f9060208082526017908201527f4572726f723a20417373657274696f6e204661696c6564000000000000000000604082015260600190565b60405180910390a16200618262008ec9565b80821462000e3a576000805160206202c38883398151915260405162007cb69060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b627974604082015264657333325d60d81b606082015260800190565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f998260405162007cef91906200c569565b60405180910390a17fafb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f998160405162007d2891906200c5a2565b60405180910390a162000e3a62008ec9565b80821462000e3a576000805160206202c38883398151915260405162007d9c9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88260405162007dd591906200c569565b60405180910390a17fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a88160405162007d2891906200c5a2565b62007e1c6003600062001805565b62000e2062008fd2565b62007ebe6040518060200162007e3c906200a4a8565b601f19828203810183526040601f9092011681810182526005808252641853d3919560da1b6020838101829052845180860186529283528281019190915260016000528080527f156774b33c8bc7cb83eda4cbc43b36c7c9490ff8913c488ccd5132cfc71344ea54935162002d7d946001600160a01b0316913091016200c5cd565b602680546001600160a01b0319166001600160a01b039290921691909117905560405162007f769062007ef4602082016200a4a8565b601f19828203810183526040601f9092011681810182526005808252641893d3919560da1b6020838101829052845180860186529283528281019190915260026000528080527f2c5f9a2e204d4db70ad0f9037679e33061b4c51a386497019bee969e16be28d754935162002d7d946001600160a01b0316913091016200c5cd565b602760006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040518060400160405280600581526020016418d3d3919560da1b8152506040518060400160405280600581526020016418d3d3919560da1b81525060405162007fe6906200a4b6565b62007ff39291906200bfcc565b604051809103906000f08015801562008010573d6000803e3d6000fd5b50602980546001600160a01b0319166001600160a01b0392909216919091179055604051620080b19062008047602082016200a4c4565b601f1982820381018352601f909101166040818152602954600360005260208080527f1ae1eab41a4db68d73559dd6c8b7ac16a4bc819634768486d35edbff05543abf546001600160a01b0392831691850191909152169082015230606082015260800162002d7d565b602880546001600160a01b0319166001600160a01b0392909216919091179055565b60408051600380825260808201909252906020820160608036833750508151620081059260259250602001906200a4d2565b506026546000906001600160a01b031660258262008123816200c61b565b9350815481106200813857620081386200b6ec565b600091825260209091200180546001600160a01b0319166001600160a01b03928316179055602754166025826200816f816200c61b565b9350815481106200818457620081846200b6ec565b600091825260209091200180546001600160a01b0319166001600160a01b0392831617905560285416602582620081bb816200c61b565b935081548110620081d057620081d06200b6ec565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506200826560258054806020026020016040519081016040528092919081815260200182805480156200825a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200823b575b505050505062004559565b6200826f62009148565b62006182620091db565b60006200828b6031602d84866200c637565b62008296916200c663565b60e01c9392505050565b600062002de6620082b2848462008e4c565b90565b60006200828b600d600984866200c637565b366000620057c860518285876200c637565b366000620057c883605181876200c637565b600080836040516020016200830191906200c1a5565b60408051601f1981840301815290829052620083229185906020016200c692565b60405160208183030381529060405290508051602082016000f09150813b6200480757600080fd5b60006200835b60088284866200c637565b62008366916200c6c5565b60c01c9392505050565b60006200828b600c600884866200c637565b600062008394602c600c84866200c637565b62002de6916200c6f4565b6060620083b082602c81866200c637565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6000806000806000620084018660036200962b565b9150915081620084665760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a436f6d706f7365206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002a97565b604051630518e8ab60e41b8152309063518e8ab0906200848b9084906004016200ae26565b606060405180830381865afa158015620084a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620084cf91906200c713565b91986001600160801b039182169850911695509350505050565b60005b60038163ffffffff1611620061825760265462008513906001600160a01b0316826200976a565b6027546200852b906001600160a01b0316826200976a565b60285462008543906001600160a01b0316826200976a565b806200854f816200c75c565b915050620084ec565b60008080601284148015906200856f575060228414155b156200858e57604051638b4aa70b60e01b815260040160405180910390fd5b6200859c858560006200977a565b9250620085ac85856002620097a5565b915060228414620085bf576000620085cd565b620085cd85856012620097a5565b90509250925092565b806001600160a01b0316826001600160a01b03161462000e3a576000805160206202c3888339815191526040516200864d9060208082526025908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015264726573735d60d81b606082015260800190565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f826040516200868691906200c782565b60405180910390a17f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f8160405162007d2891906200c7c7565b546001600160801b03808216600160801b9092048116919091031690565b80546000906001600160801b03600160801b820481169116810362008715576040516375e52f4f60e01b815260040160405180910390fd5b600019016001600160801b039081166000818152600185016020526040812080549190558454909216600160801b909102179092555090565b60006200875c83836200962b565b509392505050565b600080600080620087778560026200962b565b9150915081620087dd5760405162461bcd60e51b815260206004820152602a60248201527f4f7074696f6e7348656c7065723a206e617469766544726f70206f7074696f6e604482015269081b9bdd08199bdd5b9960b21b606482015260840162002a97565b604051635caa7efb60e11b8152309063b954fdf690620088029084906004016200ae26565b6040805180830381865afa1580156200881f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200884591906200c7f2565b6001600160801b03909116969095509350505050565b60006200839460208284866200c637565b60006200887e6040602084866200c637565b81019062002de691906200aad5565b6060620083b082604081866200c637565b60408051600360f01b602082015281516002818303018152602290910190915290565b6060836003620088d3826000620097d0565b61ffff16146200890b57620088ea816000620097d0565b604051633a51740d60e01b815261ffff909116600482015260240162002a97565b600062008919858562009831565b90506200892986600183620098ad565b9695505050505050565b62000e3a828262009923565b600036816001840181620089558888846200977a565b6002929092019190506200896b88888462009a01565b94506001820161ffff821683016200898681838b8d6200c637565b979b909a50969850505061ffff160193505050565b6000620089bb8254600160801b81046001600160801b0390811691161490565b15620089da576040516375e52f4f60e01b815260040160405180910390fd5b5080546000196001600160801b03600160801b9092048216011660009081526001909101602052604090205490565b6000620083946071605184866200c637565b366000620057c883607181876200c637565b6000806030831462008a52576040516361d0c2c760e11b815260040160405180910390fd5b62008a6084846000620097a5565b915062008a708484601062009a29565b90509250929050565b8015158215151462000e3a576000805160206202c38883398151915260405162008adf9060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6040820152616c5d60f01b606082015260800190565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838262008b32576040518060400160405280600581526020016466616c736560d81b81525062008b50565b604051806040016040528060048152602001637472756560e01b8152505b60405162008b5f91906200c823565b60405180910390a17f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35838162008bb2576040518060400160405280600581526020016466616c736560d81b81525062008bd0565b604051806040016040528060048152602001637472756560e01b8152505b60405162007d2891906200c862565b62002c668989898989604051806020016040528060008152508a8a8a8a62009a51565b606083600362008c14826000620097d0565b61ffff161462008c2b57620088ea816000620097d0565b600062008c3985856200a0fd565b90506200892986600283620098ad565b606083838360405160200162008c62939291906200c88d565b60405160208183030381529060405290509392505050565b606084600362008c8c826000620097d0565b61ffff161462008ca357620088ea816000620097d0565b600062008cb28686866200a127565b905062008cc287600383620098ad565b979650505050505050565b60008060008062008ce08560016200962b565b915091508162008d455760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a52656365697665206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002a97565b60405163f93e1d6160e01b8152309063f93e1d619062008d6a9084906004016200ae26565b6040805180830381865afa15801562008d87573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008dad91906200c8d9565b6001600160801b0391821697911695509350505050565b600062008394602d600d84866200c637565b60006200835b6009600184866200c637565b6000806010831480159062008dfe575060208314155b1562008e1d57604051634796aee160e01b815260040160405180910390fd5b62008e2b84846000620097a5565b91506020831462008e3e57600062008a70565b62008a7084846010620097a5565b6000620083946051603184866200c637565b81546001600160801b038082166000190191600160801b900481169082160362008e9b57604051638acb5f2760e01b815260040160405180910390fd5b6001600160801b0316600081815260018401602052604090209190915581546001600160801b031916179055565b6000805160206202c3a88339815191523b1562008fc157604080516000805160206202c3a8833981519152602082018190526519985a5b195960d21b9282019290925260016060820152600091907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc49060800160408051601f198184030181529082905262008f5c92916020016200c172565b60408051601f198184030181529082905262008f78916200c1a5565b6000604051808303816000865af19150503d806000811462008fb7576040519150601f19603f3d011682016040523d82523d6000602084013e62008fbc565b606091505b505050505b6007805461ff001916610100179055565b60225460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea0000060248201526000805160206202c3a88339815191529063c88a5e6d90604401600060405180830381600087803b1580156200903657600080fd5b505af11580156200904b573d6000803e3d6000fd5b505060235460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea0000060248201526000805160206202c3a8833981519152925063c88a5e6d9150604401600060405180830381600087803b158015620090b357600080fd5b505af1158015620090c8573d6000803e3d6000fd5b50506024805460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea00000918101919091526000805160206202c3a8833981519152925063c88a5e6d9150604401600060405180830381600087803b1580156200913357600080fd5b505af11580156200524b573d6000803e3d6000fd5b61010060005b6200915b8260036200bf82565b81101562000e3a57602954602480546040516340c10f1960e01b81526001600160a01b039182166004820152918201849052909116906340c10f1990604401600060405180830381600087803b158015620091b557600080fd5b505af1158015620091ca573d6000803e3d6000fd5b5050600190920191506200914e9050565b6000620091f162030d4060006200437e6200889e565b905061010060005b818110156200940557602480546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206202c3a8833981519152916306447d569101600060405180830381600087803b1580156200925657600080fd5b505af11580156200926b573d6000803e3d6000fd5b50505050602860009054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620092c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620092e991906200b90b565b60285460405163095ea7b360e01b81526001600160a01b0391821660048201526024810184905291169063095ea7b390604401600060405180830381600087803b1580156200933757600080fd5b505af11580156200934c573d6000803e3d6000fd5b505050506000805160206202c3c883398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200939e57600080fd5b505af1158015620093b3573d6000803e3d6000fd5b5050602454602254620093fc93508492506003916001916001600160a01b0391821691168885620093e58a876200bf82565b620093f191906200bf9c565b886001600062009a51565b600101620091f9565b50805b620094158260026200bf82565b81101562000ee857602480546040516303223eab60e11b81526001600160a01b0390911660048201526000805160206202c3a8833981519152916306447d569101600060405180830381600087803b1580156200947157600080fd5b505af115801562009486573d6000803e3d6000fd5b50505050602860009054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620094de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200950491906200b90b565b60285460405163095ea7b360e01b81526001600160a01b0391821660048201526024810184905291169063095ea7b390604401600060405180830381600087803b1580156200955257600080fd5b505af115801562009567573d6000803e3d6000fd5b505050506000805160206202c3c883398151915260001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620095b957600080fd5b505af1158015620095ce573d6000803e3d6000fd5b50506024546023546200962293508492506003916002916001600160a01b0391821691168885620096008a876200bf82565b6200960c91906200bf9c565b620096188a8a6200bf9c565b6001600062009a51565b60010162009408565b601c5460405163e5c5e9a360e01b815260009160609183916001600160a01b03169063e5c5e9a390620096639088906004016200ae26565b600060405180830381865afa15801562009681573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620096ab91908101906200c1d8565b50905060005b81518110156200976157604051636e1775e360e01b8152600090819081903090636e1775e390620096e990889088906004016200b8b5565b600060405180830381865afa15801562009707573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200973191908101906200c90d565b9250925092508760ff168360ff1603620097565750600195509350620057cd92505050565b9250620096b1915050565b50509250929050565b62000e3a828262030d406200a1c2565b6000600282016200978e818486886200c637565b62009799916200c96c565b60f01c95945050505050565b600060108201620097b9818486886200c637565b620097c4916200c99b565b60801c95945050505050565b6000620097df8260026200b756565b83511015620098285760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b604482015260640162002a97565b50016002015190565b60606001600160801b038216156200987b57604080516001600160801b0319608086811b8216602084015285901b1660308201520160405160208183030381529060405262002de6565b6040516001600160801b0319608085901b1660208201526030015b604051602081830303815290604052905092915050565b6060836003620098bf826000620097d0565b61ffff1614620098d657620088ea816000620097d0565b846001620098e585516200a1e1565b620098f29060016200c9ca565b86866040516020016200990a9594939291906200c9e8565b6040516020818303038152906040529150509392505050565b6200992f82826200a216565b62000e3a576000805160206202c3888339815191526040516200998f9060208082526023908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b62797460408201526265735d60e81b606082015260800190565b60405180910390a17fd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf1882604051620099c891906200c823565b60405180910390a17fd26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf188160405162007d2891906200c862565b600083838381811062009a185762009a186200b6ec565b919091013560f81c95945050505050565b60006020820162009a3d818486886200c637565b62009a48916200c6f4565b95945050505050565b60006040518060c001604052808a63ffffffff16815260200162009a7b896001600160a01b031690565b81526020018c81526020018781526020016040518060200160405280600081525081526020016040518060200160405280600081525081525090506000602560018c62009ac991906200ca53565b63ffffffff168154811062009ae25762009ae26200b6ec565b600091825260208220015460405163c6414e7b60e01b81526001600160a01b039091169163c6414e7b9162009b1c9186916004016200beeb565b6040805180830381865afa15801562009b39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062009b5f91906200bf63565b60405163ca669fa760e01b81526001600160a01b038b1660048201529091506000805160206202c3a88339815191529063ca669fa790602401600060405180830381600087803b15801562009bb357600080fd5b505af115801562009bc8573d6000803e3d6000fd5b50505050602560018c62009bdd91906200ca53565b63ffffffff168154811062009bf65762009bf66200b6ec565b60009182526020909120015481516040516321eb730b60e01b81526001600160a01b03909216916321eb730b919062009c38908690869030906004016200c060565b60806040518083038185885af115801562009c57573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062009c7e91906200c0a1565b5062009cc88a620009e2602562009c976001846200ca53565b63ffffffff168154811062009cb05762009cb06200b6ec565b6000918252602090912001546001600160a01b031690565b62009e30841562009d7657602562009ce260018e6200ca53565b63ffffffff168154811062009cfb5762009cfb6200b6ec565b6000918252602091829020015460408051637e062a3560e11b815290516001600160a01b039092169263fc0c546a926004808401938290030181865afa15801562009d4a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062009d7091906200b90b565b62009db4565b602562009d8560018e6200ca53565b63ffffffff168154811062009d9e5762009d9e6200b6ec565b6000918252602090912001546001600160a01b03165b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa15801562009dfd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062009e2391906200b7af565b620037eb6001896200bf9c565b62009f98831562009ede57602562009e4a60018d6200ca53565b63ffffffff168154811062009e635762009e636200b6ec565b6000918252602091829020015460408051637e062a3560e11b815290516001600160a01b039092169263fc0c546a926004808401938290030181865afa15801562009eb2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062009ed891906200b90b565b62009f1c565b602562009eed60018d6200ca53565b63ffffffff168154811062009f065762009f066200b6ec565b6000918252602090912001546001600160a01b03165b6040516370a0823160e01b81526001600160a01b038b8116600483015291909116906370a0823190602401602060405180830381865afa15801562009f65573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062009f8b91906200b7af565b620037eb8760016200b756565b62006ed883156200a04657602562009fb260018d6200ca53565b63ffffffff168154811062009fcb5762009fcb6200b6ec565b6000918252602091829020015460408051637e062a3560e11b815290516001600160a01b039092169263fc0c546a926004808401938290030181865afa1580156200a01a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200a04091906200b90b565b6200a084565b60256200a05560018d6200ca53565b63ffffffff16815481106200a06e576200a06e6200b6ec565b6000918252602090912001546001600160a01b03165b6001600160a01b0316636352211e8e6040518263ffffffff1660e01b81526004016200a0b291815260200190565b602060405180830381865afa1580156200a0d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200a0f691906200b90b565b89620085d6565b6040516001600160801b0319608084901b1660208201526030810182905260609060500162009896565b60606001600160801b038216156200a186576040516001600160f01b031960f086901b1660208201526001600160801b0319608085811b8216602284015284901b1660328201526042016040516020818303038152906040526200a1ba565b6040516001600160f01b031960f086901b1660208201526001600160801b0319608085901b16602282015260320162008c62565b949350505050565b62000ee8838360016200a1db8560006200437e6200889e565b6200a2a3565b600061ffff8211156200a212576040516306dfcc6560e41b8152601060048201526024810183905260440162002a97565b5090565b8051825160019190036200a29a5760005b83518110156200a293578281815181106200a246576200a2466200b6ec565b602001015160f81c60f81b6001600160f81b0319168482815181106200a270576200a2706200b6ec565b01602001516001600160f81b031916146200a28a57600091505b6001016200a227565b506200424b565b50600092915050565b604080516001808252818301909252600091816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816200a2ba57905050905060405180606001604052808563ffffffff1681526020018461ffff16815260200183815250816000815181106200a327576200a3276200b6ec565b6020908102919091010152604051630b98bd0760e41b81526001600160a01b0386169063b98bd07090620055d49084906004016200bda4565b6155c1806200ca7483390190565b6114d6806201203583390190565b614ac0806201350b83390190565b6124418062017fcb83390190565b612c70806201a40c83390190565b611257806201d07c83390190565b6138e7806201e2d383390190565b610e2e8062021bba83390190565b6040518060400160405280600063ffffffff1681526020016200a4346040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b905290565b6040518060400160405280600063ffffffff1681526020016200a4346040518060400160405280600063ffffffff16815260200160006001600160a01b031681525090565b611a4480620229e883390190565b61052c806202442c83390190565b6101e9806202495883390190565b613ac68062024b4183390190565b611277806202860783390190565b612b0a806202987e83390190565b8280548282559060005260206000209081019282156200a52a579160200282015b828111156200a52a57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200a4f3565b506200a2129291505b808211156200a21257600081556001016200a533565b63ffffffff811681146200618257600080fd5b6001600160a01b03811681146200618257600080fd5b600080604083850312156200a58657600080fd5b82356200a593816200a549565b915060208301356200a5a5816200a55c565b809150509250929050565b60008083601f8401126200a5c357600080fd5b5081356001600160401b038111156200a5db57600080fd5b602083019150836020828501011115620057cd57600080fd5b600080602083850312156200a60857600080fd5b82356001600160401b038111156200a61f57600080fd5b6200a62d858286016200a5b0565b90969095509350505050565b60ff811681146200618257600080fd5b600080604083850312156200a65d57600080fd5b82356200a66a816200a639565b91506020830135600281106200a5a557600080fd5b60008151808452602080850194506020840160005b838110156200a6bb5781516001600160a01b0316875295820195908201906001016200a694565b509495945050505050565b60208152600062002de660208301846200a67f565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b03811182821017156200a716576200a7166200a6db565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200a747576200a7476200a6db565b604052919050565b60006001600160401b038211156200a76b576200a76b6200a6db565b50601f01601f191660200190565b600082601f8301126200a78b57600080fd5b81356200a7a26200a79c826200a74f565b6200a71c565b8181528460208386010111156200a7b857600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156200a7eb57600080fd5b83356001600160401b038111156200a80257600080fd5b6200a810868287016200a779565b93505060208401356200a823816200a639565b915060408401356200a835816200a639565b809150509250925092565b60005b838110156200a85d5781810151838201526020016200a843565b50506000910152565b600081518084526200a8808160208601602086016200a840565b601f01601f19169290920160200192915050565b60008282518085526020808601955060208260051b8401016020860160005b848110156200a8e557601f198684030189526200a8d28383516200a866565b988401989250908301906001016200a8b3565b5090979650505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200a96757888303603f19018552815180516001600160a01b031684528701518784018790526200a953878501826200a894565b95880195935050908601906001016200a91b565b509098975050505050505050565b6001600160401b038516815263ffffffff841660208201528260408201526080606082015260006200892960808301846200a866565b600080604083850312156200a9bf57600080fd5b82356200a9cc816200a549565b915060208301356001600160f01b0319811681146200a5a557600080fd5b600080600080600080600060c0888a0312156200aa0657600080fd5b87356200aa13816200a549565b965060208801356200aa25816200a55c565b955060408801356001600160401b03808211156200aa4257600080fd5b6200aa508b838c016200a779565b965060608a0135955060808a013591506200aa6b826200a55c565b90935060a089013590808211156200aa8257600080fd5b506200aa918a828b016200a5b0565b989b979a50959850939692959293505050565b61ffff811681146200618257600080fd5b6000602082840312156200aac857600080fd5b813562002de6816200aaa4565b6000602082840312156200aae857600080fd5b5035919050565b600080600080608085870312156200ab0657600080fd5b84356200ab13816200a549565b9350602085013592506040850135915060608501356200ab33816200a55c565b939692955090935050565b600080604083850312156200ab5257600080fd5b82356200ab5f816200aaa4565b946020939093013593505050565b84151581528360208201528260408201526080606082015260006200892960808301846200a866565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b848110156200ac4057898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156200ac2a5783516001600160e01b0319168252928b019260019290920191908b01906200abfe565b50978a019795505050918701916001016200abc0565b50919998505050505050505050565b6001600160801b03811681146200618257600080fd5b600080600080608085870312156200ac7c57600080fd5b84356200ac89816200a549565b935060208501356200ac9b816200aaa4565b925060408501356200acad816200ac4f565b915060608501356200ab33816200ac4f565b6000806000604084860312156200acd557600080fd5b83356001600160401b038111156200acec57600080fd5b6200acfa868287016200a5b0565b909790965060209590950135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60ff851681526060602082015260006200ad566060830185876200ad0e565b905082604083015295945050505050565b60006001600160401b038211156200ad83576200ad836200a6db565b5060051b60200190565b600060208083850312156200ada157600080fd5b82356001600160401b038111156200adb857600080fd5b8301601f810185136200adca57600080fd5b80356200addb6200a79c826200ad67565b81815260059190911b820183019083810190878311156200adfb57600080fd5b928401925b8284101562008cc25783356200ae16816200a55c565b825292840192908401906200ae00565b60208152600062002de660208301846200a866565b6000806000606084860312156200ae5157600080fd5b83356001600160401b038111156200ae6857600080fd5b8401601f810186136200ae7a57600080fd5b803560206200ae8d6200a79c836200ad67565b82815260059290921b830181019181810190898411156200aead57600080fd5b938201935b838510156200aecd578435825293820193908201906200aeb2565b999188013598505060409096013595945050505050565b6020808252825182820181905260009190848201906040850190845b818110156200af1e578351835292840192918401916001016200af00565b50909695505050505050565b60208152600062002de660208301846200a894565b600080600080600060a086880312156200af5857600080fd5b85356200af65816200a549565b945060208601356200af77816200ac4f565b935060408601356200af89816200ac4f565b925060608601356200af9b816200ac4f565b915060808601356200afad816200ac4f565b809150509295509295909350565b6000806000806000608086880312156200afd457600080fd5b85356001600160401b03808211156200afec57600080fd5b6200affa89838a016200a5b0565b909750955060208801359150808211156200b01457600080fd5b506200b023888289016200a779565b9350506040860135915060608601356200afad816200a55c565b6000602082840312156200b05057600080fd5b813562002de6816200a55c565b600080604083850312156200b07157600080fd5b82356200ab5f816200a549565b80151581146200618257600080fd5b600080600080600060a086880312156200b0a657600080fd5b8535945060208601356200b0ba816200b07e565b935060408601356200af89816200b07e565b600080600080600060a086880312156200b0e557600080fd5b85356200b0f2816200a549565b945060208601356200af77816200aaa4565b6001600160401b03811681146200618257600080fd5b6000806000606084860312156200b13057600080fd5b83356200b13d816200b104565b925060208401356200b14f816200a549565b915060408401356001600160401b038111156200b16b57600080fd5b6200b179868287016200a779565b9150509250925092565b600080604083850312156200b19757600080fd5b82356200b1a4816200a639565b915060208301356001600160401b038111156200b1c057600080fd5b6200b1ce858286016200a779565b9150509250929050565b6000602082840312156200b1eb57600080fd5b813562002de6816200ac4f565b600080604083850312156200b20c57600080fd5b50508035926020909101359150565b6000806000606084860312156200b23157600080fd5b83356200b23e816200a549565b925060208401356200b250816200aaa4565b915060408401356200a835816200ac4f565b6000806000604084860312156200b27857600080fd5b83356001600160401b03808211156200b29057600080fd5b6200b29e878388016200a5b0565b909550935060208601359150808211156200b2b857600080fd5b506200b179868287016200a779565b600080600080608085870312156200b2de57600080fd5b84356200b2eb816200a55c565b935060208501356200b2fd816200a55c565b92506040850135915060608501356001600160401b038111156200b32057600080fd5b6200b32e878288016200a779565b91505092959194509250565b600080600080600060a086880312156200b35357600080fd5b8535945060208601356001600160401b038111156200b37157600080fd5b6200b37f888289016200a779565b94505060408601356200af89816200ac4f565b600080600080604085870312156200b3a957600080fd5b84356001600160401b03808211156200b3c157600080fd5b6200b3cf888389016200a5b0565b909650945060208701359150808211156200b3e957600080fd5b506200b3f8878288016200a5b0565b95989497509550505050565b6000602082840312156200b41757600080fd5b815162002de6816200b07e565b80516001600160e01b031981168114620058fc57600080fd5b8051620058fc816200b104565b600080604083850312156200b45e57600080fd5b6200b469836200b424565b915060208301516200a5a5816200b104565b600080604083850312156200b48f57600080fd5b82516200b49c816200a55c565b60208401519092506200a5a5816200b07e565b8051620058fc816200a639565b6000806000606084860312156200b4d257600080fd5b83516200b4df816200b104565b60208501519093506200b4f2816200a639565b60408501519092506200a835816200a639565b600082601f8301126200b51757600080fd5b81516200b5286200a79c826200a74f565b8181528460208386010111156200b53e57600080fd5b6200a1ba8260208301602087016200a840565b6000602082840312156200b56457600080fd5b81516001600160401b038111156200b57b57600080fd5b6200a1ba848285016200b505565b600082601f8301126200b59b57600080fd5b815160206200b5ae6200a79c836200ad67565b8083825260208201915060208460051b8701019350868411156200b5d157600080fd5b602086015b848110156200b5fa5780516200b5ec816200a55c565b83529183019183016200b5d6565b509695505050505050565b6000602082840312156200b61857600080fd5b81516001600160401b03808211156200b63057600080fd5b9083019060c082860312156200b64557600080fd5b6200b64f6200a6f1565b6200b65a836200b43d565b81526200b66a602084016200b4af565b60208201526200b67d604084016200b4af565b60408201526200b690606084016200b4af565b60608201526080830151828111156200b6a857600080fd5b6200b6b6878286016200b589565b60808301525060a0830151828111156200b6cf57600080fd5b6200b6dd878286016200b589565b60a08301525095945050505050565b634e487b7160e01b600052603260045260246000fd5b8183823760009101908152919050565b6060815260006200b72760608301866200a866565b905083602083015260ff83166040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200424b576200424b6200b740565b63ffffffff851681526001600160a01b03841660208201526080604082018190526000906200b79e908301856200a866565b905082606083015295945050505050565b6000602082840312156200b7c257600080fd5b5051919050565b6000806000606084860312156200b7df57600080fd5b83516200b7ec816200a639565b602085015160409095015190969495509392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200a96757888303603f190185528151805163ffffffff168452878101516001600160a01b0316888501528681015160a0888601819052906200b876828701826200a866565b9150506060808301518187015250608080830151925085820381870152506200b8a081836200a866565b9689019694505050908601906001016200b82c565b6040815260006200b8ca60408301856200a866565b90508260208301529392505050565b6020815260006200a1ba6020830184866200ad0e565b60ff81811683821601908111156200424b576200424b6200b740565b6000602082840312156200b91e57600080fd5b815162002de6816200a55c565b634e487b7160e01b600052602160045260246000fd5b600060018060a01b038089168352808816602084015260c060408401526200b96d60c08401886200a67f565b8187166060850152818616608085015283810360a08501526200b99181866200a67f565b9a9950505050505050505050565b60ff8716815260c0602082015260006200b9bd60c08301886200a67f565b6001600160a01b038716604084015282810360608401526200b9e081876200a67f565b90506001600160401b038516608084015282810360a08401526200ba0581856200a67f565b9998505050505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200a96757603f19898403810186528251805163ffffffff16855288015188850188905280516001600160401b0316888601528089015160ff9081166060808801919091528983015182166080808901919091529083015190911660a0808801919091529082015160c080880152906200babe6101008801836200a67f565b920151868303840160e08801529190506200bada81836200a67f565b978a01979550505091870191506001016200ba3b565b602080825282518282018190526000919060409081850190868401855b828110156200bb54578151805163ffffffff9081168652908701518051909116878601528601516001600160a01b031685850152606090930192908501906001016200bb0d565b5091979650505050505050565b6000602082840312156200bb7457600080fd5b815162002de6816200ac4f565b6001600160801b038181168382160280821691908281146200bba7576200bba76200b740565b505092915050565b602080825282518282018190526000919060409081850190868401855b828110156200bb54578151805163ffffffff90811686529087015180516001600160801b031688870152808801516001600160401b031687870152860151166060850152608090930192908501906001016200bbcc565b600060ff821660ff81036200bc3c576200bc3c6200b740565b60010192915050565b602080825282518282018190526000919060409081850190868401855b828110156200bb54578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016200bc62565b602080825282518282018190526000919060409081850190868401855b828110156200bb54578151805163ffffffff168552868101516001600160401b0316878601528581015161ffff16868601526060908101516001600160801b031690850152608090930192908501906001016200bcf4565b60ff82811682821603908111156200424b576200424b6200b740565b600181811c908216806200bd7d57607f821691505b6020821081036200bd9e57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200a96757888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526200be10818601836200a866565b9689019694505050908601906001016200bdcd565b6001600160a01b038881168252871660208201526040810186905261ffff8516606082015260c0608082018190526000906200be6590830185876200ad0e565b82810360a08401526200b99181856200a866565b63ffffffff815116825260208101516020830152604081015160408301526000606082015160c060608501526200beb460c08501826200a866565b9050608083015184820360808601526200becf82826200a866565b91505060a083015184820360a086015262009a4882826200a866565b6040815260006200bf0060408301856200be79565b905082151560208301529392505050565b6000604082840312156200bf2457600080fd5b604051604081018181106001600160401b03821117156200bf49576200bf496200a6db565b604052825181526020928301519281019290925250919050565b6000604082840312156200bf7657600080fd5b62002de683836200bf11565b80820281158282048414176200424b576200424b6200b740565b818103818111156200424b576200424b6200b740565b6000816200bfc4576200bfc46200b740565b506000190190565b6040815260006200bfe160408301856200a866565b828103602084015262009a4881856200a866565b6080815260006200c00a60808301876200a866565b82810360208401526200c01e81876200a866565b604084019590955250506001600160a01b039190911660609091015292915050565b6000602082840312156200c05357600080fd5b815162002de6816200a549565b6080815260006200c07560808301866200be79565b8451602084810191909152909401516040830152506001600160a01b0391909116606090910152919050565b6000608082840312156200c0b457600080fd5b604051606081018181106001600160401b03821117156200c0d9576200c0d96200a6db565b6040528251815260208301516200c0f0816200b104565b60208201526200c10484604085016200bf11565b60408201529392505050565b63ffffffff88168152600060018060a01b03808916602084015260c060408401526200c14060c08401896200a866565b876060850152818716608085015283810360a08501526200c1638186886200ad0e565b9b9a5050505050505050505050565b6001600160e01b03198316815281516000906200c1978160048501602087016200a840565b919091016004019392505050565b600082516200c1b98184602087016200a840565b9190910192915050565b60208152600062002de660208301846200be79565b600080604083850312156200c1ec57600080fd5b82516001600160401b03808211156200c20457600080fd5b6200c212868387016200b505565b935060208501519150808211156200c22957600080fd5b506200b1ce858286016200b505565b63ffffffff8416815261ffff8316602082015260606040820152600062009a4860608301846200a866565b600080600080608085870312156200c27a57600080fd5b84516200c287816200b07e565b80945050602085015192506040850151915060608501516001600160401b038111156200c2b357600080fd5b6200b32e878288016200b505565b828152600082516200c2db8160208501602087016200a840565b919091016020019392505050565b600080600080608085870312156200c30057600080fd5b84516200c30d816200b104565b60208601519094506200c320816200a549565b6040860151606087015191945092506001600160401b038111156200c2b357600080fd5b63ffffffff87168152600060018060a01b03808816602084015260c060408401526200c37460c08401886200a866565b866060850152818616608085015283810360a08501526200b99181866200a866565b63ffffffff8751168152602087015160208201526001600160401b03604088015116604082015260018060a01b038616606082015284608082015260e060a082015260006200c3ea60e0830185876200ad0e565b82810360c08401526200ba0581856200a866565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009062008929908301846200a866565b6000602082840312156200c44657600080fd5b62002de6826200b424565b601f82111562000ee8576000816000526020600020601f850160051c810160208610156200c47c5750805b601f850160051c820191505b8181101562007340578281556001016200c488565b6001600160401b038311156200c4b7576200c4b76200a6db565b6200c4cf836200c4c883546200bd68565b836200c451565b6000601f8411600181146200c50657600085156200c4ed5750838201355b600019600387901b1c1916600186901b1783556200784d565b600083815260209020601f19861690835b828110156200c53957868501358255602094850194600190920191016200c517565b50868210156200c5575760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6040815260006200c59460408301600a8152690808080808081319599d60b21b602082015260400190565b905082602083015292915050565b6040815260006200c59460408301600a8152690808080808149a59da1d60b21b602082015260400190565b6080815260006200c5e260808301876200a866565b82810360208401526200c5f681876200a866565b6001600160a01b03958616604085015293909416606090920191909152509392505050565b6000600182016200c630576200c6306200b740565b5060010190565b600080858511156200c64857600080fd5b838611156200c65657600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156200bba75760049490940360031b84901b1690921692915050565b600083516200c6a68184602088016200a840565b8351908301906200c6bc8183602088016200a840565b01949350505050565b6001600160c01b031981358181169160088510156200bba75760089490940360031b84901b1690921692915050565b803560208310156200424b57600019602084900360031b1b1692915050565b6000806000606084860312156200c72957600080fd5b83516200c736816200aaa4565b60208501519093506200c749816200ac4f565b60408501519092506200a835816200ac4f565b600063ffffffff8083168181036200c778576200c7786200b740565b6001019392505050565b6040815260006200c7ad60408301600a8152690808080808081319599d60b21b602082015260400190565b6001600160a01b0393909316602092909201919091525090565b6040815260006200c7ad60408301600a8152690808080808149a59da1d60b21b602082015260400190565b600080604083850312156200c80657600080fd5b82516200c813816200ac4f565b6020939093015192949293505050565b6040815260006200c84e60408301600a8152690808080808081319599d60b21b602082015260400190565b82810360208401526200a1ba81856200a866565b6040815260006200c84e60408301600a8152690808080808149a59da1d60b21b602082015260400190565b60c084901b6001600160c01b031916815260e083901b6001600160e01b031916600882015281516000906200c8ca81600c8501602087016200a840565b91909101600c01949350505050565b600080604083850312156200c8ed57600080fd5b82516200c8fa816200ac4f565b60208401519092506200a5a5816200ac4f565b6000806000606084860312156200c92357600080fd5b83516200c930816200a639565b60208501519093506001600160401b038111156200c94d57600080fd5b6200c95b868287016200b505565b925050604084015190509250925092565b6001600160f01b031981358181169160028510156200bba75760029490940360031b84901b1690921692915050565b6001600160801b031981358181169160108510156200bba75760109490940360031b84901b1690921692915050565b61ffff8181168382160190808211156200480757620048076200b740565b600086516200c9fc818460208b016200a840565b6001600160f81b031960f888811b82169285019283526001600160f01b031960f089901b16600184015286901b16600382015283516200ca448160048401602088016200a840565b01600401979650505050505050565b63ffffffff8281168282160390808211156200480757620048076200b74056fe60c06040526001600d553480156200001657600080fd5b50604051620055c1380380620055c18339810160408190526200003991620002cd565b81816001600160a01b0381166200006b57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200007681620000cd565b5063ffffffff166080526040516200008e90620002bf565b604051809103906000f080158015620000ab573d6000803e3d6000fd5b506001600160a01b031660a0819052620000c5906200011d565b50506200034a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001276200028e565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019991906200031f565b620001b75760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620001f25760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910160405180910390a150565b6000546001600160a01b03163314620002bd5760405163118cdaa760e01b815233600482015260240162000062565b565b6101e380620053de83390190565b60008060408385031215620002e157600080fd5b825163ffffffff81168114620002f657600080fd5b60208401519092506001600160a01b03811681146200031457600080fd5b809150509250929050565b6000602082840312156200033257600080fd5b815180151581146200034357600080fd5b9392505050565b60805160a05161504b6200039360003960006107810152600081816105310152818161278901528181612f7b01528181612fe20152818161355301526135ba015261504b6000f3fe6080604052600436106103505760003560e01c80639132e5c3116101c6578063c9fc7bcd116100f7578063ddc28c5811610095578063e8964e811161006f578063e8964e8114610b8f578063ef667aa114610baf578063f2fde38b14610bfa578063f64be4c714610c1a57600080fd5b8063ddc28c5814610b2e578063e1758bd814610b5b578063e4fe1d9414610b6f57600080fd5b8063d4b4ec8f116100d1578063d4b4ec8f14610a72578063d70b890214610a92578063dc706a6214610ab2578063dc93c8a214610ae257600080fd5b8063c9fc7bcd146109f6578063ca5eb5e114610a3d578063cb5026b914610a5d57600080fd5b8063a7229fd911610164578063aafea3121161013e578063aafea31214610976578063b96a277f14610996578063c28e0eed146109b6578063c9a54a99146109d657600080fd5b8063a7229fd914610916578063a825d74714610936578063aafe5e071461095657600080fd5b80639c6d7340116101a05780639c6d73401461086f5780639d7f9775146108b6578063a0dd43fc146108d6578063a718531b146108f657600080fd5b80639132e5c31461081a57806391d20fa11461083c5780639535ff301461084f57600080fd5b80635b17bb70116102a05780636f50a8031161023e57806379624ca91161021857806379624ca9146107a35780637cb59012146107bc578063861e1ca5146107dc5780638da5cb5b146107fc57600080fd5b80636f50a80314610724578063715018a61461075a578063733180911461076f57600080fd5b80636a14d7151161027a5780636a14d715146106655780636bf73fa3146106855780636dbd9f90146106a55780636e83f5bb146106c557600080fd5b80635b17bb70146105b65780636750cd4c14610615578063697fe6b61461064557600080fd5b80632baf0be71161030d578063402f8468116102e7578063402f8468146104c057806340f80683146104ff578063416ecebf1461051f578063587cde1e1461056857600080fd5b80632baf0be7146104355780632e80fbf31461045957806335d330b01461047957600080fd5b80630c0c389e1461035557806314f651a91461036a578063183c834f146103a85780632637a450146103c85780632a56c1b0146103e85780632b3197b914610408575b600080fd5b610368610363366004613ef7565b610c50565b005b34801561037657600080fd5b5061037f610d4e565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103b457600080fd5b506103686103c3366004613fa6565b610d80565b6103db6103d6366004613ff1565b611027565b60405161039f9190614043565b3480156103f457600080fd5b50610368610403366004614085565b61114d565b34801561041457600080fd5b506104286104233660046140f4565b6111ed565b60405161039f9190614198565b34801561044157600080fd5b5061044b60001981565b60405190815260200161039f565b34801561046557600080fd5b506103686104743660046141c2565b6112b8565b34801561048557600080fd5b5061044b610494366004614229565b600c60209081526000948552604080862082529385528385208152918452828420909152825290205481565b3480156104cc57600080fd5b506104e06104db36600461426b565b611427565b604080516001600160a01b03909316835290151560208301520161039f565b34801561050b57600080fd5b5061036861051a3660046141c2565b6114a5565b34801561052b57600080fd5b506105537f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161039f565b34801561057457600080fd5b5061059e610583366004614295565b600f602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161039f565b3480156105c257600080fd5b506105fd6105d13660046142b0565b60016020908152600093845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161039f565b34801561062157600080fd5b506106356106303660046142ec565b61160b565b604051901515815260200161039f565b34801561065157600080fd5b50610368610660366004614307565b61165b565b34801561067157600080fd5b50610368610680366004613fa6565b6116d0565b34801561069157600080fd5b506103686106a0366004614402565b611aae565b3480156106b157600080fd5b506103686106c03660046144e5565b611b18565b3480156106d157600080fd5b506107056106e03660046142ec565b600b60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161039f565b34801561073057600080fd5b5061059e61073f3660046142ec565b600a602052600090815260409020546001600160a01b031681565b34801561076657600080fd5b50610368611bba565b34801561077b57600080fd5b5061059e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107af57600080fd5b50600d5460011415610635565b3480156107c857600080fd5b506103686107d7366004614575565b611bce565b3480156107e857600080fd5b506106356107f73660046145c6565b611cba565b34801561080857600080fd5b506000546001600160a01b031661059e565b34801561082657600080fd5b5061082f611d26565b60405161039f91906145f1565b61036861084a36600461463e565b611d88565b34801561085b57600080fd5b5061036861086a3660046146e8565b611f18565b34801561087b57600080fd5b506105fd61088a3660046142b0565b60036020908152600093845260408085208252928452828420905282529020546001600160401b031681565b3480156108c257600080fd5b506106356108d13660046146e8565b61217c565b3480156108e257600080fd5b506105fd6108f13660046142b0565b612256565b34801561090257600080fd5b5061036861091136600461472b565b6122b6565b34801561092257600080fd5b50610368610931366004614757565b6125d6565b34801561094257600080fd5b50610368610951366004614775565b6125ee565b34801561096257600080fd5b5061044b6109713660046142b0565b612739565b34801561098257600080fd5b506103686109913660046147b2565b6127b9565b3480156109a257600080fd5b5061059e6109b136600461426b565b6129e2565b3480156109c257600080fd5b506103686109d1366004614295565b612a51565b3480156109e257600080fd5b506106356109f13660046145c6565b612aae565b348015610a0257600080fd5b5061044b610a113660046147ce565b600260209081526000948552604080862082529385528385208152918452828420909152825290205481565b348015610a4957600080fd5b50610368610a58366004614295565b612b13565b348015610a6957600080fd5b5061044b600081565b348015610a7e57600080fd5b50610368610a8d36600461472b565b612b73565b348015610a9e57600080fd5b50610368610aad3660046147ce565b612db1565b348015610abe57600080fd5b50610635610acd366004614295565b60056020526000908152604090205460ff1681565b348015610aee57600080fd5b50610635610afd36600461426b565b6001600160a01b03918216600090815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610b3a57600080fd5b50610b4e610b49366004613ff1565b612ea0565b60405161039f9190614810565b348015610b6757600080fd5b50600061059e565b348015610b7b57600080fd5b50600e5461059e906001600160a01b031681565b348015610b9b57600080fd5b50610368610baa366004614295565b61310c565b348015610bbb57600080fd5b50610705610bca36600461426b565b6008602090815260009283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610c0657600080fd5b50610368610c15366004614295565b613270565b348015610c2657600080fd5b5061059e610c353660046142ec565b6009602052600090815260409020546001600160a01b031681565b610c9f86610c6160208a018a6142ec565b60208a0135610c7660608c0160408d01614827565b898989604051602001610c8b93929190614842565b6040516020818303038152906040526132ae565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610cda908b908a908a908a9033908b908b906004016148be565b6000604051808303818588803b158015610cf357600080fd5b505af1158015610d07573d6000803e3d6000fd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d3d929190614915565b60405180910390a150505050505050565b600080610d5e600d546001141590565b610d6a57600080610d78565b610d78600d5460a081901c91565b915091509091565b6001600160a01b038216600090815260056020526040902054829060ff16610dbb57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e5e576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f9190614951565b6002811115610e4057610e4061493b565b03610e5e576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610efa576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190614980565b610efa57604051630e476aa960e21b815260040160405180910390fd5b610f0388613469565b6000610f0f8989611427565b9150508015610f3157604051633c075f7560e01b815260040160405180910390fd5b85600003610f79576001600160a01b038916600090815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610fdf565b438611610f99576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b03898116600090815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051611014949392919061499d565b60405180910390a1505050505050505050565b61102f613e40565b61103c60208401846142ec565b336001600d54146110605760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561108e908601608087016149cd565b80156110a35750600e546001600160a01b0316155b156110c157604051632d7b695560e11b815260040160405180910390fd5b6000806110ce33886134ba565b9150915060006110db3490565b905060006110f76110f260a08b0160808c016149cd565b613766565b905061110884604001518383613802565b600e5460408501516020015161112a916001600160a01b03169083868c613850565b60408401515161113c9083858b61387d565b50506001600d555095945050505050565b61115685613469565b600083838360405160200161116d93929190614842565b60408051601f1981840301815291905290506111ab8661119060208801886142ec565b60208801356111a560608a0160408b01614827565b856132ae565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111dd929190614915565b60405180910390a1505050505050565b6001600160a01b038316600090815260056020526040902054606090849060ff1661122b57604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf790606401600060405180830381865afa158015611286573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ae9190810190614a7d565b9695505050505050565b6112c185613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461133357604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b039081169084161180159061137f575080155b156113a857604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190206000199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb55292906111dd90879087908a9088908890614ab1565b6001600160a01b03808316600090815260076020908152604080832063ffffffff86168452909152812054909116908161149e5763ffffffff83166000908152600a60205260409020546001600160a01b031691508161149a57604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b6114ae85613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461151b57604051637182306f60e01b8152600481018290526024810183905260440161132a565b80158061156557506001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561158e57604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e906111dd90879087908a9088908890614ab1565b63ffffffff81166000908152600960205260408120546001600160a01b031615801590611655575063ffffffff82166000908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116ba9a99989796959493929190614aee565b60405180910390a4505050505050505050505050565b6001600160a01b038216600090815260056020526040902054829060ff1615801561170357506001600160a01b03811615155b156117215760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b038116156117c4576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117959190614951565b60028111156117a6576117a661493b565b036117c4576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615611860576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190614980565b61186057604051630e476aa960e21b815260040160405180910390fd5b61186988613469565b6001600160a01b03808916600090815260076020908152604080832063ffffffff8c168452909152902054811690871681036118b85760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03898116600081815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a18515611a32576001600160a01b038116158061195b57506001600160a01b038716155b1561197957604051633c075f7560e01b815260040160405180910390fd5b60006040518060400160405280836001600160a01b0316815260200188436119a19190614b6d565b90526001600160a01b038b8116600090815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611a24918d918d91879161499d565b60405180910390a150611aa3565b6001600160a01b038916600090815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611014918c918c9186919061499d565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611b039a99989796959493929190614b80565b60405180910390a35050505050505050505050565b6001600160a01b038316600090815260056020526040902054839060ff16611b5357604051631bc58ef360e11b815260040160405180910390fd5b611b5c85613469565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b8c90889087908790600401614bdf565b600060405180830381600087803b158015611ba657600080fd5b505af1158015611aa3573d6000803e3d6000fd5b611bc26138a7565b611bcc60006138d4565b565b336000908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611c2457604051630542086560e21b815260040160405180910390fd5b8181604051611c34929190614cd2565b60408051918290038220336000818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611cab919088908890889088908890614ce2565b60405180910390a15050505050565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590611cea908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613924565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050505050905090565b6001600160a01b038089166000908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611dd39087908790614cd2565b60405180910390209050808214611e07576040516335ca595f60e01b8152600481018390526024810182905260440161132a565b6001600160a01b03808b166000908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611e76908e908d908c908c9033908d908d90600401614d2c565b6000604051808303818588803b158015611e8f57600080fd5b505af1158015611ea3573d6000803e3d6000fd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611f0494939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b038116600090815260056020526040902054819060ff16158015611f4b57506001600160a01b03811615155b15611f695760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b0381161561200c576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdd9190614951565b6002811115611fee57611fee61493b565b0361200c57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b038216156120a8576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190614980565b6120a857604051630e476aa960e21b815260040160405180910390fd5b6120b187613469565b6001600160a01b03878116600090815260066020908152604080832063ffffffff8b1684529091529020548187169116036120ff5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03878116600081815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d3d565b600080600061218b8686611427565b91509150816001600160a01b0316846001600160a01b0316036121b357600192505050611d1f565b6000816121e8576001600160a01b038716600090815260086020908152604080832063ffffffff8a16845290915290206121fe565b63ffffffff86166000908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156122385750438160200151115b156122495760019350505050611d1f565b5060009695505050505050565b6001600160a01b038316600090815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b6122a1858585846001016139a8565b156122ae57600101612292565b949350505050565b6122be6138a7565b6001600160a01b038216600090815260056020526040902054829060ff166122f957604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b0381161561239c576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236d9190614951565b600281111561237e5761237e61493b565b0361239c576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612438576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156123f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241b9190614980565b61243857604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87166000908152600a60205260409020546001600160a01b03908116908716810361247b5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88166000818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156125695763ffffffff88166000908152600b6020526040902080546001600160a01b0319166001600160a01b0383161781556125228743614b6d565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89161255b918c918691614d7f565b60405180910390a1506125cc565b63ffffffff88166000908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916125c3918b918591614d7f565b60405180910390a15b5050505050505050565b6125de6138a7565b6125e98383836139f5565b505050565b612605826125ff60208601866142ec565b3361217c565b612622576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040822090829061264b908701876142ec565b63ffffffff168152602080820192909252604090810160009081208784013582529092529020546001600160401b03169050612688848483613924565b6126a55760405163751cb20f60e01b815260040160405180910390fd5b6126b0848483613a18565b6126cc5760405162bbf0e560e11b815260040160405180910390fd5b6126f8836126dd60208701876142ec565b60208701356126f26060890160408a01614827565b86613ad5565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161272b93929190614da6565b60405180910390a150505050565b6001600160a01b038316600090815260036020908152604080832063ffffffff8616845282528083208484529091528120548190612781906001600160401b03166001614dce565b90506127b0817f0000000000000000000000000000000000000000000000000000000000000000878787613b3b565b95945050505050565b6127c16138a7565b6001600160a01b038116600090815260056020526040902054819060ff166127fc57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b0381161561289f576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561284c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128709190614951565b60028111156128815761288161493b565b0361289f57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561293b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156128fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291e9190614980565b61293b57604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86166000908152600960205260409020546001600160a01b0380871691160361297c5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff861660008181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f591016111dd565b6001600160a01b03808316600090815260066020908152604080832063ffffffff861684529091529020541680611655575063ffffffff81166000908152600960205260409020546001600160a01b03168061165557604051636c1ccdb560e01b815260040160405180910390fd5b612a596138a7565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590612ade908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613a18565b336000818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d79839819101612aa3565b6001600160a01b038216600090815260056020526040902054829060ff16612bae57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612c51576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c229190614951565b6002811115612c3357612c3361493b565b03612c51576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612ced576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd09190614980565b612ced57604051630e476aa960e21b815260040160405180910390fd5b612cf56138a7565b84600003612d295763ffffffff87166000908152600b6020526040812080546001600160a01b031916815560010155612d7e565b438511612d49576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87166000908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610d3d93929190614d7f565b612dba84613469565b612dc5848484612256565b612dd0906001614dce565b6001600160401b0316816001600160401b031614612e0c57604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001600160a01b038416600081815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161272b565b6040805180820190915260008082526020820152612ec460a08401608085016149cd565b8015612ed95750600e546001600160a01b0316155b15612ef757604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b03821660009081526003602090815260408220908290612f20908701876142ec565b63ffffffff16815260208082019290925260409081016000908120878401358252909252902054612f5b906001600160401b03166001614dce565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001866000016020810190612fc791906142ec565b63ffffffff1681526020018660200135815260200161301f847f0000000000000000000000000000000000000000000000000000000000000000888a600001602081019061301591906142ec565b8b60200135613b3b565b81526020016130316040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061307e9050856109b160208901896142ec565b90506001600160a01b03811663d80e9bd98361309d60608a018a614dee565b6130ad60a08c0160808d016149cd565b6040518563ffffffff1660e01b81526004016130cc9493929190614e34565b6040805180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190614f28565b6131146138a7565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561315f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131839190614980565b6131a05760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156131da5760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af59101612aa3565b6132786138a7565b6001600160a01b0381166132a257604051631e4fbdf760e01b81526000600482015260240161132a565b6132ab816138d4565b50565b6001600160a01b038516600090815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b0390811690841681101561339c57600181015b846001600160401b0316816001600160401b03161161334f5761331f888888846139a8565b61334757604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001016132fa565b506001600160a01b038716600090815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b038916600090815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461341657604051637182306f60e01b8152600481018290526024810184905260440161132a565b50506001600160a01b03909516600090815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b0382161480159061349c57506001600160a01b038181166000908152600f6020526040902054163314155b156132ab5760405163c4c5259360e01b815260040160405180910390fd5b6134c2613e40565b600080613533856134d660208701876142ec565b6001600160a01b0391909116600090815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b0316815260200186600001602081019061359f91906142ec565b63ffffffff168152602001866020013581526020016135ed847f00000000000000000000000000000000000000000000000000000000000000008a8a600001602081019061301591906142ec565b81526020016135ff6040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061364c9050876109b160208901896142ec565b90506000806001600160a01b038316634389e58f8561366e60608c018c614dee565b61367e60a08e0160808f016149cd565b6040518563ffffffff1660e01b815260040161369d9493929190614e34565b6000604051808303816000875af11580156136bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136e49190810190614f44565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161371860608b018b614dee565b866040516137299493929190614f92565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b600081156137fd57600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156137b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137da9190614fd2565b9050806000036137fd57604051631775123760e01b815260040160405180910390fd5b919050565b82518210806138145750808360200151115b156125e95782516020840151604051634f3ec0d360e01b815260048101929092526024820184905260448201526064810182905260840161132a565b831561386157613861858386613bb4565b82841015613876576138768582868603613bb4565b5050505050565b831561388d5761388d8285613bef565b828410156138a1576138a181858503613bef565b50505050565b6000546001600160a01b03163314611bcc5760405163118cdaa760e01b815233600482015260240161132a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080826001600160401b031611806122ae5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d90613967908790600401614feb565b602060405180830381865afa158015613984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ae9190614980565b6001600160a01b038416600090815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b038316613a0d576125e98282613bef565b6125e9838383613bb4565b60006001600160401b038216613a346060860160408701614827565b6001600160401b031611806122ae57506001600160a01b03831660009081526002602090815260408220908290613a6d908801886142ec565b63ffffffff1663ffffffff1681526020019081526020016000206000866020013581526020019081526020016000206000866040016020810190613ab19190614827565b6001600160401b031681526020810191909152604001600020541415949350505050565b80613af3576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b03909416600090815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b600085856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b6001600160a01b038216613bdb576040516306b7a93160e41b815260040160405180910390fd5b6125e96001600160a01b0384168383613c9c565b6001600160a01b038216613c16576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613c63576040519150601f19603f3d011682016040523d82523d6000602084013e613c68565b606091505b50509050806125e957604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161132a565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b1790526125e991859190600090613cfa90841683613d48565b90508051600014158015613d1f575080806020019051810190613d1d9190614980565b155b156125e957604051635274afe760e01b81526001600160a01b038416600482015260240161132a565b6060611d1f8383600084600080856001600160a01b03168486604051613d6e9190614ff9565b60006040518083038185875af1925050503d8060008114613dab576040519150601f19603f3d011682016040523d82523d6000602084013e613db0565b606091505b50915091506112ae868383606082613dd057613dcb82613e17565b611d1f565b8151158015613de757506001600160a01b0384163b155b15613e1057604051639996b31560e01b81526001600160a01b038516600482015260240161132a565b5080611d1f565b805115613e275780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001613e82604051806040016040528060008152602001600081525090565b905290565b600060608284031215613e9957600080fd5b50919050565b80356001600160a01b03811681146137fd57600080fd5b60008083601f840112613ec857600080fd5b5081356001600160401b03811115613edf57600080fd5b60208301915083602082850101111561149e57600080fd5b600080600080600080600060e0888a031215613f1257600080fd5b613f1c8989613e87565b9650613f2a60608901613e9f565b95506080880135945060a08801356001600160401b0380821115613f4d57600080fd5b613f598b838c01613eb6565b909650945060c08a0135915080821115613f7257600080fd5b50613f7f8a828b01613eb6565b989b979a50959850939692959293505050565b803563ffffffff811681146137fd57600080fd5b60008060008060808587031215613fbc57600080fd5b613fc585613e9f565b9350613fd360208601613f92565b9250613fe160408601613e9f565b9396929550929360600135925050565b6000806040838503121561400457600080fd5b82356001600160401b0381111561401a57600080fd5b830160a0818603121561402c57600080fd5b915061403a60208401613e9f565b90509250929050565b6000608082019050825182526001600160401b036020840151166020830152604083015161407e604084018280518252602090810151910152565b5092915050565b600080600080600060c0868803121561409d57600080fd5b6140a686613e9f565b94506140b58760208801613e87565b93506080860135925060a08601356001600160401b038111156140d757600080fd5b6140e388828901613eb6565b969995985093965092949392505050565b6000806000806080858703121561410a57600080fd5b61411385613e9f565b935061412160208601613e9f565b925061412f60408601613f92565b915061413d60608601613f92565b905092959194509250565b60005b8381101561416357818101518382015260200161414b565b50506000910152565b60008151808452614184816020860160208601614148565b601f01601f19169290920160200192915050565b602081526000611d1f602083018461416c565b80356001600160401b03811681146137fd57600080fd5b600080600080600060a086880312156141da57600080fd5b6141e386613e9f565b94506141f160208701613f92565b935060408601359250614206606087016141ab565b949793965091946080013592915050565b803561ffff811681146137fd57600080fd5b6000806000806080858703121561423f57600080fd5b61424885613e9f565b935061425660208601613e9f565b92506040850135915061413d60608601614217565b6000806040838503121561427e57600080fd5b61428783613e9f565b915061403a60208401613f92565b6000602082840312156142a757600080fd5b611d1f82613e9f565b6000806000606084860312156142c557600080fd5b6142ce84613e9f565b92506142dc60208501613f92565b9150604084013590509250925092565b6000602082840312156142fe57600080fd5b611d1f82613f92565b6000806000806000806000806000806000806101208d8f03121561432a57600080fd5b6143338d613e9f565b9b5061434160208e01613e9f565b9a5060408d0135995061435660608e01614217565b985060808d0135975060a08d013596506001600160401b0360c08e0135111561437e57600080fd5b61438e8e60c08f01358f01613eb6565b90965094506001600160401b0360e08e013511156143ab57600080fd5b6143bb8e60e08f01358f01613eb6565b90945092506001600160401b036101008e013511156143d957600080fd5b6143ea8e6101008f01358f01613eb6565b81935080925050509295989b509295989b509295989b565b60008060008060008060008060008060006101408c8e03121561442457600080fd5b61442e8d8d613e87565b9a5061443c60608d01613e9f565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e0135111561446c57600080fd5b61447c8e60e08f01358f01613eb6565b90975095506101008d013581101561449357600080fd5b6144a48e6101008f01358f01613eb6565b90955093506101208d01358110156144bb57600080fd5b506144cd8d6101208e01358e01613eb6565b81935080925050509295989b509295989b9093969950565b600080600080606085870312156144fb57600080fd5b61450485613e9f565b935061451260208601613e9f565b925060408501356001600160401b038082111561452e57600080fd5b818701915087601f83011261454257600080fd5b81358181111561455157600080fd5b8860208260051b850101111561456657600080fd5b95989497505060200194505050565b60008060008060006080868803121561458d57600080fd5b61459686613e9f565b9450602086013593506145ab60408701614217565b925060608601356001600160401b038111156140d757600080fd5b600080608083850312156145d957600080fd5b6145e38484613e87565b915061403a60608401613e9f565b6020808252825182820181905260009190848201906040850190845b818110156146325783516001600160a01b03168352928401929184019160010161460d565b50909695505050505050565b60008060008060008060008060c0898b03121561465a57600080fd5b61466389613e9f565b975061467160208a01613e9f565b96506040890135955061468660608a01614217565b945060808901356001600160401b03808211156146a257600080fd5b6146ae8c838d01613eb6565b909650945060a08b01359150808211156146c757600080fd5b506146d48b828c01613eb6565b999c989b5096995094979396929594505050565b6000806000606084860312156146fd57600080fd5b61470684613e9f565b925061471460208501613f92565b915061472260408501613e9f565b90509250925092565b60008060006060848603121561474057600080fd5b61474984613f92565b92506142dc60208501613e9f565b60008060006060848603121561476c57600080fd5b61474984613e9f565b600080600060a0848603121561478a57600080fd5b6147948585613e87565b92506147a260608501613e9f565b9150608084013590509250925092565b600080604083850312156147c557600080fd5b61402c83613f92565b600080600080608085870312156147e457600080fd5b6147ed85613e9f565b93506147fb60208601613f92565b92506040850135915061413d606086016141ab565b815181526020808301519082015260408101611655565b60006020828403121561483957600080fd5b611d1f826141ab565b838152818360208301376000910160200190815292915050565b63ffffffff61486a82613f92565b168252602081013560208301526001600160401b0361488b604083016141ab565b1660408301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6148c8818961485c565b86606082015260e0608082015260006148e560e083018789614895565b6001600160a01b03861660a084015282810360c0840152614907818587614895565b9a9950505050505050505050565b60808101614923828561485c565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561496357600080fd5b815160038110611d1f57600080fd5b80151581146132ab57600080fd5b60006020828403121561499257600080fd5b8151611d1f81614972565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b6000602082840312156149df57600080fd5b8135611d1f81614972565b634e487b7160e01b600052604160045260246000fd5b600082601f830112614a1157600080fd5b81516001600160401b0380821115614a2b57614a2b6149ea565b604051601f8301601f19908116603f01168101908282118183101715614a5357614a536149ea565b81604052838152866020858801011115614a6c57600080fd5b6112ae846020830160208901614148565b600060208284031215614a8f57600080fd5b81516001600160401b03811115614aa557600080fd5b6122ae84828501614a00565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201526000614b1e60e08301888a614895565b82810360a0840152614b31818789614895565b905082810360c0840152614b46818587614895565b9d9c50505050505050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561165557611655614b57565b6000610120614b8f838e61485c565b8b60608401528a60808401528960a08401528060c0840152614bb4818401898b614895565b905082810360e0840152614bc9818789614895565b9050828103610100840152614b46818587614895565b6001600160a01b03841681526040602080830182905282820184905260009190606090818501600587901b8601830188865b89811015614cc257888303605f190184528135368c9003605e19018112614c3757600080fd5b8b0163ffffffff80614c4883613f92565b16855280614c57888401613f92565b16878601525087810135601e19823603018112614c7357600080fd5b0185810190356001600160401b03811115614c8d57600080fd5b803603821315614c9c57600080fd5b8789860152614cae8886018284614895565b958701959450505090840190600101614c11565b50909a9950505050505050505050565b8183823760009101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a060808201819052600090614d209083018486614895565b98975050505050505050565b600060018060a01b03808a16835288602084015260a06040840152614d5560a08401888a614895565b81871660608501528381036080850152614d70818688614895565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614db4828661485c565b6001600160a01b0393909316606082015260800152919050565b6001600160401b0381811683821601908082111561407e5761407e614b57565b6000808335601e19843603018112614e0557600080fd5b8301803591506001600160401b03821115614e1f57600080fd5b60200191503681900382131561149e57600080fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a0830152850151600090614e8360c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614eb461014084018261416c565b90508281036020840152614ec9818688614895565b9150506127b0604083018415159052565b600060408284031215614eec57600080fd5b604051604081018181106001600160401b0382111715614f0e57614f0e6149ea565b604052825181526020928301519281019290925250919050565b600060408284031215614f3a57600080fd5b611d1f8383614eda565b60008060608385031215614f5757600080fd5b614f618484614eda565b915060408301516001600160401b03811115614f7c57600080fd5b614f8885828601614a00565b9150509250929050565b606081526000614fa5606083018761416c565b8281036020840152614fb8818688614895565b91505060018060a01b038316604083015295945050505050565b600060208284031215614fe457600080fd5b5051919050565b60608101611655828461485c565b6000825161500b818460208701614148565b919091019291505056fea264697066735822122060b78f73c9ab9c1651b5848f9a662a4d7443b5174845f63dab183c0e0ef4aa8b64736f6c63430008160033608060405234801561001057600080fd5b506101c3806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a7146100655780631881d94d1461008d57806354fd4d501461009c5780636750cd4c146100c3575b604051632657b6c360e01b815260040160405180910390fd5b61007861007336600461010e565b6100d7565b60405190151581526020015b60405180910390f35b6002604051610084919061013f565b6040805167ffffffffffffffff815260ff6020820152600291810191909152606001610084565b6100786100d1366004610167565b50600190565b60006001600160e01b031982166325fc096160e21b148061010857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561012057600080fd5b81356001600160e01b03198116811461013857600080fd5b9392505050565b602081016003831061016157634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561017957600080fd5b813563ffffffff8116811461013857600080fdfea26469706673582212201492a62cde195effaf02cad81258b16b83979b7f432c3fe0ca641db583822bb764736f6c63430008160033608060405234801561001057600080fd5b506040516114d63803806114d683398101604081905261002f9161010a565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e816100ba565b506001600160a01b03166000908152600260205260409020805460ff1916600190811790915580546001600160801b03191668056bc75e2d6310000017905560058054602f60801b6001600160801b039190911617905561013a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561011c57600080fd5b81516001600160a01b038116811461013357600080fd5b9392505050565b61138d806101496000396000f3fe6080604052600436106101405760003560e01c80638ca2fb08116100b6578063d350ad251161006f578063d350ad2514610441578063da26663a14610461578063dbbb415514610522578063e0ad121a14610542578063f2fde38b146105cb578063fd9be522146105eb57600080fd5b80638ca2fb08146103595780638da5cb5b1461039957806392807f58146103b7578063c1723a1d146103e9578063c1840327146103fc578063cd68b79b1461041a57600080fd5b80635d6d7ccb116101085780635d6d7ccb146102405780635e280f1114610260578063715018a6146102985780637bc3c9ab146102ad5780637dc438a4146102ea57806388a4124c1461030a57600080fd5b806311f2c343146101455780632f7cb0b41461017c5780633161b7f61461019e57806336a5beba146101be57806352a7251014610220575b600080fd5b34801561015157600080fd5b5061016961016036600461100d565b60009392505050565b6040519081526020015b60405180910390f35b34801561018857600080fd5b5061019c610197366004611057565b61060b565b005b3480156101aa57600080fd5b5061019c6101b9366004611079565b610632565b3480156101ca57600080fd5b506040805180820182526000808252602091820152815180830183526004546001600160401b03811680835263ffffffff600160401b909204821692840192835284519081529151169181019190915201610173565b34801561022c57600080fd5b5061019c61023b366004611104565b610773565b34801561024c57600080fd5b5061019c61025b366004611057565b6107a6565b34801561026c57600080fd5b50600654610280906001600160a01b031681565b6040516001600160a01b039091168152602001610173565b3480156102a457600080fd5b5061019c610819565b3480156102b957600080fd5b506102cd6102c8366004611152565b61082d565b604080519283526001600160801b03909116602083015201610173565b3480156102f657600080fd5b5061019c610305366004611170565b6108c8565b34801561031657600080fd5b5061032a61032536600461100d565b610989565b604080519485526001600160801b03938416602086015291831691840191909152166060820152608001610173565b34801561036557600080fd5b50610389610374366004611188565b60026020526000908152604090205460ff1681565b6040519015158152602001610173565b3480156103a557600080fd5b506000546001600160a01b0316610280565b3480156103c357600080fd5b506005546001600160801b03165b6040516001600160801b039091168152602001610173565b61032a6103f736600461100d565b6109ab565b34801561040857600080fd5b506001546001600160801b03166103d1565b34801561042657600080fd5b506005546103d190600160801b90046001600160801b031681565b34801561044d57600080fd5b5061019c61045c366004611057565b6109dc565b34801561046d57600080fd5b506104e861047c3660046111a3565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526003835283902083519182018452546001600160801b0381168252600160801b81046001600160401b031692820192909252600160c01b9091049092169082015290565b6040805182516001600160801b031681526020808401516001600160401b0316908201529181015163ffffffff1690820152606001610173565b34801561052e57600080fd5b5061019c61053d366004611188565b610a06565b34801561054e57600080fd5b506104e861055d3660046111be565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452600382529282902082519384018352546001600160801b03811684526001600160401b03600160801b82041691840191909152600160c01b900463ffffffff169082015290565b3480156105d757600080fd5b5061019c6105e6366004611188565b610a30565b3480156105f757600080fd5b5061019c6106063660046111d9565b610a6e565b610613610a84565b600580546001600160801b03928316600160801b029216919091179055565b336106456000546001600160a01b031690565b6001600160a01b031614610683573360009081526002602052604090205460ff166106835760405163320ae52960e01b815260040160405180910390fd5b60005b8181101561076e57368383838181106106a1576106a1611203565b60800291909101915061076590506106bc60208301836111a3565b6106ce36849003840160208501611230565b805160208083015160409384015184516060810186526001600160801b0394851681526001600160401b0392831681850190815263ffffffff9283168288019081529783166000908152600390955295909320925183549551965194166001600160c01b031990951694909417600160801b95909116949094029390931763ffffffff60c01b1916600160c01b9190921602179055565b50600101610686565b505050565b61077b610a84565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b336107b96000546001600160a01b031690565b6001600160a01b0316146107f7573360009081526002602052604090205460ff166107f75760405163320ae52960e01b815260040160405180910390fd5b600580546001600160801b0319166001600160801b0392909216919091179055565b610821610a84565b61082b6000610ab1565b565b6000808461ffff16606e148061084857508461ffff1661279f145b8061085857508461ffff16614eaf145b156108755761086c8561ffff168585610b01565b915091506108c0565b8461ffff16606f148061088d57508461ffff16612794145b8061089d57508461ffff16614ea4145b156108b15761086c8561ffff168585610c0e565b61086c8561ffff168585610d5e565b935093915050565b336108db6000546001600160a01b031690565b6001600160a01b031614610919573360009081526002602052604090205460ff166109195760405163320ae52960e01b815260040160405180910390fd5b6109296106bc60208301836111a3565b600061093b60a08301608084016112a9565b9050600061094f60c0840160a085016111a3565b6004805463ffffffff909216600160401b026bffffffffffffffffffffffff199092166001600160401b0390941693909317179091555050565b60008060008061099a878787610dfe565b935093509350935093509350935093565b6000808080806109bf565b60405180910390fd5b6109ca888888610dfe565b94509450945094505093509350935093565b6109e4610a84565b600180546001600160801b0319166001600160801b0392909216919091179055565b610a0e610a84565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a38610a84565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024016109b6565b610a6b81610ab1565b50565b610a76610a84565b610a808282610ecc565b5050565b6000546001600160a01b0316331461082b5760405163118cdaa760e01b81523360048201526024016109b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff8381166000908152600360205260408120600454600554929384938492600160401b900490911690606490610b4b90600160801b90046001600160801b0316896112da565b610b55919061130d565b610b5f91906112da565b8254909150600090610b7e90600160c01b900463ffffffff16886112da565b83546004549192506000916001600160401b03600160801b90920482169184918691610bab91168b611321565b610bb59190611321565b610bbf9190611321565b610bc991906112da565b60015485549192506001600160801b0390811691610be89116836112da565b610bf2919061130d565b935493996001600160801b039094169850929650505050505050565b6000806000610c1c86610f79565b63ffffffff80821660009081526003602052604081208054939450929091610c4c91600160c01b900416886112da565b610c5890610c74611321565b8254909150600090610c7a90600160801b90046001600160401b0316836112da565b63ffffffff808b1660009081526003602052604081208054939450929091610caa91600160c01b9004168b6112da565b8254909150600090600160801b90046001600160401b0316610ccc8b84611321565b610cd691906112da565b60015487549192506000916001600160801b0391821691610cf89116876112da565b610d02919061130d565b60015485549192506000916001600160801b0391821691610d249116856112da565b610d2e919061130d565b90506000610d3c8284611321565b9554959f6001600160801b039096169e50949c50505050505050505050505050565b63ffffffff80841660009081526003602052604081208054919283928391610d8e91600160c01b900416876112da565b8254909150600090600160801b90046001600160401b0316610db08784611321565b610dba91906112da565b60015484549192506001600160801b0390811691610dd99116836112da565b610de3919061130d565b925492986001600160801b0390931697509195505050505050565b600080808080610e1061753089611334565b90508063ffffffff16606e1480610e2e57508063ffffffff1661279f145b80610e4057508063ffffffff16614eaf145b15610e5a57610e50818888610b01565b9095509350610ea9565b8063ffffffff16606f1480610e7657508063ffffffff16612794145b80610e8857508063ffffffff16614ea4145b15610e9857610e50818888610c0e565b610ea3818888610d5e565b90955093505b505060015460055493979296506001600160801b03908116955090921692509050565b6001600160a01b038216610ef3576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f40576040519150601f19603f3d011682016040523d82523d6000602084013e610f45565b606091505b505090508061076e57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016109b6565b600080610f8861753084611334565b90508063ffffffff16606f03610fa15750606592915050565b8063ffffffff1661279403610fba575061278992915050565b8063ffffffff16614ea403610fd35750614e9992915050565b604051633d0b0cf760e21b815263ffffffff821660048201526024016109b6565b803563ffffffff8116811461100857600080fd5b919050565b60008060006060848603121561102257600080fd5b61102b84610ff4565b95602085013595506040909401359392505050565b80356001600160801b038116811461100857600080fd5b60006020828403121561106957600080fd5b61107282611040565b9392505050565b6000806020838503121561108c57600080fd5b82356001600160401b03808211156110a357600080fd5b818501915085601f8301126110b757600080fd5b8135818111156110c657600080fd5b8660208260071b85010111156110db57600080fd5b60209290920196919550909350505050565b80356001600160a01b038116811461100857600080fd5b6000806040838503121561111757600080fd5b611120836110ed565b91506020830135801515811461113557600080fd5b809150509250929050565b803561ffff8116811461100857600080fd5b60008060006060848603121561116757600080fd5b61102b84611140565b600060c0828403121561118257600080fd5b50919050565b60006020828403121561119a57600080fd5b611072826110ed565b6000602082840312156111b557600080fd5b61107282610ff4565b6000602082840312156111d057600080fd5b61107282611140565b600080604083850312156111ec57600080fd5b6111f5836110ed565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b80356001600160401b038116811461100857600080fd5b60006060828403121561124257600080fd5b604051606081018181106001600160401b038211171561127257634e487b7160e01b600052604160045260246000fd5b60405261127e83611040565b815261128c60208401611219565b602082015261129d60408401610ff4565b60408201529392505050565b6000602082840312156112bb57600080fd5b61107282611219565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176112f1576112f16112c4565b92915050565b634e487b7160e01b600052601260045260246000fd5b60008261131c5761131c6112f7565b500490565b808201808211156112f1576112f16112c4565b600063ffffffff8084168061134b5761134b6112f7565b9216919091069291505056fea264697066735822122043d40d861fac89f60c4938c8341172f4eaeb8b3e6729e13e77697283f99e882864736f6c6343000816003360e06040523480156200001157600080fd5b5060405162004ac038038062004ac083398101604081905262000034916200018b565b82828282836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000077573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009d9190620001d8565b6001600160a01b03821660805263ffffffff811660a05283833380620000dd57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000e88162000122565b5060c0919091526002555050600680546001600160a01b0319166001600160a01b0398909816979097179096555062000207945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200018857600080fd5b50565b60008060008060808587031215620001a257600080fd5b8451620001af8162000172565b6020860151909450620001c28162000172565b6040860151606090960151949790965092505050565b600060208284031215620001eb57600080fd5b815163ffffffff811681146200020057600080fd5b9392505050565b60805160a05160c0516148706200025060003960008181611d100152611e730152600050506000818161069a0152818161079f015281816112b101526117d901526148706000f3fe60806040526004361061014f5760003560e01c806361d027b3116100b6578063d15b0d491161006f578063d15b0d4914610450578063d80e9bd914610470578063f0f442601461049d578063f2fde38b146104bd578063faaebd21146104dd578063fd9be5221461051857600080fd5b806361d027b3146103905780636750cd4c146103b0578063715018a6146103d05780638da5cb5b146103e55780639c33abf714610403578063c14c43491461043057600080fd5b806329460b0b1161010857806329460b0b1461025357806339e3f938146102735780634389e58f146102a057806343ea4fa9146102ce5780634d963200146102ee57806354fd4d501461036357600080fd5b806301ffc9a71461015b5780630e97289b14610190578063188183f4146101c85780631881d94d146101f5578063200175f71461021157806320efd7221461023357600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b6101763660046136fd565b610538565b60405190151581526020015b60405180910390f35b34801561019c57600080fd5b506006546101b0906001600160a01b031681565b6040516001600160a01b039091168152602001610187565b3480156101d457600080fd5b506101e86101e3366004613769565b61058a565b60405161018791906137a2565b34801561020157600080fd5b50600060405161018791906137c8565b34801561021d57600080fd5b5061023161022c3660046137f0565b610663565b005b34801561023f57600080fd5b5061023161024e366004613875565b61079d565b34801561025f57600080fd5b5061023161026e3660046138c9565b610912565b34801561027f57600080fd5b5061029361028e366004613769565b610aaa565b60405161018791906139c0565b3480156102ac57600080fd5b506102c06102bb3660046139ec565b610be5565b604051610187929190613aeb565b3480156102da57600080fd5b506102936102e9366004613769565b610c7a565b3480156102fa57600080fd5b5061033f610309366004613769565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160a01b031682565b6040805163ffffffff90931683526001600160a01b03909116602083015201610187565b34801561036f57600080fd5b50604080516003815260006020820152600291810191909152606001610187565b34801561039c57600080fd5b506003546101b0906001600160a01b031681565b3480156103bc57600080fd5b5061017b6103cb366004613b0f565b610f86565b3480156103dc57600080fd5b50610231610f91565b3480156103f157600080fd5b506000546001600160a01b03166101b0565b34801561040f57600080fd5b5061042361041e366004613b2c565b610fa5565b6040516101879190613b77565b34801561043c57600080fd5b5061023161044b366004613b8a565b611037565b34801561045c57600080fd5b5061023161046b366004613bfe565b611170565b34801561047c57600080fd5b5061049061048b3660046139ec565b6111e5565b6040516101879190613c17565b3480156104a957600080fd5b506102316104b8366004613c2e565b611255565b3480156104c957600080fd5b506102316104d8366004613c2e565b611269565b3480156104e957600080fd5b5061050a6104f8366004613c2e565b60056020526000908152604090205481565b604051908152602001610187565b34801561052457600080fd5b50610231610533366004613c4b565b6112a4565b60006001600160e01b031982166325fc096160e21b148061056957506001600160e01b0319821663b6e9ace360e01b145b8061058457506301ffc9a760e01b6001600160e01b03198316145b92915050565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec602090815260408083206001600160a01b038916845260048352818420948452939091528120805492939092169081900361060e57825463ffffffff16610610565b805b63ffffffff168452815464010000000090046001600160a01b03168061064857835464010000000090046001600160a01b031661064a565b805b6001600160a01b03166020860152509295945050505050565b6003546001600160a01b0316331461068e5760405163885762a760e01b815260040160405180910390fd5b826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071a9190613c77565b6001600160a01b031603610741576040516339a5741160e21b815260040160405180910390fd5b61074c838383611384565b604080516001600160a01b038086168252841660208201529081018290527fe081464b7278501267de69fa85b7b9560b0ae05d5fbfaab9b1986c70356e2efe906060015b60405180910390a1505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107e65760405163467409c360e01b815260040160405180910390fd5b60005b8181101561090c573683838381811061080457610804613c94565b90506020028101906108169190613caa565b905061082d6108286020830183613b0f565b6113c4565b600161083f6040830160208401613b0f565b63ffffffff160361087f5761087a61085a6020830183613b0f565b866108686040850185613cca565b8101906108759190613da0565b6113f2565b610903565b60026108916040830160208401613b0f565b63ffffffff16036108cc5761087a6108ac6020830183613b0f565b866108ba6040850185613cca565b8101906108c79190613f60565b61147a565b6108dc6040820160208301613b0f565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016107e9565b50505050565b61091a6114c3565b60005b81811015610a6c573683838381811061093857610938613c94565b905060200281019061094a9190613f94565b905060ff61095b6020830183613faa565b61096c906040810190602001613fc0565b60ff160361098d576040516341d50bed60e11b815260040160405180910390fd5b60ff61099c6020830183613faa565b6109ad906060810190604001613fc0565b60ff16036109ce5760405163211089b360e11b815260040160405180910390fd5b6001600160401b036109e36020830183613faa565b6109f1906020810190613fdb565b6001600160401b031603610a185760405163281b33d760e11b815260040160405180910390fd5b610a36610a286020830183613faa565b610a3190613ff6565b6114f0565b610a636000610a486020840184613b0f565b610a556020850185613faa565b610a5e90613ff6565b611528565b5060010161091d565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610a9e929190614088565b60405180910390a15050565b610ab2613644565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610b7257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b54575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610bd457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bb6575b505050505081525050905092915050565b60408051808201909152600080825260208201526060610c07868686866117c1565b600654604051631f5dad8b60e31b81529294509092506001600160a01b03169063faed6c5890610c3f908490899089906004016141cd565b600060405180830381600087803b158015610c5957600080fd5b505af1158015610c6d573d6000803e3d6000fd5b5050505094509492505050565b610c82613644565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b031680610cf75782546001600160401b03168452610d14565b6001600160401b0381811614610d14576001600160401b03811684525b8154600160401b900460ff16610dae578254600160401b900460ff1615610da95782600101805480602002602001604051908101604052809291908181526020018280548015610d8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d6f575b505050505060808501528254600160401b900460ff1660208501525b610e35565b8154600160401b900460ff90811614610e355781600101805480602002602001604051908101604052809291908181526020018280548015610e1957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610dfb575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610ede578254600160481b900460ff1615610ed95782600201805480602002602001604051908101604052809291908181526020018280548015610eae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e90575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610f74565b8154600160481b900460ff90811614610f745781600201805480602002602001604051908101604052809291908181526020018280548015610f4957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f2b575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610f7d846114f0565b50505092915050565b600061058482611895565b610f996114c3565b610fa360006118f0565b565b606060001963ffffffff831601610fe657610fc0838561058a565b604051602001610fd091906137a2565b6040516020818303038152906040529050611030565b60011963ffffffff83160161100f57610fff8385610c7a565b604051602001610fd091906139c0565b604051635d4be0fd60e11b815263ffffffff831660048201526024016108fa565b9392505050565b61103f6114c3565b60005b8181101561113e573683838381811061105d5761105d613c94565b606090810292909201925060009161107b9150830160408401613c2e565b6001600160a01b0316036110a257604051631074e82d60e11b815260040160405180910390fd5b6110b26040820160208301613b0f565b63ffffffff166000036110d8576040516349cfac4360e01b815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec906111138385613b0f565b63ffffffff16815260208101919091526040016000206111338282614213565b505050600101611042565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610a9e92919061426c565b6111786114c3565b6002548111156111a95760025460405163068109f760e31b81526108fa918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b7842906020015b60405180910390a150565b604080518082019091526000808252602082015260008061123661120f6060890160408a01613c2e565b61121f60808a0160608b01613b0f565b61122c60c08b018b613cca565b9050878a8a611940565b604080518082019091529182526020820152925050505b949350505050565b61125d6114c3565b61126681611a39565b50565b6112716114c3565b6001600160a01b03811661129b57604051631e4fbdf760e01b8152600060048201526024016108fa565b611266816118f0565b6112ad81611a87565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561130d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113319190613c77565b905061133e818484611ad8565b604080513381526001600160a01b03851660208201529081018390527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610790565b6001600160a01b0382166113ab576040516306b7a93160e41b815260040160405180910390fd5b6113bf6001600160a01b0384168383611afb565b505050565b6113cd81611895565b61126657604051633c30434160e21b815263ffffffff821660048201526024016108fa565b6001600160a01b03808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000026001600160c01b03199093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc80590610790908490869085906142ec565b611485828483611528565b61148f8284610c7a565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516107909392919061432e565b6000546001600160a01b03163314610fa35760405163118cdaa760e01b81523360048201526024016108fa565b602081015160ff1615801561150a5750606081015160ff16155b156112665760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806115435750602081015160ff16155b15611571576080810151511561156c576040516341d50bed60e11b815260040160405180910390fd5b6115d7565b806020015160ff168160800151511415806115ac57506002611595600160ff614374565b61159f919061438d565b60ff16816020015160ff16115b156115ca576040516341d50bed60e11b815260040160405180910390fd5b6115d78160800151611b4d565b604081015160ff90811614806115f25750604081015160ff16155b156116465760a0810151511561161b5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615611641576040516338682fa960e01b815260040160405180910390fd5b6116eb565b806040015160ff168160a00151511415806116815750600261166a600160ff614374565b611674919061438d565b60ff16816040015160ff16115b1561169f5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615806116c05750806040015160ff16816060015160ff16115b156116de576040516338682fa960e01b815260040160405180910390fd5b6116eb8160a00151611b4d565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361179d9390850192019061368c565b5060a082015180516117b991600284019160209091019061368c565b505050505050565b604080518082019091526000808252602082015260607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118205760405163467409c360e01b815260040160405180910390fd5b60008061182e888888611bb4565b909250905060008061186061184960608c0160408d01613c2e565b61185960808d0160608e01613b0f565b858a611c81565b909250905061186f82846143bd565b604080518082019091529081526020810191909152945091925050505b94509492505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580611030575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000806119508686611d8f565b9150915060006119618b8b84611da8565b9050600061196f8c8c61058a565b90506119858a826000015163ffffffff16611db5565b80602001516001600160a01b031663709eb6648c8e8d886040518563ffffffff1660e01b81526004016119bb94939291906143d0565b602060405180830381865afa1580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614403565b611a0690836143bd565b9150600080611a178e8e868e611de4565b9092509050611a2682856143bd565b9e909d509b505050505050505050505050565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f906020016111da565b3360009081526005602052604090205480821115611ac25760405163068109f760e31b815260048101839052602481018290526044016108fa565b3360009081526005602052604090209190039055565b6001600160a01b038316611af0576113bf8282611eb5565b6113bf838383611384565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113bf908490611f62565b6000805b82518110156113bf576000838281518110611b6e57611b6e613c94565b60200260200101519050826001600160a01b0316816001600160a01b031611611baa5760405163447516e160e01b815260040160405180910390fd5b9150600101611b51565b60606000806000611bc58686611d8f565b90925090506000611bef611bdf60608a0160408b01613c2e565b6101e360808b0160608c01613b0f565b90506000611c0060c08a018a613cca565b90509050611c1881836000015163ffffffff16611db5565b6020820151611c4890611c3160808c0160608d01613b0f565b611c4160608d0160408e01613c2e565b8488611fc5565b611c5290866143bd565b9450600080611c618b866120be565b9092509050611c7082886143bd565b909b909a5098505050505050505050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b0316636a8e2a4360e11b1790526003549192506000918291611d38916001600160a01b0316907f0000000000000000000000000000000000000000000000000000000000000000908490876120e1565b91509150611d4887878484612191565b90955093508415611d83576003546001600160a01b031660009081526005602052604081208054879290611d7d9084906143bd565b90915550505b50505094509492505050565b606080611d9c848461220c565b915091505b9250929050565b600061124d8484846122f9565b80821115611de057604051636333d79f60e11b815260048101839052602481018290526044016108fa565b5050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b031663d424422160e01b1790526003549192506000918291611e99916001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000009086612373565b91509150611ea987878484612191565b9450945050505061188c565b6001600160a01b038216611edc576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611f29576040519150601f19603f3d011682016040523d82523d6000602084013e611f2e565b606091505b50509050806113bf57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016108fa565b6000611f776001600160a01b0384168361241f565b90508051600014158015611f9c575080806020019051810190611f9a919061441c565b155b156113bf57604051635274afe760e01b81526001600160a01b03841660048201526024016108fa565b6040516338bf452160e11b81526000906001600160a01b0387169063717e8a4290611ffa9088908890889088906004016143d0565b6020604051808303816000875af1158015612019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203d9190614403565b90508015612073576001600160a01b0386166000908152600560205260408120805483929061206d9084906143bd565b90915550505b604080516001600160a01b0388168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b600060606120d660056120d0866144a8565b8561242d565b909590945092505050565b60006060863b80830361210857604080516000808252602082019092529250925050612187565b60008060008761ffff166001600160401b0381111561212957612129613d10565b6040519080825280601f01601f191660200182016040528015612153576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612174578792505b828152826000602083013e909450925050505b9550959350505050565b6000808315806121a2575082516020115b156121b25750600090508061188c565b6000838060200190518101906121c89190614403565b905085156121d857809150612202565b600060025488116121eb576002546121ed565b875b90508082116121fc57816121fe565b805b9350505b5094509492505050565b60608060008061221c868661257b565b91509150805160000361227457604080516000808252602082019092528391612268565b6040805180820190915260008152606060208201528152602001906001900390816122405790505b50935093505050611da1565b604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908161228b5790505090506040518060400160405280600260ff16815260200183815250816000815181106122e1576122e1613c94565b60209081029190910101529196919550909350505050565b6000806123068585610c7a565b905060008351600014612337578360008151811061232657612326613c94565b602002602001015160200151612348565b604051806020016040528060008152505b90506000806123568361273a565b9150915061236784888a85856129a0565b98975050505050505050565b60006060853b80830361239a5760408051600080825260208201909252925092505061188c565b60008060008761ffff166001600160401b038111156123bb576123bb613d10565b6040519080825280601f01601f1916602001820160405280156123e5576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612405578792505b828152826000602083013e90999098509650505050505050565b606061103083836000612b38565b60006060600061243c85612bd5565b9050600061244986612c62565b80516020820120606088015160408901519293509091600061246b8284610c7a565b90506000895160001461249c578960008151811061248b5761248b613c94565b6020026020010151602001516124ad565b604051806020016040528060008152505b905060606124ff8d846040518060a001604052808963ffffffff1681526020018c81526020018a815260200187600001516001600160401b03168152602001886001600160a01b031681525085612c7f565b604051919b5091506125179089908990602001614545565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a001518360405161256393929190614574565b60405180910390a15050505050505050935093915050565b60608060028310156125a35760405163196499c760e21b8152600060048201526024016108fa565b60006125b260028286886145d2565b6125bb916145fc565b60f01c905060026002198201612723578060005b868310156126c85760006125e860018501858a8c6145d2565b6125f19161462c565b60f81c9050600081900361261b57604051636780cfaf60e01b8152600060048201526024016108fa565b8160ff1660000361262e5780915061266b565b8160ff168160ff161461266b5736600061264a86868c8e6145d2565b9150915061265b8989868585612f1d565b9099509750859450919250829150505b600184019360009061268290600301868b8d6145d2565b61268b916145fc565b60f01c905060008190036126b55760405163196499c760e21b8152600481018690526024016108fa565b8060020161ffff168501945050506125cf565b8287146126eb5760405163196499c760e21b8152600481018490526024016108fa565b600287111561271c5736600061270385858b8d6145d2565b915091506127148888858585612f1d565b909850965050505b5050612731565b61272e82878761303d565b93505b50509250929050565b606080825160000361274b57915091565b6000612756846131c8565b90508060ff166001036128085760408051600180825281830190925290816020015b606081526020019060019003908161277857905050925083836000815181106127a3576127a3613c94565b6020908102919091010152604080516001808252818301909252908160200160208202803683370190505091506127db8460036132a2565b826000815181106127ee576127ee613c94565b602002602001019060ff16908160ff168152505050915091565b8060ff166001600160401b0381111561282357612823613d10565b60405190808252806020026020018201604052801561284c578160200160208202803683370190505b5091508060ff166001600160401b0381111561286a5761286a613d10565b60405190808252806020026020018201604052801561289d57816020015b60608152602001906001900390816128885790505b50925060008060ff5b86518310156129335760019092019160006128c188856132fe565b60029490940193905060006128d689866132a2565b90508260ff1660ff036128eb57809250612924565b8260ff168160ff16146129245760021984860301600061290c8b878461335b565b905061291a8a8a8784613468565b5093909301929150815b5061ffff1692909201916128a6565b818303600061294389858461335b565b905061295188888584613468565b60005b8660ff168160ff16101561299457878160ff168151811061297757612977613c94565b6020908102919091010180516000190160ff169052600101612954565b50505050505050915091565b600080866040015187602001516129b7919061465a565b905060005b8160ff168160ff161015612b2d576000886020015160ff168260ff1610612a115760a089015160208a01516129f19084614374565b60ff1681518110612a0457612a04613c94565b6020026020010151612a33565b88608001518260ff1681518110612a2a57612a2a613c94565b60200260200101515b60408051602081019091526000808252919250905b8651811015612aa0578360ff16878281518110612a6757612a67613c94565b602002602001015160ff1603612a9857878181518110612a8957612a89613c94565b60200260200101519150612aa0565b600101612a48565b508951604051630c2eceab60e21b81526001600160a01b038416916330bb3aac91612ad3918d918d908790600401614673565b602060405180830381865afa158015612af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b149190614403565b612b1e90866143bd565b945050508060010190506129bc565b505095945050505050565b606081471015612b5d5760405163cd78605960e01b81523060048201526024016108fa565b600080856001600160a01b03168486604051612b7991906146b2565b60006040518083038185875af1925050503d8060008114612bb6576040519150601f19603f3d011682016040523d82523d6000602084013e612bbb565b606091505b5091509150612bcb86838361357e565b9695505050505050565b805160208083015160408085015160608087015160808801519351600160f81b9681019690965260c09690961b6001600160c01b031916602186015260e093841b6001600160e01b031990811660298701526001600160a01b03909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c00151604051602001612c4c9291906146c4565b60006060600080612c8f8561273a565b91509150600087604001518860200151612ca9919061465a565b90508060ff166001600160401b03811115612cc657612cc6613d10565b604051908082528060200260200182016040528015612cef578160200160208202803683370190505b50935060005b8160ff168160ff161015610c6d576000896020015160ff168260ff1610612d4a5760a08a015160208b0151612d2a9084614374565b60ff1681518110612d3d57612d3d613c94565b6020026020010151612d6c565b89608001518260ff1681518110612d6357612d63613c94565b60200260200101515b60408051602081019091526000808252919250905b8551811015612dd9578360ff16868281518110612da057612da0613c94565b602002602001015160ff1603612dd157868181518110612dc257612dc2613c94565b60200260200101519150612dd9565b600101612d81565b506040516395d376d760e01b81526001600160a01b038316906395d376d790612e08908d9085906004016146ea565b6020604051808303816000875af1158015612e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4b9190614403565b878460ff1681518110612e6057612e60613c94565b6020026020010181815250506000878460ff1681518110612e8357612e83613c94565b60200260200101511115612f1357868360ff1681518110612ea657612ea6613c94565b60200260200101518c6000846001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ee191906143bd565b92505081905550868360ff1681518110612efd57612efd613c94565b602002602001015188612f1091906143bd565b97505b5050600101612cf5565b60608060001960ff861601612f9a57865115612f5c57868484604051602001612f489392919061475c565b604051602081830303815290604052612f93565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613032565b60011960ff86160161301457855115612fd657858484604051602001612fc29392919061475c565b60405160208183030381529060405261300d565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613032565b604051636780cfaf60e01b815260ff861660048201526024016108fa565b509495939450505050565b606060001961ffff8516016130dd576022821461306d576040516301b8ca5560e31b815260040160405180910390fd5b600061308e6130806022600286886145d2565b61308991614784565b6135da565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b166024820152909150603401604051602081830303815290604052915050611030565b60011961ffff8516016131a9576042821115806130fa5750606282115b15613118576040516360493e2b60e11b815260040160405180910390fd5b600061312b6130806022600286886145d2565b905060006131406130806042602287896145d2565b905060006041198501613156866042818a6145d2565b61315f91614784565b60405160086020938403029190911c9250613190916001916011918391889183916031916002918b918b91016147a2565b6040516020818303038152906040529350505050611030565b604051630417051360e41b815261ffff851660048201526024016108fa565b600080805b83518210156132775760019091019060006131e885846132fe565b905060028301925060028161ffff1610156132195760405163013adb8360e21b8152600481018490526024016108fa565b600061322586856132a2565b90508060ff1660ff0361324b576040516334f4f66f60e21b815260040160405180910390fd5b600160ff82161b83166132685760019485019460ff82161b831792505b5061ffff1691909101906131cd565b8351821461329b5760405163013adb8360e21b8152600481018390526024016108fa565b5050919050565b60006132af8260016143bd565b835110156132f55760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b60448201526064016108fa565b50016001015190565b600061330b8260026143bd565b835110156133525760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b60448201526064016108fa565b50016002015190565b60608161336981601f6143bd565b10156133a85760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016108fa565b6133b282846143bd565b845110156133f65760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016108fa565b606082158015613415576040519150600082526020820160405261345f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561344e578051835260209283019201613436565b5050858452601f01601f1916604052505b50949350505050565b8160ff1660ff0361348c576040516334f4f66f60e21b815260040160405180910390fd5b600061349983600161465a565b905060005b84518110156117b95760008582815181106134bb576134bb613c94565b602002602001015190508060ff168360ff1603613530578682815181106134e4576134e4613c94565b6020026020010151846040516020016134fe929190614545565b60405160208183030381529060405287838151811061351f5761351f613c94565b6020026020010181905250506117b9565b8060ff16600003613575578286838151811061354e5761354e613c94565b602002602001019060ff16908160ff16815250508387838151811061351f5761351f613c94565b5060010161349e565b6060826135935761358e8261361b565b611030565b81511580156135aa57506001600160a01b0384163b155b156135d357604051639996b31560e01b81526001600160a01b03851660048201526024016108fa565b5080611030565b60006fffffffffffffffffffffffffffffffff821115613617576040516306dfcc6560e41b815260806004820152602481018390526044016108fa565b5090565b80511561362b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156136e1579160200282015b828111156136e157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906136ac565b506136179291505b8082111561361757600081556001016136e9565b60006020828403121561370f57600080fd5b81356001600160e01b03198116811461103057600080fd5b6001600160a01b038116811461126657600080fd5b803561374781613727565b919050565b63ffffffff8116811461126657600080fd5b80356137478161374c565b6000806040838503121561377c57600080fd5b823561378781613727565b915060208301356137978161374c565b809150509250929050565b815163ffffffff1681526020808301516001600160a01b03169082015260408101610584565b60208101600383106137ea57634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006060848603121561380557600080fd5b833561381081613727565b9250602084013561382081613727565b929592945050506040919091013590565b60008083601f84011261384357600080fd5b5081356001600160401b0381111561385a57600080fd5b6020830191508360208260051b8501011115611da157600080fd5b60008060006040848603121561388a57600080fd5b833561389581613727565b925060208401356001600160401b038111156138b057600080fd5b6138bc86828701613831565b9497909650939450505050565b600080602083850312156138dc57600080fd5b82356001600160401b038111156138f257600080fd5b6138fe85828601613831565b90969095509350505050565b60008151808452602080850194506020840160005b838110156139445781516001600160a01b03168752958201959082019060010161391f565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261399e60c085018261390a565b905060a083015184820360a08601526139b7828261390a565b95945050505050565b602081526000611030602083018461394f565b801515811461126657600080fd5b8035613747816139d3565b60008060008060608587031215613a0257600080fd5b84356001600160401b0380821115613a1957600080fd5b9086019060e08289031215613a2d57600080fd5b90945060208601359080821115613a4357600080fd5b818701915087601f830112613a5757600080fd5b813581811115613a6657600080fd5b886020828501011115613a7857600080fd5b602083019550809450505050613a90604086016139e1565b905092959194509250565b60005b83811015613ab6578181015183820152602001613a9e565b50506000910152565b60008151808452613ad7816020860160208601613a9b565b601f01601f19169290920160200192915050565b825181526020808401519082015260606040820152600061124d6060830184613abf565b600060208284031215613b2157600080fd5b81356110308161374c565b600080600060608486031215613b4157600080fd5b8335613b4c8161374c565b92506020840135613b5c81613727565b91506040840135613b6c8161374c565b809150509250925092565b6020815260006110306020830184613abf565b60008060208385031215613b9d57600080fd5b82356001600160401b0380821115613bb457600080fd5b818501915085601f830112613bc857600080fd5b813581811115613bd757600080fd5b866020606083028501011115613bec57600080fd5b60209290920196919550909350505050565b600060208284031215613c1057600080fd5b5035919050565b815181526020808301519082015260408101610584565b600060208284031215613c4057600080fd5b813561103081613727565b60008060408385031215613c5e57600080fd5b8235613c6981613727565b946020939093013593505050565b600060208284031215613c8957600080fd5b815161103081613727565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112613cc057600080fd5b9190910192915050565b6000808335601e19843603018112613ce157600080fd5b8301803591506001600160401b03821115613cfb57600080fd5b602001915036819003821315611da157600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715613d4857613d48613d10565b60405290565b60405160e081016001600160401b0381118282101715613d4857613d48613d10565b604051601f8201601f191681016001600160401b0381118282101715613d9857613d98613d10565b604052919050565b600060408284031215613db257600080fd5b604051604081018181106001600160401b0382111715613dd457613dd4613d10565b6040528235613de28161374c565b81526020830135613df281613727565b60208201529392505050565b80356001600160401b038116811461374757600080fd5b803560ff8116811461374757600080fd5b600082601f830112613e3757600080fd5b813560206001600160401b03821115613e5257613e52613d10565b8160051b613e61828201613d70565b9283528481018201928281019087851115613e7b57600080fd5b83870192505b84831015613ea3578235613e9481613727565b82529183019190830190613e81565b979650505050505050565b600060c08284031215613ec057600080fd5b613ec8613d26565b9050613ed382613dfe565b8152613ee160208301613e15565b6020820152613ef260408301613e15565b6040820152613f0360608301613e15565b606082015260808201356001600160401b0380821115613f2257600080fd5b613f2e85838601613e26565b608084015260a0840135915080821115613f4757600080fd5b50613f5484828501613e26565b60a08301525092915050565b600060208284031215613f7257600080fd5b81356001600160401b03811115613f8857600080fd5b61124d84828501613eae565b60008235603e19833603018112613cc057600080fd5b6000823560be19833603018112613cc057600080fd5b600060208284031215613fd257600080fd5b61103082613e15565b600060208284031215613fed57600080fd5b61103082613dfe565b60006105843683613eae565b6000808335601e1984360301811261401957600080fd5b83016020810192503590506001600160401b0381111561403857600080fd5b8060051b3603821315611da157600080fd5b8183526000602080850194508260005b8581101561394457813561406d81613727565b6001600160a01b03168752958201959082019060010161405a565b60208082528181018390526000906040808401600586901b8501820187855b888110156141bf57603f19808985030185528235603e198c36030181126140cd57600080fd5b8b0180356140da8161374c565b63ffffffff168552808801353682900360be190181126140f957600080fd5b858901889052016001600160401b0361411182613dfe565b1687860152614121888201613e15565b606060ff808316828901526141378a8501613e15565b92506080818416818a015261414d838601613e15565b935060a09250818416838a015261416681860186614002565b60c08b8101529450915061418190506101008901848361404a565b92505061419081840184614002565b93509050838783030160e08801526141a982848361404a565b978a0197965050509287019250506001016140a7565b509098975050505050505050565b6040815260006141e06040830186613abf565b8281036020840152838152838560208301376000602085830101526020601f19601f860116820101915050949350505050565b813561421e8161374c565b63ffffffff8116905081548163ffffffff198216178355602084013561424381613727565b6001600160c01b03199190911690911760209190911b640100000000600160c01b031617905550565b6020808252818101839052600090604080840186845b878110156142df5781356142958161374c565b63ffffffff908116845282860135906142ad8261374c565b1683860152818401356142bf81613727565b6001600160a01b0316838501526060928301929190910190600101614282565b5090979650505050505050565b6001600160a01b038416815263ffffffff831660208201526080810161124d6040830184805163ffffffff1682526020908101516001600160a01b0316910152565b6001600160a01b038416815263ffffffff831660208201526060604082018190526000906139b79083018461394f565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156105845761058461435e565b600060ff8316806143ae57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b808201808211156105845761058461435e565b63ffffffff8516815260018060a01b0384166020820152826040820152608060608201526000612bcb6080830184613abf565b60006020828403121561441557600080fd5b5051919050565b60006020828403121561442e57600080fd5b8151611030816139d3565b600082601f83011261444a57600080fd5b81356001600160401b0381111561446357614463613d10565b614476601f8201601f1916602001613d70565b81815284602083860101111561448b57600080fd5b816020850160208301376000918101602001919091529392505050565b600060e082360312156144ba57600080fd5b6144c2613d4e565b6144cb83613dfe565b81526144d96020840161375e565b60208201526144ea6040840161373c565b60408201526144fb6060840161375e565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b0381111561452d57600080fd5b61453936828601614439565b60c08301525092915050565b60008351614557818460208801613a9b565b83519083019061456b818360208801613a9b565b01949350505050565b606081526000614587606083018661390a565b6020838203602085015261459b828761390a565b84810360408601528551808252602080880194509091019060005b818110156141bf578451835293830193918301916001016145b6565b600080858511156145e257600080fd5b838611156145ef57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156146245780818660020360031b1b83161692505b505092915050565b6001600160f81b031981358181169160018510156146245760019490940360031b84901b1690921692915050565b60ff81811683821601908111156105845761058461435e565b63ffffffff851681526001600160401b03841660208201526001600160a01b0383166040820152608060608201819052600090612bcb90830184613abf565b60008251613cc0818460208701613a9b565b828152600082516146dc816020850160208701613a9b565b919091016020019392505050565b6040815263ffffffff83511660408201526000602084015160a0606084015261471660e0840182613abf565b604086015160808581019190915260608701516001600160401b031660a08601528601516001600160a01b031660c0850152838103602085015290506139b78185613abf565b6000845161476e818460208901613a9b565b8201838582376000930192835250909392505050565b8035602083101561058457600019602084900360031b1b1692915050565b60f88a811b6001600160f81b0319908116835260f08b811b6001600160f01b031990811660018601528b841b8316600386015260808b901b6001600160801b031916600486015289841b831660148601529088901b1660158401529085901b1660178201526000614822601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea26469706673582212209c4e56d6c67105dfab95a5db652280357c444a31ddd8e746e20a46bf6d44b3bb64736f6c6343000816003360c06040523480156200001157600080fd5b50604051620024413803806200244183398101604081905262000034916200013e565b8080816001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009b919062000170565b3380620000c257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000cd81620000ee565b506001600160a01b0390911660805263ffffffff1660a05250620001989050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200015157600080fd5b81516001600160a01b03811681146200016957600080fd5b9392505050565b6000602082840312156200018357600080fd5b815163ffffffff811681146200016957600080fd5b60805160a05161227c620001c5600039600061031e01526000818161041b0152610484015261227c6000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806343ea4fa9116100a25780638da5cb5b116100715780638da5cb5b146102665780639c33abf714610281578063c40ff835146102a1578063e084d952146102b4578063f2fde38b146102c757600080fd5b806343ea4fa91461021857806354fd4d501461022b5780636750cd4c1461024b578063715018a61461025e57600080fd5b806320efd722116100de57806320efd7221461016f57806329460b0b1461018257806339e3f938146101955780633c782a52146101b557600080fd5b806301ffc9a7146101105780630223536e146101385780630894edf11461014d5780631881d94d14610160575b600080fd5b61012361011e3660046116ed565b6102da565b60405190151581526020015b60405180910390f35b61014b61014636600461177b565b610305565b005b61014b61015b3660046117d7565b610317565b600160405161012f9190611822565b61014b61017d3660046118a5565b610482565b61014b6101903660046118f7565b6105a4565b6101a86101a336600461194c565b61073c565b60405161012f9190611a35565b6101f96101c3366004611a48565b600260209081526000938452604080852082529284528284209052825290205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161012f565b6101a861022636600461194c565b610877565b60408051600381526000602082015260029181019190915260600161012f565b610123610259366004611a7d565b610b83565b61014b610b8e565b6000546040516001600160a01b03909116815260200161012f565b61029461028f366004611a98565b610ba2565b60405161012f9190611ad2565b61014b6102af366004611b21565b610c0b565b6101236102c2366004611d10565b610c1b565b61014b6102d5366004611d5d565b610c30565b60006001600160e01b03198216630ab7be9f60e01b14806102ff57506102ff82610c6e565b92915050565b61031184848484610ca3565b50505050565b61034283837f0000000000000000000000000000000000000000000000000000000000000000610d89565b600061034e8484610e0c565b9050600061035c8585610e1e565b9050600061036a8383610877565b905061038e818787604051610380929190611d78565b604051809103902086610e41565b600060405180606001604052808463ffffffff1681526020016103b18989610f91565b81526020016103c08989610faa565b6001600160401b039081169091526040805163a825d74760e01b8152835163ffffffff166004820152602084015160248201529083015190911660448201526001600160a01b038681166064830152608482018890529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a825d7479060a401600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b5050505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146104cb5760405163467409c360e01b815260040160405180910390fd5b60005b8181101561031157368383838181106104e9576104e9611d88565b90506020028101906104fb9190611d9e565b905061051261050d6020830183611a7d565b610fcd565b60026105246040830160208401611a7d565b63ffffffff16036105645761055f61053f6020830183611a7d565b8661054d6040850185611dbe565b81019061055a9190611e04565b610ffb565b61059b565b6105746040820160208301611a7d565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016104ce565b6105ac611051565b60005b818110156106fe57368383838181106105ca576105ca611d88565b90506020028101906105dc9190611e38565b905060ff6105ed6020830183611e4e565b6105fe906040810190602001611e64565b60ff160361061f576040516341d50bed60e11b815260040160405180910390fd5b60ff61062e6020830183611e4e565b61063f906060810190604001611e64565b60ff16036106605760405163211089b360e11b815260040160405180910390fd5b6001600160401b036106756020830183611e4e565b610683906020810190611e7f565b6001600160401b0316036106aa5760405163281b33d760e11b815260040160405180910390fd5b6106c86106ba6020830183611e4e565b6106c390611e9a565b61107e565b6106f560006106da6020840184611a7d565b6106e76020850185611e4e565b6106f090611e9a565b6110b6565b506001016105af565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610730929190611f2a565b60405180910390a15050565b61074461162b565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561080457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107e6575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561086657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610848575b505050505081525050905092915050565b61087f61162b565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b0316806108f45782546001600160401b03168452610911565b6001600160401b0381811614610911576001600160401b03811684525b8154600160401b900460ff166109ab578254600160401b900460ff16156109a6578260010180548060200260200160405190810160405280929190818152602001828054801561098a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161096c575b505050505060808501528254600160401b900460ff1660208501525b610a32565b8154600160401b900460ff90811614610a325781600101805480602002602001604051908101604052809291908181526020018280548015610a1657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109f8575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610adb578254600160481b900460ff1615610ad65782600201805480602002602001604051908101604052809291908181526020018280548015610aab57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a8d575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610b71565b8154600160481b900460ff90811614610b715781600201805480602002602001604051908101604052809291908181526020018280548015610b4657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b28575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610b7a8461107e565b50505092915050565b60006102ff8261134f565b610b96611051565b610ba060006113aa565b565b606060011963ffffffff831601610be357610bbd8385610877565b604051602001610bcd9190611a35565b6040516020818303038152906040529050610c04565b604051635d4be0fd60e11b815263ffffffff83166004820152602401610592565b9392505050565b610c16838383610d89565b505050565b6000610c288484846113fa565b949350505050565b610c38611051565b6001600160a01b038116610c6257604051631e4fbdf760e01b815260006004820152602401610592565b610c6b816113aa565b50565b60006001600160e01b031982166325fc096160e21b14806102ff57506301ffc9a760e01b6001600160e01b03198316146102ff565b604080518082018252600181526001600160401b03831660208201529051600290600090610cd49088908890611d78565b604080519182900390912082526020808301939093529081016000908120868252835281812033808352908452908290208451815495909401516001600160401b03166101000268ffffffffffffffff00199415159490941668ffffffffffffffffff19909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab5691610d7b91879087908690889061206c565b60405180910390a150505050565b60518214610daa5760405163c9bf37b760e01b815260040160405180910390fd5b6001610db68484611503565b60ff1614610dd757604051633a9ae7b960e01b815260040160405180910390fd5b8063ffffffff16610de88484611525565b63ffffffff1614610c165760405163216964bf60e11b815260040160405180910390fd5b6000610c04610e1b8484611535565b90565b6000610e2e600d600984866120c6565b610e37916120f0565b60e01c9392505050565b610e4c8383836113fa565b610e695760405163130c463560e21b815260040160405180910390fd5b602083015160ff1615610efe5760005b836020015160ff168160ff161015610efc57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110610ec157610ec1611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610e79565b505b604083015160ff1615610c165760005b836040015160ff168160ff161015610311576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110610f5657610f56611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610f0e565b6000610fa1602d600d84866120c6565b610c0491612120565b6000610fba6009600184866120c6565b610fc39161213e565b60c01c9392505050565b610fd68161134f565b610c6b57604051633c30434160e21b815263ffffffff82166004820152602401610592565b6110068284836110b6565b6110108284610877565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516110449392919061216c565b60405180910390a1505050565b6000546001600160a01b03163314610ba05760405163118cdaa760e01b8152336004820152602401610592565b602081015160ff161580156110985750606081015160ff16155b15610c6b5760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806110d15750602081015160ff16155b156110ff57608081015151156110fa576040516341d50bed60e11b815260040160405180910390fd5b611165565b806020015160ff1681608001515114158061113a57506002611123600160ff6121b2565b61112d91906121cb565b60ff16816020015160ff16115b15611158576040516341d50bed60e11b815260040160405180910390fd5b6111658160800151611545565b604081015160ff90811614806111805750604081015160ff16155b156111d45760a081015151156111a95760405163211089b360e11b815260040160405180910390fd5b606081015160ff16156111cf576040516338682fa960e01b815260040160405180910390fd5b611279565b806040015160ff168160a001515114158061120f575060026111f8600160ff6121b2565b61120291906121cb565b60ff16816040015160ff16115b1561122d5760405163211089b360e11b815260040160405180910390fd5b606081015160ff16158061124e5750806040015160ff16816060015160ff16115b1561126c576040516338682fa960e01b815260040160405180910390fd5b6112798160a00151611545565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361132b93908501920190611673565b5060a08201518051611347916002840191602090910190611673565b505050505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580610c04575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b602083015160009060ff161561147d5760005b846020015160ff168160ff1610156114655761144f85608001518260ff168151811061143b5761143b611d88565b6020026020010151858588600001516115ac565b61145d576000915050610c04565b60010161140d565b50836040015160ff1660000361147d57506001610c04565b606084015160005b856040015160ff168160ff1610156114f7576114c78660a001518260ff16815181106114b3576114b3611d88565b6020026020010151868689600001516115ac565b156114ef57816114d6816121fb565b9250508160ff166000036114ef57600192505050610c04565b600101611485565b50600095945050505050565b600061151260018284866120c6565b61151b91612218565b60f81c9392505050565b6000610e2e6031602d84866120c6565b6000610fa16051603184866120c6565b6000805b8251811015610c1657600083828151811061156657611566611d88565b60200260200101519050826001600160a01b0316816001600160a01b0316116115a25760405163447516e160e01b815260040160405180910390fd5b9150600101611549565b600083815260026020908152604080832085845282528083206001600160a01b0388168452825280832081518083019092525460ff81161580158084526101009092046001600160401b03169383019390935290916116215750826001600160401b031681602001516001600160401b031610155b9695505050505050565b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156116c8579160200282015b828111156116c857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611693565b506116d49291506116d8565b5090565b5b808211156116d457600081556001016116d9565b6000602082840312156116ff57600080fd5b81356001600160e01b031981168114610c0457600080fd5b60008083601f84011261172957600080fd5b5081356001600160401b0381111561174057600080fd5b60208301915083602082850101111561175857600080fd5b9250929050565b80356001600160401b038116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b84356001600160401b038111156117a757600080fd5b6117b387828801611717565b909550935050602085013591506117cc6040860161175f565b905092959194509250565b6000806000604084860312156117ec57600080fd5b83356001600160401b0381111561180257600080fd5b61180e86828701611717565b909790965060209590950135949350505050565b602081016003831061184457634e487b7160e01b600052602160045260246000fd5b91905290565b80356001600160a01b038116811461177657600080fd5b60008083601f84011261187357600080fd5b5081356001600160401b0381111561188a57600080fd5b6020830191508360208260051b850101111561175857600080fd5b6000806000604084860312156118ba57600080fd5b6118c38461184a565b925060208401356001600160401b038111156118de57600080fd5b6118ea86828701611861565b9497909650939450505050565b6000806020838503121561190a57600080fd5b82356001600160401b0381111561192057600080fd5b61192c85828601611861565b90969095509350505050565b803563ffffffff8116811461177657600080fd5b6000806040838503121561195f57600080fd5b6119688361184a565b915061197660208401611938565b90509250929050565b60008151808452602080850194506020840160005b838110156119b95781516001600160a01b031687529582019590820190600101611994565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c06080850152611a1360c085018261197f565b905060a083015184820360a0860152611a2c828261197f565b95945050505050565b602081526000610c0460208301846119c4565b600080600060608486031215611a5d57600080fd5b8335925060208401359150611a746040850161184a565b90509250925092565b600060208284031215611a8f57600080fd5b610c0482611938565b600080600060608486031215611aad57600080fd5b611ab684611938565b9250611ac46020850161184a565b9150611a7460408501611938565b60006020808352835180602085015260005b81811015611b0057858101830151858201604001528201611ae4565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060408486031215611b3657600080fd5b83356001600160401b03811115611b4c57600080fd5b611b5886828701611717565b9094509250611a74905060208501611938565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611ba357611ba3611b6b565b60405290565b803560ff8116811461177657600080fd5b600082601f830112611bcb57600080fd5b813560206001600160401b0380831115611be757611be7611b6b565b8260051b604051601f19603f83011681018181108482111715611c0c57611c0c611b6b565b6040529384526020818701810194908101925087851115611c2c57600080fd5b6020870191505b84821015611c5357611c448261184a565b83529183019190830190611c33565b979650505050505050565b600060c08284031215611c7057600080fd5b611c78611b81565b9050611c838261175f565b8152611c9160208301611ba9565b6020820152611ca260408301611ba9565b6040820152611cb360608301611ba9565b606082015260808201356001600160401b0380821115611cd257600080fd5b611cde85838601611bba565b608084015260a0840135915080821115611cf757600080fd5b50611d0484828501611bba565b60a08301525092915050565b600080600060608486031215611d2557600080fd5b83356001600160401b03811115611d3b57600080fd5b611d4786828701611c5e565b9660208601359650604090950135949350505050565b600060208284031215611d6f57600080fd5b610c048261184a565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112611db457600080fd5b9190910192915050565b6000808335601e19843603018112611dd557600080fd5b8301803591506001600160401b03821115611def57600080fd5b60200191503681900382131561175857600080fd5b600060208284031215611e1657600080fd5b81356001600160401b03811115611e2c57600080fd5b610c2884828501611c5e565b60008235603e19833603018112611db457600080fd5b6000823560be19833603018112611db457600080fd5b600060208284031215611e7657600080fd5b610c0482611ba9565b600060208284031215611e9157600080fd5b610c048261175f565b60006102ff3683611c5e565b6000808335601e19843603018112611ebd57600080fd5b83016020810192503590506001600160401b03811115611edc57600080fd5b8060051b360382131561175857600080fd5b8183526000602080850194508260005b858110156119b9576001600160a01b03611f178361184a565b1687529582019590820190600101611efe565b60208082528181018390526000906040808401600586901b8501820187855b8881101561205e57603f19808985030185528235603e198c3603018112611f6f57600080fd5b8b0163ffffffff611f7f82611938565b1685528781013560be19823603018112611f9857600080fd5b858901889052016001600160401b03611fb08261175f565b1687860152611fc0888201611ba9565b606060ff80831682890152611fd68a8501611ba9565b92506080818416818a0152611fec838601611ba9565b935060a09250818416838a015261200581860186611ea6565b60c08b81015294509150612020905061010089018483611eee565b92505061202f81840184611ea6565b93509050838783030160e0880152612048828483611eee565b978a019796505050928701925050600101611f49565b509098975050505050505050565b6001600160a01b03861681526080602082018190528101849052838560a0830137600060a08583010152600060a0601f19601f87011683010190506001600160401b03841660408301528260608301529695505050505050565b600080858511156120d657600080fd5b838611156120e357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156121185780818660040360031b1b83161692505b505092915050565b803560208310156102ff57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156121185760089490940360031b84901b1690921692915050565b6001600160a01b038416815263ffffffff83166020820152606060408201819052600090611a2c908301846119c4565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ff576102ff61219c565b600060ff8316806121ec57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b600060ff82168061220e5761220e61219c565b6000190192915050565b6001600160f81b031981358181169160018510156121185760019490940360031b84901b169092169291505056fea26469706673582212209a9d42e4d24ba1f5577ac32292c65d2ac9fe71fc72829f0ae54477497a89995e64736f6c6343000816003360806040523480156200001157600080fd5b5060405162002c7038038062002c7083398101604081905262000034916200046f565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b038581169190911790915584908490612ee090859085908216156200008f576200008d60008362000226565b505b60005b8551811015620000f457620000ea7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000d657620000d662000523565b60200260200101516200022660201b60201c565b5060010162000092565b5060005b815181101562000146576200013c7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000d657620000d662000523565b50600101620000f8565b505060016004908155600680546001600160a01b0319166001600160a01b038d169081179091556040805163416ecebf60e01b8152905191965063416ecebf95508083019450602093509091908290030181865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d3919062000539565b6006805463ffffffff92909216600160a01b0263ffffffff60a01b199092169190911790555050600780546001600160a01b039094166001600160a01b03199094169390931790925550620005a5915050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156200027957506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b15620002c65760018054601590620002a190600160a81b90046001600160401b031662000568565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b620002d28383620002de565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1662000383576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556200033a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620002d8565b506000620002d8565b80516001600160a01b0381168114620003a457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003d157600080fd5b815160206001600160401b0380831115620003f057620003f0620003a9565b8260051b604051601f19603f83011681018181108482111715620004185762000418620003a9565b60405293845260208187018101949081019250878511156200043957600080fd5b6020870191505b84821015620004645762000454826200038c565b8352918301919083019062000440565b979650505050505050565b60008060008060008060c087890312156200048957600080fd5b62000494876200038c565b9550620004a4602088016200038c565b60408801519095506001600160401b0380821115620004c257600080fd5b620004d08a838b01620003bf565b9550620004e060608a016200038c565b9450620004f060808a016200038c565b935060a08901519150808211156200050757600080fd5b506200051689828a01620003bf565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156200054c57600080fd5b815163ffffffff811681146200056157600080fd5b9392505050565b60006001600160401b038281166002600160401b031981016200059b57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6126bb80620005b56000396000f3fe6080604052600436106101e25760003560e01c8063709eb66411610102578063a217fddf11610095578063c7b2370b11610064578063c7b2370b14610649578063cd88b90314610669578063d2ae210414610689578063d547741f146106c857600080fd5b8063a217fddf146105cf578063c2803b2c146105e4578063c358de0a14610604578063c416aa511461062457600080fd5b8063741bef1a116100d1578063741bef1a146104cd5780638624ba07146104ed57806391d14854146105005780639e9449651461052057600080fd5b8063709eb66414610434578063717e8a4214610454578063724e78da14610474578063726075371461049457600080fd5b80632f2ff15d1161017a5780633d85ac33116101495780633d85ac33146103b1578063475b6d9e146103d15780635c975abb146103e45780635e280f11146103fc57600080fd5b80632f2ff15d1461033e5780633146646a1461035e57806336568abe1461037e5780633927c0751461039e57600080fd5b806316c38b3c116101b657806316c38b3c14610293578063248a9ca3146102b357806326e67a37146102f15780632de113761461031e57600080fd5b8062bf2e80146101e757806301e336671461022157806301ffc9a7146102435780631095b6d714610273575b600080fd5b3480156101f357600080fd5b5060015461020990600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561022d57600080fd5b5061024161023c366004611a9c565b6106e8565b005b34801561024f57600080fd5b5061026361025e366004611ad8565b610711565b6040519015158152602001610218565b34801561027f57600080fd5b5061024161028e366004611a9c565b610748565b34801561029f57600080fd5b506102416102ae366004611b10565b61085b565b3480156102bf57600080fd5b506102e36102ce366004611b2d565b60009081526020819052604090206001015490565b604051908152602001610218565b3480156102fd57600080fd5b5061031161030c366004611b5a565b610880565b6040516102189190611b75565b34801561032a57600080fd5b50610263610339366004611bbc565b610907565b34801561034a57600080fd5b50610241610359366004611bd7565b61099e565b34801561036a57600080fd5b50610241610379366004611c4b565b6109c3565b34801561038a57600080fd5b50610241610399366004611bd7565b610a53565b6102416103ac366004611cf2565b610a6c565b3480156103bd57600080fd5b506102416103cc366004611e33565b610b27565b6102416103df366004611f4e565b610c9e565b3480156103f057600080fd5b5060015460ff16610263565b34801561040857600080fd5b5060065461041c906001600160a01b031681565b6040516001600160a01b039091168152602001610218565b34801561044057600080fd5b506102e361044f366004611fcc565b610ce0565b34801561046057600080fd5b506102e361046f366004611fcc565b610de7565b34801561048057600080fd5b5061024161048f366004611bbc565b610f13565b3480156104a057600080fd5b506006546104b890600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610218565b3480156104d957600080fd5b5060025461041c906001600160a01b031681565b6102416104fb36600461203a565b610f79565b34801561050c57600080fd5b5061026361051b366004611bd7565b611084565b34801561052c57600080fd5b5061058c61053b366004611b5a565b600560205260009081526040902080546001909101546001600160401b038083169261ffff600160401b820416926001600160801b03600160501b90920482169291811691600160801b9091041685565b604080516001600160401b03968716815261ffff90951660208601526001600160801b03938416908501529116606083015291909116608082015260a001610218565b3480156105db57600080fd5b506102e3600081565b3480156105f057600080fd5b5060075461041c906001600160a01b031681565b34801561061057600080fd5b5061024161061f3660046120b2565b6110ad565b34801561063057600080fd5b5060015461041c9061010090046001600160a01b031681565b34801561065557600080fd5b50610241610664366004611bbc565b611115565b34801561067557600080fd5b506102416106843660046120cd565b611183565b34801561069557600080fd5b506001546106b090600160a81b90046001600160401b031681565b6040516001600160401b039091168152602001610218565b3480156106d457600080fd5b506102416106e3366004611bd7565b6111bb565b600080516020612666833981519152610700816111e0565b61070b8484846111ed565b50505050565b60006001600160e01b03198216637965db0b60e01b148061074257506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020612666833981519152610760816111e0565b61078a7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de85611084565b6107a757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610866816111e0565b811561087857610874611215565b5050565b610874611269565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156108fb57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108cc5790505b50505050509050919050565b60006109337f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611084565b1561094057506000919050565b600154600160a81b90046001600160401b0316158061098457506109847f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83611084565b1561099157506001919050565b506000919050565b919050565b6000828152602081905260409020600101546109b9816111e0565b61070b83836112a2565b6000805160206126668339815191526109db816111e0565b6109e3611338565b600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610a179087908790879060040161217b565b600060405180830381600087803b158015610a3157600080fd5b505af1158015610a45573d6000803e3d6000fd5b5050505061070b6001600455565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020612666833981519152610a84816111e0565b610a8c611338565b610aac88610a9a8686611362565b610aa48787611385565b8a8a8a61139e565b50600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610ae19087908790879060040161217b565b600060405180830381600087803b158015610afb57600080fd5b505af1158015610b0f573d6000803e3d6000fd5b50505050610b1d6001600455565b5050505050505050565b600080516020612666833981519152610b3f816111e0565b60005b8251811015610c62576000838281518110610b5f57610b5f61219f565b6020908102919091018101516040805160a08082018352838501516001600160401b03908116835260608086015161ffff9081168589019081526080808901516001600160801b03908116888a01908152968a01518116948801948552888a01518616918801918252985163ffffffff1660009081526005909a529690982094518554985194518816600160501b026fffffffffffffffffffffffffffffffff60501b1995909216600160401b0269ffffffffffffffffffff1990991690841617979097179290921695909517825551600191820180549351909516600160801b026001600160c01b031990931693169290921717909155919091019050610b42565b507fb99f6de5e22c60c178b03bfacf2daeb4b6089f5b37e0fe2c48a5d5141191fc5382604051610c9291906121b5565b60405180910390a15050565b600080516020612666833981519152610cb6816111e0565b610cbe611338565b610ccc87878787878761139e565b50610cd76001600455565b50505050505050565b600084610cec81610907565b610d0957604051634ab5ebcd60e01b815260040160405180910390fd5b610d11611505565b6040805160a0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290528a831684860152606084018a905260015461ffff600160e81b8204166080860152600092835260059091529084902093516321a7700b60e11b815292936101009091049091169163434ee01691610d9a918591908a908a90600401612252565b602060405180830381865afa158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb9190612306565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de610e13816111e0565b85610e1d81610907565b610e3a57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160a0810182526002546001600160a01b03908116825263ffffffff8b1660208084018290528b831684860152606084018b905260015461ffff600160e81b820416608086015260009283526005909152908490209351632b377bb160e11b815292936101009091049091169163566ef76291610ec3918591908b908b90600401612252565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f069190612306565b9998505050505050505050565b600080516020612666833981519152610f2b816111e0565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d90602001610c92565b600080516020612666833981519152610f91816111e0565b610f99611338565b600654600090610fc7906020850190600160a01b900463ffffffff16610fbf8287611bbc565b89898961139e565b90506000610fd58234612335565b6006549091506001600160a01b0316630c0c389e60e08601358360208801610ffd818a611bbc565b60808a013561100f60a08c018c612348565b61101c60c08e018e612348565b6040518a63ffffffff1660e01b815260040161103e97969594939291906123c7565b6000604051808303818589803b15801561105757600080fd5b5088f115801561106b573d6000803e3d6000fd5b505050505050505061107d6001600455565b5050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206126668339815191526110c5816111e0565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610c92565b60008051602061266683398151915261112d816111e0565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610c92565b60008051602061266683398151915261119b816111e0565b63ffffffff8416600090815260036020526040902061107d9084846119c7565b6000828152602081905260409020600101546111d6816111e0565b61070b838361152b565b6111ea81336115b5565b50565b6001600160a01b03831661120a5761120582826115f3565b505050565b6112058383836116a0565b61121d611505565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b6112716116db565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361124c565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156112da57506112d88383611084565b155b1561132457600180546015906112ff90600160a81b90046001600160401b031661241d565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836116fe565b5060019392505050565b60026004540361135b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600455565b60006113726031602d8486612443565b61137b9161246d565b60e01c9392505050565b60006113976113948484611790565b90565b9392505050565b600080836001600160401b038111156113b9576113b9611d85565b6040519080825280602002602001820160405280156113e2578160200160208202803683370190505b50905060005b848110156114b85760008686838181106114045761140461219f565b90506040020180360381019061141a919061249d565b9050600081600001516001600160a01b031682602001518790604051600060405180830381858888f193505050503d8060008114611474576040519150601f19603f3d011682016040523d82523d6000602084013e611479565b606091505b50509050808484815181106114905761149061219f565b9115156020928302919091018201528201516114ac90866124f3565b945050506001016113e8565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c34688888888888866040516114f296959493929190612544565b60405180910390a1509695505050505050565b60015460ff16156115295760405163d93c066560e01b815260040160405180910390fd5b565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8314801561156157506115618383611084565b156115ab576001805460159061158690600160a81b90046001600160401b03166125d8565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836117a9565b6115bf8282611084565b6108745760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044015b60405180910390fd5b6001600160a01b03821661161a576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611667576040519150601f19603f3d011682016040523d82523d6000602084013e61166c565b606091505b505090508061120557604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016115ea565b6001600160a01b0382166116c7576040516306b7a93160e41b815260040160405180910390fd5b6112056001600160a01b0384168383611814565b60015460ff1661152957604051638dfc202b60e01b815260040160405180910390fd5b600061170a8383611084565b611788576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117403390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610742565b506000610742565b60006117a0605160318486612443565b611397916125fb565b60006117b58383611084565b15611788576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610742565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b17905261120591859190600090611872908416836118c0565b905080516000141580156118975750808060200190518101906118959190612619565b155b1561120557604051635274afe760e01b81526001600160a01b03841660048201526024016115ea565b60606113978383600084600080856001600160a01b031684866040516118e69190612636565b60006040518083038185875af1925050503d8060008114611923576040519150601f19603f3d011682016040523d82523d6000602084013e611928565b606091505b5091509150611938868383611942565b9695505050505050565b606082611957576119528261199e565b611397565b815115801561196e57506001600160a01b0384163b155b1561199757604051639996b31560e01b81526001600160a01b03851660048201526024016115ea565b5080611397565b8051156119ae5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f01602090048101928215611a605791602002820160005b83821115611a3157833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026119f0565b8015611a5e5782816101000a81549060ff0219169055600101602081600001049283019260010302611a31565b505b50611a6c929150611a70565b5090565b5b80821115611a6c5760008155600101611a71565b80356001600160a01b038116811461099957600080fd5b600080600060608486031215611ab157600080fd5b611aba84611a85565b9250611ac860208501611a85565b9150604084013590509250925092565b600060208284031215611aea57600080fd5b81356001600160e01b03198116811461139757600080fd5b80151581146111ea57600080fd5b600060208284031215611b2257600080fd5b813561139781611b02565b600060208284031215611b3f57600080fd5b5035919050565b803563ffffffff8116811461099957600080fd5b600060208284031215611b6c57600080fd5b61139782611b46565b6020808252825182820181905260009190848201906040850190845b81811015611bb057835160ff1683529284019291840191600101611b91565b50909695505050505050565b600060208284031215611bce57600080fd5b61139782611a85565b60008060408385031215611bea57600080fd5b82359150611bfa60208401611a85565b90509250929050565b60008083601f840112611c1557600080fd5b5081356001600160401b03811115611c2c57600080fd5b602083019150836020828501011115611c4457600080fd5b9250929050565b600080600060408486031215611c6057600080fd5b83356001600160401b03811115611c7657600080fd5b611c8286828701611c03565b909790965060209590950135949350505050565b600060608284031215611ca857600080fd5b50919050565b60008083601f840112611cc057600080fd5b5081356001600160401b03811115611cd757600080fd5b6020830191508360208260061b8501011115611c4457600080fd5b600080600080600080600060e0888a031215611d0d57600080fd5b611d178989611c96565b965060608801356001600160401b0380821115611d3357600080fd5b611d3f8b838c01611cae565b909850965060808a0135955060a08a0135915080821115611d5f57600080fd5b50611d6c8a828b01611c03565b989b979a5095989497959660c090950135949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611dbd57611dbd611d85565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611deb57611deb611d85565b604052919050565b80356001600160401b038116811461099957600080fd5b803561ffff8116811461099957600080fd5b80356001600160801b038116811461099957600080fd5b60006020808385031215611e4657600080fd5b82356001600160401b0380821115611e5d57600080fd5b818501915085601f830112611e7157600080fd5b813581811115611e8357611e83611d85565b611e91848260051b01611dc3565b818152848101925060c0918202840185019188831115611eb057600080fd5b938501935b82851015611f425780858a031215611ecd5760008081fd5b611ed5611d9b565b611ede86611b46565b8152611eeb878701611df3565b878201526040611efc818801611df3565b908201526060611f0d878201611e0a565b908201526080611f1e878201611e1c565b9082015260a0611f2f878201611e1c565b9082015284529384019392850192611eb5565b50979650505050505050565b60008060008060008060e08789031215611f6757600080fd5b611f718888611c96565b9550611f7f60608801611b46565b9450611f8d60808801611a85565b935060a08701356001600160401b03811115611fa857600080fd5b611fb489828a01611cae565b979a969950949794969560c090950135949350505050565b600080600080600060808688031215611fe457600080fd5b611fed86611b46565b9450611ffb60208701611a85565b93506040860135925060608601356001600160401b0381111561201d57600080fd5b61202988828901611c03565b969995985093965092949392505050565b6000806000806060858703121561205057600080fd5b84356001600160401b038082111561206757600080fd5b61207388838901611cae565b909650945060208701359350604087013591508082111561209357600080fd5b50850161010081880312156120a757600080fd5b939692955090935050565b6000602082840312156120c457600080fd5b61139782611e0a565b6000806000604084860312156120e257600080fd5b6120eb84611b46565b925060208401356001600160401b038082111561210757600080fd5b818601915086601f83011261211b57600080fd5b81358181111561212a57600080fd5b8760208260051b850101111561213f57600080fd5b6020830194508093505050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061218f604083018587612152565b9050826020830152949350505050565b634e487b7160e01b600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015612245578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016121d2565b5091979650505050505050565b84516001600160a01b03908116825260208087015163ffffffff1690830152604080870151909116818301526060808701519083015260808087015161ffff9081168285015286546001600160401b0380821660a08701529381901c90911660c085015260501c6001600160801b0390811660e08501526001870154908116610100850152901c1661012082015261016061014082018190526000906122fb8382018587612152565b979650505050505050565b60006020828403121561231857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107425761074261231f565b6000808335601e1984360301811261235f57600080fd5b8301803591506001600160401b0382111561237957600080fd5b602001915036819003821315611c4457600080fd5b63ffffffff61239c82611b46565b168252602081013560208301526001600160401b036123bd60408301611df3565b1660408301525050565b6123d1818961238e565b60018060a01b038716606082015285608082015260e060a082015260006123fc60e083018688612152565b82810360c084015261240f818587612152565b9a9950505050505050505050565b60006001600160401b038083168181036124395761243961231f565b6001019392505050565b6000808585111561245357600080fd5b8386111561246057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156124955780818660040360031b1b83161692505b505092915050565b6000604082840312156124af57600080fd5b604051604081018181106001600160401b03821117156124d1576124d1611d85565b6040526124dd83611a85565b8152602083013560208201528091505092915050565b808201808211156107425761074261231f565b60008151808452602080850194506020840160005b8381101561253957815115158752958201959082019060010161251b565b509495945050505050565b600060e08201612554838a61238e565b63ffffffff881660608401526001600160a01b03878116608085015260e060a0850152908590528590610100840160005b878110156125b6578261259785611a85565b1682526020848101359083015260409384019390910190600101612585565b5084810360c08601526125c98187612506565b9b9a5050505050505050505050565b60006001600160401b038216806125f1576125f161231f565b6000190192915050565b8035602083101561074257600019602084900360031b1b1692915050565b60006020828403121561262b57600080fd5b815161139781611b02565b6000825160005b81811015612657576020818601810151858301520161263d565b50600092019182525091905056fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220cab19ebaa8e6602c84c9f9f739a45b5571c5513ee60da41f638da9127243412364736f6c6343000816003360a060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610052565b50670de0b6b3a76400006080526100a2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60805161119a6100bd60003960006107cb015261119a6000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063434ee01614610087578063566ef762146100ba578063715018a6146100da5780638da5cb5b146100ef578063f2fde38b1461011757600080fd5b3661006057005b600080fd5b34801561007157600080fd5b50610085610080366004610dc9565b610137565b005b34801561009357600080fd5b506100a76100a2366004610e1d565b61014f565b6040519081526020015b60405180910390f35b3480156100c657600080fd5b506100a76100d5366004610e1d565b610328565b3480156100e657600080fd5b506100856103fb565b3480156100fb57600080fd5b506000546040516001600160a01b0390911681526020016100b1565b34801561012357600080fd5b50610085610132366004610eaf565b61040f565b61013f61044d565b61014a83838361047a565b505050565b600061015e6020850185610eca565b67ffffffffffffffff166000036101a65761017f6040860160208701610ef4565b60405163c3baa0b760e01b815263ffffffff90911660048201526024015b60405180910390fd5b6000806101f96101c56101bf60408a0160208b01610ef4565b50600090565b6101d26020890189610eca565b6101e260a08a0160808b01610eca565b6101f260808b0160608c01610f2f565b898961049d565b9092509050600080808061021060208c018c610eaf565b6001600160a01b03166388a4124c61022e60408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa158015610281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a59190610f4c565b929650909450925090506102ef846102c360408d0160208e01610fa1565b8d60800160208101906102d69190610fa1565b8d60400160208101906102e99190610f2f565b8561075b565b965061030f8684848e608001602081019061030a9190610fa1565b610832565b6103199088610fdb565b9b9a5050505050505050505050565b60006103376020850185610eca565b67ffffffffffffffff166000036103585761017f6040860160208701610ef4565b6000806103716101c56101bf60408a0160208b01610ef4565b9092509050600080808061038860208c018c610eaf565b6001600160a01b031663c1723a1d6103a660408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af1158015610281573d6000803e3d6000fd5b61040361044d565b61040d600061088a565b565b61041761044d565b6001600160a01b03811661044157604051631e4fbdf760e01b81526000600482015260240161019d565b61044a8161088a565b50565b6000546001600160a01b0316331461040d5760405163118cdaa760e01b815233600482015260240161019d565b6001600160a01b0383166104925761014a82826108da565b61014a838383610987565b6000808281036104bf5760405162575ea160e01b815260040160405180910390fd5b5067ffffffffffffffff861660008089815b868410156106a15760003681806104e98c8c8a6109c2565b9a509195509350915087905060001960ff85160161057c5760008061050e8585610a18565b9150915087801561052857506000816001600160801b0316115b1561054b5760405163052e551560e01b815260ff8716600482015260240161019d565b61055e6001600160801b0382168d610fdb565b9b506105736001600160801b03831688610fdb565b96505050610698565b60011960ff8516016105b25760006105948484610a7d565b5090506105aa6001600160801b0382168c610fdb565b9a5050610698565b60021960ff8516016106655785156105e25760405163052e551560e01b815260ff8516600482015260240161019d565b6000806105ef8585610abb565b9250925050816001600160801b031660000361061e5760405163a169d0e160e01b815260040160405180910390fd5b6106316001600160801b0382168d610fdb565b9b508f67ffffffffffffffff16826106499190610fee565b61065c906001600160801b03168c610fdb565b9a505050610698565b60031960ff85160161067a5760019650610698565b60405163052e551560e01b815260ff8516600482015260240161019d565b505050506104d1565b8387146106c457604051634c83bb7560e11b81526004810185905260240161019d565b886001600160801b03168611156106ff576040516242670160e11b8152600481018790526001600160801b038a16602482015260440161019d565b8060000361072057604051630e5eb8f360e41b815260040160405180910390fd5b61072a8186610fdb565b9450821561074c57606461073f866066611015565b610749919061102c565b94505b50505050965096945050505050565b60008061ffff86161561076e5785610770565b845b9050600061271061078561ffff84168a611015565b61078f919061102c565b90506001600160801b03841615806107ae57506001600160801b038516155b156107bc5791506108299050565b600088856001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000886001600160801b03166107fe9190611015565b610808919061102c565b6108129190610fdb565b90508181116108215781610823565b805b93505050505b95945050505050565b60008415610882576127108261ffff16846001600160801b0316866001600160801b0316886108619190611015565b61086b919061102c565b6108759190611015565b61087f919061102c565b90505b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216610901576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461094e576040519150601f19603f3d011682016040523d82523d6000602084013e610953565b606091505b505090508061014a57604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161019d565b6001600160a01b0382166109ae576040516306b7a93160e41b815260040160405180910390fd5b61014a6001600160a01b0384168383610b2f565b6000368160018401816109d6888884610b81565b6002929092019190506109ea888884610baa565b94506001820161ffff82168301610a0381838b8d61104e565b979b909a50969850505061ffff160193505050565b60008060108314801590610a2d575060208314155b15610a4b57604051634796aee160e01b815260040160405180910390fd5b610a5784846000610bcf565b915060208314610a68576000610a74565b610a7484846010610bcf565b90509250929050565b60008060308314610aa1576040516361d0c2c760e11b815260040160405180910390fd5b610aad84846000610bcf565b9150610a7484846010610bf6565b6000808060128414801590610ad1575060228414155b15610aef57604051638b4aa70b60e01b815260040160405180910390fd5b610afb85856000610b81565b9250610b0985856002610bcf565b915060228414610b1a576000610b26565b610b2685856012610bcf565b90509250925092565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261014a908490610c11565b600060028201610b938184868861104e565b610b9c91611078565b60f01c9150505b9392505050565b6000838383818110610bbe57610bbe6110a8565b919091013560f81c95945050505050565b600060108201610be18184868861104e565b610bea916110be565b60801c95945050505050565b600060208201610c088184868861104e565b610829916110f5565b6000610c266001600160a01b03841683610c74565b90508051600014158015610c4b575080806020019051810190610c499190611113565b155b1561014a57604051635274afe760e01b81526001600160a01b038416600482015260240161019d565b6060610c8283836000610c8b565b90505b92915050565b606081471015610cb05760405163cd78605960e01b815230600482015260240161019d565b600080856001600160a01b03168486604051610ccc9190611135565b60006040518083038185875af1925050503d8060008114610d09576040519150601f19603f3d011682016040523d82523d6000602084013e610d0e565b606091505b5091509150610d1e868383610d28565b9695505050505050565b606082610d3d57610d3882610d84565b610ba3565b8151158015610d5457506001600160a01b0384163b155b15610d7d57604051639996b31560e01b81526001600160a01b038516600482015260240161019d565b5080610ba3565b805115610d945780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610dc457600080fd5b919050565b600080600060608486031215610dde57600080fd5b610de784610dad565b9250610df560208501610dad565b9150604084013590509250925092565b600060a08284031215610e1757600080fd5b50919050565b6000806000806101608587031215610e3457600080fd5b610e3e8686610e05565b9350610e4d8660a08701610e05565b925061014085013567ffffffffffffffff80821115610e6b57600080fd5b818701915087601f830112610e7f57600080fd5b813581811115610e8e57600080fd5b886020828501011115610ea057600080fd5b95989497505060200194505050565b600060208284031215610ec157600080fd5b610c8282610dad565b600060208284031215610edc57600080fd5b813567ffffffffffffffff81168114610ba357600080fd5b600060208284031215610f0657600080fd5b813563ffffffff81168114610ba357600080fd5b6001600160801b038116811461044a57600080fd5b600060208284031215610f4157600080fd5b8135610ba381610f1a565b60008060008060808587031215610f6257600080fd5b845193506020850151610f7481610f1a565b6040860151909350610f8581610f1a565b6060860151909250610f9681610f1a565b939692955090935050565b600060208284031215610fb357600080fd5b813561ffff81168114610ba357600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610c8557610c85610fc5565b6001600160801b0381811683821601908082111561100e5761100e610fc5565b5092915050565b8082028115828204841417610c8557610c85610fc5565b60008261104957634e487b7160e01b600052601260045260246000fd5b500490565b6000808585111561105e57600080fd5b8386111561106b57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156110a05780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b6fffffffffffffffffffffffffffffffff1981358181169160108510156110a05760109490940360031b84901b1690921692915050565b80356020831015610c8557600019602084900360031b1b1692915050565b60006020828403121561112557600080fd5b81518015158114610ba357600080fd5b6000825160005b81811015611156576020818601810151858301520161113c565b50600092019182525091905056fea26469706673582212203780ea40a0f93eab5083efacc1d316a7c83f03997bd6b3821d356fbf88b94a5164736f6c6343000816003360a06040523480156200001157600080fd5b50604051620038e7380380620038e78339810160408190526200003491620004de565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b03861617905582828686612ee060008660005b8551811015620000d657620000cc7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000b857620000b8620005b1565b60200260200101516200027d60201b60201c565b5060010162000074565b5060005b815181101562000128576200011e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000b857620000b8620005b1565b50600101620000da565b505050505050806001600160401b03166000036200015957604051635f86e17760e01b815260040160405180910390fd5b806001600160401b0316825110156200019f5781516040516378e2c15760e11b81526001600160401b039182166004820152908216602482015260440160405180910390fd5b6000805b835181101562000231576000848281518110620001c457620001c4620005b1565b60200260200101519050826001600160a01b0316816001600160a01b03161162000201576040516305fa937f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600460205260409020805460ff1916600190811790915590925001620001a3565b50509051600580546001600160401b0393841668010000000000000000026001600160801b0319909116939092169290921717905550505063ffffffff90921660805250620006049050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83148015620002d057506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b156200031d5760018054601590620002f890600160a81b90046001600160401b0316620005c7565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b62000329838362000335565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16620003da576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620003913390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200032f565b5060006200032f565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200041157600080fd5b919050565b600082601f8301126200042857600080fd5b815160206001600160401b0380831115620004475762000447620003e3565b8260051b604051601f19603f830116810181811084821117156200046f576200046f620003e3565b60405293845260208187018101949081019250878511156200049057600080fd5b6020870191505b84821015620004bb57620004ab82620003f9565b8352918301919083019062000497565b979650505050505050565b80516001600160401b03811681146200041157600080fd5b60008060008060008060c08789031215620004f857600080fd5b865163ffffffff811681146200050d57600080fd5b60208801519096506001600160401b03808211156200052b57600080fd5b620005398a838b0162000416565b96506200054960408a01620003f9565b955060608901519150808211156200056057600080fd5b6200056e8a838b0162000416565b94506200057e60808a01620004c6565b935060a08901519150808211156200059557600080fd5b50620005a489828a0162000416565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b03198101620005fa57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6080516132b96200062e6000396000818161074c015281816112280152611b1001526132b96000f3fe60806040526004361061022f5760003560e01c80638585c9451161012e578063c7a823e0116100ab578063d547741f1161006f578063d547741f146107aa578063dafe0ccc146107ca578063f010cb23146107ea578063f3b4ebd01461080a578063fd62e7501461082a57600080fd5b8063c7a823e0146106cc578063c7b2370b146106fa578063cd88b9031461071a578063cf34c7681461073a578063d2ae21041461078357600080fd5b8063aef18bf7116100f2578063aef18bf714610617578063b143044b14610647578063c358de0a14610667578063c416aa5114610687578063c5e193cd146106ac57600080fd5b80638585c9451461052a57806391d148541461054a57806395d376d71461056a5780639e9449651461057d578063a217fddf1461060257600080fd5b80632f2ff15d116101bc5780635553fb8e116101805780635553fb8e1461046a5780635c975abb1461048a578063724e78da146104a2578063736c0d5b146104c2578063741bef1a146104f257600080fd5b80632f2ff15d146103ca57806330bb3aac146103ea57806331cb61051461040a57806336568abe1461042a57806352d3b8711461044a57600080fd5b806316c38b3c1161020357806316c38b3c146102e05780631703a01814610300578063248a9ca31461033f57806326e67a371461037d5780632de11376146103aa57600080fd5b8062bf2e801461023457806301e336671461026e57806301ffc9a7146102905780631095b6d7146102c0575b600080fd5b34801561024057600080fd5b5060015461025690600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561027a57600080fd5b5061028e610289366004612695565b61084a565b005b34801561029c57600080fd5b506102b06102ab3660046126d6565b610873565b6040519015158152602001610265565b3480156102cc57600080fd5b5061028e6102db366004612695565b6108aa565b3480156102ec57600080fd5b5061028e6102fb36600461270e565b6109ac565b34801561030c57600080fd5b5060055461032790600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610265565b34801561034b57600080fd5b5061036f61035a36600461272b565b60009081526020819052604090206001015490565b604051908152602001610265565b34801561038957600080fd5b5061039d610398366004612758565b6109d1565b6040516102659190612773565b3480156103b657600080fd5b506102b06103c53660046127ba565b610a58565b3480156103d657600080fd5b5061028e6103e53660046127d7565b610add565b3480156103f657600080fd5b5061036f610405366004612866565b610bb2565b34801561041657600080fd5b5061028e6104253660046128dd565b610cca565b34801561043657600080fd5b5061028e6104453660046127d7565b610cf4565b34801561045657600080fd5b5061028e61046536600461290b565b610d0d565b34801561047657600080fd5b5061036f610485366004612991565b610e86565b34801561049657600080fd5b5060015460ff166102b0565b3480156104ae57600080fd5b5061028e6104bd3660046127ba565b610f9e565b3480156104ce57600080fd5b506102b06104dd3660046127ba565b60046020526000908152604090205460ff1681565b3480156104fe57600080fd5b50600254610512906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b34801561053657600080fd5b5061028e6105453660046129e7565b61100c565b34801561055657600080fd5b506102b06105653660046127d7565b611038565b61036f610578366004612a1a565b611061565b34801561058957600080fd5b506105d1610598366004612758565b6006602052600090815260409020546001600160401b03811690600160401b810461ffff1690600160501b90046001600160801b031683565b604080516001600160401b03909416845261ffff90921660208401526001600160801b031690820152606001610265565b34801561060e57600080fd5b5061036f600081565b34801561062357600080fd5b506102b061063236600461272b565b60076020526000908152604090205460ff1681565b34801561065357600080fd5b5061028e610662366004612ac6565b6111d7565b34801561067357600080fd5b5061028e610682366004612b07565b61148c565b34801561069357600080fd5b506001546105129061010090046001600160a01b031681565b3480156106b857600080fd5b5061036f6106c7366004612991565b6114f4565b3480156106d857600080fd5b506106ec6106e7366004612b22565b611661565b604051610265929190612b76565b34801561070657600080fd5b5061028e6107153660046127ba565b61183f565b34801561072657600080fd5b5061028e610735366004612baa565b6118ad565b34801561074657600080fd5b5061076e7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610265565b34801561078f57600080fd5b5060015461032790600160a81b90046001600160401b031681565b3480156107b657600080fd5b5061028e6107c53660046127d7565b6118ec565b3480156107d657600080fd5b5061028e6107e5366004612695565b6119a0565b3480156107f657600080fd5b5061036f610805366004612bef565b611a55565b34801561081657600080fd5b5061028e610825366004612c59565b611a91565b34801561083657600080fd5b50600554610327906001600160401b031681565b60008051602061324483398151915261086281611c3f565b61086d848484611c49565b50505050565b60006001600160e01b03198216637965db0b60e01b14806108a457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000805160206132448339815191526108c281611c3f565b6108da60008051602061322483398151915285611038565b6108f757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561094157600080fd5b505af1158015610955573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b60006109b781611c3f565b81156109c9576109c5611c71565b5050565b6109c5611cc5565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610a4c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610a1d5790505b50505050509050919050565b6000610a847f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611038565b15610a9157506000919050565b600154600160a81b90046001600160401b03161580610ac35750610ac360008051602061326483398151915283611038565b15610ad057506001919050565b506000919050565b919050565b81600080516020613264833981519152811480610b1957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610b31575060008051602061322483398151915281145b15610b5b57303314610b5657604051637d5d391d60e11b815260040160405180910390fd5b610ba8565b6000805160206132448339815191528103610b8757610b56600080516020613244833981519152611c3f565b604051634a7ee1b960e11b8152600481018290526024015b60405180910390fd5b61086d8383611cfe565b600083610bbe81610a58565b610bdb57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290526001600160401b03808c16858701528a84166060860152600554600160401b900416608085015260015461ffff600160e81b82041660a086015260009283526006909152908490209351637bfa20a960e01b8152929361010090910490911691637bfa20a991610c7d918591908a908a90600401612d1d565b602060405180830381865afa158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbe9190612d77565b98975050505050505050565b303314610cea57604051637d5d391d60e11b815260040160405180910390fd5b6109c58282611d82565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020613244833981519152610d2581611c3f565b60005b82811015610e475736848483818110610d4357610d43612d90565b90506080020190506040518060600160405280826020016020810190610d6991906129e7565b6001600160401b03168152602001610d876060840160408501612b07565b61ffff168152602001610da06080840160608501612dbd565b6001600160801b0316905260066000610dbc6020850185612758565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516001600160801b0316600160501b026fffffffffffffffffffffffffffffffff60501b1961ffff909516600160401b0269ffffffffffffffffffff199094166001600160401b0390931692909217929092179290921691909117905550600101610d28565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051610e79929190612dd8565b60405180910390a1505050565b600081610e9281610a58565b610eaf57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808a1660208085018290526001600160401b03808b16868801528985166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451637bfa20a960e01b8152939461010090920490921692637bfa20a992610f52928692600401612ebc565b602060405180830381865afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190612d77565b979650505050505050565b600080516020613244833981519152610fb681611c3f565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b30331461102c57604051637d5d391d60e11b815260040160405180910390fd5b61103581611edd565b50565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600060008051602061322483398151915261107b81611c3f565b61108b60a08601608087016127ba565b61109481610a58565b6110b157604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c081019091526002546001600160a01b031681526000906020808201906110df908a018a612758565b63ffffffff1681526020016110fa60808a0160608b016129e7565b6001600160401b0316815260200161111860a08a0160808b016127ba565b6001600160a01b039081168252600554600160401b90046001600160401b0316602080840191909152600154600160e81b810461ffff16604090940193909352929350610100909104169063df2b057e90839060069060009061117d908d018d612758565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b81526004016111b89493929190612d1d565b6020604051808303816000875af1158015610f6f573d6000803e3d6000fd5b6000805160206132448339815191526111ef81611c3f565b60005b8281101561086d573684848381811061120d5761120d612d90565b905060200281019061121f9190612f15565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112556020830183612758565b63ffffffff16146112665750611484565b428160600135116112775750611484565b60006112b06112896020840184612758565b61129960408501602086016127ba565b6112a66040860186612f35565b8660600135611a55565b905060006112c5826106e76080860186612f35565b50905080611308576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611484565b600061132861131a6040860186612f35565b61132391612f7b565b611fab565b905080156113a35760008381526007602052604090205460ff1615611389577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611378929190612ff0565b60405180910390a150505050611484565b6000838152600760205260409020805460ff191660011790555b6000806113b660408701602088016127ba565b6001600160a01b03166113cc6040880188612f35565b6040516113da92919061308b565b6000604051808303816000865af19150503d8060008114611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50915091508161147d578215611443576000858152600760205260409020805460ff191690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf878260405161147492919061309b565b60405180910390a15b5050505050505b6001016111f2565b6000805160206132448339815191526114a481611c3f565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611000565b600060008051602061322483398151915261150e81611c3f565b8261151881610a58565b61153557604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808b1660208085018290526001600160401b03808c16868801528a85166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451636f9582bf60e11b815293946101009092049092169263df2b057e926115d8928692600401612ebc565b6020604051808303816000875af11580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612d77565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef8460405161164e91815260200190565b60405180910390a1505050949350505050565b600554600090819061168490600160401b90046001600160401b031660416130ca565b83146116965750600090506001611837565b60006116ef866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b600554600160401b90046001600160401b031681101561182b57366000888861171f8560416130ca565b9061172b8660016130e1565b6117369060416130ca565b92611743939291906130f4565b9150915060008061178a8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fe492505050565b50909250905060008160038111156117a4576117a4612b60565b146117bd57600060019850985050505050505050611837565b856001600160a01b0316826001600160a01b0316116117ea57600060029850985050505050505050611837565b6001600160a01b03821660009081526004602052604090205460ff1661181e57600060039850985050505050505050611837565b50935050506001016116f5565b50600160009350935050505b935093915050565b60008051602061324483398151915261185781611c3f565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611000565b6000805160206132448339815191526118c581611c3f565b63ffffffff841660009081526003602052604090206118e59084846125c2565b5050505050565b8160008051602061326483398151915281148061192857507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611940575060008051602061322483398151915281145b1561196a5730331461196557604051637d5d391d60e11b815260040160405180910390fd5b611996565b6000805160206132448339815191528103610b8757611965600080516020613244833981519152611c3f565b61086d8383612031565b6000805160206132448339815191526119b881611c3f565b6119d060008051602061322483398151915285611038565b6119ed57604051635ee08b9760e01b815260040160405180910390fd5b6040516303d8c5ef60e11b81526001600160a01b038481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001611a7095949392919061311e565b60405160208183030381529060405280519060200120905095945050505050565b42816060013511611ab557604051630bbaf26360e01b815260040160405180910390fd5b30611ac660408301602084016127ba565b6001600160a01b031614611b0957611ae460408201602083016127ba565b604051631ce0bfcd60e01b81526001600160a01b039091166004820152602401610b9f565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611b3d6020830183612758565b63ffffffff1614611b7757611b556020820182612758565b60405163134bf0e160e11b815263ffffffff9091166004820152602401610b9f565b6000611b896112896020840184612758565b90506000611b9e826106e76080860186612f35565b50905080611bbf57604051630af656f760e11b815260040160405180910390fd5b60008281526007602052604090205460ff1615611bf257604051634eb522d360e11b815260048101839052602401610b9f565b60008281526007602052604090819020805460ff1916600117905561086d9060008051602061324483398151915290611c2d90860186612f35565b810190611c3a91906127ba565b611cfe565b61103581336120a9565b6001600160a01b038316611c6657611c6182826120e2565b505050565b611c6183838361218f565b611c796121ca565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b611ccd6121f0565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ca8565b600060008051602061326483398151915283148015611d245750611d228383611038565b155b15611d6e5760018054601590611d4990600160a81b90046001600160401b0316613164565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612213565b5060019392505050565b6001600160a01b03821660009081526004602052604090205481151560ff909116151503611dd6576040516302c6469560e51b81526001600160a01b03831660048201528115156024820152604401610b9f565b6001600160a01b0382166000908152600460205260408120805460ff191683151517905581611e1c57600554611e17906001906001600160401b031661318a565b611e33565b600554611e33906001600160401b031660016131b1565b6005549091506001600160401b03600160401b9091048116908216811115611e81576040516378e2c15760e11b81526001600160401b03808416600483015282166024820152604401610b9f565b6005805467ffffffffffffffff19166001600160401b038416179055604080516001600160a01b038616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce910161099e565b806001600160401b0316600003611f0757604051635f86e17760e01b815260040160405180910390fd5b6005546001600160401b03908116908216811015611f4b576040516378e2c15760e11b81526001600160401b03808316600483015283166024820152604401610b9f565b600580546fffffffffffffffff00000000000000001916600160401b6001600160401b038516908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611000565b60006001600160e01b03198216630111a9b760e11b148015906108a457506001600160e01b0319821663704316e560e01b141592915050565b6000806000835160410361201e5760208401516040850151606086015160001a612010888285856122a5565b95509550955050505061202a565b50508151600091506002905b9250925092565b60006000805160206132648339815191528314801561205557506120558383611038565b1561209f576001805460159061207a90600160a81b90046001600160401b03166131d1565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612374565b6120b38282611038565b6109c55760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610b9f565b6001600160a01b038216612109576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612156576040519150601f19603f3d011682016040523d82523d6000602084013e61215b565b606091505b5050905080611c6157604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610b9f565b6001600160a01b0382166121b6576040516306b7a93160e41b815260040160405180910390fd5b611c616001600160a01b03841683836123df565b60015460ff16156121ee5760405163d93c066560e01b815260040160405180910390fd5b565b60015460ff166121ee57604051638dfc202b60e01b815260040160405180910390fd5b600061221f8383611038565b61229d576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556122553390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016108a4565b5060006108a4565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156122e0575060009150600390508261236a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612334573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123605750600092506001915082905061236a565b9250600091508190505b9450945094915050565b60006123808383611038565b1561229d576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016108a4565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b179052611c619185919060009061243d9084168361248b565b9050805160001415801561246257508080602001905181019061246091906131f4565b155b15611c6157604051635274afe760e01b81526001600160a01b0384166004820152602401610b9f565b6060612499838360006124a0565b9392505050565b6060814710156124c55760405163cd78605960e01b8152306004820152602401610b9f565b600080856001600160a01b031684866040516124e19190613211565b60006040518083038185875af1925050503d806000811461251e576040519150601f19603f3d011682016040523d82523d6000602084013e612523565b606091505b509150915061253386838361253d565b9695505050505050565b6060826125525761254d82612599565b612499565b815115801561256957506001600160a01b0384163b155b1561259257604051639996b31560e01b81526001600160a01b0385166004820152602401610b9f565b5080612499565b8051156125a95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f0160209004810192821561265b5791602002820160005b8382111561262c57833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026125eb565b80156126595782816101000a81549060ff021916905560010160208160000104928301926001030261262c565b505b5061266792915061266b565b5090565b5b80821115612667576000815560010161266c565b6001600160a01b038116811461103557600080fd5b6000806000606084860312156126aa57600080fd5b83356126b581612680565b925060208401356126c581612680565b929592945050506040919091013590565b6000602082840312156126e857600080fd5b81356001600160e01b03198116811461249957600080fd5b801515811461103557600080fd5b60006020828403121561272057600080fd5b813561249981612700565b60006020828403121561273d57600080fd5b5035919050565b803563ffffffff81168114610ad857600080fd5b60006020828403121561276a57600080fd5b61249982612744565b6020808252825182820181905260009190848201906040850190845b818110156127ae57835160ff168352928401929184019160010161278f565b50909695505050505050565b6000602082840312156127cc57600080fd5b813561249981612680565b600080604083850312156127ea57600080fd5b8235915060208301356127fc81612680565b809150509250929050565b80356001600160401b0381168114610ad857600080fd5b60008083601f84011261283057600080fd5b5081356001600160401b0381111561284757600080fd5b60208301915083602082850101111561285f57600080fd5b9250929050565b60008060008060006080868803121561287e57600080fd5b61288786612744565b945061289560208701612807565b935060408601356128a581612680565b925060608601356001600160401b038111156128c057600080fd5b6128cc8882890161281e565b969995985093965092949392505050565b600080604083850312156128f057600080fd5b82356128fb81612680565b915060208301356127fc81612700565b6000806020838503121561291e57600080fd5b82356001600160401b038082111561293557600080fd5b818501915085601f83011261294957600080fd5b81358181111561295857600080fd5b8660208260071b850101111561296d57600080fd5b60209290920196919550909350505050565b803561ffff81168114610ad857600080fd5b600080600080608085870312156129a757600080fd5b6129b08561297f565b93506129be6020860161297f565b92506129cc60408601612807565b915060608501356129dc81612680565b939692955090935050565b6000602082840312156129f957600080fd5b61249982612807565b600060a08284031215612a1457600080fd5b50919050565b600080600060408486031215612a2f57600080fd5b83356001600160401b0380821115612a4657600080fd5b612a5287838801612a02565b94506020860135915080821115612a6857600080fd5b50612a758682870161281e565b9497909650939450505050565b60008083601f840112612a9457600080fd5b5081356001600160401b03811115612aab57600080fd5b6020830191508360208260051b850101111561285f57600080fd5b60008060208385031215612ad957600080fd5b82356001600160401b03811115612aef57600080fd5b612afb85828601612a82565b90969095509350505050565b600060208284031215612b1957600080fd5b6124998261297f565b600080600060408486031215612b3757600080fd5b8335925060208401356001600160401b03811115612b5457600080fd5b612a758682870161281e565b634e487b7160e01b600052602160045260246000fd5b82151581526040810160048310612b9d57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b600080600060408486031215612bbf57600080fd5b612bc884612744565b925060208401356001600160401b03811115612be357600080fd5b612a7586828701612a82565b600080600080600060808688031215612c0757600080fd5b612c1086612744565b94506020860135612c2081612680565b935060408601356001600160401b03811115612c3b57600080fd5b612c478882890161281e565b96999598509660600135949350505050565b600060208284031215612c6b57600080fd5b81356001600160401b03811115612c8157600080fd5b612c8d84828501612a02565b949350505050565b60018060a01b0380825116835263ffffffff602083015116602084015260408201516001600160401b03808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000610140612d2c8388612c95565b612d6360c0840187546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b80610120840152610f938184018587612cf4565b600060208284031215612d8957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b80356001600160801b0381168114610ad857600080fd5b600060208284031215612dcf57600080fd5b61249982612da6565b6020808252818101839052600090604080840186845b87811015612e5f5763ffffffff612e0483612744565b1683526001600160401b03612e1a868401612807565b168584015261ffff612e2d85840161297f565b168484015260606001600160801b03612e47828501612da6565b16908401526080928301929190910190600101612dee565b5090979650505050505050565b60005b83811015612e87578181015183820152602001612e6f565b50506000910152565b60008151808452612ea8816020860160208601612e6c565b601f01601f19169290920160200192915050565b6000610140612ecb8387612c95565b612f0260c0840186546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b8061012084015261253381840185612e90565b60008235609e19833603018112612f2b57600080fd5b9190910192915050565b6000808335601e19843603018112612f4c57600080fd5b8301803591506001600160401b03821115612f6657600080fd5b60200191503681900382131561285f57600080fd5b6001600160e01b03198135818116916004851015612fa35780818660040360031b1b83161692505b505092915050565b6000808335601e19843603018112612fc257600080fd5b83016020810192503590506001600160401b03811115612fe157600080fd5b80360382131561285f57600080fd5b6040815263ffffffff61300284612744565b1660408201526000602084013561301881612680565b6001600160a01b031660608301526130336040850185612fab565b60a0608085015261304860e085018284612cf4565b915050606085013560a08401526130626080860186612fab565b848303603f190160c0860152613079838284612cf4565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000612c8d6040830184612e90565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a4576108a46130b4565b808201808211156108a4576108a46130b4565b6000808585111561310457600080fd5b8386111561311157600080fd5b5050820193919092039150565b63ffffffff60e01b8660e01b1681526bffffffffffffffffffffffff198560601b1660048201528360188201528183603883013760009101603801908152949350505050565b60006001600160401b03808316818103613180576131806130b4565b6001019392505050565b6001600160401b038281168282160390808211156131aa576131aa6130b4565b5092915050565b6001600160401b038181168382160190808211156131aa576131aa6130b4565b60006001600160401b038216806131ea576131ea6130b4565b6000190192915050565b60006020828403121561320657600080fd5b815161249981612700565b60008251612f2b818460208701612e6c56fe724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19dea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177574845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bcaa26469706673582212203b61bbdddbd40de2a99f40cf79bc54fd320e09acc6ea01dd4f473c7f674ee39f64736f6c6343000816003360a060405234801561001057600080fd5b50604051610e2e380380610e2e83398101604081905261002f916100b7565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610067565b506080526100d0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100c957600080fd5b5051919050565b608051610d436100eb60003960006105fa0152610d436000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063715018a6146100875780637bfa20a91461009c5780638da5cb5b146100cf578063df2b057e146100f7578063f2fde38b1461010a57600080fd5b3661006057005b600080fd5b34801561007157600080fd5b506100856100803660046109c7565b61012a565b005b34801561009357600080fd5b50610085610142565b3480156100a857600080fd5b506100bc6100b7366004610a03565b610156565b6040519081526020015b60405180910390f35b3480156100db57600080fd5b506000546040516001600160a01b0390911681526020016100c6565b6100bc610105366004610a03565b6102e6565b34801561011657600080fd5b50610085610125366004610aa5565b6103cf565b61013261040d565b61013d83838361043a565b505050565b61014a61040d565b610154600061045d565b565b60006101656020850185610ac0565b67ffffffffffffffff166000036101ad576101866040860160208701610aea565b60405163680489c560e11b815263ffffffff90911660048201526024015b60405180910390fd5b6101b783836104ad565b5060006101dc6101cd60a0880160808901610ac0565b67ffffffffffffffff1661051f565b90506000806101ee6020890189610aa5565b6001600160a01b03166388a4124c61020c60408b0160208c01610aea565b8561021a60208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff166044820152606401608060405180830381865afa158015610273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102979190610b25565b9350505091506102da828860200160208101906102b49190610b7a565b6102c460c08c0160a08d01610b7a565b6102d460608c0160408d01610b9e565b8561058b565b98975050505050505050565b60006102f56020850185610ac0565b67ffffffffffffffff16600003610316576101866040860160208701610aea565b61032083836104ad565b5060006103366101cd60a0880160808901610ac0565b90506000806103486020890189610aa5565b6001600160a01b031663c1723a1d61036660408b0160208c01610aea565b8561037460208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff1660448201526064016080604051808303816000875af1158015610273573d6000803e3d6000fd5b6103d761040d565b6001600160a01b03811661040157604051631e4fbdf760e01b8152600060048201526024016101a4565b61040a8161045d565b50565b6000546001600160a01b031633146101545760405163118cdaa760e01b81523360048201526024016101a4565b6001600160a01b0383166104525761013d8282610661565b61013d83838361070e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082156104f0576000806104c4868685610749565b604051637085244b60e01b815260ff8516600482015290965092945085935050602490910190506101a4565b8083146105135760405163013adb8360e21b8152600481018290526024016101a4565b60009150505b92915050565b60008061052d604184610bd1565b905061053a602082610bfe565b156105625761054a602082610bfe565b6105549082610c12565b61055f906020610c25565b90505b8061056f60e06044610c25565b6105799190610c25565b610584906040610c25565b9392505050565b60008061ffff86161561059e57856105a0565b845b905060006127106105b561ffff84168a610bd1565b6105bf9190610c38565b90506001600160801b03841615806105de57506001600160801b038516155b156105ec5791506106589050565b6000846001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000876001600160801b031661062d9190610bd1565b6106379190610c38565b610641908a610c25565b90508181116106505781610652565b805b93505050505b95945050505050565b6001600160a01b038216610688576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b505090508061013d57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016101a4565b6001600160a01b038216610735576040516306b7a93160e41b815260040160405180910390fd5b61013d6001600160a01b03841683836107a3565b60003681600184018161075d8888846107f5565b6002830192909150610775908990899060030161081c565b94506002820161ffff8216830161078e81838b8d610c4c565b979b909a50969850505061ffff160193505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261013d908490610841565b60006002820161080781848688610c4c565b61081091610c76565b60f01c95945050505050565b600083838381811061083057610830610ca6565b919091013560f81c95945050505050565b60006108566001600160a01b038416836108a4565b9050805160001415801561087b5750808060200190518101906108799190610cbc565b155b1561013d57604051635274afe760e01b81526001600160a01b03841660048201526024016101a4565b60606105848383600084600080856001600160a01b031684866040516108ca9190610cde565b60006040518083038185875af1925050503d8060008114610907576040519150601f19603f3d011682016040523d82523d6000602084013e61090c565b606091505b509150915061091c868383610926565b9695505050505050565b60608261093b5761093682610982565b610584565b815115801561095257506001600160a01b0384163b155b1561097b57604051639996b31560e01b81526001600160a01b03851660048201526024016101a4565b5080610584565b8051156109925780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109c257600080fd5b919050565b6000806000606084860312156109dc57600080fd5b6109e5846109ab565b92506109f3602085016109ab565b9150604084013590509250925092565b600080600080848603610140811215610a1b57600080fd5b60c0811215610a2957600080fd5b859450606060bf1982011215610a3e57600080fd5b5060c08501925061012085013567ffffffffffffffff80821115610a6157600080fd5b818701915087601f830112610a7557600080fd5b813581811115610a8457600080fd5b886020828501011115610a9657600080fd5b95989497505060200194505050565b600060208284031215610ab757600080fd5b610584826109ab565b600060208284031215610ad257600080fd5b813567ffffffffffffffff8116811461058457600080fd5b600060208284031215610afc57600080fd5b813563ffffffff8116811461058457600080fd5b6001600160801b038116811461040a57600080fd5b60008060008060808587031215610b3b57600080fd5b845193506020850151610b4d81610b10565b6040860151909350610b5e81610b10565b6060860151909250610b6f81610b10565b939692955090935050565b600060208284031215610b8c57600080fd5b813561ffff8116811461058457600080fd5b600060208284031215610bb057600080fd5b813561058481610b10565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761051957610519610bbb565b634e487b7160e01b600052601260045260246000fd5b600082610c0d57610c0d610be8565b500690565b8181038181111561051957610519610bbb565b8082018082111561051957610519610bbb565b600082610c4757610c47610be8565b500490565b60008085851115610c5c57600080fd5b83861115610c6957600080fd5b5050820193919092039150565b6001600160f01b03198135818116916002851015610c9e5780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610cce57600080fd5b8151801515811461058457600080fd5b6000825160005b81811015610cff5760208186018101518583015201610ce5565b50600092019182525091905056fea2646970667358221220a3bc24e7c5cbedac7e00899eb168625849d3210800cd0b59d0aa08cd2b3af71664736f6c6343000816003360e06040523480156200001157600080fd5b5060405162001a4438038062001a44833981016040819052620000349162000179565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000668162000110565b50600180546001600160a01b0319166001600160a01b038481169190911790915581166080819052600060a0526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa158015620000cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f59190620001b8565b63ffffffff1660c052505060636003556064600455620001e7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200017657600080fd5b50565b600080604083850312156200018d57600080fd5b82516200019a8162000160565b6020840151909250620001ad8162000160565b809150509250929050565b600060208284031215620001cb57600080fd5b815163ffffffff81168114620001e057600080fd5b9392505050565b60805160a05160c05161181162000233600039600061038c015260006102fb0152600081816102c7015281816105d6015281816106df015281816108e50152610aa101526118116000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063996f79c01161006f578063996f79c014610447578063aec336e61461045d578063d80e9bd91461047d578063dabca063146104aa578063f2fde38b146104ca578063fd9be522146104ea57610156565b8063715018a614610365578063726075371461037a57806372d71322146103c35780638da5cb5b146103e55780638f58aa7a14610403578063909532381461042357610156565b80634389e58f116101085780634389e58f1461025a57806354fd4d50146102895780635e280f11146102b557806361d027b3146102e95780636251b6371461031d5780636750cd4c1461034457610156565b806301ffc9a71461016f5780630e97289b146101a457806312cc947f146101dc5780631881d94d146101fe5780631c7c294e1461021a578063334993ff1461023a57610156565b3661015657005b604051632657b6c360e01b815260040160405180910390fd5b34801561017b57600080fd5b5061018f61018a366004610fd6565b61050a565b60405190151581526020015b60405180910390f35b3480156101b057600080fd5b506001546101c4906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b3480156101e857600080fd5b506101fc6101f7366004611041565b610541565b005b34801561020a57600080fd5b50600260405161019b9190611082565b34801561022657600080fd5b506002546101c4906001600160a01b031681565b34801561024657600080fd5b506101fc6102553660046110aa565b6106b3565b34801561026657600080fd5b5061027a6102753660046111bc565b6106c6565b60405161019b93929190611283565b34801561029557600080fd5b50604080516000808252602082015260029181019190915260600161019b565b3480156102c157600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f557600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b34801561032957600080fd5b50610332600181565b60405160ff909116815260200161019b565b34801561035057600080fd5b5061018f61035f3660046112d2565b50600190565b34801561037157600080fd5b506101fc610810565b34801561038657600080fd5b506103ae7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161019b565b3480156103cf57600080fd5b506103d8610824565b60405161019b91906112ed565b3480156103f157600080fd5b506000546001600160a01b03166101c4565b34801561040f57600080fd5b506101fc61041e366004611320565b6108b2565b34801561042f57600080fd5b5061043960035481565b60405190815260200161019b565b34801561045357600080fd5b5061043960045481565b34801561046957600080fd5b506101fc61047836600461134c565b6109a7565b34801561048957600080fd5b5061049d610498366004611369565b6109d1565b60405161019b91906113e4565b3480156104b657600080fd5b506101fc6104c53660046113fb565b610a13565b3480156104d657600080fd5b506101fc6104e536600461134c565b610a2b565b3480156104f657600080fd5b506101fc610505366004611320565b610a6e565b60006001600160e01b031982166325fc096160e21b148061053b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6002546001600160a01b03161580159061056657506002546001600160a01b03163314155b1561058457604051631c2c85bb60e21b815260040160405180910390fd5b6000604051806060016040528061059b8585610b2e565b63ffffffff1681526020016105b08585610b51565b81526020016105bf8585610b71565b6001600160401b0316905290506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106068686610b94565b6106108787610ba6565b60405161061e929190611437565b6040805191829003822060e086901b6001600160e01b0319168352845163ffffffff166004840152602085015160248401529301516001600160401b031660448201526001600160a01b039091166064820152608481019190915260a401600060405180830381600087803b15801561069657600080fd5b505af11580156106aa573d6000803e3d6000fd5b50505050505050565b6106bb610bc2565b600491909155600355565b60408051808201909152600080825260208201526060807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461072657604051630fd72cd960e31b815260040160405180910390fd5b6107376107328761145e565b610bef565b9150845160001461074857846107d4565b60058054610755906114fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610781906114fb565b80156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b50505050505b90506107e08282610c47565b60405180604001604052806004548152602001856107ff576000610803565b6003545b9052969195509350915050565b610818610bc2565b6108226000610caf565b565b60058054610831906114fb565b80601f016020809104026020016040519081016040528092919081815260200182805461085d906114fb565b80156108aa5780601f1061087f576101008083540402835291602001916108aa565b820191906000526020600020905b81548152906001019060200180831161088d57829003601f168201915b505050505081565b6108ba610bc2565b6001600160a01b0382166108e157604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061152f565b90506001600160a01b03811661098e576040516354c1781b60e01b815260040160405180910390fd5b6109a26001600160a01b0382168484610cff565b505050565b6109af610bc2565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600454815260200183610a04576000610a08565b6003545b905295945050505050565b610a1b610bc2565b6005610a278282611594565b5050565b610a33610bc2565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610a6b81610caf565b50565b610a76610bc2565b6001600160a01b038216610a9d57604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b21919061152f565b90506109a2818484610d51565b6000610b3e600d60098486611653565b610b479161167d565b60e01c9392505050565b6000610b61602d600d8486611653565b610b6a916116ad565b9392505050565b6000610b81600960018486611653565b610b8a916116cb565b60c01c9392505050565b6000610b6a610ba38484610d74565b90565b366000610bb68360518187611653565b915091505b9250929050565b6000546001600160a01b031633146108225760405163118cdaa760e01b8152336004820152602401610a59565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610c3198600198919791966001600160a01b031695016116f9565b6040516020818303038152906040529050919050565b600154604051631f5dad8b60e31b81526001600160a01b039091169063faed6c5890610c799085908590600401611774565b600060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526109a2908490610d84565b6001600160a01b038316610d69576109a28282610de7565b6109a2838383610e94565b6000610b61605160318486611653565b6000610d996001600160a01b03841683610ecf565b90508051600014158015610dbe575080806020019051810190610dbc91906117a2565b155b156109a257604051635274afe760e01b81526001600160a01b0384166004820152602401610a59565b6001600160a01b038216610e0e576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b50509050806109a257604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610a59565b6001600160a01b038216610ebb576040516306b7a93160e41b815260040160405180910390fd5b6109a26001600160a01b0384168383610cff565b6060610b6a8383600084600080856001600160a01b03168486604051610ef591906117bf565b60006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b5091509150610f47868383610f51565b9695505050505050565b606082610f6657610f6182610fad565b610b6a565b8151158015610f7d57506001600160a01b0384163b155b15610fa657604051639996b31560e01b81526001600160a01b0385166004820152602401610a59565b5080610b6a565b805115610fbd5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610fe857600080fd5b81356001600160e01b031981168114610b6a57600080fd5b60008083601f84011261101257600080fd5b5081356001600160401b0381111561102957600080fd5b602083019150836020828501011115610bbb57600080fd5b6000806020838503121561105457600080fd5b82356001600160401b0381111561106a57600080fd5b61107685828601611000565b90969095509350505050565b60208101600383106110a457634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156110bd57600080fd5b50508035926020909101359150565b600060e082840312156110de57600080fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561111c5761111c6110e4565b60405290565b600082601f83011261113357600080fd5b81356001600160401b038082111561114d5761114d6110e4565b604051601f8301601f19908116603f01168101908282118183101715611175576111756110e4565b8160405283815286602085880101111561118e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610a6b57600080fd5b6000806000606084860312156111d157600080fd5b83356001600160401b03808211156111e857600080fd5b6111f4878388016110cc565b9450602086013591508082111561120a57600080fd5b5061121786828701611122565b9250506040840135611228816111ae565b809150509250925092565b60005b8381101561124e578181015183820152602001611236565b50506000910152565b6000815180845261126f816020860160208601611233565b601f01601f19169290920160200192915050565b83518152602080850151908201526080604082015260006112a76080830185611257565b8281036060840152610f478185611257565b803563ffffffff811681146112cd57600080fd5b919050565b6000602082840312156112e457600080fd5b610b6a826112b9565b602081526000610b6a6020830184611257565b6001600160a01b0381168114610a6b57600080fd5b80356112cd81611300565b6000806040838503121561133357600080fd5b823561133e81611300565b946020939093013593505050565b60006020828403121561135e57600080fd5b8135610b6a81611300565b6000806000806060858703121561137f57600080fd5b84356001600160401b038082111561139657600080fd5b6113a2888389016110cc565b955060208701359150808211156113b857600080fd5b506113c587828801611000565b90945092505060408501356113d9816111ae565b939692955090935050565b81518152602080830151908201526040810161053b565b60006020828403121561140d57600080fd5b81356001600160401b0381111561142357600080fd5b61142f84828501611122565b949350505050565b8183823760009101908152919050565b80356001600160401b03811681146112cd57600080fd5b600060e0823603121561147057600080fd5b6114786110fa565b61148183611447565b815261148f602084016112b9565b60208201526114a060408401611315565b60408201526114b1606084016112b9565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b038111156114e357600080fd5b6114ef36828601611122565b60c08301525092915050565b600181811c9082168061150f57607f821691505b6020821081036110de57634e487b7160e01b600052602260045260246000fd5b60006020828403121561154157600080fd5b8151610b6a81611300565b601f8211156109a2576000816000526020600020601f850160051c810160208610156115755750805b601f850160051c820191505b81811015610ca757828155600101611581565b81516001600160401b038111156115ad576115ad6110e4565b6115c1816115bb84546114fb565b8461154c565b602080601f8311600181146115f657600084156115de5750858301515b600019600386901b1c1916600185901b178555610ca7565b600085815260208120601f198616915b8281101561162557888601518255948401946001909101908401611606565b50858210156116435787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808585111561166357600080fd5b8386111561167057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116a55780818660040360031b1b83161692505b505092915050565b8035602083101561053b57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156116a55760089490940360031b84901b1690921692915050565b60ff60f81b8960f81b1681526001600160401b0360c01b8860c01b166001820152600063ffffffff60e01b808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611760816071850160208701611233565b919091016071019998505050505050505050565b6040815260006117876040830185611257565b82810360208401526117998185611257565b95945050505050565b6000602082840312156117b457600080fd5b8151610b6a816111ae565b600082516117d1818460208701611233565b919091019291505056fea2646970667358221220990cfb4d672f3a4b176b2a0dac3fbeff814b316fc90a05799662ae7184d6045a64736f6c63430008160033608060405234801561001057600080fd5b5061050c806100206000396000f3fe6080604052600436106100555760003560e01c80630ae6d46b1461005a578063609d333414610083578063c34c08e5146100a5578063d0a10260146100dd578063d5ce3389146100f2578063e21f37ce14610112575b600080fd5b34801561006657600080fd5b5061007060015481565b6040519081526020015b60405180910390f35b34801561008f57600080fd5b50610098610127565b60405161007a9190610222565b3480156100b157600080fd5b506003546100c5906001600160a01b031681565b6040516001600160a01b03909116815260200161007a565b6100f06100eb3660046102d6565b6101b5565b005b3480156100fe57600080fd5b506000546100c5906001600160a01b031681565b34801561011e57600080fd5b50610098610215565b6004805461013490610374565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610374565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b505050505081565b600080546001600160a01b0319166001600160a01b038916179055600186905560026101e2858783610415565b50600380546001600160a01b0319166001600160a01b038516179055600461020b858783610415565b5050505050505050565b6002805461013490610374565b60006020808352835180602085015260005b8181101561025057858101830151858201604001528201610234565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461028857600080fd5b919050565b60008083601f84011261029f57600080fd5b50813567ffffffffffffffff8111156102b757600080fd5b6020830191508360208285010111156102cf57600080fd5b9250929050565b600080600080600080600060a0888a0312156102f157600080fd5b6102fa88610271565b965060208801359550604088013567ffffffffffffffff8082111561031e57600080fd5b61032a8b838c0161028d565b909750955085915061033e60608b01610271565b945060808a013591508082111561035457600080fd5b506103618a828b0161028d565b989b979a50959850939692959293505050565b600181811c9082168061038857607f821691505b6020821081036103a857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b601f821115610410576000816000526020600020601f850160051c810160208610156103ed5750805b601f850160051c820191505b8181101561040c578281556001016103f9565b5050505b505050565b67ffffffffffffffff83111561042d5761042d6103ae565b6104418361043b8354610374565b836103c4565b6000601f841160018114610475576000851561045d5750838201355b600019600387901b1c1916600186901b1783556104cf565b600083815260209020601f19861690835b828110156104a65786850135825560209485019460019092019101610486565b50868210156104c35760001960f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea264697066735822122018aae83154d1fdb76542fdfef3ea577783f67dc8a90b8667d1027536f3d0416264736f6c63430008160033608060405234801561001057600080fd5b506101c9806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063043a78eb14610030575b600080fd5b61004361003e3660046100cc565b610057565b604051901515815260200160405180910390f35b600084848484604051637b43b43960e01b815260040161007a9493929190610161565b60405180910390fd5b60008083601f84011261009557600080fd5b50813567ffffffffffffffff8111156100ad57600080fd5b6020830191508360208285010111156100c557600080fd5b9250929050565b600080600080604085870312156100e257600080fd5b843567ffffffffffffffff808211156100fa57600080fd5b61010688838901610083565b9096509450602087013591508082111561011f57600080fd5b5061012c87828801610083565b95989497509550505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000610175604083018688610138565b8281036020840152610188818587610138565b97965050505050505056fea2646970667358221220ea9bbad397a0be403cdd619a7d40c7c06497bc53685000434d5009331c3f240064736f6c6343000816003360a06040523480156200001157600080fd5b5060405162003ac638038062003ac6833981016040819052620000349162000277565b838383838383838381818181806001600160a01b0381166200007057604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007b8162000142565b506001600160a01b038083166080528116620000aa57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000f257600080fd5b505af115801562000107573d6000803e3d6000fd5b50505050505050505050816005908162000122919062000397565b50600662000131828262000397565b505050505050505050505062000463565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ba57600080fd5b81516001600160401b0380821115620001d757620001d762000192565b604051601f8301601f19908116603f0116810190828211818310171562000202576200020262000192565b81604052838152602092508660208588010111156200022057600080fd5b600091505b8382101562000244578582018301518183018401529082019062000225565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200027257600080fd5b919050565b600080600080608085870312156200028e57600080fd5b84516001600160401b0380821115620002a657600080fd5b620002b488838901620001a8565b95506020870151915080821115620002cb57600080fd5b50620002da87828801620001a8565b935050620002eb604086016200025a565b9150620002fb606086016200025a565b905092959194509250565b600181811c908216806200031b57607f821691505b6020821081036200033c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000392576000816000526020600020601f850160051c810160208610156200036d5750805b601f850160051c820191505b818110156200038e5782815560010162000379565b5050505b505050565b81516001600160401b03811115620003b357620003b362000192565b620003cb81620003c4845462000306565b8462000342565b602080601f831160018114620004035760008415620003ea5750858301515b600019600386901b1c1916600185901b1785556200038e565b600085815260208120601f198616915b82811015620004345788860151825594840194600190910190840162000413565b5085821015620004535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051613616620004b06000396000818161053a01528181610a0a0152818161128901528181611529015281816117ac01528181611dc80152818161219d015261225601526136166000f3fe6080604052600436106102935760003560e01c80637d25a05e1161015a578063bc70b354116100c1578063d42438851161007a578063d42438851461084c578063dcdfd9111461086c578063e985e9c51461088c578063f2fde38b146108ac578063fc0c546a146104be578063ff7bd03d146108cc57600080fd5b8063bc70b35414610799578063bd815db0146107b9578063c6414e7b146107cc578063c87b56dd146107f9578063ca5eb5e114610819578063d045a0dc1461083957600080fd5b8063a72f5dd811610113578063a72f5dd8146106cf578063b21a33e4146106f7578063b731ea0a1461070c578063b88d4fde1461072c578063b98bd0701461074c578063bb0b6a531461076c57600080fd5b80637d25a05e1461060d57806382413eac146106485780638da5cb5b1461066857806395d89b41146106865780639f68b9641461069b578063a22cb465146106af57600080fd5b806342842e0e116101fe5780635e280f11116101b75780635e280f11146105285780636352211e1461055c5780636fc1b31e1461057c5780637048de9a1461059c57806370a08231146105ca578063715018a6146105f857600080fd5b806342842e0e146104465780634dba701b146104665780634f558e791461048657806352ae2879146104be5780635535d461146104d15780635a0dfe4d146104f157600080fd5b806317442b701161025057806317442b701461037c5780631f5e13341461039e57806321eb730b146103c657806323b872dd146103e65780633400288b1461040657806340c10f191461042657600080fd5b806301ffc9a71461029857806306fdde03146102cd578063081812fc146102ef578063095ea7b314610327578063111ecdad1461034957806313137d6514610369575b600080fd5b3480156102a457600080fd5b506102b86102b336600461263b565b6108ec565b60405190151581526020015b60405180910390f35b3480156102d957600080fd5b506102e261093e565b6040516102c491906126a8565b3480156102fb57600080fd5b5061030f61030a3660046126bb565b6109d0565b6040516001600160a01b0390911681526020016102c4565b34801561033357600080fd5b506103476103423660046126e9565b6109f9565b005b34801561035557600080fd5b5060045461030f906001600160a01b031681565b610347610377366004612775565b610a08565b34801561038857600080fd5b50604080516001815260026020820152016102c4565b3480156103aa57600080fd5b506103b3600181565b60405161ffff90911681526020016102c4565b6103d96103d4366004612826565b610ac8565b6040516102c49190612893565b3480156103f257600080fd5b506103476104013660046128d5565b610ba3565b34801561041257600080fd5b5061034761042136600461292f565b610c2e565b34801561043257600080fd5b506103476104413660046126e9565b610c40565b34801561045257600080fd5b506103476104613660046128d5565b610c4a565b34801561047257600080fd5b5061034761048136600461294b565b610c6a565b34801561049257600080fd5b506102b86104a13660046126bb565b6000908152600760205260409020546001600160a01b0316151590565b3480156104ca57600080fd5b503061030f565b3480156104dd57600080fd5b506102e26104ec36600461299b565b610c75565b3480156104fd57600080fd5b506102b861050c36600461292f565b63ffffffff919091166000908152600160205260409020541490565b34801561053457600080fd5b5061030f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561056857600080fd5b5061030f6105773660046126bb565b610d1a565b34801561058857600080fd5b506103476105973660046129ce565b610d25565b3480156105a857600080fd5b506105bc6105b73660046129eb565b610d82565b6040516102c4929190612a1f565b3480156105d657600080fd5b506105ea6105e53660046129ce565b610d97565b6040519081526020016102c4565b34801561060457600080fd5b50610347610ddf565b34801561061957600080fd5b5061063061062836600461292f565b600092915050565b6040516001600160401b0390911681526020016102c4565b34801561065457600080fd5b506102b8610663366004612a44565b610df3565b34801561067457600080fd5b506000546001600160a01b031661030f565b34801561069257600080fd5b506102e2610e08565b3480156106a757600080fd5b5060006102b8565b3480156106bb57600080fd5b506103476106ca366004612ab8565b610e17565b3480156106db57600080fd5b50604080516311f0c6d360e11b815260016020820152016102c4565b34801561070357600080fd5b506103b3600281565b34801561071857600080fd5b5060025461030f906001600160a01b031681565b34801561073857600080fd5b50610347610747366004612bfe565b610e22565b34801561075857600080fd5b50610347610767366004612cad565b610e39565b34801561077857600080fd5b506105ea610787366004612cee565b60016020526000908152604090205481565b3480156107a557600080fd5b506102e26107b4366004612d09565b610e53565b6103476107c7366004612cad565b610ffb565b3480156107d857600080fd5b506107ec6107e7366004612d69565b611185565b6040516102c49190612daf565b34801561080557600080fd5b506102e26108143660046126bb565b6111ed565b34801561082557600080fd5b506103476108343660046129ce565b611262565b610347610847366004612775565b6112e8565b34801561085857600080fd5b506103476108673660046129ce565b611317565b34801561087857600080fd5b50610347610887366004612dc6565b61136d565b34801561089857600080fd5b506102b86108a7366004612de9565b611378565b3480156108b857600080fd5b506103476108c73660046129ce565b6113a6565b3480156108d857600080fd5b506102b86108e7366004612e17565b6113e4565b60006001600160e01b031982166380ac58cd60e01b148061091d57506001600160e01b03198216635b5e139f60e01b145b8061093857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461094d90612e33565b80601f016020809104026020016040519081016040528092919081815260200182805461097990612e33565b80156109c65780601f1061099b576101008083540402835291602001916109c6565b820191906000526020600020905b8154815290600101906020018083116109a957829003601f168201915b5050505050905090565b60006109db8261141a565b506000828152600960205260409020546001600160a01b0316610938565b610a04828233611453565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610a58576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610a7290610a6d908a612cee565b611460565b14610ab057610a846020880188612cee565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610a4f565b610abf8787878787878761149c565b50505050505050565b610ad06125de565b6020840135610af257604051631e4ec46b60e01b815260040160405180910390fd5b610b0d336040860135610b086020880188612cee565b6115fb565b600080610b198661165b565b9092509050610b45610b2e6020880188612cee565b8383610b3f368a90038a018a612e67565b88611779565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610b7a60208a018a612cee565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610bcd57604051633250574960e11b815260006004820152602401610a4f565b6000610bda838333611884565b9050836001600160a01b0316816001600160a01b031614610c28576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610a4f565b50505050565b610c3661197d565b610a0482826119aa565b610a0482826119ff565b610c6583838360405180602001604052806000815250610e22565b505050565b610c65838383611a64565b600360209081526000928352604080842090915290825290208054610c9990612e33565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc590612e33565b8015610d125780601f10610ce757610100808354040283529160200191610d12565b820191906000526020600020905b815481529060010190602001808311610cf557829003601f168201915b505050505081565b60006109388261141a565b610d2d61197d565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b606080610d8e8361165b565b91509150915091565b60006001600160a01b038216610dc3576040516322718ad960e21b815260006004820152602401610a4f565b506001600160a01b031660009081526008602052604090205490565b610de761197d565b610df16000611a6e565b565b6001600160a01b03811630145b949350505050565b60606006805461094d90612e33565b610a04338383611abe565b610e2d848484610ba3565b610c2884848484611b5d565b610e4161197d565b610a04610e4e8284612e99565b611c7f565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610e8790612e33565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb390612e33565b8015610f005780601f10610ed557610100808354040283529160200191610f00565b820191906000526020600020905b815481529060010190602001808311610ee357829003601f168201915b505050505090508051600003610f505783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610e009350505050565b6000839003610f60579050610e00565b60028310610fde57610fa784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d8692505050565b80610fb58460028188612f6e565b604051602001610fc793929190612f98565b604051602081830303815290604052915050610e00565b8383604051639a6d49cd60e01b8152600401610a4f929190612fe9565b60005b81811015611104573683838381811061101957611019612ffd565b905060200281019061102b9190613013565b905061105e61103d6020830183612cee565b602083013563ffffffff919091166000908152600160205260409020541490565b61106857506110fc565b3063d045a0dc60c08301358360a0810135611087610100830183613034565b611098610100890160e08a016129ce565b6110a66101208a018a613034565b6040518963ffffffff1660e01b81526004016110c8979695949392919061308f565b6000604051808303818588803b1580156110e157600080fd5b505af11580156110f5573d6000803e3d6000fd5b5050505050505b600101610ffe565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611143573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116b9190810190613115565b604051638351eea760e01b8152600401610a4f91906126a8565b604080518082019091526000808252602082015260208301356111bb57604051631e4ec46b60e01b815260040160405180910390fd5b6000806111c78561165b565b90925090506111e46111dc6020870187612cee565b838387611db2565b95945050505050565b60606111f88261141a565b50600061121060408051602081019091526000815290565b90506000815111611230576040518060200160405280600081525061125b565b8061123a84611e8a565b60405160200161124b929190613182565b6040516020818303038152906040525b9392505050565b61126a61197d565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b5050505050565b3330146113085760405163029a949d60e31b815260040160405180910390fd5b610abf87878787878787610ab0565b61131f61197d565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610d77565b610a043383836115fb565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6113ae61197d565b6001600160a01b0381166113d857604051631e4fbdf760e01b815260006004820152602401610a4f565b6113e181611a6e565b50565b60006020820180359060019083906113fc9086612cee565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061093857604051637e27328960e01b815260048101849052602401610a4f565b610c658383836001611f1c565b63ffffffff8116600090815260016020526040812054806109385760405163f6ff4fb760e01b815263ffffffff84166004820152602401610a4f565b60006114ae6114ab8787612022565b90565b905060006114bc878761203a565b90506114d582826114d060208d018d612cee565b611a64565b604086111561159957600061150f6114f360608c0160408d016131b1565b61150060208d018d612cee565b61150a8b8b612057565b6120a2565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906115659086908d9060009087906004016131ce565b600060405180830381600087803b15801561157f57600080fd5b505af1158015611593573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56115d260208d018d612cee565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b61160482610d1a565b6001600160a01b0316836001600160a01b031614611652578261162683610d1a565b604051634342715b60e11b81526001600160a01b03928316600482015291166024820152604401610a4f565b610c65826120d1565b60608060006116b46020850135604086013561167a6080880188613034565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061210c92505050565b90935090506000816116c75760016116ca565b60025b90506116ea6116dc6020870187612cee565b826107b46060890189613034565b6004549093506001600160a01b031615611772576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb9161172f918891889101612a1f565b602060405180830381865afa15801561174c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177091906131ff565b505b5050915091565b6117816125de565b60006117908460000151612171565b6020850151909150156117aa576117aa8460200151612199565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016117fa8c611460565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161183692919061321c565b60806040518083038185885af1158015611854573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061187991906132c5565b979650505050505050565b6000828152600760205260408120546001600160a01b03908116908316156118b1576118b181848661227b565b6001600160a01b038116156118ef576118ce600085600080611f1c565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b0385161561191e576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610df15760405163118cdaa760e01b8152336004820152602401610a4f565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6001600160a01b038216611a2957604051633250574960e11b815260006004820152602401610a4f565b6000611a3783836000611884565b90506001600160a01b03811615610c65576040516339e3563760e11b815260006004820152602401610a4f565b610c6583836119ff565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216611af057604051630b61174360e31b81526001600160a01b0383166004820152602401610a4f565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610c2857604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611b9f90339088908790879060040161330f565b6020604051808303816000875af1925050508015611bda575060408051601f3d908101601f19168201909252611bd791810190613342565b60015b611c43573d808015611c08576040519150601f19603f3d011682016040523d82523d6000602084013e611c0d565b606091505b508051600003611c3b57604051633250574960e11b81526001600160a01b0385166004820152602401610a4f565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146112e157604051633250574960e11b81526001600160a01b0385166004820152602401610a4f565b60005b8151811015611d5657611cb1828281518110611ca057611ca0612ffd565b602002602001015160400151611d86565b818181518110611cc357611cc3612ffd565b60200260200101516040015160036000848481518110611ce557611ce5612ffd565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611d1f57611d1f612ffd565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611d4d91906133af565b50600101611c82565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610d77919061346e565b600281015161ffff8116600314610a045781604051639a6d49cd60e01b8152600401610a4f91906126a8565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611e1589611460565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611e4a92919061321c565b6040805180830381865afa158015611e66573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906134f9565b60606000611e97836122df565b60010190506000816001600160401b03811115611eb657611eb6612af1565b6040519080825280601f01601f191660200182016040528015611ee0576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611eea57509392505050565b8080611f3057506001600160a01b03821615155b15611ff2576000611f408461141a565b90506001600160a01b03831615801590611f6c5750826001600160a01b0316816001600160a01b031614155b8015611f7f5750611f7d8184611378565b155b15611fa85760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610a4f565b8115611ff05783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b60006120316020828486612f6e565b61125b91613515565b600061204a604060208486612f6e565b81019061125b91906126bb565b60606120668260408186612f6e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b60608383836040516020016120b993929190613533565b60405160208183030381529060405290509392505050565b60006120e06000836000611884565b90506001600160a01b038116610a0457604051637e27328960e01b815260048101839052602401610a4f565b8051606090151580612140576040805160208101879052908101859052606001604051602081830303815290604052612167565b84843385604051602001612157949392919061357d565b6040516020818303038152906040525b9150935093915050565b6000813414612195576040516304fb820960e51b8152346004820152602401610a4f565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221d91906135b1565b90506001600160a01b038116612246576040516329b99a9560e11b815260040160405180910390fd5b610a046001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856123b7565b612286838383612411565b610c65576001600160a01b0383166122b457604051637e27328960e01b815260048101829052602401610a4f565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610a4f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061231e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061234a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061236857662386f26fc10000830492506010015b6305f5e1008310612380576305f5e100830492506008015b612710831061239457612710830492506004015b606483106123a6576064830492506002015b600a83106109385760010192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610c28908590612474565b60006001600160a01b03831615801590610e005750826001600160a01b0316846001600160a01b0316148061244b575061244b8484611378565b80610e005750506000908152600960205260409020546001600160a01b03908116911614919050565b60006124896001600160a01b038416836124d7565b905080516000141580156124ae5750808060200190518101906124ac91906131ff565b155b15610c6557604051635274afe760e01b81526001600160a01b0384166004820152602401610a4f565b606061125b8383600084600080856001600160a01b031684866040516124fd91906135ce565b60006040518083038185875af1925050503d806000811461253a576040519150601f19603f3d011682016040523d82523d6000602084013e61253f565b606091505b509150915061254f868383612559565b9695505050505050565b60608261256e57612569826125b5565b61125b565b815115801561258557506001600160a01b0384163b155b156125ae57604051639996b31560e01b81526001600160a01b0385166004820152602401610a4f565b508061125b565b8051156125c55780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001612620604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146113e157600080fd5b60006020828403121561264d57600080fd5b813561125b81612625565b60005b8381101561267357818101518382015260200161265b565b50506000910152565b60008151808452612694816020860160208601612658565b601f01601f19169290920160200192915050565b60208152600061125b602083018461267c565b6000602082840312156126cd57600080fd5b5035919050565b6001600160a01b03811681146113e157600080fd5b600080604083850312156126fc57600080fd5b8235612707816126d4565b946020939093013593505050565b60006060828403121561272757600080fd5b50919050565b60008083601f84011261273f57600080fd5b5081356001600160401b0381111561275657600080fd5b60208301915083602082850101111561276e57600080fd5b9250929050565b600080600080600080600060e0888a03121561279057600080fd5b61279a8989612715565b96506060880135955060808801356001600160401b03808211156127bd57600080fd5b6127c98b838c0161272d565b909750955060a08a013591506127de826126d4565b90935060c089013590808211156127f457600080fd5b506128018a828b0161272d565b989b979a50959850939692959293505050565b600060c0828403121561272757600080fd5b6000806000838503608081121561283c57600080fd5b84356001600160401b0381111561285257600080fd5b61285e87828801612814565b9450506040601f198201121561287357600080fd5b506020840191506060840135612888816126d4565b809150509250925092565b6000608082019050825182526001600160401b03602084015116602083015260408301516128ce604084018280518252602090810151910152565b5092915050565b6000806000606084860312156128ea57600080fd5b83356128f5816126d4565b92506020840135612905816126d4565b929592945050506040919091013590565b803563ffffffff8116811461292a57600080fd5b919050565b6000806040838503121561294257600080fd5b61270783612916565b60008060006060848603121561296057600080fd5b833561296b816126d4565b92506020840135915061298060408501612916565b90509250925092565b803561ffff8116811461292a57600080fd5b600080604083850312156129ae57600080fd5b6129b783612916565b91506129c560208401612989565b90509250929050565b6000602082840312156129e057600080fd5b813561125b816126d4565b6000602082840312156129fd57600080fd5b81356001600160401b03811115612a1357600080fd5b610e0084828501612814565b604081526000612a32604083018561267c565b82810360208401526111e4818561267c565b60008060008060a08587031215612a5a57600080fd5b612a648686612715565b935060608501356001600160401b03811115612a7f57600080fd5b612a8b8782880161272d565b9094509250506080850135612a9f816126d4565b939692955090935050565b80151581146113e157600080fd5b60008060408385031215612acb57600080fd5b8235612ad6816126d4565b91506020830135612ae681612aaa565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612b2957612b29612af1565b60405290565b604051606081016001600160401b0381118282101715612b2957612b29612af1565b604051601f8201601f191681016001600160401b0381118282101715612b7957612b79612af1565b604052919050565b60006001600160401b03821115612b9a57612b9a612af1565b50601f01601f191660200190565b600082601f830112612bb957600080fd5b8135612bcc612bc782612b81565b612b51565b818152846020838601011115612be157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612c1457600080fd5b8435612c1f816126d4565b93506020850135612c2f816126d4565b92506040850135915060608501356001600160401b03811115612c5157600080fd5b612c5d87828801612ba8565b91505092959194509250565b60008083601f840112612c7b57600080fd5b5081356001600160401b03811115612c9257600080fd5b6020830191508360208260051b850101111561276e57600080fd5b60008060208385031215612cc057600080fd5b82356001600160401b03811115612cd657600080fd5b612ce285828601612c69565b90969095509350505050565b600060208284031215612d0057600080fd5b61125b82612916565b60008060008060608587031215612d1f57600080fd5b612d2885612916565b9350612d3660208601612989565b925060408501356001600160401b03811115612d5157600080fd5b612d5d8782880161272d565b95989497509550505050565b60008060408385031215612d7c57600080fd5b82356001600160401b03811115612d9257600080fd5b612d9e85828601612814565b9250506020830135612ae681612aaa565b815181526020808301519082015260408101610938565b60008060408385031215612dd957600080fd5b823591506129c560208401612916565b60008060408385031215612dfc57600080fd5b8235612e07816126d4565b91506020830135612ae6816126d4565b600060608284031215612e2957600080fd5b61125b8383612715565b600181811c90821680612e4757607f821691505b60208210810361272757634e487b7160e01b600052602260045260246000fd5b600060408284031215612e7957600080fd5b612e81612b07565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612eb357612eb3612af1565b8360051b6020612ec4818301612b51565b868152918501918181019036841115612edc57600080fd5b865b84811015612f6257803586811115612ef65760008081fd5b88016060368290031215612f0a5760008081fd5b612f12612b2f565b612f1b82612916565b8152612f28868301612989565b8682015260408083013589811115612f405760008081fd5b612f4c36828601612ba8565b9183019190915250845250918301918301612ede565b50979650505050505050565b60008085851115612f7e57600080fd5b83861115612f8b57600080fd5b5050820193919092039150565b60008451612faa818460208901612658565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610e00602083018486612fc0565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1983360301811261302a57600080fd5b9190910192915050565b6000808335601e1984360301811261304b57600080fd5b8301803591506001600160401b0382111561306557600080fd5b60200191503681900382131561276e57600080fd5b6001600160401b03811681146113e157600080fd5b63ffffffff61309d89612916565b16815260208801356020820152600060408901356130ba8161307a565b6001600160401b03811660408401525087606083015260e060808301526130e560e083018789612fc0565b6001600160a01b03861660a084015282810360c0840152613107818587612fc0565b9a9950505050505050505050565b60006020828403121561312757600080fd5b81516001600160401b0381111561313d57600080fd5b8201601f8101841361314e57600080fd5b805161315c612bc782612b81565b81815285602083850101111561317157600080fd5b6111e4826020830160208601612658565b60008351613194818460208801612658565b8351908301906131a8818360208801612658565b01949350505050565b6000602082840312156131c357600080fd5b813561125b8161307a565b60018060a01b038516815283602082015261ffff8316604082015260806060820152600061254f608083018461267c565b60006020828403121561321157600080fd5b815161125b81612aaa565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261325260e084018261267c565b90506060850151603f198483030160a085015261326f828261267c565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156132a757600080fd5b6132af612b07565b9050815181526020820151602082015292915050565b6000608082840312156132d757600080fd5b6132df612b2f565b8251815260208301516132f18161307a565b60208201526133038460408501613295565b60408201529392505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061254f9083018461267c565b60006020828403121561335457600080fd5b815161125b81612625565b601f821115610c65576000816000526020600020601f850160051c810160208610156133885750805b601f850160051c820191505b818110156133a757828155600101613394565b505050505050565b81516001600160401b038111156133c8576133c8612af1565b6133dc816133d68454612e33565b8461335f565b602080601f83116001811461341157600084156133f95750858301515b600019600386901b1c1916600185901b1785556133a7565b600085815260208120601f198616915b8281101561344057888601518255948401946001909101908401613421565b508582101561345e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156134eb57888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526134d78186018361267c565b968901969450505090860190600101613497565b509098975050505050505050565b60006040828403121561350b57600080fd5b61125b8383613295565b8035602083101561093857600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061356e81600c850160208701612658565b91909101600c01949350505050565b848152836020820152826040820152600082516135a1816060850160208701612658565b9190910160600195945050505050565b6000602082840312156135c357600080fd5b815161125b816126d4565b6000825161302a81846020870161265856fea264697066735822122071957703e50ccb286e5ebe46d2f949f82f18febb51e7410edae37ef294c4ceff64736f6c6343000816003360806040523480156200001157600080fd5b506040516200127738038062001277833981016040819052620000349162000126565b8181600062000044838262000221565b50600162000053828262000221565b5050505050620002ed565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008657600080fd5b81516001600160401b0380821115620000a357620000a36200005e565b604051601f8301601f19908116603f01168101908282118183101715620000ce57620000ce6200005e565b8160405283815260209250866020858801011115620000ec57600080fd5b600091505b83821015620001105785820183015181830184015290820190620000f1565b6000602085830101528094505050505092915050565b600080604083850312156200013a57600080fd5b82516001600160401b03808211156200015257600080fd5b620001608683870162000074565b935060208501519150808211156200017757600080fd5b50620001868582860162000074565b9150509250929050565b600181811c90821680620001a557607f821691505b602082108103620001c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021c576000816000526020600020601f850160051c81016020861015620001f75750805b601f850160051c820191505b81811015620002185782815560010162000203565b5050505b505050565b81516001600160401b038111156200023d576200023d6200005e565b62000255816200024e845462000190565b84620001cc565b602080601f8311600181146200028d5760008415620002745750858301515b600019600386901b1c1916600185901b17855562000218565b600085815260208120601f198616915b82811015620002be578886015182559484019460019091019084016200029d565b5085821015620002dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610f7a80620002fd6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806340c10f191461017f57806342842e0e1461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610bea565b61022d565b60405190151581526020015b60405180910390f35b61011f61027f565b60405161010e9190610c57565b61013f61013a366004610c6a565b610311565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610c9f565b61033a565b005b61016a61017a366004610cc9565b610349565b61016a61018d366004610c9f565b6103d9565b61016a6101a0366004610cc9565b6103e3565b61013f6101b3366004610c6a565b610403565b6101cb6101c6366004610d05565b61040e565b60405190815260200161010e565b61011f610456565b61016a6101ef366004610d20565b610465565b61016a610202366004610d72565b610470565b61011f610215366004610c6a565b610487565b610102610228366004610e4e565b6104fc565b60006001600160e01b031982166380ac58cd60e01b148061025e57506001600160e01b03198216635b5e139f60e01b145b8061027957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461028e90610e81565b80601f01602080910402602001604051908101604052809291908181526020018280546102ba90610e81565b80156103075780601f106102dc57610100808354040283529160200191610307565b820191906000526020600020905b8154815290600101906020018083116102ea57829003601f168201915b5050505050905090565b600061031c8261052a565b506000828152600460205260409020546001600160a01b0316610279565b610345828233610563565b5050565b6001600160a01b03821661037857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610385838333610570565b9050836001600160a01b0316816001600160a01b0316146103d3576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161036f565b50505050565b6103458282610669565b6103fe83838360405180602001604052806000815250610470565b505050565b60006102798261052a565b60006001600160a01b03821661043a576040516322718ad960e21b81526000600482015260240161036f565b506001600160a01b031660009081526003602052604090205490565b60606001805461028e90610e81565b6103453383836106ce565b61047b848484610349565b6103d38484848461076d565b60606104928261052a565b5060006104aa60408051602081019091526000815290565b905060008151116104ca57604051806020016040528060008152506104f5565b806104d484610896565b6040516020016104e5929190610ebb565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260408120546001600160a01b03168061027957604051637e27328960e01b81526004810184905260240161036f565b6103fe8383836001610929565b6000828152600260205260408120546001600160a01b039081169083161561059d5761059d818486610a2f565b6001600160a01b038116156105db576105ba600085600080610929565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b0385161561060a576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661069357604051633250574960e11b81526000600482015260240161036f565b60006106a183836000610570565b90506001600160a01b038116156103fe576040516339e3563760e11b81526000600482015260240161036f565b6001600160a01b03821661070057604051630b61174360e31b81526001600160a01b038316600482015260240161036f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156103d357604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906107af903390889087908790600401610eea565b6020604051808303816000875af19250505080156107ea575060408051601f3d908101601f191682019092526107e791810190610f27565b60015b610853573d808015610818576040519150601f19603f3d011682016040523d82523d6000602084013e61081d565b606091505b50805160000361084b57604051633250574960e11b81526001600160a01b038516600482015260240161036f565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461088f57604051633250574960e11b81526001600160a01b038516600482015260240161036f565b5050505050565b606060006108a383610a93565b600101905060008167ffffffffffffffff8111156108c3576108c3610d5c565b6040519080825280601f01601f1916602001820160405280156108ed576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846108f757509392505050565b808061093d57506001600160a01b03821615155b156109ff57600061094d8461052a565b90506001600160a01b038316158015906109795750826001600160a01b0316816001600160a01b031614155b801561098c575061098a81846104fc565b155b156109b55760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161036f565b81156109fd5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a3a838383610b6b565b6103fe576001600160a01b038316610a6857604051637e27328960e01b81526004810182905260240161036f565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161036f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ad25772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610afe576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610b1c57662386f26fc10000830492506010015b6305f5e1008310610b34576305f5e100830492506008015b6127108310610b4857612710830492506004015b60648310610b5a576064830492506002015b600a83106102795760010192915050565b60006001600160a01b03831615801590610bc95750826001600160a01b0316846001600160a01b03161480610ba55750610ba584846104fc565b80610bc957506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160e01b031981168114610be757600080fd5b50565b600060208284031215610bfc57600080fd5b81356104f581610bd1565b60005b83811015610c22578181015183820152602001610c0a565b50506000910152565b60008151808452610c43816020860160208601610c07565b601f01601f19169290920160200192915050565b6020815260006104f56020830184610c2b565b600060208284031215610c7c57600080fd5b5035919050565b80356001600160a01b0381168114610c9a57600080fd5b919050565b60008060408385031215610cb257600080fd5b610cbb83610c83565b946020939093013593505050565b600080600060608486031215610cde57600080fd5b610ce784610c83565b9250610cf560208501610c83565b9150604084013590509250925092565b600060208284031215610d1757600080fd5b6104f582610c83565b60008060408385031215610d3357600080fd5b610d3c83610c83565b915060208301358015158114610d5157600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610d8857600080fd5b610d9185610c83565b9350610d9f60208601610c83565b925060408501359150606085013567ffffffffffffffff80821115610dc357600080fd5b818701915087601f830112610dd757600080fd5b813581811115610de957610de9610d5c565b604051601f8201601f19908116603f01168101908382118183101715610e1157610e11610d5c565b816040528281528a6020848701011115610e2a57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610e6157600080fd5b610e6a83610c83565b9150610e7860208401610c83565b90509250929050565b600181811c90821680610e9557607f821691505b602082108103610eb557634e487b7160e01b600052602260045260246000fd5b50919050565b60008351610ecd818460208801610c07565b835190830190610ee1818360208801610c07565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1d90830184610c2b565b9695505050505050565b600060208284031215610f3957600080fd5b81516104f581610bd156fea264697066735822122088cc6c10546349f88c7fe8c1e7f85adb8574de2cf8b22462707399dc43c8019364736f6c6343000816003360c06040523480156200001157600080fd5b5060405162002b0a38038062002b0a833981016040819052620000349162000195565b828282818181818181806001600160a01b0381166200006d57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000788162000128565b506001600160a01b038083166080528116620000a757604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000ef57600080fd5b505af115801562000104573d6000803e3d6000fd5b5050506001600160a01b0390991660a05250620001df9a5050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200019057600080fd5b919050565b600080600060608486031215620001ab57600080fd5b620001b68462000178565b9250620001c66020850162000178565b9150620001d66040850162000178565b90509250925092565b60805160a0516128c662000244600039600081816106570152818161109001526113c00152600081816103aa0152818161069d01528181610d6601528181610f920152818161123a0152818161158801528181611791015261184801526128c66000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063bd815db0116100a0578063d42438851161006f578063d4243885146105e8578063dcdfd91114610608578063f2fde38b14610628578063fc0c546a14610648578063ff7bd03d1461067b57600080fd5b8063bd815db014610575578063c6414e7b14610588578063ca5eb5e1146105b5578063d045a0dc146105d557600080fd5b8063b731ea0a116100dc578063b731ea0a146104da578063b98bd070146104fa578063bb0b6a531461051a578063bc70b3541461055557600080fd5b80638da5cb5b1461046b5780639f68b96414610489578063a72f5dd81461049d578063b21a33e4146104c557600080fd5b806352ae2879116101855780636fc1b31e116101545780636fc1b31e146103cc578063715018a6146103ec5780637d25a05e1461040157806382413eac1461043c57600080fd5b806352ae2879146103285780635535d4611461033b5780635a0dfe4d146103685780635e280f111461039857600080fd5b80631f5e1334116101c15780631f5e1334146102a057806321eb730b146102c85780633400288b146102e85780634dba701b1461030857600080fd5b8063111ecdad146101f357806313137d6514610230578063150b7a021461024557806317442b701461027e575b600080fd5b3480156101ff57600080fd5b50600454610213906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61024361023e366004611aeb565b61069b565b005b34801561025157600080fd5b50610265610260366004611c97565b61075b565b6040516001600160e01b03199091168152602001610227565b34801561028a57600080fd5b5060408051600181526002602082015201610227565b3480156102ac57600080fd5b506102b5600181565b60405161ffff9091168152602001610227565b6102db6102d6366004611d14565b61076c565b6040516102279190611d81565b3480156102f457600080fd5b50610243610303366004611ddc565b610847565b34801561031457600080fd5b50610243610323366004611e06565b61085d565b34801561033457600080fd5b5030610213565b34801561034757600080fd5b5061035b610356366004611e56565b61086d565b6040516102279190611ed9565b34801561037457600080fd5b50610388610383366004611ddc565b610912565b6040519015158152602001610227565b3480156103a457600080fd5b506102137f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d857600080fd5b506102436103e7366004611eec565b610931565b3480156103f857600080fd5b5061024361098e565b34801561040d57600080fd5b5061042461041c366004611ddc565b600092915050565b6040516001600160401b039091168152602001610227565b34801561044857600080fd5b50610388610457366004611f09565b6001600160a01b0381163014949350505050565b34801561047757600080fd5b506000546001600160a01b0316610213565b34801561049557600080fd5b506001610388565b3480156104a957600080fd5b50604080516311f0c6d360e11b81526001602082015201610227565b3480156104d157600080fd5b506102b5600281565b3480156104e657600080fd5b50600254610213906001600160a01b031681565b34801561050657600080fd5b50610243610515366004611fb3565b6109a2565b34801561052657600080fd5b50610547610535366004611ff4565b60016020526000908152604090205481565b604051908152602001610227565b34801561056157600080fd5b5061035b61057036600461200f565b6109bc565b610243610583366004611fb3565b610b64565b34801561059457600080fd5b506105a86105a336600461207d565b610cd7565b60405161022791906120ce565b3480156105c157600080fd5b506102436105d0366004611eec565b610d3f565b6102436105e3366004611aeb565b610dc5565b3480156105f457600080fd5b50610243610603366004611eec565b610df4565b34801561061457600080fd5b506102436106233660046120e5565b610e4a565b34801561063457600080fd5b50610243610643366004611eec565b610e55565b34801561065457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610213565b34801561068757600080fd5b50610388610696366004612108565b610e93565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146106eb576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061070590610700908a611ff4565b610ec9565b14610743576107176020880188611ff4565b60405163309afaf360e21b815263ffffffff9091166004820152602088013560248201526044016106e2565b61075287878787878787610f05565b50505050505050565b630a85bd0160e11b5b949350505050565b610774611a2f565b602084013561079657604051631e4ec46b60e01b815260040160405180910390fd5b6107b13360408601356107ac6020880188611ff4565b611064565b6000806107bd866110e9565b90925090506107e96107d26020880188611ff4565b83836107e3368a90038a018a612124565b88611207565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f61081e60208a018a611ff4565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b61084f611312565b610859828261133f565b5050565b610868838383611394565b505050565b60036020908152600092835260408084209091529082529020805461089190612156565b80601f01602080910402602001604051908101604052809291908181526020018280546108bd90612156565b801561090a5780601f106108df5761010080835404028352916020019161090a565b820191906000526020600020905b8154815290600101906020018083116108ed57829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610939611312565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610996611312565b6109a060006113ef565b565b6109aa611312565b6108596109b7828461218a565b61143f565b63ffffffff8416600090815260036020908152604080832061ffff871684529091528120805460609291906109f090612156565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1c90612156565b8015610a695780601f10610a3e57610100808354040283529160200191610a69565b820191906000526020600020905b815481529060010190602001808311610a4c57829003601f168201915b505050505090508051600003610ab95783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506107649350505050565b6000839003610ac9579050610764565b60028310610b4757610b1084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061154692505050565b80610b1e846002818861225f565b604051602001610b3093929190612289565b604051602081830303815290604052915050610764565b8383604051639a6d49cd60e01b81526004016106e29291906122da565b60005b81811015610c565736838383818110610b8257610b826122ee565b9050602002810190610b949190612304565b9050610bb0610ba66020830183611ff4565b6020830135610912565b610bba5750610c4e565b3063d045a0dc60c08301358360a0810135610bd9610100830183612325565b610bea610100890160e08a01611eec565b610bf86101208a018a612325565b6040518963ffffffff1660e01b8152600401610c1a9796959493929190612380565b6000604051808303818588803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b5050505050505b600101610b67565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610c95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cbd9190810190612406565b604051638351eea760e01b81526004016106e29190611ed9565b60408051808201909152600080825260208201526020830135610d0d57604051631e4ec46b60e01b815260040160405180910390fd5b600080610d19856110e9565b9092509050610d36610d2e6020870187611ff4565b838387611572565b95945050505050565b610d47611312565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610daa57600080fd5b505af1158015610dbe573d6000803e3d6000fd5b5050505050565b333014610de55760405163029a949d60e31b815260040160405180910390fd5b61075287878787878787610743565b610dfc611312565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610983565b610859338383611064565b610e5d611312565b6001600160a01b038116610e8757604051631e4fbdf760e01b8152600060048201526024016106e2565b610e90816113ef565b50565b6000602082018035906001908390610eab9086611ff4565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff81166000908152600160205260408120548061092b5760405163f6ff4fb760e01b815263ffffffff841660048201526024016106e2565b6000610f17610f14878761164a565b90565b90506000610f258787611669565b9050610f3e8282610f3960208d018d611ff4565b611394565b6040861115611002576000610f78610f5c60608c0160408d01612473565b610f6960208d018d611ff4565b610f738b8b611686565b6116d1565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290610fce9086908d906000908790600401612490565b600060405180830381600087803b158015610fe857600080fd5b505af1158015610ffc573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef561103b60208d018d611ff4565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6040516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064015b600060405180830381600087803b1580156110d557600080fd5b505af1158015610752573d6000803e3d6000fd5b6060806000611142602085013560408601356111086080880188612325565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061170092505050565b9093509050600081611155576001611158565b60025b905061117861116a6020870187611ff4565b826105706060890189612325565b6004549093506001600160a01b031615611200576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb916111bd9188918891016124c1565b602060405180830381865afa1580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fe91906124e6565b505b5050915091565b61120f611a2f565b600061121e8460000151611765565b60208501519091501561123857611238846020015161178d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016112888c610ec9565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016112c4929190612503565b60806040518083038185885af11580156112e2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061130791906125ac565b979650505050505050565b6000546001600160a01b031633146109a05760405163118cdaa760e01b81523360048201526024016106e2565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e906064016110bb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b815181101561151657611471828281518110611460576114606122ee565b602002602001015160400151611546565b818181518110611483576114836122ee565b602002602001015160400151600360008484815181106114a5576114a56122ee565b60200260200101516000015163ffffffff1663ffffffff16815260200190815260200160002060008484815181106114df576114df6122ee565b60200260200101516020015161ffff1661ffff168152602001908152602001600020908161150d9190612646565b50600101611442565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516109839190612705565b600281015161ffff81166003146108595781604051639a6d49cd60e01b81526004016106e29190611ed9565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016115d589610ec9565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161160a929190612503565b6040805180830381865afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d369190612790565b6000611659602082848661225f565b611662916127ac565b9392505050565b600061167960406020848661225f565b81019061166291906127ca565b6060611695826040818661225f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b60608383836040516020016116e8939291906127e3565b60405160208183030381529060405290509392505050565b805160609015158061173457604080516020810187905290810185905260600160405160208183030381529060405261175b565b8484338560405160200161174b949392919061282d565b6040516020818303038152906040525b9150935093915050565b6000813414611789576040516304fb820960e51b81523460048201526024016106e2565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118119190612861565b90506001600160a01b03811661183a576040516329b99a9560e11b815260040160405180910390fd5b6040805133602482018190527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03818116604485015260648085018890528551808603909101815260849094019094526020830180516001600160e01b03166323b872dd60e01b1790526108599385169286906118bf9085906118c5565b50505050565b60006118da6001600160a01b03841683611928565b905080516000141580156118ff5750808060200190518101906118fd91906124e6565b155b1561086857604051635274afe760e01b81526001600160a01b03841660048201526024016106e2565b60606116628383600084600080856001600160a01b0316848660405161194e919061287e565b60006040518083038185875af1925050503d806000811461198b576040519150601f19603f3d011682016040523d82523d6000602084013e611990565b606091505b50915091506119a08683836119aa565b9695505050505050565b6060826119bf576119ba82611a06565b611662565b81511580156119d657506001600160a01b0384163b155b156119ff57604051639996b31560e01b81526001600160a01b03851660048201526024016106e2565b5080611662565b805115611a165780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001611a71604051806040016040528060008152602001600081525090565b905290565b600060608284031215611a8857600080fd5b50919050565b60008083601f840112611aa057600080fd5b5081356001600160401b03811115611ab757600080fd5b602083019150836020828501011115611acf57600080fd5b9250929050565b6001600160a01b0381168114610e9057600080fd5b600080600080600080600060e0888a031215611b0657600080fd5b611b108989611a76565b96506060880135955060808801356001600160401b0380821115611b3357600080fd5b611b3f8b838c01611a8e565b909750955060a08a01359150611b5482611ad6565b90935060c08901359080821115611b6a57600080fd5b50611b778a828b01611a8e565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611bc257611bc2611b8a565b60405290565b604051606081016001600160401b0381118282101715611bc257611bc2611b8a565b604051601f8201601f191681016001600160401b0381118282101715611c1257611c12611b8a565b604052919050565b60006001600160401b03821115611c3357611c33611b8a565b50601f01601f191660200190565b600082601f830112611c5257600080fd5b8135611c65611c6082611c1a565b611bea565b818152846020838601011115611c7a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611cad57600080fd5b8435611cb881611ad6565b93506020850135611cc881611ad6565b92506040850135915060608501356001600160401b03811115611cea57600080fd5b611cf687828801611c41565b91505092959194509250565b600060c08284031215611a8857600080fd5b60008060008385036080811215611d2a57600080fd5b84356001600160401b03811115611d4057600080fd5b611d4c87828801611d02565b9450506040601f1982011215611d6157600080fd5b506020840191506060840135611d7681611ad6565b809150509250925092565b6000608082019050825182526001600160401b0360208401511660208301526040830151611dbc604084018280518252602090810151910152565b5092915050565b803563ffffffff81168114611dd757600080fd5b919050565b60008060408385031215611def57600080fd5b611df883611dc3565b946020939093013593505050565b600080600060608486031215611e1b57600080fd5b8335611e2681611ad6565b925060208401359150611e3b60408501611dc3565b90509250925092565b803561ffff81168114611dd757600080fd5b60008060408385031215611e6957600080fd5b611e7283611dc3565b9150611e8060208401611e44565b90509250929050565b60005b83811015611ea4578181015183820152602001611e8c565b50506000910152565b60008151808452611ec5816020860160208601611e89565b601f01601f19169290920160200192915050565b6020815260006116626020830184611ead565b600060208284031215611efe57600080fd5b813561166281611ad6565b60008060008060a08587031215611f1f57600080fd5b611f298686611a76565b935060608501356001600160401b03811115611f4457600080fd5b611f5087828801611a8e565b9094509250506080850135611f6481611ad6565b939692955090935050565b60008083601f840112611f8157600080fd5b5081356001600160401b03811115611f9857600080fd5b6020830191508360208260051b8501011115611acf57600080fd5b60008060208385031215611fc657600080fd5b82356001600160401b03811115611fdc57600080fd5b611fe885828601611f6f565b90969095509350505050565b60006020828403121561200657600080fd5b61166282611dc3565b6000806000806060858703121561202557600080fd5b61202e85611dc3565b935061203c60208601611e44565b925060408501356001600160401b0381111561205757600080fd5b61206387828801611a8e565b95989497509550505050565b8015158114610e9057600080fd5b6000806040838503121561209057600080fd5b82356001600160401b038111156120a657600080fd5b6120b285828601611d02565b92505060208301356120c38161206f565b809150509250929050565b81518152602080830151908201526040810161092b565b600080604083850312156120f857600080fd5b82359150611e8060208401611dc3565b60006060828403121561211a57600080fd5b6116628383611a76565b60006040828403121561213657600080fd5b61213e611ba0565b82358152602083013560208201528091505092915050565b600181811c9082168061216a57607f821691505b602082108103611a8857634e487b7160e01b600052602260045260246000fd5b60006001600160401b03808411156121a4576121a4611b8a565b8360051b60206121b5818301611bea565b8681529185019181810190368411156121cd57600080fd5b865b84811015612253578035868111156121e75760008081fd5b880160603682900312156121fb5760008081fd5b612203611bc8565b61220c82611dc3565b8152612219868301611e44565b86820152604080830135898111156122315760008081fd5b61223d36828601611c41565b91830191909152508452509183019183016121cf565b50979650505050505050565b6000808585111561226f57600080fd5b8386111561227c57600080fd5b5050820193919092039150565b6000845161229b818460208901611e89565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006107646020830184866122b1565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1983360301811261231b57600080fd5b9190910192915050565b6000808335601e1984360301811261233c57600080fd5b8301803591506001600160401b0382111561235657600080fd5b602001915036819003821315611acf57600080fd5b6001600160401b0381168114610e9057600080fd5b63ffffffff61238e89611dc3565b16815260208801356020820152600060408901356123ab8161236b565b6001600160401b03811660408401525087606083015260e060808301526123d660e0830187896122b1565b6001600160a01b03861660a084015282810360c08401526123f88185876122b1565b9a9950505050505050505050565b60006020828403121561241857600080fd5b81516001600160401b0381111561242e57600080fd5b8201601f8101841361243f57600080fd5b805161244d611c6082611c1a565b81815285602083850101111561246257600080fd5b610d36826020830160208601611e89565b60006020828403121561248557600080fd5b81356116628161236b565b60018060a01b038516815283602082015261ffff831660408201526080606082015260006119a06080830184611ead565b6040815260006124d46040830185611ead565b8281036020840152610d368185611ead565b6000602082840312156124f857600080fd5b81516116628161206f565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261253960e0840182611ead565b90506060850151603f198483030160a08501526125568282611ead565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561258e57600080fd5b612596611ba0565b9050815181526020820151602082015292915050565b6000608082840312156125be57600080fd5b6125c6611bc8565b8251815260208301516125d88161236b565b60208201526125ea846040850161257c565b60408201529392505050565b601f821115610868576000816000526020600020601f850160051c8101602086101561261f5750805b601f850160051c820191505b8181101561263e5782815560010161262b565b505050505050565b81516001600160401b0381111561265f5761265f611b8a565b6126738161266d8454612156565b846125f6565b602080601f8311600181146126a857600084156126905750858301515b600019600386901b1c1916600185901b17855561263e565b600085815260208120601f198616915b828110156126d7578886015182559484019460019091019084016126b8565b50858210156126f55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561278257888303603f190185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261276e81860183611ead565b96890196945050509086019060010161272e565b509098975050505050505050565b6000604082840312156127a257600080fd5b611662838361257c565b8035602083101561092b57600019602084900360031b1b1692915050565b6000602082840312156127dc57600080fd5b5035919050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061281e81600c850160208701611e89565b91909101600c01949350505050565b84815283602082015282604082015260008251612851816060850160208701611e89565b9190910160600195945050505050565b60006020828403121561287357600080fd5b815161166281611ad6565b6000825161231b818460208701611e8956fea26469706673582212207d3ba4a090246cc8a8a9c26a856c9f74e618e1fa27f15b2af2299f3e283fae1764736f6c6343000816003341304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f500000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12da264697066735822122064d52539aa10463fe73f3faadba1b04768cfbe0f094a5528c5c54a0295b3536864736f6c63430008160033","sourceMap":"1345:19219:140:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2185:194;;;;;;;;;;;;;:::i;:::-;;14631:163:71;;;;;;;;;;-1:-1:-1;14631:163:71;;;;;:::i;:::-;;:::i;2385:255:140:-;;;;;;;;;;;;;:::i;1685:127:141:-;;;;;;;;;;;;;:::i;18330:2608:71:-;;;;;;;;;;-1:-1:-1;18330:2608:71;;;;;:::i;:::-;;:::i;3660:7029::-;;;;;;;;;;-1:-1:-1;3660:7029:71;;;;;:::i;:::-;;:::i;2452:134:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:43:71;;;;;;;;;;-1:-1:-1;2909:43:71;;;;-1:-1:-1;;;;;2909:43:71;;;;;;-1:-1:-1;;;;;2867:47:145;;;2849:66;;2837:2;2822:18;2909:43:71;2703:218:145;11027:490:71;;;;;;;;;;-1:-1:-1;11027:490:71;;;;;:::i;:::-;;:::i;3360:151:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8922:414:140:-;;;;;;;;;;-1:-1:-1;8922:414:140;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;15968:564::-;;;;;;;;;;-1:-1:-1;15968:564:140;;;;;:::i;:::-;;:::i;17855:469:71:-;;;;;;:::i;:::-;;:::i;3221:133:89:-;;;;;;;;;;;;;:::i;2922:141::-;;;;;;;;;;;;;:::i;4957:543:140:-;;;;;;;;;;-1:-1:-1;4957:543:140;;;;;:::i;:::-;;:::i;3349:204:70:-;;;;;;;;;;-1:-1:-1;3349:204:70;;;;;:::i;:::-;;:::i;:::-;;;;9688:6:145;9676:19;;;9658:38;;-1:-1:-1;;;;;9785:15:145;;;9780:2;9765:18;;9758:43;9837:15;;9817:18;;;9810:43;9646:2;9631:18;3349:204:70;9458:401:145;10447:1603:140;;;;;;;;;;-1:-1:-1;10447:1603:140;;;;;:::i;:::-;;:::i;14989:1687:71:-;;;;;;;;;;-1:-1:-1;14989:1687:71;;;;;:::i;:::-;;:::i;21259:228::-;;;;;;;;;;-1:-1:-1;21259:228:71;;;;;:::i;:::-;;:::i;:::-;;;11060:14:145;;11053:22;11035:41;;11023:2;11008:18;21259:228:71;10895:187:145;12056:393:140;;;;;;;;;;-1:-1:-1;12056:393:140;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;2738:178:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17861:907:140:-;;;;;;;;;;-1:-1:-1;17861:907:140;;;;;:::i;:::-;;:::i;2722:249:70:-;;;;;;;;;;-1:-1:-1;2722:249:70;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;11786:514:71:-;;;;;;;;;;-1:-1:-1;11786:514:71;;;;;:::i;:::-;;:::i;21493:338::-;;;;;;;;;;-1:-1:-1;21493:338:71;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1025:446:137:-;;;;;;;;;;-1:-1:-1;1025:446:137;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5595:780:140:-;;;;;;;;;;-1:-1:-1;5595:780:140;;;;;:::i;:::-;;:::i;2592:140:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3069:146::-;;;;;;;;;;;;;:::i;9914:527:140:-;;;;;;;;;;-1:-1:-1;9914:527:140;;;;;:::i;:::-;;:::i;20944:187:71:-;;;;;;;;;;-1:-1:-1;20944:187:71;;;;;:::i;:::-;;:::i;14767:1195:140:-;;;;;;;;;;-1:-1:-1;14767:1195:140;;;;;:::i;:::-;;:::i;17277:376:71:-;;;;;;:::i;:::-;;:::i;1466:22:141:-;;;;;;;;;;-1:-1:-1;1466:22:141;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;20720:32:145;;;20702:51;;20690:2;20675:18;1466:22:141;20556:203:145;21137:116:71;;;;;;;;;;-1:-1:-1;21137:116:71;;;;;:::i;:::-;;:::i;2845:57::-;;;;;;;;;;;;2896:6;2845:57;;;;;21186:25:145;;;21174:2;21159:18;2845:57:71;21040:177:145;2157:141:89;;;;;;;;;;;;;:::i;14307:136:71:-;;;;;;;;;;-1:-1:-1;14307:136:71;;;;;:::i;:::-;;:::i;3159:184:70:-;;;;;;;;;;-1:-1:-1;3159:184:70;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;21732:47:145;;;21714:66;;21811:2;21796:18;;21789:34;;;;21687:18;3159:184:70;21540:289:145;1819:584:83;;;;;;;;;;;;;:::i;2783:56:71:-;;;;;;;;;;;;2826:13;2783:56;;13661:1100:140;;;;;;;;;;-1:-1:-1;13661:1100:140;;;;;:::i;:::-;;:::i;2646:2211::-;;;;;;;;;;-1:-1:-1;2646:2211:140;;;;;:::i;:::-;;:::i;9342:566::-;;;;;;;;;;-1:-1:-1;9342:566:140;;;;;:::i;:::-;;:::i;16538:1317::-;;;;;;;;;;-1:-1:-1;16538:1317:140;;;;;:::i;:::-;;:::i;8261:655::-;;;;;;;;;;-1:-1:-1;8261:655:140;;;;;:::i;:::-;;:::i;6381:1874::-;;;;;;;;;;-1:-1:-1;6381:1874:140;;;;;:::i;:::-;;:::i;3331:100:71:-;;;;;;;;;;-1:-1:-1;3331:100:71;;;;;:::i;:::-;3396:16;:28;;-1:-1:-1;;;;;;3396:28:71;-1:-1:-1;;;;;3396:28:71;;;;;;;;;;3331:100;2304:142:89;;;;;;;;;;;;;:::i;19442:834:140:-;;;;;;;;;;-1:-1:-1;19442:834:140;;;;;:::i;:::-;;:::i;18774:662::-;;;;;;;;;;-1:-1:-1;18774:662:140;;;;;:::i;:::-;;:::i;1581:598::-;;;;;;;;;;;;;:::i;16682:589:71:-;;;;;;:::i;:::-;;:::i;20282:280:140:-;;;;;;;;;;-1:-1:-1;20282:280:140;;;;;:::i;:::-;;:::i;12455:1200::-;;;;;;;;;;-1:-1:-1;12455:1200:140;;;;;:::i;:::-;;:::i;2977:176:70:-;;;;;;;;;;-1:-1:-1;2977:176:70;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;28086:15:145;;;28068:34;;28138:15;;;;28133:2;28118:18;;28111:43;27988:18;2977:176:70;27841:319:145;1572:26:83;;;;;;;;;;-1:-1:-1;1572:26:83;;;;;;;;13482:464:71;;;;;;;;;;-1:-1:-1;13482:464:71;;;;;:::i;:::-;;:::i;2185:194:140:-;2247:5;;:24;;;-1:-1:-1;;;2247:24:140;;;;2235:37;;-1:-1:-1;;;;;2247:5:140;;:22;;:24;;;;;;;;;;;;;;:5;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2235:11;:37::i;:::-;2294:5;;:24;;;-1:-1:-1;;;2294:24:140;;;;2282:37;;-1:-1:-1;;;;;2294:5:140;;:22;;:24;;;;;;;;;;;;;;:5;:24;;;;;;;;;;;;;;2282:37;2340:12;;:31;;;-1:-1:-1;;;2340:31:140;;;;2329:43;;-1:-1:-1;;;;;2340:12:140;;:29;;:31;;;;;;;;;;;;;;:12;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2329:10;:43::i;:::-;2185:194::o;14631:163:71:-;14708:79;14722:7;-1:-1:-1;;;;;14739:29:71;;14731:38;;14708:13;:79::i;:::-;14631:163;;:::o;2385:255:140:-;2469:5;;:19;;;-1:-1:-1;;;2469:19:140;;;;2431:18;;;;-1:-1:-1;;;;;2469:5:140;;;;:17;;:19;;;;;;;;;;;:5;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2430:58;;-1:-1:-1;2430:58:140;-1:-1:-1;;;;2547:33:140;-1:-1:-1;;;;;;2547:33:140;;2518:19;2547:8;:33::i;:::-;2590:43;-1:-1:-1;;;;;2590:43:140;;1538:1;2590:8;:43::i;:::-;2420:220;;;2385:255::o;1685:127:141:-;1736:13;:11;:13::i;:::-;1760:14;:12;:14::i;:::-;1784:21;:19;:21::i;18330:2608:71:-;18402:13;18418:21;:12;;:19;:21::i;:::-;18482:17;;;18449:19;18482:17;;;:9;:17;;;;;;18402:37;;-1:-1:-1;;;;;;18482:17:71;;;;;18535:26;18562;:12;;:24;:26::i;:::-;18590:21;:12;;:19;:21::i;:::-;18535:77;;-1:-1:-1;;;;;;18535:77:71;;;;;;;-1:-1:-1;;;;;29987:32:145;;;18535:77:71;;;29969:51:145;18535:77:71;30056:23:145;30036:18;;;30029:51;29942:18;;18535:77:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18510:102;;;18622:20;18659:10;18622:48;;18682:12;18714:10;-1:-1:-1;;;;;18702:31:71;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18681:54;;;;18749:5;-1:-1:-1;;;;;18749:10:71;18758:1;18749:10;18745:2187;;18813:19;18835:6;-1:-1:-1;;;;;18835:16:71;;18852:21;:12;;:19;:21::i;:::-;18875:26;:12;;:24;:26::i;:::-;18835:70;;-1:-1:-1;;;;;;18835:70:71;;;;;;;;31382:15:145;;;;18835:70:71;;;31364:34:145;-1:-1:-1;;;;;31434:32:145;31414:18;;;31407:60;18903:1:71;31483:18:145;;;31476:43;31308:18;;18835:70:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18835:70:71;;;;;;;;;;;;:::i;:::-;18813:92;;18938:7;18963:6;18952:31;;;;;;;;;;;;:::i;:::-;:44;;;18997:1;18952:47;;;;;;;;:::i;:::-;;;;;;;18938:62;;19015:25;19043:21;:12;;:19;:21::i;:::-;19015:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19015:49:71;;-1:-1:-1;19110:22:71;;-1:-1:-1;19110:12:71;;-1:-1:-1;19110:12:71;;-1:-1:-1;19110:20:71;:22::i;:::-;19100:33;;;;;;;:::i;:::-;;;;;;;;19078:55;;19168:23;19205:27;19275:29;;;19322:12;19352:11;19381:3;19235:163;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;19235:163:71;;;;;;;;;;;;;;-1:-1:-1;;;;;19235:163:71;-1:-1:-1;;;;;;19235:163:71;;;;;;;;;;;-1:-1:-1;;;;;;;19445:16:71;;;19462:6;19478;19235:163;19503:22;:15;19521:4;19503:22;:::i;:::-;19445:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19585:58;;36146:66:145;19585:58:71;;;36134:79:145;36229:12;;;36222:28;;;19430:96:71;;-1:-1:-1;19544:28:71;;36266:12:145;;19585:58:71;;;;;;-1:-1:-1;;19585:58:71;;;;;;;19575:69;;19585:58;19575:69;;;;-1:-1:-1;;;19696:32:71;;19704:1;19696:32;;;36471:25:145;36512:18;;;36505:34;;;19575:69:71;-1:-1:-1;19663:7:71;;;;;;-1:-1:-1;;;;;;;;;;;19696:7:71;;;36444:18:145;;19696:32:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19781:25;;;;;;37105:19:145;;;;37140:12;;;37133:28;;;;37217:3;37195:16;;;;-1:-1:-1;;;;;;37191:36:145;37177:12;;;37170:58;19781:25:71;;;;;;;;;37244:12:145;;;;19781:25:71;;;;-1:-1:-1;;;;19884:1:71;;-1:-1:-1;19865:21:71;;-1:-1:-1;;;19865:21:71;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19865:21:71;;;;;;;;;;;;;;;;19834:52;;19912:89;;;;;;;;19925:6;19912:89;;;;;;19941:6;-1:-1:-1;;;;;19912:89:71;;;;;19950:14;19912:89;;;;19966:15;19984:4;19966:22;;;;:::i;:::-;19912:89;;;;19990:10;19912:89;;;19900:6;19907:1;19900:9;;;;;;;;:::i;:::-;;;;;;;;;;:101;20015:19;;-1:-1:-1;;;20015:19:71;;-1:-1:-1;;;;;20015:11:71;;;;;:19;;20027:6;;20015:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20084:21;20148:41;;;20207:12;20237:11;20108:154;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;20108:154:71;;;;;;;;;;;;;;-1:-1:-1;;;;;20108:154:71;-1:-1:-1;;;;;;20108:154:71;;;;;;;;;;;-1:-1:-1;;;;;;;20309:16:71;;;20326:6;20342;20108:154;20361:22;:15;20379:4;20361:22;:::i;:::-;20309:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20443:58;;36146:66:145;20443:58:71;;;36134:79:145;36229:12;;;36222:28;;;20294:90:71;;-1:-1:-1;20402:28:71;;36266:12:145;;20443:58:71;;;;;;-1:-1:-1;;20443:58:71;;;;;;;20433:69;;20443:58;20433:69;;;;-1:-1:-1;;;20554:32:71;;20562:1;20554:32;;;36471:25:145;36512:18;;;36505:34;;;20433:69:71;-1:-1:-1;20521:7:71;;;;;;-1:-1:-1;;;;;;;;;;;20554:7:71;;;36444:18:145;;20554:32:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20639:25;;;;;;37105:19:145;;;37140:12;;;37133:28;;;-1:-1:-1;;;;;;37217:3:145;37195:16;;;37191:36;37177:12;;;37170:58;20520:66:71;;-1:-1:-1;20520:66:71;;-1:-1:-1;20520:66:71;-1:-1:-1;37244:12:145;;20639:25:71;;;;;;;;;;;;20626:38;;20276:403;;;;;20704:83;;;;;;;;20717:6;20704:83;;;;;;20733:6;-1:-1:-1;;;;;20704:83:71;;;;;20742:8;20704:83;;;;20752:15;20770:4;20752:22;;;;:::i;:::-;20704:83;;;;20776:10;20704:83;;;20692:6;20699:1;20692:9;;;;;;;;:::i;:::-;;;;;;;;;;:95;20801:19;;-1:-1:-1;;;20801:19:71;;-1:-1:-1;;;;;20801:11:71;;;;;:19;;20813:6;;20801:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18761:2070;;;;;;;;18745:2187;;;20851:70;;-1:-1:-1;;;20851:70:71;;-1:-1:-1;;;;;20851:56:71;;;;;:70;;20908:12;;;;20851:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18745:2187;18392:2546;;;;;18330:2608;;:::o;3660:7029::-;3747:32;3799:12;3782:30;;-1:-1:-1;;;;;3782:30:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3782:30:71;;3747:65;;3822:23;3861:12;3848:26;;-1:-1:-1;;;;;3848:26:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3848:26:71;;3822:52;;3927:7;3922:227;3944:12;3940:16;;:1;:16;;;3922:227;;;3977:10;3990:5;:1;3994;3990:5;:::i;:::-;3977:18;;;;4022:3;4009:7;4017:1;4009:10;;;;;;;;;;:::i;:::-;;;;;;:16;;;;;;;;;;;4072:3;4085:4;4057:34;;;;;:::i;:::-;39623:10:145;39611:23;;;39593:42;;-1:-1:-1;;;;;39671:32:145;39666:2;39651:18;;39644:60;39581:2;39566:18;4057:34:71;;;;;;;;;;;;;;;;;;;;;;;4039:12;4052:1;4039:15;;;;;;;;;;:::i;:::-;;;;;;:52;-1:-1:-1;;;;;4039:52:71;;;-1:-1:-1;;;;;4039:52:71;;;;;4105:33;4122:12;4135:1;4122:15;;;;;;;;;;:::i;:::-;;;;;;;4105:16;:33::i;:::-;-1:-1:-1;3958:3:71;;3922:227;;;;4177:25;4219:12;4205:27;;-1:-1:-1;;;;;4205:27:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4205:27:71;;4177:55;;4242:28;4287:12;4273:27;;-1:-1:-1;;;;;4273:27:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4273:27:71;-1:-1:-1;4338:16:71;;;4352:1;4338:16;;;;;;;;;4242:58;;-1:-1:-1;4311:24:71;;4338:16;;;;;;;;;;;;-1:-1:-1;;4377:10:71;;-1:-1:-1;;;;;;4377:10:71;;4385:1;4377:10;;;21186:25:145;4311:43:71;;-1:-1:-1;;;;;;;;;;;;4377:7:71;;;21159:18:145;;4377:10:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4364:7;4372:1;4364:10;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;4364:23:71;;;-1:-1:-1;;;;;4364:23:71;;;;;4456:19;4500:4;4478:28;;;;;:::i;:::-;-1:-1:-1;;;;;20720:32:145;;;20702:51;;20690:2;20675:18;4478:28:71;;;;;;;;;;;;;;;;;;;;;;;4456:50;;4522:7;4517:5780;4539:12;4535:16;;:1;:16;;;4517:5780;;;4592:26;4576:12;:42;;;;;;;;:::i;:::-;;4572:5715;;4638:20;4669:12;4682:1;4669:15;;;;;;;;;;:::i;:::-;;;;;;;4638:47;;4704:18;4740:24;4837:4;4844:12;2826:13;2896:6;4814:87;;;;;:::i;:::-;-1:-1:-1;;;;;40596:15:145;;;40578:34;;40648:15;;;;40643:2;40628:18;;40621:43;40695:2;40680:18;;40673:34;40738:2;40723:18;;40716:34;40527:3;40512:19;4814:87:71;;;;;;;;;;;;;;;;;;;;;;;4804:97;;4954:12;4936:31;;;;;:::i;:::-;-1:-1:-1;;;;;20720:32:145;;;20702:51;;20690:2;20675:18;4936:31:71;;;;;;;;;;;;;;;;;;;;;;;4923:44;;4989:12;5002:1;4989:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;:49;;-1:-1:-1;;;4989:49:71;;-1:-1:-1;;;;;20720:32:145;;;4989:49:71;;;20702:51:145;4989:31:71;;;;;;20675:18:145;;4989:49:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5060:12;5073:1;5060:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;:52;;-1:-1:-1;;;5060:52:71;;-1:-1:-1;;;;;20720:32:145;;;5060:52:71;;;20702:51:145;5060:31:71;;;;;;20675:18:145;;5060:52:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5156:7;5134:8;5143:1;5134:11;;;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;5134:30:71;;;-1:-1:-1;;;;;5134:30:71;;;;;5211:10;5186:11;5198:1;5186:14;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5186:36:71;;;;:14;;;;;;;;;;:36;5367:16;;;5381:1;5367:16;;;;;;;;;5259:17;;;;;;5367:16;;;;;5186:14;5367:16;;;;;-1:-1:-1;5367:16:71;5341:42;;5425:4;5405:6;5412:1;5405:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5405:25:71;;;;:9;;;;;;;;;;:25;5484:16;;;5498:1;5484:16;;;;;;;;5453:28;;5484:16;;5498:1;;5484:16;;;;;;;;;-1:-1:-1;5484:16:71;5453:47;;5547:7;5522:11;5534:1;5522:14;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;5522:33:71;;;-1:-1:-1;;;;;5522:33:71;;;;;5602:10;5577:11;5589:1;5577:14;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;5577:36:71;;;-1:-1:-1;;;;;5577:36:71;;;;;5684:12;5730:3;5760:11;5805:9;5849:4;5880:6;5646:262;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5635:273;;5931:26;5960:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6002:46:71;;-1:-1:-1;;;6002:46:71;;-1:-1:-1;;;;;20720:32:145;;;6002:46:71;;;20702:51:145;5931:49:71;;-1:-1:-1;6002:24:71;;;;;;20675:18:145;;6002:46:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6085:1;6089;6085:5;;;;:::i;:::-;6092:11;6113:9;6125:7;6134:1;6137:6;6077:67;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;6071:73;;6166:16;6199:4;6185:19;;;;;:::i;:::-;21186:25:145;;;21174:2;21159:18;6185:19:71;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6226:36:71;;-1:-1:-1;;;6226:36:71;;-1:-1:-1;;;;;20720:32:145;;;6226:36:71;;;20702:51:145;6166:38:71;;-1:-1:-1;6226:19:71;;;;;;20675:18:145;;6226:36:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5319:962;;;;6299:18;6320:12;6299:33;;;;6350:49;6433:11;6402:43;;-1:-1:-1;;;;;6402:43:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6402:43:71;;-1:-1:-1;;6402:43:71;;;;;;;;;;;;6350:95;;6463:44;6536:11;6510:38;;-1:-1:-1;;;;;6510:38:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6510:38:71;;-1:-1:-1;;6510:38:71;;;;;;;;;;;;6463:85;;6571:7;6566:3168;6588:11;6584:15;;:1;:15;;;6566:3168;;;6637:1;6632:6;;:1;:6;;;6628:20;6640:8;6628:20;6670:13;6686:5;:1;6690;6686:5;:::i;:::-;6745:16;;;6759:1;6745:16;;;;;;;;;6670:21;;;;;;-1:-1:-1;6714:28:71;;6745:16;;;;;;;;;;;;-1:-1:-1;;6815:16:71;;;6783:29;6815:16;;;;;;;;;6714:47;;-1:-1:-1;6783:48:71;6878:3;6853:11;6865:1;6853:14;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6853:29:71;;;;:14;;;;;;;;;;;:29;6974:33;;;7005:1;6974:33;;;;;;;;;6931:40;;6974:33;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6931:76;;7033:26;7062:293;;;;;;;;7101:3;-1:-1:-1;;;;;7062:293:71;;;;;7140:11;:18;7062:293;;;;;;7195:12;:19;7062:293;;;;;;7245:1;7062:293;;;;;;7276:11;7062:293;;;;7317:12;7062:293;;;7033:322;;7393:43;;;;;;;;7418:6;7393:43;;;;;;7426:9;7393:43;;;7381:6;7388:1;7381:9;;;;;;;;:::i;:::-;;;;;;;;;;:55;7462:36;;-1:-1:-1;;;7462:36:71;;-1:-1:-1;;;;;7462:28:71;;;;;:36;;7491:6;;7462:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7569:45:71;;-1:-1:-1;7653:1:71;;-1:-1:-1;7617:38:71;;-1:-1:-1;;;7617:38:71;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7569:86;;7681:36;7720:40;;;;;;;;7735:5;7720:40;;;;;;7750:8;-1:-1:-1;;;;;7720:40:71;;;;7681:79;;7798:53;;;;;;;;7828:6;7798:53;;;;;;7836:14;7798:53;;;7786:6;7793:1;7786:9;;;;;;;;:::i;:::-;;;;;;;;;;:65;7877:41;;-1:-1:-1;;;7877:41:71;;-1:-1:-1;;;;;7877:33:71;;;;;:41;;7911:6;;7877:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7989:40:71;;-1:-1:-1;8063:1:71;;-1:-1:-1;8032:33:71;;-1:-1:-1;;;8032:33:71;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7989:76;;8091:26;8120:293;;;;;;;;8159:3;-1:-1:-1;;;;;8120:293:71;;;;;8198:11;:18;8120:293;;;;;;8253:12;:19;8120:293;;;;;;8303:1;8120:293;;;;;;8334:11;8120:293;;;;8375:12;8120:293;;;8091:322;;8451:43;;;;;;;;8476:6;8451:43;;;;;;8484:9;8451:43;;;8439:6;8446:1;8439:9;;;;;;;;:::i;:::-;;;;;;;;;;:55;8520:39;;-1:-1:-1;;;8520:39:71;;-1:-1:-1;;;;;8520:31:71;;;;;:39;;8552:6;;8520:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8664:329:71;;;;;;;;;;;;;8773:4;8664:329;;;;;;;;;;;;;8866:5;8664:329;;;;8913:4;8664:329;;;;8954:16;;-1:-1:-1;;;;;8954:16:71;8664:329;;;;8643:18;;8664:329;;-1:-1:-1;8643:15:71;;-1:-1:-1;8643:18:71;;;;-1:-1:-1;8643:18:71;;;-1:-1:-1;8643:18:71;;;;:::i;:::-;;;;;;:350;;;;9071:210;;;;;;;;9125:6;9071:210;;;;;;9162:4;-1:-1:-1;;;;;9071:210:71;;;;;9207:5;9071:210;;;;;;9254:4;-1:-1:-1;;;;;9071:210:71;;;;9050:15;9066:1;9050:18;;;;;;;;;;:::i;:::-;;;;;;:231;;;;9304:19;9326:9;-1:-1:-1;;;;;9326:34:71;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9434:40;;;9472:1;9434:40;;;;;;;;;9304:58;;-1:-1:-1;9384:47:71;;9434:40;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9434:40:71;;;;;;;;;;;;;;;;9384:90;;9508:159;;;;;;;;9565:6;9508:159;;;;;;9597:48;;;;;;;;9627:11;9623:1;:15;;;;:::i;:::-;-1:-1:-1;;;;;9597:48:71;;;9640:1;9597:48;;;;;;;;;;;9508:159;;9496:9;;:6;;-1:-1:-1;;9496:9:71;;;;:::i;:::-;;;;;;:171;;;;9689:9;-1:-1:-1;;;;;9689:18:71;;9708:6;9689:26;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6606:3128;;;;;6566:3168;6601:3;;;;:::i;:::-;;;;6566:3168;;;-1:-1:-1;9751:38:71;;-1:-1:-1;;;9751:38:71;;-1:-1:-1;;;;;9751:21:71;;;;;:38;;9773:15;;9751:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9807:33:71;;-1:-1:-1;;;9807:33:71;;-1:-1:-1;;;;;9807:16:71;;;-1:-1:-1;9807:16:71;;-1:-1:-1;9807:33:71;;9824:15;;9807:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4620:5235;;;;;;;;4572:5715;;;9881:28;9865:12;:44;;;;;;;;:::i;:::-;;9861:426;;9929:31;9996:4;10011:12;10024:1;10011:15;;;;;;;;;;:::i;:::-;;;;;;;9963:65;;;;;:::i;:::-;-1:-1:-1;;;;;50768:15:145;;;50750:34;;50820:15;;50815:2;50800:18;;50793:43;50700:2;50685:18;9963:65:71;;;;;;;;;;;;;;;;;;;;;;;9929:99;;10046:12;10059:1;10046:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;:52;;-1:-1:-1;;;10046:52:71;;-1:-1:-1;;;;;20720:32:145;;;10046:52:71;;;20702:51:145;10046:31:71;;;;;;20675:18:145;;10046:52:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10138:10;10116:8;10125:1;10116:11;;;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;10116:33:71;;;-1:-1:-1;;;;;10116:33:71;;;;;10192:10;10167:11;10179:1;10167:14;;;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;10167:36:71;;;-1:-1:-1;;;;;10167:36:71;;;;;9911:307;9861:426;;;10242:30;;-1:-1:-1;;;10242:30:71;;51049:2:145;10242:30:71;;;51031:21:145;51088:2;51068:18;;;51061:30;-1:-1:-1;;;51107:18:145;;;51100:50;51167:18;;10242:30:71;;;;;;;;9861:426;4553:3;;4517:5780;;;;10333:7;10328:355;10350:12;10346:16;;:1;:16;;;10328:355;;;10383:19;10405:12;10418:1;10405:15;;;;;;;;;;:::i;:::-;;;;;;;10383:37;;10439:7;10434:239;10456:12;10452:16;;:1;:16;;;10434:239;;;10502:1;10497:6;;:1;:6;;;10493:20;10505:8;10493:20;-1:-1:-1;;;;;10531:30:71;;;10562:5;:1;10566;10562:5;:::i;:::-;10569:8;10578:1;10569:11;;;;;;;;;;:::i;:::-;;;;;;;10531:50;;;;;;;;;;;;;;;51397:4:145;51385:17;;;;51367:36;;-1:-1:-1;;;;;51439:32:145;51434:2;51419:18;;51412:60;51355:2;51340:18;;51196:282;10531:50:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10599:8;-1:-1:-1;;;;;10599:33:71;;10633:1;10637;10633:5;;;;:::i;:::-;10640:11;10652:1;10640:14;;;;;;;;;;:::i;:::-;;;;;;;;;;;10599:59;;-1:-1:-1;;;;;;10599:59:71;;;;;;;51720:4:145;51708:17;;;10599:59:71;;;51690:36:145;-1:-1:-1;;;;;51762:32:145;51742:18;;;51735:60;10656:1:71;51811:18:145;;;51804:34;51663:18;;10599:59:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10434:239;10470:3;;10434:239;;;-1:-1:-1;;10364:3:71;;10328:355;;;;3737:6952;;;;;;3660:7029;;:::o;2452:134:89:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:89;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;11027:490:71:-;11158:22;11214:8;11200:23;;-1:-1:-1;;;;;11200:23:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11200:23:71;-1:-1:-1;11192:31:71;-1:-1:-1;11250:9:71;11233:234;11267:20;11279:8;11267:9;:20;:::i;:::-;11261:26;;:3;:26;;;11233:234;;;11375:14;;;11310:12;11375:14;;;:9;:14;;;;;;;;11356:56;;-1:-1:-1;;;;;11375:14:71;;;11356:56;;;52083:34:145;;;;11400:4:71;52133:18:145;;;52126:43;11375:14:71;52185:18:145;;;52178:50;11325:88:71;;11337:17;;52018:18:145;;11356:56:71;;;;;;;;;;;;;11325:11;:88::i;:::-;11310:103;-1:-1:-1;11310:103:71;11427:5;11433:15;11439:9;11433:3;:15;:::i;:::-;11427:22;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11427:29:71;;;:22;;;;;;;;;;;:29;-1:-1:-1;11289:5:71;;11233:234;;;;11494:16;11504:5;11494:9;:16::i;:::-;11027:490;;;;;:::o;3360:151:89:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;8922:414:140:-;9018:12;9032:13;9047:19;9068:23;9111:35;9137:8;;9111:25;:35::i;:::-;9103:43;;9165:36;9192:8;;9165:26;:36::i;:::-;9156:45;;9225:41;9257:8;;9225:31;:41::i;:::-;9211:55;;9289:40;9320:8;;9289:30;:40::i;:::-;9276:53;;8922:414;;;;;;;:::o;15968:564::-;16047:36;;-1:-1:-1;;;16047:36:140;;-1:-1:-1;;;;;;;;;16057:25:140;;;;16047:36;;;11035:41:145;-1:-1:-1;;;;;;;;;;;16047:9:140;;;11008:18:145;;16047:36:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16094:44:140;;-1:-1:-1;16167:1:140;;-1:-1:-1;16141:28:140;;-1:-1:-1;16141:28:140;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;16141:28:140;;;;;;;;;;;;;;;-1:-1:-1;16203:12:140;;;16213:1;16203:12;;;;;;;;;16094:75;;-1:-1:-1;16180:20:140;;16203:12;;;;;;;;;;;-1:-1:-1;16203:12:140;16180:35;;16273:7;16268:2;16259:7;16255:16;16248:33;16322:37;;;;;;;;16342:4;16322:37;;;;;;16348:1;16322:37;;;;;;16351:7;16322:37;;;16301:15;16317:1;16301:18;;;;;;;;:::i;:::-;;;;;;;;;;:58;16399:74;;-1:-1:-1;;;;;;;;;;;16383:15:140;;;-1:-1:-1;;;16422:41:140;16399:74;;16465:7;;16399:74;;;:::i;:::-;;;;-1:-1:-1;;16399:74:140;;;;;;;;;;;;;;-1:-1:-1;;;;;16399:74:140;-1:-1:-1;;;;;;16399:74:140;;;;;;16383:91;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16484:5:140;;:41;;-1:-1:-1;;;16484:41:140;;-1:-1:-1;;;;;16484:5:140;;;;-1:-1:-1;16484:24:140;;-1:-1:-1;16484:41:140;;16509:15;;16484:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16037:495;;15968:564;;:::o;17855:469:71:-;18099:18;;;18066:19;18099:18;;;:9;:18;;;;;;-1:-1:-1;;;;;18099:18:71;;18066:19;;18173:39;18203:8;18173:29;:39::i;:::-;18128:84;;;;;;18222:8;-1:-1:-1;;;;;18222:18:71;;18249:5;18261:3;18222:95;18267:5;18274:3;18279:5;18286;18293:12;;18307:9;;;;;;;;;;;;18222:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18056:268;;;;17855:469;;;;;;;:::o;3221:133:89:-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:89;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:89;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;4957:543:140:-;-1:-1:-1;;;;;;;;;;;5115:9:140;5141:7;5125:23;;;;;;;:49;;;5167:7;5152:12;:22;;;5125:49;5115:60;;;;;;;;;;;;;11060:14:145;11053:22;11035:41;;11023:2;11008:18;;10895:187;5115:60:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5230:35;:33;:35::i;:::-;5305:72;;;;;;;;369:1:137;5305:72:140;;-1:-1:-1;5305:72:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5387:50;;-1:-1:-1;;;5387:50:140;;-1:-1:-1;;;5387:50:140;;;54858:52:145;5387:50:140;;5305:72;;-1:-1:-1;;;;;;;;;;;5387:15:140;;;54831:18:145;;;;;-1:-1:-1;;5387:50:140;;;;;;-1:-1:-1;5387:15:140;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5456:5;5462:1;5456:8;;;;;;;;:::i;:::-;;;;;;;;;;5447:46;;-1:-1:-1;;;5447:46:140;;-1:-1:-1;;;;;5456:8:140;;;;5447:28;;:46;;5476:9;;5447:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3349:204:70:-;3441:12;3455:11;3468:13;3500:46;3538:7;;3500:37;:46::i;:::-;3493:53;;;;;;3349:204;;;;;:::o;10447:1603:140:-;-1:-1:-1;;;;;;;;;;;10576:9:140;10598:33;1456:3:141;10630:1:140;10598:33;:::i;:::-;10586:8;:45;;:93;;;;-1:-1:-1;10646:33:140;1456:3:141;10678:1:140;10646:33;:::i;:::-;10635:8;:44;10586:93;10576:104;;;;;;;;;;;;;11060:14:145;11053:22;11035:41;;11023:2;11008:18;;10895:187;10576:104:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10733:7:140;;;10700:11;;:29;;-1:-1:-1;;;10700:29:140;;;;;21186:25:145;;;-1:-1:-1;;;;;;;;;;;10690:9:140;-1:-1:-1;10690:9:140;;-1:-1:-1;;;;;;10733:7:140;;;;10700:11;;;;;:19;;21159:18:145;10700:29:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10700:40:140;;10690:51;;;;;;;;;;;;;11060:14:145;11053:22;11035:41;;11023:2;11008:18;;10895:187;10690:51:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10824:11:140;;10846:7;;;10824:30;;-1:-1:-1;;;10824:30:140;;-1:-1:-1;;;;;10846:7:140;;;10824:30;;;20702:51:145;409:1:137;;-1:-1:-1;409:1:137;;-1:-1:-1;10815:71:140;;10824:11;;;;;:21;;20675:18:145;10824:30:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1456:3:141;10815:8:140;:71::i;:::-;10905:11;;10935:12;;10905:44;;-1:-1:-1;;;10905:44:140;;-1:-1:-1;;;;;10935:12:140;;;10905:44;;;20702:51:145;10896:89:140;;10905:11;;;;;:21;;20675:18:145;;10905:44:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10951:33;1456:3:141;10983:1:140;10951:33;:::i;:::-;10896:8;:89::i;:::-;11005:7;;;10996:17;;-1:-1:-1;;;10996:17:140;;-1:-1:-1;;;;;11005:7:140;;;10996:17;;;20702:51:145;-1:-1:-1;;;;;;;;;;;10996:8:140;;;20675:18:145;10996:17:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11023:11:140;;11051:12;;11023:52;;-1:-1:-1;;;11023:52:140;;-1:-1:-1;;;;;11051:12:140;;;11023:52;;;57269:51:145;57336:18;;;57329:34;;;11023:11:140;;;-1:-1:-1;11023:19:140;;-1:-1:-1;57242:18:145;;11023:52:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11094:7:140;;;11085:17;;-1:-1:-1;;;11085:17:140;;-1:-1:-1;;;;;11094:7:140;;;11085:17;;;20702:51:145;-1:-1:-1;;;;;;;;;;;11085:8:140;-1:-1:-1;11085:8:140;;-1:-1:-1;20675:18:145;11085:17:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11112:12:140;;:36;;-1:-1:-1;;;11112:36:140;;;;;57546:25:145;;;57619:10;57607:23;;57587:18;;;57580:51;-1:-1:-1;;;;;11112:12:140;;;;-1:-1:-1;11112:18:140;;-1:-1:-1;57519:18:145;;11112:36:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11347:11:140;;11369:7;;;11347:30;;-1:-1:-1;;;11347:30:140;;-1:-1:-1;;;;;11369:7:140;;;11347:30;;;20702:51:145;11338:75:140;;-1:-1:-1;11347:11:140;;;-1:-1:-1;11347:21:140;;20675:18:145;11347:30:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11379:33;11411:1;1456:3:141;11379:33:140;:::i;11338:75::-;11432:11;;11462:12;;11432:44;;-1:-1:-1;;;11432:44:140;;-1:-1:-1;;;;;11462:12:140;;;11432:44;;;20702:51:145;11423:93:140;;11432:11;;;;;:21;;20675:18:145;;11432:44:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11478:33;1456:3:141;11510:1:140;11478:33;:::i;:::-;:37;;11514:1;11478:37;:::i;11423:93::-;11535:11;;:29;;-1:-1:-1;;;11535:29:140;;;;;21186:25:145;;;11526:62:140;;-1:-1:-1;;;;;11535:11:140;;:19;;21159:18:145;;11535:29:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11574:12;;-1:-1:-1;;;;;11574:12:140;11526:8;:62::i;:::-;11608:7;;;11599:17;;-1:-1:-1;;;11599:17:140;;-1:-1:-1;;;;;11608:7:140;;;11599:17;;;20702:51:145;-1:-1:-1;;;;;;;;;;;11599:8:140;;;20675:18:145;11599:17:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11626:12:140;;11646:3;;11626:42;;-1:-1:-1;;;11626:42:140;;-1:-1:-1;;;;;11646:3:140;;;11626:42;;;57975:51:145;58042:18;;;58035:34;;;58117:10;58105:23;;58085:18;;;58078:51;11626:12:140;;;-1:-1:-1;11626:19:140;;-1:-1:-1;57948:18:145;;11626:42:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11851:11:140;;11881:3;;11851:35;;-1:-1:-1;;;11851:35:140;;-1:-1:-1;;;;;11881:3:140;;;11851:35;;;20702:51:145;11842:48:140;;-1:-1:-1;11851:11:140;;;-1:-1:-1;11851:21:140;;20675:18:145;;11851:35:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11888:1;11842:8;:48::i;:::-;11909:11;;11939:12;;11909:44;;-1:-1:-1;;;11909:44:140;;-1:-1:-1;;;;;11939:12:140;;;11909:44;;;20702:51:145;11900:89:140;;11909:11;;;;;:21;;20675:18:145;;11909:44:140;20556:203:145;11900:89:140;12008:11;;:29;;-1:-1:-1;;;12008:29:140;;;;;21186:25:145;;;11999:44:140;;-1:-1:-1;;;;;12008:11:140;;:19;;21159:18:145;;12008:29:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12039:3;;-1:-1:-1;;;;;12039:3:140;11999:8;:44::i;14989:1687:71:-;15116:18;;;15146:1;15116:18;;;:9;:18;;;;;;-1:-1:-1;;;;;15116:18:71;15108:72;;;;-1:-1:-1;;;15108:72:71;;58342:2:145;15108:72:71;;;58324:21:145;58381:2;58361:18;;;58354:30;58420:29;58400:18;;;58393:57;58467:18;;15108:72:71;58140:351:145;15108:72:71;15237:21;;;15191:43;15237:21;;;:12;:21;;;;;;;;:34;;;;;;;;;15310:14;15237:34;15310:12;:14::i;:::-;15281:43;;15334:23;15371:13;15388:1;15371:18;15367:201;;15423:14;:5;:12;:14::i;:::-;15405:32;;15367:201;;;15507:13;15486:18;:34;:71;;15539:18;15486:71;;;15523:13;15486:71;15468:89;;15367:201;15584:19;;15577:1093;;15619:17;;;;:::i;:::-;;;;15684:12;15699:15;:5;:13;:15::i;:::-;15728:24;15755:13;;;:7;:13;;;;;15728:40;;15684:30;;-1:-1:-1;15728:24:71;;:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15782:34:71;;-1:-1:-1;;;15782:34:71;;15728:40;;-1:-1:-1;15782:4:71;;:15;;-1:-1:-1;15782:34:71;;-1:-1:-1;15728:40:71;;-1:-1:-1;15811:4:71;;15782:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15830:32:71;;-1:-1:-1;;;15830:32:71;;:4;;-1:-1:-1;15830:19:71;;-1:-1:-1;15830:32:71;;15850:11;;15830:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15877:20:71;15900:19;;;:13;:19;;;;;15877:42;;:20;;-1:-1:-1;15900:19:71;15877:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15937:71;15959:7;351:1:67;15937:21:71;:71::i;:::-;15933:369;;;16029:14;16045:16;16065:39;16096:7;16065:30;:39::i;:::-;16204:28;;16028:76;;-1:-1:-1;16028:76:71;-1:-1:-1;16028:76:71;;16122:10;;-1:-1:-1;;;;;16204:7:71;;;16028:76;;16122:10;16204:28;16122:10;16204:28;16028:76;16204:7;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16188:44;;;16258:4;16250:37;;;;-1:-1:-1;;;16250:37:71;;59049:2:145;16250:37:71;;;59031:21:145;59088:2;59068:18;;;59061:30;-1:-1:-1;;;59107:18:145;;;59100:50;59167:18;;16250:37:71;58847:344:145;16250:37:71;16010:292;;;;15933:369;16319:69;16341:7;294:1:67;16319:21:71;:69::i;:::-;16315:144;;;16408:36;;-1:-1:-1;;;16408:36:71;;:4;;:14;;:36;;16423:11;;16436:7;;16408:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16315:144;-1:-1:-1;;;;;16476:23:71;;;;;;:96;;;16503:69;16525:7;406:1:67;16503:21:71;:69::i;:::-;16472:188;;;16592:53;;-1:-1:-1;;;16592:53:71;;:4;;:14;;:53;;16607:11;;16620:7;;16629:4;;16635:9;;16592:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16472:188;15605:1065;;;15577:1093;;21259:228;21411:21;;;21344:9;21411:21;;;:12;:21;;;;;;;;:34;;;;;;;;21344:9;21462:14;21411:34;21462:12;:14::i;:::-;:18;21455:25;;;21259:228;;;;;:::o;12056:393:140:-;279:2:10;-1:-1:-1;;12145:15:140;;12195:23;12298:32;12321:8;-1:-1:-1;12298:22:140;:32::i;:::-;12289:41;;12350:33;12374:8;;12350:23;:33::i;:::-;12340:43;;12406:36;12433:8;;12406:26;:36::i;2738:178:89:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17861:907:140;18052:28;18083:134;18151:18;18183:24;18083:27;:25;:27::i;:::-;:54;:134;:54;:134::i;:::-;18279:28;;;18305:1;18279:28;;;;;;;;;18052:165;;-1:-1:-1;18227:49:140;;18279:28;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;18279:28:140;;;;;;;;;;;;;;;18227:80;;18343:52;;;;;;;;18363:4;18343:52;;;;;;18369:8;18343:52;;;;;;18379:15;18343:52;;;18317:20;18338:1;18317:23;;;;;;;;:::i;:::-;;;;;;;;;;:78;18405:5;;:46;;-1:-1:-1;;;18405:46:140;;-1:-1:-1;;;;;18405:5:140;;;;:24;;:46;;18430:20;;18405:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18462:28;18493:134;18561:18;18593:24;18493:27;:25;:27::i;:134::-;18669:5;;:40;;-1:-1:-1;;;18669:40:140;;60399:10:145;60387:23;;18669:40:140;;;60369:42:145;60459:6;60447:19;;60427:18;;;60420:47;60503:2;60483:18;;;60476:30;18638:28:140;60522:18:145;;;60515:29;;;18462:165:140;;-1:-1:-1;;;;;;18669:5:140;;;;:20;;60561:19:145;;18669:40:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18669:40:140;;;;;;;;;;;;:::i;:::-;18638:71;;18719:42;18728:15;18745;18719:8;:42::i;2722:249:70:-;2837:16;2855:21;;2878:14;2911:53;2946:8;;2956:7;2911:34;:53::i;:::-;2904:60;;;;;;;;2722:249;;;;;;;:::o;11786:514:71:-;11861:12;;11846;11883:411;11907:4;11903:1;:8;11883:411;;;11932:14;11962:5;11968:1;11962:8;;;;;;;;:::i;:::-;;;;;;;11932:40;;11991:9;11986:298;12010:4;12006:1;:8;11986:298;;;12039:20;;;12051:8;12039:20;12077:15;12108:5;12114:1;12108:8;;;;;;;;:::i;:::-;;;;;;;12077:41;;12136:16;12156:10;-1:-1:-1;;;;;12156:19:71;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12155:27:71;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12136:48;;12202:9;-1:-1:-1;;;;;12202:17:71;;12220:9;12231:37;12256:10;-1:-1:-1;;;;;21935:23:71;;21837:129;12231:37;12202:67;;-1:-1:-1;;;;;;12202:67:71;;;;;;;;61321:23:145;;;;12202:67:71;;;61303:42:145;61361:18;;;61354:34;61276:18;;12202:67:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12021:263;;11986:298;12016:3;;11986:298;;;-1:-1:-1;;11913:3:71;;11883:411;;21493:338;21664:21;;;21618:43;21664:21;;;:12;:21;;;;;;;;:34;;;;;;;;21582:24;;21712:14;21664:34;21712:12;:14::i;:::-;:18;21708:117;;;21746:12;21761;:5;:10;:12::i;:::-;21801:13;;;;:7;:13;;;;;21787:27;;21746;;-1:-1:-1;21801:13:71;21787:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21732:93;21708:117;21608:223;21493:338;;;;:::o;1025:446:137:-;1113:13;1151:3;1142:5;:12;1138:38;;-1:-1:-1;1163:13:137;;;1174:1;1163:13;;;;;;;;1156:20;;1138:38;1201:5;:12;1194:3;:19;;1186:55;;;;-1:-1:-1;;;1186:55:137;;61601:2:145;1186:55:137;;;61583:21:145;61640:2;61620:18;;;61613:30;61679:25;61659:18;;;61652:53;61722:18;;1186:55:137;61399:347:145;1186:55:137;1252:11;1266;1272:5;1266:3;:11;:::i;:::-;1252:25;;1287;1326:6;-1:-1:-1;;;;;1315:18:137;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1315:18:137;;1287:46;;1349:6;1344:92;1365:6;1361:1;:10;1344:92;;;1409:5;1415:9;1423:1;1415:5;:9;:::i;:::-;1409:16;;;;;;;;:::i;:::-;;;;;;;1392:11;1404:1;1392:14;;;;;;;;:::i;:::-;;;;;;;;;;:33;1373:3;;1344:92;;;-1:-1:-1;1453:11:137;1025:446;-1:-1:-1;;;;;1025:446:137:o;5595:780:140:-;-1:-1:-1;;;;;;;;;;;5748:9:140;5774:7;5758:23;;;;;;;:49;;;5800:7;5785:12;:22;;;5758:49;5748:60;;;;;;;;;;;;;11060:14:145;11053:22;11035:41;;11023:2;11008:18;;10895:187;5748:60:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5863:35;:33;:35::i;:::-;5938:72;;;;;;;;369:1:137;5938:72:140;;-1:-1:-1;5938:72:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6046:24;;;;;;;6059:7;6046:24;;;;;;;;6095:7;;;6081:22;;-1:-1:-1;;;6081:22:140;;-1:-1:-1;;;;;6095:7:140;;;6081:22;;;20702:51:145;6081:22:140;;5938:72;;6046:24;;-1:-1:-1;;;;;;;;;;;6081:13:140;;;20675:18:145;;;;-1:-1:-1;;6081:22:140;;;;;;;-1:-1:-1;6081:13:140;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6121:12;;;;;;;;;-1:-1:-1;;;;;6121:12:140;-1:-1:-1;;;;;6121:18:140;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6159:12;;6113:74;;-1:-1:-1;;;6113:74:140;;-1:-1:-1;;;;;6159:12:140;;;6113:74;;;61924:51:145;62023:6;62011:19;;61991:18;;;61984:47;6113:37:140;;;;;61897:18:145;;6113:74:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6197:50:140;;-1:-1:-1;;;6197:50:140;;-1:-1:-1;;;6197:50:140;;;54858:52:145;-1:-1:-1;;;;;;;;;;;6197:15:140;-1:-1:-1;6197:15:140;;-1:-1:-1;54831:18:145;;6197:50:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6266:5;6272:1;6266:8;;;;;;;;:::i;:::-;;;;;;;;;;;6289:13;;6257:87;;-1:-1:-1;;;6257:87:140;;-1:-1:-1;;;;;6266:8:140;;;;6257:23;;6289:13;6257:87;;6305:9;;6289:3;;6337:4;;6257:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;309:37:84;;-1:-1:-1;;;;;6354:12:140;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2592:140:89;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:146;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9914:527:140;9970:52;;-1:-1:-1;;;9970:52:140;;1456:3:141;9980:41:140;;;9970:52;;;11035:41:145;-1:-1:-1;;;;;;;;;;;9970:9:140;;;11008:18:145;;9970:52:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10073:5:140;;10089;;10073:22;;-1:-1:-1;;;10073:22:140;;-1:-1:-1;;;;;10089:5:140;;;10073:22;;;20702:51:145;329:1:137;;-1:-1:-1;10064:63:140;;-1:-1:-1;10073:5:140;;;:15;;20675:18:145;;10073:22:140;20556:203:145;10064:63:140;10146:5;;:30;;-1:-1:-1;;;10146:30:140;;10170:4;10146:30;;;20702:51:145;10137:43:140;;-1:-1:-1;;;;;10146:5:140;;:15;;20675:18:145;;10146:30:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10178:1;10137:8;:43::i;:::-;10200:5;;10191:15;;-1:-1:-1;;;10191:15:140;;-1:-1:-1;;;;;10200:5:140;;;10191:15;;;20702:51:145;-1:-1:-1;;;;;;;;;;;10191:8:140;;;20675:18:145;;10191:15:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10216:5:140;;10229;;10216:37;;-1:-1:-1;;;10216:37:140;;-1:-1:-1;;;;;10229:5:140;;;10216:37;;;57975:51:145;58042:18;;;58035:34;;;58117:10;58105:23;;58085:18;;;58078:51;10216:5:140;;;-1:-1:-1;10216:12:140;;-1:-1:-1;57948:18:145;;10216:37:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10273:5:140;;10289;;10273:22;;-1:-1:-1;;;10273:22:140;;-1:-1:-1;;;;;10289:5:140;;;10273:22;;;20702:51:145;10264:67:140;;-1:-1:-1;10273:5:140;;;-1:-1:-1;10273:15:140;;20675:18:145;;10273:22:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10297:33;1456:3:141;10329:1:140;10297:33;:::i;10264:67::-;10350:5;;:23;;-1:-1:-1;;;10350:23:140;;;;;21186:25:145;;;10341:40:140;;-1:-1:-1;;;;;10350:5:140;;:13;;21159:18:145;;10350:23:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10375:5;;-1:-1:-1;;;;;10375:5:140;10341:8;:40::i;:::-;10400:5;;:30;;-1:-1:-1;;;10400:30:140;;10424:4;10400:30;;;20702:51:145;10391:43:140;;-1:-1:-1;;;;;10400:5:140;;:15;;20675:18:145;;10400:30:140;20556:203:145;20944:187:71;21030:18;21051;:11;;:16;:18::i;:::-;21030:39;;21101:4;21087:10;:18;21079:45;;;;-1:-1:-1;;;21079:45:71;;63505:2:145;21079:45:71;;;63487:21:145;63544:2;63524:18;;;63517:30;-1:-1:-1;;;63563:18:145;;;63556:44;63617:18;;21079:45:71;63303:338:145;21079:45:71;21020:111;20944:187;;;:::o;14767:1195:140:-;-1:-1:-1;;;;;;;;;;;14988:9:140;-1:-1:-1;;;;;15011:21:140;;;;;;:78;;-1:-1:-1;;;;;;15052:37:140;;;;15011:78;:119;;;;;15129:1;15109:17;-1:-1:-1;;;;;15109:21:140;;15011:119;:176;;;;-1:-1:-1;;;;;;15150:37:140;;;;15011:176;14988:209;;;;;;;;;;;;;11060:14:145;11053:22;11035:41;;11023:2;11008:18;;10895:187;14988:209:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15208:27;15238:128;15306:17;15337:19;15238:27;:25;:27::i;:128::-;15208:158;;15376:27;15406:128;15474:17;15505:19;15406:27;:25;:27::i;:128::-;15592:28;;;15618:1;15592:28;;;;;;;;;15376:158;;-1:-1:-1;15545:44:140;;15592:28;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;15592:28:140;;;;;;;;;;;;;;;15545:75;;15651:44;;;;;;;;15671:4;15651:44;;;;;;15677:1;15651:44;;;;;;15680:14;15651:44;;;15630:15;15646:1;15630:18;;;;;;;;:::i;:::-;;;;;;:65;;;;15726:44;;;;;;;;15746:4;15726:44;;;;;;15752:1;15726:44;;;;;;15755:14;15726:44;;;15705:15;15721:1;15705:18;;;;;;;;:::i;:::-;;;;;;;;;;:65;15781:5;;:41;;-1:-1:-1;;;15781:41:140;;-1:-1:-1;;;;;15781:5:140;;;;:24;;:41;;15806:15;;15781:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15842:5:140;;:30;;-1:-1:-1;;;15842:30:140;;63855:10:145;63843:23;;15842:30:140;;;63825:42:145;15842:5:140;63883:18:145;;;63876:47;15833:56:140;;-1:-1:-1;;;;;;15842:5:140;;;;-1:-1:-1;15842:21:140;;63798:18:145;;15842:30:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15842:30:140;;;;;;;;;;;;:::i;:::-;15874:14;15833:8;:56::i;:::-;15908:5;;:30;;-1:-1:-1;;;15908:30:140;;63855:10:145;63843:23;;15908:30:140;;;63825:42:145;15936:1:140;63883:18:145;;;63876:47;15899:56:140;;-1:-1:-1;;;;;15908:5:140;;:21;;63798:18:145;;15908:30:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15908:30:140;;;;;;;;;;;;:::i;:::-;15940:14;15899:8;:56::i;17277:376:71:-;17447:4;:14;17475:21;:12;;:19;:21::i;:::-;17510:26;:12;;:24;:26::i;:::-;17550:8;17572:5;17591:9;17614:22;:12;;:20;:22::i;:::-;17447:199;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:22:141;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1466:22:141;;-1:-1:-1;1466:22:141;:::o;21137:116:71:-;21237:8;21201:9;:25;21211:8;-1:-1:-1;;;;;21211:12:71;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21201:25;;;;;;;;;;;;;-1:-1:-1;21201:25:71;:45;;-1:-1:-1;;;;;;21201:45:71;-1:-1:-1;;;;;21201:45:71;;;;;;;;;;-1:-1:-1;21137:116:71:o;2157:141:89:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14307:136:71;14384:52;14398:7;14407:11;14420:1;14431:3;14384:13;:52::i;3159:184:70:-;3238:14;3254:16;3289:47;3328:7;;3289:38;:47::i;:::-;3282:54;;;;3159:184;;;;;;:::o;1819:584:83:-;1873:7;;1853:4;;1873:7;;;;;1869:528;;;-1:-1:-1;1903:7:83;;;;;;;;1819:584::o;1869:528::-;1941:17;-1:-1:-1;;;;;;;;;;;2985:55:83;3066:16;1980:374;;2196:43;;;-1:-1:-1;;;;;;;;;;;2196:43:83;;;57269:51:145;;;-1:-1:-1;;;57336:18:145;;;57329:34;2196:43:83;;;;;;;;;57242:18:145;;;2196:43:83;;;-1:-1:-1;;1671:64:83;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:83;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:83:o;13661:1100:140:-;13890:19;13886:60;;;13911:35;:33;:35::i;:::-;13956:25;13984:16;:141;;14116:9;;;;;;;;;;;;13984:141;;;14015:86;14070:13;14085:15;14015:27;:25;:27::i;:86::-;14164:73;;;;;;;;369:1:137;14164:73:140;;14198:5;;-1:-1:-1;;;;;14198:5:140;;;14164:73;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14164:73:140;;;;;;;;;;;;;;;;;;;;;;;;;;;14295:5;;:35;;-1:-1:-1;;;14295:35:140;;13956:169;;-1:-1:-1;14164:73:140;;-1:-1:-1;;;;14295:5:140;;;:24;;:35;;14164:73;;14295:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14295:35:140;;;;;;;;;;;;:::i;:::-;14358:5;;:44;;-1:-1:-1;;;14358:44:140;;14248:82;;-1:-1:-1;14248:82:140;;-1:-1:-1;14340:63:140;;14248:82;;-1:-1:-1;;;;;14358:5:140;;:20;;:44;;369:1:137;;14358:5:140;;14389:12;;14358:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14358:44:140;;;;;;;;;;;;:::i;:::-;14340:8;:63::i;:::-;14414:16;14432:15;14449:16;14467:24;14495:4;-1:-1:-1;;;;;14495:24:140;;14533:7;14495:55;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14495:55:140;;;;;;;;;;;;:::i;:::-;14413:137;;;;;;;;14560:28;14569:11;14582:5;14560:8;:28::i;:::-;14633:5;;14598:42;;14607:7;;-1:-1:-1;;;;;14633:5:140;14598:8;:42::i;:::-;14650:28;14659:8;14669;14650;:28::i;:::-;14688:31;14697:11;:18;14717:1;14688:8;:31::i;:::-;14729:25;14738:11;14729:25;;;;;;;;;;;;:8;:25::i;:::-;13876:885;;;;;;;;13661:1100;;;;;:::o;2646:2211::-;-1:-1:-1;;;;;;;;;;;2783:9:140;2809:7;2793:23;;;;;;;:49;;;2835:7;2820:12;:22;;;2793:49;2783:60;;;;;;;;;;;;;11060:14:145;11053:22;11035:41;;11023:2;11008:18;;10895:187;2783:60:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2898:35;:33;:35::i;:::-;3022:5;;3038;;3022:22;;-1:-1:-1;;;3022:22:140;;-1:-1:-1;;;;;3038:5:140;;;3022:22;;;20702:51:145;3013:63:140;;3022:5;;;;;:15;;20675:18:145;;3022:22:140;20556:203:145;3013:63:140;3095:5;;3111:3;;3095:20;;-1:-1:-1;;;3095:20:140;;-1:-1:-1;;;;;3111:3:140;;;3095:20;;;20702:51:145;3086:61:140;;3095:5;;;;;:15;;20675:18:145;;3095:20:140;20556:203:145;3086:61:140;3174:12;;:20;;;-1:-1:-1;;;3174:20:140;;;;3157:89;;-1:-1:-1;;;;;3174:12:140;;:18;;:20;;;;;;;;;;;;;;:12;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3206:7;;;3166:48;;-1:-1:-1;;;3166:48:140;;-1:-1:-1;;;;;3206:7:140;;;3166:48;;;20702:51:145;3166:39:140;;;;;20675:18:145;3166:48:140;20556:203:145;3157:89:140;3273:12;;:20;;;-1:-1:-1;;;3273:20:140;;;;3256:70;;-1:-1:-1;;;;;3273:12:140;;:18;;:20;;;;;;;;;;;;;;:12;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3265:51;;-1:-1:-1;;;3265:51:140;;67943:6:145;67931:19;;3265:51:140;;;67913:38:145;-1:-1:-1;;;;;3265:37:140;;;;;;;67886:18:145;;3265:51:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3318:7;;-1:-1:-1;;;;;3318:7:140;3256:8;:70::i;:::-;3460:7;3455:1113;3477:2;3473:1;:6;;;3455:1113;;;3514:7;;;3500:22;;-1:-1:-1;;;3500:22:140;;-1:-1:-1;;;;;3514:7:140;;;3500:22;;;20702:51:145;-1:-1:-1;;;;;;;;;;;3500:13:140;;;20675:18:145;3500:22:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3544:12;;;;;;;;;-1:-1:-1;;;;;3544:12:140;-1:-1:-1;;;;;3544:18:140;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3582:12;;3536:74;;-1:-1:-1;;;3536:74:140;;-1:-1:-1;;;;;3582:12:140;;;3536:74;;;61924:51:145;62023:6;62011:19;;61991:18;;;61984:47;3536:37:140;;;;;61897:18:145;;3536:74:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;309:37:84;;-1:-1:-1;;;;;3624:12:140;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3759:7:140;;3784:5;;3652:290;;-1:-1:-1;3652:290:140;;;;-1:-1:-1;409:1:137;;329;;-1:-1:-1;;;;;3759:7:140;;;;3784:5;3759:7;;329:1:137;3759:7:140;3652:13;:290::i;:::-;4063:5;;4086:3;;3956:291;;;;;;329:1:137;;369;;-1:-1:-1;;;;;4063:5:140;;;;4086:3;4107:33;4063:5;329:1:137;4107:33:140;:::i;:::-;1456:3:141;4205:5:140;4228;3956:13;:291::i;:::-;4368:3;;4389:7;;4261:296;;;;;;369:1:137;;409;;-1:-1:-1;;;;;4368:3:140;;;;4389:7;4414:33;4368:3;;4414:33;:::i;:::-;4465;4497:1;1456:3:141;4465:33:140;:::i;:::-;4516:5;4539:4;4261:13;:296::i;:::-;3481:3;;3455:1113;;;-1:-1:-1;4626:5:140;;4642;;4626:22;;-1:-1:-1;;;4626:22:140;;-1:-1:-1;;;;;4642:5:140;;;4626:22;;;20702:51:145;4617:63:140;;4626:5;;;;;:15;;20675:18:145;;4626:22:140;20556:203:145;4617:63:140;4699:5;;4715:3;;4699:20;;-1:-1:-1;;;4699:20:140;;-1:-1:-1;;;;;4715:3:140;;;4699:20;;;20702:51:145;4690:61:140;;4699:5;;;;;:15;;20675:18:145;;4699:20:140;20556:203:145;4690:61:140;4778:12;;:20;;;-1:-1:-1;;;4778:20:140;;;;4761:89;;-1:-1:-1;;;;;4778:12:140;;:18;;:20;;;;;;;;;;;;;;:12;:20;;;;;;;;;;;;;;4761:89;2646:2211;:::o;9342:566::-;9397:51;;-1:-1:-1;;;9397:51:140;;1456:3:141;9407:40:140;;9397:51;;;11035:41:145;-1:-1:-1;;;;;;;;;;;9397:9:140;;;11008:18:145;;9397:51:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9495:5:140;;9468;;:23;;-1:-1:-1;;;9468:23:140;;;;;21186:25:145;;;-1:-1:-1;;;;;;;;;;;9458:9:140;-1:-1:-1;9458:9:140;;-1:-1:-1;;;;;;9495:5:140;;;;9468;;;;:13;;21159:18:145;;9468:23:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9468:32:140;;9458:43;;;;;;;;;;;;;11060:14:145;11053:22;11035:41;;11023:2;11008:18;;10895:187;9458:43:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9553:5:140;;9569;;9553:22;;-1:-1:-1;;;9553:22:140;;-1:-1:-1;;;;;9569:5:140;;;9553:22;;;20702:51:145;329:1:137;;-1:-1:-1;9544:63:140;;-1:-1:-1;9553:5:140;;;:15;;20675:18:145;;9553:22:140;20556:203:145;9544:63:140;9626:5;;:30;;-1:-1:-1;;;9626:30:140;;9650:4;9626:30;;;20702:51:145;9617:43:140;;-1:-1:-1;;;;;9626:5:140;;:15;;20675:18:145;;9626:30:140;20556:203:145;9617:43:140;9680:5;;9671:15;;-1:-1:-1;;;9671:15:140;;-1:-1:-1;;;;;9680:5:140;;;9671:15;;;20702:51:145;-1:-1:-1;;;;;;;;;;;9671:8:140;;;20675:18:145;;9671:15:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9696:5:140;;:29;;-1:-1:-1;;;9696:29:140;;;;;57546:25:145;;;57619:10;57607:23;;57587:18;;;57580:51;-1:-1:-1;;;;;9696:5:140;;;;-1:-1:-1;9696:11:140;;-1:-1:-1;57519:18:145;;9696:29:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9745:5:140;;9761;;9745:22;;-1:-1:-1;;;9745:22:140;;-1:-1:-1;;;;;9761:5:140;;;9745:22;;;20702:51:145;9736:67:140;;-1:-1:-1;9745:5:140;;;-1:-1:-1;9745:15:140;;20675:18:145;;9745:22:140;20556:203:145;9736:67:140;9825:5;;:22;;-1:-1:-1;;;9825:22:140;;;;;21186:25:145;;;9813:35:140;;-1:-1:-1;;;;;9825:5:140;;:12;;21159:18:145;;9825:22:140;;;;;;;;;;;;;;;;;;;;;;16538:1317;-1:-1:-1;;;;;;;;;;;16758:9:140;-1:-1:-1;;;;;16768:62:140;;;;:34;;;:62;:::i;:::-;16758:93;;-1:-1:-1;;;;;;16758:93:140;;;;;;;16768:82;-1:-1:-1;16758:93:140;;;11035:41:145;11008:18;;16758:93:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16862:28;16893:135;16961:18;16993:25;16893:27;:25;:27::i;:135::-;17090:28;;;17116:1;17090:28;;;;;;;;;16862:166;;-1:-1:-1;17038:49:140;;17090:28;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;17090:28:140;;;;;;;;;;;;;;;17038:80;;17154:52;;;;;;;;17174:4;17154:52;;;;;;17180:8;17154:52;;;;;;17190:15;17154:52;;;17128:20;17149:1;17128:23;;;;;;;;:::i;:::-;;;;;;;;;;:78;17216:5;;:46;;-1:-1:-1;;;17216:46:140;;-1:-1:-1;;;;;17216:5:140;;;;:24;;:46;;17241:20;;17216:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17426:5:140;;17273:25;;-1:-1:-1;17301:141:140;;-1:-1:-1;17370:25:140;;-1:-1:-1;;;;;17426:5:140;17409:23;17301:27;:25;:27::i;:::-;:55;:141;:55;:141::i;:::-;17697:5;;17273:169;;-1:-1:-1;17453:28:140;;17484:220;;17653:25;;-1:-1:-1;;;;;17697:5:140;17484:127;17565:18;17585:25;17484:40;:38;:40::i;:220::-;17746:5;;:50;;-1:-1:-1;;;17746:50:140;;17453:251;;-1:-1:-1;17715:28:140;;-1:-1:-1;;;;;17746:5:140;;;;:20;;:50;;17767:4;;17773:8;;17783:12;;17746:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17746:50:140;;;;;;;;;;;;:::i;:::-;17715:81;;17806:42;17815:15;17832;17806:8;:42::i;:::-;16748:1107;;;;;16538:1317;;;;;:::o;8261:655::-;8379:18;;8369:33;;-1:-1:-1;;;8369:33:140;;8379:22;;;8369:33;;;11035:41:145;-1:-1:-1;;;;;;;;;;;8369:9:140;;;11008:18:145;;8369:33:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8413:20;8436:150;8476:6;8496:7;8534:28;8551:10;-1:-1:-1;;;;;21935:23:71;;21837:129;8534:28:140;8564:11;8517:59;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8436:26;:150::i;:::-;8413:173;;8597:12;8611:13;8626:19;8647:23;8674:4;-1:-1:-1;;;;;8674:31:140;;8719:7;8674:62;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8674:62:140;;;;;;;;;;;;:::i;:::-;8596:140;;;;;;;;8747:23;8756:5;-1:-1:-1;;;;;8747:23:140;8763:6;-1:-1:-1;;;;;8747:23:140;:8;:23::i;:::-;8780:25;8789:6;8780:25;;8797:7;8780:25;;:8;:25::i;:::-;8815:51;8824:11;8854:10;14598:8;:42::i;8815:51::-;8876:33;8885:10;8897:11;8876:8;:33::i;6381:1874::-;6483:18;;6473:33;;-1:-1:-1;;;6473:33:140;;6483:22;;;6473:33;;;11035:41:145;-1:-1:-1;;;;;;;;;;;6473:9:140;;;11008:18:145;;6473:33:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6526:5:140;;:27;;-1:-1:-1;;;6526:27:140;;69551:4:145;69539:17;;6526:27:140;;;69521:36:145;6517:44:140;;-1:-1:-1;;;;;;6526:5:140;;;;-1:-1:-1;6526:13:140;;69494:18:145;;6526:27:140;69377:186:145;6517:44:140;6572:21;6596:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;6572:42;;6624:20;6647:145;6779:1;6782:6;6790:1;6647:91;6728:6;6736:1;6647:40;:38;:40::i;:91::-;:131;:145;;:131;:145::i;:::-;6624:168;;6802:26;6831:175;;;;;;;;369:1:137;6831:175:140;;;;;;6873:35;6898:8;-1:-1:-1;;;;;21935:23:71;;21837:129;6873:35:140;6831:175;;;;6922:12;6831:175;;;;;;6948:7;6831:175;;;;6969:11;6831:175;;;;;;;;;;;;;;;;;;;6802:204;;7016:23;7042:5;;;;;;;;;-1:-1:-1;;;;;7042:5:140;-1:-1:-1;;;;;7042:15:140;;7058:9;7069:5;7042:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7095:5;;:34;;-1:-1:-1;;;7095:34:140;;-1:-1:-1;;;;;20720:32:145;;;7095:34:140;;;20702:51:145;7016:59:140;;-1:-1:-1;7086:47:140;;7095:5;;;;:15;;20675:18:145;;7095:34:140;20556:203:145;7086:47:140;7153:5;;7144:15;;-1:-1:-1;;;7144:15:140;;-1:-1:-1;;;;;7153:5:140;;;7144:15;;;20702:51:145;-1:-1:-1;;;;;;;;;;;7144:8:140;;;20675:18:145;;7144:15:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7206:5:140;;7225:13;;7206:74;;-1:-1:-1;;;7206:74:140;;7169:34;;-1:-1:-1;;;;;;7206:5:140;;;;-1:-1:-1;7206:10:140;;:74;;7241:9;;7225:3;;7273:4;;7206:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7336:5;;7169:111;;-1:-1:-1;7290:54:140;;369:1:137;;-1:-1:-1;;;;;7336:5:140;14307:136:71;:::i;7290:54:140:-;7407:5;;7480:15;;7614:16;;;;7697:5;;-1:-1:-1;;;;;7407:5:140;;;;7447:7;;7480:15;7527:8;;7383:13;;7574:153;;7614:16;7407:5;;7697;7705:11;7663:54;;;;;;;;;:::i;7574:153::-;7737:64;;-1:-1:-1;;;7737:64:140;;7546:181;;-1:-1:-1;7737:4:140;;:14;;:64;;369:1:137;;7759:5:140;;7766:8;;7776:5;;7783:3;;7546:181;;7737:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7821:5:140;;7837;;7821:22;;-1:-1:-1;;;7821:22:140;;-1:-1:-1;;;;;7837:5:140;;;7821:22;;;20702:51:145;7812:67:140;;-1:-1:-1;7821:5:140;;;-1:-1:-1;7821:15:140;;20675:18:145;;7821:22:140;20556:203:145;7812:67:140;7898:5;;:34;;-1:-1:-1;;;7898:34:140;;-1:-1:-1;;;;;20720:32:145;;;7898:34:140;;;20702:51:145;7889:47:140;;7898:5;;:15;;20675:18:145;;7898:34:140;20556:203:145;7889:47:140;7947:32;7956:8;-1:-1:-1;;;;;7956:13:140;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7973:5;7947:8;:32::i;:::-;7989;7998:8;-1:-1:-1;;;;;7998:13:140;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8015:5;7989:8;:32::i;:::-;8031:42;8040:8;-1:-1:-1;;;;;8040:16:140;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8040:18:140;;;;;;;;;;;;:::i;:::-;8060:12;8031:8;:42::i;:::-;8083:44;8092:8;-1:-1:-1;;;;;8092:17:140;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8121:4;8083:8;:44::i;:::-;8137;8146:8;-1:-1:-1;;;;;8146:18:140;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8137:44;6463:1792;;;;;;;;;;6381:1874;;:::o;2304:142:89:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:89;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;19442:834:140:-;369:1:137;19557:35:140;:33;:35::i;:::-;19632:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19603:26;19632:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19739:5;;:35;;-1:-1:-1;;;19739:35:140;;19632:44;;19603:26;;-1:-1:-1;;;;;19739:5:140;;;;:24;;:35;;19632:44;;19739:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19739:35:140;;;;;;;;;;;;:::i;:::-;19712:62;;;19867:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19851:13:140;:35;;-1:-1:-1;;;;;;19851:35:140;-1:-1:-1;;;;;19851:35:140;;;;;;;;;19896:5;;:45;;-1:-1:-1;;;19896:45:140;;;;;20702:51:145;;;;19896:5:140;;;;:21;;20675:18:145;;19896:45:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20155:5:140;;:31;;-1:-1:-1;;;20155:31:140;;369:1:137;20155:31:140;;;63825:42:145;20155:5:140;63883:18:145;;;63876:47;-1:-1:-1;;;;;;;;;;;20000:15:140;-1:-1:-1;20000:15:140;;-1:-1:-1;;;;20069:43:140;20130:7;;-1:-1:-1;;;;;20155:5:140;;;;:21;;63798:18:145;;20155:31:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20155:31:140;;;;;;;;;;;;:::i;:::-;20029:171;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;20029:171:140;;;;;;;;;;;;;;-1:-1:-1;;;;;20029:171:140;-1:-1:-1;;;;;;20029:171:140;;;;;;20000:210;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20234:5:140;;:35;;-1:-1:-1;;;20234:35:140;;-1:-1:-1;;;;;20234:5:140;;;;-1:-1:-1;20234:24:140;;-1:-1:-1;20234:35:140;;20259:9;;20234:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20234:35:140;;;;;;;;;;;;:::i;18774:662::-;19086:5;;18933:25;;18961:141;;19030:25;;-1:-1:-1;;;;;19086:5:140;19069:23;21837:129:71;18961:141:140;19269:5;;18933:169;;-1:-1:-1;19113:28:140;;19144:141;;19213:25;;-1:-1:-1;;;;;19269:5:140;19252:23;21837:129:71;19144:141:140;19327:5;;:50;;-1:-1:-1;;;19327:50:140;;19113:172;;-1:-1:-1;19296:28:140;;-1:-1:-1;;;;;19327:5:140;;;;:20;;:50;;19348:4;;19354:8;;19364:12;;19327:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19327:50:140;;;;;;;;;;;;:::i;:::-;19296:81;;19387:42;19396:15;19413;19387:8;:42::i;:::-;18923:513;;;18774:662;;;:::o;1581:598::-;1635:5;;:13;;;-1:-1:-1;;;1635:13:140;;;;1626:38;;-1:-1:-1;;;;;1635:5:140;;:11;;:13;;;;;;;;;;;;;;:5;:13;;;;;;;;;;;;;;1626:38;1683:5;;:13;;;-1:-1:-1;;;1683:13:140;;;;1674:38;;-1:-1:-1;;;;;1683:5:140;;:11;;:13;;;;;;;;;;;;;;:5;:13;;;;;;;;;;;;;;1674:38;1731:12;;:20;;;-1:-1:-1;;;1731:20:140;;;;1722:45;;-1:-1:-1;;;;;1731:12:140;;:18;;:20;;;;;;;;;;;;;;:12;:20;;;;;;;;;;;;;;1722:45;1787:5;;1803;;1787:22;;-1:-1:-1;;;1787:22:140;;-1:-1:-1;;;;;1803:5:140;;;1787:22;;;20702:51:145;1778:63:140;;1787:5;;;;;:15;;20675:18:145;;1787:22:140;20556:203:145;1778:63:140;1860:5;;1876:3;;1860:20;;-1:-1:-1;;;1860:20:140;;-1:-1:-1;;;;;1876:3:140;;;1860:20;;;20702:51:145;1851:61:140;;1860:5;;;;;:15;;20675:18:145;;1860:20:140;20556:203:145;1851:61:140;1939:12;;:20;;;-1:-1:-1;;;1939:20:140;;;;1922:89;;-1:-1:-1;;;;;1939:12:140;;:18;;:20;;;;;;;;;;;;;;:12;:20;;;;;;;;;;;;;;1922:89;2031:5;;:13;;;-1:-1:-1;;;2031:13:140;;;;2022:39;;-1:-1:-1;;;;;2031:5:140;;:11;;:13;;;;;;;;;;;;;;:5;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2054:5;;-1:-1:-1;;;;;2054:5:140;2022:8;:39::i;:::-;2080:5;;:13;;;-1:-1:-1;;;2080:13:140;;;;2071:39;;-1:-1:-1;;;;;2080:5:140;;:11;;:13;;;;;;;;;;;;;;:5;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2103:5;;-1:-1:-1;;;;;2103:5:140;2071:8;:39::i;:::-;2129:12;;:20;;;-1:-1:-1;;;2129:20:140;;;;2120:52;;-1:-1:-1;;;;;2129:12:140;;:18;;:20;;;;;;;;;;;;;;:12;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2159:11;;-1:-1:-1;;;;;2159:11:140;2120:8;:52::i;16682:589:71:-;16780:19;16813:9;:32;16823:21;:12;;:19;:21::i;:::-;16813:32;;;;;;;;;;;;;-1:-1:-1;16813:32:71;;;;-1:-1:-1;;;;;16813:32:71;;-1:-1:-1;;16887:53:71;16931:8;16887:43;:53::i;:::-;16856:84;;;;16951:20;16974:74;;;;;;;;16981:21;:12;;:19;:21::i;:::-;16974:74;;;;;;17004:21;:12;;:19;:21::i;:::-;16974:74;;;;17027:20;:12;;:18;:20::i;:::-;-1:-1:-1;;;;;16974:74:71;;;16951:97;-1:-1:-1;;;;;;17058:18:71;;;17097:3;17085:5;16951:97;17136:26;:12;;:24;:26::i;:::-;17176:19;:12;;:17;:19::i;:::-;17209:22;:12;;:20;:22::i;:::-;17245:9;;;;;;;;;;;;17058:206;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20282:280:140;20420:12;;:64;;-1:-1:-1;;;20420:64:140;;20402:15;;-1:-1:-1;;;;;20420:12:140;;:29;;:64;;20450:9;;20461:5;;20468:8;;20478:5;;20420:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20402:82;-1:-1:-1;20494:61:140;-1:-1:-1;;;;;;20494:61:140;;-1:-1:-1;;;20494:8:140;:61::i;:::-;20392:170;20282:280;;;;:::o;12455:1200::-;12650:23;;-1:-1:-1;;;12650:23:140;;-1:-1:-1;;;;;12660:12:140;;;;12650:23;;;11035:41:145;-1:-1:-1;;;;;;;;;;;12650:9:140;;;11008:18:145;;12650:23:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12683:26:140;;-1:-1:-1;;;12683:26:140;;-1:-1:-1;;;;;12693:15:140;;;;12683:26;;;11035:41:145;-1:-1:-1;;;;;;;;;;;12683:9:140;-1:-1:-1;12683:9:140;;-1:-1:-1;11008:18:145;;12683:26:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12720:25;12748:72;12803:8;12813:6;12748:27;:25;:27::i;:72::-;12834:18;;12720:100;;-1:-1:-1;12834:22:140;12830:106;;12873:63;:12;12913:1;12916:11;12929:6;12873:39;:63::i;:::-;12858:78;;12830:106;12975:82;;;;;;;;369:1:137;12975:82:140;;13009:5;;-1:-1:-1;;;;;13009:5:140;;;12975:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12975:82:140;;;;;;;;;;13115:5;;:35;;-1:-1:-1;;;13115:35:140;;12975:82;;-1:-1:-1;;;;13115:5:140;;;;;:24;;:35;;12975:82;;13115:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13115:35:140;;;;;;;;;;;;:::i;:::-;13068:82;;;;13161:31;13170:7;13179:12;13161:8;:31::i;:::-;13203:15;13220:14;13236:15;13253:23;13280:4;-1:-1:-1;;;;;13280:24:140;;13305:7;13280:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13280:33:140;;;;;;;;;;;;:::i;:::-;13202:111;;;;;;;;13323:44;13332:10;13365:1;13344:11;:18;:22;13323:8;:44::i;:::-;13411:5;;13377:41;;13386:6;;-1:-1:-1;;;;;13411:5:140;14598:8;:42::i;13377:41::-;13428:27;13437:7;13446:8;13428;:27::i;:::-;13465:31;13541:4;13549:11;13499:62;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13465:96;;13571:77;13580:10;13613:1;13592:11;:18;:22;:55;;13638:9;;;;;;;;;;;;14340:8;:63::i;13571:77::-;12640:1015;;;;;;;;;12455:1200;;;;;:::o;2977:176:70:-;3055:11;3068:13;3100:46;3138:7;;3100:37;:46::i;13482:464:71:-;13577:13;13593:21;:12;;:19;:21::i;:::-;13577:37;;13624:18;13645:23;:12;;:21;:23::i;:::-;13724:20;;;13678:43;13724:20;;;:12;:20;;;;;;;;:32;;;;;;;;13624:44;;-1:-1:-1;13811:19:71;:12;;:17;:19::i;:::-;13796:34;-1:-1:-1;13840:21:71;:5;13796:34;13840:15;:21::i;:::-;13871:13;;;;:7;:13;;;;;:28;13887:12;;13871:13;:28;:::i;:::-;-1:-1:-1;13909:19:71;;;;:13;:19;;;;;:30;13931:8;;13909:19;:30;:::i;587:83:85:-;646:17;658:4;657:5;3262:157:83;3322:9;3317:96;;-1:-1:-1;;;;;;;;;;;3352:30:83;;;;74145:2:145;74127:21;;;74184:2;74164:18;;;74157:30;74223:25;74218:2;74203:18;;74196:53;74281:2;74266:18;;73943:347;3352:30:83;;;;;;;;3396:6;:4;:6::i;4095:277::-;4163:1;4158;:6;4154:212;;-1:-1:-1;;;;;;;;;;;4185:44:83;;;;74497:2:145;74479:21;;;74536:2;74516:18;;;74509:30;74575:34;74570:2;74555:18;;74548:62;-1:-1:-1;;;74641:2:145;74626:18;;74619:35;74686:3;74671:19;;74295:401;4185:44:83;;;;;;;;4248:34;4280:1;4248:34;;;;;;:::i;:::-;;;;;;;;4301;4333:1;4301:34;;;;;;:::i;:::-;;;;;;;;4349:6;:4;:6::i;5209:262::-;5271:1;5266;:6;5262:203;;-1:-1:-1;;;;;;;;;;;5293:41:83;;;;75937:2:145;75919:21;;;75976:2;75956:18;;;75949:30;76015:34;76010:2;75995:18;;75988:62;-1:-1:-1;;;76081:2:145;76066:18;;76059:32;76123:3;76108:19;;75735:398;5293:41:83;;;;;;;;5353:31;5382:1;5353:31;;;;;;:::i;:::-;;;;;;;;5403;5432:1;5403:31;;;;;;:::i;609:155:137:-;683:57;456:1;713:26;683:14;:57::i;:::-;750:7;:5;:7::i;2068:805:141:-;2152:171;2181:30;;;;;;;;:::i;:::-;-1:-1:-1;;2181:30:141;;;;;;;;;;;;;2240:11;;;;;;;;;-1:-1:-1;;;2181:30:141;2240:11;;;;;;2253:13;;;;;;;;;;;;;;;;;329:1:137;-1:-1:-1;2276:16:141;;;;;;2229:80;;;;-1:-1:-1;;;;;2276:16:141;;2303:4;;2229:80;;:::i;2152:171::-;2119:5;:214;;-1:-1:-1;;;;;;2119:214:141;-1:-1:-1;;;;;2119:214:141;;;;;;;;;;2406:30;;2377:171;;2406:30;;;;;:::i;:::-;-1:-1:-1;;2406:30:141;;;;;;;;;;;;;2465:11;;;;;;;;;-1:-1:-1;;;2406:30:141;2465:11;;;;;;2478:13;;;;;;;;;;;;;;;;;369:1:137;-1:-1:-1;2501:16:141;;;;;;2454:80;;;;-1:-1:-1;;;;;2501:16:141;;2528:4;;2454:80;;:::i;2377:171::-;2344:5;;:214;;;;;-1:-1:-1;;;;;2344:214:141;;;;;-1:-1:-1;;;;;2344:214:141;;;;;;2598:12;;;;;;;;;;;;;-1:-1:-1;;;2598:12:141;;;2612:14;;;;;;;;;;;;;-1:-1:-1;;;2612:14:141;;;2583:44;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2569:11:141;:58;;-1:-1:-1;;;;;;2569:58:141;-1:-1:-1;;;;;2569:58:141;;;;;;;;;;2713:37;;2684:172;;2713:37;;;;;:::i;:::-;-1:-1:-1;;2713:37:141;;;;;;;;;;;;;;;;2787:11;;409:1:137;2787:11:141;2809:16;2713:37;2809:16;;;;;-1:-1:-1;;;;;2787:11:141;;;2768:74;;;78060:34:145;;;;2809:16:141;78110:18:145;;;78103:43;2836:4:141;78162:18:145;;;78155:43;77995:18;;2768:74:141;77820:384:145;2684:172:141;2637:12;:229;;-1:-1:-1;;;;;;2637:229:141;-1:-1:-1;;;;;2637:229:141;;;;;;;;;;2068:805::o;3226:366::-;3310:16;;;3324:1;3310:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;3302:24:141;;;;:5;;-1:-1:-1;3302:24:141;;;;:::i;:::-;-1:-1:-1;3396:5:141;;3336:17;;-1:-1:-1;;;;;3396:5:141;3367;3336:17;3373:11;3336:17;3373:11;:::i;:::-;;;3367:18;;;;;;;;:::i;:::-;;;;;;;;;;:35;;-1:-1:-1;;;;;;3367:35:141;-1:-1:-1;;;;;3367:35:141;;;;;;3441:5;;;3412;3418:11;;;;:::i;:::-;;;3412:18;;;;;;;;:::i;:::-;;;;;;;;;;:35;;-1:-1:-1;;;;;;3412:35:141;-1:-1:-1;;;;;3412:35:141;;;;;;3486:12;;;3457:5;3463:11;;;;:::i;:::-;;;3457:18;;;;;;;;:::i;:::-;;;;;;;;;:42;;;;;-1:-1:-1;;;;;3457:42:141;;;;;-1:-1:-1;;;;;3457:42:141;;;;;;3509:16;3519:5;3509:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3509:16:141;;;;;;;;;;;;;;;;;;;;;:9;:16::i;:::-;3536;:14;:16::i;:::-;3562:23;:21;:23::i;2671:150:68:-;2734:6;2773:39;706:2;655;2773:7;;:39;:::i;:::-;2766:47;;;:::i;:::-;2759:55;;;2671:150;-1:-1:-1;;;2671:150:68:o;2976:130::-;3044:7;3070:29;:17;3079:7;;3070:8;:17::i;:::-;1210:15:60;1084:151;2230:148:68;2293:6;2332:37;605:2;557:1;2332:7;;:37;:::i;1788:125::-;1851:14;;1884:22;785:2;1851:14;1884:7;;:22;:::i;3397:132::-;3461:14;;3500:21;:7;785:2;3500:7;;:21;:::i;12737:399:71:-;12835:12;12859:21;12913:13;12896:31;;;;;;;;:::i;:::-;;;;-1:-1:-1;;12896:31:71;;;;;;;;;;12883:63;;12929:16;;12896:31;12883:63;;:::i;:::-;;;;;;;;;;;;;12859:87;;13024:8;13018:15;13011:4;13001:8;12997:19;12994:1;12987:47;12979:55;;13069:4;13057:17;13047:73;;13104:1;13101;13094:12;1071:145:0;1130:18;1188:19;295:1;1130:18;1188:4;;:19;:::i;:::-;1181:27;;;:::i;:::-;1174:35;;;1071:145;-1:-1:-1;;;1071:145:0:o;1401:162::-;1461:19;1521:33;342:2;295:1;1521:4;;:33;:::i;1742:178::-;1807:25;1872:40;395:2;342;1872:4;;:40;:::i;:::-;1864:49;;;:::i;2059:157::-;2123:29;2183:26;:4;395:2;2183:4;;:26;:::i;:::-;2164:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2164:45:0;;2059:157;-1:-1:-1;;;;;;2059:157:0:o;1471:427:70:-;1570:12;1584:11;1597:13;1623:10;1635:19;1658:113;1702:8;406:1:67;1658:30:70;:113::i;:::-;1622:149;;;;1789:5;1781:59;;;;-1:-1:-1;;;1781:59:70;;80308:2:145;1781:59:70;;;80290:21:145;80347:2;80327:18;;;80320:30;80386:34;80366:18;;;80359:62;-1:-1:-1;;;80437:18:145;;;80430:39;80486:19;;1781:59:70;80106:405:145;1781:59:70;1857:34;;-1:-1:-1;;;1857:34:70;;:4;;:26;;:34;;1884:6;;1857:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1850:41;;-1:-1:-1;;;;;1850:41:70;;;;-1:-1:-1;1850:41:70;;;-1:-1:-1;1471:427:70;-1:-1:-1;;;;1471:427:70:o;6814:306:141:-;6883:8;6878:236;6902:1;6897;:6;;;6878:236;;6962:5;;6924:48;;-1:-1:-1;;;;;6962:5:141;6970:1;6924:29;:48::i;:::-;7024:5;;6986:48;;-1:-1:-1;;;;;7024:5:141;7032:1;6986:29;:48::i;:::-;7086:12;;7048:55;;-1:-1:-1;;;;;7086:12:141;7101:1;7048:29;:55::i;:::-;6905:3;;;;:::i;:::-;;;;6878:236;;2591:371:67;2683:12;;;2757:2;2739:20;;;;;:44;;-1:-1:-1;2781:2:67;2763:20;;;2739:44;2735:90;;;2792:33;;-1:-1:-1;;;2792:33:67;;;;;;;;;;;2735:90;2843:16;:7;;2857:1;2843:13;:16::i;:::-;2835:24;-1:-1:-1;2875:17:67;:7;;2890:1;2875:14;:17::i;:::-;2869:23;-1:-1:-1;2928:2:67;2910:20;;:45;;2954:1;2910:45;;;2933:18;:7;;2948:2;2933:14;:18::i;:::-;2902:53;;2591:371;;;;;:::o;3622:277:83:-;3690:1;-1:-1:-1;;;;;3685:6:83;:1;-1:-1:-1;;;;;3685:6:83;;3681:212;;-1:-1:-1;;;;;;;;;;;3712:44:83;;;;81446:2:145;81428:21;;;81485:2;81465:18;;;81458:30;81524:34;81519:2;81504:18;;81497:62;-1:-1:-1;;;81590:2:145;81575:18;;81568:35;81635:3;81620:19;;81244:401;3712:44:83;;;;;;;;3775:34;3807:1;3775:34;;;;;;:::i;:::-;;;;;;;;3828;3860:1;3828:34;;;;;;:::i;5491:168:131:-;5629:12;-1:-1:-1;;;;;5629:12:131;;;-1:-1:-1;;;5616:10:131;;;;;:25;;;;5608:34;;5491:168::o;2441:371::-;2573:10;;2504:13;;-1:-1:-1;;;;;;;;2573:10:131;;;;;2614:12;2601:25;;2597:50;;2635:12;;-1:-1:-1;;;2635:12:131;;;;;;;;;;;2597:50;-1:-1:-1;;2661:11:131;-1:-1:-1;;;;;2694:22:131;;;;;;;2661:11;2694;;:22;;;;;;;2730:29;;;2773:22;;;;;-1:-1:-1;;;2773:22:131;;;;;;;-1:-1:-1;2694:22:131;2441:371::o;1904:228:70:-;2030:10;2064:61;2095:8;2105:19;2064:30;:61::i;:::-;-1:-1:-1;2052:73:70;1904:228;-1:-1:-1;;;1904:228:70:o;1027:438::-;1127:14;1143:16;1172:10;1184:19;1207:115;1251:8;351:1:67;1207:30:70;:115::i;:::-;1171:151;;;;1340:5;1332:60;;;;-1:-1:-1;;;1332:60:70;;82610:2:145;1332:60:70;;;82592:21:145;82649:2;82629:18;;;82622:30;82688:34;82668:18;;;82661:62;-1:-1:-1;;;82739:18:145;;;82732:40;82789:19;;1332:60:70;82408:406:145;1332:60:70;1423:35;;-1:-1:-1;;;1423:35:70;;:4;;:27;;:35;;1451:6;;1423:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1402:56:70;;;;;;-1:-1:-1;1027:438:70;-1:-1:-1;;;;1027:438:70:o;1221:144:10:-;1281:20;1336:21;230:2;1281:20;1336:4;;:21;:::i;1530:176::-;1591:21;1651:36;279:2;230;1651:4;;:36;:::i;:::-;1640:59;;;;;;;:::i;2190:153::-;2254:29;2314:22;:4;279:2;2314:4;;:22;:::i;1303:107:42:-;1379:24;;;-1:-1:-1;;;1379:24:42;;;83263:51:145;1379:24:42;;;;;;;;;83330:11:145;;;;1379:24:42;;;;1303:107::o;2101:357::-;2263:12;2244:8;817:1;1068:20;2244:8;1086:1;1068:17;:20::i;:::-;:30;;;1064:82;;1125:20;:8;1143:1;1125:17;:20::i;:::-;1107:39;;-1:-1:-1;;;1107:39:42;;67943:6:145;67931:19;;;1107:39:42;;;67913:38:145;67886:18;;1107:39:42;67768:189:145;1064:82:42;2287:19:::1;2309:51;2347:4;2353:6;2309:37;:51::i;:::-;2287:73;;2377:74;2395:8;294:1:67;2444:6:42;2377:17;:74::i;:::-;2370:81:::0;2101:357;-1:-1:-1;;;;;;2101:357:42:o;1299:99:85:-;1376:15;1386:1;1389;1376:9;:15::i;1251:742:67:-;1366:16;1384:21;1366:16;1506:1;1496:11;;1366:16;1568:22;:8;;1496:11;1568:14;:22::i;:::-;1614:1;1604:11;;;;;1554:36;-1:-1:-1;1675:21:67;:8;;1604:11;1675:13;:21::i;:::-;1662:34;-1:-1:-1;1826:1:67;1817:10;;1881:13;;;;;1917:31;1881:13;1817:10;1917:8;;:31;:::i;:::-;1251:742;;1908:40;;-1:-1:-1;1908:40:67;;-1:-1:-1;;;1962:14:67;;;;-1:-1:-1;;;1251:742:67:o;4238:212:131:-;4303:13;4332:12;4338:5;5832:12;-1:-1:-1;;;5818:10:131;;-1:-1:-1;;;;;5818:10:131;;;5832:12;;5818:26;;5729:122;4332:12;4328:37;;;4353:12;;-1:-1:-1;;;4353:12:131;;;;;;;;;;;4328:37;-1:-1:-1;4418:10:131;;-1:-1:-1;;;;;;;;;;4418:10:131;;;;;:14;4406:27;;;;;:11;;;;:27;;;;;;;4238:212::o;3112:138:68:-;3173:7;3207:35;862:3;785:2;3207:7;;:35;:::i;3256:135::-;3320:14;;3359:24;:7;862:3;3359:7;;:24;:::i;2314:271:67:-;2393:14;;2459:2;2441:20;;2437:67;;2470:34;;-1:-1:-1;;;2470:34:67;;;;;;;;;;;2437:67;2523:17;:7;;2538:1;2523:14;:17::i;:::-;2514:26;-1:-1:-1;2561:17:67;:7;;2575:2;2561:13;:17::i;:::-;2550:28;;2314:271;;;;;:::o;789:312:85:-;859:1;854:6;;:1;:6;;;850:245;;-1:-1:-1;;;;;;;;;;;881:41:85;;;;83747:2:145;83729:21;;;83786:2;83766:18;;;83759:30;83825:34;83820:2;83805:18;;83798:62;-1:-1:-1;;;83891:2:145;83876:18;;83869:32;83933:3;83918:19;;83545:398;881:41:85;;;;;;;;941:52;972:1;:20;;;;;;;;;;;;;;;-1:-1:-1;;;972:20:85;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;972:20:85;;;;941:52;;;;;;:::i;:::-;;;;;;;;1012;1043:1;:20;;;;;;;;;;;;;;;-1:-1:-1;;;1043:20:85;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1043:20:85;;;;1012:52;;;;;;:::i;4999:530:141:-;5279:243;5306:12;5332:7;5353;5374:5;5393:3;5279:243;;;;;;;;;;;;5426:9;5449;5472:13;5499;5279;:243::i;2940:373:42:-;3109:12;3090:8;817:1;1068:20;3090:8;1086:1;1068:17;:20::i;:::-;:30;;;1064:82;;1125:20;:8;1143:1;1125:17;:20::i;1064:82::-;3133:19:::1;3155:58;3194:7;3203:9;3155:38;:58::i;:::-;3133:80;;3230:76;3248:8;351:1:67;3299:6:42;3230:17;:76::i;675:252:0:-:0;832:20;891:6;899:7;908:11;874:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;864:56;;675:252;;;;;:::o;4062:388:42:-;4247:12;4228:8;817:1;1068:20;4228:8;1086:1;1068:17;:20::i;:::-;:30;;;1064:82;;1125:20;:8;1143:1;1125:17;:20::i;1064:82::-;4271:19:::1;4293:59;4331:6;4339:4;4345:6;4293:37;:59::i;:::-;4271:81;;4369:74;4387:8;406:1:67;4436:6:42;4369:17;:74::i;:::-;4362:81:::0;4062:388;-1:-1:-1;;;;;;;4062:388:42:o;614:407:70:-;699:11;712:13;738:10;750:19;773:113;817:8;294:1:67;773:30:70;:113::i;:::-;737:149;;;;904:5;896:59;;;;-1:-1:-1;;;896:59:70;;85548:2:145;896:59:70;;;85530:21:145;85587:2;85567:18;;;85560:30;85626:34;85606:18;;;85599:62;-1:-1:-1;;;85677:18:145;;;85670:39;85726:19;;896:59:70;85346:405:145;896:59:70;980:34;;-1:-1:-1;;;980:34:70;;:4;;:26;;:34;;1007:6;;980:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;965:49:70;;;;;;;-1:-1:-1;614:407:70;-1:-1:-1;;;;614:407:70:o;2384:142:68:-;2447:7;2481:37;655:2;605;2481:7;;:37;:::i;2078:146::-;2140:6;2179:36;557:1;493;2179:7;;:36;:::i;1999:309:67:-;2077:11;;2137:2;2119:20;;;;;:44;;-1:-1:-1;2161:2:67;2143:20;;;2119:44;2115:90;;;2172:33;;-1:-1:-1;;;2172:33:67;;;;;;;;;;;2115:90;2221:17;:7;;2236:1;2221:14;:17::i;:::-;2215:23;-1:-1:-1;2274:2:67;2256:20;;:45;;2300:1;2256:45;;;2279:18;:7;;2294:2;2279:14;:18::i;2827:143:68:-;2892:7;2926:36;785:2;706;2926:7;;:36;:::i;2954:305:131:-;3080:12;;-1:-1:-1;;;;;3080:12:131;;;-1:-1:-1;;3080:16:131;;-1:-1:-1;;;3128:10:131;;;;3114:24;;;;3110:48;;3147:11;;-1:-1:-1;;;3147:11:131;;;;;;;;;;;3110:48;-1:-1:-1;;;;;3172:23:131;;;;;:11;;;:23;;;;;:31;;;;3217:25;;-1:-1:-1;;;;;;3217:25:131;;;;2954:305::o;2409:432:83:-;-1:-1:-1;;;;;;;;;;;2985:55:83;3066:16;2452:359;;2652:67;;;-1:-1:-1;;;;;;;;;;;2652:67:83;;;86348:51:145;;;-1:-1:-1;;;86415:18:145;;;86408:34;;;;2712:4:83;86458:18:145;;;86451:34;2489:11:83;;1671:64;2586:43;;86321:18:145;;2652:67:83;;;-1:-1:-1;;2652:67:83;;;;;;;;;;2541:196;;;2652:67;2541:196;;:::i;:::-;;;;-1:-1:-1;;2541:196:83;;;;;;;;;;2506:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2452:359:83;2820:7;:14;;-1:-1:-1;;2820:14:83;;;;;2409:432::o;834:185:137:-;886:5;;878:38;;-1:-1:-1;;;878:38:137;;-1:-1:-1;;;;;886:5:137;;;878:38;;;57269:51:145;279:10:137;57336:18:145;;;57329:34;-1:-1:-1;;;;;;;;;;;878:7:137;;;57242:18:145;;878:38:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;934:3:137;;926:36;;-1:-1:-1;;;926:36:137;;-1:-1:-1;;;;;934:3:137;;;926:36;;;57269:51:145;279:10:137;57336:18:145;;;57329:34;-1:-1:-1;;;;;;;;;;;926:7:137;-1:-1:-1;926:7:137;;-1:-1:-1;57242:18:145;;926:36:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;980:7:137;;;972:40;;-1:-1:-1;;;972:40:137;;-1:-1:-1;;;;;980:7:137;;;972:40;;;57269:51:145;279:10:137;57336:18:145;;;57329:34;;;;-1:-1:-1;;;;;;;;;;;972:7:137;-1:-1:-1;972:7:137;;-1:-1:-1;57242:18:145;;972:40:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3637:212:141;1456:3;3682:22;3741:102;3765:18;:14;3782:1;3765:18;:::i;:::-;3761:1;:22;3741:102;;;3804:11;;3821:7;;;3804:28;;-1:-1:-1;;;3804:28:141;;-1:-1:-1;;;;;3821:7:141;;;3804:28;;;57269:51:145;57336:18;;;57329:34;;;3804:11:141;;;;:16;;57242:18:145;;3804:28:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3785:3:141;;;;;-1:-1:-1;3741:102:141;;-1:-1:-1;3741:102:141;3950:1043;4002:20;4025:66;4080:7;4089:1;4025:27;:25;:27::i;:66::-;4002:89;-1:-1:-1;1456:3:141;4101:22;4160:306;4184:14;4180:1;:18;4160:306;;;4233:7;;;4219:22;;-1:-1:-1;;;4219:22:141;;-1:-1:-1;;;;;4233:7:141;;;4219:22;;;20702:51:145;-1:-1:-1;;;;;;;;;;;4219:13:141;;;20675:18:145;4219:22:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4263:12;;;;;;;;;-1:-1:-1;;;;;4263:12:141;-1:-1:-1;;;;;4263:18:141;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4301:12;;4255:63;;-1:-1:-1;;;4255:63:141;;-1:-1:-1;;;;;4301:12:141;;;4255:63;;;57269:51:145;57336:18;;;57329:34;;;4255:37:141;;;;;57242:18:145;;4255:63:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;309:37:84;;-1:-1:-1;;;;;4332:12:141;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4391:7:141;;4400:5;;4360:95;;-1:-1:-1;4374:1:141;;-1:-1:-1;409:1:137;;329;;-1:-1:-1;;;;;4391:7:141;;;;4400:5;4407:7;4374:1;4416:18;:14;409:1:137;4416:18:141;:::i;:::-;:22;;;;:::i;:::-;4440:1;4443:4;4449:5;4360:13;:95::i;:::-;4200:3;;4160:306;;;-1:-1:-1;4492:14:141;4475:512;4512:18;:14;4529:1;4512:18;:::i;:::-;4508:1;:22;4475:512;;;4565:7;;;4551:22;;-1:-1:-1;;;4551:22:141;;-1:-1:-1;;;;;4565:7:141;;;4551:22;;;20702:51:145;-1:-1:-1;;;;;;;;;;;4551:13:141;;;20675:18:145;4551:22:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4595:12;;;;;;;;;-1:-1:-1;;;;;4595:12:141;-1:-1:-1;;;;;4595:18:141;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4633:12;;4587:63;;-1:-1:-1;;;4587:63:141;;-1:-1:-1;;;;;4633:12:141;;;4587:63;;;57269:51:145;57336:18;;;57329:34;;;4587:37:141;;;;;57242:18:145;;4587:63:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;309:37:84;;-1:-1:-1;;;;;4664:12:141;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4788:7:141;;4813:3;;4692:284;;-1:-1:-1;4723:1:141;;-1:-1:-1;409:1:137;;369;;-1:-1:-1;;;;;4788:7:141;;;;4813:3;4834:7;4723:1;4859:18;:14;409:1:137;4859:18:141;:::i;:::-;:22;;;;:::i;:::-;4899:18;4903:14;4899:1;:18;:::i;:::-;4935:4;4957:5;4692:13;:284::i;:::-;4532:3;;4475:512;;2138:578:70;2348:10;;:27;;-1:-1:-1;;;2348:27:70;;2273:10;;2285:19;;2273:10;;-1:-1:-1;;;;;2348:10:70;;:17;;:27;;2366:8;;2348:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2348:27:70;;;;;;;;;;;;:::i;:::-;2316:59;;;2386:14;2410:300;2426:12;:19;2417:6;:28;2410:300;;;2519:45;;-1:-1:-1;;;2519:45:70;;2462:16;;;;;;2519:4;;:23;;:45;;2543:12;;2557:6;;2519:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2519:45:70;;;;;;;;;;;;:::i;:::-;2461:103;;;;;;2596:19;2582:33;;:10;:33;;;2578:89;;-1:-1:-1;2643:4:70;;-1:-1:-1;2649:2:70;-1:-1:-1;2635:17:70;;-1:-1:-1;;;2635:17:70;2578:89;2689:10;-1:-1:-1;2410:300:70;;-1:-1:-1;;2410:300:70;;2306:410;;2138:578;;;;;:::o;7126:137:141:-;7212:44;7235:5;7242:4;7248:7;7212:22;:44::i;229:215:61:-;306:6;371:1;362:10;;407:18;362:10;:6;407;;:18;:::i;:::-;400:26;;;:::i;:::-;393:34;;;229:215;-1:-1:-1;;;;;229:215:61:o;892:220::-;970:7;1036:2;1027:11;;1075:18;1027:11;:6;1075;;:18;:::i;:::-;1067:27;;;:::i;:::-;1059:36;;;892:220;-1:-1:-1;;;;;892:220:61:o;12935:305:134:-;13013:6;13056:10;:6;13065:1;13056:10;:::i;:::-;13039:6;:13;:27;;13031:60;;;;-1:-1:-1;;;13031:60:134;;88190:2:145;13031:60:134;;;88172:21:145;88229:2;88209:18;;;88202:30;-1:-1:-1;;;88248:18:145;;;88241:50;88308:18;;13031:60:134;87988:344:145;13031:60:134;-1:-1:-1;13168:29:134;13184:3;13168:29;13162:36;;12935:305::o;2968:191:67:-;3052:12;-1:-1:-1;;;;;3083:11:67;;;:69;;3122:30;;;-1:-1:-1;;;;;;88572:3:145;88568:16;;;88564:25;;3122:30:67;;;88552:38:145;88624:16;;;88620:25;88606:12;;;88599:47;88662:12;3122:30:67;;;;;;;;;;;;3083:69;;;3097:22;;-1:-1:-1;;;;;;88834:3:145;88830:16;;;88826:62;3097:22:67;;;88814:75:145;88905:12;;3097:22:67;;;;;;;;;;;;;3076:76;;2968:191;;;;:::o;5725:435:42:-;5889:12;5870:8;817:1;1068:20;5870:8;1086:1;1068:17;:20::i;:::-;:30;;;1064:82;;1125:20;:8;1143:1;1125:17;:20::i;1064:82::-;5966:8:::1;238:1:67;6035:25:42;:7;:14;:23;:25::i;:::-;:29;::::0;6063:1:::1;6035:29;:::i;:::-;6103:11;6132:7;5932:221;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5913:240;;5725:435:::0;;;;;;:::o;19479:291:83:-;19554:14;19563:1;19566;19554:8;:14::i;:::-;19549:215;;-1:-1:-1;;;;;;;;;;;19589:42:83;;;;90098:2:145;90080:21;;;90137:2;90117:18;;;90110:30;90176:34;90171:2;90156:18;;90149:62;-1:-1:-1;;;90242:2:145;90227:18;;90220:33;90285:3;90270:19;;89896:399;19589:42:83;;;;;;;;19650:32;19680:1;19650:32;;;;;;:::i;:::-;;;;;;;;19701;19731:1;19701:32;;;;;;:::i;95:128:61:-;171:5;201:6;;208;201:14;;;;;;;:::i;:::-;;;;;;;;;95:128;-1:-1:-1;;;;;95:128:61:o;1570:210::-;1647:7;1713:2;1704:11;;1744:18;1704:11;:6;1744;;:18;:::i;:::-;1736:27;;;:::i;:::-;1729:34;1570:210;-1:-1:-1;;;;;1570:210:61:o;5535:1273:141:-;5846:26;5875:73;;;;;;;;5885:7;5875:73;;;;;;5894:21;5911:3;-1:-1:-1;;;;;21935:23:71;;21837:129;5894:21:141;5875:73;;;;5917:12;5875:73;;;;5931:8;5875:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5846:102;;5958:23;5993:5;6009:1;5999:7;:11;;;;:::i;:::-;5993:18;;;;;;;;;;:::i;:::-;;;;;;;;;;5984:56;;-1:-1:-1;;;5984:56:141;;-1:-1:-1;;;;;5993:18:141;;;;5984:38;;:56;;6023:9;;5984:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6051:15;;-1:-1:-1;;;6051:15:141;;-1:-1:-1;;;;;20720:32:145;;6051:15:141;;;20702:51:145;5958:82:141;;-1:-1:-1;;;;;;;;;;;;6051:8:141;;;20675:18:145;;6051:15:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6085:5;6101:1;6091:7;:11;;;;:::i;:::-;6085:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;6118:13;;6076:97;;-1:-1:-1;;;6076:97:141;;-1:-1:-1;;;;;6085:18:141;;;;6076:33;;6118:13;6076:97;;6134:9;;6118:3;;6166:4;;6076:97;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6183:69:141;6197:7;6206:45;6231:5;6237:11;6247:1;6197:7;6237:11;:::i;:::-;6231:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;6231:18:141;;21837:129:71;6183:69:141;6263:165;6294:13;6293:14;:80;;6346:5;6352:11;6362:1;6352:7;:11;:::i;:::-;6346:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;6331:42;;;-1:-1:-1;;;6331:42:141;;;;-1:-1:-1;;;;;6346:18:141;;;;6331:40;;:42;;;;;;;;;;6346:18;6331:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6293:80;;;6310:5;6316:11;6326:1;6316:7;:11;:::i;:::-;6310:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;6310:18:141;6293:80;6285:106;;-1:-1:-1;;;6285:106:141;;-1:-1:-1;;;;;20720:32:145;;;6285:106:141;;;20702:51:145;6285:99:141;;;;;;;20675:18:145;;6285:106:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6405:13;6417:1;6405:9;:13;:::i;6263:165::-;6438:163;6469:13;6468:14;:80;;6521:5;6527:11;6537:1;6527:7;:11;:::i;:::-;6521:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;6506:42;;;-1:-1:-1;;;6506:42:141;;;;-1:-1:-1;;;;;6521:18:141;;;;6506:40;;:42;;;;;;;;;;6521:18;6506:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6468:80;;;6485:5;6491:11;6501:1;6491:7;:11;:::i;:::-;6485:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;6485:18:141;6468:80;6460:104;;-1:-1:-1;;;6460:104:141;;-1:-1:-1;;;;;20720:32:145;;;6460:104:141;;;20702:51:145;6460:99:141;;;;;;;20675:18:145;;6460:104:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6578:13;:9;6590:1;6578:13;:::i;6438:163::-;6611:190;6642:13;6641:14;:80;;6694:5;6700:11;6710:1;6700:7;:11;:::i;:::-;6694:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;6679:42;;;-1:-1:-1;;;6679:42:141;;;;-1:-1:-1;;;;;6694:18:141;;;;6679:40;;:42;;;;;;;;;;6694:18;6679:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6641:80;;;6658:5;6664:11;6674:1;6664:7;:11;:::i;:::-;6658:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;6658:18:141;6641:80;-1:-1:-1;;;;;6633:97:141;;6748:12;6633:141;;;;;;;;;;;;;21186:25:145;;21174:2;21159:18;;21040:177;6633:141:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6788:3;6611:8;:190::i;3165:165:67:-;3287:36;;-1:-1:-1;;;;;;91543:3:145;91539:16;;;91535:62;3287:36:67;;;91523:75:145;91614:12;;;91607:28;;;3256:12:67;;91651::145;;3287:36:67;91366:303:145;3336:222:67;3435:12;-1:-1:-1;;;;;3466:11:67;;;:85;;3513:38;;-1:-1:-1;;;;;;91895:3:145;91873:16;;;91869:38;3513::67;;;91857:51:145;-1:-1:-1;;;;;;92003:3:145;91999:16;;;91995:25;;91982:11;;;91975:46;92055:16;;;92051:25;92037:12;;;92030:47;92093:12;;3513:38:67;;;;;;;;;;;;3466:85;;;3480:30;;-1:-1:-1;;;;;;92309:3:145;92287:16;;;92283:38;3480:30:67;;;92271:51:145;-1:-1:-1;;;;;;92359:3:145;92355:16;;;92351:62;92338:11;;;92331:83;92430:12;;3480:30:67;92116:332:145;3466:85:67;3459:92;3336:222;-1:-1:-1;;;;3336:222:67:o;7269:199:141:-;7362:99;7381:5;7388:4;7394:1;7397:63;7452:4;7458:1;7397:27;:25;:27::i;:63::-;7362:18;:99::i;16291:213:129:-;16347:6;16377:16;16369:24;;16365:103;;;16416:41;;-1:-1:-1;;;16416:41:129;;16447:2;16416:41;;;92634:36:145;92686:18;;;92679:34;;;92607:18;;16416:41:129;92453:266:145;16365:103:129;-1:-1:-1;16491:5:129;16291:213::o;19129:345:83:-;19256:8;;19244;;19226:4;;19244:20;;19240:228;;19285:6;19280:137;19301:1;:8;19297:1;:12;19280:137;;;19346:1;19348;19346:4;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;19338:12:83;;:1;19340;19338:4;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;19338:4:83;:12;19334:69;;19379:5;19374:10;;19334:69;19311:3;;19280:137;;;;19240:228;;;-1:-1:-1;19452:5:83;19129:345;;;;:::o;7474:344:141:-;7637:28;;;7663:1;7637:28;;;;;;;;;7590:44;;7637:28;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;7637:28:141;;;;;;;;;;;;;;;7590:75;;7696:46;;;;;;;;7716:4;7696:46;;;;;;7722:9;7696:46;;;;;;7733:8;7696:46;;;7675:15;7691:1;7675:18;;;;;;;;:::i;:::-;;;;;;;;;;:67;7752:59;;-1:-1:-1;;;7752:59:141;;-1:-1:-1;;;;;7752:42:141;;;;;:59;;7795:15;;7752:59;;;:::i;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:121:145;99:10;92:5;88:22;81:5;78:33;68:61;;125:1;122;115:12;140:131;-1:-1:-1;;;;;215:31:145;;205:42;;195:70;;261:1;258;251:12;276:386;343:6;351;404:2;392:9;383:7;379:23;375:32;372:52;;;420:1;417;410:12;372:52;459:9;446:23;478:30;502:5;478:30;:::i;:::-;527:5;-1:-1:-1;584:2:145;569:18;;556:32;597:33;556:32;597:33;:::i;:::-;649:7;639:17;;;276:386;;;;;:::o;667:347::-;718:8;728:6;782:3;775:4;767:6;763:17;759:27;749:55;;800:1;797;790:12;749:55;-1:-1:-1;823:20:145;;-1:-1:-1;;;;;855:30:145;;852:50;;;898:1;895;888:12;852:50;935:4;927:6;923:17;911:29;;987:3;980:4;971:6;963;959:19;955:30;952:39;949:59;;;1004:1;1001;994:12;1019:409;1089:6;1097;1150:2;1138:9;1129:7;1125:23;1121:32;1118:52;;;1166:1;1163;1156:12;1118:52;1206:9;1193:23;-1:-1:-1;;;;;1231:6:145;1228:30;1225:50;;;1271:1;1268;1261:12;1225:50;1310:58;1360:7;1351:6;1340:9;1336:22;1310:58;:::i;:::-;1387:8;;1284:84;;-1:-1:-1;1019:409:145;-1:-1:-1;;;;1019:409:145:o;1433:114::-;1517:4;1510:5;1506:16;1499:5;1496:27;1486:55;;1537:1;1534;1527:12;1552:410;1635:6;1643;1696:2;1684:9;1675:7;1671:23;1667:32;1664:52;;;1712:1;1709;1702:12;1664:52;1751:9;1738:23;1770:29;1793:5;1770:29;:::i;:::-;1818:5;-1:-1:-1;1875:2:145;1860:18;;1847:32;1910:1;1898:14;;1888:42;;1926:1;1923;1916:12;1967:465;2020:3;2058:5;2052:12;2085:6;2080:3;2073:19;2111:4;2140;2135:3;2131:14;2124:21;;2179:4;2172:5;2168:16;2202:1;2212:195;2226:6;2223:1;2220:13;2212:195;;;2291:13;;-1:-1:-1;;;;;2287:39:145;2275:52;;2347:12;;;;2382:15;;;;2323:1;2241:9;2212:195;;;-1:-1:-1;2423:3:145;;1967:465;-1:-1:-1;;;;;1967:465:145:o;2437:261::-;2616:2;2605:9;2598:21;2579:4;2636:56;2688:2;2677:9;2673:18;2665:6;2636:56;:::i;2926:127::-;2987:10;2982:3;2978:20;2975:1;2968:31;3018:4;3015:1;3008:15;3042:4;3039:1;3032:15;3058:254;3131:2;3125:9;3173:4;3161:17;;-1:-1:-1;;;;;3193:34:145;;3229:22;;;3190:62;3187:88;;;3255:18;;:::i;:::-;3291:2;3284:22;3058:254;:::o;3317:275::-;3388:2;3382:9;3453:2;3434:13;;-1:-1:-1;;3430:27:145;3418:40;;-1:-1:-1;;;;;3473:34:145;;3509:22;;;3470:62;3467:88;;;3535:18;;:::i;:::-;3571:2;3564:22;3317:275;;-1:-1:-1;3317:275:145:o;3597:186::-;3645:4;-1:-1:-1;;;;;3670:6:145;3667:30;3664:56;;;3700:18;;:::i;:::-;-1:-1:-1;3766:2:145;3745:15;-1:-1:-1;;3741:29:145;3772:4;3737:40;;3597:186::o;3788:462::-;3830:5;3883:3;3876:4;3868:6;3864:17;3860:27;3850:55;;3901:1;3898;3891:12;3850:55;3937:6;3924:20;3968:48;3984:31;4012:2;3984:31;:::i;:::-;3968:48;:::i;:::-;4041:2;4032:7;4025:19;4087:3;4080:4;4075:2;4067:6;4063:15;4059:26;4056:35;4053:55;;;4104:1;4101;4094:12;4053:55;4169:2;4162:4;4154:6;4150:17;4143:4;4134:7;4130:18;4117:55;4217:1;4192:16;;;4210:4;4188:27;4181:38;;;;4196:7;3788:462;-1:-1:-1;;;3788:462:145:o;4255:588::-;4337:6;4345;4353;4406:2;4394:9;4385:7;4381:23;4377:32;4374:52;;;4422:1;4419;4412:12;4374:52;4462:9;4449:23;-1:-1:-1;;;;;4487:6:145;4484:30;4481:50;;;4527:1;4524;4517:12;4481:50;4550:49;4591:7;4582:6;4571:9;4567:22;4550:49;:::i;:::-;4540:59;;;4649:2;4638:9;4634:18;4621:32;4662:29;4685:5;4662:29;:::i;:::-;4710:5;-1:-1:-1;4767:2:145;4752:18;;4739:32;4780:31;4739:32;4780:31;:::i;:::-;4830:7;4820:17;;;4255:588;;;;;:::o;4848:250::-;4933:1;4943:113;4957:6;4954:1;4951:13;4943:113;;;5033:11;;;5027:18;5014:11;;;5007:39;4979:2;4972:10;4943:113;;;-1:-1:-1;;5090:1:145;5072:16;;5065:27;4848:250::o;5103:271::-;5145:3;5183:5;5177:12;5210:6;5205:3;5198:19;5226:76;5295:6;5288:4;5283:3;5279:14;5272:4;5265:5;5261:16;5226:76;:::i;:::-;5356:2;5335:15;-1:-1:-1;;5331:29:145;5322:39;;;;5363:4;5318:50;;5103:271;-1:-1:-1;;5103:271:145:o;5379:598::-;5431:3;5462;5494:5;5488:12;5521:6;5516:3;5509:19;5547:4;5576;5571:3;5567:14;5560:21;;5634:4;5624:6;5621:1;5617:14;5610:5;5606:26;5602:37;5673:4;5666:5;5662:16;5696:1;5706:245;5720:6;5717:1;5714:13;5706:245;;;5807:2;5803:7;5795:5;5789:4;5785:16;5781:30;5776:3;5769:43;5833:38;5866:4;5857:6;5851:13;5833:38;:::i;:::-;5929:12;;;;5825:46;-1:-1:-1;5894:15:145;;;;5742:1;5735:9;5706:245;;;-1:-1:-1;5967:4:145;;5379:598;-1:-1:-1;;;;;;;5379:598:145:o;5982:1077::-;6188:4;6217:2;6257;6246:9;6242:18;6287:2;6276:9;6269:21;6310:6;6345;6339:13;6376:6;6368;6361:22;6402:2;6392:12;;6435:2;6424:9;6420:18;6413:25;;6497:2;6487:6;6484:1;6480:14;6469:9;6465:30;6461:39;6535:2;6527:6;6523:15;6556:1;6566:464;6580:6;6577:1;6574:13;6566:464;;;6645:22;;;-1:-1:-1;;6641:36:145;6629:49;;6701:13;;6746:9;;-1:-1:-1;;;;;6742:35:145;6727:51;;6817:11;;6811:18;6849:15;;;6842:27;;;6892:58;6934:15;;;6811:18;6892:58;:::i;:::-;7008:12;;;;6882:68;-1:-1:-1;;6973:15:145;;;;6602:1;6595:9;6566:464;;;-1:-1:-1;7047:6:145;;5982:1077;-1:-1:-1;;;;;;;;5982:1077:145:o;7064:471::-;-1:-1:-1;;;;;7295:6:145;7291:31;7280:9;7273:50;7371:10;7363:6;7359:23;7354:2;7343:9;7339:18;7332:51;7419:6;7414:2;7403:9;7399:18;7392:34;7462:3;7457:2;7446:9;7442:18;7435:31;7254:4;7483:46;7524:3;7513:9;7509:19;7501:6;7483:46;:::i;7540:422::-;7606:6;7614;7667:2;7655:9;7646:7;7642:23;7638:32;7635:52;;;7683:1;7680;7673:12;7635:52;7722:9;7709:23;7741:30;7765:5;7741:30;:::i;:::-;7790:5;-1:-1:-1;7847:2:145;7832:18;;7819:32;-1:-1:-1;;;;;;7882:29:145;;7870:42;;7860:70;;7926:1;7923;7916:12;7967:1114;8090:6;8098;8106;8114;8122;8130;8138;8191:3;8179:9;8170:7;8166:23;8162:33;8159:53;;;8208:1;8205;8198:12;8159:53;8247:9;8234:23;8266:30;8290:5;8266:30;:::i;:::-;8315:5;-1:-1:-1;8372:2:145;8357:18;;8344:32;8385:33;8344:32;8385:33;:::i;:::-;8437:7;-1:-1:-1;8495:2:145;8480:18;;8467:32;-1:-1:-1;;;;;8548:14:145;;;8545:34;;;8575:1;8572;8565:12;8545:34;8598:49;8639:7;8630:6;8619:9;8615:22;8598:49;:::i;:::-;8588:59;;8694:2;8683:9;8679:18;8666:32;8656:42;;8750:3;8739:9;8735:19;8722:33;8707:48;;8764:33;8789:7;8764:33;:::i;:::-;8816:7;;-1:-1:-1;8876:3:145;8861:19;;8848:33;;8893:16;;;8890:36;;;8922:1;8919;8912:12;8890:36;;8961:60;9013:7;9002:8;8991:9;8987:24;8961:60;:::i;:::-;7967:1114;;;;-1:-1:-1;7967:1114:145;;-1:-1:-1;7967:1114:145;;;;8935:86;;-1:-1:-1;;;7967:1114:145:o;9086:117::-;9171:6;9164:5;9160:18;9153:5;9150:29;9140:57;;9193:1;9190;9183:12;9208:245;9266:6;9319:2;9307:9;9298:7;9294:23;9290:32;9287:52;;;9335:1;9332;9325:12;9287:52;9374:9;9361:23;9393:30;9417:5;9393:30;:::i;9864:180::-;9923:6;9976:2;9964:9;9955:7;9951:23;9947:32;9944:52;;;9992:1;9989;9982:12;9944:52;-1:-1:-1;10015:23:145;;9864:180;-1:-1:-1;9864:180:145:o;10049:523::-;10134:6;10142;10150;10158;10211:3;10199:9;10190:7;10186:23;10182:33;10179:53;;;10228:1;10225;10218:12;10179:53;10267:9;10254:23;10286:30;10310:5;10286:30;:::i;:::-;10335:5;-1:-1:-1;10387:2:145;10372:18;;10359:32;;-1:-1:-1;10438:2:145;10423:18;;10410:32;;-1:-1:-1;10494:2:145;10479:18;;10466:32;10507:33;10466:32;10507:33;:::i;:::-;10049:523;;;;-1:-1:-1;10049:523:145;;-1:-1:-1;;10049:523:145:o;10577:313::-;10644:6;10652;10705:2;10693:9;10684:7;10680:23;10676:32;10673:52;;;10721:1;10718;10711:12;10673:52;10760:9;10747:23;10779:30;10803:5;10779:30;:::i;:::-;10828:5;10880:2;10865:18;;;;10852:32;;-1:-1:-1;;;10577:313:145:o;11087:443::-;11326:6;11319:14;11312:22;11301:9;11294:41;11371:6;11366:2;11355:9;11351:18;11344:34;11414:6;11409:2;11398:9;11394:18;11387:34;11457:3;11452:2;11441:9;11437:18;11430:31;11275:4;11478:46;11519:3;11508:9;11504:19;11496:6;11478:46;:::i;11535:1569::-;11739:4;11768:2;11808;11797:9;11793:18;11838:2;11827:9;11820:21;11861:6;11896;11890:13;11927:6;11919;11912:22;11953:2;11943:12;;11986:2;11975:9;11971:18;11964:25;;12048:2;12038:6;12035:1;12031:14;12020:9;12016:30;12012:39;12086:2;12078:6;12074:15;12107:1;12128;12138:937;12154:6;12149:3;12146:15;12138:937;;;12223:22;;;-1:-1:-1;;12219:36:145;12207:49;;12279:13;;12366:9;;-1:-1:-1;;;;;12362:35:145;12347:51;;12437:11;;12431:18;12469:15;;;12462:27;;;12550:19;;12319:15;;;12582:24;;;12672:21;;;;12717:1;;12640:2;12628:15;;;12731:236;12747:8;12742:3;12739:17;12731:236;;;12828:15;;-1:-1:-1;;;;;;12824:42:145;12810:57;;12936:17;;;;12775:1;12766:11;;;;;12893:14;;;;12731:236;;;-1:-1:-1;13053:12:145;;;;12990:5;-1:-1:-1;;;13018:15:145;;;;12180:1;12171:11;12138:937;;;-1:-1:-1;13092:6:145;;11535:1569;-1:-1:-1;;;;;;;;;11535:1569:145:o;13109:146::-;-1:-1:-1;;;;;13188:5:145;13184:46;13177:5;13174:57;13164:85;;13245:1;13242;13235:12;13260:667;13344:6;13352;13360;13368;13421:3;13409:9;13400:7;13396:23;13392:33;13389:53;;;13438:1;13435;13428:12;13389:53;13477:9;13464:23;13496:30;13520:5;13496:30;:::i;:::-;13545:5;-1:-1:-1;13602:2:145;13587:18;;13574:32;13615;13574;13615;:::i;:::-;13666:7;-1:-1:-1;13725:2:145;13710:18;;13697:32;13738:33;13697:32;13738:33;:::i;:::-;13790:7;-1:-1:-1;13849:2:145;13834:18;;13821:32;13862:33;13821:32;13862:33;:::i;13932:477::-;14011:6;14019;14027;14080:2;14068:9;14059:7;14055:23;14051:32;14048:52;;;14096:1;14093;14086:12;14048:52;14136:9;14123:23;-1:-1:-1;;;;;14161:6:145;14158:30;14155:50;;;14201:1;14198;14191:12;14155:50;14240:58;14290:7;14281:6;14270:9;14266:22;14240:58;:::i;:::-;14317:8;;14214:84;;-1:-1:-1;14399:2:145;14384:18;;;;14371:32;;13932:477;-1:-1:-1;;;;13932:477:145:o;14414:266::-;14502:6;14497:3;14490:19;14554:6;14547:5;14540:4;14535:3;14531:14;14518:43;-1:-1:-1;14606:1:145;14581:16;;;14599:4;14577:27;;;14570:38;;;;14662:2;14641:15;;;-1:-1:-1;;14637:29:145;14628:39;;;14624:50;;14414:266::o;14685:393::-;14906:4;14898:6;14894:17;14883:9;14876:36;14948:2;14943;14932:9;14928:18;14921:30;14857:4;14968:61;15025:2;15014:9;15010:18;15002:6;14994;14968:61;:::i;:::-;14960:69;;15065:6;15060:2;15049:9;15045:18;15038:34;14685:393;;;;;;;:::o;15083:183::-;15143:4;-1:-1:-1;;;;;15168:6:145;15165:30;15162:56;;;15198:18;;:::i;:::-;-1:-1:-1;15243:1:145;15239:14;15255:4;15235:25;;15083:183::o;15271:966::-;15355:6;15386:2;15429;15417:9;15408:7;15404:23;15400:32;15397:52;;;15445:1;15442;15435:12;15397:52;15485:9;15472:23;-1:-1:-1;;;;;15510:6:145;15507:30;15504:50;;;15550:1;15547;15540:12;15504:50;15573:22;;15626:4;15618:13;;15614:27;-1:-1:-1;15604:55:145;;15655:1;15652;15645:12;15604:55;15691:2;15678:16;15714:60;15730:43;15770:2;15730:43;:::i;15714:60::-;15808:15;;;15890:1;15886:10;;;;15878:19;;15874:28;;;15839:12;;;;15914:19;;;15911:39;;;15946:1;15943;15936:12;15911:39;15970:11;;;;15990:217;16006:6;16001:3;15998:15;15990:217;;;16086:3;16073:17;16103:31;16128:5;16103:31;:::i;:::-;16147:18;;16023:12;;;;16185;;;;15990:217;;16242:218;16389:2;16378:9;16371:21;16352:4;16409:45;16450:2;16439:9;16435:18;16427:6;16409:45;:::i;16465:1029::-;16567:6;16575;16583;16636:2;16624:9;16615:7;16611:23;16607:32;16604:52;;;16652:1;16649;16642:12;16604:52;16692:9;16679:23;-1:-1:-1;;;;;16717:6:145;16714:30;16711:50;;;16757:1;16754;16747:12;16711:50;16780:22;;16833:4;16825:13;;16821:27;-1:-1:-1;16811:55:145;;16862:1;16859;16852:12;16811:55;16898:2;16885:16;16920:4;16944:60;16960:43;17000:2;16960:43;:::i;16944:60::-;17038:15;;;17120:1;17116:10;;;;17108:19;;17104:28;;;17069:12;;;;17144:19;;;17141:39;;;17176:1;17173;17166:12;17141:39;17200:11;;;;17220:142;17236:6;17231:3;17228:15;17220:142;;;17302:17;;17290:30;;17253:12;;;;17340;;;;17220:142;;;17381:5;17418:18;;;17405:32;;-1:-1:-1;;17484:2:145;17469:18;;;17456:32;;16465:1029;-1:-1:-1;;;;;16465:1029:145:o;17499:632::-;17670:2;17722:21;;;17792:13;;17695:18;;;17814:22;;;17641:4;;17670:2;17893:15;;;;17867:2;17852:18;;;17641:4;17936:169;17950:6;17947:1;17944:13;17936:169;;;18011:13;;17999:26;;18080:15;;;;18045:12;;;;17972:1;17965:9;17936:169;;;-1:-1:-1;18122:3:145;;17499:632;-1:-1:-1;;;;;;17499:632:145:o;18136:280::-;18335:2;18324:9;18317:21;18298:4;18355:55;18406:2;18395:9;18391:18;18383:6;18355:55;:::i;18903:811::-;18997:6;19005;19013;19021;19029;19082:3;19070:9;19061:7;19057:23;19053:33;19050:53;;;19099:1;19096;19089:12;19050:53;19138:9;19125:23;19157:30;19181:5;19157:30;:::i;:::-;19206:5;-1:-1:-1;19263:2:145;19248:18;;19235:32;19276:33;19235:32;19276:33;:::i;:::-;19328:7;-1:-1:-1;19387:2:145;19372:18;;19359:32;19400:33;19359:32;19400:33;:::i;:::-;19452:7;-1:-1:-1;19511:2:145;19496:18;;19483:32;19524:33;19483:32;19524:33;:::i;:::-;19576:7;-1:-1:-1;19635:3:145;19620:19;;19607:33;19649;19607;19649;:::i;:::-;19701:7;19691:17;;;18903:811;;;;;;;;:::o;19719:832::-;19825:6;19833;19841;19849;19857;19910:3;19898:9;19889:7;19885:23;19881:33;19878:53;;;19927:1;19924;19917:12;19878:53;19967:9;19954:23;-1:-1:-1;;;;;20037:2:145;20029:6;20026:14;20023:34;;;20053:1;20050;20043:12;20023:34;20092:58;20142:7;20133:6;20122:9;20118:22;20092:58;:::i;:::-;20169:8;;-1:-1:-1;20066:84:145;-1:-1:-1;20257:2:145;20242:18;;20229:32;;-1:-1:-1;20273:16:145;;;20270:36;;;20302:1;20299;20292:12;20270:36;;20325:51;20368:7;20357:8;20346:9;20342:24;20325:51;:::i;:::-;20315:61;;;20423:2;20412:9;20408:18;20395:32;20385:42;;20477:2;20466:9;20462:18;20449:32;20490:31;20515:5;20490:31;:::i;20764:271::-;20847:6;20900:2;20888:9;20879:7;20875:23;20871:32;20868:52;;;20916:1;20913;20906:12;20868:52;20955:9;20942:23;20974:31;20999:5;20974:31;:::i;21222:313::-;21289:6;21297;21350:2;21338:9;21329:7;21325:23;21321:32;21318:52;;;21366:1;21363;21356:12;21318:52;21405:9;21392:23;21424:30;21448:5;21424:30;:::i;21834:118::-;21920:5;21913:13;21906:21;21899:5;21896:32;21886:60;;21942:1;21939;21932:12;21957:728;22046:6;22054;22062;22070;22078;22131:3;22119:9;22110:7;22106:23;22102:33;22099:53;;;22148:1;22145;22138:12;22099:53;22184:9;22171:23;22161:33;;22244:2;22233:9;22229:18;22216:32;22257:28;22279:5;22257:28;:::i;:::-;22304:5;-1:-1:-1;22361:2:145;22346:18;;22333:32;22374:30;22333:32;22374:30;:::i;22690:809::-;22783:6;22791;22799;22807;22815;22868:3;22856:9;22847:7;22843:23;22839:33;22836:53;;;22885:1;22882;22875:12;22836:53;22924:9;22911:23;22943:30;22967:5;22943:30;:::i;:::-;22992:5;-1:-1:-1;23049:2:145;23034:18;;23021:32;23062;23021;23062;:::i;23504:129::-;-1:-1:-1;;;;;23582:5:145;23578:30;23571:5;23568:41;23558:69;;23623:1;23620;23613:12;23638:592;23722:6;23730;23738;23791:2;23779:9;23770:7;23766:23;23762:32;23759:52;;;23807:1;23804;23797:12;23759:52;23846:9;23833:23;23865:30;23889:5;23865:30;:::i;:::-;23914:5;-1:-1:-1;23971:2:145;23956:18;;23943:32;23984;23943;23984;:::i;:::-;24035:7;-1:-1:-1;24093:2:145;24078:18;;24065:32;-1:-1:-1;;;;;24109:30:145;;24106:50;;;24152:1;24149;24142:12;24106:50;24175:49;24216:7;24207:6;24196:9;24192:22;24175:49;:::i;:::-;24165:59;;;23638:592;;;;;:::o;24235:451::-;24310:6;24318;24371:2;24359:9;24350:7;24346:23;24342:32;24339:52;;;24387:1;24384;24377:12;24339:52;24426:9;24413:23;24445:29;24468:5;24445:29;:::i;:::-;24493:5;-1:-1:-1;24549:2:145;24534:18;;24521:32;-1:-1:-1;;;;;24565:30:145;;24562:50;;;24608:1;24605;24598:12;24562:50;24631:49;24672:7;24663:6;24652:9;24648:22;24631:49;:::i;:::-;24621:59;;;24235:451;;;;;:::o;24691:247::-;24750:6;24803:2;24791:9;24782:7;24778:23;24774:32;24771:52;;;24819:1;24816;24809:12;24771:52;24858:9;24845:23;24877:31;24902:5;24877:31;:::i;24943:248::-;25011:6;25019;25072:2;25060:9;25051:7;25047:23;25043:32;25040:52;;;25088:1;25085;25078:12;25040:52;-1:-1:-1;;25111:23:145;;;25181:2;25166:18;;;25153:32;;-1:-1:-1;24943:248:145:o;25196:525::-;25271:6;25279;25287;25340:2;25328:9;25319:7;25315:23;25311:32;25308:52;;;25356:1;25353;25346:12;25308:52;25395:9;25382:23;25414:30;25438:5;25414:30;:::i;:::-;25463:5;-1:-1:-1;25520:2:145;25505:18;;25492:32;25533;25492;25533;:::i;:::-;25584:7;-1:-1:-1;25643:2:145;25628:18;;25615:32;25656:33;25615:32;25656:33;:::i;25726:628::-;25814:6;25822;25830;25883:2;25871:9;25862:7;25858:23;25854:32;25851:52;;;25899:1;25896;25889:12;25851:52;25939:9;25926:23;-1:-1:-1;;;;;26009:2:145;26001:6;25998:14;25995:34;;;26025:1;26022;26015:12;25995:34;26064:58;26114:7;26105:6;26094:9;26090:22;26064:58;:::i;:::-;26141:8;;-1:-1:-1;26038:84:145;-1:-1:-1;26229:2:145;26214:18;;26201:32;;-1:-1:-1;26245:16:145;;;26242:36;;;26274:1;26271;26264:12;26242:36;;26297:51;26340:7;26329:8;26318:9;26314:24;26297:51;:::i;26359:665::-;26454:6;26462;26470;26478;26531:3;26519:9;26510:7;26506:23;26502:33;26499:53;;;26548:1;26545;26538:12;26499:53;26587:9;26574:23;26606:31;26631:5;26606:31;:::i;:::-;26656:5;-1:-1:-1;26713:2:145;26698:18;;26685:32;26726:33;26685:32;26726:33;:::i;:::-;26778:7;-1:-1:-1;26832:2:145;26817:18;;26804:32;;-1:-1:-1;26887:2:145;26872:18;;26859:32;-1:-1:-1;;;;;26903:30:145;;26900:50;;;26946:1;26943;26936:12;26900:50;26969:49;27010:7;27001:6;26990:9;26986:22;26969:49;:::i;:::-;26959:59;;;26359:665;;;;;;;:::o;27029:807::-;27133:6;27141;27149;27157;27165;27218:3;27206:9;27197:7;27193:23;27189:33;27186:53;;;27235:1;27232;27225:12;27186:53;27271:9;27258:23;27248:33;;27332:2;27321:9;27317:18;27304:32;-1:-1:-1;;;;;27351:6:145;27348:30;27345:50;;;27391:1;27388;27381:12;27345:50;27414:49;27455:7;27446:6;27435:9;27431:22;27414:49;:::i;:::-;27404:59;;;27513:2;27502:9;27498:18;27485:32;27526:31;27551:5;27526:31;:::i;28165:717::-;28255:6;28263;28271;28279;28332:2;28320:9;28311:7;28307:23;28303:32;28300:52;;;28348:1;28345;28338:12;28300:52;28388:9;28375:23;-1:-1:-1;;;;;28458:2:145;28450:6;28447:14;28444:34;;;28474:1;28471;28464:12;28444:34;28513:58;28563:7;28554:6;28543:9;28539:22;28513:58;:::i;:::-;28590:8;;-1:-1:-1;28487:84:145;-1:-1:-1;28678:2:145;28663:18;;28650:32;;-1:-1:-1;28694:16:145;;;28691:36;;;28723:1;28720;28713:12;28691:36;;28762:60;28814:7;28803:8;28792:9;28788:24;28762:60;:::i;:::-;28165:717;;;;-1:-1:-1;28841:8:145;-1:-1:-1;;;;28165:717:145:o;28887:245::-;28954:6;29007:2;28995:9;28986:7;28982:23;28978:32;28975:52;;;29023:1;29020;29013:12;28975:52;29055:9;29049:16;29074:28;29096:5;29074:28;:::i;29137:177::-;29215:13;;-1:-1:-1;;;;;;29257:32:145;;29247:43;;29237:71;;29304:1;29301;29294:12;29319:136;29397:13;;29419:30;29397:13;29419:30;:::i;29460:332::-;29537:6;29545;29598:2;29586:9;29577:7;29573:23;29569:32;29566:52;;;29614:1;29611;29604:12;29566:52;29637:39;29666:9;29637:39;:::i;:::-;29627:49;;29719:2;29708:9;29704:18;29698:25;29732:30;29756:5;29732:30;:::i;30091:379::-;30167:6;30175;30228:2;30216:9;30207:7;30203:23;30199:32;30196:52;;;30244:1;30241;30234:12;30196:52;30276:9;30270:16;30295:31;30320:5;30295:31;:::i;:::-;30395:2;30380:18;;30374:25;30345:5;;-1:-1:-1;30408:30:145;30374:25;30408:30;:::i;30475:134::-;30552:13;;30574:29;30552:13;30574:29;:::i;30614:509::-;30697:6;30705;30713;30766:2;30754:9;30745:7;30741:23;30737:32;30734:52;;;30782:1;30779;30772:12;30734:52;30814:9;30808:16;30833:30;30857:5;30833:30;:::i;:::-;30932:2;30917:18;;30911:25;30882:5;;-1:-1:-1;30945:31:145;30911:25;30945:31;:::i;:::-;31047:2;31032:18;;31026:25;30995:7;;-1:-1:-1;31060:31:145;31026:25;31060:31;:::i;31530:441::-;31583:5;31636:3;31629:4;31621:6;31617:17;31613:27;31603:55;;31654:1;31651;31644:12;31603:55;31683:6;31677:13;31714:48;31730:31;31758:2;31730:31;:::i;31714:48::-;31787:2;31778:7;31771:19;31833:3;31826:4;31821:2;31813:6;31809:15;31805:26;31802:35;31799:55;;;31850:1;31847;31840:12;31799:55;31863:77;31937:2;31930:4;31921:7;31917:18;31910:4;31902:6;31898:17;31863:77;:::i;31976:335::-;32055:6;32108:2;32096:9;32087:7;32083:23;32079:32;32076:52;;;32124:1;32121;32114:12;32076:52;32157:9;32151:16;-1:-1:-1;;;;;32182:6:145;32179:30;32176:50;;;32222:1;32219;32212:12;32176:50;32245:60;32297:7;32288:6;32277:9;32273:22;32245:60;:::i;32316:740::-;32381:5;32434:3;32427:4;32419:6;32415:17;32411:27;32401:55;;32452:1;32449;32442:12;32401:55;32481:6;32475:13;32507:4;32531:60;32547:43;32587:2;32547:43;:::i;32531:60::-;32613:3;32637:2;32632:3;32625:15;32665:4;32660:3;32656:14;32649:21;;32722:4;32716:2;32713:1;32709:10;32701:6;32697:23;32693:34;32679:48;;32750:3;32742:6;32739:15;32736:35;;;32767:1;32764;32757:12;32736:35;32803:4;32795:6;32791:17;32817:210;32833:6;32828:3;32825:15;32817:210;;;32906:3;32900:10;32923:31;32948:5;32923:31;:::i;:::-;32967:18;;33005:12;;;;32850;;32817:210;;;-1:-1:-1;33045:5:145;32316:740;-1:-1:-1;;;;;;32316:740:145:o;33061:1116::-;33158:6;33211:2;33199:9;33190:7;33186:23;33182:32;33179:52;;;33227:1;33224;33217:12;33179:52;33260:9;33254:16;-1:-1:-1;;;;;33330:2:145;33322:6;33319:14;33316:34;;;33346:1;33343;33336:12;33316:34;33369:22;;;;33425:4;33407:16;;;33403:27;33400:47;;;33443:1;33440;33433:12;33400:47;33469:23;;:::i;:::-;33515:32;33544:2;33515:32;:::i;:::-;33508:5;33501:47;33580:40;33616:2;33612;33608:11;33580:40;:::i;:::-;33575:2;33568:5;33564:14;33557:64;33653:40;33689:2;33685;33681:11;33653:40;:::i;:::-;33648:2;33641:5;33637:14;33630:64;33726:40;33762:2;33758;33754:11;33726:40;:::i;:::-;33721:2;33714:5;33710:14;33703:64;33806:3;33802:2;33798:12;33792:19;33836:2;33826:8;33823:16;33820:36;;;33852:1;33849;33842:12;33820:36;33889:67;33948:7;33937:8;33933:2;33929:17;33889:67;:::i;:::-;33883:3;33876:5;33872:15;33865:92;;33996:3;33992:2;33988:12;33982:19;34026:2;34016:8;34013:16;34010:36;;;34042:1;34039;34032:12;34010:36;34079:67;34138:7;34127:8;34123:2;34119:17;34079:67;:::i;:::-;34073:3;34062:15;;34055:92;-1:-1:-1;34066:5:145;33061:1116;-1:-1:-1;;;;;33061:1116:145:o;34182:127::-;34243:10;34238:3;34234:20;34231:1;34224:31;34274:4;34271:1;34264:15;34298:4;34295:1;34288:15;34314:271;34497:6;34489;34484:3;34471:33;34453:3;34523:16;;34548:13;;;34523:16;34314:271;-1:-1:-1;34314:271:145:o;34590:379::-;34801:2;34790:9;34783:21;34764:4;34821:45;34862:2;34851:9;34847:18;34839:6;34821:45;:::i;:::-;34813:53;;34902:6;34897:2;34886:9;34882:18;34875:34;34957:4;34949:6;34945:17;34940:2;34929:9;34925:18;34918:45;34590:379;;;;;;:::o;34974:127::-;35035:10;35030:3;35026:20;35023:1;35016:31;35066:4;35063:1;35056:15;35090:4;35087:1;35080:15;35106:125;35171:9;;;35192:10;;;35189:36;;;35205:18;;:::i;35236:474::-;35477:10;35465:23;;35447:42;;-1:-1:-1;;;;;35525:32:145;;35520:2;35505:18;;35498:60;35594:3;35589:2;35574:18;;35567:31;;;-1:-1:-1;;35615:46:145;;35641:19;;35633:6;35615:46;:::i;:::-;35607:54;;35697:6;35692:2;35681:9;35677:18;35670:34;35236:474;;;;;;;:::o;35715:184::-;35785:6;35838:2;35826:9;35817:7;35813:23;35809:32;35806:52;;;35854:1;35851;35844:12;35806:52;-1:-1:-1;35877:16:145;;35715:184;-1:-1:-1;35715:184:145:o;36550:369::-;36636:6;36644;36652;36705:2;36693:9;36684:7;36680:23;36676:32;36673:52;;;36721:1;36718;36711:12;36673:52;36753:9;36747:16;36772:29;36795:5;36772:29;:::i;:::-;36865:2;36850:18;;36844:25;36909:2;36894:18;;;36888:25;36820:5;;36844:25;;-1:-1:-1;36888:25:145;36550:369;-1:-1:-1;;;36550:369:145:o;37267:1453::-;37471:4;37500:2;37540;37529:9;37525:18;37570:2;37559:9;37552:21;37593:6;37628;37622:13;37659:6;37651;37644:22;37685:2;37675:12;;37718:2;37707:9;37703:18;37696:25;;37780:2;37770:6;37767:1;37763:14;37752:9;37748:30;37744:39;37818:2;37810:6;37806:15;37839:1;37849:842;37863:6;37860:1;37857:13;37849:842;;;37928:22;;;-1:-1:-1;;37924:36:145;37912:49;;37984:13;;38056:9;;38067:10;38052:26;38037:42;;38126:11;;;38120:18;-1:-1:-1;;;;;38116:44:145;38099:15;;;38092:69;38200:11;;;38194:18;38020:4;38232:15;;;38225:27;;;38020:4;38279:48;38311:15;;;38194:18;38279:48;:::i;:::-;38265:62;;;38350:4;38405:2;38401;38397:11;38391:18;38386:2;38378:6;38374:15;38367:43;;38433:4;38486:2;38482;38478:11;38472:18;38450:40;;38539:6;38531;38527:19;38522:2;38514:6;38510:15;38503:44;;38570:41;38604:6;38588:14;38570:41;:::i;:::-;38669:12;;;;38560:51;-1:-1:-1;;;38634:15:145;;;;37885:1;37878:9;37849:842;;38725:289;38900:2;38889:9;38882:21;38863:4;38920:45;38961:2;38950:9;38946:18;38938:6;38920:45;:::i;:::-;38912:53;;39001:6;38996:2;38985:9;38981:18;38974:34;38725:289;;;;;:::o;39019:244::-;39176:2;39165:9;39158:21;39139:4;39196:61;39253:2;39242:9;39238:18;39230:6;39222;39196:61;:::i;39268:148::-;39356:4;39335:12;;;39349;;;39331:31;;39374:13;;39371:39;;;39390:18;;:::i;39905:251::-;39975:6;40028:2;40016:9;40007:7;40003:23;39999:32;39996:52;;;40044:1;40041;40034:12;39996:52;40076:9;40070:16;40095:31;40120:5;40095:31;:::i;40161:127::-;40222:10;40217:3;40213:20;40210:1;40203:31;40253:4;40250:1;40243:15;40277:4;40274:1;40267:15;40761:827;41093:4;41139:1;41135;41130:3;41126:11;41122:19;41180:2;41172:6;41168:15;41157:9;41150:34;41232:2;41224:6;41220:15;41215:2;41204:9;41200:18;41193:43;41272:3;41267:2;41256:9;41252:18;41245:31;41299:57;41351:3;41340:9;41336:19;41328:6;41299:57;:::i;:::-;41404:2;41396:6;41392:15;41387:2;41376:9;41372:18;41365:43;41457:2;41449:6;41445:15;41439:3;41428:9;41424:19;41417:44;41510:9;41502:6;41498:22;41492:3;41481:9;41477:19;41470:51;41538:44;41575:6;41567;41538:44;:::i;:::-;41530:52;40761:827;-1:-1:-1;;;;;;;;;;40761:827:145:o;41593:952::-;42028:4;42020:6;42016:17;42005:9;41998:36;42070:3;42065:2;42054:9;42050:18;42043:31;41979:4;42097:57;42149:3;42138:9;42134:19;42126:6;42097:57;:::i;:::-;-1:-1:-1;;;;;42190:32:145;;42185:2;42170:18;;42163:60;42259:22;;;42254:2;42239:18;;42232:50;42305:44;42263:6;42334;42305:44;:::i;:::-;42291:58;;-1:-1:-1;;;;;42390:6:145;42386:31;42380:3;42369:9;42365:19;42358:60;42467:9;42459:6;42455:22;42449:3;42438:9;42434:19;42427:51;42495:44;42532:6;42524;42495:44;:::i;:::-;42487:52;41593:952;-1:-1:-1;;;;;;;;;41593:952:145:o;43239:2036::-;43465:4;43494:2;43534;43523:9;43519:18;43564:2;43553:9;43546:21;43587:6;43622;43616:13;43653:6;43645;43638:22;43679:2;43669:12;;43712:2;43701:9;43697:18;43690:25;;43774:2;43764:6;43761:1;43757:14;43746:9;43742:30;43738:39;43812:2;43804:6;43800:15;43833:1;43843:1403;43857:6;43854:1;43851:13;43843:1403;;;-1:-1:-1;;43952:22:145;;;43948:31;;43936:44;;44003:13;;44048:9;;44059:10;44044:26;44029:42;;44110:11;;44104:18;44142:15;;;44135:27;;;44203:19;;-1:-1:-1;;;;;44199:44:145;44182:15;;;44175:69;44285:21;;;44279:28;44355:4;44396:23;;;44330:2;44379:15;;;44372:48;;;;44461:21;;;44455:28;44546:23;;44506:3;44529:15;;;44522:48;;;;44611:21;;;44605:28;44696:23;;;44656:3;44679:15;;;44672:48;;;;44761:21;;;44755:28;44806:4;44830:15;;;44823:27;44755:28;44877:73;44945:3;44933:16;;44755:28;44877:73;:::i;:::-;44991:21;;44985:28;45055:19;;;45051:28;;45045:3;45033:16;;45026:54;44985:28;44863:87;-1:-1:-1;45103:63:145;44863:87;44985:28;45103:63;:::i;:::-;45224:12;;;;45093:73;-1:-1:-1;;;45189:15:145;;;;-1:-1:-1;43879:1:145;43872:9;43843:1403;;45280:1026;45545:2;45597:21;;;45667:13;;45570:18;;;45689:22;;;45516:4;;45545:2;45730;;45748:18;;;;45789:15;;;45516:4;45832:448;45846:6;45843:1;45840:13;45832:448;;;45905:13;;45980:9;;45941:10;45976:18;;;45964:31;;46034:11;;;46028:18;46084:19;;46080:28;;;46066:12;;;46059:50;46153:21;;46147:28;-1:-1:-1;;;;;46143:54:145;46129:12;;;46122:76;46227:4;46218:14;;;;46255:15;;;;46194:1;45861:9;45832:448;;;-1:-1:-1;46297:3:145;;45280:1026;-1:-1:-1;;;;;;;45280:1026:145:o;46311:251::-;46381:6;46434:2;46422:9;46413:7;46409:23;46405:32;46402:52;;;46450:1;46447;46440:12;46402:52;46482:9;46476:16;46501:31;46526:5;46501:31;:::i;46567:274::-;-1:-1:-1;;;;;46705:10:145;;;46717;;;46701:27;46748:20;;;;46639:34;46787:24;;;46777:58;;46815:18;;:::i;:::-;46777:58;;46567:274;;;;:::o;46846:1093::-;47075:2;47127:21;;;47197:13;;47100:18;;;47219:22;;;47046:4;;47075:2;47260;;47278:18;;;;47319:15;;;47046:4;47362:551;47376:6;47373:1;47370:13;47362:551;;;47435:13;;47510:9;;47471:10;47506:18;;;47494:31;;47564:11;;;47558:18;47614:19;;-1:-1:-1;;;;;47610:60:145;47596:12;;;47589:82;47715:21;;;47709:28;-1:-1:-1;;;;;47705:53:145;47691:12;;;47684:75;47803:21;;47797:28;47793:37;47788:2;47779:12;;47772:59;47860:4;47851:14;;;;47888:15;;;;47398:1;47391:9;47362:551;;47944:175;47981:3;48025:4;48018:5;48014:16;48054:4;48045:7;48042:17;48039:43;;48062:18;;:::i;:::-;48111:1;48098:15;;47944:175;-1:-1:-1;;47944:175:145:o;48124:1355::-;48359:2;48411:21;;;48481:13;;48384:18;;;48503:22;;;48330:4;;48359:2;48544;;48562:18;;;;48603:15;;;48330:4;48646:807;48660:6;48657:1;48654:13;48646:807;;;48719:13;;48761:9;;48772:10;48757:26;48745:39;;48823:11;;;48817:18;-1:-1:-1;;;;;48910:21:145;;;48896:12;;;48889:43;48976:11;;;48970:18;48966:27;48952:12;;;48945:49;49017:4;49065:11;;;49059:18;49079:6;49055:31;49041:12;;;49034:53;49110:4;49155:11;;;49149:18;-1:-1:-1;;;;;49258:23:145;;;49244:12;;;49237:45;;;;49305:4;49353:11;;;49347:18;49343:27;49329:12;;;49322:49;49400:4;49391:14;;;;49428:15;;;;48682:1;48675:9;48646:807;;49484:1033;49719:2;49771:21;;;49841:13;;49744:18;;;49863:22;;;49690:4;;49719:2;49904;;49922:18;;;;49963:15;;;49690:4;50006:485;50020:6;50017:1;50014:13;50006:485;;;50079:13;;50121:9;;50132:10;50117:26;50105:39;;50188:11;;;50182:18;-1:-1:-1;;;;;50178:43:145;50164:12;;;50157:65;50266:11;;;50260:18;50280:6;50256:31;50242:12;;;50235:53;50311:4;50359:11;;;50353:18;-1:-1:-1;;;;;50349:59:145;50335:12;;;50328:81;50438:4;50429:14;;;;50466:15;;;;50042:1;50035:9;50006:485;;52239:151;52329:4;52322:12;;;52308;;;52304:31;;52347:14;;52344:40;;;52364:18;;:::i;52395:380::-;52474:1;52470:12;;;;52517;;;52538:61;;52592:4;52584:6;52580:17;52570:27;;52538:61;52645:2;52637:6;52634:14;52614:18;52611:38;52608:161;;52691:10;52686:3;52682:20;52679:1;52672:31;52726:4;52723:1;52716:15;52754:4;52751:1;52744:15;52608:161;;52395:380;;;:::o;52780:1164::-;52996:4;53025:2;53065;53054:9;53050:18;53095:2;53084:9;53077:21;53118:6;53153;53147:13;53184:6;53176;53169:22;53210:2;53200:12;;53243:2;53232:9;53228:18;53221:25;;53305:2;53295:6;53292:1;53288:14;53277:9;53273:30;53269:39;53343:2;53335:6;53331:15;53364:1;53374:541;53388:6;53385:1;53382:13;53374:541;;;53453:22;;;-1:-1:-1;;53449:36:145;53437:49;;53509:13;;53581:9;;53592:10;53577:26;53562:42;;53651:11;;;53645:18;53665:6;53641:31;53624:15;;;53617:56;53712:11;;53706:18;53545:4;53744:15;;;53737:27;;;53787:48;53819:15;;;53706:18;53787:48;:::i;:::-;53893:12;;;;53777:58;-1:-1:-1;;;53858:15:145;;;;53410:1;53403:9;53374:541;;53949:760;-1:-1:-1;;;;;54300:15:145;;;54282:34;;54352:15;;54347:2;54332:18;;54325:43;54399:2;54384:18;;54377:34;;;54459:6;54447:19;;54442:2;54427:18;;54420:47;54504:3;54498;54483:19;;54476:32;;;54225:4;;54531:62;;54573:19;;54565:6;54557;54531:62;:::i;:::-;54642:9;54634:6;54630:22;54624:3;54613:9;54609:19;54602:51;54670:33;54696:6;54688;54670:33;:::i;54921:710::-;55021:10;55013:5;55007:12;55003:29;54998:3;54991:42;55082:4;55075:5;55071:16;55065:23;55058:4;55053:3;55049:14;55042:47;55138:4;55131:5;55127:16;55121:23;55114:4;55109:3;55105:14;55098:47;54973:3;55191:4;55184:5;55180:16;55174:23;55229:4;55222;55217:3;55213:14;55206:28;55255:47;55296:4;55291:3;55287:14;55273:12;55255:47;:::i;:::-;55243:59;;55350:4;55343:5;55339:16;55333:23;55398:3;55392:4;55388:14;55381:4;55376:3;55372:14;55365:38;55426:39;55460:4;55444:14;55426:39;:::i;:::-;55412:53;;;55513:4;55506:5;55502:16;55496:23;55563:3;55555:6;55551:16;55544:4;55539:3;55535:14;55528:40;55584:41;55618:6;55602:14;55584:41;:::i;55636:345::-;55841:2;55830:9;55823:21;55804:4;55861:55;55912:2;55901:9;55897:18;55889:6;55861:55;:::i;:::-;55853:63;;55966:6;55959:14;55952:22;55947:2;55936:9;55932:18;55925:50;55636:345;;;;;:::o;55986:478::-;56056:5;56104:4;56092:9;56087:3;56083:19;56079:30;56076:50;;;56122:1;56119;56112:12;56076:50;56155:4;56149:11;56199:4;56191:6;56187:17;56270:6;56258:10;56255:22;-1:-1:-1;;;;;56222:10:145;56219:34;56216:62;56213:88;;;56281:18;;:::i;:::-;56317:4;56310:24;56382:16;;56367:32;;56453:2;56438:18;;;56432:25;56415:15;;;56408:50;;;;-1:-1:-1;56352:6:145;55986:478;-1:-1:-1;55986:478:145:o;56469:259::-;56569:6;56622:2;56610:9;56601:7;56597:23;56593:32;56590:52;;;56638:1;56635;56628:12;56590:52;56661:61;56714:7;56703:9;56661:61;:::i;56733:168::-;56806:9;;;56837;;56854:15;;;56848:22;;56834:37;56824:71;;56875:18;;:::i;57642:128::-;57709:9;;;57730:11;;;57727:37;;;57744:18;;:::i;58496:136::-;58535:3;58563:5;58553:39;;58572:18;;:::i;:::-;-1:-1:-1;;;58608:18:145;;58496:136::o;59196:379::-;59389:2;59378:9;59371:21;59352:4;59415:45;59456:2;59445:9;59441:18;59433:6;59415:45;:::i;:::-;59508:9;59500:6;59496:22;59491:2;59480:9;59476:18;59469:50;59536:33;59562:6;59554;59536:33;:::i;59580:549::-;59829:3;59818:9;59811:22;59792:4;59856:46;59897:3;59886:9;59882:19;59874:6;59856:46;:::i;:::-;59950:9;59942:6;59938:22;59933:2;59922:9;59918:18;59911:50;59978:33;60004:6;59996;59978:33;:::i;:::-;60042:2;60027:18;;60020:34;;;;-1:-1:-1;;;;;;;60090:32:145;;;;60085:2;60070:18;;;60063:60;59970:41;59580:549;-1:-1:-1;;59580:549:145:o;60877:249::-;60946:6;60999:2;60987:9;60978:7;60974:23;60970:32;60967:52;;;61015:1;61012;61005:12;60967:52;61047:9;61041:16;61066:30;61090:5;61066:30;:::i;62042:568::-;62349:3;62338:9;62331:22;62312:4;62370:56;62421:3;62410:9;62406:19;62398:6;62370:56;:::i;:::-;62462:13;;62457:2;62442:18;;;62435:41;;;;62518:15;;;62512:22;62507:2;62492:18;;62485:50;-1:-1:-1;;;;;;62571:32:145;;;;62566:2;62551:18;;;62544:60;62362:64;62042:568;-1:-1:-1;62042:568:145:o;62615:683::-;62719:6;62772:3;62760:9;62751:7;62747:23;62743:33;62740:53;;;62789:1;62786;62779:12;62740:53;62822:2;62816:9;62864:4;62856:6;62852:17;62935:6;62923:10;62920:22;-1:-1:-1;;;;;62887:10:145;62884:34;62881:62;62878:88;;;62946:18;;:::i;:::-;62982:2;62975:22;63021:16;;63006:32;;63081:2;63066:18;;63060:25;63094:30;63060:25;63094:30;:::i;:::-;63152:2;63140:15;;63133:30;63196:70;63258:7;63253:2;63238:18;;63196:70;:::i;:::-;63191:2;63179:15;;63172:95;63183:6;62615:683;-1:-1:-1;;;62615:683:145:o;64222:764::-;64547:10;64539:6;64535:23;64524:9;64517:42;64498:4;64595:1;64591;64586:3;64582:11;64578:19;64645:2;64637:6;64633:15;64628:2;64617:9;64613:18;64606:43;64685:3;64680:2;64669:9;64665:18;64658:31;64712:46;64753:3;64742:9;64738:19;64730:6;64712:46;:::i;:::-;64794:6;64789:2;64778:9;64774:18;64767:34;64850:2;64842:6;64838:15;64832:3;64821:9;64817:19;64810:44;64903:9;64895:6;64891:22;64885:3;64874:9;64870:19;64863:51;64931:49;64973:6;64965;64957;64931:49;:::i;:::-;64923:57;64222:764;-1:-1:-1;;;;;;;;;;;64222:764:145:o;65270:384::-;-1:-1:-1;;;;;;65455:33:145;;65443:46;;65512:13;;65425:3;;65534:74;65512:13;65597:1;65588:11;;65581:4;65569:17;;65534:74;:::i;:::-;65628:16;;;;65646:1;65624:24;;65270:384;-1:-1:-1;;;65270:384:145:o;65659:287::-;65788:3;65826:6;65820:13;65842:66;65901:6;65896:3;65889:4;65881:6;65877:17;65842:66;:::i;:::-;65924:16;;;;;65659:287;-1:-1:-1;;65659:287:145:o;65951:264::-;66134:2;66123:9;66116:21;66097:4;66154:55;66205:2;66194:9;66190:18;66182:6;66154:55;:::i;66220:558::-;66317:6;66325;66378:2;66366:9;66357:7;66353:23;66349:32;66346:52;;;66394:1;66391;66384:12;66346:52;66427:9;66421:16;-1:-1:-1;;;;;66497:2:145;66489:6;66486:14;66483:34;;;66513:1;66510;66503:12;66483:34;66536:60;66588:7;66579:6;66568:9;66564:22;66536:60;:::i;:::-;66526:70;;66642:2;66631:9;66627:18;66621:25;66605:41;;66671:2;66661:8;66658:16;66655:36;;;66687:1;66684;66677:12;66655:36;;66710:62;66764:7;66753:8;66742:9;66738:24;66710:62;:::i;66783:395::-;67003:10;66995:6;66991:23;66980:9;66973:42;67063:6;67055;67051:19;67046:2;67035:9;67031:18;67024:47;67107:2;67102;67091:9;67087:18;67080:30;66954:4;67127:45;67168:2;67157:9;67153:18;67145:6;67127:45;:::i;67183:580::-;67286:6;67294;67302;67310;67363:3;67351:9;67342:7;67338:23;67334:33;67331:53;;;67380:1;67377;67370:12;67331:53;67412:9;67406:16;67431:28;67453:5;67431:28;:::i;:::-;67478:5;67468:15;;;67523:2;67512:9;67508:18;67502:25;67492:35;;67567:2;67556:9;67552:18;67546:25;67536:35;;67615:2;67604:9;67600:18;67594:25;-1:-1:-1;;;;;67634:6:145;67631:30;67628:50;;;67674:1;67671;67664:12;67628:50;67697:60;67749:7;67740:6;67729:9;67725:22;67697:60;:::i;68353:359::-;68540:6;68535:3;68528:19;68510:3;68576:6;68570:13;68592:73;68658:6;68653:2;68648:3;68644:12;68639:2;68631:6;68627:15;68592:73;:::i;:::-;68685:16;;;;68703:2;68681:25;;68353:359;-1:-1:-1;;;68353:359:145:o;68717:655::-;68821:6;68829;68837;68845;68898:3;68886:9;68877:7;68873:23;68869:33;68866:53;;;68915:1;68912;68905:12;68866:53;68947:9;68941:16;68966:30;68990:5;68966:30;:::i;:::-;69065:2;69050:18;;69044:25;69015:5;;-1:-1:-1;69078:32:145;69044:25;69078:32;:::i;:::-;69176:2;69161:18;;69155:25;69224:2;69209:18;;69203:25;69129:7;;-1:-1:-1;69155:25:145;-1:-1:-1;;;;;;69240:30:145;;69237:50;;;69283:1;69280;69273:12;69568:738;69883:10;69875:6;69871:23;69860:9;69853:42;69834:4;69931:1;69927;69922:3;69918:11;69914:19;69981:2;69973:6;69969:15;69964:2;69953:9;69949:18;69942:43;70021:3;70016:2;70005:9;70001:18;69994:31;70048:46;70089:3;70078:9;70074:19;70066:6;70048:46;:::i;:::-;70130:6;70125:2;70114:9;70110:18;70103:34;70186:2;70178:6;70174:15;70168:3;70157:9;70153:19;70146:44;70239:9;70231:6;70227:22;70221:3;70210:9;70206:19;70199:51;70267:33;70293:6;70285;70267:33;:::i;70311:872::-;70665:10;70656:6;70650:13;70646:30;70635:9;70628:49;70733:4;70725:6;70721:17;70715:24;70708:4;70697:9;70693:20;70686:54;-1:-1:-1;;;;;70800:4:145;70792:6;70788:17;70782:24;70778:49;70771:4;70760:9;70756:20;70749:79;70893:1;70889;70884:3;70880:11;70876:19;70868:6;70864:32;70859:2;70848:9;70844:18;70837:60;70934:6;70928:3;70917:9;70913:19;70906:35;70978:3;70972;70961:9;70957:19;70950:32;70609:4;71005:62;71062:3;71051:9;71047:19;71039:6;71031;71005:62;:::i;:::-;71116:9;71108:6;71104:22;71098:3;71087:9;71083:19;71076:51;71144:33;71170:6;71162;71144:33;:::i;71188:489::-;-1:-1:-1;;;;;71457:15:145;;;71439:34;;71509:15;;71504:2;71489:18;;71482:43;71556:2;71541:18;;71534:34;;;71604:3;71599:2;71584:18;;71577:31;;;71382:4;;71625:46;;71651:19;;71643:6;71625:46;:::i;71682:206::-;71751:6;71804:2;71792:9;71783:7;71779:23;71775:32;71772:52;;;71820:1;71817;71810:12;71772:52;71843:39;71872:9;71843:39;:::i;72018:542::-;72119:2;72114:3;72111:11;72108:446;;;72155:1;72179:5;72176:1;72169:16;72223:4;72220:1;72210:18;72293:2;72281:10;72277:19;72274:1;72270:27;72264:4;72260:38;72329:4;72317:10;72314:20;72311:47;;;-1:-1:-1;72352:4:145;72311:47;72407:2;72402:3;72398:12;72395:1;72391:20;72385:4;72381:31;72371:41;;72462:82;72480:2;72473:5;72470:13;72462:82;;;72525:17;;;72506:1;72495:13;72462:82;;72736:1202;-1:-1:-1;;;;;72853:3:145;72850:27;72847:53;;;72880:18;;:::i;:::-;72909:93;72998:3;72958:38;72990:4;72984:11;72958:38;:::i;:::-;72952:4;72909:93;:::i;:::-;73028:1;73053:2;73048:3;73045:11;73070:1;73065:615;;;;73724:1;73741:3;73738:93;;;-1:-1:-1;73797:19:145;;;73784:33;73738:93;-1:-1:-1;;72693:1:145;72689:11;;;72685:24;72681:29;72671:40;72717:1;72713:11;;;72668:57;73844:78;;73038:894;;73065:615;71965:1;71958:14;;;72002:4;71989:18;;-1:-1:-1;;73101:17:145;;;73201:9;73223:229;73237:7;73234:1;73231:14;73223:229;;;73326:19;;;73313:33;73298:49;;73433:4;73418:20;;;;73386:1;73374:14;;;;73253:12;73223:229;;;73227:3;73480;73471:7;73468:16;73465:159;;;73604:1;73600:6;73594:3;73588;73585:1;73581:11;73577:21;73573:34;73569:39;73556:9;73551:3;73547:19;73534:33;73530:79;73522:6;73515:95;73465:159;;;73667:1;73661:3;73658:1;73654:11;73650:19;73644:4;73637:33;73038:894;;72736:1202;;;:::o;74865:348::-;75095:2;75084:9;75077:21;75058:4;75115:49;75160:2;75149:9;75145:18;74778:2;74766:15;;-1:-1:-1;;;74806:4:145;74797:14;;74790:36;74851:2;74842:12;;74701:159;75115:49;75107:57;;75200:6;75195:2;75184:9;75180:18;75173:34;74865:348;;;;:::o;75382:::-;75612:2;75601:9;75594:21;75575:4;75632:49;75677:2;75666:9;75662:18;75295:2;75283:15;;-1:-1:-1;;;75323:4:145;75314:14;;75307:36;75368:2;75359:12;;75218:159;76844:583;77097:3;77086:9;77079:22;77060:4;77124:46;77165:3;77154:9;77150:19;77142:6;77124:46;:::i;:::-;77218:9;77210:6;77206:22;77201:2;77190:9;77186:18;77179:50;77246:33;77272:6;77264;77246:33;:::i;:::-;-1:-1:-1;;;;;77353:15:145;;;77348:2;77333:18;;77326:43;77405:15;;;;77400:2;77385:18;;;77378:43;;;;-1:-1:-1;77238:41:145;76844:583;-1:-1:-1;;;76844:583:145:o;78209:135::-;78248:3;78269:17;;;78266:43;;78289:18;;:::i;:::-;-1:-1:-1;78336:1:145;78325:13;;78209:135::o;78349:331::-;78454:9;78465;78507:8;78495:10;78492:24;78489:44;;;78529:1;78526;78519:12;78489:44;78558:6;78548:8;78545:20;78542:40;;;78578:1;78575;78568:12;78542:40;-1:-1:-1;;78604:23:145;;;78649:25;;;;;-1:-1:-1;78349:331:145:o;78685:323::-;-1:-1:-1;;;;;;78805:19:145;;78881:11;;;;78912:1;78904:10;;78901:101;;;78973:1;78969:11;;;;78966:1;78962:19;78958:28;;;78950:37;78946:46;;;;78685:323;-1:-1:-1;;78685:323:145:o;79013:492::-;79188:3;79226:6;79220:13;79242:66;79301:6;79296:3;79289:4;79281:6;79277:17;79242:66;:::i;:::-;79371:13;;79330:16;;;;79393:70;79371:13;79330:16;79440:4;79428:17;;79393:70;:::i;:::-;79479:20;;79013:492;-1:-1:-1;;;;79013:492:145:o;79510:331::-;-1:-1:-1;;;;;;79630:19:145;;79714:11;;;;79745:1;79737:10;;79734:101;;;79806:1;79802:11;;;;79799:1;79795:19;79791:28;;;79783:37;79779:46;;;;79510:331;-1:-1:-1;;79510:331:145:o;79846:255::-;79966:19;;80005:2;79997:11;;79994:101;;;-1:-1:-1;;80066:2:145;80062:12;;;80059:1;80055:20;80051:33;80040:45;79846:255;;;;:::o;80516:517::-;80603:6;80611;80619;80672:2;80660:9;80651:7;80647:23;80643:32;80640:52;;;80688:1;80685;80678:12;80640:52;80720:9;80714:16;80739:30;80763:5;80739:30;:::i;:::-;80838:2;80823:18;;80817:25;80788:5;;-1:-1:-1;80851:33:145;80817:25;80851:33;:::i;:::-;80955:2;80940:18;;80934:25;80903:7;;-1:-1:-1;80968:33:145;80934:25;80968:33;:::i;81038:201::-;81076:3;81104:10;81149:2;81142:5;81138:14;81176:2;81167:7;81164:15;81161:41;;81182:18;;:::i;:::-;81231:1;81218:15;;81038:201;-1:-1:-1;;;81038:201:145:o;81650:374::-;81880:2;81869:9;81862:21;81843:4;81900:49;81945:2;81934:9;81930:18;74778:2;74766:15;;-1:-1:-1;;;74806:4:145;74797:14;;74790:36;74851:2;74842:12;;74701:159;81900:49;-1:-1:-1;;;;;81985:32:145;;;;81980:2;81965:18;;;;81958:60;;;;-1:-1:-1;81892:57:145;81650:374::o;82029:::-;82259:2;82248:9;82241:21;82222:4;82279:49;82324:2;82313:9;82309:18;75295:2;75283:15;;-1:-1:-1;;;75323:4:145;75314:14;;75307:36;75368:2;75359:12;;75218:159;82819:312;82898:6;82906;82959:2;82947:9;82938:7;82934:23;82930:32;82927:52;;;82975:1;82972;82965:12;82927:52;83007:9;83001:16;83026:31;83051:5;83026:31;:::i;:::-;83121:2;83106:18;;;;83100:25;83076:5;;83100:25;;-1:-1:-1;;;82819:312:145:o;83948:440::-;84198:2;84187:9;84180:21;84161:4;84224:49;84269:2;84258:9;84254:18;74778:2;74766:15;;-1:-1:-1;;;74806:4:145;74797:14;;74790:36;74851:2;74842:12;;74701:159;84224:49;84321:9;84313:6;84309:22;84304:2;84293:9;84289:18;84282:50;84349:33;84375:6;84367;84349:33;:::i;84393:440::-;84643:2;84632:9;84625:21;84606:4;84669:49;84714:2;84703:9;84699:18;75295:2;75283:15;;-1:-1:-1;;;75323:4:145;75314:14;;75307:36;75368:2;75359:12;;75218:159;84838:503;85075:3;85053:16;;;-1:-1:-1;;;;;;85049:51:145;85037:64;;85156:3;85134:16;;;-1:-1:-1;;;;;;85130:43:145;85126:1;85117:11;;85110:64;85197:13;;-1:-1:-1;;85219:75:145;85197:13;85282:2;85273:12;;85266:4;85254:17;;85219:75;:::i;:::-;85314:16;;;;85332:2;85310:25;;84838:503;-1:-1:-1;;;;84838:503:145:o;85756:385::-;85835:6;85843;85896:2;85884:9;85875:7;85871:23;85867:32;85864:52;;;85912:1;85909;85902:12;85864:52;85944:9;85938:16;85963:31;85988:5;85963:31;:::i;:::-;86063:2;86048:18;;86042:25;86013:5;;-1:-1:-1;86076:33:145;86042:25;86076:33;:::i;86790:520::-;86885:6;86893;86901;86954:2;86942:9;86933:7;86929:23;86925:32;86922:52;;;86970:1;86967;86960:12;86922:52;87002:9;86996:16;87021:29;87044:5;87021:29;:::i;:::-;87118:2;87103:18;;87097:25;87069:5;;-1:-1:-1;;;;;;87134:30:145;;87131:50;;;87177:1;87174;87167:12;87131:50;87200:60;87252:7;87243:6;87232:9;87228:22;87200:60;:::i;:::-;87190:70;;;87300:2;87289:9;87285:18;87279:25;87269:35;;86790:520;;;;;:::o;87315:318::-;-1:-1:-1;;;;;;87435:19:145;;87506:11;;;;87537:1;87529:10;;87526:101;;;87598:1;87594:11;;;;87591:1;87587:19;87583:28;;;87575:37;87571:46;;;;87315:318;-1:-1:-1;;87315:318:145:o;87638:345::-;-1:-1:-1;;;;;;87759:19:145;;87854:11;;;;87885:2;87877:11;;87874:103;;;87947:2;87943:12;;;;87940:1;87936:20;87932:29;;;87924:38;87920:47;;;;87638:345;-1:-1:-1;;87638:345:145:o;88928:168::-;88995:6;89021:10;;;89033;;;89017:27;;89056:11;;;89053:37;;;89070:18;;:::i;89101:790::-;89350:3;89388:6;89382:13;89404:66;89463:6;89458:3;89451:4;89443:6;89439:17;89404:66;:::i;:::-;-1:-1:-1;;;;;;89531:3:145;89567:16;;;89563:25;;89492:16;;;89549:40;;;-1:-1:-1;;;;;;89646:3:145;89624:16;;;89620:38;89616:1;89605:13;;89598:61;89694:16;;;89690:25;89686:1;89675:13;;89668:48;89741:13;;89763:78;89741:13;89828:1;89817:13;;89810:4;89798:17;;89763:78;:::i;:::-;89861:20;89883:1;89857:28;;89101:790;-1:-1:-1;;;;;;;89101:790:145:o;91186:175::-;91254:10;91297;;;91285;;;91281:27;;91320:12;;;91317:38;;;91335:18;;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","TREASURY_GAS_CAP()":"baead19c","TREASURY_GAS_FOR_FEE_CAP()":"b1dcf5c8","_decodeONFTComposeMsgCodec(bytes)":"2c05152c","_decodeONFTMsgCodec(bytes)":"60e5524d","assertGuid(bytes,bytes32)":"997cff1b","decodeLzComposeOption(bytes)":"518e8ab0","decodeLzReceiveOption(bytes)":"f93e1d61","decodeNativeDropOption(bytes)":"b954fdf6","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","executorValueCap()":"2113ce62","failed()":"ba414fa6","getNextInflightPacket(uint16,bytes32)":"7982cf42","hasPendingPackets(uint16,bytes32)":"5ea0fefe","lzCompose(bytes,bytes,bytes32,address)":"a29c8984","lzCompose(uint32,address,bytes,bytes32,address,bytes)":"3bbd6a94","lzReceive(bytes,bytes)":"ec53eaa0","nextExecutorOption(bytes,uint256)":"6e1775e3","onfts(uint256)":"ac7b331a","registerEndpoint(address)":"ae6ce400","schedulePacket(bytes,bytes)":"faed6c58","setExecutorValueCap(uint128)":"defd9da6","setUp()":"0a9254e4","setUpEndpoints(uint8,uint8)":"1cc46525","setupOApps(bytes,uint8,uint8)":"2a35d250","sliceUintArray(uint256[],uint256,uint256)":"7c8bd543","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","test_OAppInspector_inspect(uint256,bytes32)":"e71d14a8","test_ONFTAdapter_debitAndCredit(uint256)":"54a3ce5a","test_ONFTComposeMsgCodec(uint64,uint32,bytes)":"d7974152","test_approvalRequired()":"0005583d","test_assertOptionsType3(uint32,bytes2)":"364b4dd9","test_buildMsgAndOptions(uint256,bytes,uint128,uint128,uint128)":"f7e13176","test_buildMsgAndOptions_noComposition(uint256,bool,bool,uint128,uint128)":"c34f24f5","test_combineOptions(uint32,uint16,uint128,uint128,uint128)":"d203bce3","test_combineOptions_noEnforcedOptions(uint32,uint16,uint128)":"e91461c4","test_combineOptions_noExtraOptions(uint32,uint16,uint128,uint128)":"6e0b3c90","test_constructor()":"e99b6b31","test_credit(uint256)":"98f692a8","test_debit(uint256)":"d0971b62","test_onERC721Received(address,address,uint256,bytes)":"efe2d293","test_onftVersion()":"0921d7b6","test_quoteSend_InvalidReceiver(uint16)":"480d2857","test_send(uint16)":"c89a1e41","test_sendAndCompose(uint8,bytes)":"dceebec5","test_send_InvalidReceiver(uint16)":"81b84021","test_setEnforcedOptions(uint32,uint128,uint128,uint128,uint128)":"a299180b","validatePacket(bytes)":"12cc947f","verifyPackets(uint32,address)":"090852b6","verifyPackets(uint32,bytes32)":"b752b72a","verifyPackets(uint32,bytes32,uint256,address)":"5e7baa42","wireOApps(address[])":"703ca254"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReceiveOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidNativeDropOption\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"optionType\",\"type\":\"uint16\"}],\"name\":\"InvalidOptionType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueFull\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_GAS_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_GAS_FOR_FEE_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"_decodeONFTComposeMsgCodec\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"composeFrom\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"_decodeONFTMsgCodec\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isComposed\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"sendTo\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"}],\"name\":\"assertGuid\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzComposeOption\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzReceiveOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeNativeDropOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executorValueCap\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"getNextInflightPacket\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"packetBytes\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"hasPendingPackets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_composerMsg\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_composer\",\"type\":\"address\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_cursor\",\"type\":\"uint256\"}],\"name\":\"nextExecutorOption\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"optionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"option\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"onfts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract EndpointV2Mock\",\"name\":\"endpoint\",\"type\":\"address\"}],\"name\":\"registerEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"schedulePacket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_valueCap\",\"type\":\"uint128\"}],\"name\":\"setExecutorValueCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_endpointNum\",\"type\":\"uint8\"},{\"internalType\":\"enum TestHelperOz5.LibraryType\",\"name\":\"_libraryType\",\"type\":\"uint8\"}],\"name\":\"setUpEndpoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_oappCreationCode\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"_startEid\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"_oappNum\",\"type\":\"uint8\"}],\"name\":\"setupOApps\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"oapps\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"array\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"sliceUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_to\",\"type\":\"bytes32\"}],\"name\":\"test_OAppInspector_inspect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"test_ONFTAdapter_debitAndCredit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_composeMsg\",\"type\":\"bytes\"}],\"name\":\"test_ONFTComposeMsgCodec\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_approvalRequired\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes2\",\"name\":\"_prefix\",\"type\":\"bytes2\"}],\"name\":\"test_assertOptionsType3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_baseGas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_composeGas\",\"type\":\"uint128\"}],\"name\":\"test_buildMsgAndOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_useEnforcedOptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_useExtraOptions\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"_lzReceiveGas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_lzReceiveValue\",\"type\":\"uint128\"}],\"name\":\"test_buildMsgAndOptions_noComposition\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"_enforcedOptionGas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_enforcedOptionNativeDrop\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_combinedOptionNativeDrop\",\"type\":\"uint128\"}],\"name\":\"test_combineOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"_combinedOptionNativeDrop\",\"type\":\"uint128\"}],\"name\":\"test_combineOptions_noEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"_enforcedOptionGas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_enforcedOptionNativeGas\",\"type\":\"uint128\"}],\"name\":\"test_combineOptions_noExtraOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_constructor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"test_credit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"test_debit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"test_onERC721Received\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_onftVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_tokenToSend\",\"type\":\"uint16\"}],\"name\":\"test_quoteSend_InvalidReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_tokenToSend\",\"type\":\"uint16\"}],\"name\":\"test_send\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_tokenToSend\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_composeMsg\",\"type\":\"bytes\"}],\"name\":\"test_sendAndCompose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_tokenToSend\",\"type\":\"uint16\"}],\"name\":\"test_send_InvalidReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"_optionTypeOneGas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_optionTypeOneValue\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_optionTypeTwoGas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_optionTypeTwoValue\",\"type\":\"uint128\"}],\"name\":\"test_setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"}],\"name\":\"validatePacket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_packetAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_composer\",\"type\":\"address\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"oapps\",\"type\":\"address[]\"}],\"name\":\"wireOApps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"QueueEmpty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}],\"QueueFull()\":[{\"details\":\"A push operation couldn't be completed due to the queue being full.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{\"schedulePacket(bytes,bytes)\":{\"details\":\"Adds the packet to the front of the queue and stores its options for later retrieval.\",\"params\":{\"_options\":\"The options associated with the packet, used during delivery.\",\"_packetBytes\":\"The packet data to be scheduled.\"}},\"setExecutorValueCap(uint128)\":{\"details\":\"set executorValueCap if more than 0.1 ether is necessarythis must be called prior to setUpEndpoints() if the value is to be used\",\"params\":{\"_valueCap\":\"amount executor can pass as msg.value to lzReceive()\"}},\"setUp()\":{\"details\":\"Initializes test environment setup, to be overridden by specific tests.\"},\"setUpEndpoints(uint8,uint8)\":{\"params\":{\"_endpointNum\":\"The number of endpoints to create.\",\"_libraryType\":\"The type of message library to use (UltraLightNode or SimpleMessageLib).\"}},\"setupOApps(bytes,uint8,uint8)\":{\"params\":{\"_oappCreationCode\":\"The bytecode for creating OApp contracts.\",\"_oappNum\":\"The number of OApps to set up.\",\"_startEid\":\"The starting endpoint ID for OApp setup.\"},\"returns\":{\"oapps\":\"An array of addresses for the deployed OApps.\"}},\"test_quoteSend_InvalidReceiver(uint16)\":{\"details\":\"Test to ensure that the quoteSend function reverts when the receiver is invalid.\"},\"test_send_InvalidReceiver(uint16)\":{\"details\":\"Test to ensure that the send function reverts when the receiver is invalid.\"},\"verifyPackets(uint32,address)\":{\"details\":\"verify packets to destination chain's OApp address.\",\"params\":{\"_dstAddress\":\"The destination address.\",\"_dstEid\":\"The destination endpoint ID.\"}},\"verifyPackets(uint32,bytes32)\":{\"details\":\"Calls an overloaded version of verifyPackets with default values for packet amount and composer address.\",\"params\":{\"_dstAddress\":\"The destination address in bytes32 format.\",\"_dstEid\":\"The destination chain's endpoint ID.\"}},\"verifyPackets(uint32,bytes32,uint256,address)\":{\"details\":\"dst UA receive/execute packetswill NOT work calling this directly with composer IF the composed payload is different from the lzReceive msg payload\"},\"wireOApps(address[])\":{\"details\":\"Sets each OApp as a peer to every other OApp in the provided array, except itself.\",\"params\":{\"oapps\":\"An array of addresses representing the deployed OApp instances.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"schedulePacket(bytes,bytes)\":{\"notice\":\"Schedules a packet for delivery, storing it in the packets queue.\"},\"setUpEndpoints(uint8,uint8)\":{\"notice\":\"Sets up endpoints for testing.\"},\"setupOApps(bytes,uint8,uint8)\":{\"notice\":\"Sets up mock OApp contracts for testing.\"},\"verifyPackets(uint32,bytes32)\":{\"notice\":\"Verifies and processes packets destined for a specific chain and user address.\"},\"wireOApps(address[])\":{\"notice\":\"Configures the peers between multiple OApp instances.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/onft/onft721/ONFT721.t.sol\":\"ONFT721Test\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft721/ONFT721.sol\":{\"keccak256\":\"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4\",\"dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu\"]},\"contracts/onft721/ONFT721Adapter.sol\":{\"keccak256\":\"0x14be9f9126ed135f680b784f3c0011cc53171f56ee91839794cbf05ccf627c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://438360943bb43d87034508afd8ba4dba8071b1413ef7ede69608538f3d484cad\",\"dweb:/ipfs/Qma32ayS69kDUxPBSSEidYiTyytEYgYUnZk3xUCwfqaePo\"]},\"contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol\":{\"keccak256\":\"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2\",\"dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol\":{\"keccak256\":\"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4\",\"dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol\":{\"keccak256\":\"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497\",\"dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":{\"keccak256\":\"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f\",\"dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol\":{\"keccak256\":\"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032\",\"dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":{\"keccak256\":\"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5\",\"dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":{\"keccak256\":\"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89\",\"dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":{\"keccak256\":\"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79\",\"dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol\":{\"keccak256\":\"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2\",\"dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9\",\"dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":{\"keccak256\":\"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55\",\"dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol\":{\"keccak256\":\"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc\",\"dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":{\"keccak256\":\"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850\",\"dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol\":{\"keccak256\":\"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691\",\"dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol\":{\"keccak256\":\"0xe5014c411acb2b59dd74ae74a1bab02cf32d94a41a548a5ab553d64aeeb55dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dfb7bc121002fc7e7931c34eb17af0ae0f0127dcc3199511c83a58a917160d\",\"dweb:/ipfs/QmPdq1wcRRBdUP169LHCLoLuPRunN9eR71TQN42FjGpowx\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":{\"keccak256\":\"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241\",\"dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":{\"keccak256\":\"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c\",\"dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":{\"keccak256\":\"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a\",\"dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":{\"keccak256\":\"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54\",\"dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol\":{\"keccak256\":\"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda\",\"dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol\":{\"keccak256\":\"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2\",\"dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol\":{\"keccak256\":\"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11\",\"dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol\":{\"keccak256\":\"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677\",\"dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol\":{\"keccak256\":\"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590\",\"dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol\":{\"keccak256\":\"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045\",\"dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol\":{\"keccak256\":\"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13\",\"dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol\":{\"keccak256\":\"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29\",\"dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol\":{\"keccak256\":\"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f\",\"dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol\":{\"keccak256\":\"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec\",\"dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol\":{\"keccak256\":\"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4\",\"dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol\":{\"keccak256\":\"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574\",\"dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol\":{\"keccak256\":\"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991\",\"dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol\":{\"keccak256\":\"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1\",\"dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e\",\"dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8\",\"dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]},\"test/mocks/ComposerMock.sol\":{\"keccak256\":\"0xd9f1149b739b89c64a9f98bbe8a5d797b9e2084ebd1d5278842f87f1d8c5a7a7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://365f7ef46df424b7878457044b57bc21d6337a0f9387acc31666b45cefebcdf1\",\"dweb:/ipfs/QmRTbjdVQmKxu564PmtcwF7ySUBBLsGu14dzHbUhK4vRcg\"]},\"test/mocks/InspectorMock.sol\":{\"keccak256\":\"0x0b771220aeeff10c578a32a862d9381d53c316494e15fbcc76878d4e489f6fb8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bac2387d0045724d470bf1750b582f36147fe05d26f2c16646493ff319a8d169\",\"dweb:/ipfs/QmSTZZZ6zz8PBtAtXKK8tmkd9s3DZW2kbc87eGzRNYZtoZ\"]},\"test/onft/ONFTBaseTestHelper.sol\":{\"keccak256\":\"0xc391362caf12a23d771d1dd8fa5e072ae7cff39266393f7deeae6de502f5dfb8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2567c9a0dd3e4f035dacb37e784ea5b55faa5fc0a42415e060355de3a969edd6\",\"dweb:/ipfs/QmWfsj1mFmeyMq99s63We4pUsL6jRa6wB9VQmVE1FCNCGN\"]},\"test/onft/onft721/ONFT721.t.sol\":{\"keccak256\":\"0xda812ccf005137e97d19b7449235733308c6ecb04c0799c49205fe9730a0acca\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://91996931ae3d77cb855bba1911765fca4772ad446a608b574f8ff6f6b2d55ca2\",\"dweb:/ipfs/QmbKphmPVw3VpBuJ9xpR155icyNx9e9YQNJykeDwV3BG9n\"]},\"test/onft/onft721/ONFT721Base.sol\":{\"keccak256\":\"0x28e69769269ed40ab9a14b8b457976469c5ab9d6ff02af954449c39020d4fbc4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://17543ccf1b986d9f61c035348b9ef8717b16a90c954961b9050886bd0171f2fa\",\"dweb:/ipfs/QmRtkFLdb1ASK2cG3xwYNrFxsDXHZ6hETqe9YBkax8B524\"]},\"test/onft/onft721/mocks/ERC721Mock.sol\":{\"keccak256\":\"0x6b9a321f3f1e9de4bb6ec64f01264717108e77da7173a3e735d3830542a4e8fe\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cd5b0ecd6121979c0289d8d53c24286793e43c31d337c61fdea408ec1e78135\",\"dweb:/ipfs/QmTrhHATg38ZkspBW1qz5dXcJHeHvMo42PoM3WZtq6KSGY\"]},\"test/onft/onft721/mocks/ONFT721AdapterMock.sol\":{\"keccak256\":\"0xe6a5e529274226003161bfca63fbceab6aaf10f91ef62d6f1d36cabb81da9df0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ee5020c13278a047c22e2bdd86703c2c75ce1e76530005f7e3bce82e0dbf2d3b\",\"dweb:/ipfs/QmQyfe2kn6Zbgu6vw2ss5kBjsTtBZzkFNtbD3mpf3T6Fx8\"]},\"test/onft/onft721/mocks/ONFT721Mock.sol\":{\"keccak256\":\"0xc31f9452ff2400b8279b490bdfe117aaaa27d1fcc35c1e6126a1cbc76a3be675\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dc38695a66a85a73b7098513e0fd65d5bf37751f8eb4d3f49dc937f0d6815b8c\",\"dweb:/ipfs/QmV7Swzcstxv8L3n4ZFuS7YBQD4xsHwLDRqvwyoL8bFRtw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Executor_InvalidLzComposeOption"},{"inputs":[],"type":"error","name":"Executor_InvalidLzReceiveOption"},{"inputs":[],"type":"error","name":"Executor_InvalidNativeDropOption"},{"inputs":[{"internalType":"uint16","name":"optionType","type":"uint16"}],"type":"error","name":"InvalidOptionType"},{"inputs":[],"type":"error","name":"QueueEmpty"},{"inputs":[],"type":"error","name":"QueueFull"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_GAS_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_GAS_FOR_FEE_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"pure","type":"function","name":"_decodeONFTComposeMsgCodec","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"composeFrom","type":"bytes32"},{"internalType":"bytes","name":"composeMsg","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"pure","type":"function","name":"_decodeONFTMsgCodec","outputs":[{"internalType":"bool","name":"isComposed","type":"bool"},{"internalType":"bytes32","name":"sendTo","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"composeMsg","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"packetBytes","type":"bytes"},{"internalType":"bytes32","name":"guid","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertGuid"},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzComposeOption","outputs":[{"internalType":"uint16","name":"index","type":"uint16"},{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzReceiveOption","outputs":[{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeNativeDropOption","outputs":[{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes32","name":"receiver","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"executorValueCap","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getNextInflightPacket","outputs":[{"internalType":"bytes","name":"packetBytes","type":"bytes"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"view","type":"function","name":"hasPendingPackets","outputs":[{"internalType":"bool","name":"flag","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes","name":"_composerMsg","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"address","name":"_composer","type":"address"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"uint256","name":"_cursor","type":"uint256"}],"stateMutability":"pure","type":"function","name":"nextExecutorOption","outputs":[{"internalType":"uint8","name":"optionType","type":"uint8"},{"internalType":"bytes","name":"option","type":"bytes"},{"internalType":"uint256","name":"cursor","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"onfts","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract EndpointV2Mock","name":"endpoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerEndpoint"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"schedulePacket"},{"inputs":[{"internalType":"uint128","name":"_valueCap","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setExecutorValueCap"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint8","name":"_endpointNum","type":"uint8"},{"internalType":"enum TestHelperOz5.LibraryType","name":"_libraryType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setUpEndpoints"},{"inputs":[{"internalType":"bytes","name":"_oappCreationCode","type":"bytes"},{"internalType":"uint8","name":"_startEid","type":"uint8"},{"internalType":"uint8","name":"_oappNum","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setupOApps","outputs":[{"internalType":"address[]","name":"oapps","type":"address[]"}]},{"inputs":[{"internalType":"uint256[]","name":"array","type":"uint256[]"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"pure","type":"function","name":"sliceUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes32","name":"_to","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"test_OAppInspector_inspect"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"test_ONFTAdapter_debitAndCredit"},{"inputs":[{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint32","name":"_srcEid","type":"uint32"},{"internalType":"bytes","name":"_composeMsg","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"test_ONFTComposeMsgCodec"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_approvalRequired"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes2","name":"_prefix","type":"bytes2"}],"stateMutability":"nonpayable","type":"function","name":"test_assertOptionsType3"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_composeMsg","type":"bytes"},{"internalType":"uint128","name":"_baseGas","type":"uint128"},{"internalType":"uint128","name":"_value","type":"uint128"},{"internalType":"uint128","name":"_composeGas","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"test_buildMsgAndOptions"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bool","name":"_useEnforcedOptions","type":"bool"},{"internalType":"bool","name":"_useExtraOptions","type":"bool"},{"internalType":"uint128","name":"_lzReceiveGas","type":"uint128"},{"internalType":"uint128","name":"_lzReceiveValue","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"test_buildMsgAndOptions_noComposition"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"uint128","name":"_enforcedOptionGas","type":"uint128"},{"internalType":"uint128","name":"_enforcedOptionNativeDrop","type":"uint128"},{"internalType":"uint128","name":"_combinedOptionNativeDrop","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"test_combineOptions"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"uint128","name":"_combinedOptionNativeDrop","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"test_combineOptions_noEnforcedOptions"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"uint128","name":"_enforcedOptionGas","type":"uint128"},{"internalType":"uint128","name":"_enforcedOptionNativeGas","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"test_combineOptions_noExtraOptions"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_constructor"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"test_credit"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"test_debit"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"test_onERC721Received"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_onftVersion"},{"inputs":[{"internalType":"uint16","name":"_tokenToSend","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"test_quoteSend_InvalidReceiver"},{"inputs":[{"internalType":"uint16","name":"_tokenToSend","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"test_send"},{"inputs":[{"internalType":"uint8","name":"_tokenToSend","type":"uint8"},{"internalType":"bytes","name":"_composeMsg","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"test_sendAndCompose"},{"inputs":[{"internalType":"uint16","name":"_tokenToSend","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"test_send_InvalidReceiver"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint128","name":"_optionTypeOneGas","type":"uint128"},{"internalType":"uint128","name":"_optionTypeOneValue","type":"uint128"},{"internalType":"uint128","name":"_optionTypeTwoGas","type":"uint128"},{"internalType":"uint128","name":"_optionTypeTwoValue","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"test_setEnforcedOptions"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"validatePacket"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_dstAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"},{"internalType":"uint256","name":"_packetAmount","type":"uint256"},{"internalType":"address","name":"_composer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"address[]","name":"oapps","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"wireOApps"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"schedulePacket(bytes,bytes)":{"details":"Adds the packet to the front of the queue and stores its options for later retrieval.","params":{"_options":"The options associated with the packet, used during delivery.","_packetBytes":"The packet data to be scheduled."}},"setExecutorValueCap(uint128)":{"details":"set executorValueCap if more than 0.1 ether is necessarythis must be called prior to setUpEndpoints() if the value is to be used","params":{"_valueCap":"amount executor can pass as msg.value to lzReceive()"}},"setUp()":{"details":"Initializes test environment setup, to be overridden by specific tests."},"setUpEndpoints(uint8,uint8)":{"params":{"_endpointNum":"The number of endpoints to create.","_libraryType":"The type of message library to use (UltraLightNode or SimpleMessageLib)."}},"setupOApps(bytes,uint8,uint8)":{"params":{"_oappCreationCode":"The bytecode for creating OApp contracts.","_oappNum":"The number of OApps to set up.","_startEid":"The starting endpoint ID for OApp setup."},"returns":{"oapps":"An array of addresses for the deployed OApps."}},"test_quoteSend_InvalidReceiver(uint16)":{"details":"Test to ensure that the quoteSend function reverts when the receiver is invalid."},"test_send_InvalidReceiver(uint16)":{"details":"Test to ensure that the send function reverts when the receiver is invalid."},"verifyPackets(uint32,address)":{"details":"verify packets to destination chain's OApp address.","params":{"_dstAddress":"The destination address.","_dstEid":"The destination endpoint ID."}},"verifyPackets(uint32,bytes32)":{"details":"Calls an overloaded version of verifyPackets with default values for packet amount and composer address.","params":{"_dstAddress":"The destination address in bytes32 format.","_dstEid":"The destination chain's endpoint ID."}},"verifyPackets(uint32,bytes32,uint256,address)":{"details":"dst UA receive/execute packetswill NOT work calling this directly with composer IF the composed payload is different from the lzReceive msg payload"},"wireOApps(address[])":{"details":"Sets each OApp as a peer to every other OApp in the provided array, except itself.","params":{"oapps":"An array of addresses representing the deployed OApp instances."}}},"version":1},"userdoc":{"kind":"user","methods":{"schedulePacket(bytes,bytes)":{"notice":"Schedules a packet for delivery, storing it in the packets queue."},"setUpEndpoints(uint8,uint8)":{"notice":"Sets up endpoints for testing."},"setupOApps(bytes,uint8,uint8)":{"notice":"Sets up mock OApp contracts for testing."},"verifyPackets(uint32,bytes32)":{"notice":"Verifies and processes packets destined for a specific chain and user address."},"wireOApps(address[])":{"notice":"Configures the peers between multiple OApp instances."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/onft/onft721/ONFT721.t.sol":"ONFT721Test"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft721/ONFT721.sol":{"keccak256":"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04","urls":["bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4","dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu"],"license":"MIT"},"contracts/onft721/ONFT721Adapter.sol":{"keccak256":"0x14be9f9126ed135f680b784f3c0011cc53171f56ee91839794cbf05ccf627c76","urls":["bzz-raw://438360943bb43d87034508afd8ba4dba8071b1413ef7ede69608538f3d484cad","dweb:/ipfs/Qma32ayS69kDUxPBSSEidYiTyytEYgYUnZk3xUCwfqaePo"],"license":"MIT"},"contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol":{"keccak256":"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9","urls":["bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2","dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol":{"keccak256":"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1","urls":["bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4","dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol":{"keccak256":"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e","urls":["bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497","dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":{"keccak256":"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a","urls":["bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f","dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol":{"keccak256":"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3","urls":["bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032","dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":{"keccak256":"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345","urls":["bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5","dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":{"keccak256":"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d","urls":["bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89","dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":{"keccak256":"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44","urls":["bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79","dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol":{"keccak256":"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5","urls":["bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2","dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f","urls":["bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9","dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":{"keccak256":"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73","urls":["bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55","dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol":{"keccak256":"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91","urls":["bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc","dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":{"keccak256":"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27","urls":["bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850","dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol":{"keccak256":"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f","urls":["bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691","dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol":{"keccak256":"0xe5014c411acb2b59dd74ae74a1bab02cf32d94a41a548a5ab553d64aeeb55dae","urls":["bzz-raw://29dfb7bc121002fc7e7931c34eb17af0ae0f0127dcc3199511c83a58a917160d","dweb:/ipfs/QmPdq1wcRRBdUP169LHCLoLuPRunN9eR71TQN42FjGpowx"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol":{"keccak256":"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a","urls":["bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241","dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol":{"keccak256":"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73","urls":["bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c","dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol":{"keccak256":"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1","urls":["bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a","dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol":{"keccak256":"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420","urls":["bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54","dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":{"keccak256":"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5","urls":["bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b","dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":{"keccak256":"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9","urls":["bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f","dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol":{"keccak256":"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22","urls":["bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda","dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa"],"license":"BUSL-1.1"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol":{"keccak256":"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095","urls":["bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2","dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol":{"keccak256":"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95","urls":["bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11","dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol":{"keccak256":"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef","urls":["bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677","dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol":{"keccak256":"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada","urls":["bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590","dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol":{"keccak256":"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff","urls":["bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045","dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol":{"keccak256":"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21","urls":["bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13","dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol":{"keccak256":"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16","urls":["bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29","dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol":{"keccak256":"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830","urls":["bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f","dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol":{"keccak256":"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44","urls":["bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec","dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol":{"keccak256":"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121","urls":["bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4","dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol":{"keccak256":"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348","urls":["bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574","dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol":{"keccak256":"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9","urls":["bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991","dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol":{"keccak256":"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97","urls":["bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1","dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol":{"keccak256":"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70","urls":["bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e","dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"keccak256":"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67","urls":["bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8","dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"},"test/mocks/ComposerMock.sol":{"keccak256":"0xd9f1149b739b89c64a9f98bbe8a5d797b9e2084ebd1d5278842f87f1d8c5a7a7","urls":["bzz-raw://365f7ef46df424b7878457044b57bc21d6337a0f9387acc31666b45cefebcdf1","dweb:/ipfs/QmRTbjdVQmKxu564PmtcwF7ySUBBLsGu14dzHbUhK4vRcg"],"license":"UNLICENSED"},"test/mocks/InspectorMock.sol":{"keccak256":"0x0b771220aeeff10c578a32a862d9381d53c316494e15fbcc76878d4e489f6fb8","urls":["bzz-raw://bac2387d0045724d470bf1750b582f36147fe05d26f2c16646493ff319a8d169","dweb:/ipfs/QmSTZZZ6zz8PBtAtXKK8tmkd9s3DZW2kbc87eGzRNYZtoZ"],"license":"UNLICENSED"},"test/onft/ONFTBaseTestHelper.sol":{"keccak256":"0xc391362caf12a23d771d1dd8fa5e072ae7cff39266393f7deeae6de502f5dfb8","urls":["bzz-raw://2567c9a0dd3e4f035dacb37e784ea5b55faa5fc0a42415e060355de3a969edd6","dweb:/ipfs/QmWfsj1mFmeyMq99s63We4pUsL6jRa6wB9VQmVE1FCNCGN"],"license":"UNLICENSED"},"test/onft/onft721/ONFT721.t.sol":{"keccak256":"0xda812ccf005137e97d19b7449235733308c6ecb04c0799c49205fe9730a0acca","urls":["bzz-raw://91996931ae3d77cb855bba1911765fca4772ad446a608b574f8ff6f6b2d55ca2","dweb:/ipfs/QmbKphmPVw3VpBuJ9xpR155icyNx9e9YQNJykeDwV3BG9n"],"license":"UNLICENSED"},"test/onft/onft721/ONFT721Base.sol":{"keccak256":"0x28e69769269ed40ab9a14b8b457976469c5ab9d6ff02af954449c39020d4fbc4","urls":["bzz-raw://17543ccf1b986d9f61c035348b9ef8717b16a90c954961b9050886bd0171f2fa","dweb:/ipfs/QmRtkFLdb1ASK2cG3xwYNrFxsDXHZ6hETqe9YBkax8B524"],"license":"UNLICENSED"},"test/onft/onft721/mocks/ERC721Mock.sol":{"keccak256":"0x6b9a321f3f1e9de4bb6ec64f01264717108e77da7173a3e735d3830542a4e8fe","urls":["bzz-raw://3cd5b0ecd6121979c0289d8d53c24286793e43c31d337c61fdea408ec1e78135","dweb:/ipfs/QmTrhHATg38ZkspBW1qz5dXcJHeHvMo42PoM3WZtq6KSGY"],"license":"UNLICENSED"},"test/onft/onft721/mocks/ONFT721AdapterMock.sol":{"keccak256":"0xe6a5e529274226003161bfca63fbceab6aaf10f91ef62d6f1d36cabb81da9df0","urls":["bzz-raw://ee5020c13278a047c22e2bdd86703c2c75ce1e76530005f7e3bce82e0dbf2d3b","dweb:/ipfs/QmQyfe2kn6Zbgu6vw2ss5kBjsTtBZzkFNtbD3mpf3T6Fx8"],"license":"UNLICENSED"},"test/onft/onft721/mocks/ONFT721Mock.sol":{"keccak256":"0xc31f9452ff2400b8279b490bdfe117aaaa27d1fcc35c1e6126a1cbc76a3be675","urls":["bzz-raw://dc38695a66a85a73b7098513e0fd65d5bf37751f8eb4d3f49dc937f0d6815b8c","dweb:/ipfs/QmV7Swzcstxv8L3n4ZFuS7YBQD4xsHwLDRqvwyoL8bFRtw"],"license":"UNLICENSED"}},"version":1},"id":140} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT721A.sol/ONFT721A.json b/packages/onft-evm/out/ONFT721A.sol/ONFT721A.json deleted file mode 100644 index 48c35afda..000000000 --- a/packages/onft-evm/out/ONFT721A.sol/ONFT721A.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ApprovalCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"ApprovalQueryForNonexistentToken","inputs":[]},{"type":"error","name":"BalanceQueryForZeroAddress","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"MintERC2309QuantityExceedsLimit","inputs":[]},{"type":"error","name":"MintToZeroAddress","inputs":[]},{"type":"error","name":"MintZeroQuantity","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotCompatibleWithSpotMints","inputs":[]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SequentialMintExceedsLimit","inputs":[]},{"type":"error","name":"SequentialUpToTooSmall","inputs":[]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"SpotMintTokenIdTooSmall","inputs":[]},{"type":"error","name":"TokenAlreadyExists","inputs":[]},{"type":"error","name":"TransferCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"TransferFromIncorrectOwner","inputs":[]},{"type":"error","name":"TransferToNonERC721ReceiverImplementer","inputs":[]},{"type":"error","name":"TransferToZeroAddress","inputs":[]},{"type":"error","name":"URIQueryForNonexistentToken","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","name()":"06fdde03","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onERC721Received(address,address,uint256,bytes)":"150b7a02","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setApprovalForAll(address,bool)":"a22cb465","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","token()":"fc0c546a","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCompatibleWithSpotMints\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SequentialMintExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SequentialUpToTooSmall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SpotMintTokenIdTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in `owner`'s account.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"constructor\":{\"details\":\"Constructor for the ONFT721 contract.\",\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_lzEndpoint\":\"The LayerZero endpoint address.\",\"_name\":\"The name of the ONFT.\",\"_symbol\":\"The symbol of the ONFT.\"}},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"name()\":{\"details\":\"Returns the token collection name.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, tokenId, '')`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) to learn more about how these ids are created. This function call must use less than 30000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"token()\":{\"returns\":{\"_0\":\"token The address of the ERC721 token implementation.\"}},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"totalSupply()\":{\"details\":\"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"NotCompatibleWithSpotMints()\":[{\"notice\":\"The feature is not compatible with spot mints.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"SequentialMintExceedsLimit()\":[{\"notice\":\"The `tokenId` of a sequential mint exceeds `_sequentialUpTo()`.\"}],\"SequentialUpToTooSmall()\":[{\"notice\":\"`_sequentialUpTo()` must be greater than `_startTokenId()`.\"}],\"SpotMintTokenIdTooSmall()\":[{\"notice\":\"Spot minting requires a `tokenId` greater than `_sequentialUpTo()`.\"}],\"TokenAlreadyExists()\":[{\"notice\":\"Cannot mint over a token that already exists.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the OFT contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the ONFT.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onft721/ONFT721A.sol\":\"ONFT721A\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft721/ONFT721A.sol\":{\"keccak256\":\"0xa2a15b519d580c1c89282119c71638ab2b5b804a3258443b156df0bd5b4779af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa79db2d2ece2e8c7278bbf7281238ab5a5d3bc122eb2c8ede96ebab1dc354aa\",\"dweb:/ipfs/QmXQNcaNb1hdqdWZsNKCcRC21U9zsKf9jFM5tZb9rvwgsP\"]},\"contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/erc721a/contracts/ERC721A.sol\":{\"keccak256\":\"0xede758d13ccce2f54a4bcd16816456109b290759d43988205539cf632f4c8a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b63befef8f79ec44ebe5db096767cab6772485c2b01a431759e7fcdcf7fd0bb1\",\"dweb:/ipfs/QmV45KT2ai7PnVRhpJKjB29A15VGnhsvxxBFrrUSwhe2fr\"]},\"node_modules/erc721a/contracts/IERC721A.sol\":{\"keccak256\":\"0xc9a2a00612e0d121aef3f716877ada17177d5b2d5a4c780d22cade46da2ff294\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1435542fc553d2fb9181191f126a1f97e2cc5570c2459c862f54ba415a22bf02\",\"dweb:/ipfs/QmaQJ14ajkHgymY5TtoxHnpiN5u4TpwXCqKr2B6DM8SHkn\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"ApprovalCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"ApprovalQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"BalanceQueryForZeroAddress"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[],"type":"error","name":"MintERC2309QuantityExceedsLimit"},{"inputs":[],"type":"error","name":"MintToZeroAddress"},{"inputs":[],"type":"error","name":"MintZeroQuantity"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[],"type":"error","name":"NotCompatibleWithSpotMints"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SequentialMintExceedsLimit"},{"inputs":[],"type":"error","name":"SequentialUpToTooSmall"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[],"type":"error","name":"SpotMintTokenIdTooSmall"},{"inputs":[],"type":"error","name":"TokenAlreadyExists"},{"inputs":[],"type":"error","name":"TransferCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"TransferFromIncorrectOwner"},{"inputs":[],"type":"error","name":"TransferToNonERC721ReceiverImplementer"},{"inputs":[],"type":"error","name":"TransferToZeroAddress"},{"inputs":[],"type":"error","name":"URIQueryForNonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"toTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"ConsecutiveTransfer","anonymous":false},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator."},"balanceOf(address)":{"details":"Returns the number of tokens in `owner`'s account."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"constructor":{"details":"Constructor for the ONFT721 contract.","params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_lzEndpoint":"The LayerZero endpoint address.","_name":"The name of the ONFT.","_symbol":"The symbol of the ONFT."}},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"name()":{"details":"Returns the token collection name."},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"Equivalent to `safeTransferFrom(from, to, tokenId, '')`."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) to learn more about how these ids are created. This function call must use less than 30000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"token()":{"returns":{"_0":"token The address of the ERC721 token implementation."}},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"totalSupply()":{"details":"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the OFT contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the token associated with the ONFT."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onft721/ONFT721A.sol":"ONFT721A"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft721/ONFT721A.sol":{"keccak256":"0xa2a15b519d580c1c89282119c71638ab2b5b804a3258443b156df0bd5b4779af","urls":["bzz-raw://fa79db2d2ece2e8c7278bbf7281238ab5a5d3bc122eb2c8ede96ebab1dc354aa","dweb:/ipfs/QmXQNcaNb1hdqdWZsNKCcRC21U9zsKf9jFM5tZb9rvwgsP"],"license":"MIT"},"contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/erc721a/contracts/ERC721A.sol":{"keccak256":"0xede758d13ccce2f54a4bcd16816456109b290759d43988205539cf632f4c8a55","urls":["bzz-raw://b63befef8f79ec44ebe5db096767cab6772485c2b01a431759e7fcdcf7fd0bb1","dweb:/ipfs/QmV45KT2ai7PnVRhpJKjB29A15VGnhsvxxBFrrUSwhe2fr"],"license":"MIT"},"node_modules/erc721a/contracts/IERC721A.sol":{"keccak256":"0xc9a2a00612e0d121aef3f716877ada17177d5b2d5a4c780d22cade46da2ff294","urls":["bzz-raw://1435542fc553d2fb9181191f126a1f97e2cc5570c2459c862f54ba415a22bf02","dweb:/ipfs/QmaQJ14ajkHgymY5TtoxHnpiN5u4TpwXCqKr2B6DM8SHkn"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":6} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT721Adapter.sol/ONFT721Adapter.json b/packages/onft-evm/out/ONFT721Adapter.sol/ONFT721Adapter.json deleted file mode 100644 index af6d8d5e0..000000000 --- a/packages/onft-evm/out/ONFT721Adapter.sol/ONFT721Adapter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onERC721Received(address,address,uint256,bytes)":"150b7a02","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","token()":"fc0c546a","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ONFT721Adapter is wrapper used to enable crosschain transferring of an existing ERC721 token.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"In the case of ONFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"constructor\":{\"details\":\"Constructor for the ONFT721 contract.\",\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_lzEndpoint\":\"The LayerZero endpoint address.\",\"_token\":\"The underlying ERC721 token address this adapts\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"ONFT721Adapter Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the underlying ERC721 implementation (ie. external contract).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onft721/ONFT721Adapter.sol\":\"ONFT721Adapter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft721/ONFT721Adapter.sol\":{\"keccak256\":\"0x14be9f9126ed135f680b784f3c0011cc53171f56ee91839794cbf05ccf627c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://438360943bb43d87034508afd8ba4dba8071b1413ef7ede69608538f3d484cad\",\"dweb:/ipfs/Qma32ayS69kDUxPBSSEidYiTyytEYgYUnZk3xUCwfqaePo\"]},\"contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"In the case of ONFT where the contract IS the token, approval is NOT required.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"constructor":{"details":"Constructor for the ONFT721 contract.","params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_lzEndpoint":"The LayerZero endpoint address.","_token":"The underlying ERC721 token address this adapts"}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the ONFT721 contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the underlying ERC721 implementation (ie. external contract)."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onft721/ONFT721Adapter.sol":"ONFT721Adapter"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft721/ONFT721Adapter.sol":{"keccak256":"0x14be9f9126ed135f680b784f3c0011cc53171f56ee91839794cbf05ccf627c76","urls":["bzz-raw://438360943bb43d87034508afd8ba4dba8071b1413ef7ede69608538f3d484cad","dweb:/ipfs/Qma32ayS69kDUxPBSSEidYiTyytEYgYUnZk3xUCwfqaePo"],"license":"MIT"},"contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":7} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT721AdapterMock.sol/ONFT721AdapterMock.json b/packages/onft-evm/out/ONFT721AdapterMock.sol/ONFT721AdapterMock.json deleted file mode 100644 index 003736c22..000000000 --- a/packages/onft-evm/out/ONFT721AdapterMock.sol/ONFT721AdapterMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_lzEndpoint","type":"address","internalType":"address"},{"name":"_delegate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"credit","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_srcEid","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"debit","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x60c06040523480156200001157600080fd5b5060405162002b0a38038062002b0a833981016040819052620000349162000195565b828282818181818181806001600160a01b0381166200006d57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000788162000128565b506001600160a01b038083166080528116620000a757604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000ef57600080fd5b505af115801562000104573d6000803e3d6000fd5b5050506001600160a01b0390991660a05250620001df9a5050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200019057600080fd5b919050565b600080600060608486031215620001ab57600080fd5b620001b68462000178565b9250620001c66020850162000178565b9150620001d66040850162000178565b90509250925092565b60805160a0516128c662000244600039600081816106570152818161109001526113c00152600081816103aa0152818161069d01528181610d6601528181610f920152818161123a0152818161158801528181611791015261184801526128c66000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063bd815db0116100a0578063d42438851161006f578063d4243885146105e8578063dcdfd91114610608578063f2fde38b14610628578063fc0c546a14610648578063ff7bd03d1461067b57600080fd5b8063bd815db014610575578063c6414e7b14610588578063ca5eb5e1146105b5578063d045a0dc146105d557600080fd5b8063b731ea0a116100dc578063b731ea0a146104da578063b98bd070146104fa578063bb0b6a531461051a578063bc70b3541461055557600080fd5b80638da5cb5b1461046b5780639f68b96414610489578063a72f5dd81461049d578063b21a33e4146104c557600080fd5b806352ae2879116101855780636fc1b31e116101545780636fc1b31e146103cc578063715018a6146103ec5780637d25a05e1461040157806382413eac1461043c57600080fd5b806352ae2879146103285780635535d4611461033b5780635a0dfe4d146103685780635e280f111461039857600080fd5b80631f5e1334116101c15780631f5e1334146102a057806321eb730b146102c85780633400288b146102e85780634dba701b1461030857600080fd5b8063111ecdad146101f357806313137d6514610230578063150b7a021461024557806317442b701461027e575b600080fd5b3480156101ff57600080fd5b50600454610213906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61024361023e366004611aeb565b61069b565b005b34801561025157600080fd5b50610265610260366004611c97565b61075b565b6040516001600160e01b03199091168152602001610227565b34801561028a57600080fd5b5060408051600181526002602082015201610227565b3480156102ac57600080fd5b506102b5600181565b60405161ffff9091168152602001610227565b6102db6102d6366004611d14565b61076c565b6040516102279190611d81565b3480156102f457600080fd5b50610243610303366004611ddc565b610847565b34801561031457600080fd5b50610243610323366004611e06565b61085d565b34801561033457600080fd5b5030610213565b34801561034757600080fd5b5061035b610356366004611e56565b61086d565b6040516102279190611ed9565b34801561037457600080fd5b50610388610383366004611ddc565b610912565b6040519015158152602001610227565b3480156103a457600080fd5b506102137f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d857600080fd5b506102436103e7366004611eec565b610931565b3480156103f857600080fd5b5061024361098e565b34801561040d57600080fd5b5061042461041c366004611ddc565b600092915050565b6040516001600160401b039091168152602001610227565b34801561044857600080fd5b50610388610457366004611f09565b6001600160a01b0381163014949350505050565b34801561047757600080fd5b506000546001600160a01b0316610213565b34801561049557600080fd5b506001610388565b3480156104a957600080fd5b50604080516311f0c6d360e11b81526001602082015201610227565b3480156104d157600080fd5b506102b5600281565b3480156104e657600080fd5b50600254610213906001600160a01b031681565b34801561050657600080fd5b50610243610515366004611fb3565b6109a2565b34801561052657600080fd5b50610547610535366004611ff4565b60016020526000908152604090205481565b604051908152602001610227565b34801561056157600080fd5b5061035b61057036600461200f565b6109bc565b610243610583366004611fb3565b610b64565b34801561059457600080fd5b506105a86105a336600461207d565b610cd7565b60405161022791906120ce565b3480156105c157600080fd5b506102436105d0366004611eec565b610d3f565b6102436105e3366004611aeb565b610dc5565b3480156105f457600080fd5b50610243610603366004611eec565b610df4565b34801561061457600080fd5b506102436106233660046120e5565b610e4a565b34801561063457600080fd5b50610243610643366004611eec565b610e55565b34801561065457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610213565b34801561068757600080fd5b50610388610696366004612108565b610e93565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146106eb576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061070590610700908a611ff4565b610ec9565b14610743576107176020880188611ff4565b60405163309afaf360e21b815263ffffffff9091166004820152602088013560248201526044016106e2565b61075287878787878787610f05565b50505050505050565b630a85bd0160e11b5b949350505050565b610774611a2f565b602084013561079657604051631e4ec46b60e01b815260040160405180910390fd5b6107b13360408601356107ac6020880188611ff4565b611064565b6000806107bd866110e9565b90925090506107e96107d26020880188611ff4565b83836107e3368a90038a018a612124565b88611207565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f61081e60208a018a611ff4565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b61084f611312565b610859828261133f565b5050565b610868838383611394565b505050565b60036020908152600092835260408084209091529082529020805461089190612156565b80601f01602080910402602001604051908101604052809291908181526020018280546108bd90612156565b801561090a5780601f106108df5761010080835404028352916020019161090a565b820191906000526020600020905b8154815290600101906020018083116108ed57829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610939611312565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610996611312565b6109a060006113ef565b565b6109aa611312565b6108596109b7828461218a565b61143f565b63ffffffff8416600090815260036020908152604080832061ffff871684529091528120805460609291906109f090612156565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1c90612156565b8015610a695780601f10610a3e57610100808354040283529160200191610a69565b820191906000526020600020905b815481529060010190602001808311610a4c57829003601f168201915b505050505090508051600003610ab95783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506107649350505050565b6000839003610ac9579050610764565b60028310610b4757610b1084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061154692505050565b80610b1e846002818861225f565b604051602001610b3093929190612289565b604051602081830303815290604052915050610764565b8383604051639a6d49cd60e01b81526004016106e29291906122da565b60005b81811015610c565736838383818110610b8257610b826122ee565b9050602002810190610b949190612304565b9050610bb0610ba66020830183611ff4565b6020830135610912565b610bba5750610c4e565b3063d045a0dc60c08301358360a0810135610bd9610100830183612325565b610bea610100890160e08a01611eec565b610bf86101208a018a612325565b6040518963ffffffff1660e01b8152600401610c1a9796959493929190612380565b6000604051808303818588803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b5050505050505b600101610b67565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610c95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cbd9190810190612406565b604051638351eea760e01b81526004016106e29190611ed9565b60408051808201909152600080825260208201526020830135610d0d57604051631e4ec46b60e01b815260040160405180910390fd5b600080610d19856110e9565b9092509050610d36610d2e6020870187611ff4565b838387611572565b95945050505050565b610d47611312565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610daa57600080fd5b505af1158015610dbe573d6000803e3d6000fd5b5050505050565b333014610de55760405163029a949d60e31b815260040160405180910390fd5b61075287878787878787610743565b610dfc611312565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610983565b610859338383611064565b610e5d611312565b6001600160a01b038116610e8757604051631e4fbdf760e01b8152600060048201526024016106e2565b610e90816113ef565b50565b6000602082018035906001908390610eab9086611ff4565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff81166000908152600160205260408120548061092b5760405163f6ff4fb760e01b815263ffffffff841660048201526024016106e2565b6000610f17610f14878761164a565b90565b90506000610f258787611669565b9050610f3e8282610f3960208d018d611ff4565b611394565b6040861115611002576000610f78610f5c60608c0160408d01612473565b610f6960208d018d611ff4565b610f738b8b611686565b6116d1565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290610fce9086908d906000908790600401612490565b600060405180830381600087803b158015610fe857600080fd5b505af1158015610ffc573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef561103b60208d018d611ff4565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6040516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064015b600060405180830381600087803b1580156110d557600080fd5b505af1158015610752573d6000803e3d6000fd5b6060806000611142602085013560408601356111086080880188612325565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061170092505050565b9093509050600081611155576001611158565b60025b905061117861116a6020870187611ff4565b826105706060890189612325565b6004549093506001600160a01b031615611200576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb916111bd9188918891016124c1565b602060405180830381865afa1580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fe91906124e6565b505b5050915091565b61120f611a2f565b600061121e8460000151611765565b60208501519091501561123857611238846020015161178d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016112888c610ec9565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016112c4929190612503565b60806040518083038185885af11580156112e2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061130791906125ac565b979650505050505050565b6000546001600160a01b031633146109a05760405163118cdaa760e01b81523360048201526024016106e2565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e906064016110bb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b815181101561151657611471828281518110611460576114606122ee565b602002602001015160400151611546565b818181518110611483576114836122ee565b602002602001015160400151600360008484815181106114a5576114a56122ee565b60200260200101516000015163ffffffff1663ffffffff16815260200190815260200160002060008484815181106114df576114df6122ee565b60200260200101516020015161ffff1661ffff168152602001908152602001600020908161150d9190612646565b50600101611442565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516109839190612705565b600281015161ffff81166003146108595781604051639a6d49cd60e01b81526004016106e29190611ed9565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016115d589610ec9565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161160a929190612503565b6040805180830381865afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d369190612790565b6000611659602082848661225f565b611662916127ac565b9392505050565b600061167960406020848661225f565b81019061166291906127ca565b6060611695826040818661225f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b60608383836040516020016116e8939291906127e3565b60405160208183030381529060405290509392505050565b805160609015158061173457604080516020810187905290810185905260600160405160208183030381529060405261175b565b8484338560405160200161174b949392919061282d565b6040516020818303038152906040525b9150935093915050565b6000813414611789576040516304fb820960e51b81523460048201526024016106e2565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118119190612861565b90506001600160a01b03811661183a576040516329b99a9560e11b815260040160405180910390fd5b6040805133602482018190527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03818116604485015260648085018890528551808603909101815260849094019094526020830180516001600160e01b03166323b872dd60e01b1790526108599385169286906118bf9085906118c5565b50505050565b60006118da6001600160a01b03841683611928565b905080516000141580156118ff5750808060200190518101906118fd91906124e6565b155b1561086857604051635274afe760e01b81526001600160a01b03841660048201526024016106e2565b60606116628383600084600080856001600160a01b0316848660405161194e919061287e565b60006040518083038185875af1925050503d806000811461198b576040519150601f19603f3d011682016040523d82523d6000602084013e611990565b606091505b50915091506119a08683836119aa565b9695505050505050565b6060826119bf576119ba82611a06565b611662565b81511580156119d657506001600160a01b0384163b155b156119ff57604051639996b31560e01b81526001600160a01b03851660048201526024016106e2565b5080611662565b805115611a165780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001611a71604051806040016040528060008152602001600081525090565b905290565b600060608284031215611a8857600080fd5b50919050565b60008083601f840112611aa057600080fd5b5081356001600160401b03811115611ab757600080fd5b602083019150836020828501011115611acf57600080fd5b9250929050565b6001600160a01b0381168114610e9057600080fd5b600080600080600080600060e0888a031215611b0657600080fd5b611b108989611a76565b96506060880135955060808801356001600160401b0380821115611b3357600080fd5b611b3f8b838c01611a8e565b909750955060a08a01359150611b5482611ad6565b90935060c08901359080821115611b6a57600080fd5b50611b778a828b01611a8e565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611bc257611bc2611b8a565b60405290565b604051606081016001600160401b0381118282101715611bc257611bc2611b8a565b604051601f8201601f191681016001600160401b0381118282101715611c1257611c12611b8a565b604052919050565b60006001600160401b03821115611c3357611c33611b8a565b50601f01601f191660200190565b600082601f830112611c5257600080fd5b8135611c65611c6082611c1a565b611bea565b818152846020838601011115611c7a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611cad57600080fd5b8435611cb881611ad6565b93506020850135611cc881611ad6565b92506040850135915060608501356001600160401b03811115611cea57600080fd5b611cf687828801611c41565b91505092959194509250565b600060c08284031215611a8857600080fd5b60008060008385036080811215611d2a57600080fd5b84356001600160401b03811115611d4057600080fd5b611d4c87828801611d02565b9450506040601f1982011215611d6157600080fd5b506020840191506060840135611d7681611ad6565b809150509250925092565b6000608082019050825182526001600160401b0360208401511660208301526040830151611dbc604084018280518252602090810151910152565b5092915050565b803563ffffffff81168114611dd757600080fd5b919050565b60008060408385031215611def57600080fd5b611df883611dc3565b946020939093013593505050565b600080600060608486031215611e1b57600080fd5b8335611e2681611ad6565b925060208401359150611e3b60408501611dc3565b90509250925092565b803561ffff81168114611dd757600080fd5b60008060408385031215611e6957600080fd5b611e7283611dc3565b9150611e8060208401611e44565b90509250929050565b60005b83811015611ea4578181015183820152602001611e8c565b50506000910152565b60008151808452611ec5816020860160208601611e89565b601f01601f19169290920160200192915050565b6020815260006116626020830184611ead565b600060208284031215611efe57600080fd5b813561166281611ad6565b60008060008060a08587031215611f1f57600080fd5b611f298686611a76565b935060608501356001600160401b03811115611f4457600080fd5b611f5087828801611a8e565b9094509250506080850135611f6481611ad6565b939692955090935050565b60008083601f840112611f8157600080fd5b5081356001600160401b03811115611f9857600080fd5b6020830191508360208260051b8501011115611acf57600080fd5b60008060208385031215611fc657600080fd5b82356001600160401b03811115611fdc57600080fd5b611fe885828601611f6f565b90969095509350505050565b60006020828403121561200657600080fd5b61166282611dc3565b6000806000806060858703121561202557600080fd5b61202e85611dc3565b935061203c60208601611e44565b925060408501356001600160401b0381111561205757600080fd5b61206387828801611a8e565b95989497509550505050565b8015158114610e9057600080fd5b6000806040838503121561209057600080fd5b82356001600160401b038111156120a657600080fd5b6120b285828601611d02565b92505060208301356120c38161206f565b809150509250929050565b81518152602080830151908201526040810161092b565b600080604083850312156120f857600080fd5b82359150611e8060208401611dc3565b60006060828403121561211a57600080fd5b6116628383611a76565b60006040828403121561213657600080fd5b61213e611ba0565b82358152602083013560208201528091505092915050565b600181811c9082168061216a57607f821691505b602082108103611a8857634e487b7160e01b600052602260045260246000fd5b60006001600160401b03808411156121a4576121a4611b8a565b8360051b60206121b5818301611bea565b8681529185019181810190368411156121cd57600080fd5b865b84811015612253578035868111156121e75760008081fd5b880160603682900312156121fb5760008081fd5b612203611bc8565b61220c82611dc3565b8152612219868301611e44565b86820152604080830135898111156122315760008081fd5b61223d36828601611c41565b91830191909152508452509183019183016121cf565b50979650505050505050565b6000808585111561226f57600080fd5b8386111561227c57600080fd5b5050820193919092039150565b6000845161229b818460208901611e89565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006107646020830184866122b1565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1983360301811261231b57600080fd5b9190910192915050565b6000808335601e1984360301811261233c57600080fd5b8301803591506001600160401b0382111561235657600080fd5b602001915036819003821315611acf57600080fd5b6001600160401b0381168114610e9057600080fd5b63ffffffff61238e89611dc3565b16815260208801356020820152600060408901356123ab8161236b565b6001600160401b03811660408401525087606083015260e060808301526123d660e0830187896122b1565b6001600160a01b03861660a084015282810360c08401526123f88185876122b1565b9a9950505050505050505050565b60006020828403121561241857600080fd5b81516001600160401b0381111561242e57600080fd5b8201601f8101841361243f57600080fd5b805161244d611c6082611c1a565b81815285602083850101111561246257600080fd5b610d36826020830160208601611e89565b60006020828403121561248557600080fd5b81356116628161236b565b60018060a01b038516815283602082015261ffff831660408201526080606082015260006119a06080830184611ead565b6040815260006124d46040830185611ead565b8281036020840152610d368185611ead565b6000602082840312156124f857600080fd5b81516116628161206f565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261253960e0840182611ead565b90506060850151603f198483030160a08501526125568282611ead565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561258e57600080fd5b612596611ba0565b9050815181526020820151602082015292915050565b6000608082840312156125be57600080fd5b6125c6611bc8565b8251815260208301516125d88161236b565b60208201526125ea846040850161257c565b60408201529392505050565b601f821115610868576000816000526020600020601f850160051c8101602086101561261f5750805b601f850160051c820191505b8181101561263e5782815560010161262b565b505050505050565b81516001600160401b0381111561265f5761265f611b8a565b6126738161266d8454612156565b846125f6565b602080601f8311600181146126a857600084156126905750858301515b600019600386901b1c1916600185901b17855561263e565b600085815260208120601f198616915b828110156126d7578886015182559484019460019091019084016126b8565b50858210156126f55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561278257888303603f190185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261276e81860183611ead565b96890196945050509086019060010161272e565b509098975050505050505050565b6000604082840312156127a257600080fd5b611662838361257c565b8035602083101561092b57600019602084900360031b1b1692915050565b6000602082840312156127dc57600080fd5b5035919050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061281e81600c850160208701611e89565b91909101600c01949350505050565b84815283602082015282604082015260008251612851816060850160208701611e89565b9190910160600195945050505050565b60006020828403121561287357600080fd5b815161166281611ad6565b6000825161231b818460208701611e8956fea26469706673582212207d3ba4a090246cc8a8a9c26a856c9f74e618e1fa27f15b2af2299f3e283fae1764736f6c63430008160033","sourceMap":"149:441:143:-:0;;;201:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;314:6;322:11;335:9;322:11;335:9;322:11;335:9;322:11;335:9;;-1:-1:-1;;;;;1273:26:105;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:105;;1350:1;1322:31;;;725:51:145;698:18;;1322:31:105;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:33;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:33;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:33;;-1:-1:-1;;;;;743:32:145;;;1163:31:33;;;725:51:145;1163:20:33;;;;;;698:18:145;;1163:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;924:28:7;;::::1;;::::0;-1:-1:-1;149:441:143;;-1:-1:-1;;;;;;;;;;;149:441:143;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:177:145:-;93:13;;-1:-1:-1;;;;;135:31:145;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:378::-;284:6;292;300;353:2;341:9;332:7;328:23;324:32;321:52;;;369:1;366;359:12;321:52;392:40;422:9;392:40;:::i;:::-;382:50;;451:49;496:2;485:9;481:18;451:49;:::i;:::-;441:59;;519:49;564:2;553:9;549:18;519:49;:::i;:::-;509:59;;196:378;;;;;:::o;579:203::-;149:441:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063bd815db0116100a0578063d42438851161006f578063d4243885146105e8578063dcdfd91114610608578063f2fde38b14610628578063fc0c546a14610648578063ff7bd03d1461067b57600080fd5b8063bd815db014610575578063c6414e7b14610588578063ca5eb5e1146105b5578063d045a0dc146105d557600080fd5b8063b731ea0a116100dc578063b731ea0a146104da578063b98bd070146104fa578063bb0b6a531461051a578063bc70b3541461055557600080fd5b80638da5cb5b1461046b5780639f68b96414610489578063a72f5dd81461049d578063b21a33e4146104c557600080fd5b806352ae2879116101855780636fc1b31e116101545780636fc1b31e146103cc578063715018a6146103ec5780637d25a05e1461040157806382413eac1461043c57600080fd5b806352ae2879146103285780635535d4611461033b5780635a0dfe4d146103685780635e280f111461039857600080fd5b80631f5e1334116101c15780631f5e1334146102a057806321eb730b146102c85780633400288b146102e85780634dba701b1461030857600080fd5b8063111ecdad146101f357806313137d6514610230578063150b7a021461024557806317442b701461027e575b600080fd5b3480156101ff57600080fd5b50600454610213906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61024361023e366004611aeb565b61069b565b005b34801561025157600080fd5b50610265610260366004611c97565b61075b565b6040516001600160e01b03199091168152602001610227565b34801561028a57600080fd5b5060408051600181526002602082015201610227565b3480156102ac57600080fd5b506102b5600181565b60405161ffff9091168152602001610227565b6102db6102d6366004611d14565b61076c565b6040516102279190611d81565b3480156102f457600080fd5b50610243610303366004611ddc565b610847565b34801561031457600080fd5b50610243610323366004611e06565b61085d565b34801561033457600080fd5b5030610213565b34801561034757600080fd5b5061035b610356366004611e56565b61086d565b6040516102279190611ed9565b34801561037457600080fd5b50610388610383366004611ddc565b610912565b6040519015158152602001610227565b3480156103a457600080fd5b506102137f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d857600080fd5b506102436103e7366004611eec565b610931565b3480156103f857600080fd5b5061024361098e565b34801561040d57600080fd5b5061042461041c366004611ddc565b600092915050565b6040516001600160401b039091168152602001610227565b34801561044857600080fd5b50610388610457366004611f09565b6001600160a01b0381163014949350505050565b34801561047757600080fd5b506000546001600160a01b0316610213565b34801561049557600080fd5b506001610388565b3480156104a957600080fd5b50604080516311f0c6d360e11b81526001602082015201610227565b3480156104d157600080fd5b506102b5600281565b3480156104e657600080fd5b50600254610213906001600160a01b031681565b34801561050657600080fd5b50610243610515366004611fb3565b6109a2565b34801561052657600080fd5b50610547610535366004611ff4565b60016020526000908152604090205481565b604051908152602001610227565b34801561056157600080fd5b5061035b61057036600461200f565b6109bc565b610243610583366004611fb3565b610b64565b34801561059457600080fd5b506105a86105a336600461207d565b610cd7565b60405161022791906120ce565b3480156105c157600080fd5b506102436105d0366004611eec565b610d3f565b6102436105e3366004611aeb565b610dc5565b3480156105f457600080fd5b50610243610603366004611eec565b610df4565b34801561061457600080fd5b506102436106233660046120e5565b610e4a565b34801561063457600080fd5b50610243610643366004611eec565b610e55565b34801561065457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610213565b34801561068757600080fd5b50610388610696366004612108565b610e93565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146106eb576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061070590610700908a611ff4565b610ec9565b14610743576107176020880188611ff4565b60405163309afaf360e21b815263ffffffff9091166004820152602088013560248201526044016106e2565b61075287878787878787610f05565b50505050505050565b630a85bd0160e11b5b949350505050565b610774611a2f565b602084013561079657604051631e4ec46b60e01b815260040160405180910390fd5b6107b13360408601356107ac6020880188611ff4565b611064565b6000806107bd866110e9565b90925090506107e96107d26020880188611ff4565b83836107e3368a90038a018a612124565b88611207565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f61081e60208a018a611ff4565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b61084f611312565b610859828261133f565b5050565b610868838383611394565b505050565b60036020908152600092835260408084209091529082529020805461089190612156565b80601f01602080910402602001604051908101604052809291908181526020018280546108bd90612156565b801561090a5780601f106108df5761010080835404028352916020019161090a565b820191906000526020600020905b8154815290600101906020018083116108ed57829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610939611312565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610996611312565b6109a060006113ef565b565b6109aa611312565b6108596109b7828461218a565b61143f565b63ffffffff8416600090815260036020908152604080832061ffff871684529091528120805460609291906109f090612156565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1c90612156565b8015610a695780601f10610a3e57610100808354040283529160200191610a69565b820191906000526020600020905b815481529060010190602001808311610a4c57829003601f168201915b505050505090508051600003610ab95783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506107649350505050565b6000839003610ac9579050610764565b60028310610b4757610b1084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061154692505050565b80610b1e846002818861225f565b604051602001610b3093929190612289565b604051602081830303815290604052915050610764565b8383604051639a6d49cd60e01b81526004016106e29291906122da565b60005b81811015610c565736838383818110610b8257610b826122ee565b9050602002810190610b949190612304565b9050610bb0610ba66020830183611ff4565b6020830135610912565b610bba5750610c4e565b3063d045a0dc60c08301358360a0810135610bd9610100830183612325565b610bea610100890160e08a01611eec565b610bf86101208a018a612325565b6040518963ffffffff1660e01b8152600401610c1a9796959493929190612380565b6000604051808303818588803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b5050505050505b600101610b67565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610c95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cbd9190810190612406565b604051638351eea760e01b81526004016106e29190611ed9565b60408051808201909152600080825260208201526020830135610d0d57604051631e4ec46b60e01b815260040160405180910390fd5b600080610d19856110e9565b9092509050610d36610d2e6020870187611ff4565b838387611572565b95945050505050565b610d47611312565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610daa57600080fd5b505af1158015610dbe573d6000803e3d6000fd5b5050505050565b333014610de55760405163029a949d60e31b815260040160405180910390fd5b61075287878787878787610743565b610dfc611312565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610983565b610859338383611064565b610e5d611312565b6001600160a01b038116610e8757604051631e4fbdf760e01b8152600060048201526024016106e2565b610e90816113ef565b50565b6000602082018035906001908390610eab9086611ff4565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff81166000908152600160205260408120548061092b5760405163f6ff4fb760e01b815263ffffffff841660048201526024016106e2565b6000610f17610f14878761164a565b90565b90506000610f258787611669565b9050610f3e8282610f3960208d018d611ff4565b611394565b6040861115611002576000610f78610f5c60608c0160408d01612473565b610f6960208d018d611ff4565b610f738b8b611686565b6116d1565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290610fce9086908d906000908790600401612490565b600060405180830381600087803b158015610fe857600080fd5b505af1158015610ffc573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef561103b60208d018d611ff4565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6040516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064015b600060405180830381600087803b1580156110d557600080fd5b505af1158015610752573d6000803e3d6000fd5b6060806000611142602085013560408601356111086080880188612325565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061170092505050565b9093509050600081611155576001611158565b60025b905061117861116a6020870187611ff4565b826105706060890189612325565b6004549093506001600160a01b031615611200576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb916111bd9188918891016124c1565b602060405180830381865afa1580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fe91906124e6565b505b5050915091565b61120f611a2f565b600061121e8460000151611765565b60208501519091501561123857611238846020015161178d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016112888c610ec9565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016112c4929190612503565b60806040518083038185885af11580156112e2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061130791906125ac565b979650505050505050565b6000546001600160a01b031633146109a05760405163118cdaa760e01b81523360048201526024016106e2565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b604051632142170760e11b81523060048201526001600160a01b038481166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e906064016110bb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b815181101561151657611471828281518110611460576114606122ee565b602002602001015160400151611546565b818181518110611483576114836122ee565b602002602001015160400151600360008484815181106114a5576114a56122ee565b60200260200101516000015163ffffffff1663ffffffff16815260200190815260200160002060008484815181106114df576114df6122ee565b60200260200101516020015161ffff1661ffff168152602001908152602001600020908161150d9190612646565b50600101611442565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516109839190612705565b600281015161ffff81166003146108595781604051639a6d49cd60e01b81526004016106e29190611ed9565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016115d589610ec9565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161160a929190612503565b6040805180830381865afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d369190612790565b6000611659602082848661225f565b611662916127ac565b9392505050565b600061167960406020848661225f565b81019061166291906127ca565b6060611695826040818661225f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b60608383836040516020016116e8939291906127e3565b60405160208183030381529060405290509392505050565b805160609015158061173457604080516020810187905290810185905260600160405160208183030381529060405261175b565b8484338560405160200161174b949392919061282d565b6040516020818303038152906040525b9150935093915050565b6000813414611789576040516304fb820960e51b81523460048201526024016106e2565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118119190612861565b90506001600160a01b03811661183a576040516329b99a9560e11b815260040160405180910390fd5b6040805133602482018190527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03818116604485015260648085018890528551808603909101815260849094019094526020830180516001600160e01b03166323b872dd60e01b1790526108599385169286906118bf9085906118c5565b50505050565b60006118da6001600160a01b03841683611928565b905080516000141580156118ff5750808060200190518101906118fd91906124e6565b155b1561086857604051635274afe760e01b81526001600160a01b03841660048201526024016106e2565b60606116628383600084600080856001600160a01b0316848660405161194e919061287e565b60006040518083038185875af1925050503d806000811461198b576040519150601f19603f3d011682016040523d82523d6000602084013e611990565b606091505b50915091506119a08683836119aa565b9695505050505050565b6060826119bf576119ba82611a06565b611662565b81511580156119d657506001600160a01b0384163b155b156119ff57604051639996b31560e01b81526001600160a01b03851660048201526024016106e2565b5080611662565b805115611a165780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001611a71604051806040016040528060008152602001600081525090565b905290565b600060608284031215611a8857600080fd5b50919050565b60008083601f840112611aa057600080fd5b5081356001600160401b03811115611ab757600080fd5b602083019150836020828501011115611acf57600080fd5b9250929050565b6001600160a01b0381168114610e9057600080fd5b600080600080600080600060e0888a031215611b0657600080fd5b611b108989611a76565b96506060880135955060808801356001600160401b0380821115611b3357600080fd5b611b3f8b838c01611a8e565b909750955060a08a01359150611b5482611ad6565b90935060c08901359080821115611b6a57600080fd5b50611b778a828b01611a8e565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611bc257611bc2611b8a565b60405290565b604051606081016001600160401b0381118282101715611bc257611bc2611b8a565b604051601f8201601f191681016001600160401b0381118282101715611c1257611c12611b8a565b604052919050565b60006001600160401b03821115611c3357611c33611b8a565b50601f01601f191660200190565b600082601f830112611c5257600080fd5b8135611c65611c6082611c1a565b611bea565b818152846020838601011115611c7a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611cad57600080fd5b8435611cb881611ad6565b93506020850135611cc881611ad6565b92506040850135915060608501356001600160401b03811115611cea57600080fd5b611cf687828801611c41565b91505092959194509250565b600060c08284031215611a8857600080fd5b60008060008385036080811215611d2a57600080fd5b84356001600160401b03811115611d4057600080fd5b611d4c87828801611d02565b9450506040601f1982011215611d6157600080fd5b506020840191506060840135611d7681611ad6565b809150509250925092565b6000608082019050825182526001600160401b0360208401511660208301526040830151611dbc604084018280518252602090810151910152565b5092915050565b803563ffffffff81168114611dd757600080fd5b919050565b60008060408385031215611def57600080fd5b611df883611dc3565b946020939093013593505050565b600080600060608486031215611e1b57600080fd5b8335611e2681611ad6565b925060208401359150611e3b60408501611dc3565b90509250925092565b803561ffff81168114611dd757600080fd5b60008060408385031215611e6957600080fd5b611e7283611dc3565b9150611e8060208401611e44565b90509250929050565b60005b83811015611ea4578181015183820152602001611e8c565b50506000910152565b60008151808452611ec5816020860160208601611e89565b601f01601f19169290920160200192915050565b6020815260006116626020830184611ead565b600060208284031215611efe57600080fd5b813561166281611ad6565b60008060008060a08587031215611f1f57600080fd5b611f298686611a76565b935060608501356001600160401b03811115611f4457600080fd5b611f5087828801611a8e565b9094509250506080850135611f6481611ad6565b939692955090935050565b60008083601f840112611f8157600080fd5b5081356001600160401b03811115611f9857600080fd5b6020830191508360208260051b8501011115611acf57600080fd5b60008060208385031215611fc657600080fd5b82356001600160401b03811115611fdc57600080fd5b611fe885828601611f6f565b90969095509350505050565b60006020828403121561200657600080fd5b61166282611dc3565b6000806000806060858703121561202557600080fd5b61202e85611dc3565b935061203c60208601611e44565b925060408501356001600160401b0381111561205757600080fd5b61206387828801611a8e565b95989497509550505050565b8015158114610e9057600080fd5b6000806040838503121561209057600080fd5b82356001600160401b038111156120a657600080fd5b6120b285828601611d02565b92505060208301356120c38161206f565b809150509250929050565b81518152602080830151908201526040810161092b565b600080604083850312156120f857600080fd5b82359150611e8060208401611dc3565b60006060828403121561211a57600080fd5b6116628383611a76565b60006040828403121561213657600080fd5b61213e611ba0565b82358152602083013560208201528091505092915050565b600181811c9082168061216a57607f821691505b602082108103611a8857634e487b7160e01b600052602260045260246000fd5b60006001600160401b03808411156121a4576121a4611b8a565b8360051b60206121b5818301611bea565b8681529185019181810190368411156121cd57600080fd5b865b84811015612253578035868111156121e75760008081fd5b880160603682900312156121fb5760008081fd5b612203611bc8565b61220c82611dc3565b8152612219868301611e44565b86820152604080830135898111156122315760008081fd5b61223d36828601611c41565b91830191909152508452509183019183016121cf565b50979650505050505050565b6000808585111561226f57600080fd5b8386111561227c57600080fd5b5050820193919092039150565b6000845161229b818460208901611e89565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006107646020830184866122b1565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1983360301811261231b57600080fd5b9190910192915050565b6000808335601e1984360301811261233c57600080fd5b8301803591506001600160401b0382111561235657600080fd5b602001915036819003821315611acf57600080fd5b6001600160401b0381168114610e9057600080fd5b63ffffffff61238e89611dc3565b16815260208801356020820152600060408901356123ab8161236b565b6001600160401b03811660408401525087606083015260e060808301526123d660e0830187896122b1565b6001600160a01b03861660a084015282810360c08401526123f88185876122b1565b9a9950505050505050505050565b60006020828403121561241857600080fd5b81516001600160401b0381111561242e57600080fd5b8201601f8101841361243f57600080fd5b805161244d611c6082611c1a565b81815285602083850101111561246257600080fd5b610d36826020830160208601611e89565b60006020828403121561248557600080fd5b81356116628161236b565b60018060a01b038516815283602082015261ffff831660408201526080606082015260006119a06080830184611ead565b6040815260006124d46040830185611ead565b8281036020840152610d368185611ead565b6000602082840312156124f857600080fd5b81516116628161206f565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261253960e0840182611ead565b90506060850151603f198483030160a08501526125568282611ead565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561258e57600080fd5b612596611ba0565b9050815181526020820151602082015292915050565b6000608082840312156125be57600080fd5b6125c6611bc8565b8251815260208301516125d88161236b565b60208201526125ea846040850161257c565b60408201529392505050565b601f821115610868576000816000526020600020601f850160051c8101602086101561261f5750805b601f850160051c820191505b8181101561263e5782815560010161262b565b505050505050565b81516001600160401b0381111561265f5761265f611b8a565b6126738161266d8454612156565b846125f6565b602080601f8311600181146126a857600084156126905750858301515b600019600386901b1c1916600185901b17855561263e565b600085815260208120601f198616915b828110156126d7578886015182559484019460019091019084016126b8565b50858210156126f55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561278257888303603f190185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261276e81860183611ead565b96890196945050509086019060010161272e565b509098975050505050505050565b6000604082840312156127a257600080fd5b611662838361257c565b8035602083101561092b57600019602084900360031b1b1692915050565b6000602082840312156127dc57600080fd5b5035919050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061281e81600c850160208701611e89565b91909101600c01949350505050565b84815283602082015282604082015260008251612851816060850160208701611e89565b9190910160600195945050505050565b60006020828403121561287357600080fd5b815161166281611ad6565b6000825161231b818460208701611e8956fea26469706673582212207d3ba4a090246cc8a8a9c26a856c9f74e618e1fa27f15b2af2299f3e283fae1764736f6c63430008160033","sourceMap":"149:441:143:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1705:27:8;;;;;;;;;;-1:-1:-1;1705:27:8;;;;-1:-1:-1;;;;;1705:27:8;;;;;;-1:-1:-1;;;;;178:32:145;;;160:51;;148:2;133:18;1705:27:8;;;;;;;;4368:708:34;;;;;;:::i;:::-;;:::i;:::-;;2021:170:7;;;;;;;;;;-1:-1:-1;2021:170:7;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;4338:33:145;;;4320:52;;4308:2;4293:18;2021:170:7;4176:202:145;1287:235:32;;;;;;;;;;-1:-1:-1;1287:235:32;;;843:1:35;4590:34:145;;678:1:34;4655:2:145;4640:18;;4633:43;4526:18;1287:235:32;4383:299:145;1539:31:8;;;;;;;;;;;;1569:1;1539:31;;;;;4861:6:145;4849:19;;;4831:38;;4819:2;4804:18;1539:31:8;4687:188:145;3051:701:8;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1724:108:33:-;;;;;;;;;;-1:-1:-1;1724:108:33;;;;;:::i;:::-;;:::i;470:118:143:-;;;;;;;;;;-1:-1:-1;470:118:143;;;;;:::i;:::-;;:::i;875:93:43:-;;;;;;;;;;-1:-1:-1;956:4:43;875:93;;538::41;;;;;;;;;;-1:-1:-1;538:93:41;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7452:132:8:-;;;;;;;;;;-1:-1:-1;7452:132:8;;;;;:::i;:::-;;:::i;:::-;;;8496:14:145;;8489:22;8471:41;;8459:2;8444:18;7452:132:8;8331:187:145;446:46:33;;;;;;;;;;;;;;;7916:163:8;;;;;;;;;;-1:-1:-1;7916:163:8;;;;;:::i;:::-;;:::i;2293:101:105:-;;;;;;;;;;;;;:::i;3507:128:34:-;;;;;;;;;;-1:-1:-1;3507:128:34;;;;;:::i;:::-;3596:12;3507:128;;;;;;;;-1:-1:-1;;;;;9175:31:145;;;9157:50;;9145:2;9130:18;3507:128:34;9013:200:145;2013:216:34;;;;;;;;;;-1:-1:-1;2013:216:34;;;;;:::i;:::-;-1:-1:-1;;;;;2198:24:34;;2217:4;2198:24;2013:216;;;;;;;1638:85:105;;;;;;;;;;-1:-1:-1;1684:7:105;1710:6;-1:-1:-1;;;;;1710:6:105;1638:85;;1445:93:7;;;;;;;;;;-1:-1:-1;1527:4:7;1445:93;;2506:145:8;;;;;;;;;;-1:-1:-1;2506:145:8;;;-1:-1:-1;;;10063:52:145;;2642:1:8;10146:2:145;10131:18;;10124:59;10036:18;2506:145:8;9893:296:145;1576:43:8;;;;;;;;;;;;1618:1;1576:43;;559:23:43;;;;;;;;;;-1:-1:-1;559:23:43;;;;-1:-1:-1;;;;;559:23:43;;;1391:156:41;;;;;;;;;;-1:-1:-1;1391:156:41;;;;;:::i;:::-;;:::i;569:48:33:-;;;;;;;;;;-1:-1:-1;569:48:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11438:25:145;;;11426:2;11411:18;569:48:33;11292:177:145;3510:981:41;;;;;;;;;;-1:-1:-1;3510:981:41;;;;;:::i;:::-;;:::i;1698:1333:43:-;;;;;;:::i;:::-;;:::i;2657:388:8:-;;;;;;;;;;-1:-1:-1;2657:388:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3252:105:33:-;;;;;;;;;;-1:-1:-1;3252:105:33;;;;;:::i;:::-;;:::i;3679:409:43:-;;;;;;:::i;:::-;;:::i;1100:139::-;;;;;;;;;;-1:-1:-1;1100:139:43;;;;;:::i;:::-;;:::i;354:110:143:-;;;;;;;;;;-1:-1:-1;354:110:143;;;;;:::i;:::-;;:::i;2543:215:105:-;;;;;;;;;;-1:-1:-1;2543:215:105;;;;;:::i;:::-;;:::i;1068:92:7:-;;;;;;;;;;-1:-1:-1;1142:10:7;1068:92;;2771:149:34;;;;;;;;;;-1:-1:-1;2771:149:34;;;;;:::i;:::-;;:::i;4368:708::-;4681:8;-1:-1:-1;;;;;4673:31:34;4694:10;4673:31;4669:68;;4713:24;;-1:-1:-1;;;4713:24:34;;4726:10;4713:24;;;160:51:145;133:18;;4713:24:34;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;-1:-1:-1;;;4896:40:34;;14118:10:145;14106:23;;;4896:40:34;;;14088:42:145;4921:14:34;;;;14146:18:145;;;14139:34;14061:18;;4896:40:34;13916:263:145;4833:103:34;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;2021:170:7:-;-1:-1:-1;;;2021:170:7;;;;;;;:::o;3051:701:8:-;3212:34;;:::i;:::-;3262:13;;;;3258:57;;3298:17;;-1:-1:-1;;;3298:17:8;;;;;;;;;;;3258:57;3325;3332:10;3344:18;;;;3364:17;;;;3344:10;3364:17;:::i;:::-;3325:6;:57::i;:::-;3394:20;3416;3440:31;3460:10;3440:19;:31::i;:::-;3393:78;;-1:-1:-1;3393:78:8;-1:-1:-1;3588:66:8;3596:17;;;;:10;:17;:::i;:::-;3615:7;3624;3588:66;;;;;;;3633:4;3588:66;:::i;:::-;3639:14;3588:7;:66::i;:::-;3678:15;;3575:79;;-1:-1:-1;3714:10:8;;3669:76;3695:17;;;;:10;:17;:::i;:::-;3726:18;3669:76;;14118:10:145;14106:23;;;14088:42;;3726:18:8;;;;14161:2:145;14146:18;;14139:34;14061:18;3669:76:8;;;;;;;3248:504;;3051:701;;;;;:::o;1724:108:33:-;1531:13:105;:11;:13::i;:::-;1804:21:33::1;1813:4;1819:5;1804:8;:21::i;:::-;1724:108:::0;;:::o;470:118:143:-;550:31;558:3;563:8;573:7;550;:31::i;:::-;470:118;;;:::o;538:93:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7452:132:8:-;7557:11;;;7534:4;7557:11;;;:5;:11;;;;;;:20;;7452:132;;;;;:::o;7916:163::-;1531:13:105;:11;:13::i;:::-;7999:12:8::1;:28:::0;;-1:-1:-1;;;;;;7999:28:8::1;-1:-1:-1::0;;;;;7999:28:8;::::1;::::0;;::::1;::::0;;;8042:30:::1;::::0;160:51:145;;;8042:30:8::1;::::0;148:2:145;133:18;8042:30:8::1;;;;;;;;7916:163:::0;:::o;2293:101:105:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1391:156:41:-;1531:13:105;:11;:13::i;:::-;1503:37:41::1;;1523:16:::0;;1503:37:::1;:::i;:::-;:19;:37::i;3510:981::-:0;3701:21;;;3677;3701;;;:15;:21;;;;;;;;:31;;;;;;;;;;3677:55;;3653:12;;3677:21;3701:31;3677:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:8;:15;3880:1;3861:20;3857:46;;3890:13;;3883:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:20:41;;-1:-1:-1;3883:20:41;;-1:-1:-1;;;;3883:20:41;3857:46;3988:1;3964:25;;;3960:46;;3998:8;-1:-1:-1;3991:15:41;;3960:46;4153:1;4129:25;;4125:267;;4170:34;4190:13;;4170:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4170:19:41;;-1:-1:-1;;;4170:34:41:i;:::-;4353:8;4363:17;:13;4377:1;4363:13;;:17;:::i;:::-;4340:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:48;;;;;4125:267;4470:13;;4455:29;;-1:-1:-1;;;4455:29:41;;;;;;;;;:::i;1698:1333:43:-;1799:9;1794:1037;1814:19;;;1794:1037;;;1854:29;1886:8;;1895:1;1886:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1854:43;-1:-1:-1;1980:50:43;1987:20;;;;1854:43;1987:20;:::i;:::-;2009;;;;1980:6;:50::i;:::-;1975:65;;2032:8;;;1975:65;2602:4;:22;2633:12;;;;:6;2696:11;;;;2725:14;;;;2633:6;2725:14;:::i;:::-;2757:15;;;;;;;;:::i;:::-;2790:16;;;;:6;:16;:::i;:::-;2602:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:991;1794:1037;1835:3;;1794:1037;;;;2988:10;-1:-1:-1;;;;;2978:43:43;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2978:45:43;;;;;;;;;;;;:::i;:::-;2961:63;;-1:-1:-1;;;2961:63:43;;;;;;;;:::i;2657:388:8:-;-1:-1:-1;;;;;;;;;;;;;;;;;2822:13:8;;;;2818:57;;2858:17;;-1:-1:-1;;;2858:17:8;;;;;;;;;;;2818:57;2886:20;2908;2932:31;2952:10;2932:19;:31::i;:::-;2885:78;;-1:-1:-1;2885:78:8;-1:-1:-1;2980:58:8;2987:17;;;;:10;:17;:::i;:::-;3006:7;3015;3024:13;2980:6;:58::i;:::-;2973:65;2657:388;-1:-1:-1;;;;;2657:388:8:o;3252:105:33:-;1531:13:105;:11;:13::i;:::-;3319:31:33::1;::::0;-1:-1:-1;;;3319:31:33;;-1:-1:-1;;;;;178:32:145;;;3319:31:33::1;::::0;::::1;160:51:145::0;3319:8:33::1;:20;::::0;::::1;::::0;133:18:145;;3319:31:33::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;3679:409:43:-;3958:10;3980:4;3958:27;3954:50;;3994:10;;-1:-1:-1;;;3994:10:43;;;;;;;;;;;3954:50;4014:67;4033:7;4042:5;4049:8;;4059:9;4070:10;;4014:18;:67::i;1100:139::-;1531:13:105;:11;:13::i;:::-;1175:8:43::1;:20:::0;;-1:-1:-1;;;;;;1175:20:43::1;-1:-1:-1::0;;;;;1175:20:43;::::1;::::0;;::::1;::::0;;;1210:22:::1;::::0;160:51:145;;;1210:22:43::1;::::0;148:2:145;133:18;1210:22:43::1;14:203:145::0;354:110:143;420:37;427:10;439:8;449:7;420:6;:37::i;2543:215:105:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:105;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:105;;2700:1:::1;2672:31;::::0;::::1;160:51:145::0;133:18;;2672:31:105::1;14:203:145::0;2623:91:105::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2771:149:34:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:34;;:37;;2771:149;-1:-1:-1;;2771:149:34:o;2718:196:33:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;-1:-1:-1;;;2874:12:33;;21058:10:145;21046:23;;2874:12:33;;;21028:42:145;21001:18;;2874:12:33;20884:192:145;5264:817:8;5577:17;5597:36;:17;:8;;:15;:17::i;:::-;2954:2:10;2824:142;5597:36:8;5577:56;;5643:15;5661:18;:8;;:16;:18::i;:::-;5643:36;-1:-1:-1;5690:43:8;5698:9;5643:36;5718:14;;;;:7;:14;:::i;:::-;5690:7;:43::i;:::-;279:2:10;-1:-1:-1;;5744:260:8;;;5785:23;5811:80;5838:13;;;;;;;;:::i;:::-;5853:14;;;;:7;:14;:::i;:::-;5869:21;:8;;:19;:21::i;:::-;5811:26;:80::i;:::-;5905:88;;-1:-1:-1;;;5905:88:8;;5785:106;;-1:-1:-1;;;;;;5905:8:8;:20;;;;:88;;5926:9;;5937:5;;5944:1;;5785:106;;5905:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:233;5744:260;-1:-1:-1;;;;;6019:55:8;;6032:5;6019:55;6039:14;;;;:7;:14;:::i;:::-;6019:55;;;14118:10:145;14106:23;;;14088:42;;14161:2;14146:18;;14139:34;;;14061:18;6019:55:8;;;;;;;5567:514;;5264:817;;;;;;;:::o;1544:283:7:-;1765:55;;-1:-1:-1;;;1765:55:7;;-1:-1:-1;;;;;22072:15:145;;;1765:55:7;;;22054:34:145;1804:4:7;22104:18:145;;;22097:43;22156:18;;;22149:34;;;1765:10:7;:23;;;;21989:18:145;;1765:55:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3980:773:8;4085:20;;4139:15;4188:80;4211:13;;;;4226:18;;;;4246:21;;;;4211:10;4246:21;:::i;:::-;4188:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4188:22:8;;-1:-1:-1;;;4188:80:8:i;:::-;4164:104;;-1:-1:-1;4164:104:8;-1:-1:-1;4278:14:8;4164:104;4295:36;;1569:1;4295:36;;;1618:1;4295:36;4278:53;-1:-1:-1;4352:67:8;4367:17;;;;:10;:17;:::i;:::-;4386:7;4395:23;;;;:10;:23;:::i;4352:67::-;4661:12;;4342:77;;-1:-1:-1;;;;;;4661:12:8;:26;4657:89;;4707:12;;;4689:57;;-1:-1:-1;;;4689:57:8;;-1:-1:-1;;;;;4707:12:8;;;;4689:39;;:57;;4729:7;;4738;;4689:57;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4657:89;4129:624;;3980:773;;;:::o;3188:766:35:-;3389:31;;:::i;:::-;3554:20;3577:26;3588:4;:14;;;3577:10;:26::i;:::-;3617:15;;;;3554:49;;-1:-1:-1;3617:19:35;3613:53;;3638:28;3650:4;:15;;;3638:11;:28::i;:::-;3755:8;-1:-1:-1;;;;;3755:13:35;;3777:12;3809:92;;;;;;;;3825:7;3809:92;;;;;;3834:25;3851:7;3834:16;:25::i;:::-;3809:92;;;;3861:8;3809:92;;;;3871:8;3809:92;;;;3899:1;3881:4;:15;;;:19;3809:92;;;;;3919:14;3755:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3677:270;3188:766;-1:-1:-1;;;;;;;3188:766:35:o;1796:162:105:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:105;735:10:120;1855:23:105;1851:101;;1901:40;;-1:-1:-1;;;1901:40:105;;735:10:120;1901:40:105;;;160:51:145;133:18;;1901:40:105;14:203:145;2286:134:33;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;14088:42:145;;;14146:18;;14139:34;;;2393:20:33;;14061:18:145;2393:20:33;;;;;;;2286:134;;:::o;1833:182:7:-;1944:64;;-1:-1:-1;;;1944:64:7;;1980:4;1944:64;;;22054:34:145;-1:-1:-1;;;;;22124:15:145;;;22104:18;;;22097:43;22156:18;;;22149:34;;;1944:10:7;:27;;;;21989:18:145;;1944:64:7;21814:375:145;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;2237:514:41:-;2345:9;2340:354;2364:16;:23;2360:1;:27;2340:354;;;2522:48;2542:16;2559:1;2542:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2522:19;:48::i;:::-;2656:16;2673:1;2656:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:15;:40;2600:16;2617:1;2600:19;;;;;;;;:::i;:::-;;;;;;;:23;;;2584:40;;;;;;;;;;;;;;;:69;2625:16;2642:1;2625:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:69;;;;;;;;;;;;;;;:99;;;;;;:::i;:::-;-1:-1:-1;2389:3:41;;2340:354;;;;2709:35;2727:16;2709:35;;;;;;:::i;4631:264::-;4801:1;4787:16;;4781:23;4827:28;;;463:1;4827:28;4823:65;;4879:8;4864:24;;-1:-1:-1;;;4864:24:41;;;;;;;;:::i;2038:391:35:-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:35;-1:-1:-1;;;;;2259:14:35;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1221:144:10:-;1281:20;1336:21;230:2;1281:20;1336:4;;:21;:::i;:::-;1328:30;;;:::i;:::-;1313:45;1221:144;-1:-1:-1;;;1221:144:10:o;1530:176::-;1591:21;1651:36;279:2;230;1651:4;;:36;:::i;:::-;1640:59;;;;;;;:::i;2190:153::-;2254:29;2314:22;:4;279:2;2314:4;;:22;:::i;:::-;2295:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2295:41:10;;2190:153;-1:-1:-1;;;;;;2190:153:10:o;675:252:0:-;832:20;891:6;899:7;908:11;874:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;864:56;;675:252;;;;;:::o;657:394:10:-;849:18;;787:20;;849:22;;;891:153;;1009:35;;;;;;29270:19:145;;;29305:12;;;29298:28;;;29342:12;;1009:35:10;;;;;;;;;;;;891:153;;;933:7;942:8;969:10;982:11;916:78;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;891:153;881:163;;657:394;;;;;;:::o;4650:191:35:-;4716:17;4762:10;4749:9;:23;4745:62;;4781:26;;-1:-1:-1;;;4781:26:35;;4797:9;4781:26;;;11438:25:145;11411:18;;4781:26:35;11292:177:145;4745:62:35;-1:-1:-1;4824:10:35;4650:191::o;5218:410::-;5371:15;5389:8;-1:-1:-1;;;;;5389:16:35;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;;;;;;5421:21:35;;5417:54;;5451:20;;-1:-1:-1;;;5451:20:35;;;;;;;;;;;5417:54;1829:53:113;;;5578:10:35;1829:53:113;;;22054:34:145;;;5598:8:35;-1:-1:-1;;;;;22124:15:145;;;22104:18;;;22097:43;22156:18;;;;22149:34;;;1829:53:113;;;;;;;;;;21989:18:145;;;;1829:53:113;;;;;;;;-1:-1:-1;;;;;1829:53:113;-1:-1:-1;;;1829:53:113;;;5545:76:35;;:32;;;5609:11;;1802:81:113;;5545:32:35;;1802:19:113;:81::i;:::-;1702:188;;;;:::o;4059:629::-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:113;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:113;;-1:-1:-1;;;;;178:32:145;;4631:40:113;;;160:51:145;133:18;;4631:40:113;14:203:145;2705:151:118;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:118;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:118:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:118;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:118;;-1:-1:-1;;;;;178:32:145;;5121:24:118;;;160:51:145;133:18;;5121:24:118;14:203:145;5041:119:118;-1:-1:-1;5180:10:118;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:118;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;222:154:145:-;281:5;326:2;317:6;312:3;308:16;304:25;301:45;;;342:1;339;332:12;301:45;-1:-1:-1;364:6:145;222:154;-1:-1:-1;222:154:145:o;381:347::-;432:8;442:6;496:3;489:4;481:6;477:17;473:27;463:55;;514:1;511;504:12;463:55;-1:-1:-1;537:20:145;;-1:-1:-1;;;;;569:30:145;;566:50;;;612:1;609;602:12;566:50;649:4;641:6;637:17;625:29;;701:3;694:4;685:6;677;673:19;669:30;666:39;663:59;;;718:1;715;708:12;663:59;381:347;;;;;:::o;733:131::-;-1:-1:-1;;;;;808:31:145;;798:42;;788:70;;854:1;851;844:12;869:1048;1012:6;1020;1028;1036;1044;1052;1060;1113:3;1101:9;1092:7;1088:23;1084:33;1081:53;;;1130:1;1127;1120:12;1081:53;1153;1198:7;1187:9;1153:53;:::i;:::-;1143:63;;1253:2;1242:9;1238:18;1225:32;1215:42;;1308:3;1297:9;1293:19;1280:33;-1:-1:-1;;;;;1373:2:145;1365:6;1362:14;1359:34;;;1389:1;1386;1379:12;1359:34;1428:58;1478:7;1469:6;1458:9;1454:22;1428:58;:::i;:::-;1505:8;;-1:-1:-1;1402:84:145;-1:-1:-1;1590:3:145;1575:19;;1562:33;;-1:-1:-1;1604:31:145;1562:33;1604:31;:::i;:::-;1654:5;;-1:-1:-1;1712:3:145;1697:19;;1684:33;;1729:16;;;1726:36;;;1758:1;1755;1748:12;1726:36;;1797:60;1849:7;1838:8;1827:9;1823:24;1797:60;:::i;:::-;869:1048;;;;-1:-1:-1;869:1048:145;;-1:-1:-1;869:1048:145;;;;1771:86;;-1:-1:-1;;;869:1048:145:o;1922:127::-;1983:10;1978:3;1974:20;1971:1;1964:31;2014:4;2011:1;2004:15;2038:4;2035:1;2028:15;2054:251;2126:2;2120:9;;;2156:15;;-1:-1:-1;;;;;2186:34:145;;2222:22;;;2183:62;2180:88;;;2248:18;;:::i;:::-;2284:2;2277:22;2054:251;:::o;2310:253::-;2382:2;2376:9;2424:4;2412:17;;-1:-1:-1;;;;;2444:34:145;;2480:22;;;2441:62;2438:88;;;2506:18;;:::i;2568:275::-;2639:2;2633:9;2704:2;2685:13;;-1:-1:-1;;2681:27:145;2669:40;;-1:-1:-1;;;;;2724:34:145;;2760:22;;;2721:62;2718:88;;;2786:18;;:::i;:::-;2822:2;2815:22;2568:275;;-1:-1:-1;2568:275:145:o;2848:186::-;2896:4;-1:-1:-1;;;;;2921:6:145;2918:30;2915:56;;;2951:18;;:::i;:::-;-1:-1:-1;3017:2:145;2996:15;-1:-1:-1;;2992:29:145;3023:4;2988:40;;2848:186::o;3039:462::-;3081:5;3134:3;3127:4;3119:6;3115:17;3111:27;3101:55;;3152:1;3149;3142:12;3101:55;3188:6;3175:20;3219:48;3235:31;3263:2;3235:31;:::i;:::-;3219:48;:::i;:::-;3292:2;3283:7;3276:19;3338:3;3331:4;3326:2;3318:6;3314:15;3310:26;3307:35;3304:55;;;3355:1;3352;3345:12;3304:55;3420:2;3413:4;3405:6;3401:17;3394:4;3385:7;3381:18;3368:55;3468:1;3443:16;;;3461:4;3439:27;3432:38;;;;3447:7;3039:462;-1:-1:-1;;;3039:462:145:o;3506:665::-;3601:6;3609;3617;3625;3678:3;3666:9;3657:7;3653:23;3649:33;3646:53;;;3695:1;3692;3685:12;3646:53;3734:9;3721:23;3753:31;3778:5;3753:31;:::i;:::-;3803:5;-1:-1:-1;3860:2:145;3845:18;;3832:32;3873:33;3832:32;3873:33;:::i;:::-;3925:7;-1:-1:-1;3979:2:145;3964:18;;3951:32;;-1:-1:-1;4034:2:145;4019:18;;4006:32;-1:-1:-1;;;;;4050:30:145;;4047:50;;;4093:1;4090;4083:12;4047:50;4116:49;4157:7;4148:6;4137:9;4133:22;4116:49;:::i;:::-;4106:59;;;3506:665;;;;;;;:::o;4880:158::-;4942:5;4987:3;4978:6;4973:3;4969:16;4965:26;4962:46;;;5004:1;5001;4994:12;5043:657;5181:6;5189;5197;5241:9;5232:7;5228:23;5271:3;5267:2;5263:12;5260:32;;;5288:1;5285;5278:12;5260:32;5328:9;5315:23;-1:-1:-1;;;;;5353:6:145;5350:30;5347:50;;;5393:1;5390;5383:12;5347:50;5416:69;5477:7;5468:6;5457:9;5453:22;5416:69;:::i;:::-;5406:79;-1:-1:-1;;5519:2:145;-1:-1:-1;;5501:16:145;;5497:25;5494:45;;;5535:1;5532;5525:12;5494:45;;5573:2;5562:9;5558:18;5548:28;;5626:2;5615:9;5611:18;5598:32;5639:31;5664:5;5639:31;:::i;:::-;5689:5;5679:15;;;5043:657;;;;;:::o;5863:469::-;6023:4;6065:3;6054:9;6050:19;6042:27;;6102:6;6096:13;6085:9;6078:32;-1:-1:-1;;;;;6170:4:145;6162:6;6158:17;6152:24;6148:49;6141:4;6130:9;6126:20;6119:79;6245:4;6237:6;6233:17;6227:24;6260:66;6320:4;6309:9;6305:20;6291:12;5783;;5771:25;;5845:4;5834:16;;;5828:23;5812:14;;5805:47;5705:153;6260:66;;5863:469;;;;:::o;6337:163::-;6404:20;;6464:10;6453:22;;6443:33;;6433:61;;6490:1;6487;6480:12;6433:61;6337:163;;;:::o;6505:252::-;6572:6;6580;6633:2;6621:9;6612:7;6608:23;6604:32;6601:52;;;6649:1;6646;6639:12;6601:52;6672:28;6690:9;6672:28;:::i;:::-;6662:38;6747:2;6732:18;;;;6719:32;;-1:-1:-1;;;6505:252:145:o;6762:387::-;6838:6;6846;6854;6907:2;6895:9;6886:7;6882:23;6878:32;6875:52;;;6923:1;6920;6913:12;6875:52;6962:9;6949:23;6981:31;7006:5;6981:31;:::i;:::-;7031:5;-1:-1:-1;7083:2:145;7068:18;;7055:32;;-1:-1:-1;7106:37:145;7139:2;7124:18;;7106:37;:::i;:::-;7096:47;;6762:387;;;;;:::o;7154:159::-;7221:20;;7281:6;7270:18;;7260:29;;7250:57;;7303:1;7300;7293:12;7318:256;7384:6;7392;7445:2;7433:9;7424:7;7420:23;7416:32;7413:52;;;7461:1;7458;7451:12;7413:52;7484:28;7502:9;7484:28;:::i;:::-;7474:38;;7531:37;7564:2;7553:9;7549:18;7531:37;:::i;:::-;7521:47;;7318:256;;;;;:::o;7579:250::-;7664:1;7674:113;7688:6;7685:1;7682:13;7674:113;;;7764:11;;;7758:18;7745:11;;;7738:39;7710:2;7703:10;7674:113;;;-1:-1:-1;;7821:1:145;7803:16;;7796:27;7579:250::o;7834:270::-;7875:3;7913:5;7907:12;7940:6;7935:3;7928:19;7956:76;8025:6;8018:4;8013:3;8009:14;8002:4;7995:5;7991:16;7956:76;:::i;:::-;8086:2;8065:15;-1:-1:-1;;8061:29:145;8052:39;;;;8093:4;8048:50;;7834:270;-1:-1:-1;;7834:270:145:o;8109:217::-;8256:2;8245:9;8238:21;8219:4;8276:44;8316:2;8305:9;8301:18;8293:6;8276:44;:::i;8761:247::-;8820:6;8873:2;8861:9;8852:7;8848:23;8844:32;8841:52;;;8889:1;8886;8879:12;8841:52;8928:9;8915:23;8947:31;8972:5;8947:31;:::i;9218:670::-;9332:6;9340;9348;9356;9409:3;9397:9;9388:7;9384:23;9380:33;9377:53;;;9426:1;9423;9416:12;9377:53;9449;9494:7;9483:9;9449:53;:::i;:::-;9439:63;;9553:2;9542:9;9538:18;9525:32;-1:-1:-1;;;;;9572:6:145;9569:30;9566:50;;;9612:1;9609;9602:12;9566:50;9651:58;9701:7;9692:6;9681:9;9677:22;9651:58;:::i;:::-;9728:8;;-1:-1:-1;9625:84:145;-1:-1:-1;;9813:3:145;9798:19;;9785:33;9827:31;9785:33;9827:31;:::i;:::-;9218:670;;;;-1:-1:-1;9218:670:145;;-1:-1:-1;;9218:670:145:o;10194:395::-;10285:8;10295:6;10349:3;10342:4;10334:6;10330:17;10326:27;10316:55;;10367:1;10364;10357:12;10316:55;-1:-1:-1;10390:20:145;;-1:-1:-1;;;;;10422:30:145;;10419:50;;;10465:1;10462;10455:12;10419:50;10502:4;10494:6;10490:17;10478:29;;10562:3;10555:4;10545:6;10542:1;10538:14;10530:6;10526:27;10522:38;10519:47;10516:67;;;10579:1;10576;10569:12;10594:504;10719:6;10727;10780:2;10768:9;10759:7;10755:23;10751:32;10748:52;;;10796:1;10793;10786:12;10748:52;10836:9;10823:23;-1:-1:-1;;;;;10861:6:145;10858:30;10855:50;;;10901:1;10898;10891:12;10855:50;10940:98;11030:7;11021:6;11010:9;11006:22;10940:98;:::i;:::-;11057:8;;10914:124;;-1:-1:-1;10594:504:145;-1:-1:-1;;;;10594:504:145:o;11103:184::-;11161:6;11214:2;11202:9;11193:7;11189:23;11185:32;11182:52;;;11230:1;11227;11220:12;11182:52;11253:28;11271:9;11253:28;:::i;11474:553::-;11560:6;11568;11576;11584;11637:2;11625:9;11616:7;11612:23;11608:32;11605:52;;;11653:1;11650;11643:12;11605:52;11676:28;11694:9;11676:28;:::i;:::-;11666:38;;11723:37;11756:2;11745:9;11741:18;11723:37;:::i;:::-;11713:47;;11811:2;11800:9;11796:18;11783:32;-1:-1:-1;;;;;11830:6:145;11827:30;11824:50;;;11870:1;11867;11860:12;11824:50;11909:58;11959:7;11950:6;11939:9;11935:22;11909:58;:::i;:::-;11474:553;;;;-1:-1:-1;11986:8:145;-1:-1:-1;;;;11474:553:145:o;12535:118::-;12621:5;12614:13;12607:21;12600:5;12597:32;12587:60;;12643:1;12640;12633:12;12658:489;12752:6;12760;12813:2;12801:9;12792:7;12788:23;12784:32;12781:52;;;12829:1;12826;12819:12;12781:52;12869:9;12856:23;-1:-1:-1;;;;;12894:6:145;12891:30;12888:50;;;12934:1;12931;12924:12;12888:50;12957:69;13018:7;13009:6;12998:9;12994:22;12957:69;:::i;:::-;12947:79;;;13076:2;13065:9;13061:18;13048:32;13089:28;13111:5;13089:28;:::i;:::-;13136:5;13126:15;;;12658:489;;;;;:::o;13152:261::-;5783:12;;5771:25;;5845:4;5834:16;;;5828:23;5812:14;;;5805:47;13346:2;13331:18;;13358:49;5705:153;13418:252;13485:6;13493;13546:2;13534:9;13525:7;13521:23;13517:32;13514:52;;;13562:1;13559;13552:12;13514:52;13598:9;13585:23;13575:33;;13627:37;13660:2;13649:9;13645:18;13627:37;:::i;13675:236::-;13760:6;13813:2;13801:9;13792:7;13788:23;13784:32;13781:52;;;13829:1;13826;13819:12;13781:52;13852:53;13897:7;13886:9;13852:53;:::i;14184:348::-;14273:6;14326:2;14314:9;14305:7;14301:23;14297:32;14294:52;;;14342:1;14339;14332:12;14294:52;14368:22;;:::i;:::-;14426:9;14413:23;14406:5;14399:38;14497:2;14486:9;14482:18;14469:32;14464:2;14457:5;14453:14;14446:56;14521:5;14511:15;;;14184:348;;;;:::o;14805:380::-;14884:1;14880:12;;;;14927;;;14948:61;;15002:4;14994:6;14990:17;14980:27;;14948:61;15055:2;15047:6;15044:14;15024:18;15021:38;15018:161;;15101:10;15096:3;15092:20;15089:1;15082:31;15136:4;15133:1;15126:15;15164:4;15161:1;15154:15;15190:1575;15382:9;-1:-1:-1;;;;;15457:2:145;15449:6;15446:14;15443:40;;;15463:18;;:::i;:::-;15509:6;15506:1;15502:14;15535:4;15559:28;15583:2;15579;15575:11;15559:28;:::i;:::-;15621:19;;;15691:14;;;;15656:12;;;;15728:14;15717:26;;15714:46;;;15756:1;15753;15746:12;15714:46;15780:5;15794:938;15810:6;15805:3;15802:15;15794:938;;;15896:3;15883:17;15932:2;15919:11;15916:19;15913:109;;;15976:1;16005:2;16001;15994:14;15913:109;16045:23;;16113:4;16092:14;16088:23;;;16084:34;16081:124;;;16159:1;16188:2;16184;16177:14;16081:124;16233:22;;:::i;:::-;16284:21;16302:2;16284:21;:::i;:::-;16275:7;16268:38;16344:30;16370:2;16366;16362:11;16344:30;:::i;:::-;16339:2;16330:7;16326:16;16319:56;16398:2;16448;16444;16440:11;16427:25;16479:2;16471:6;16468:14;16465:104;;;16523:1;16552:2;16548;16541:14;16465:104;16607:49;16641:14;16632:6;16628:2;16624:15;16607:49;:::i;:::-;16589:16;;;16582:75;;;;-1:-1:-1;16670:20:145;;-1:-1:-1;16710:12:145;;;;15827;;15794:938;;;-1:-1:-1;16754:5:145;15190:1575;-1:-1:-1;;;;;;;15190:1575:145:o;16770:331::-;16875:9;16886;16928:8;16916:10;16913:24;16910:44;;;16950:1;16947;16940:12;16910:44;16979:6;16969:8;16966:20;16963:40;;;16999:1;16996;16989:12;16963:40;-1:-1:-1;;17025:23:145;;;17070:25;;;;;-1:-1:-1;16770:331:145:o;17106:476::-;17297:3;17335:6;17329:13;17351:66;17410:6;17405:3;17398:4;17390:6;17386:17;17351:66;:::i;:::-;17439:16;;17492:6;17484;17439:16;17464:35;17556:1;17518:18;;17545:13;;;-1:-1:-1;17518:18:145;;17106:476;-1:-1:-1;;;17106:476:145:o;17587:266::-;17675:6;17670:3;17663:19;17727:6;17720:5;17713:4;17708:3;17704:14;17691:43;-1:-1:-1;17779:1:145;17754:16;;;17772:4;17750:27;;;17743:38;;;;17835:2;17814:15;;;-1:-1:-1;;17810:29:145;17801:39;;;17797:50;;17587:266::o;17858:244::-;18015:2;18004:9;17997:21;17978:4;18035:61;18092:2;18081:9;18077:18;18069:6;18061;18035:61;:::i;18107:127::-;18168:10;18163:3;18159:20;18156:1;18149:31;18199:4;18196:1;18189:15;18223:4;18220:1;18213:15;18239:331;18338:4;18396:11;18383:25;18490:3;18486:8;18475;18459:14;18455:29;18451:44;18431:18;18427:69;18417:97;;18510:1;18507;18500:12;18417:97;18531:33;;;;;18239:331;-1:-1:-1;;18239:331:145:o;18575:521::-;18652:4;18658:6;18718:11;18705:25;18812:2;18808:7;18797:8;18781:14;18777:29;18773:43;18753:18;18749:68;18739:96;;18831:1;18828;18821:12;18739:96;18858:33;;18910:20;;;-1:-1:-1;;;;;;18942:30:145;;18939:50;;;18985:1;18982;18975:12;18939:50;19018:4;19006:17;;-1:-1:-1;19049:14:145;19045:27;;;19035:38;;19032:58;;;19086:1;19083;19076:12;19101:129;-1:-1:-1;;;;;19179:5:145;19175:30;19168:5;19165:41;19155:69;;19220:1;19217;19210:12;19235:992;19613:10;19586:25;19604:6;19586:25;:::i;:::-;19582:42;19571:9;19564:61;19688:4;19680:6;19676:17;19663:31;19656:4;19645:9;19641:20;19634:61;19545:4;19742;19734:6;19730:17;19717:31;19757:30;19781:5;19757:30;:::i;:::-;-1:-1:-1;;;;;19829:5:145;19825:30;19818:4;19807:9;19803:20;19796:60;;19892:6;19887:2;19876:9;19872:18;19865:34;19936:3;19930;19919:9;19915:19;19908:32;19963:62;20020:3;20009:9;20005:19;19997:6;19989;19963:62;:::i;:::-;-1:-1:-1;;;;;20062:32:145;;20082:3;20041:19;;20034:61;20132:22;;;20126:3;20111:19;;20104:51;20172:49;20136:6;20206;20198;20172:49;:::i;:::-;20164:57;19235:992;-1:-1:-1;;;;;;;;;;19235:992:145:o;20232:647::-;20311:6;20364:2;20352:9;20343:7;20339:23;20335:32;20332:52;;;20380:1;20377;20370:12;20332:52;20413:9;20407:16;-1:-1:-1;;;;;20438:6:145;20435:30;20432:50;;;20478:1;20475;20468:12;20432:50;20501:22;;20554:4;20546:13;;20542:27;-1:-1:-1;20532:55:145;;20583:1;20580;20573:12;20532:55;20612:2;20606:9;20637:48;20653:31;20681:2;20653:31;:::i;20637:48::-;20708:2;20701:5;20694:17;20748:7;20743:2;20738;20734;20730:11;20726:20;20723:33;20720:53;;;20769:1;20766;20759:12;20720:53;20782:67;20846:2;20841;20834:5;20830:14;20825:2;20821;20817:11;20782:67;:::i;21081:245::-;21139:6;21192:2;21180:9;21171:7;21167:23;21163:32;21160:52;;;21208:1;21205;21198:12;21160:52;21247:9;21234:23;21266:30;21290:5;21266:30;:::i;21331:478::-;21598:1;21594;21589:3;21585:11;21581:19;21573:6;21569:32;21558:9;21551:51;21638:6;21633:2;21622:9;21618:18;21611:34;21693:6;21685;21681:19;21676:2;21665:9;21661:18;21654:47;21737:3;21732:2;21721:9;21717:18;21710:31;21532:4;21758:45;21798:3;21787:9;21783:19;21775:6;21758:45;:::i;22194:377::-;22387:2;22376:9;22369:21;22350:4;22413:44;22453:2;22442:9;22438:18;22430:6;22413:44;:::i;:::-;22505:9;22497:6;22493:22;22488:2;22477:9;22473:18;22466:50;22533:32;22558:6;22550;22533:32;:::i;22576:245::-;22643:6;22696:2;22684:9;22675:7;22671:23;22667:32;22664:52;;;22712:1;22709;22702:12;22664:52;22744:9;22738:16;22763:28;22785:5;22763:28;:::i;22826:889::-;23049:2;23038:9;23031:21;23107:10;23098:6;23092:13;23088:30;23083:2;23072:9;23068:18;23061:58;23173:4;23165:6;23161:17;23155:24;23150:2;23139:9;23135:18;23128:52;23012:4;23227:2;23219:6;23215:15;23209:22;23268:4;23262:3;23251:9;23247:19;23240:33;23296:51;23342:3;23331:9;23327:19;23313:12;23296:51;:::i;:::-;23282:65;;23396:2;23388:6;23384:15;23378:22;23470:2;23466:7;23454:9;23446:6;23442:22;23438:36;23431:4;23420:9;23416:20;23409:66;23498:40;23531:6;23515:14;23498:40;:::i;:::-;23607:3;23595:16;;;;23589:23;23582:31;23575:39;23569:3;23554:19;;23547:68;-1:-1:-1;;;;;;;;23676:32:145;;;;23669:4;23654:20;;;23647:62;23484:54;22826:889::o;23720:284::-;23790:5;23838:4;23826:9;23821:3;23817:19;23813:30;23810:50;;;23856:1;23853;23846:12;23810:50;23878:22;;:::i;:::-;23869:31;;23929:9;23923:16;23916:5;23909:31;23993:2;23982:9;23978:18;23972:25;23967:2;23960:5;23956:14;23949:49;23720:284;;;;:::o;24009:525::-;24113:6;24166:3;24154:9;24145:7;24141:23;24137:33;24134:53;;;24183:1;24180;24173:12;24134:53;24209:22;;:::i;:::-;24260:9;24254:16;24247:5;24240:31;24316:2;24305:9;24301:18;24295:25;24329:32;24353:7;24329:32;:::i;:::-;24388:2;24377:14;;24370:31;24433:70;24495:7;24490:2;24475:18;;24433:70;:::i;:::-;24428:2;24417:14;;24410:94;24421:5;24009:525;-1:-1:-1;;;24009:525:145:o;24664:542::-;24765:2;24760:3;24757:11;24754:446;;;24801:1;24825:5;24822:1;24815:16;24869:4;24866:1;24856:18;24939:2;24927:10;24923:19;24920:1;24916:27;24910:4;24906:38;24975:4;24963:10;24960:20;24957:47;;;-1:-1:-1;24998:4:145;24957:47;25053:2;25048:3;25044:12;25041:1;25037:20;25031:4;25027:31;25017:41;;25108:82;25126:2;25119:5;25116:13;25108:82;;;25171:17;;;25152:1;25141:13;25108:82;;;25112:3;;;24664:542;;;:::o;25382:1341::-;25506:3;25500:10;-1:-1:-1;;;;;25525:6:145;25522:30;25519:56;;;25555:18;;:::i;:::-;25584:96;25673:6;25633:38;25665:4;25659:11;25633:38;:::i;:::-;25627:4;25584:96;:::i;:::-;25735:4;;25792:2;25781:14;;25809:1;25804:662;;;;26510:1;26527:6;26524:89;;;-1:-1:-1;26579:19:145;;;26573:26;26524:89;-1:-1:-1;;25339:1:145;25335:11;;;25331:24;25327:29;25317:40;25363:1;25359:11;;;25314:57;26626:81;;25774:943;;25804:662;24611:1;24604:14;;;24648:4;24635:18;;-1:-1:-1;;25840:20:145;;;25957:236;25971:7;25968:1;25965:14;25957:236;;;26060:19;;;26054:26;26039:42;;26152:27;;;;26120:1;26108:14;;;;25987:19;;25957:236;;;25961:3;26221:6;26212:7;26209:19;26206:201;;;26282:19;;;26276:26;-1:-1:-1;;26365:1:145;26361:14;;;26377:3;26357:24;26353:37;26349:42;26334:58;26319:74;;26206:201;-1:-1:-1;;;;;26453:1:145;26437:14;;;26433:22;26420:36;;-1:-1:-1;25382:1341:145:o;26728:1163::-;26944:4;26973:2;27013;27002:9;26998:18;27043:2;27032:9;27025:21;27066:6;27101;27095:13;27132:6;27124;27117:22;27158:2;27148:12;;27191:2;27180:9;27176:18;27169:25;;27253:2;27243:6;27240:1;27236:14;27225:9;27221:30;27217:39;27291:2;27283:6;27279:15;27312:1;27322:540;27336:6;27333:1;27330:13;27322:540;;;27401:22;;;-1:-1:-1;;27397:36:145;27385:49;;27457:13;;27529:9;;27540:10;27525:26;27510:42;;27599:11;;;27593:18;27613:6;27589:31;27572:15;;;27565:56;27660:11;;27654:18;27493:4;27692:15;;;27685:27;;;27735:47;27766:15;;;27654:18;27735:47;:::i;:::-;27840:12;;;;27725:57;-1:-1:-1;;;27805:15:145;;;;27358:1;27351:9;27322:540;;;-1:-1:-1;27879:6:145;;26728:1163;-1:-1:-1;;;;;;;;26728:1163:145:o;27896:259::-;27996:6;28049:2;28037:9;28028:7;28024:23;28020:32;28017:52;;;28065:1;28062;28055:12;28017:52;28088:61;28141:7;28130:9;28088:61;:::i;28160:255::-;28280:19;;28319:2;28311:11;;28308:101;;;-1:-1:-1;;28380:2:145;28376:12;;;28373:1;28369:20;28365:33;28354:45;28160:255;;;;:::o;28420:180::-;28479:6;28532:2;28520:9;28511:7;28507:23;28503:32;28500:52;;;28548:1;28545;28538:12;28500:52;-1:-1:-1;28571:23:145;;28420:180;-1:-1:-1;28420:180:145:o;28605:503::-;28842:3;28820:16;;;-1:-1:-1;;;;;;28816:51:145;28804:64;;28923:3;28901:16;;;-1:-1:-1;;;;;;28897:43:145;28893:1;28884:11;;28877:64;28964:13;;-1:-1:-1;;28986:75:145;28964:13;29049:2;29040:12;;29033:4;29021:17;;28986:75;:::i;:::-;29081:16;;;;29099:2;29077:25;;28605:503;-1:-1:-1;;;;28605:503:145:o;29365:489::-;29608:6;29603:3;29596:19;29645:6;29640:2;29635:3;29631:12;29624:28;29682:6;29677:2;29672:3;29668:12;29661:28;29578:3;29718:6;29712:13;29734:73;29800:6;29795:2;29790:3;29786:12;29781:2;29773:6;29769:15;29734:73;:::i;:::-;29827:16;;;;29845:2;29823:25;;29365:489;-1:-1:-1;;;;;29365:489:145:o;30041:251::-;30111:6;30164:2;30152:9;30143:7;30139:23;30135:32;30132:52;;;30180:1;30177;30170:12;30132:52;30212:9;30206:16;30231:31;30256:5;30231:31;:::i;30297:287::-;30426:3;30464:6;30458:13;30480:66;30539:6;30534:3;30527:4;30519:6;30515:17;30480:66;:::i","linkReferences":{},"immutableReferences":{"1190":[{"start":1623,"length":32},{"start":4240,"length":32},{"start":5056,"length":32}],"6372":[{"start":938,"length":32},{"start":1693,"length":32},{"start":3430,"length":32},{"start":3986,"length":32},{"start":4666,"length":32},{"start":5512,"length":32},{"start":6033,"length":32},{"start":6216,"length":32}]}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","combineOptions(uint32,uint16,bytes)":"bc70b354","credit(address,uint256,uint32)":"4dba701b","debit(uint256,uint32)":"dcdfd911","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onERC721Received(address,address,uint256,bytes)":"150b7a02","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","token()":"fc0c546a","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"}],\"name\":\"credit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"debit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"In the case of ONFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the underlying ERC721 implementation (ie. external contract).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/onft/onft721/mocks/ONFT721AdapterMock.sol\":\"ONFT721AdapterMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft721/ONFT721Adapter.sol\":{\"keccak256\":\"0x14be9f9126ed135f680b784f3c0011cc53171f56ee91839794cbf05ccf627c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://438360943bb43d87034508afd8ba4dba8071b1413ef7ede69608538f3d484cad\",\"dweb:/ipfs/Qma32ayS69kDUxPBSSEidYiTyytEYgYUnZk3xUCwfqaePo\"]},\"contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]},\"test/onft/onft721/mocks/ONFT721AdapterMock.sol\":{\"keccak256\":\"0xe6a5e529274226003161bfca63fbceab6aaf10f91ef62d6f1d36cabb81da9df0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ee5020c13278a047c22e2bdd86703c2c75ce1e76530005f7e3bce82e0dbf2d3b\",\"dweb:/ipfs/QmQyfe2kn6Zbgu6vw2ss5kBjsTtBZzkFNtbD3mpf3T6Fx8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_srcEid","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"credit"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"debit"},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"In the case of ONFT where the contract IS the token, approval is NOT required.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the ONFT721 contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the underlying ERC721 implementation (ie. external contract)."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/onft/onft721/mocks/ONFT721AdapterMock.sol":"ONFT721AdapterMock"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft721/ONFT721Adapter.sol":{"keccak256":"0x14be9f9126ed135f680b784f3c0011cc53171f56ee91839794cbf05ccf627c76","urls":["bzz-raw://438360943bb43d87034508afd8ba4dba8071b1413ef7ede69608538f3d484cad","dweb:/ipfs/Qma32ayS69kDUxPBSSEidYiTyytEYgYUnZk3xUCwfqaePo"],"license":"MIT"},"contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"},"test/onft/onft721/mocks/ONFT721AdapterMock.sol":{"keccak256":"0xe6a5e529274226003161bfca63fbceab6aaf10f91ef62d6f1d36cabb81da9df0","urls":["bzz-raw://ee5020c13278a047c22e2bdd86703c2c75ce1e76530005f7e3bce82e0dbf2d3b","dweb:/ipfs/QmQyfe2kn6Zbgu6vw2ss5kBjsTtBZzkFNtbD3mpf3T6Fx8"],"license":"UNLICENSED"}},"version":1},"id":143} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT721Base.sol/ONFT721Base.json b/packages/onft-evm/out/ONFT721Base.sol/ONFT721Base.json deleted file mode 100644 index efab95f80..000000000 --- a/packages/onft-evm/out/ONFT721Base.sol/ONFT721Base.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_FOR_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"assertGuid","inputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"},{"name":"guid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"decodeLzComposeOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"index","type":"uint16","internalType":"uint16"},{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeLzReceiveOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeNativeDropOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"receiver","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"executorValueCap","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextInflightPacket","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"hasPendingPackets","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"flag","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_from","type":"address","internalType":"address"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_to","type":"address","internalType":"address"},{"name":"_composerMsg","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzCompose","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_composer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceive","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextExecutorOption","inputs":[{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_cursor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"optionType","type":"uint8","internalType":"uint8"},{"name":"option","type":"bytes","internalType":"bytes"},{"name":"cursor","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"onfts","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"registerEndpoint","inputs":[{"name":"endpoint","type":"address","internalType":"contract EndpointV2Mock"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"schedulePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setExecutorValueCap","inputs":[{"name":"_valueCap","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUpEndpoints","inputs":[{"name":"_endpointNum","type":"uint8","internalType":"uint8"},{"name":"_libraryType","type":"uint8","internalType":"enum TestHelperOz5.LibraryType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setupOApps","inputs":[{"name":"_oappCreationCode","type":"bytes","internalType":"bytes"},{"name":"_startEid","type":"uint8","internalType":"uint8"},{"name":"_oappNum","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"sliceUintArray","inputs":[{"name":"array","type":"uint256[]","internalType":"uint256[]"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"},{"name":"_packetAmount","type":"uint256","internalType":"uint256"},{"name":"_composer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wireOApps","inputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"Executor_InvalidLzComposeOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReceiveOption","inputs":[]},{"type":"error","name":"Executor_InvalidNativeDropOption","inputs":[]},{"type":"error","name":"InvalidOptionType","inputs":[{"name":"optionType","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"QueueEmpty","inputs":[]},{"type":"error","name":"QueueFull","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","TREASURY_GAS_CAP()":"baead19c","TREASURY_GAS_FOR_FEE_CAP()":"b1dcf5c8","assertGuid(bytes,bytes32)":"997cff1b","decodeLzComposeOption(bytes)":"518e8ab0","decodeLzReceiveOption(bytes)":"f93e1d61","decodeNativeDropOption(bytes)":"b954fdf6","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","executorValueCap()":"2113ce62","failed()":"ba414fa6","getNextInflightPacket(uint16,bytes32)":"7982cf42","hasPendingPackets(uint16,bytes32)":"5ea0fefe","lzCompose(bytes,bytes,bytes32,address)":"a29c8984","lzCompose(uint32,address,bytes,bytes32,address,bytes)":"3bbd6a94","lzReceive(bytes,bytes)":"ec53eaa0","nextExecutorOption(bytes,uint256)":"6e1775e3","onfts(uint256)":"ac7b331a","registerEndpoint(address)":"ae6ce400","schedulePacket(bytes,bytes)":"faed6c58","setExecutorValueCap(uint128)":"defd9da6","setUp()":"0a9254e4","setUpEndpoints(uint8,uint8)":"1cc46525","setupOApps(bytes,uint8,uint8)":"2a35d250","sliceUintArray(uint256[],uint256,uint256)":"7c8bd543","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","validatePacket(bytes)":"12cc947f","verifyPackets(uint32,address)":"090852b6","verifyPackets(uint32,bytes32)":"b752b72a","verifyPackets(uint32,bytes32,uint256,address)":"5e7baa42","wireOApps(address[])":"703ca254"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReceiveOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidNativeDropOption\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"optionType\",\"type\":\"uint16\"}],\"name\":\"InvalidOptionType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueFull\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_GAS_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_GAS_FOR_FEE_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"}],\"name\":\"assertGuid\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzComposeOption\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzReceiveOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeNativeDropOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executorValueCap\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"getNextInflightPacket\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"packetBytes\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"hasPendingPackets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_composerMsg\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_composer\",\"type\":\"address\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_cursor\",\"type\":\"uint256\"}],\"name\":\"nextExecutorOption\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"optionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"option\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"onfts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract EndpointV2Mock\",\"name\":\"endpoint\",\"type\":\"address\"}],\"name\":\"registerEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"schedulePacket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_valueCap\",\"type\":\"uint128\"}],\"name\":\"setExecutorValueCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_endpointNum\",\"type\":\"uint8\"},{\"internalType\":\"enum TestHelperOz5.LibraryType\",\"name\":\"_libraryType\",\"type\":\"uint8\"}],\"name\":\"setUpEndpoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_oappCreationCode\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"_startEid\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"_oappNum\",\"type\":\"uint8\"}],\"name\":\"setupOApps\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"oapps\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"array\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"sliceUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"}],\"name\":\"validatePacket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_packetAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_composer\",\"type\":\"address\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"oapps\",\"type\":\"address[]\"}],\"name\":\"wireOApps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"QueueEmpty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}],\"QueueFull()\":[{\"details\":\"A push operation couldn't be completed due to the queue being full.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{\"schedulePacket(bytes,bytes)\":{\"details\":\"Adds the packet to the front of the queue and stores its options for later retrieval.\",\"params\":{\"_options\":\"The options associated with the packet, used during delivery.\",\"_packetBytes\":\"The packet data to be scheduled.\"}},\"setExecutorValueCap(uint128)\":{\"details\":\"set executorValueCap if more than 0.1 ether is necessarythis must be called prior to setUpEndpoints() if the value is to be used\",\"params\":{\"_valueCap\":\"amount executor can pass as msg.value to lzReceive()\"}},\"setUp()\":{\"details\":\"Initializes test environment setup, to be overridden by specific tests.\"},\"setUpEndpoints(uint8,uint8)\":{\"params\":{\"_endpointNum\":\"The number of endpoints to create.\",\"_libraryType\":\"The type of message library to use (UltraLightNode or SimpleMessageLib).\"}},\"setupOApps(bytes,uint8,uint8)\":{\"params\":{\"_oappCreationCode\":\"The bytecode for creating OApp contracts.\",\"_oappNum\":\"The number of OApps to set up.\",\"_startEid\":\"The starting endpoint ID for OApp setup.\"},\"returns\":{\"oapps\":\"An array of addresses for the deployed OApps.\"}},\"verifyPackets(uint32,address)\":{\"details\":\"verify packets to destination chain's OApp address.\",\"params\":{\"_dstAddress\":\"The destination address.\",\"_dstEid\":\"The destination endpoint ID.\"}},\"verifyPackets(uint32,bytes32)\":{\"details\":\"Calls an overloaded version of verifyPackets with default values for packet amount and composer address.\",\"params\":{\"_dstAddress\":\"The destination address in bytes32 format.\",\"_dstEid\":\"The destination chain's endpoint ID.\"}},\"verifyPackets(uint32,bytes32,uint256,address)\":{\"details\":\"dst UA receive/execute packetswill NOT work calling this directly with composer IF the composed payload is different from the lzReceive msg payload\"},\"wireOApps(address[])\":{\"details\":\"Sets each OApp as a peer to every other OApp in the provided array, except itself.\",\"params\":{\"oapps\":\"An array of addresses representing the deployed OApp instances.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"schedulePacket(bytes,bytes)\":{\"notice\":\"Schedules a packet for delivery, storing it in the packets queue.\"},\"setUpEndpoints(uint8,uint8)\":{\"notice\":\"Sets up endpoints for testing.\"},\"setupOApps(bytes,uint8,uint8)\":{\"notice\":\"Sets up mock OApp contracts for testing.\"},\"verifyPackets(uint32,bytes32)\":{\"notice\":\"Verifies and processes packets destined for a specific chain and user address.\"},\"wireOApps(address[])\":{\"notice\":\"Configures the peers between multiple OApp instances.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/onft/onft721/ONFT721Base.sol\":\"ONFT721Base\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft721/ONFT721.sol\":{\"keccak256\":\"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4\",\"dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu\"]},\"contracts/onft721/ONFT721Adapter.sol\":{\"keccak256\":\"0x14be9f9126ed135f680b784f3c0011cc53171f56ee91839794cbf05ccf627c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://438360943bb43d87034508afd8ba4dba8071b1413ef7ede69608538f3d484cad\",\"dweb:/ipfs/Qma32ayS69kDUxPBSSEidYiTyytEYgYUnZk3xUCwfqaePo\"]},\"contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol\":{\"keccak256\":\"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2\",\"dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol\":{\"keccak256\":\"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4\",\"dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol\":{\"keccak256\":\"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497\",\"dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":{\"keccak256\":\"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f\",\"dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol\":{\"keccak256\":\"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032\",\"dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":{\"keccak256\":\"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5\",\"dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":{\"keccak256\":\"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89\",\"dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":{\"keccak256\":\"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79\",\"dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol\":{\"keccak256\":\"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2\",\"dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9\",\"dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":{\"keccak256\":\"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55\",\"dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol\":{\"keccak256\":\"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc\",\"dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":{\"keccak256\":\"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850\",\"dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol\":{\"keccak256\":\"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691\",\"dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":{\"keccak256\":\"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241\",\"dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":{\"keccak256\":\"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c\",\"dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":{\"keccak256\":\"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a\",\"dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":{\"keccak256\":\"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54\",\"dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol\":{\"keccak256\":\"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda\",\"dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol\":{\"keccak256\":\"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2\",\"dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol\":{\"keccak256\":\"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11\",\"dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol\":{\"keccak256\":\"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677\",\"dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol\":{\"keccak256\":\"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590\",\"dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol\":{\"keccak256\":\"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045\",\"dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol\":{\"keccak256\":\"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13\",\"dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol\":{\"keccak256\":\"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29\",\"dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol\":{\"keccak256\":\"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f\",\"dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol\":{\"keccak256\":\"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec\",\"dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol\":{\"keccak256\":\"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4\",\"dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol\":{\"keccak256\":\"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574\",\"dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol\":{\"keccak256\":\"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991\",\"dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol\":{\"keccak256\":\"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1\",\"dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e\",\"dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8\",\"dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]},\"test/mocks/InspectorMock.sol\":{\"keccak256\":\"0x0b771220aeeff10c578a32a862d9381d53c316494e15fbcc76878d4e489f6fb8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bac2387d0045724d470bf1750b582f36147fe05d26f2c16646493ff319a8d169\",\"dweb:/ipfs/QmSTZZZ6zz8PBtAtXKK8tmkd9s3DZW2kbc87eGzRNYZtoZ\"]},\"test/onft/ONFTBaseTestHelper.sol\":{\"keccak256\":\"0xc391362caf12a23d771d1dd8fa5e072ae7cff39266393f7deeae6de502f5dfb8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2567c9a0dd3e4f035dacb37e784ea5b55faa5fc0a42415e060355de3a969edd6\",\"dweb:/ipfs/QmWfsj1mFmeyMq99s63We4pUsL6jRa6wB9VQmVE1FCNCGN\"]},\"test/onft/onft721/ONFT721Base.sol\":{\"keccak256\":\"0x28e69769269ed40ab9a14b8b457976469c5ab9d6ff02af954449c39020d4fbc4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://17543ccf1b986d9f61c035348b9ef8717b16a90c954961b9050886bd0171f2fa\",\"dweb:/ipfs/QmRtkFLdb1ASK2cG3xwYNrFxsDXHZ6hETqe9YBkax8B524\"]},\"test/onft/onft721/mocks/ERC721Mock.sol\":{\"keccak256\":\"0x6b9a321f3f1e9de4bb6ec64f01264717108e77da7173a3e735d3830542a4e8fe\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cd5b0ecd6121979c0289d8d53c24286793e43c31d337c61fdea408ec1e78135\",\"dweb:/ipfs/QmTrhHATg38ZkspBW1qz5dXcJHeHvMo42PoM3WZtq6KSGY\"]},\"test/onft/onft721/mocks/ONFT721AdapterMock.sol\":{\"keccak256\":\"0xe6a5e529274226003161bfca63fbceab6aaf10f91ef62d6f1d36cabb81da9df0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ee5020c13278a047c22e2bdd86703c2c75ce1e76530005f7e3bce82e0dbf2d3b\",\"dweb:/ipfs/QmQyfe2kn6Zbgu6vw2ss5kBjsTtBZzkFNtbD3mpf3T6Fx8\"]},\"test/onft/onft721/mocks/ONFT721Mock.sol\":{\"keccak256\":\"0xc31f9452ff2400b8279b490bdfe117aaaa27d1fcc35c1e6126a1cbc76a3be675\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dc38695a66a85a73b7098513e0fd65d5bf37751f8eb4d3f49dc937f0d6815b8c\",\"dweb:/ipfs/QmV7Swzcstxv8L3n4ZFuS7YBQD4xsHwLDRqvwyoL8bFRtw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Executor_InvalidLzComposeOption"},{"inputs":[],"type":"error","name":"Executor_InvalidLzReceiveOption"},{"inputs":[],"type":"error","name":"Executor_InvalidNativeDropOption"},{"inputs":[{"internalType":"uint16","name":"optionType","type":"uint16"}],"type":"error","name":"InvalidOptionType"},{"inputs":[],"type":"error","name":"QueueEmpty"},{"inputs":[],"type":"error","name":"QueueFull"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_GAS_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_GAS_FOR_FEE_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"packetBytes","type":"bytes"},{"internalType":"bytes32","name":"guid","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertGuid"},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzComposeOption","outputs":[{"internalType":"uint16","name":"index","type":"uint16"},{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzReceiveOption","outputs":[{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeNativeDropOption","outputs":[{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes32","name":"receiver","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"executorValueCap","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getNextInflightPacket","outputs":[{"internalType":"bytes","name":"packetBytes","type":"bytes"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"view","type":"function","name":"hasPendingPackets","outputs":[{"internalType":"bool","name":"flag","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes","name":"_composerMsg","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"address","name":"_composer","type":"address"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"uint256","name":"_cursor","type":"uint256"}],"stateMutability":"pure","type":"function","name":"nextExecutorOption","outputs":[{"internalType":"uint8","name":"optionType","type":"uint8"},{"internalType":"bytes","name":"option","type":"bytes"},{"internalType":"uint256","name":"cursor","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"onfts","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract EndpointV2Mock","name":"endpoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerEndpoint"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"schedulePacket"},{"inputs":[{"internalType":"uint128","name":"_valueCap","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setExecutorValueCap"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint8","name":"_endpointNum","type":"uint8"},{"internalType":"enum TestHelperOz5.LibraryType","name":"_libraryType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setUpEndpoints"},{"inputs":[{"internalType":"bytes","name":"_oappCreationCode","type":"bytes"},{"internalType":"uint8","name":"_startEid","type":"uint8"},{"internalType":"uint8","name":"_oappNum","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setupOApps","outputs":[{"internalType":"address[]","name":"oapps","type":"address[]"}]},{"inputs":[{"internalType":"uint256[]","name":"array","type":"uint256[]"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"pure","type":"function","name":"sliceUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"validatePacket"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_dstAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"},{"internalType":"uint256","name":"_packetAmount","type":"uint256"},{"internalType":"address","name":"_composer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"address[]","name":"oapps","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"wireOApps"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"schedulePacket(bytes,bytes)":{"details":"Adds the packet to the front of the queue and stores its options for later retrieval.","params":{"_options":"The options associated with the packet, used during delivery.","_packetBytes":"The packet data to be scheduled."}},"setExecutorValueCap(uint128)":{"details":"set executorValueCap if more than 0.1 ether is necessarythis must be called prior to setUpEndpoints() if the value is to be used","params":{"_valueCap":"amount executor can pass as msg.value to lzReceive()"}},"setUp()":{"details":"Initializes test environment setup, to be overridden by specific tests."},"setUpEndpoints(uint8,uint8)":{"params":{"_endpointNum":"The number of endpoints to create.","_libraryType":"The type of message library to use (UltraLightNode or SimpleMessageLib)."}},"setupOApps(bytes,uint8,uint8)":{"params":{"_oappCreationCode":"The bytecode for creating OApp contracts.","_oappNum":"The number of OApps to set up.","_startEid":"The starting endpoint ID for OApp setup."},"returns":{"oapps":"An array of addresses for the deployed OApps."}},"verifyPackets(uint32,address)":{"details":"verify packets to destination chain's OApp address.","params":{"_dstAddress":"The destination address.","_dstEid":"The destination endpoint ID."}},"verifyPackets(uint32,bytes32)":{"details":"Calls an overloaded version of verifyPackets with default values for packet amount and composer address.","params":{"_dstAddress":"The destination address in bytes32 format.","_dstEid":"The destination chain's endpoint ID."}},"verifyPackets(uint32,bytes32,uint256,address)":{"details":"dst UA receive/execute packetswill NOT work calling this directly with composer IF the composed payload is different from the lzReceive msg payload"},"wireOApps(address[])":{"details":"Sets each OApp as a peer to every other OApp in the provided array, except itself.","params":{"oapps":"An array of addresses representing the deployed OApp instances."}}},"version":1},"userdoc":{"kind":"user","methods":{"schedulePacket(bytes,bytes)":{"notice":"Schedules a packet for delivery, storing it in the packets queue."},"setUpEndpoints(uint8,uint8)":{"notice":"Sets up endpoints for testing."},"setupOApps(bytes,uint8,uint8)":{"notice":"Sets up mock OApp contracts for testing."},"verifyPackets(uint32,bytes32)":{"notice":"Verifies and processes packets destined for a specific chain and user address."},"wireOApps(address[])":{"notice":"Configures the peers between multiple OApp instances."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/onft/onft721/ONFT721Base.sol":"ONFT721Base"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft721/ONFT721.sol":{"keccak256":"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04","urls":["bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4","dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu"],"license":"MIT"},"contracts/onft721/ONFT721Adapter.sol":{"keccak256":"0x14be9f9126ed135f680b784f3c0011cc53171f56ee91839794cbf05ccf627c76","urls":["bzz-raw://438360943bb43d87034508afd8ba4dba8071b1413ef7ede69608538f3d484cad","dweb:/ipfs/Qma32ayS69kDUxPBSSEidYiTyytEYgYUnZk3xUCwfqaePo"],"license":"MIT"},"contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol":{"keccak256":"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9","urls":["bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2","dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol":{"keccak256":"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1","urls":["bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4","dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol":{"keccak256":"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e","urls":["bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497","dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":{"keccak256":"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a","urls":["bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f","dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol":{"keccak256":"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3","urls":["bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032","dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":{"keccak256":"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345","urls":["bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5","dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":{"keccak256":"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d","urls":["bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89","dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":{"keccak256":"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44","urls":["bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79","dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol":{"keccak256":"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5","urls":["bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2","dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f","urls":["bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9","dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":{"keccak256":"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73","urls":["bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55","dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol":{"keccak256":"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91","urls":["bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc","dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":{"keccak256":"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27","urls":["bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850","dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol":{"keccak256":"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f","urls":["bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691","dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol":{"keccak256":"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a","urls":["bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241","dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol":{"keccak256":"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73","urls":["bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c","dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol":{"keccak256":"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1","urls":["bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a","dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol":{"keccak256":"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420","urls":["bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54","dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":{"keccak256":"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5","urls":["bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b","dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":{"keccak256":"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9","urls":["bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f","dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol":{"keccak256":"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22","urls":["bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda","dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa"],"license":"BUSL-1.1"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol":{"keccak256":"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095","urls":["bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2","dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol":{"keccak256":"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95","urls":["bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11","dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol":{"keccak256":"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef","urls":["bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677","dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol":{"keccak256":"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada","urls":["bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590","dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol":{"keccak256":"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff","urls":["bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045","dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol":{"keccak256":"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21","urls":["bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13","dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol":{"keccak256":"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16","urls":["bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29","dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol":{"keccak256":"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830","urls":["bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f","dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol":{"keccak256":"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44","urls":["bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec","dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol":{"keccak256":"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121","urls":["bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4","dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol":{"keccak256":"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348","urls":["bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574","dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol":{"keccak256":"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9","urls":["bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991","dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol":{"keccak256":"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97","urls":["bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1","dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol":{"keccak256":"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70","urls":["bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e","dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"keccak256":"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67","urls":["bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8","dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"},"test/mocks/InspectorMock.sol":{"keccak256":"0x0b771220aeeff10c578a32a862d9381d53c316494e15fbcc76878d4e489f6fb8","urls":["bzz-raw://bac2387d0045724d470bf1750b582f36147fe05d26f2c16646493ff319a8d169","dweb:/ipfs/QmSTZZZ6zz8PBtAtXKK8tmkd9s3DZW2kbc87eGzRNYZtoZ"],"license":"UNLICENSED"},"test/onft/ONFTBaseTestHelper.sol":{"keccak256":"0xc391362caf12a23d771d1dd8fa5e072ae7cff39266393f7deeae6de502f5dfb8","urls":["bzz-raw://2567c9a0dd3e4f035dacb37e784ea5b55faa5fc0a42415e060355de3a969edd6","dweb:/ipfs/QmWfsj1mFmeyMq99s63We4pUsL6jRa6wB9VQmVE1FCNCGN"],"license":"UNLICENSED"},"test/onft/onft721/ONFT721Base.sol":{"keccak256":"0x28e69769269ed40ab9a14b8b457976469c5ab9d6ff02af954449c39020d4fbc4","urls":["bzz-raw://17543ccf1b986d9f61c035348b9ef8717b16a90c954961b9050886bd0171f2fa","dweb:/ipfs/QmRtkFLdb1ASK2cG3xwYNrFxsDXHZ6hETqe9YBkax8B524"],"license":"UNLICENSED"},"test/onft/onft721/mocks/ERC721Mock.sol":{"keccak256":"0x6b9a321f3f1e9de4bb6ec64f01264717108e77da7173a3e735d3830542a4e8fe","urls":["bzz-raw://3cd5b0ecd6121979c0289d8d53c24286793e43c31d337c61fdea408ec1e78135","dweb:/ipfs/QmTrhHATg38ZkspBW1qz5dXcJHeHvMo42PoM3WZtq6KSGY"],"license":"UNLICENSED"},"test/onft/onft721/mocks/ONFT721AdapterMock.sol":{"keccak256":"0xe6a5e529274226003161bfca63fbceab6aaf10f91ef62d6f1d36cabb81da9df0","urls":["bzz-raw://ee5020c13278a047c22e2bdd86703c2c75ce1e76530005f7e3bce82e0dbf2d3b","dweb:/ipfs/QmQyfe2kn6Zbgu6vw2ss5kBjsTtBZzkFNtbD3mpf3T6Fx8"],"license":"UNLICENSED"},"test/onft/onft721/mocks/ONFT721Mock.sol":{"keccak256":"0xc31f9452ff2400b8279b490bdfe117aaaa27d1fcc35c1e6126a1cbc76a3be675","urls":["bzz-raw://dc38695a66a85a73b7098513e0fd65d5bf37751f8eb4d3f49dc937f0d6815b8c","dweb:/ipfs/QmV7Swzcstxv8L3n4ZFuS7YBQD4xsHwLDRqvwyoL8bFRtw"],"license":"UNLICENSED"}},"version":1},"id":141} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT721Core.sol/ONFT721Core.json b/packages/onft-evm/out/ONFT721Core.sol/ONFT721Core.json deleted file mode 100644 index 6f870fbda..000000000 --- a/packages/onft-evm/out/ONFT721Core.sol/ONFT721Core.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","combineOptions(uint32,uint16,bytes)":"bc70b354","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","msgInspector()":"111ecdad","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","token()":"fc0c546a","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Abstract contract for an ONFT721 token.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"constructor\":{\"params\":{\"_delegate\":\"The delegate capable of making OApp configurations inside of the endpoint.\",\"_lzEndpoint\":\"The address of the LayerZero endpoint.\"}},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"token()\":{\"returns\":{\"_0\":\"token The address of the ERC721 token implementation.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"ONFT721Core\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the OFT contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the token associated with the ONFT.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onft721/ONFT721Core.sol\":\"ONFT721Core\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"Allows things like wallet implementers to determine integration requirements, without understanding the underlying token implementation.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"constructor":{"params":{"_delegate":"The delegate capable of making OApp configurations inside of the endpoint.","_lzEndpoint":"The address of the LayerZero endpoint."}},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"token()":{"returns":{"_0":"token The address of the ERC721 token implementation."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the OFT contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the token associated with the ONFT."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onft721/ONFT721Core.sol":"ONFT721Core"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":8} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT721Mock.sol/ONFT721Mock.json b/packages/onft-evm/out/ONFT721Mock.sol/ONFT721Mock.json deleted file mode 100644 index bd3cfbee5..000000000 --- a/packages/onft-evm/out/ONFT721Mock.sol/ONFT721Mock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_lzEndpoint","type":"address","internalType":"address"},{"name":"_delegate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_COMPOSE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"buildMsgAndOptions","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"credit","inputs":[{"name":"_toAddress","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_srcEid","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"debit","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"exists","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"onftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"onftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ONFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ONFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidReceiver","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyNFTOwner","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x60a06040523480156200001157600080fd5b5060405162003ac638038062003ac6833981016040819052620000349162000277565b838383838383838381818181806001600160a01b0381166200007057604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007b8162000142565b506001600160a01b038083166080528116620000aa57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000f257600080fd5b505af115801562000107573d6000803e3d6000fd5b50505050505050505050816005908162000122919062000397565b50600662000131828262000397565b505050505050505050505062000463565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ba57600080fd5b81516001600160401b0380821115620001d757620001d762000192565b604051601f8301601f19908116603f0116810190828211818310171562000202576200020262000192565b81604052838152602092508660208588010111156200022057600080fd5b600091505b8382101562000244578582018301518183018401529082019062000225565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200027257600080fd5b919050565b600080600080608085870312156200028e57600080fd5b84516001600160401b0380821115620002a657600080fd5b620002b488838901620001a8565b95506020870151915080821115620002cb57600080fd5b50620002da87828801620001a8565b935050620002eb604086016200025a565b9150620002fb606086016200025a565b905092959194509250565b600181811c908216806200031b57607f821691505b6020821081036200033c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000392576000816000526020600020601f850160051c810160208610156200036d5750805b601f850160051c820191505b818110156200038e5782815560010162000379565b5050505b505050565b81516001600160401b03811115620003b357620003b362000192565b620003cb81620003c4845462000306565b8462000342565b602080601f831160018114620004035760008415620003ea5750858301515b600019600386901b1c1916600185901b1785556200038e565b600085815260208120601f198616915b82811015620004345788860151825594840194600190910190840162000413565b5085821015620004535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051613616620004b06000396000818161053a01528181610a0a0152818161128901528181611529015281816117ac01528181611dc80152818161219d015261225601526136166000f3fe6080604052600436106102935760003560e01c80637d25a05e1161015a578063bc70b354116100c1578063d42438851161007a578063d42438851461084c578063dcdfd9111461086c578063e985e9c51461088c578063f2fde38b146108ac578063fc0c546a146104be578063ff7bd03d146108cc57600080fd5b8063bc70b35414610799578063bd815db0146107b9578063c6414e7b146107cc578063c87b56dd146107f9578063ca5eb5e114610819578063d045a0dc1461083957600080fd5b8063a72f5dd811610113578063a72f5dd8146106cf578063b21a33e4146106f7578063b731ea0a1461070c578063b88d4fde1461072c578063b98bd0701461074c578063bb0b6a531461076c57600080fd5b80637d25a05e1461060d57806382413eac146106485780638da5cb5b1461066857806395d89b41146106865780639f68b9641461069b578063a22cb465146106af57600080fd5b806342842e0e116101fe5780635e280f11116101b75780635e280f11146105285780636352211e1461055c5780636fc1b31e1461057c5780637048de9a1461059c57806370a08231146105ca578063715018a6146105f857600080fd5b806342842e0e146104465780634dba701b146104665780634f558e791461048657806352ae2879146104be5780635535d461146104d15780635a0dfe4d146104f157600080fd5b806317442b701161025057806317442b701461037c5780631f5e13341461039e57806321eb730b146103c657806323b872dd146103e65780633400288b1461040657806340c10f191461042657600080fd5b806301ffc9a71461029857806306fdde03146102cd578063081812fc146102ef578063095ea7b314610327578063111ecdad1461034957806313137d6514610369575b600080fd5b3480156102a457600080fd5b506102b86102b336600461263b565b6108ec565b60405190151581526020015b60405180910390f35b3480156102d957600080fd5b506102e261093e565b6040516102c491906126a8565b3480156102fb57600080fd5b5061030f61030a3660046126bb565b6109d0565b6040516001600160a01b0390911681526020016102c4565b34801561033357600080fd5b506103476103423660046126e9565b6109f9565b005b34801561035557600080fd5b5060045461030f906001600160a01b031681565b610347610377366004612775565b610a08565b34801561038857600080fd5b50604080516001815260026020820152016102c4565b3480156103aa57600080fd5b506103b3600181565b60405161ffff90911681526020016102c4565b6103d96103d4366004612826565b610ac8565b6040516102c49190612893565b3480156103f257600080fd5b506103476104013660046128d5565b610ba3565b34801561041257600080fd5b5061034761042136600461292f565b610c2e565b34801561043257600080fd5b506103476104413660046126e9565b610c40565b34801561045257600080fd5b506103476104613660046128d5565b610c4a565b34801561047257600080fd5b5061034761048136600461294b565b610c6a565b34801561049257600080fd5b506102b86104a13660046126bb565b6000908152600760205260409020546001600160a01b0316151590565b3480156104ca57600080fd5b503061030f565b3480156104dd57600080fd5b506102e26104ec36600461299b565b610c75565b3480156104fd57600080fd5b506102b861050c36600461292f565b63ffffffff919091166000908152600160205260409020541490565b34801561053457600080fd5b5061030f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561056857600080fd5b5061030f6105773660046126bb565b610d1a565b34801561058857600080fd5b506103476105973660046129ce565b610d25565b3480156105a857600080fd5b506105bc6105b73660046129eb565b610d82565b6040516102c4929190612a1f565b3480156105d657600080fd5b506105ea6105e53660046129ce565b610d97565b6040519081526020016102c4565b34801561060457600080fd5b50610347610ddf565b34801561061957600080fd5b5061063061062836600461292f565b600092915050565b6040516001600160401b0390911681526020016102c4565b34801561065457600080fd5b506102b8610663366004612a44565b610df3565b34801561067457600080fd5b506000546001600160a01b031661030f565b34801561069257600080fd5b506102e2610e08565b3480156106a757600080fd5b5060006102b8565b3480156106bb57600080fd5b506103476106ca366004612ab8565b610e17565b3480156106db57600080fd5b50604080516311f0c6d360e11b815260016020820152016102c4565b34801561070357600080fd5b506103b3600281565b34801561071857600080fd5b5060025461030f906001600160a01b031681565b34801561073857600080fd5b50610347610747366004612bfe565b610e22565b34801561075857600080fd5b50610347610767366004612cad565b610e39565b34801561077857600080fd5b506105ea610787366004612cee565b60016020526000908152604090205481565b3480156107a557600080fd5b506102e26107b4366004612d09565b610e53565b6103476107c7366004612cad565b610ffb565b3480156107d857600080fd5b506107ec6107e7366004612d69565b611185565b6040516102c49190612daf565b34801561080557600080fd5b506102e26108143660046126bb565b6111ed565b34801561082557600080fd5b506103476108343660046129ce565b611262565b610347610847366004612775565b6112e8565b34801561085857600080fd5b506103476108673660046129ce565b611317565b34801561087857600080fd5b50610347610887366004612dc6565b61136d565b34801561089857600080fd5b506102b86108a7366004612de9565b611378565b3480156108b857600080fd5b506103476108c73660046129ce565b6113a6565b3480156108d857600080fd5b506102b86108e7366004612e17565b6113e4565b60006001600160e01b031982166380ac58cd60e01b148061091d57506001600160e01b03198216635b5e139f60e01b145b8061093857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461094d90612e33565b80601f016020809104026020016040519081016040528092919081815260200182805461097990612e33565b80156109c65780601f1061099b576101008083540402835291602001916109c6565b820191906000526020600020905b8154815290600101906020018083116109a957829003601f168201915b5050505050905090565b60006109db8261141a565b506000828152600960205260409020546001600160a01b0316610938565b610a04828233611453565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610a58576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610a7290610a6d908a612cee565b611460565b14610ab057610a846020880188612cee565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610a4f565b610abf8787878787878761149c565b50505050505050565b610ad06125de565b6020840135610af257604051631e4ec46b60e01b815260040160405180910390fd5b610b0d336040860135610b086020880188612cee565b6115fb565b600080610b198661165b565b9092509050610b45610b2e6020880188612cee565b8383610b3f368a90038a018a612e67565b88611779565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610b7a60208a018a612cee565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610bcd57604051633250574960e11b815260006004820152602401610a4f565b6000610bda838333611884565b9050836001600160a01b0316816001600160a01b031614610c28576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610a4f565b50505050565b610c3661197d565b610a0482826119aa565b610a0482826119ff565b610c6583838360405180602001604052806000815250610e22565b505050565b610c65838383611a64565b600360209081526000928352604080842090915290825290208054610c9990612e33565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc590612e33565b8015610d125780601f10610ce757610100808354040283529160200191610d12565b820191906000526020600020905b815481529060010190602001808311610cf557829003601f168201915b505050505081565b60006109388261141a565b610d2d61197d565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b606080610d8e8361165b565b91509150915091565b60006001600160a01b038216610dc3576040516322718ad960e21b815260006004820152602401610a4f565b506001600160a01b031660009081526008602052604090205490565b610de761197d565b610df16000611a6e565b565b6001600160a01b03811630145b949350505050565b60606006805461094d90612e33565b610a04338383611abe565b610e2d848484610ba3565b610c2884848484611b5d565b610e4161197d565b610a04610e4e8284612e99565b611c7f565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610e8790612e33565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb390612e33565b8015610f005780601f10610ed557610100808354040283529160200191610f00565b820191906000526020600020905b815481529060010190602001808311610ee357829003601f168201915b505050505090508051600003610f505783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610e009350505050565b6000839003610f60579050610e00565b60028310610fde57610fa784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d8692505050565b80610fb58460028188612f6e565b604051602001610fc793929190612f98565b604051602081830303815290604052915050610e00565b8383604051639a6d49cd60e01b8152600401610a4f929190612fe9565b60005b81811015611104573683838381811061101957611019612ffd565b905060200281019061102b9190613013565b905061105e61103d6020830183612cee565b602083013563ffffffff919091166000908152600160205260409020541490565b61106857506110fc565b3063d045a0dc60c08301358360a0810135611087610100830183613034565b611098610100890160e08a016129ce565b6110a66101208a018a613034565b6040518963ffffffff1660e01b81526004016110c8979695949392919061308f565b6000604051808303818588803b1580156110e157600080fd5b505af11580156110f5573d6000803e3d6000fd5b5050505050505b600101610ffe565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611143573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116b9190810190613115565b604051638351eea760e01b8152600401610a4f91906126a8565b604080518082019091526000808252602082015260208301356111bb57604051631e4ec46b60e01b815260040160405180910390fd5b6000806111c78561165b565b90925090506111e46111dc6020870187612cee565b838387611db2565b95945050505050565b60606111f88261141a565b50600061121060408051602081019091526000815290565b90506000815111611230576040518060200160405280600081525061125b565b8061123a84611e8a565b60405160200161124b929190613182565b6040516020818303038152906040525b9392505050565b61126a61197d565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b5050505050565b3330146113085760405163029a949d60e31b815260040160405180910390fd5b610abf87878787878787610ab0565b61131f61197d565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610d77565b610a043383836115fb565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6113ae61197d565b6001600160a01b0381166113d857604051631e4fbdf760e01b815260006004820152602401610a4f565b6113e181611a6e565b50565b60006020820180359060019083906113fc9086612cee565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061093857604051637e27328960e01b815260048101849052602401610a4f565b610c658383836001611f1c565b63ffffffff8116600090815260016020526040812054806109385760405163f6ff4fb760e01b815263ffffffff84166004820152602401610a4f565b60006114ae6114ab8787612022565b90565b905060006114bc878761203a565b90506114d582826114d060208d018d612cee565b611a64565b604086111561159957600061150f6114f360608c0160408d016131b1565b61150060208d018d612cee565b61150a8b8b612057565b6120a2565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906115659086908d9060009087906004016131ce565b600060405180830381600087803b15801561157f57600080fd5b505af1158015611593573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56115d260208d018d612cee565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b61160482610d1a565b6001600160a01b0316836001600160a01b031614611652578261162683610d1a565b604051634342715b60e11b81526001600160a01b03928316600482015291166024820152604401610a4f565b610c65826120d1565b60608060006116b46020850135604086013561167a6080880188613034565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061210c92505050565b90935090506000816116c75760016116ca565b60025b90506116ea6116dc6020870187612cee565b826107b46060890189613034565b6004549093506001600160a01b031615611772576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb9161172f918891889101612a1f565b602060405180830381865afa15801561174c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177091906131ff565b505b5050915091565b6117816125de565b60006117908460000151612171565b6020850151909150156117aa576117aa8460200151612199565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016117fa8c611460565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161183692919061321c565b60806040518083038185885af1158015611854573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061187991906132c5565b979650505050505050565b6000828152600760205260408120546001600160a01b03908116908316156118b1576118b181848661227b565b6001600160a01b038116156118ef576118ce600085600080611f1c565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b0385161561191e576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610df15760405163118cdaa760e01b8152336004820152602401610a4f565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6001600160a01b038216611a2957604051633250574960e11b815260006004820152602401610a4f565b6000611a3783836000611884565b90506001600160a01b03811615610c65576040516339e3563760e11b815260006004820152602401610a4f565b610c6583836119ff565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216611af057604051630b61174360e31b81526001600160a01b0383166004820152602401610a4f565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610c2857604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611b9f90339088908790879060040161330f565b6020604051808303816000875af1925050508015611bda575060408051601f3d908101601f19168201909252611bd791810190613342565b60015b611c43573d808015611c08576040519150601f19603f3d011682016040523d82523d6000602084013e611c0d565b606091505b508051600003611c3b57604051633250574960e11b81526001600160a01b0385166004820152602401610a4f565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146112e157604051633250574960e11b81526001600160a01b0385166004820152602401610a4f565b60005b8151811015611d5657611cb1828281518110611ca057611ca0612ffd565b602002602001015160400151611d86565b818181518110611cc357611cc3612ffd565b60200260200101516040015160036000848481518110611ce557611ce5612ffd565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611d1f57611d1f612ffd565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611d4d91906133af565b50600101611c82565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610d77919061346e565b600281015161ffff8116600314610a045781604051639a6d49cd60e01b8152600401610a4f91906126a8565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611e1589611460565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611e4a92919061321c565b6040805180830381865afa158015611e66573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906134f9565b60606000611e97836122df565b60010190506000816001600160401b03811115611eb657611eb6612af1565b6040519080825280601f01601f191660200182016040528015611ee0576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611eea57509392505050565b8080611f3057506001600160a01b03821615155b15611ff2576000611f408461141a565b90506001600160a01b03831615801590611f6c5750826001600160a01b0316816001600160a01b031614155b8015611f7f5750611f7d8184611378565b155b15611fa85760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610a4f565b8115611ff05783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b60006120316020828486612f6e565b61125b91613515565b600061204a604060208486612f6e565b81019061125b91906126bb565b60606120668260408186612f6e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b60608383836040516020016120b993929190613533565b60405160208183030381529060405290509392505050565b60006120e06000836000611884565b90506001600160a01b038116610a0457604051637e27328960e01b815260048101839052602401610a4f565b8051606090151580612140576040805160208101879052908101859052606001604051602081830303815290604052612167565b84843385604051602001612157949392919061357d565b6040516020818303038152906040525b9150935093915050565b6000813414612195576040516304fb820960e51b8152346004820152602401610a4f565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221d91906135b1565b90506001600160a01b038116612246576040516329b99a9560e11b815260040160405180910390fd5b610a046001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856123b7565b612286838383612411565b610c65576001600160a01b0383166122b457604051637e27328960e01b815260048101829052602401610a4f565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610a4f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061231e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061234a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061236857662386f26fc10000830492506010015b6305f5e1008310612380576305f5e100830492506008015b612710831061239457612710830492506004015b606483106123a6576064830492506002015b600a83106109385760010192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610c28908590612474565b60006001600160a01b03831615801590610e005750826001600160a01b0316846001600160a01b0316148061244b575061244b8484611378565b80610e005750506000908152600960205260409020546001600160a01b03908116911614919050565b60006124896001600160a01b038416836124d7565b905080516000141580156124ae5750808060200190518101906124ac91906131ff565b155b15610c6557604051635274afe760e01b81526001600160a01b0384166004820152602401610a4f565b606061125b8383600084600080856001600160a01b031684866040516124fd91906135ce565b60006040518083038185875af1925050503d806000811461253a576040519150601f19603f3d011682016040523d82523d6000602084013e61253f565b606091505b509150915061254f868383612559565b9695505050505050565b60608261256e57612569826125b5565b61125b565b815115801561258557506001600160a01b0384163b155b156125ae57604051639996b31560e01b81526001600160a01b0385166004820152602401610a4f565b508061125b565b8051156125c55780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001612620604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146113e157600080fd5b60006020828403121561264d57600080fd5b813561125b81612625565b60005b8381101561267357818101518382015260200161265b565b50506000910152565b60008151808452612694816020860160208601612658565b601f01601f19169290920160200192915050565b60208152600061125b602083018461267c565b6000602082840312156126cd57600080fd5b5035919050565b6001600160a01b03811681146113e157600080fd5b600080604083850312156126fc57600080fd5b8235612707816126d4565b946020939093013593505050565b60006060828403121561272757600080fd5b50919050565b60008083601f84011261273f57600080fd5b5081356001600160401b0381111561275657600080fd5b60208301915083602082850101111561276e57600080fd5b9250929050565b600080600080600080600060e0888a03121561279057600080fd5b61279a8989612715565b96506060880135955060808801356001600160401b03808211156127bd57600080fd5b6127c98b838c0161272d565b909750955060a08a013591506127de826126d4565b90935060c089013590808211156127f457600080fd5b506128018a828b0161272d565b989b979a50959850939692959293505050565b600060c0828403121561272757600080fd5b6000806000838503608081121561283c57600080fd5b84356001600160401b0381111561285257600080fd5b61285e87828801612814565b9450506040601f198201121561287357600080fd5b506020840191506060840135612888816126d4565b809150509250925092565b6000608082019050825182526001600160401b03602084015116602083015260408301516128ce604084018280518252602090810151910152565b5092915050565b6000806000606084860312156128ea57600080fd5b83356128f5816126d4565b92506020840135612905816126d4565b929592945050506040919091013590565b803563ffffffff8116811461292a57600080fd5b919050565b6000806040838503121561294257600080fd5b61270783612916565b60008060006060848603121561296057600080fd5b833561296b816126d4565b92506020840135915061298060408501612916565b90509250925092565b803561ffff8116811461292a57600080fd5b600080604083850312156129ae57600080fd5b6129b783612916565b91506129c560208401612989565b90509250929050565b6000602082840312156129e057600080fd5b813561125b816126d4565b6000602082840312156129fd57600080fd5b81356001600160401b03811115612a1357600080fd5b610e0084828501612814565b604081526000612a32604083018561267c565b82810360208401526111e4818561267c565b60008060008060a08587031215612a5a57600080fd5b612a648686612715565b935060608501356001600160401b03811115612a7f57600080fd5b612a8b8782880161272d565b9094509250506080850135612a9f816126d4565b939692955090935050565b80151581146113e157600080fd5b60008060408385031215612acb57600080fd5b8235612ad6816126d4565b91506020830135612ae681612aaa565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612b2957612b29612af1565b60405290565b604051606081016001600160401b0381118282101715612b2957612b29612af1565b604051601f8201601f191681016001600160401b0381118282101715612b7957612b79612af1565b604052919050565b60006001600160401b03821115612b9a57612b9a612af1565b50601f01601f191660200190565b600082601f830112612bb957600080fd5b8135612bcc612bc782612b81565b612b51565b818152846020838601011115612be157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612c1457600080fd5b8435612c1f816126d4565b93506020850135612c2f816126d4565b92506040850135915060608501356001600160401b03811115612c5157600080fd5b612c5d87828801612ba8565b91505092959194509250565b60008083601f840112612c7b57600080fd5b5081356001600160401b03811115612c9257600080fd5b6020830191508360208260051b850101111561276e57600080fd5b60008060208385031215612cc057600080fd5b82356001600160401b03811115612cd657600080fd5b612ce285828601612c69565b90969095509350505050565b600060208284031215612d0057600080fd5b61125b82612916565b60008060008060608587031215612d1f57600080fd5b612d2885612916565b9350612d3660208601612989565b925060408501356001600160401b03811115612d5157600080fd5b612d5d8782880161272d565b95989497509550505050565b60008060408385031215612d7c57600080fd5b82356001600160401b03811115612d9257600080fd5b612d9e85828601612814565b9250506020830135612ae681612aaa565b815181526020808301519082015260408101610938565b60008060408385031215612dd957600080fd5b823591506129c560208401612916565b60008060408385031215612dfc57600080fd5b8235612e07816126d4565b91506020830135612ae6816126d4565b600060608284031215612e2957600080fd5b61125b8383612715565b600181811c90821680612e4757607f821691505b60208210810361272757634e487b7160e01b600052602260045260246000fd5b600060408284031215612e7957600080fd5b612e81612b07565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612eb357612eb3612af1565b8360051b6020612ec4818301612b51565b868152918501918181019036841115612edc57600080fd5b865b84811015612f6257803586811115612ef65760008081fd5b88016060368290031215612f0a5760008081fd5b612f12612b2f565b612f1b82612916565b8152612f28868301612989565b8682015260408083013589811115612f405760008081fd5b612f4c36828601612ba8565b9183019190915250845250918301918301612ede565b50979650505050505050565b60008085851115612f7e57600080fd5b83861115612f8b57600080fd5b5050820193919092039150565b60008451612faa818460208901612658565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610e00602083018486612fc0565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1983360301811261302a57600080fd5b9190910192915050565b6000808335601e1984360301811261304b57600080fd5b8301803591506001600160401b0382111561306557600080fd5b60200191503681900382131561276e57600080fd5b6001600160401b03811681146113e157600080fd5b63ffffffff61309d89612916565b16815260208801356020820152600060408901356130ba8161307a565b6001600160401b03811660408401525087606083015260e060808301526130e560e083018789612fc0565b6001600160a01b03861660a084015282810360c0840152613107818587612fc0565b9a9950505050505050505050565b60006020828403121561312757600080fd5b81516001600160401b0381111561313d57600080fd5b8201601f8101841361314e57600080fd5b805161315c612bc782612b81565b81815285602083850101111561317157600080fd5b6111e4826020830160208601612658565b60008351613194818460208801612658565b8351908301906131a8818360208801612658565b01949350505050565b6000602082840312156131c357600080fd5b813561125b8161307a565b60018060a01b038516815283602082015261ffff8316604082015260806060820152600061254f608083018461267c565b60006020828403121561321157600080fd5b815161125b81612aaa565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261325260e084018261267c565b90506060850151603f198483030160a085015261326f828261267c565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156132a757600080fd5b6132af612b07565b9050815181526020820151602082015292915050565b6000608082840312156132d757600080fd5b6132df612b2f565b8251815260208301516132f18161307a565b60208201526133038460408501613295565b60408201529392505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061254f9083018461267c565b60006020828403121561335457600080fd5b815161125b81612625565b601f821115610c65576000816000526020600020601f850160051c810160208610156133885750805b601f850160051c820191505b818110156133a757828155600101613394565b505050505050565b81516001600160401b038111156133c8576133c8612af1565b6133dc816133d68454612e33565b8461335f565b602080601f83116001811461341157600084156133f95750858301515b600019600386901b1c1916600185901b1785556133a7565b600085815260208120601f198616915b8281101561344057888601518255948401946001909101908401613421565b508582101561345e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156134eb57888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526134d78186018361267c565b968901969450505090860190600101613497565b509098975050505050505050565b60006040828403121561350b57600080fd5b61125b8383613295565b8035602083101561093857600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061356e81600c850160208701612658565b91909101600c01949350505050565b848152836020820152826040820152600082516135a1816060850160208701612658565b9190910160600195945050505050565b6000602082840312156135c357600080fd5b815161125b816126d4565b6000825161302a81846020870161265856fea264697066735822122071957703e50ccb286e5ebe46d2f949f82f18febb51e7410edae37ef294c4ceff64736f6c63430008160033","sourceMap":"210:865:144:-:0;;;248:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;390:5;397:7;406:11;419:9;390:5;397:7;406:11;419:9;406:11;419:9;406:11;419:9;;-1:-1:-1;;;;;1273:26:105;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:105;;1350:1;1322:31;;;2061:51:145;2034:18;;1322:31:105;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:33;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:33;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:33;;-1:-1:-1;;;;;2079:32:145;;;1163:31:33;;;2061:51:145;1163:20:33;;;;;;2034:18:145;;1163:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;965:83:32;;1952:102:8;;1455:5:114;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:114;:17;1480:7;1470;:17;:::i;:::-;;1381:113;;673:195:5;;;;248:184:144;;;;210:865;;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:145:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:145;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:145;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:177::-;1074:13;;-1:-1:-1;;;;;1116:31:145;;1106:42;;1096:70;;1162:1;1159;1152:12;1096:70;995:177;;;:::o;1177:733::-;1294:6;1302;1310;1318;1371:3;1359:9;1350:7;1346:23;1342:33;1339:53;;;1388:1;1385;1378:12;1339:53;1415:16;;-1:-1:-1;;;;;1480:14:145;;;1477:34;;;1507:1;1504;1497:12;1477:34;1530:61;1583:7;1574:6;1563:9;1559:22;1530:61;:::i;:::-;1520:71;;1637:2;1626:9;1622:18;1616:25;1600:41;;1666:2;1656:8;1653:16;1650:36;;;1682:1;1679;1672:12;1650:36;;1705:63;1760:7;1749:8;1738:9;1734:24;1705:63;:::i;:::-;1695:73;;;1787:49;1832:2;1821:9;1817:18;1787:49;:::i;:::-;1777:59;;1855:49;1900:2;1889:9;1885:18;1855:49;:::i;:::-;1845:59;;1177:733;;;;;;;:::o;2123:380::-;2202:1;2198:12;;;;2245;;;2266:61;;2320:4;2312:6;2308:17;2298:27;;2266:61;2373:2;2365:6;2362:14;2342:18;2339:38;2336:161;;2419:10;2414:3;2410:20;2407:1;2400:31;2454:4;2451:1;2444:15;2482:4;2479:1;2472:15;2336:161;;2123:380;;;:::o;2634:543::-;2736:2;2731:3;2728:11;2725:446;;;2772:1;2796:5;2793:1;2786:16;2840:4;2837:1;2827:18;2910:2;2898:10;2894:19;2891:1;2887:27;2881:4;2877:38;2946:4;2934:10;2931:20;2928:47;;;-1:-1:-1;2969:4:145;2928:47;3024:2;3019:3;3015:12;3012:1;3008:20;3002:4;2998:31;2988:41;;3079:82;3097:2;3090:5;3087:13;3079:82;;;3142:17;;;3123:1;3112:13;3079:82;;;3083:3;;;2725:446;2634:543;;;:::o;3353:1345::-;3473:10;;-1:-1:-1;;;;;3495:30:145;;3492:56;;;3528:18;;:::i;:::-;3557:97;3647:6;3607:38;3639:4;3633:11;3607:38;:::i;:::-;3601:4;3557:97;:::i;:::-;3709:4;;3766:2;3755:14;;3783:1;3778:663;;;;4485:1;4502:6;4499:89;;;-1:-1:-1;4554:19:145;;;4548:26;4499:89;-1:-1:-1;;3310:1:145;3306:11;;;3302:24;3298:29;3288:40;3334:1;3330:11;;;3285:57;4601:81;;3748:944;;3778:663;2581:1;2574:14;;;2618:4;2605:18;;-1:-1:-1;;3814:20:145;;;3932:236;3946:7;3943:1;3940:14;3932:236;;;4035:19;;;4029:26;4014:42;;4127:27;;;;4095:1;4083:14;;;;3962:19;;3932:236;;;3936:3;4196:6;4187:7;4184:19;4181:201;;;4257:19;;;4251:26;-1:-1:-1;;4340:1:145;4336:14;;;4352:3;4332:24;4328:37;4324:42;4309:58;4294:74;;4181:201;-1:-1:-1;;;;;4428:1:145;4412:14;;;4408:22;4395:36;;-1:-1:-1;3353:1345:145:o;:::-;210:865:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106102935760003560e01c80637d25a05e1161015a578063bc70b354116100c1578063d42438851161007a578063d42438851461084c578063dcdfd9111461086c578063e985e9c51461088c578063f2fde38b146108ac578063fc0c546a146104be578063ff7bd03d146108cc57600080fd5b8063bc70b35414610799578063bd815db0146107b9578063c6414e7b146107cc578063c87b56dd146107f9578063ca5eb5e114610819578063d045a0dc1461083957600080fd5b8063a72f5dd811610113578063a72f5dd8146106cf578063b21a33e4146106f7578063b731ea0a1461070c578063b88d4fde1461072c578063b98bd0701461074c578063bb0b6a531461076c57600080fd5b80637d25a05e1461060d57806382413eac146106485780638da5cb5b1461066857806395d89b41146106865780639f68b9641461069b578063a22cb465146106af57600080fd5b806342842e0e116101fe5780635e280f11116101b75780635e280f11146105285780636352211e1461055c5780636fc1b31e1461057c5780637048de9a1461059c57806370a08231146105ca578063715018a6146105f857600080fd5b806342842e0e146104465780634dba701b146104665780634f558e791461048657806352ae2879146104be5780635535d461146104d15780635a0dfe4d146104f157600080fd5b806317442b701161025057806317442b701461037c5780631f5e13341461039e57806321eb730b146103c657806323b872dd146103e65780633400288b1461040657806340c10f191461042657600080fd5b806301ffc9a71461029857806306fdde03146102cd578063081812fc146102ef578063095ea7b314610327578063111ecdad1461034957806313137d6514610369575b600080fd5b3480156102a457600080fd5b506102b86102b336600461263b565b6108ec565b60405190151581526020015b60405180910390f35b3480156102d957600080fd5b506102e261093e565b6040516102c491906126a8565b3480156102fb57600080fd5b5061030f61030a3660046126bb565b6109d0565b6040516001600160a01b0390911681526020016102c4565b34801561033357600080fd5b506103476103423660046126e9565b6109f9565b005b34801561035557600080fd5b5060045461030f906001600160a01b031681565b610347610377366004612775565b610a08565b34801561038857600080fd5b50604080516001815260026020820152016102c4565b3480156103aa57600080fd5b506103b3600181565b60405161ffff90911681526020016102c4565b6103d96103d4366004612826565b610ac8565b6040516102c49190612893565b3480156103f257600080fd5b506103476104013660046128d5565b610ba3565b34801561041257600080fd5b5061034761042136600461292f565b610c2e565b34801561043257600080fd5b506103476104413660046126e9565b610c40565b34801561045257600080fd5b506103476104613660046128d5565b610c4a565b34801561047257600080fd5b5061034761048136600461294b565b610c6a565b34801561049257600080fd5b506102b86104a13660046126bb565b6000908152600760205260409020546001600160a01b0316151590565b3480156104ca57600080fd5b503061030f565b3480156104dd57600080fd5b506102e26104ec36600461299b565b610c75565b3480156104fd57600080fd5b506102b861050c36600461292f565b63ffffffff919091166000908152600160205260409020541490565b34801561053457600080fd5b5061030f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561056857600080fd5b5061030f6105773660046126bb565b610d1a565b34801561058857600080fd5b506103476105973660046129ce565b610d25565b3480156105a857600080fd5b506105bc6105b73660046129eb565b610d82565b6040516102c4929190612a1f565b3480156105d657600080fd5b506105ea6105e53660046129ce565b610d97565b6040519081526020016102c4565b34801561060457600080fd5b50610347610ddf565b34801561061957600080fd5b5061063061062836600461292f565b600092915050565b6040516001600160401b0390911681526020016102c4565b34801561065457600080fd5b506102b8610663366004612a44565b610df3565b34801561067457600080fd5b506000546001600160a01b031661030f565b34801561069257600080fd5b506102e2610e08565b3480156106a757600080fd5b5060006102b8565b3480156106bb57600080fd5b506103476106ca366004612ab8565b610e17565b3480156106db57600080fd5b50604080516311f0c6d360e11b815260016020820152016102c4565b34801561070357600080fd5b506103b3600281565b34801561071857600080fd5b5060025461030f906001600160a01b031681565b34801561073857600080fd5b50610347610747366004612bfe565b610e22565b34801561075857600080fd5b50610347610767366004612cad565b610e39565b34801561077857600080fd5b506105ea610787366004612cee565b60016020526000908152604090205481565b3480156107a557600080fd5b506102e26107b4366004612d09565b610e53565b6103476107c7366004612cad565b610ffb565b3480156107d857600080fd5b506107ec6107e7366004612d69565b611185565b6040516102c49190612daf565b34801561080557600080fd5b506102e26108143660046126bb565b6111ed565b34801561082557600080fd5b506103476108343660046129ce565b611262565b610347610847366004612775565b6112e8565b34801561085857600080fd5b506103476108673660046129ce565b611317565b34801561087857600080fd5b50610347610887366004612dc6565b61136d565b34801561089857600080fd5b506102b86108a7366004612de9565b611378565b3480156108b857600080fd5b506103476108c73660046129ce565b6113a6565b3480156108d857600080fd5b506102b86108e7366004612e17565b6113e4565b60006001600160e01b031982166380ac58cd60e01b148061091d57506001600160e01b03198216635b5e139f60e01b145b8061093857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606005805461094d90612e33565b80601f016020809104026020016040519081016040528092919081815260200182805461097990612e33565b80156109c65780601f1061099b576101008083540402835291602001916109c6565b820191906000526020600020905b8154815290600101906020018083116109a957829003601f168201915b5050505050905090565b60006109db8261141a565b506000828152600960205260409020546001600160a01b0316610938565b610a04828233611453565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610a58576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610a7290610a6d908a612cee565b611460565b14610ab057610a846020880188612cee565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610a4f565b610abf8787878787878761149c565b50505050505050565b610ad06125de565b6020840135610af257604051631e4ec46b60e01b815260040160405180910390fd5b610b0d336040860135610b086020880188612cee565b6115fb565b600080610b198661165b565b9092509050610b45610b2e6020880188612cee565b8383610b3f368a90038a018a612e67565b88611779565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610b7a60208a018a612cee565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610bcd57604051633250574960e11b815260006004820152602401610a4f565b6000610bda838333611884565b9050836001600160a01b0316816001600160a01b031614610c28576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610a4f565b50505050565b610c3661197d565b610a0482826119aa565b610a0482826119ff565b610c6583838360405180602001604052806000815250610e22565b505050565b610c65838383611a64565b600360209081526000928352604080842090915290825290208054610c9990612e33565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc590612e33565b8015610d125780601f10610ce757610100808354040283529160200191610d12565b820191906000526020600020905b815481529060010190602001808311610cf557829003601f168201915b505050505081565b60006109388261141a565b610d2d61197d565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b606080610d8e8361165b565b91509150915091565b60006001600160a01b038216610dc3576040516322718ad960e21b815260006004820152602401610a4f565b506001600160a01b031660009081526008602052604090205490565b610de761197d565b610df16000611a6e565b565b6001600160a01b03811630145b949350505050565b60606006805461094d90612e33565b610a04338383611abe565b610e2d848484610ba3565b610c2884848484611b5d565b610e4161197d565b610a04610e4e8284612e99565b611c7f565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610e8790612e33565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb390612e33565b8015610f005780601f10610ed557610100808354040283529160200191610f00565b820191906000526020600020905b815481529060010190602001808311610ee357829003601f168201915b505050505090508051600003610f505783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610e009350505050565b6000839003610f60579050610e00565b60028310610fde57610fa784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d8692505050565b80610fb58460028188612f6e565b604051602001610fc793929190612f98565b604051602081830303815290604052915050610e00565b8383604051639a6d49cd60e01b8152600401610a4f929190612fe9565b60005b81811015611104573683838381811061101957611019612ffd565b905060200281019061102b9190613013565b905061105e61103d6020830183612cee565b602083013563ffffffff919091166000908152600160205260409020541490565b61106857506110fc565b3063d045a0dc60c08301358360a0810135611087610100830183613034565b611098610100890160e08a016129ce565b6110a66101208a018a613034565b6040518963ffffffff1660e01b81526004016110c8979695949392919061308f565b6000604051808303818588803b1580156110e157600080fd5b505af11580156110f5573d6000803e3d6000fd5b5050505050505b600101610ffe565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611143573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116b9190810190613115565b604051638351eea760e01b8152600401610a4f91906126a8565b604080518082019091526000808252602082015260208301356111bb57604051631e4ec46b60e01b815260040160405180910390fd5b6000806111c78561165b565b90925090506111e46111dc6020870187612cee565b838387611db2565b95945050505050565b60606111f88261141a565b50600061121060408051602081019091526000815290565b90506000815111611230576040518060200160405280600081525061125b565b8061123a84611e8a565b60405160200161124b929190613182565b6040516020818303038152906040525b9392505050565b61126a61197d565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b5050505050565b3330146113085760405163029a949d60e31b815260040160405180910390fd5b610abf87878787878787610ab0565b61131f61197d565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610d77565b610a043383836115fb565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6113ae61197d565b6001600160a01b0381166113d857604051631e4fbdf760e01b815260006004820152602401610a4f565b6113e181611a6e565b50565b60006020820180359060019083906113fc9086612cee565b63ffffffff1681526020810191909152604001600020541492915050565b6000818152600760205260408120546001600160a01b03168061093857604051637e27328960e01b815260048101849052602401610a4f565b610c658383836001611f1c565b63ffffffff8116600090815260016020526040812054806109385760405163f6ff4fb760e01b815263ffffffff84166004820152602401610a4f565b60006114ae6114ab8787612022565b90565b905060006114bc878761203a565b90506114d582826114d060208d018d612cee565b611a64565b604086111561159957600061150f6114f360608c0160408d016131b1565b61150060208d018d612cee565b61150a8b8b612057565b6120a2565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906115659086908d9060009087906004016131ce565b600060405180830381600087803b15801561157f57600080fd5b505af1158015611593573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef56115d260208d018d612cee565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b61160482610d1a565b6001600160a01b0316836001600160a01b031614611652578261162683610d1a565b604051634342715b60e11b81526001600160a01b03928316600482015291166024820152604401610a4f565b610c65826120d1565b60608060006116b46020850135604086013561167a6080880188613034565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061210c92505050565b90935090506000816116c75760016116ca565b60025b90506116ea6116dc6020870187612cee565b826107b46060890189613034565b6004549093506001600160a01b031615611772576004805460405163043a78eb60e01b81526001600160a01b039091169163043a78eb9161172f918891889101612a1f565b602060405180830381865afa15801561174c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177091906131ff565b505b5050915091565b6117816125de565b60006117908460000151612171565b6020850151909150156117aa576117aa8460200151612199565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016117fa8c611460565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161183692919061321c565b60806040518083038185885af1158015611854573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061187991906132c5565b979650505050505050565b6000828152600760205260408120546001600160a01b03908116908316156118b1576118b181848661227b565b6001600160a01b038116156118ef576118ce600085600080611f1c565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b0385161561191e576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000546001600160a01b03163314610df15760405163118cdaa760e01b8152336004820152602401610a4f565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6001600160a01b038216611a2957604051633250574960e11b815260006004820152602401610a4f565b6000611a3783836000611884565b90506001600160a01b03811615610c65576040516339e3563760e11b815260006004820152602401610a4f565b610c6583836119ff565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216611af057604051630b61174360e31b81526001600160a01b0383166004820152602401610a4f565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610c2857604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611b9f90339088908790879060040161330f565b6020604051808303816000875af1925050508015611bda575060408051601f3d908101601f19168201909252611bd791810190613342565b60015b611c43573d808015611c08576040519150601f19603f3d011682016040523d82523d6000602084013e611c0d565b606091505b508051600003611c3b57604051633250574960e11b81526001600160a01b0385166004820152602401610a4f565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146112e157604051633250574960e11b81526001600160a01b0385166004820152602401610a4f565b60005b8151811015611d5657611cb1828281518110611ca057611ca0612ffd565b602002602001015160400151611d86565b818181518110611cc357611cc3612ffd565b60200260200101516040015160036000848481518110611ce557611ce5612ffd565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110611d1f57611d1f612ffd565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081611d4d91906133af565b50600101611c82565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610d77919061346e565b600281015161ffff8116600314610a045781604051639a6d49cd60e01b8152600401610a4f91906126a8565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff168152602001611e1589611460565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611e4a92919061321c565b6040805180830381865afa158015611e66573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906134f9565b60606000611e97836122df565b60010190506000816001600160401b03811115611eb657611eb6612af1565b6040519080825280601f01601f191660200182016040528015611ee0576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611eea57509392505050565b8080611f3057506001600160a01b03821615155b15611ff2576000611f408461141a565b90506001600160a01b03831615801590611f6c5750826001600160a01b0316816001600160a01b031614155b8015611f7f5750611f7d8184611378565b155b15611fa85760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610a4f565b8115611ff05783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b60006120316020828486612f6e565b61125b91613515565b600061204a604060208486612f6e565b81019061125b91906126bb565b60606120668260408186612f6e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b60608383836040516020016120b993929190613533565b60405160208183030381529060405290509392505050565b60006120e06000836000611884565b90506001600160a01b038116610a0457604051637e27328960e01b815260048101839052602401610a4f565b8051606090151580612140576040805160208101879052908101859052606001604051602081830303815290604052612167565b84843385604051602001612157949392919061357d565b6040516020818303038152906040525b9150935093915050565b6000813414612195576040516304fb820960e51b8152346004820152602401610a4f565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221d91906135b1565b90506001600160a01b038116612246576040516329b99a9560e11b815260040160405180910390fd5b610a046001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856123b7565b612286838383612411565b610c65576001600160a01b0383166122b457604051637e27328960e01b815260048101829052602401610a4f565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610a4f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061231e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061234a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061236857662386f26fc10000830492506010015b6305f5e1008310612380576305f5e100830492506008015b612710831061239457612710830492506004015b606483106123a6576064830492506002015b600a83106109385760010192915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610c28908590612474565b60006001600160a01b03831615801590610e005750826001600160a01b0316846001600160a01b0316148061244b575061244b8484611378565b80610e005750506000908152600960205260409020546001600160a01b03908116911614919050565b60006124896001600160a01b038416836124d7565b905080516000141580156124ae5750808060200190518101906124ac91906131ff565b155b15610c6557604051635274afe760e01b81526001600160a01b0384166004820152602401610a4f565b606061125b8383600084600080856001600160a01b031684866040516124fd91906135ce565b60006040518083038185875af1925050503d806000811461253a576040519150601f19603f3d011682016040523d82523d6000602084013e61253f565b606091505b509150915061254f868383612559565b9695505050505050565b60608261256e57612569826125b5565b61125b565b815115801561258557506001600160a01b0384163b155b156125ae57604051639996b31560e01b81526001600160a01b0385166004820152602401610a4f565b508061125b565b8051156125c55780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001612620604051806040016040528060008152602001600081525090565b905290565b6001600160e01b0319811681146113e157600080fd5b60006020828403121561264d57600080fd5b813561125b81612625565b60005b8381101561267357818101518382015260200161265b565b50506000910152565b60008151808452612694816020860160208601612658565b601f01601f19169290920160200192915050565b60208152600061125b602083018461267c565b6000602082840312156126cd57600080fd5b5035919050565b6001600160a01b03811681146113e157600080fd5b600080604083850312156126fc57600080fd5b8235612707816126d4565b946020939093013593505050565b60006060828403121561272757600080fd5b50919050565b60008083601f84011261273f57600080fd5b5081356001600160401b0381111561275657600080fd5b60208301915083602082850101111561276e57600080fd5b9250929050565b600080600080600080600060e0888a03121561279057600080fd5b61279a8989612715565b96506060880135955060808801356001600160401b03808211156127bd57600080fd5b6127c98b838c0161272d565b909750955060a08a013591506127de826126d4565b90935060c089013590808211156127f457600080fd5b506128018a828b0161272d565b989b979a50959850939692959293505050565b600060c0828403121561272757600080fd5b6000806000838503608081121561283c57600080fd5b84356001600160401b0381111561285257600080fd5b61285e87828801612814565b9450506040601f198201121561287357600080fd5b506020840191506060840135612888816126d4565b809150509250925092565b6000608082019050825182526001600160401b03602084015116602083015260408301516128ce604084018280518252602090810151910152565b5092915050565b6000806000606084860312156128ea57600080fd5b83356128f5816126d4565b92506020840135612905816126d4565b929592945050506040919091013590565b803563ffffffff8116811461292a57600080fd5b919050565b6000806040838503121561294257600080fd5b61270783612916565b60008060006060848603121561296057600080fd5b833561296b816126d4565b92506020840135915061298060408501612916565b90509250925092565b803561ffff8116811461292a57600080fd5b600080604083850312156129ae57600080fd5b6129b783612916565b91506129c560208401612989565b90509250929050565b6000602082840312156129e057600080fd5b813561125b816126d4565b6000602082840312156129fd57600080fd5b81356001600160401b03811115612a1357600080fd5b610e0084828501612814565b604081526000612a32604083018561267c565b82810360208401526111e4818561267c565b60008060008060a08587031215612a5a57600080fd5b612a648686612715565b935060608501356001600160401b03811115612a7f57600080fd5b612a8b8782880161272d565b9094509250506080850135612a9f816126d4565b939692955090935050565b80151581146113e157600080fd5b60008060408385031215612acb57600080fd5b8235612ad6816126d4565b91506020830135612ae681612aaa565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612b2957612b29612af1565b60405290565b604051606081016001600160401b0381118282101715612b2957612b29612af1565b604051601f8201601f191681016001600160401b0381118282101715612b7957612b79612af1565b604052919050565b60006001600160401b03821115612b9a57612b9a612af1565b50601f01601f191660200190565b600082601f830112612bb957600080fd5b8135612bcc612bc782612b81565b612b51565b818152846020838601011115612be157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612c1457600080fd5b8435612c1f816126d4565b93506020850135612c2f816126d4565b92506040850135915060608501356001600160401b03811115612c5157600080fd5b612c5d87828801612ba8565b91505092959194509250565b60008083601f840112612c7b57600080fd5b5081356001600160401b03811115612c9257600080fd5b6020830191508360208260051b850101111561276e57600080fd5b60008060208385031215612cc057600080fd5b82356001600160401b03811115612cd657600080fd5b612ce285828601612c69565b90969095509350505050565b600060208284031215612d0057600080fd5b61125b82612916565b60008060008060608587031215612d1f57600080fd5b612d2885612916565b9350612d3660208601612989565b925060408501356001600160401b03811115612d5157600080fd5b612d5d8782880161272d565b95989497509550505050565b60008060408385031215612d7c57600080fd5b82356001600160401b03811115612d9257600080fd5b612d9e85828601612814565b9250506020830135612ae681612aaa565b815181526020808301519082015260408101610938565b60008060408385031215612dd957600080fd5b823591506129c560208401612916565b60008060408385031215612dfc57600080fd5b8235612e07816126d4565b91506020830135612ae6816126d4565b600060608284031215612e2957600080fd5b61125b8383612715565b600181811c90821680612e4757607f821691505b60208210810361272757634e487b7160e01b600052602260045260246000fd5b600060408284031215612e7957600080fd5b612e81612b07565b82358152602083013560208201528091505092915050565b60006001600160401b0380841115612eb357612eb3612af1565b8360051b6020612ec4818301612b51565b868152918501918181019036841115612edc57600080fd5b865b84811015612f6257803586811115612ef65760008081fd5b88016060368290031215612f0a5760008081fd5b612f12612b2f565b612f1b82612916565b8152612f28868301612989565b8682015260408083013589811115612f405760008081fd5b612f4c36828601612ba8565b9183019190915250845250918301918301612ede565b50979650505050505050565b60008085851115612f7e57600080fd5b83861115612f8b57600080fd5b5050820193919092039150565b60008451612faa818460208901612658565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610e00602083018486612fc0565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1983360301811261302a57600080fd5b9190910192915050565b6000808335601e1984360301811261304b57600080fd5b8301803591506001600160401b0382111561306557600080fd5b60200191503681900382131561276e57600080fd5b6001600160401b03811681146113e157600080fd5b63ffffffff61309d89612916565b16815260208801356020820152600060408901356130ba8161307a565b6001600160401b03811660408401525087606083015260e060808301526130e560e083018789612fc0565b6001600160a01b03861660a084015282810360c0840152613107818587612fc0565b9a9950505050505050505050565b60006020828403121561312757600080fd5b81516001600160401b0381111561313d57600080fd5b8201601f8101841361314e57600080fd5b805161315c612bc782612b81565b81815285602083850101111561317157600080fd5b6111e4826020830160208601612658565b60008351613194818460208801612658565b8351908301906131a8818360208801612658565b01949350505050565b6000602082840312156131c357600080fd5b813561125b8161307a565b60018060a01b038516815283602082015261ffff8316604082015260806060820152600061254f608083018461267c565b60006020828403121561321157600080fd5b815161125b81612aaa565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261325260e084018261267c565b90506060850151603f198483030160a085015261326f828261267c565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156132a757600080fd5b6132af612b07565b9050815181526020820151602082015292915050565b6000608082840312156132d757600080fd5b6132df612b2f565b8251815260208301516132f18161307a565b60208201526133038460408501613295565b60408201529392505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061254f9083018461267c565b60006020828403121561335457600080fd5b815161125b81612625565b601f821115610c65576000816000526020600020601f850160051c810160208610156133885750805b601f850160051c820191505b818110156133a757828155600101613394565b505050505050565b81516001600160401b038111156133c8576133c8612af1565b6133dc816133d68454612e33565b8461335f565b602080601f83116001811461341157600084156133f95750858301515b600019600386901b1c1916600185901b1785556133a7565b600085815260208120601f198616915b8281101561344057888601518255948401946001909101908401613421565b508582101561345e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156134eb57888303603f190185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526134d78186018361267c565b968901969450505090860190600101613497565b509098975050505050505050565b60006040828403121561350b57600080fd5b61125b8383613295565b8035602083101561093857600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b0319166008820152815160009061356e81600c850160208701612658565b91909101600c01949350505050565b848152836020820152826040820152600082516135a1816060850160208701612658565b9190910160600195945050505050565b6000602082840312156135c357600080fd5b815161125b816126d4565b6000825161302a81846020870161265856fea264697066735822122071957703e50ccb286e5ebe46d2f949f82f18febb51e7410edae37ef294c4ceff64736f6c63430008160033","sourceMap":"210:865:144:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1561:300:114;;;;;;;;;;-1:-1:-1;1561:300:114;;;;;:::i;:::-;;:::i;:::-;;;565:14:145;;558:22;540:41;;528:2;513:18;1561:300:114;;;;;;;;2365:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3497:154::-;;;;;;;;;;-1:-1:-1;3497:154:114;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:145;;;1679:51;;1667:2;1652:18;3497:154:114;1533:203:145;3323:113:114;;;;;;;;;;-1:-1:-1;3323:113:114;;;;;:::i;:::-;;:::i;:::-;;1705:27:8;;;;;;;;;;-1:-1:-1;1705:27:8;;;;-1:-1:-1;;;;;1705:27:8;;;4368:708:34;;;;;;:::i;:::-;;:::i;1287:235:32:-;;;;;;;;;;-1:-1:-1;1287:235:32;;;843:1:35;3968:34:145;;678:1:34;4033:2:145;4018:18;;4011:43;3904:18;1287:235:32;3761:299:145;1539:31:8;;;;;;;;;;;;1569:1;1539:31;;;;;4239:6:145;4227:19;;;4209:38;;4197:2;4182:18;1539:31:8;4065:188:145;3051:701:8;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4143:578:114:-;;;;;;;;;;-1:-1:-1;4143:578:114;;;;;:::i;:::-;;:::i;1724:108:33:-;;;;;;;;;;-1:-1:-1;1724:108:33;;;;;:::i;:::-;;:::i;438:89:144:-;;;;;;;;;;-1:-1:-1;438:89:144;;;;;:::i;:::-;;:::i;4787:132:114:-;;;;;;;;;;-1:-1:-1;4787:132:114;;;;;:::i;:::-;;:::i;772::144:-;;;;;;;;;;-1:-1:-1;772:132:144;;;;;:::i;:::-;;:::i;649:117::-;;;;;;;;;;-1:-1:-1;649:117:144;;;;;:::i;:::-;704:4;5799:16:114;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:114;727:32:144;;;649:117;875:93:43;;;;;;;;;;-1:-1:-1;956:4:43;875:93;;538::41;;;;;;;;;;-1:-1:-1;538:93:41;;;;;:::i;:::-;;:::i;7452:132:8:-;;;;;;;;;;-1:-1:-1;7452:132:8;;;;;:::i;:::-;7557:11;;;;;7534:4;7557:11;;;:5;:11;;;;;;:20;;7452:132;446:46:33;;;;;;;;;;;;;;;2185:118:114;;;;;;;;;;-1:-1:-1;2185:118:114;;;;;:::i;:::-;;:::i;7916:163:8:-;;;;;;;;;;-1:-1:-1;7916:163:8;;;;;:::i;:::-;;:::i;910::144:-;;;;;;;;;;-1:-1:-1;910:163:144;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1920:208:114:-;;;;;;;;;;-1:-1:-1;1920:208:114;;;;;:::i;:::-;;:::i;:::-;;;9026:25:145;;;9014:2;8999:18;1920:208:114;8880:177:145;2293:101:105;;;;;;;;;;;;;:::i;3507:128:34:-;;;;;;;;;;-1:-1:-1;3507:128:34;;;;;:::i;:::-;3596:12;3507:128;;;;;;;;-1:-1:-1;;;;;9224:31:145;;;9206:50;;9194:2;9179:18;3507:128:34;9062:200:145;2013:216:34;;;;;;;;;;-1:-1:-1;2013:216:34;;;;;:::i;:::-;;:::i;1638:85:105:-;;;;;;;;;;-1:-1:-1;1684:7:105;1710:6;-1:-1:-1;;;;;1710:6:105;1638:85;;2518:93:114;;;;;;;;;;;;;:::i;1344:94:5:-;;;;;;;;;;-1:-1:-1;1403:4:5;1344:94;;3718:144:114;;;;;;;;;;-1:-1:-1;3718:144:114;;;;;:::i;:::-;;:::i;2506:145:8:-;;;;;;;;;;-1:-1:-1;2506:145:8;;;-1:-1:-1;;;10622:52:145;;2642:1:8;10705:2:145;10690:18;;10683:59;10595:18;2506:145:8;10452:296:145;1576:43:8;;;;;;;;;;;;1618:1;1576:43;;559:23:43;;;;;;;;;;-1:-1:-1;559:23:43;;;;-1:-1:-1;;;;;559:23:43;;;4985:208:114;;;;;;;;;;-1:-1:-1;4985:208:114;;;;;:::i;:::-;;:::i;1391:156:41:-;;;;;;;;;;-1:-1:-1;1391:156:41;;;;;:::i;:::-;;:::i;569:48:33:-;;;;;;;;;;-1:-1:-1;569:48:33;;;;;:::i;:::-;;;;;;;;;;;;;;3510:981:41;;;;;;;;;;-1:-1:-1;3510:981:41;;;;;:::i;:::-;;:::i;1698:1333:43:-;;;;;;:::i;:::-;;:::i;2657:388:8:-;;;;;;;;;;-1:-1:-1;2657:388:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2677:255:114:-;;;;;;;;;;-1:-1:-1;2677:255:114;;;;;:::i;:::-;;:::i;3252:105:33:-;;;;;;;;;;-1:-1:-1;3252:105:33;;;;;:::i;:::-;;:::i;3679:409:43:-;;;;;;:::i;:::-;;:::i;1100:139::-;;;;;;;;;;-1:-1:-1;1100:139:43;;;;;:::i;:::-;;:::i;533:110:144:-;;;;;;;;;;-1:-1:-1;533:110:144;;;;;:::i;:::-;;:::i;3928:153:114:-;;;;;;;;;;-1:-1:-1;3928:153:114;;;;;:::i;:::-;;:::i;2543:215:105:-;;;;;;;;;;-1:-1:-1;2543:215:105;;;;;:::i;:::-;;:::i;2771:149:34:-;;;;;;;;;;-1:-1:-1;2771:149:34;;;;;:::i;:::-;;:::i;1561:300:114:-;1663:4;-1:-1:-1;;;;;;1698:40:114;;-1:-1:-1;;;1698:40:114;;:104;;-1:-1:-1;;;;;;;1754:48:114;;-1:-1:-1;;;1754:48:114;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:126;;;1818:36:114;1679:175;1561:300;-1:-1:-1;;1561:300:114:o;2365:89::-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:114;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:114;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:120;3394:8:114;:35::i;:::-;3323:113;;:::o;4368:708:34:-;4681:8;-1:-1:-1;;;;;4673:31:34;4694:10;4673:31;4669:68;;4713:24;;-1:-1:-1;;;4713:24:34;;4726:10;4713:24;;;1679:51:145;1652:18;;4713:24:34;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;-1:-1:-1;;;4896:40:34;;17586:10:145;17574:23;;;4896:40:34;;;17556:42:145;4921:14:34;;;;17614:18:145;;;17607:34;17529:18;;4896:40:34;17384:263:145;4833:103:34;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;3051:701:8:-;3212:34;;:::i;:::-;3262:13;;;;3258:57;;3298:17;;-1:-1:-1;;;3298:17:8;;;;;;;;;;;3258:57;3325;3332:10;3344:18;;;;3364:17;;;;3344:10;3364:17;:::i;:::-;3325:6;:57::i;:::-;3394:20;3416;3440:31;3460:10;3440:19;:31::i;:::-;3393:78;;-1:-1:-1;3393:78:8;-1:-1:-1;3588:66:8;3596:17;;;;:10;:17;:::i;:::-;3615:7;3624;3588:66;;;;;;;3633:4;3588:66;:::i;:::-;3639:14;3588:7;:66::i;:::-;3678:15;;3575:79;;-1:-1:-1;3714:10:8;;3669:76;3695:17;;;;:10;:17;:::i;:::-;3726:18;3669:76;;17586:10:145;17574:23;;;17556:42;;3726:18:8;;;;17629:2:145;17614:18;;17607:34;17529:18;3669:76:8;;;;;;;3248:504;;3051:701;;;;;:::o;4143:578:114:-;-1:-1:-1;;;;;4237:16:114;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:114;;4306:1;4276:33;;;1679:51:145;1652:18;;4276:33:114;1533:203:145;4233:87:114;4538:21;4562:34;4570:2;4574:7;735:10:120;4562:7:114;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:114;:13;-1:-1:-1;;;;;4610:21:114;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:114;;-1:-1:-1;;;;;18531:15:145;;;4654:50:114;;;18513:34:145;18563:18;;;18556:34;;;18626:15;;18606:18;;;18599:43;18448:18;;4654:50:114;18273:375:145;4606:109:114;4223:498;4143:578;;;:::o;1724:108:33:-;1531:13:105;:11;:13::i;:::-;1804:21:33::1;1813:4;1819:5;1804:8;:21::i;438:89:144:-:0;500:20;506:3;511:8;500:5;:20::i;4787:132:114:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;772::144:-;859:38;867:10;879:8;889:7;859;:38::i;538:93:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2185:118:114:-;2248:7;2274:22;2288:7;2274:13;:22::i;7916:163:8:-;1531:13:105;:11;:13::i;:::-;7999:12:8::1;:28:::0;;-1:-1:-1;;;;;;7999:28:8::1;-1:-1:-1::0;;;;;7999:28:8;::::1;::::0;;::::1;::::0;;;8042:30:::1;::::0;1679:51:145;;;8042:30:8::1;::::0;1667:2:145;1652:18;8042:30:8::1;;;;;;;;7916:163:::0;:::o;910::144:-;990:12;1004;1035:31;1055:10;1035:19;:31::i;:::-;1028:38;;;;910:163;;;:::o;1920:208:114:-;1983:7;-1:-1:-1;;;;;2006:19:114;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:114;;2075:1;2048:30;;;1679:51:145;1652:18;;2048:30:114;1533:203:145;2002:87:114;-1:-1:-1;;;;;;2105:16:114;;;;;:9;:16;;;;;;;1920:208::o;2293:101:105:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2013:216:34:-;-1:-1:-1;;;;;2198:24:34;;2217:4;2198:24;2013:216;;;;;;;:::o;2518:93:114:-;2565:13;2597:7;2590:14;;;;;:::i;3718:144::-;3803:52;735:10:120;3836:8:114;3846;3803:18;:52::i;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;1391:156:41:-;1531:13:105;:11;:13::i;:::-;1503:37:41::1;;1523:16:::0;;1503:37:::1;:::i;:::-;:19;:37::i;3510:981::-:0;3701:21;;;3677;3701;;;:15;:21;;;;;;;;:31;;;;;;;;;;3677:55;;3653:12;;3677:21;3701:31;3677:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:8;:15;3880:1;3861:20;3857:46;;3890:13;;3883:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:20:41;;-1:-1:-1;3883:20:41;;-1:-1:-1;;;;3883:20:41;3857:46;3988:1;3964:25;;;3960:46;;3998:8;-1:-1:-1;3991:15:41;;3960:46;4153:1;4129:25;;4125:267;;4170:34;4190:13;;4170:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4170:19:41;;-1:-1:-1;;;4170:34:41:i;:::-;4353:8;4363:17;:13;4377:1;4363:13;;:17;:::i;:::-;4340:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:48;;;;;4125:267;4470:13;;4455:29;;-1:-1:-1;;;4455:29:41;;;;;;;;;:::i;1698:1333:43:-;1799:9;1794:1037;1814:19;;;1794:1037;;;1854:29;1886:8;;1895:1;1886:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1854:43;-1:-1:-1;1980:50:43;1987:20;;;;1854:43;1987:20;:::i;:::-;2009;;;;7557:11:8;;;;;7534:4;7557:11;;;:5;:11;;;;;;:20;;7452:132;1980:50:43;1975:65;;2032:8;;;1975:65;2602:4;:22;2633:12;;;;:6;2696:11;;;;2725:14;;;;2633:6;2725:14;:::i;:::-;2757:15;;;;;;;;:::i;:::-;2790:16;;;;:6;:16;:::i;:::-;2602:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:991;1794:1037;1835:3;;1794:1037;;;;2988:10;-1:-1:-1;;;;;2978:43:43;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2978:45:43;;;;;;;;;;;;:::i;:::-;2961:63;;-1:-1:-1;;;2961:63:43;;;;;;;;:::i;2657:388:8:-;-1:-1:-1;;;;;;;;;;;;;;;;;2822:13:8;;;;2818:57;;2858:17;;-1:-1:-1;;;2858:17:8;;;;;;;;;;;2818:57;2886:20;2908;2932:31;2952:10;2932:19;:31::i;:::-;2885:78;;-1:-1:-1;2885:78:8;-1:-1:-1;2980:58:8;2987:17;;;;:10;:17;:::i;:::-;3006:7;3015;3024:13;2980:6;:58::i;:::-;2973:65;2657:388;-1:-1:-1;;;;;2657:388:8:o;2677:255:114:-;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;3250:9;;;;;;;;;-1:-1:-1;3250:9:114;;;3174:92;2823:10;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;2677:255;-1:-1:-1;;;2677:255:114:o;3252:105:33:-;1531:13:105;:11;:13::i;:::-;3319:31:33::1;::::0;-1:-1:-1;;;3319:31:33;;-1:-1:-1;;;;;1697:32:145;;;3319:31:33::1;::::0;::::1;1679:51:145::0;3319:8:33::1;:20;::::0;::::1;::::0;1652:18:145;;3319:31:33::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;3679:409:43:-;3958:10;3980:4;3958:27;3954:50;;3994:10;;-1:-1:-1;;;3994:10:43;;;;;;;;;;;3954:50;4014:67;4033:7;4042:5;4049:8;;4059:9;4070:10;;4014:18;:67::i;1100:139::-;1531:13:105;:11;:13::i;:::-;1175:8:43::1;:20:::0;;-1:-1:-1;;;;;;1175:20:43::1;-1:-1:-1::0;;;;;1175:20:43;::::1;::::0;;::::1;::::0;;;1210:22:::1;::::0;1679:51:145;;;1210:22:43::1;::::0;1667:2:145;1652:18;1210:22:43::1;1533:203:145::0;533:110:144;599:37;606:10;618:8;628:7;599:6;:37::i;3928:153:114:-;-1:-1:-1;;;;;4039:25:114;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;2543:215:105:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:105;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:105;;2700:1:::1;2672:31;::::0;::::1;1679:51:145::0;1652:18;;2672:31:105::1;1533:203:145::0;2623:91:105::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2771:149:34:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:34;;:37;;2771:149;-1:-1:-1;;2771:149:34:o;16138:241:114:-;16201:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:114;;16263:88;;16309:31;;-1:-1:-1;;;16309:31:114;;;;;9026:25:145;;;8999:18;;16309:31:114;8880:177:145;14418:120:114;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;2718:196:33:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;-1:-1:-1;;;2874:12:33;;25022:10:145;25010:23;;2874:12:33;;;24992:42:145;24965:18;;2874:12:33;24848:192:145;5264:817:8;5577:17;5597:36;:17;:8;;:15;:17::i;:::-;2954:2:10;2824:142;5597:36:8;5577:56;;5643:15;5661:18;:8;;:16;:18::i;:::-;5643:36;-1:-1:-1;5690:43:8;5698:9;5643:36;5718:14;;;;:7;:14;:::i;:::-;5690:7;:43::i;:::-;279:2:10;-1:-1:-1;;5744:260:8;;;5785:23;5811:80;5838:13;;;;;;;;:::i;:::-;5853:14;;;;:7;:14;:::i;:::-;5869:21;:8;;:19;:21::i;:::-;5811:26;:80::i;:::-;5905:88;;-1:-1:-1;;;5905:88:8;;5785:106;;-1:-1:-1;;;;;;5905:8:8;:20;;;;:88;;5926:9;;5937:5;;5944:1;;5785:106;;5905:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:233;5744:260;-1:-1:-1;;;;;6019:55:8;;6032:5;6019:55;6039:14;;;;:7;:14;:::i;:::-;6019:55;;;17586:10:145;17574:23;;;17556:42;;17629:2;17614:18;;17607:34;;;17529:18;6019:55:8;;;;;;;5567:514;;5264:817;;;;;;;:::o;1444:228:5:-;1562:24;1577:8;1562:14;:24::i;:::-;-1:-1:-1;;;;;1553:33:5;:5;-1:-1:-1;;;;;1553:33:5;;1549:91;;1608:5;1615:24;1630:8;1615:14;:24::i;:::-;1595:45;;-1:-1:-1;;;1595:45:5;;-1:-1:-1;;;;;26009:15:145;;;1595:45:5;;;25991:34:145;26061:15;;26041:18;;;26034:43;25926:18;;1595:45:5;25779:304:145;1549:91:5;1650:15;1656:8;1650:5;:15::i;3980:773:8:-;4085:20;;4139:15;4188:80;4211:13;;;;4226:18;;;;4246:21;;;;4211:10;4246:21;:::i;:::-;4188:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4188:22:8;;-1:-1:-1;;;4188:80:8:i;:::-;4164:104;;-1:-1:-1;4164:104:8;-1:-1:-1;4278:14:8;4164:104;4295:36;;1569:1;4295:36;;;1618:1;4295:36;4278:53;-1:-1:-1;4352:67:8;4367:17;;;;:10;:17;:::i;:::-;4386:7;4395:23;;;;:10;:23;:::i;4352:67::-;4661:12;;4342:77;;-1:-1:-1;;;;;;4661:12:8;:26;4657:89;;4707:12;;;4689:57;;-1:-1:-1;;;4689:57:8;;-1:-1:-1;;;;;4707:12:8;;;;4689:39;;:57;;4729:7;;4738;;4689:57;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4657:89;4129:624;;3980:773;;;:::o;3188:766:35:-;3389:31;;:::i;:::-;3554:20;3577:26;3588:4;:14;;;3577:10;:26::i;:::-;3617:15;;;;3554:49;;-1:-1:-1;3617:19:35;3613:53;;3638:28;3650:4;:15;;;3638:11;:28::i;:::-;3755:8;-1:-1:-1;;;;;3755:13:35;;3777:12;3809:92;;;;;;;;3825:7;3809:92;;;;;;3834:25;3851:7;3834:16;:25::i;:::-;3809:92;;;;3861:8;3809:92;;;;3871:8;3809:92;;;;3899:1;3881:4;:15;;;:19;3809:92;;;;;3919:14;3755:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3677:270;3188:766;-1:-1:-1;;;;;;;3188:766:35:o;8838:795:114:-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:114;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:114;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:114;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:114;;;9157:256;-1:-1:-1;;;;;9427:16:114;;;9423:107;;-1:-1:-1;;;;;9487:13:114;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:114;-1:-1:-1;;;;;9540:21:114;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:114:o;1796:162:105:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:105;735:10:120;1855:23:105;1851:101;;1901:40;;-1:-1:-1;;;1901:40:105;;735:10:120;1901:40:105;;;1679:51:145;1652:18;;1901:40:105;1533:203:145;2286:134:33;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;17556:42:145;;;17614:18;;17607:34;;;2393:20:33;;17529:18:145;2393:20:33;;;;;;;2286:134;;:::o;9955:327:114:-;-1:-1:-1;;;;;10022:16:114;;10018:87;;10061:33;;-1:-1:-1;;;10061:33:114;;10091:1;10061:33;;;1679:51:145;1652:18;;10061:33:114;1533:203:145;10018:87:114;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;-1:-1:-1;;;;;;10184:27:114;;;10180:96;;10234:31;;-1:-1:-1;;;10234:31:114;;10262:1;10234:31;;;1679:51:145;1652:18;;10234:31:114;1533:203:145;1678:131:5;1782:20;1788:3;1793:8;1782:5;:20::i;2912:187:105:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;15591:312:114:-;-1:-1:-1;;;;;15698:22:114;;15694:91;;15743:31;;-1:-1:-1;;;15743:31:114;;-1:-1:-1;;;;;1697:32:145;;15743:31:114;;;1679:51:145;1652:18;;15743:31:114;1533:203:145;15694:91:114;-1:-1:-1;;;;;15794:25:114;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15794:46:114;;;;;;;;;;15855:41;;540::145;;;15855::114;;513:18:145;15855:41:114;;;;;;;15591:312;;;:::o;16918:782::-;-1:-1:-1;;;;;17034:14:114;;;:18;17030:664;;17072:71;;-1:-1:-1;;;17072:71:114;;-1:-1:-1;;;;;17072:36:114;;;;;:71;;735:10:120;;17123:4:114;;17129:7;;17138:4;;17072:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17072:71:114;;;;;;;;-1:-1:-1;;17072:71:114;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:6;:13;17398:1;17381:18;17377:293;;17430:25;;-1:-1:-1;;;17430:25:114;;-1:-1:-1;;;;;1697:32:145;;17430:25:114;;;1679:51:145;1652:18;;17430:25:114;1533:203:145;17377:293:114;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;-1:-1:-1;;;;;;17190:51:114;;-1:-1:-1;;;17190:51:114;17186:130;;17272:25;;-1:-1:-1;;;17272:25:114;;-1:-1:-1;;;;;1697:32:145;;17272:25:114;;;1679:51:145;1652:18;;17272:25:114;1533:203:145;2237:514:41;2345:9;2340:354;2364:16;:23;2360:1;:27;2340:354;;;2522:48;2542:16;2559:1;2542:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2522:19;:48::i;:::-;2656:16;2673:1;2656:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:15;:40;2600:16;2617:1;2600:19;;;;;;;;:::i;:::-;;;;;;;:23;;;2584:40;;;;;;;;;;;;;;;:69;2625:16;2642:1;2625:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:69;;;;;;;;;;;;;;;:99;;;;;;:::i;:::-;-1:-1:-1;2389:3:41;;2340:354;;;;2709:35;2727:16;2709:35;;;;;;:::i;4631:264::-;4801:1;4787:16;;4781:23;4827:28;;;463:1;4827:28;4823:65;;4879:8;4864:24;;-1:-1:-1;;;4864:24:41;;;;;;;;:::i;2038:391:35:-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:35;-1:-1:-1;;;;;2259:14:35;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;637:698:124:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;-1:-1:-1;;;;;817:18:124;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:124;-1:-1:-1;794:41:124;-1:-1:-1;955:28:124;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:124;-1:-1:-1;;;1175:2:124;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:124;1010:282;1256:21;-1:-1:-1;1312:6:124;637:698;-1:-1:-1;;;637:698:124:o;14720:662:114:-;14880:9;:31;;;-1:-1:-1;;;;;;14893:18:114;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;-1:-1:-1;;;;;;15093:18:114;;;;;;:35;;;15124:4;-1:-1:-1;;;;;15115:13:114;:5;-1:-1:-1;;;;;15115:13:114;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15189:27;;-1:-1:-1;;;15189:27:114;;-1:-1:-1;;;;;1697:32:145;;15189:27:114;;;1679:51:145;1652:18;;15189:27:114;1533:203:145;15089:142:114;15249:9;15245:81;;;15303:7;15299:2;-1:-1:-1;;;;;15283:28:114;15292:5;-1:-1:-1;;;;;15283:28:114;;;;;;;;;;;15245:81;14913:423;14876:460;-1:-1:-1;;15346:24:114;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15346:29:114;-1:-1:-1;;;;;15346:29:114;;;;;;;;;;14720:662::o;1221:144:10:-;1281:20;1336:21;230:2;1281:20;1336:4;;:21;:::i;:::-;1328:30;;;:::i;1530:176::-;1591:21;1651:36;279:2;230;1651:4;;:36;:::i;:::-;1640:59;;;;;;;:::i;2190:153::-;2254:29;2314:22;:4;279:2;2314:4;;:22;:::i;:::-;2295:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2295:41:10;;2190:153;-1:-1:-1;;;;;;2190:153:10:o;675:252:0:-;832:20;891:6;899:7;908:11;874:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;864:56;;675:252;;;;;:::o;11462:227:114:-;11513:21;11537:40;11553:1;11557:7;11574:1;11537:7;:40::i;:::-;11513:64;-1:-1:-1;;;;;;11591:27:114;;11587:96;;11641:31;;-1:-1:-1;;;11641:31:114;;;;;9026:25:145;;;8999:18;;11641:31:114;8880:177:145;657:394:10;849:18;;787:20;;849:22;;;891:153;;1009:35;;;;;;33480:19:145;;;33515:12;;;33508:28;;;33552:12;;1009:35:10;;;;;;;;;;;;891:153;;;933:7;942:8;969:10;982:11;916:78;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;891:153;881:163;;657:394;;;;;;:::o;4650:191:35:-;4716:17;4762:10;4749:9;:23;4745:62;;4781:26;;-1:-1:-1;;;4781:26:35;;4797:9;4781:26;;;9026:25:145;8999:18;;4781:26:35;8880:177:145;4745:62:35;-1:-1:-1;4824:10:35;4650:191::o;5218:410::-;5371:15;5389:8;-1:-1:-1;;;;;5389:16:35;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;;;;;;5421:21:35;;5417:54;;5451:20;;-1:-1:-1;;;5451:20:35;;;;;;;;;;;5417:54;5545:76;-1:-1:-1;;;;;5545:32:35;;5578:10;5598:8;5609:11;5545:32;:76::i;7082:368:114:-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:114;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:114;;;;;9026:25:145;;;8999:18;;7298:31:114;8880:177:145;7248:186:114;7375:44;;-1:-1:-1;;;7375:44:114;;-1:-1:-1;;;;;34517:32:145;;7375:44:114;;;34499:51:145;34566:18;;;34559:34;;;34472:18;;7375:44:114;34325:274:145;12214:916:128;12267:7;;-1:-1:-1;;;12342:17:128;;12338:103;;-1:-1:-1;;;12379:17:128;;;-1:-1:-1;12424:2:128;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:128;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:128;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:128;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:128;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:128;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:128:o;1702:188:113:-;1829:53;;;-1:-1:-1;;;;;34862:15:145;;;1829:53:113;;;34844:34:145;34914:15;;34894:18;;;34887:43;34946:18;;;;34939:34;;;1829:53:113;;;;;;;;;;34779:18:145;;;;1829:53:113;;;;;;;;-1:-1:-1;;;;;1829:53:113;-1:-1:-1;;;1829:53:113;;;1802:81;;1822:5;;1802:19;:81::i;6376:272:114:-;6479:4;-1:-1:-1;;;;;6514:21:114;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:114;:5;-1:-1:-1;;;;;6552:16:114;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;;6008:7:114;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:114;;;6608:32;;;;6495:146;-1:-1:-1;6376:272:114:o;4059:629:113:-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:113;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:113;;-1:-1:-1;;;;;1697:32:145;;4631:40:113;;;1679:51:145;1652:18;;4631:40:113;1533:203:145;2705:151:118;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:118;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:118:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:118;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:118;;-1:-1:-1;;;;;1697:32:145;;5121:24:118;;;1679:51:145;1652:18;;5121:24:118;1533:203:145;5041:119:118;-1:-1:-1;5180:10:118;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:118;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:145:-;-1:-1:-1;;;;;;88:32:145;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:145;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:145;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:145:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:145;;1348:180;-1:-1:-1;1348:180:145:o;1741:131::-;-1:-1:-1;;;;;1816:31:145;;1806:42;;1796:70;;1862:1;1859;1852:12;1877:315;1945:6;1953;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2061:9;2048:23;2080:31;2105:5;2080:31;:::i;:::-;2130:5;2182:2;2167:18;;;;2154:32;;-1:-1:-1;;;1877:315:145:o;2197:154::-;2256:5;2301:2;2292:6;2287:3;2283:16;2279:25;2276:45;;;2317:1;2314;2307:12;2276:45;-1:-1:-1;2339:6:145;2197:154;-1:-1:-1;2197:154:145:o;2356:347::-;2407:8;2417:6;2471:3;2464:4;2456:6;2452:17;2448:27;2438:55;;2489:1;2486;2479:12;2438:55;-1:-1:-1;2512:20:145;;-1:-1:-1;;;;;2544:30:145;;2541:50;;;2587:1;2584;2577:12;2541:50;2624:4;2616:6;2612:17;2600:29;;2676:3;2669:4;2660:6;2652;2648:19;2644:30;2641:39;2638:59;;;2693:1;2690;2683:12;2638:59;2356:347;;;;;:::o;2708:1048::-;2851:6;2859;2867;2875;2883;2891;2899;2952:3;2940:9;2931:7;2927:23;2923:33;2920:53;;;2969:1;2966;2959:12;2920:53;2992;3037:7;3026:9;2992:53;:::i;:::-;2982:63;;3092:2;3081:9;3077:18;3064:32;3054:42;;3147:3;3136:9;3132:19;3119:33;-1:-1:-1;;;;;3212:2:145;3204:6;3201:14;3198:34;;;3228:1;3225;3218:12;3198:34;3267:58;3317:7;3308:6;3297:9;3293:22;3267:58;:::i;:::-;3344:8;;-1:-1:-1;3241:84:145;-1:-1:-1;3429:3:145;3414:19;;3401:33;;-1:-1:-1;3443:31:145;3401:33;3443:31;:::i;:::-;3493:5;;-1:-1:-1;3551:3:145;3536:19;;3523:33;;3568:16;;;3565:36;;;3597:1;3594;3587:12;3565:36;;3636:60;3688:7;3677:8;3666:9;3662:24;3636:60;:::i;:::-;2708:1048;;;;-1:-1:-1;2708:1048:145;;-1:-1:-1;2708:1048:145;;;;3610:86;;-1:-1:-1;;;2708:1048:145:o;4258:158::-;4320:5;4365:3;4356:6;4351:3;4347:16;4343:26;4340:46;;;4382:1;4379;4372:12;4421:657;4559:6;4567;4575;4619:9;4610:7;4606:23;4649:3;4645:2;4641:12;4638:32;;;4666:1;4663;4656:12;4638:32;4706:9;4693:23;-1:-1:-1;;;;;4731:6:145;4728:30;4725:50;;;4771:1;4768;4761:12;4725:50;4794:69;4855:7;4846:6;4835:9;4831:22;4794:69;:::i;:::-;4784:79;-1:-1:-1;;4897:2:145;-1:-1:-1;;4879:16:145;;4875:25;4872:45;;;4913:1;4910;4903:12;4872:45;;4951:2;4940:9;4936:18;4926:28;;5004:2;4993:9;4989:18;4976:32;5017:31;5042:5;5017:31;:::i;:::-;5067:5;5057:15;;;4421:657;;;;;:::o;5241:469::-;5401:4;5443:3;5432:9;5428:19;5420:27;;5480:6;5474:13;5463:9;5456:32;-1:-1:-1;;;;;5548:4:145;5540:6;5536:17;5530:24;5526:49;5519:4;5508:9;5504:20;5497:79;5623:4;5615:6;5611:17;5605:24;5638:66;5698:4;5687:9;5683:20;5669:12;5161;;5149:25;;5223:4;5212:16;;;5206:23;5190:14;;5183:47;5083:153;5638:66;;5241:469;;;;:::o;5715:456::-;5792:6;5800;5808;5861:2;5849:9;5840:7;5836:23;5832:32;5829:52;;;5877:1;5874;5867:12;5829:52;5916:9;5903:23;5935:31;5960:5;5935:31;:::i;:::-;5985:5;-1:-1:-1;6042:2:145;6027:18;;6014:32;6055:33;6014:32;6055:33;:::i;:::-;5715:456;;6107:7;;-1:-1:-1;;;6161:2:145;6146:18;;;;6133:32;;5715:456::o;6176:163::-;6243:20;;6303:10;6292:22;;6282:33;;6272:61;;6329:1;6326;6319:12;6272:61;6176:163;;;:::o;6344:252::-;6411:6;6419;6472:2;6460:9;6451:7;6447:23;6443:32;6440:52;;;6488:1;6485;6478:12;6440:52;6511:28;6529:9;6511:28;:::i;6601:387::-;6677:6;6685;6693;6746:2;6734:9;6725:7;6721:23;6717:32;6714:52;;;6762:1;6759;6752:12;6714:52;6801:9;6788:23;6820:31;6845:5;6820:31;:::i;:::-;6870:5;-1:-1:-1;6922:2:145;6907:18;;6894:32;;-1:-1:-1;6945:37:145;6978:2;6963:18;;6945:37;:::i;:::-;6935:47;;6601:387;;;;;:::o;6993:159::-;7060:20;;7120:6;7109:18;;7099:29;;7089:57;;7142:1;7139;7132:12;7157:256;7223:6;7231;7284:2;7272:9;7263:7;7259:23;7255:32;7252:52;;;7300:1;7297;7290:12;7252:52;7323:28;7341:9;7323:28;:::i;:::-;7313:38;;7370:37;7403:2;7392:9;7388:18;7370:37;:::i;:::-;7360:47;;7157:256;;;;;:::o;7879:247::-;7938:6;7991:2;7979:9;7970:7;7966:23;7962:32;7959:52;;;8007:1;8004;7997:12;7959:52;8046:9;8033:23;8065:31;8090:5;8065:31;:::i;8131:360::-;8219:6;8272:2;8260:9;8251:7;8247:23;8243:32;8240:52;;;8288:1;8285;8278:12;8240:52;8328:9;8315:23;-1:-1:-1;;;;;8353:6:145;8350:30;8347:50;;;8393:1;8390;8383:12;8347:50;8416:69;8477:7;8468:6;8457:9;8453:22;8416:69;:::i;8496:379::-;8689:2;8678:9;8671:21;8652:4;8715:45;8756:2;8745:9;8741:18;8733:6;8715:45;:::i;:::-;8808:9;8800:6;8796:22;8791:2;8780:9;8776:18;8769:50;8836:33;8862:6;8854;8836:33;:::i;9267:670::-;9381:6;9389;9397;9405;9458:3;9446:9;9437:7;9433:23;9429:33;9426:53;;;9475:1;9472;9465:12;9426:53;9498;9543:7;9532:9;9498:53;:::i;:::-;9488:63;;9602:2;9591:9;9587:18;9574:32;-1:-1:-1;;;;;9621:6:145;9618:30;9615:50;;;9661:1;9658;9651:12;9615:50;9700:58;9750:7;9741:6;9730:9;9726:22;9700:58;:::i;:::-;9777:8;;-1:-1:-1;9674:84:145;-1:-1:-1;;9862:3:145;9847:19;;9834:33;9876:31;9834:33;9876:31;:::i;:::-;9267:670;;;;-1:-1:-1;9267:670:145;;-1:-1:-1;;9267:670:145:o;9942:118::-;10028:5;10021:13;10014:21;10007:5;10004:32;9994:60;;10050:1;10047;10040:12;10065:382;10130:6;10138;10191:2;10179:9;10170:7;10166:23;10162:32;10159:52;;;10207:1;10204;10197:12;10159:52;10246:9;10233:23;10265:31;10290:5;10265:31;:::i;:::-;10315:5;-1:-1:-1;10372:2:145;10357:18;;10344:32;10385:30;10344:32;10385:30;:::i;:::-;10434:7;10424:17;;;10065:382;;;;;:::o;10753:127::-;10814:10;10809:3;10805:20;10802:1;10795:31;10845:4;10842:1;10835:15;10869:4;10866:1;10859:15;10885:251;10957:2;10951:9;;;10987:15;;-1:-1:-1;;;;;11017:34:145;;11053:22;;;11014:62;11011:88;;;11079:18;;:::i;:::-;11115:2;11108:22;10885:251;:::o;11141:253::-;11213:2;11207:9;11255:4;11243:17;;-1:-1:-1;;;;;11275:34:145;;11311:22;;;11272:62;11269:88;;;11337:18;;:::i;11399:275::-;11470:2;11464:9;11535:2;11516:13;;-1:-1:-1;;11512:27:145;11500:40;;-1:-1:-1;;;;;11555:34:145;;11591:22;;;11552:62;11549:88;;;11617:18;;:::i;:::-;11653:2;11646:22;11399:275;;-1:-1:-1;11399:275:145:o;11679:186::-;11727:4;-1:-1:-1;;;;;11752:6:145;11749:30;11746:56;;;11782:18;;:::i;:::-;-1:-1:-1;11848:2:145;11827:15;-1:-1:-1;;11823:29:145;11854:4;11819:40;;11679:186::o;11870:462::-;11912:5;11965:3;11958:4;11950:6;11946:17;11942:27;11932:55;;11983:1;11980;11973:12;11932:55;12019:6;12006:20;12050:48;12066:31;12094:2;12066:31;:::i;:::-;12050:48;:::i;:::-;12123:2;12114:7;12107:19;12169:3;12162:4;12157:2;12149:6;12145:15;12141:26;12138:35;12135:55;;;12186:1;12183;12176:12;12135:55;12251:2;12244:4;12236:6;12232:17;12225:4;12216:7;12212:18;12199:55;12299:1;12274:16;;;12292:4;12270:27;12263:38;;;;12278:7;11870:462;-1:-1:-1;;;11870:462:145:o;12337:665::-;12432:6;12440;12448;12456;12509:3;12497:9;12488:7;12484:23;12480:33;12477:53;;;12526:1;12523;12516:12;12477:53;12565:9;12552:23;12584:31;12609:5;12584:31;:::i;:::-;12634:5;-1:-1:-1;12691:2:145;12676:18;;12663:32;12704:33;12663:32;12704:33;:::i;:::-;12756:7;-1:-1:-1;12810:2:145;12795:18;;12782:32;;-1:-1:-1;12865:2:145;12850:18;;12837:32;-1:-1:-1;;;;;12881:30:145;;12878:50;;;12924:1;12921;12914:12;12878:50;12947:49;12988:7;12979:6;12968:9;12964:22;12947:49;:::i;:::-;12937:59;;;12337:665;;;;;;;:::o;13007:395::-;13098:8;13108:6;13162:3;13155:4;13147:6;13143:17;13139:27;13129:55;;13180:1;13177;13170:12;13129:55;-1:-1:-1;13203:20:145;;-1:-1:-1;;;;;13235:30:145;;13232:50;;;13278:1;13275;13268:12;13232:50;13315:4;13307:6;13303:17;13291:29;;13375:3;13368:4;13358:6;13355:1;13351:14;13343:6;13339:27;13335:38;13332:47;13329:67;;;13392:1;13389;13382:12;13407:504;13532:6;13540;13593:2;13581:9;13572:7;13568:23;13564:32;13561:52;;;13609:1;13606;13599:12;13561:52;13649:9;13636:23;-1:-1:-1;;;;;13674:6:145;13671:30;13668:50;;;13714:1;13711;13704:12;13668:50;13753:98;13843:7;13834:6;13823:9;13819:22;13753:98;:::i;:::-;13870:8;;13727:124;;-1:-1:-1;13407:504:145;-1:-1:-1;;;;13407:504:145:o;13916:184::-;13974:6;14027:2;14015:9;14006:7;14002:23;13998:32;13995:52;;;14043:1;14040;14033:12;13995:52;14066:28;14084:9;14066:28;:::i;14287:553::-;14373:6;14381;14389;14397;14450:2;14438:9;14429:7;14425:23;14421:32;14418:52;;;14466:1;14463;14456:12;14418:52;14489:28;14507:9;14489:28;:::i;:::-;14479:38;;14536:37;14569:2;14558:9;14554:18;14536:37;:::i;:::-;14526:47;;14624:2;14613:9;14609:18;14596:32;-1:-1:-1;;;;;14643:6:145;14640:30;14637:50;;;14683:1;14680;14673:12;14637:50;14722:58;14772:7;14763:6;14752:9;14748:22;14722:58;:::i;:::-;14287:553;;;;-1:-1:-1;14799:8:145;-1:-1:-1;;;;14287:553:145:o;15348:489::-;15442:6;15450;15503:2;15491:9;15482:7;15478:23;15474:32;15471:52;;;15519:1;15516;15509:12;15471:52;15559:9;15546:23;-1:-1:-1;;;;;15584:6:145;15581:30;15578:50;;;15624:1;15621;15614:12;15578:50;15647:69;15708:7;15699:6;15688:9;15684:22;15647:69;:::i;:::-;15637:79;;;15766:2;15755:9;15751:18;15738:32;15779:28;15801:5;15779:28;:::i;15842:261::-;5161:12;;5149:25;;5223:4;5212:16;;;5206:23;5190:14;;;5183:47;16036:2;16021:18;;16048:49;5083:153;16108:252;16175:6;16183;16236:2;16224:9;16215:7;16211:23;16207:32;16204:52;;;16252:1;16249;16242:12;16204:52;16288:9;16275:23;16265:33;;16317:37;16350:2;16339:9;16335:18;16317:37;:::i;16365:388::-;16433:6;16441;16494:2;16482:9;16473:7;16469:23;16465:32;16462:52;;;16510:1;16507;16500:12;16462:52;16549:9;16536:23;16568:31;16593:5;16568:31;:::i;:::-;16618:5;-1:-1:-1;16675:2:145;16660:18;;16647:32;16688:33;16647:32;16688:33;:::i;16758:236::-;16843:6;16896:2;16884:9;16875:7;16871:23;16867:32;16864:52;;;16912:1;16909;16902:12;16864:52;16935:53;16980:7;16969:9;16935:53;:::i;16999:380::-;17078:1;17074:12;;;;17121;;;17142:61;;17196:4;17188:6;17184:17;17174:27;;17142:61;17249:2;17241:6;17238:14;17218:18;17215:38;17212:161;;17295:10;17290:3;17286:20;17283:1;17276:31;17330:4;17327:1;17320:15;17358:4;17355:1;17348:15;17652:348;17741:6;17794:2;17782:9;17773:7;17769:23;17765:32;17762:52;;;17810:1;17807;17800:12;17762:52;17836:22;;:::i;:::-;17894:9;17881:23;17874:5;17867:38;17965:2;17954:9;17950:18;17937:32;17932:2;17925:5;17921:14;17914:56;17989:5;17979:15;;;17652:348;;;;:::o;18653:1575::-;18845:9;-1:-1:-1;;;;;18920:2:145;18912:6;18909:14;18906:40;;;18926:18;;:::i;:::-;18972:6;18969:1;18965:14;18998:4;19022:28;19046:2;19042;19038:11;19022:28;:::i;:::-;19084:19;;;19154:14;;;;19119:12;;;;19191:14;19180:26;;19177:46;;;19219:1;19216;19209:12;19177:46;19243:5;19257:938;19273:6;19268:3;19265:15;19257:938;;;19359:3;19346:17;19395:2;19382:11;19379:19;19376:109;;;19439:1;19468:2;19464;19457:14;19376:109;19508:23;;19576:4;19555:14;19551:23;;;19547:34;19544:124;;;19622:1;19651:2;19647;19640:14;19544:124;19696:22;;:::i;:::-;19747:21;19765:2;19747:21;:::i;:::-;19738:7;19731:38;19807:30;19833:2;19829;19825:11;19807:30;:::i;:::-;19802:2;19793:7;19789:16;19782:56;19861:2;19911;19907;19903:11;19890:25;19942:2;19934:6;19931:14;19928:104;;;19986:1;20015:2;20011;20004:14;19928:104;20070:49;20104:14;20095:6;20091:2;20087:15;20070:49;:::i;:::-;20052:16;;;20045:75;;;;-1:-1:-1;20133:20:145;;-1:-1:-1;20173:12:145;;;;19290;;19257:938;;;-1:-1:-1;20217:5:145;18653:1575;-1:-1:-1;;;;;;;18653:1575:145:o;20233:331::-;20338:9;20349;20391:8;20379:10;20376:24;20373:44;;;20413:1;20410;20403:12;20373:44;20442:6;20432:8;20429:20;20426:40;;;20462:1;20459;20452:12;20426:40;-1:-1:-1;;20488:23:145;;;20533:25;;;;;-1:-1:-1;20233:331:145:o;20569:476::-;20760:3;20798:6;20792:13;20814:66;20873:6;20868:3;20861:4;20853:6;20849:17;20814:66;:::i;:::-;20902:16;;20955:6;20947;20902:16;20927:35;21019:1;20981:18;;21008:13;;;-1:-1:-1;20981:18:145;;20569:476;-1:-1:-1;;;20569:476:145:o;21050:266::-;21138:6;21133:3;21126:19;21190:6;21183:5;21176:4;21171:3;21167:14;21154:43;-1:-1:-1;21242:1:145;21217:16;;;21235:4;21213:27;;;21206:38;;;;21298:2;21277:15;;;-1:-1:-1;;21273:29:145;21264:39;;;21260:50;;21050:266::o;21321:244::-;21478:2;21467:9;21460:21;21441:4;21498:61;21555:2;21544:9;21540:18;21532:6;21524;21498:61;:::i;21570:127::-;21631:10;21626:3;21622:20;21619:1;21612:31;21662:4;21659:1;21652:15;21686:4;21683:1;21676:15;21702:331;21801:4;21859:11;21846:25;21953:3;21949:8;21938;21922:14;21918:29;21914:44;21894:18;21890:69;21880:97;;21973:1;21970;21963:12;21880:97;21994:33;;;;;21702:331;-1:-1:-1;;21702:331:145:o;22038:521::-;22115:4;22121:6;22181:11;22168:25;22275:2;22271:7;22260:8;22244:14;22240:29;22236:43;22216:18;22212:68;22202:96;;22294:1;22291;22284:12;22202:96;22321:33;;22373:20;;;-1:-1:-1;;;;;;22405:30:145;;22402:50;;;22448:1;22445;22438:12;22402:50;22481:4;22469:17;;-1:-1:-1;22512:14:145;22508:27;;;22498:38;;22495:58;;;22549:1;22546;22539:12;22564:129;-1:-1:-1;;;;;22642:5:145;22638:30;22631:5;22628:41;22618:69;;22683:1;22680;22673:12;22698:992;23076:10;23049:25;23067:6;23049:25;:::i;:::-;23045:42;23034:9;23027:61;23151:4;23143:6;23139:17;23126:31;23119:4;23108:9;23104:20;23097:61;23008:4;23205;23197:6;23193:17;23180:31;23220:30;23244:5;23220:30;:::i;:::-;-1:-1:-1;;;;;23292:5:145;23288:30;23281:4;23270:9;23266:20;23259:60;;23355:6;23350:2;23339:9;23335:18;23328:34;23399:3;23393;23382:9;23378:19;23371:32;23426:62;23483:3;23472:9;23468:19;23460:6;23452;23426:62;:::i;:::-;-1:-1:-1;;;;;23525:32:145;;23545:3;23504:19;;23497:61;23595:22;;;23589:3;23574:19;;23567:51;23635:49;23599:6;23669;23661;23635:49;:::i;:::-;23627:57;22698:992;-1:-1:-1;;;;;;;;;;22698:992:145:o;23695:647::-;23774:6;23827:2;23815:9;23806:7;23802:23;23798:32;23795:52;;;23843:1;23840;23833:12;23795:52;23876:9;23870:16;-1:-1:-1;;;;;23901:6:145;23898:30;23895:50;;;23941:1;23938;23931:12;23895:50;23964:22;;24017:4;24009:13;;24005:27;-1:-1:-1;23995:55:145;;24046:1;24043;24036:12;23995:55;24075:2;24069:9;24100:48;24116:31;24144:2;24116:31;:::i;24100:48::-;24171:2;24164:5;24157:17;24211:7;24206:2;24201;24197;24193:11;24189:20;24186:33;24183:53;;;24232:1;24229;24222:12;24183:53;24245:67;24309:2;24304;24297:5;24293:14;24288:2;24284;24280:11;24245:67;:::i;24347:496::-;24526:3;24564:6;24558:13;24580:66;24639:6;24634:3;24627:4;24619:6;24615:17;24580:66;:::i;:::-;24709:13;;24668:16;;;;24731:70;24709:13;24668:16;24778:4;24766:17;;24731:70;:::i;:::-;24817:20;;24347:496;-1:-1:-1;;;;24347:496:145:o;25045:245::-;25103:6;25156:2;25144:9;25135:7;25131:23;25127:32;25124:52;;;25172:1;25169;25162:12;25124:52;25211:9;25198:23;25230:30;25254:5;25230:30;:::i;25295:479::-;25562:1;25558;25553:3;25549:11;25545:19;25537:6;25533:32;25522:9;25515:51;25602:6;25597:2;25586:9;25582:18;25575:34;25657:6;25649;25645:19;25640:2;25629:9;25625:18;25618:47;25701:3;25696:2;25685:9;25681:18;25674:31;25496:4;25722:46;25763:3;25752:9;25748:19;25740:6;25722:46;:::i;26088:245::-;26155:6;26208:2;26196:9;26187:7;26183:23;26179:32;26176:52;;;26224:1;26221;26214:12;26176:52;26256:9;26250:16;26275:28;26297:5;26275:28;:::i;26338:891::-;26561:2;26550:9;26543:21;26619:10;26610:6;26604:13;26600:30;26595:2;26584:9;26580:18;26573:58;26685:4;26677:6;26673:17;26667:24;26662:2;26651:9;26647:18;26640:52;26524:4;26739:2;26731:6;26727:15;26721:22;26780:4;26774:3;26763:9;26759:19;26752:33;26808:52;26855:3;26844:9;26840:19;26826:12;26808:52;:::i;:::-;26794:66;;26909:2;26901:6;26897:15;26891:22;26983:2;26979:7;26967:9;26959:6;26955:22;26951:36;26944:4;26933:9;26929:20;26922:66;27011:41;27045:6;27029:14;27011:41;:::i;:::-;27121:3;27109:16;;;;27103:23;27096:31;27089:39;27083:3;27068:19;;27061:68;-1:-1:-1;;;;;;;;27190:32:145;;;;27183:4;27168:20;;;27161:62;26997:55;26338:891::o;27234:284::-;27304:5;27352:4;27340:9;27335:3;27331:19;27327:30;27324:50;;;27370:1;27367;27360:12;27324:50;27392:22;;:::i;:::-;27383:31;;27443:9;27437:16;27430:5;27423:31;27507:2;27496:9;27492:18;27486:25;27481:2;27474:5;27470:14;27463:49;27234:284;;;;:::o;27523:525::-;27627:6;27680:3;27668:9;27659:7;27655:23;27651:33;27648:53;;;27697:1;27694;27687:12;27648:53;27723:22;;:::i;:::-;27774:9;27768:16;27761:5;27754:31;27830:2;27819:9;27815:18;27809:25;27843:32;27867:7;27843:32;:::i;:::-;27902:2;27891:14;;27884:31;27947:70;28009:7;28004:2;27989:18;;27947:70;:::i;:::-;27942:2;27931:14;;27924:94;27935:5;27523:525;-1:-1:-1;;;27523:525:145:o;28053:489::-;-1:-1:-1;;;;;28322:15:145;;;28304:34;;28374:15;;28369:2;28354:18;;28347:43;28421:2;28406:18;;28399:34;;;28469:3;28464:2;28449:18;;28442:31;;;28247:4;;28490:46;;28516:19;;28508:6;28490:46;:::i;28547:249::-;28616:6;28669:2;28657:9;28648:7;28644:23;28640:32;28637:52;;;28685:1;28682;28675:12;28637:52;28717:9;28711:16;28736:30;28760:5;28736:30;:::i;28926:542::-;29027:2;29022:3;29019:11;29016:446;;;29063:1;29087:5;29084:1;29077:16;29131:4;29128:1;29118:18;29201:2;29189:10;29185:19;29182:1;29178:27;29172:4;29168:38;29237:4;29225:10;29222:20;29219:47;;;-1:-1:-1;29260:4:145;29219:47;29315:2;29310:3;29306:12;29303:1;29299:20;29293:4;29289:31;29279:41;;29370:82;29388:2;29381:5;29378:13;29370:82;;;29433:17;;;29414:1;29403:13;29370:82;;;29374:3;;;28926:542;;;:::o;29644:1341::-;29768:3;29762:10;-1:-1:-1;;;;;29787:6:145;29784:30;29781:56;;;29817:18;;:::i;:::-;29846:96;29935:6;29895:38;29927:4;29921:11;29895:38;:::i;:::-;29889:4;29846:96;:::i;:::-;29997:4;;30054:2;30043:14;;30071:1;30066:662;;;;30772:1;30789:6;30786:89;;;-1:-1:-1;30841:19:145;;;30835:26;30786:89;-1:-1:-1;;29601:1:145;29597:11;;;29593:24;29589:29;29579:40;29625:1;29621:11;;;29576:57;30888:81;;30036:943;;30066:662;28873:1;28866:14;;;28910:4;28897:18;;-1:-1:-1;;30102:20:145;;;30219:236;30233:7;30230:1;30227:14;30219:236;;;30322:19;;;30316:26;30301:42;;30414:27;;;;30382:1;30370:14;;;;30249:19;;30219:236;;;30223:3;30483:6;30474:7;30471:19;30468:201;;;30544:19;;;30538:26;-1:-1:-1;;30627:1:145;30623:14;;;30639:3;30619:24;30615:37;30611:42;30596:58;30581:74;;30468:201;-1:-1:-1;;;;;30715:1:145;30699:14;;;30695:22;30682:36;;-1:-1:-1;29644:1341:145:o;30990:1164::-;31206:4;31235:2;31275;31264:9;31260:18;31305:2;31294:9;31287:21;31328:6;31363;31357:13;31394:6;31386;31379:22;31420:2;31410:12;;31453:2;31442:9;31438:18;31431:25;;31515:2;31505:6;31502:1;31498:14;31487:9;31483:30;31479:39;31553:2;31545:6;31541:15;31574:1;31584:541;31598:6;31595:1;31592:13;31584:541;;;31663:22;;;-1:-1:-1;;31659:36:145;31647:49;;31719:13;;31791:9;;31802:10;31787:26;31772:42;;31861:11;;;31855:18;31875:6;31851:31;31834:15;;;31827:56;31922:11;;31916:18;31755:4;31954:15;;;31947:27;;;31997:48;32029:15;;;31916:18;31997:48;:::i;:::-;32103:12;;;;31987:58;-1:-1:-1;;;32068:15:145;;;;31620:1;31613:9;31584:541;;;-1:-1:-1;32142:6:145;;30990:1164;-1:-1:-1;;;;;;;;30990:1164:145:o;32159:259::-;32259:6;32312:2;32300:9;32291:7;32287:23;32283:32;32280:52;;;32328:1;32325;32318:12;32280:52;32351:61;32404:7;32393:9;32351:61;:::i;32555:255::-;32675:19;;32714:2;32706:11;;32703:101;;;-1:-1:-1;;32775:2:145;32771:12;;;32768:1;32764:20;32760:33;32749:45;32555:255;;;;:::o;32815:503::-;33052:3;33030:16;;;-1:-1:-1;;;;;;33026:51:145;33014:64;;33133:3;33111:16;;;-1:-1:-1;;;;;;33107:43:145;33103:1;33094:11;;33087:64;33174:13;;-1:-1:-1;;33196:75:145;33174:13;33259:2;33250:12;;33243:4;33231:17;;33196:75;:::i;:::-;33291:16;;;;33309:2;33287:25;;32815:503;-1:-1:-1;;;;32815:503:145:o;33575:489::-;33818:6;33813:3;33806:19;33855:6;33850:2;33845:3;33841:12;33834:28;33892:6;33887:2;33882:3;33878:12;33871:28;33788:3;33928:6;33922:13;33944:73;34010:6;34005:2;34000:3;33996:12;33991:2;33983:6;33979:15;33944:73;:::i;:::-;34037:16;;;;34055:2;34033:25;;33575:489;-1:-1:-1;;;;;33575:489:145:o;34069:251::-;34139:6;34192:2;34180:9;34171:7;34167:23;34163:32;34160:52;;;34208:1;34205;34198:12;34160:52;34240:9;34234:16;34259:31;34284:5;34259:31;:::i;34984:287::-;35113:3;35151:6;35145:13;35167:66;35226:6;35221:3;35214:4;35206:6;35202:17;35167:66;:::i","linkReferences":{},"immutableReferences":{"6372":[{"start":1338,"length":32},{"start":2570,"length":32},{"start":4745,"length":32},{"start":5417,"length":32},{"start":6060,"length":32},{"start":7624,"length":32},{"start":8605,"length":32},{"start":8790,"length":32}]}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_COMPOSE()":"b21a33e4","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","buildMsgAndOptions((uint32,bytes32,uint256,bytes,bytes,bytes))":"7048de9a","combineOptions(uint32,uint16,bytes)":"bc70b354","credit(address,uint256,uint32)":"4dba701b","debit(uint256,uint32)":"dcdfd911","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","exists(uint256)":"4f558e79","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","mint(address,uint256)":"40c10f19","msgInspector()":"111ecdad","name()":"06fdde03","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","onftVersion()":"a72f5dd8","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":"c6414e7b","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"21eb730b","setApprovalForAll(address,bool)":"a22cb465","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","token()":"fc0c546a","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OnlyNFTOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ONFTSent\",\"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\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_COMPOSE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"}],\"name\":\"buildMsgAndOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"}],\"name\":\"credit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"debit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"onftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"approvalRequired()\":{\"details\":\"In the case of ONFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSender.sol implementation.\"}},\"onftVersion()\":{\"details\":\"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID (0x94642228).\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"fee The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds from fees etc. on the src.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"receipt The LayerZero messaging receipt from the send() operation.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the ONFT721 contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OApp version information.\"},\"onftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the ONFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"notice\":\"Executes the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setMsgInspector(address)\":{\"notice\":\"Sets the message inspector address for the OFT.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"},\"token()\":{\"notice\":\"Retrieves the address of the underlying ERC721 implementation (ie. this contract).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/onft/onft721/mocks/ONFT721Mock.sol\":\"ONFT721Mock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]},\"contracts/onft721/ONFT721.sol\":{\"keccak256\":\"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4\",\"dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu\"]},\"contracts/onft721/ONFT721Core.sol\":{\"keccak256\":\"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1\",\"dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy\"]},\"contracts/onft721/interfaces/IONFT721.sol\":{\"keccak256\":\"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8\",\"dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4\"]},\"contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]},\"test/onft/onft721/mocks/ONFT721Mock.sol\":{\"keccak256\":\"0xc31f9452ff2400b8279b490bdfe117aaaa27d1fcc35c1e6126a1cbc76a3be675\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dc38695a66a85a73b7098513e0fd65d5bf37751f8eb4d3f49dc937f0d6815b8c\",\"dweb:/ipfs/QmV7Swzcstxv8L3n4ZFuS7YBQD4xsHwLDRqvwyoL8bFRtw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"InvalidReceiver"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OnlyNFTOwner"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"ONFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_COMPOSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]}],"stateMutability":"view","type":"function","name":"buildMsgAndOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_srcEid","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"credit"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"debit"},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"onftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"onftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"approvalRequired()":{"details":"In the case of ONFT where the contract IS the token, approval is NOT required.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address. - srcEid: The source chain endpoint ID. - sender: The sender address on the src chain. - nonce: The nonce of the message."}},"name()":{"details":"See {IERC721Metadata-name}."},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSender.sol implementation."}},"onftVersion()":{"details":"version: Indicates a cross-chain compatible msg encoding with other ONFTs.If a new feature is added to the ONFT cross-chain msg encoding, the version will be incremented.ie. localONFT version(x,1) CAN send messages to remoteONFT version(x,1)","returns":{"interfaceId":"The interface ID (0x94642228).","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"fee The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"MessagingReceipt: LayerZero msg receipt - guid: The unique identifier for the sent message. - nonce: The nonce of the sent message. - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The fee information supplied by the caller. - nativeFee: The native fee. - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds from fees etc. on the src.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"receipt The LayerZero messaging receipt from the send() operation."}},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the ONFT721 contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OApp version information."},"onftVersion()":{"notice":"Retrieves interfaceID and the version of the ONFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteSend((uint32,bytes32,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"send((uint32,bytes32,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"notice":"Executes the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setMsgInspector(address)":{"notice":"Sets the message inspector address for the OFT."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."},"token()":{"notice":"Retrieves the address of the underlying ERC721 implementation (ie. this contract)."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/onft/onft721/mocks/ONFT721Mock.sol":"ONFT721Mock"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"},"contracts/onft721/ONFT721.sol":{"keccak256":"0x796631feb4e2934ccfd945fa1eff5c8a289d29cbc23059678df687a959a3de04","urls":["bzz-raw://45d0758f328760c75643da11dcfa3e88d673f132492fe9d8207de29558828dc4","dweb:/ipfs/QmYRG5dpLcCj7nFRJ5Q2of4qYVKtDJRJMrszWtAYF6F6qu"],"license":"MIT"},"contracts/onft721/ONFT721Core.sol":{"keccak256":"0x92695506e163cbb308a8c3690dff89450bc43e9c7e20b1176c934c09ad74e344","urls":["bzz-raw://888e9ae3e4358a2f710e49dd2f6525f295e856dcfece000bc8729fedafb9ced1","dweb:/ipfs/QmTfnkCiVLXAe3XkGgy5oKUjuqZS8rtup8Zu5UAFUCVhoy"],"license":"MIT"},"contracts/onft721/interfaces/IONFT721.sol":{"keccak256":"0x2a8959b1396f7c0800773f312b1215821bde6725906a67934876f7b0df3b5a85","urls":["bzz-raw://f65aa6400b07021a7d7475d0906b1988cfa91eefb45e5260943de368009c05e8","dweb:/ipfs/QmWBnsgX5kxBW9aY4ag1oQQ89i7A1q1zqFVwWvskh97Qj4"],"license":"MIT"},"contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"},"test/onft/onft721/mocks/ONFT721Mock.sol":{"keccak256":"0xc31f9452ff2400b8279b490bdfe117aaaa27d1fcc35c1e6126a1cbc76a3be675","urls":["bzz-raw://dc38695a66a85a73b7098513e0fd65d5bf37751f8eb4d3f49dc937f0d6815b8c","dweb:/ipfs/QmV7Swzcstxv8L3n4ZFuS7YBQD4xsHwLDRqvwyoL8bFRtw"],"license":"UNLICENSED"}},"version":1},"id":144} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFT721MsgCodec.sol/ONFT721MsgCodec.json b/packages/onft-evm/out/ONFT721MsgCodec.sol/ONFT721MsgCodec.json deleted file mode 100644 index b403fdd40..000000000 --- a/packages/onft-evm/out/ONFT721MsgCodec.sol/ONFT721MsgCodec.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ad9b0ba733cb448204a281e0897bf62d435c0ee6d8947d26f8e746aea8b858864736f6c63430008160033","sourceMap":"160:2808:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;160:2808:10;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ad9b0ba733cb448204a281e0897bf62d435c0ee6d8947d26f8e746aea8b858864736f6c63430008160033","sourceMap":"160:2808:10:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ONFT721MsgCodec\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for encoding and decoding ONFT721 LayerZero messages.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/onft721/libs/ONFT721MsgCodec.sol\":\"ONFT721MsgCodec\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/onft721/libs/ONFT721MsgCodec.sol\":{\"keccak256\":\"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871\",\"dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/onft721/libs/ONFT721MsgCodec.sol":"ONFT721MsgCodec"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/onft721/libs/ONFT721MsgCodec.sol":{"keccak256":"0xd3e3c2b090f058028a86540ee6cad6dd5388d96a142f518d41dae8299e9f1ef9","urls":["bzz-raw://e5945d255a29890c64e010b59925fd4c7179ed3867285bfa672de995f3f19871","dweb:/ipfs/QmTBdsQk7krmxrSo1rkHiVLG4U7mDJSr1MshVvwgn3DEAa"],"license":"MIT"}},"version":1},"id":10} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFTBaseTestHelper.sol/ONFTBaseTestHelper.json b/packages/onft-evm/out/ONFTBaseTestHelper.sol/ONFTBaseTestHelper.json deleted file mode 100644 index f1de18c6d..000000000 --- a/packages/onft-evm/out/ONFTBaseTestHelper.sol/ONFTBaseTestHelper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_FOR_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"assertGuid","inputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"},{"name":"guid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"decodeLzComposeOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"index","type":"uint16","internalType":"uint16"},{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeLzReceiveOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeNativeDropOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"receiver","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"executorValueCap","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextInflightPacket","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"hasPendingPackets","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"flag","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_from","type":"address","internalType":"address"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_to","type":"address","internalType":"address"},{"name":"_composerMsg","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzCompose","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_composer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceive","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextExecutorOption","inputs":[{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_cursor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"optionType","type":"uint8","internalType":"uint8"},{"name":"option","type":"bytes","internalType":"bytes"},{"name":"cursor","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"registerEndpoint","inputs":[{"name":"endpoint","type":"address","internalType":"contract EndpointV2Mock"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"schedulePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setExecutorValueCap","inputs":[{"name":"_valueCap","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUpEndpoints","inputs":[{"name":"_endpointNum","type":"uint8","internalType":"uint8"},{"name":"_libraryType","type":"uint8","internalType":"enum TestHelperOz5.LibraryType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setupOApps","inputs":[{"name":"_oappCreationCode","type":"bytes","internalType":"bytes"},{"name":"_startEid","type":"uint8","internalType":"uint8"},{"name":"_oappNum","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"sliceUintArray","inputs":[{"name":"array","type":"uint256[]","internalType":"uint256[]"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"},{"name":"_packetAmount","type":"uint256","internalType":"uint256"},{"name":"_composer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wireOApps","inputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"Executor_InvalidLzComposeOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReceiveOption","inputs":[]},{"type":"error","name":"Executor_InvalidNativeDropOption","inputs":[]},{"type":"error","name":"QueueEmpty","inputs":[]},{"type":"error","name":"QueueFull","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","TREASURY_GAS_CAP()":"baead19c","TREASURY_GAS_FOR_FEE_CAP()":"b1dcf5c8","assertGuid(bytes,bytes32)":"997cff1b","decodeLzComposeOption(bytes)":"518e8ab0","decodeLzReceiveOption(bytes)":"f93e1d61","decodeNativeDropOption(bytes)":"b954fdf6","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","executorValueCap()":"2113ce62","failed()":"ba414fa6","getNextInflightPacket(uint16,bytes32)":"7982cf42","hasPendingPackets(uint16,bytes32)":"5ea0fefe","lzCompose(bytes,bytes,bytes32,address)":"a29c8984","lzCompose(uint32,address,bytes,bytes32,address,bytes)":"3bbd6a94","lzReceive(bytes,bytes)":"ec53eaa0","nextExecutorOption(bytes,uint256)":"6e1775e3","registerEndpoint(address)":"ae6ce400","schedulePacket(bytes,bytes)":"faed6c58","setExecutorValueCap(uint128)":"defd9da6","setUp()":"0a9254e4","setUpEndpoints(uint8,uint8)":"1cc46525","setupOApps(bytes,uint8,uint8)":"2a35d250","sliceUintArray(uint256[],uint256,uint256)":"7c8bd543","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","validatePacket(bytes)":"12cc947f","verifyPackets(uint32,address)":"090852b6","verifyPackets(uint32,bytes32)":"b752b72a","verifyPackets(uint32,bytes32,uint256,address)":"5e7baa42","wireOApps(address[])":"703ca254"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReceiveOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidNativeDropOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueFull\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_GAS_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_GAS_FOR_FEE_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"}],\"name\":\"assertGuid\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzComposeOption\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzReceiveOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeNativeDropOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executorValueCap\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"getNextInflightPacket\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"packetBytes\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"hasPendingPackets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_composerMsg\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_composer\",\"type\":\"address\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_cursor\",\"type\":\"uint256\"}],\"name\":\"nextExecutorOption\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"optionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"option\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract EndpointV2Mock\",\"name\":\"endpoint\",\"type\":\"address\"}],\"name\":\"registerEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"schedulePacket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_valueCap\",\"type\":\"uint128\"}],\"name\":\"setExecutorValueCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_endpointNum\",\"type\":\"uint8\"},{\"internalType\":\"enum TestHelperOz5.LibraryType\",\"name\":\"_libraryType\",\"type\":\"uint8\"}],\"name\":\"setUpEndpoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_oappCreationCode\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"_startEid\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"_oappNum\",\"type\":\"uint8\"}],\"name\":\"setupOApps\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"oapps\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"array\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"sliceUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"}],\"name\":\"validatePacket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_packetAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_composer\",\"type\":\"address\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"oapps\",\"type\":\"address[]\"}],\"name\":\"wireOApps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"QueueEmpty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}],\"QueueFull()\":[{\"details\":\"A push operation couldn't be completed due to the queue being full.\"}]},\"kind\":\"dev\",\"methods\":{\"schedulePacket(bytes,bytes)\":{\"details\":\"Adds the packet to the front of the queue and stores its options for later retrieval.\",\"params\":{\"_options\":\"The options associated with the packet, used during delivery.\",\"_packetBytes\":\"The packet data to be scheduled.\"}},\"setExecutorValueCap(uint128)\":{\"details\":\"set executorValueCap if more than 0.1 ether is necessarythis must be called prior to setUpEndpoints() if the value is to be used\",\"params\":{\"_valueCap\":\"amount executor can pass as msg.value to lzReceive()\"}},\"setUp()\":{\"details\":\"Initializes test environment setup, to be overridden by specific tests.\"},\"setUpEndpoints(uint8,uint8)\":{\"params\":{\"_endpointNum\":\"The number of endpoints to create.\",\"_libraryType\":\"The type of message library to use (UltraLightNode or SimpleMessageLib).\"}},\"setupOApps(bytes,uint8,uint8)\":{\"params\":{\"_oappCreationCode\":\"The bytecode for creating OApp contracts.\",\"_oappNum\":\"The number of OApps to set up.\",\"_startEid\":\"The starting endpoint ID for OApp setup.\"},\"returns\":{\"oapps\":\"An array of addresses for the deployed OApps.\"}},\"verifyPackets(uint32,address)\":{\"details\":\"verify packets to destination chain's OApp address.\",\"params\":{\"_dstAddress\":\"The destination address.\",\"_dstEid\":\"The destination endpoint ID.\"}},\"verifyPackets(uint32,bytes32)\":{\"details\":\"Calls an overloaded version of verifyPackets with default values for packet amount and composer address.\",\"params\":{\"_dstAddress\":\"The destination address in bytes32 format.\",\"_dstEid\":\"The destination chain's endpoint ID.\"}},\"verifyPackets(uint32,bytes32,uint256,address)\":{\"details\":\"dst UA receive/execute packetswill NOT work calling this directly with composer IF the composed payload is different from the lzReceive msg payload\"},\"wireOApps(address[])\":{\"details\":\"Sets each OApp as a peer to every other OApp in the provided array, except itself.\",\"params\":{\"oapps\":\"An array of addresses representing the deployed OApp instances.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"schedulePacket(bytes,bytes)\":{\"notice\":\"Schedules a packet for delivery, storing it in the packets queue.\"},\"setUpEndpoints(uint8,uint8)\":{\"notice\":\"Sets up endpoints for testing.\"},\"setupOApps(bytes,uint8,uint8)\":{\"notice\":\"Sets up mock OApp contracts for testing.\"},\"verifyPackets(uint32,bytes32)\":{\"notice\":\"Verifies and processes packets destined for a specific chain and user address.\"},\"wireOApps(address[])\":{\"notice\":\"Configures the peers between multiple OApp instances.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/onft/ONFTBaseTestHelper.sol\":\"ONFTBaseTestHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol\":{\"keccak256\":\"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2\",\"dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol\":{\"keccak256\":\"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4\",\"dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol\":{\"keccak256\":\"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497\",\"dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":{\"keccak256\":\"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f\",\"dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol\":{\"keccak256\":\"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032\",\"dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":{\"keccak256\":\"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5\",\"dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":{\"keccak256\":\"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89\",\"dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":{\"keccak256\":\"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79\",\"dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol\":{\"keccak256\":\"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2\",\"dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9\",\"dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":{\"keccak256\":\"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55\",\"dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol\":{\"keccak256\":\"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc\",\"dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":{\"keccak256\":\"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850\",\"dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol\":{\"keccak256\":\"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691\",\"dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":{\"keccak256\":\"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241\",\"dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":{\"keccak256\":\"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c\",\"dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":{\"keccak256\":\"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a\",\"dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":{\"keccak256\":\"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54\",\"dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol\":{\"keccak256\":\"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda\",\"dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol\":{\"keccak256\":\"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2\",\"dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol\":{\"keccak256\":\"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11\",\"dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol\":{\"keccak256\":\"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677\",\"dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol\":{\"keccak256\":\"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590\",\"dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol\":{\"keccak256\":\"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045\",\"dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol\":{\"keccak256\":\"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13\",\"dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol\":{\"keccak256\":\"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29\",\"dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol\":{\"keccak256\":\"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f\",\"dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol\":{\"keccak256\":\"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec\",\"dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol\":{\"keccak256\":\"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4\",\"dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol\":{\"keccak256\":\"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574\",\"dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol\":{\"keccak256\":\"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991\",\"dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol\":{\"keccak256\":\"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1\",\"dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e\",\"dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8\",\"dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]},\"test/onft/ONFTBaseTestHelper.sol\":{\"keccak256\":\"0xc391362caf12a23d771d1dd8fa5e072ae7cff39266393f7deeae6de502f5dfb8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2567c9a0dd3e4f035dacb37e784ea5b55faa5fc0a42415e060355de3a969edd6\",\"dweb:/ipfs/QmWfsj1mFmeyMq99s63We4pUsL6jRa6wB9VQmVE1FCNCGN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Executor_InvalidLzComposeOption"},{"inputs":[],"type":"error","name":"Executor_InvalidLzReceiveOption"},{"inputs":[],"type":"error","name":"Executor_InvalidNativeDropOption"},{"inputs":[],"type":"error","name":"QueueEmpty"},{"inputs":[],"type":"error","name":"QueueFull"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_GAS_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_GAS_FOR_FEE_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"packetBytes","type":"bytes"},{"internalType":"bytes32","name":"guid","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertGuid"},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzComposeOption","outputs":[{"internalType":"uint16","name":"index","type":"uint16"},{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzReceiveOption","outputs":[{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeNativeDropOption","outputs":[{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes32","name":"receiver","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"executorValueCap","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getNextInflightPacket","outputs":[{"internalType":"bytes","name":"packetBytes","type":"bytes"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"view","type":"function","name":"hasPendingPackets","outputs":[{"internalType":"bool","name":"flag","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes","name":"_composerMsg","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"address","name":"_composer","type":"address"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"uint256","name":"_cursor","type":"uint256"}],"stateMutability":"pure","type":"function","name":"nextExecutorOption","outputs":[{"internalType":"uint8","name":"optionType","type":"uint8"},{"internalType":"bytes","name":"option","type":"bytes"},{"internalType":"uint256","name":"cursor","type":"uint256"}]},{"inputs":[{"internalType":"contract EndpointV2Mock","name":"endpoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerEndpoint"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"schedulePacket"},{"inputs":[{"internalType":"uint128","name":"_valueCap","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setExecutorValueCap"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint8","name":"_endpointNum","type":"uint8"},{"internalType":"enum TestHelperOz5.LibraryType","name":"_libraryType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setUpEndpoints"},{"inputs":[{"internalType":"bytes","name":"_oappCreationCode","type":"bytes"},{"internalType":"uint8","name":"_startEid","type":"uint8"},{"internalType":"uint8","name":"_oappNum","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setupOApps","outputs":[{"internalType":"address[]","name":"oapps","type":"address[]"}]},{"inputs":[{"internalType":"uint256[]","name":"array","type":"uint256[]"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"pure","type":"function","name":"sliceUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"validatePacket"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_dstAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"},{"internalType":"uint256","name":"_packetAmount","type":"uint256"},{"internalType":"address","name":"_composer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"address[]","name":"oapps","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"wireOApps"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"schedulePacket(bytes,bytes)":{"details":"Adds the packet to the front of the queue and stores its options for later retrieval.","params":{"_options":"The options associated with the packet, used during delivery.","_packetBytes":"The packet data to be scheduled."}},"setExecutorValueCap(uint128)":{"details":"set executorValueCap if more than 0.1 ether is necessarythis must be called prior to setUpEndpoints() if the value is to be used","params":{"_valueCap":"amount executor can pass as msg.value to lzReceive()"}},"setUp()":{"details":"Initializes test environment setup, to be overridden by specific tests."},"setUpEndpoints(uint8,uint8)":{"params":{"_endpointNum":"The number of endpoints to create.","_libraryType":"The type of message library to use (UltraLightNode or SimpleMessageLib)."}},"setupOApps(bytes,uint8,uint8)":{"params":{"_oappCreationCode":"The bytecode for creating OApp contracts.","_oappNum":"The number of OApps to set up.","_startEid":"The starting endpoint ID for OApp setup."},"returns":{"oapps":"An array of addresses for the deployed OApps."}},"verifyPackets(uint32,address)":{"details":"verify packets to destination chain's OApp address.","params":{"_dstAddress":"The destination address.","_dstEid":"The destination endpoint ID."}},"verifyPackets(uint32,bytes32)":{"details":"Calls an overloaded version of verifyPackets with default values for packet amount and composer address.","params":{"_dstAddress":"The destination address in bytes32 format.","_dstEid":"The destination chain's endpoint ID."}},"verifyPackets(uint32,bytes32,uint256,address)":{"details":"dst UA receive/execute packetswill NOT work calling this directly with composer IF the composed payload is different from the lzReceive msg payload"},"wireOApps(address[])":{"details":"Sets each OApp as a peer to every other OApp in the provided array, except itself.","params":{"oapps":"An array of addresses representing the deployed OApp instances."}}},"version":1},"userdoc":{"kind":"user","methods":{"schedulePacket(bytes,bytes)":{"notice":"Schedules a packet for delivery, storing it in the packets queue."},"setUpEndpoints(uint8,uint8)":{"notice":"Sets up endpoints for testing."},"setupOApps(bytes,uint8,uint8)":{"notice":"Sets up mock OApp contracts for testing."},"verifyPackets(uint32,bytes32)":{"notice":"Verifies and processes packets destined for a specific chain and user address."},"wireOApps(address[])":{"notice":"Configures the peers between multiple OApp instances."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/onft/ONFTBaseTestHelper.sol":"ONFTBaseTestHelper"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol":{"keccak256":"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9","urls":["bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2","dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol":{"keccak256":"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1","urls":["bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4","dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol":{"keccak256":"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e","urls":["bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497","dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":{"keccak256":"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a","urls":["bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f","dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol":{"keccak256":"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3","urls":["bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032","dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":{"keccak256":"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345","urls":["bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5","dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":{"keccak256":"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d","urls":["bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89","dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":{"keccak256":"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44","urls":["bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79","dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol":{"keccak256":"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5","urls":["bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2","dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f","urls":["bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9","dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":{"keccak256":"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73","urls":["bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55","dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol":{"keccak256":"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91","urls":["bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc","dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":{"keccak256":"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27","urls":["bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850","dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol":{"keccak256":"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f","urls":["bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691","dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol":{"keccak256":"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a","urls":["bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241","dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol":{"keccak256":"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73","urls":["bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c","dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol":{"keccak256":"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1","urls":["bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a","dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol":{"keccak256":"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420","urls":["bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54","dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":{"keccak256":"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5","urls":["bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b","dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":{"keccak256":"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9","urls":["bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f","dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol":{"keccak256":"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22","urls":["bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda","dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa"],"license":"BUSL-1.1"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol":{"keccak256":"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095","urls":["bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2","dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol":{"keccak256":"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95","urls":["bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11","dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol":{"keccak256":"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef","urls":["bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677","dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol":{"keccak256":"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada","urls":["bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590","dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol":{"keccak256":"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff","urls":["bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045","dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol":{"keccak256":"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21","urls":["bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13","dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol":{"keccak256":"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16","urls":["bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29","dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol":{"keccak256":"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830","urls":["bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f","dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol":{"keccak256":"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44","urls":["bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec","dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol":{"keccak256":"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121","urls":["bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4","dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol":{"keccak256":"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348","urls":["bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574","dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol":{"keccak256":"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9","urls":["bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991","dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol":{"keccak256":"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97","urls":["bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1","dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol":{"keccak256":"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70","urls":["bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e","dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"keccak256":"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67","urls":["bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8","dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"},"test/onft/ONFTBaseTestHelper.sol":{"keccak256":"0xc391362caf12a23d771d1dd8fa5e072ae7cff39266393f7deeae6de502f5dfb8","urls":["bzz-raw://2567c9a0dd3e4f035dacb37e784ea5b55faa5fc0a42415e060355de3a969edd6","dweb:/ipfs/QmWfsj1mFmeyMq99s63We4pUsL6jRa6wB9VQmVE1FCNCGN"],"license":"UNLICENSED"}},"version":1},"id":137} \ No newline at end of file diff --git a/packages/onft-evm/out/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.json b/packages/onft-evm/out/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.json deleted file mode 100644 index afd77e48c..000000000 --- a/packages/onft-evm/out/ONFTComposeMsgCodec.sol/ONFTComposeMsgCodec.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa1f06335796fe0c6cbaeb3fc19eaf44c7a57a7fd73ca1ade98d9579c4d7494264736f6c63430008160033","sourceMap":"168:2673:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;168:2673:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa1f06335796fe0c6cbaeb3fc19eaf44c7a57a7fd73ca1ade98d9579c4d7494264736f6c63430008160033","sourceMap":"168:2673:0:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ONFT Composed Message Codec\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for encoding and decoding ONFT composed messages.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":\"ONFTComposeMsgCodec\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"contracts/libs/ONFTComposeMsgCodec.sol\":{\"keccak256\":\"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a\",\"dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/libs/ONFTComposeMsgCodec.sol":"ONFTComposeMsgCodec"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/libs/ONFTComposeMsgCodec.sol":{"keccak256":"0xf30b096d0c6d725e32fe72a3e688ffd5f336620a74ce52a31e504587437ca418","urls":["bzz-raw://fe6bf5420984e7de4c6f58c6f8547bf0372652d5935b1378e5d096862f99a81a","dweb:/ipfs/QmfLKbAyXY31y9Hw9jq3f6vLAYSwbCrYBNhrCGYPQuHBNt"],"license":"MIT"}},"version":1},"id":0} \ No newline at end of file diff --git a/packages/onft-evm/out/OptionsBuilder.sol/OptionsBuilder.json b/packages/onft-evm/out/OptionsBuilder.sol/OptionsBuilder.json deleted file mode 100644 index 103774887..000000000 --- a/packages/onft-evm/out/OptionsBuilder.sol/OptionsBuilder.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"InvalidOptionType","inputs":[{"name":"optionType","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"InvalidSize","inputs":[{"name":"max","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122044164ecee57de4d12e4d79b0ac5052f7d2a947275afbc019abe48111d436480d64736f6c63430008160033","sourceMap":"524:7881:42:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;524:7881:42;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122044164ecee57de4d12e4d79b0ac5052f7d2a947275afbc019abe48111d436480d64736f6c63430008160033","sourceMap":"524:7881:42:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"optionType\",\"type\":\"uint16\"}],\"name\":\"InvalidOptionType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InvalidSize\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Library for building and encoding various message options.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"OptionsBuilder\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":\"OptionsBuilder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint16","name":"optionType","type":"uint16"}],"type":"error","name":"InvalidOptionType"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InvalidSize"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":"OptionsBuilder"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":42} \ No newline at end of file diff --git a/packages/onft-evm/out/OptionsHelper.sol/OptionsHelper.json b/packages/onft-evm/out/OptionsHelper.sol/OptionsHelper.json deleted file mode 100644 index 75bb59a5c..000000000 --- a/packages/onft-evm/out/OptionsHelper.sol/OptionsHelper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"decodeLzComposeOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"index","type":"uint16","internalType":"uint16"},{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeLzReceiveOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeNativeDropOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"receiver","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"nextExecutorOption","inputs":[{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_cursor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"optionType","type":"uint8","internalType":"uint8"},{"name":"option","type":"bytes","internalType":"bytes"},{"name":"cursor","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"error","name":"Executor_InvalidLzComposeOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReceiveOption","inputs":[]},{"type":"error","name":"Executor_InvalidNativeDropOption","inputs":[]}],"bytecode":{"object":"0x60806040526040516100109061005f565b604051809103906000f08015801561002c573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b039290921691909117905534801561005957600080fd5b5061006c565b6107f28061060d83390190565b6105928061007b6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063518e8ab0146100515780636e1775e314610093578063b954fdf6146100b6578063f93e1d61146100e8575b600080fd5b61006461005f3660046103c5565b61011b565b6040805161ffff90941684526001600160801b0392831660208501529116908201526060015b60405180910390f35b6100a66100a1366004610407565b610137565b60405161008a9493929190610453565b6100c96100c43660046103c5565b610159565b604080516001600160801b03909316835260208301919091520161008a565b6100fb6100f63660046103c5565b610172565b604080516001600160801b0393841681529290911660208301520161008a565b600080600061012a858561017f565b9250925092509250925092565b6000366000806101488787876101f3565b935093509350935093509350935093565b6000806101668484610249565b915091505b9250929050565b6000806101668484610290565b6000808060128414801590610195575060228414155b156101b357604051638b4aa70b60e01b815260040160405180910390fd5b6101bf858560006102ec565b92506101cd85856002610313565b9150602284146101de5760006101ea565b6101ea85856012610313565b90509250925092565b6000368160018401816102078888846102ec565b60029290920191905061021b88888461033a565b94506001820161ffff8216830161023481838b8d610496565b979b909a50969850505061ffff160193505050565b6000806030831461026d576040516361d0c2c760e11b815260040160405180910390fd5b61027984846000610313565b91506102878484601061035f565b90509250929050565b600080601083148015906102a5575060208314155b156102c357604051634796aee160e01b815260040160405180910390fd5b6102cf84846000610313565b9150602083146102e0576000610287565b61028784846010610313565b6000600282016102fe81848688610496565b610307916104c0565b60f01c95945050505050565b60006010820161032581848688610496565b61032e916104f0565b60801c95945050505050565b600083838381811061034e5761034e610527565b919091013560f81c95945050505050565b60006020820161037181848688610496565b61037a9161053d565b95945050505050565b60008083601f84011261039557600080fd5b50813567ffffffffffffffff8111156103ad57600080fd5b60208301915083602082850101111561016b57600080fd5b600080602083850312156103d857600080fd5b823567ffffffffffffffff8111156103ef57600080fd5b6103fb85828601610383565b90969095509350505050565b60008060006040848603121561041c57600080fd5b833567ffffffffffffffff81111561043357600080fd5b61043f86828701610383565b909790965060209590950135949350505050565b60ff85168152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b600080858511156104a657600080fd5b838611156104b357600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156104e85780818660020360031b1b83161692505b505092915050565b6fffffffffffffffffffffffffffffffff1981358181169160108510156104e85760109490940360031b84901b1690921692915050565b634e487b7160e01b600052603260045260246000fd5b8035602083101561055657600019602084900360031b1b165b9291505056fea2646970667358221220e7484a85ba7f2fc869e8c2895dbf32be538b579608aa73850785cc0b660ff4ac64736f6c63430008160033608060405234801561001057600080fd5b506107d2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e5c5e9a314610030575b600080fd5b61004361003e366004610529565b61005a565b6040516100519291906105eb565b60405180910390f35b6060806100678484610072565b915091509250929050565b606080600283101561009f5760405163196499c760e21b8152600060048201526024015b60405180910390fd5b60006100ae6002828688610619565b6100b791610643565b60f01c90506002600219820161021f578060005b868310156101c45760006100e460018501858a8c610619565b6100ed91610673565b60f81c9050600081900361011757604051636780cfaf60e01b815260006004820152602401610096565b8160ff1660000361012a57809150610167565b8160ff168160ff16146101675736600061014686868c8e610619565b915091506101578989868585610236565b9099509750859450919250829150505b600184019360009061017e90600301868b8d610619565b61018791610643565b60f01c905060008190036101b15760405163196499c760e21b815260048101869052602401610096565b8060020161ffff168501945050506100cb565b8287146101e75760405163196499c760e21b815260048101849052602401610096565b6002871115610218573660006101ff85858b8d610619565b915091506102108888858585610236565b909850965050505b505061022d565b61022a828787610356565b93505b50509250929050565b60608060001960ff8616016102b35786511561027557868484604051602001610261939291906106a1565b6040516020818303038152906040526102ac565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b965061034b565b60011960ff86160161032d578551156102ef578584846040516020016102db939291906106a1565b604051602081830303815290604052610326565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b955061034b565b604051636780cfaf60e01b815260ff86166004820152602401610096565b509495939450505050565b606060001961ffff8516016103f65760228214610386576040516301b8ca5560e31b815260040160405180910390fd5b60006103a7610399602260028688610619565b6103a2916106c9565b6104e8565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b1660248201529091506034016040516020818303038152906040529150506104e1565b60011961ffff8516016104c2576042821115806104135750606282115b15610431576040516360493e2b60e11b815260040160405180910390fd5b6000610444610399602260028688610619565b90506000610459610399604260228789610619565b90506000604119850161046f866042818a610619565b610478916106c9565b60405160086020938403029190911c92506104a9916001916011918391889183916031916002918b918b91016106e8565b60405160208183030381529060405293505050506104e1565b604051630417051360e41b815261ffff85166004820152602401610096565b9392505050565b60006fffffffffffffffffffffffffffffffff821115610525576040516306dfcc6560e41b81526080600482015260248101839052604401610096565b5090565b6000806020838503121561053c57600080fd5b823567ffffffffffffffff8082111561055457600080fd5b818501915085601f83011261056857600080fd5b81358181111561057757600080fd5b86602082850101111561058957600080fd5b60209290920196919550909350505050565b60005b838110156105b657818101518382015260200161059e565b50506000910152565b600081518084526105d781602086016020860161059b565b601f01601f19169290920160200192915050565b6040815260006105fe60408301856105bf565b828103602084015261061081856105bf565b95945050505050565b6000808585111561062957600080fd5b8386111561063657600080fd5b5050820193919092039150565b6001600160f01b0319813581811691600285101561066b5780818660020360031b1b83161692505b505092915050565b6001600160f81b0319813581811691600185101561066b5760019490940360031b84901b1690921692915050565b600084516106b381846020890161059b565b8201838582376000930192835250909392505050565b803560208310156106e257600019602084900360031b1b165b92915050565b60f88a811b6001600160f81b0319908116835260f08b901b6001600160f01b031916600184015289821b81166003840152608089901b6001600160801b03191660048401529087901b1660148201526000610752601583018760f01b6001600160f01b0319169052565b61076b601783018660f81b6001600160f81b0319169052565b610784601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea2646970667358221220ff331a469c287e3288e36db706f577b76ad4abf0ff12a11a4a37a3a30fa3315164736f6c63430008160033","sourceMap":"530:3025:70:-:0;;;587:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;559:48:70;;;-1:-1:-1;;;;;;559:48:70;-1:-1:-1;;;;;559:48:70;;;;;;;;;;530:3025;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063518e8ab0146100515780636e1775e314610093578063b954fdf6146100b6578063f93e1d61146100e8575b600080fd5b61006461005f3660046103c5565b61011b565b6040805161ffff90941684526001600160801b0392831660208501529116908201526060015b60405180910390f35b6100a66100a1366004610407565b610137565b60405161008a9493929190610453565b6100c96100c43660046103c5565b610159565b604080516001600160801b03909316835260208301919091520161008a565b6100fb6100f63660046103c5565b610172565b604080516001600160801b0393841681529290911660208301520161008a565b600080600061012a858561017f565b9250925092509250925092565b6000366000806101488787876101f3565b935093509350935093509350935093565b6000806101668484610249565b915091505b9250929050565b6000806101668484610290565b6000808060128414801590610195575060228414155b156101b357604051638b4aa70b60e01b815260040160405180910390fd5b6101bf858560006102ec565b92506101cd85856002610313565b9150602284146101de5760006101ea565b6101ea85856012610313565b90509250925092565b6000368160018401816102078888846102ec565b60029290920191905061021b88888461033a565b94506001820161ffff8216830161023481838b8d610496565b979b909a50969850505061ffff160193505050565b6000806030831461026d576040516361d0c2c760e11b815260040160405180910390fd5b61027984846000610313565b91506102878484601061035f565b90509250929050565b600080601083148015906102a5575060208314155b156102c357604051634796aee160e01b815260040160405180910390fd5b6102cf84846000610313565b9150602083146102e0576000610287565b61028784846010610313565b6000600282016102fe81848688610496565b610307916104c0565b60f01c95945050505050565b60006010820161032581848688610496565b61032e916104f0565b60801c95945050505050565b600083838381811061034e5761034e610527565b919091013560f81c95945050505050565b60006020820161037181848688610496565b61037a9161053d565b95945050505050565b60008083601f84011261039557600080fd5b50813567ffffffffffffffff8111156103ad57600080fd5b60208301915083602082850101111561016b57600080fd5b600080602083850312156103d857600080fd5b823567ffffffffffffffff8111156103ef57600080fd5b6103fb85828601610383565b90969095509350505050565b60008060006040848603121561041c57600080fd5b833567ffffffffffffffff81111561043357600080fd5b61043f86828701610383565b909790965060209590950135949350505050565b60ff85168152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b600080858511156104a657600080fd5b838611156104b357600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156104e85780818660020360031b1b83161692505b505092915050565b6fffffffffffffffffffffffffffffffff1981358181169160108510156104e85760109490940360031b84901b1690921692915050565b634e487b7160e01b600052603260045260246000fd5b8035602083101561055657600019602084900360031b1b165b9291505056fea2646970667358221220e7484a85ba7f2fc869e8c2895dbf32be538b579608aa73850785cc0b660ff4ac64736f6c63430008160033","sourceMap":"530:3025:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3349:204;;;;;;:::i;:::-;;:::i;:::-;;;;1010:6:145;998:19;;;980:38;;-1:-1:-1;;;;;1107:15:145;;;1102:2;1087:18;;1080:43;1159:15;;1139:18;;;1132:43;968:2;953:18;3349:204:70;;;;;;;;2722:249;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;3159:184::-;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;2405:47:145;;;2387:66;;2484:2;2469:18;;2462:34;;;;2360:18;3159:184:70;2213:289:145;2977:176:70;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;2752:15:145;;;2734:34;;2804:15;;;;2799:2;2784:18;;2777:43;2654:18;2977:176:70;2507:319:145;3349:204:70;3441:12;3455:11;3468:13;3500:46;3538:7;;3500:37;:46::i;:::-;3493:53;;;;;;3349:204;;;;;:::o;2722:249::-;2837:16;2855:21;;2878:14;2911:53;2946:8;;2956:7;2911:34;:53::i;:::-;2904:60;;;;;;;;2722:249;;;;;;;:::o;3159:184::-;3238:14;3254:16;3289:47;3328:7;;3289:38;:47::i;:::-;3282:54;;;;3159:184;;;;;;:::o;2977:176::-;3055:11;3068:13;3100:46;3138:7;;3100:37;:46::i;2591:371:67:-;2683:12;;;2757:2;2739:20;;;;;:44;;-1:-1:-1;2781:2:67;2763:20;;;2739:44;2735:90;;;2792:33;;-1:-1:-1;;;2792:33:67;;;;;;;;;;;2735:90;2843:16;:7;;2857:1;2843:13;:16::i;:::-;2835:24;-1:-1:-1;2875:17:67;:7;;2890:1;2875:14;:17::i;:::-;2869:23;-1:-1:-1;2928:2:67;2910:20;;:45;;2954:1;2910:45;;;2933:18;:7;;2948:2;2933:14;:18::i;:::-;2902:53;;2591:371;;;;;:::o;1251:742::-;1366:16;1384:21;1366:16;1506:1;1496:11;;1366:16;1568:22;:8;;1496:11;1568:14;:22::i;:::-;1614:1;1604:11;;;;;1554:36;-1:-1:-1;1675:21:67;:8;;1604:11;1675:13;:21::i;:::-;1662:34;-1:-1:-1;1826:1:67;1817:10;;1881:13;;;;;1917:31;1881:13;1817:10;1917:8;;:31;:::i;:::-;1251:742;;1908:40;;-1:-1:-1;1908:40:67;;-1:-1:-1;;;1962:14:67;;;;-1:-1:-1;;;1251:742:67:o;2314:271::-;2393:14;;2459:2;2441:20;;2437:67;;2470:34;;-1:-1:-1;;;2470:34:67;;;;;;;;;;;2437:67;2523:17;:7;;2538:1;2523:14;:17::i;:::-;2514:26;-1:-1:-1;2561:17:67;:7;;2575:2;2561:13;:17::i;:::-;2550:28;;2314:271;;;;;:::o;1999:309::-;2077:11;;2137:2;2119:20;;;;;:44;;-1:-1:-1;2161:2:67;2143:20;;;2119:44;2115:90;;;2172:33;;-1:-1:-1;;;2172:33:67;;;;;;;;;;;2115:90;2221:17;:7;;2236:1;2221:14;:17::i;:::-;2215:23;-1:-1:-1;2274:2:67;2256:20;;:45;;2300:1;2256:45;;;2279:18;:7;;2294:2;2279:14;:18::i;229:215:61:-;306:6;371:1;362:10;;407:18;362:10;:6;407;;:18;:::i;:::-;400:26;;;:::i;:::-;393:34;;;229:215;-1:-1:-1;;;;;229:215:61:o;892:220::-;970:7;1036:2;1027:11;;1075:18;1027:11;:6;1075;;:18;:::i;:::-;1067:27;;;:::i;:::-;1059:36;;;892:220;-1:-1:-1;;;;;892:220:61:o;95:128::-;171:5;201:6;;208;201:14;;;;;;;:::i;:::-;;;;;;;;;95:128;-1:-1:-1;;;;;95:128:61:o;1570:210::-;1647:7;1713:2;1704:11;;1744:18;1704:11;:6;1744;;:18;:::i;:::-;1736:27;;;:::i;:::-;1729:34;1570:210;-1:-1:-1;;;;;1570:210:61:o;14:347:145:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:145;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;366:409;436:6;444;497:2;485:9;476:7;472:23;468:32;465:52;;;513:1;510;503:12;465:52;553:9;540:23;586:18;578:6;575:30;572:50;;;618:1;615;608:12;572:50;657:58;707:7;698:6;687:9;683:22;657:58;:::i;:::-;734:8;;631:84;;-1:-1:-1;366:409:145;-1:-1:-1;;;;366:409:145:o;1186:477::-;1265:6;1273;1281;1334:2;1322:9;1313:7;1309:23;1305:32;1302:52;;;1350:1;1347;1340:12;1302:52;1390:9;1377:23;1423:18;1415:6;1412:30;1409:50;;;1455:1;1452;1445:12;1409:50;1494:58;1544:7;1535:6;1524:9;1520:22;1494:58;:::i;:::-;1571:8;;1468:84;;-1:-1:-1;1653:2:145;1638:18;;;;1625:32;;1186:477;-1:-1:-1;;;;1186:477:145:o;1668:540::-;1889:4;1881:6;1877:17;1866:9;1859:36;1931:2;1926;1915:9;1911:18;1904:30;1970:6;1965:2;1954:9;1950:18;1943:34;2028:6;2020;2014:3;2003:9;1999:19;1986:49;2085:1;2079:3;2070:6;2059:9;2055:22;2051:32;2044:43;1840:4;2155:3;2148:2;2144:7;2139:2;2131:6;2127:15;2123:29;2112:9;2108:45;2104:55;2096:63;;2195:6;2190:2;2179:9;2175:18;2168:34;1668:540;;;;;;;:::o;2831:331::-;2936:9;2947;2989:8;2977:10;2974:24;2971:44;;;3011:1;3008;3001:12;2971:44;3040:6;3030:8;3027:20;3024:40;;;3060:1;3057;3050:12;3024:40;-1:-1:-1;;3086:23:145;;;3131:25;;;;;-1:-1:-1;2831:331:145:o;3167:318::-;-1:-1:-1;;;;;;3287:19:145;;3358:11;;;;3389:1;3381:10;;3378:101;;;3466:2;3460;3453:3;3450:1;3446:11;3443:1;3439:19;3435:28;3431:2;3427:37;3423:46;3414:55;;3378:101;;;3167:318;;;;:::o;3490:345::-;-1:-1:-1;;3611:19:145;;3706:11;;;;3737:2;3729:11;;3726:103;;;3799:2;3795:12;;;;3792:1;3788:20;3784:29;;;3776:38;3772:47;;;;3490:345;-1:-1:-1;;3490:345:145:o;3840:127::-;3901:10;3896:3;3892:20;3889:1;3882:31;3932:4;3929:1;3922:15;3956:4;3953:1;3946:15;3972:255;4092:19;;4131:2;4123:11;;4120:101;;;-1:-1:-1;;4192:2:145;4188:12;;;4185:1;4181:20;4177:33;4166:45;4120:101;3972:255;;;;:::o","linkReferences":{}},"methodIdentifiers":{"decodeLzComposeOption(bytes)":"518e8ab0","decodeLzReceiveOption(bytes)":"f93e1d61","decodeNativeDropOption(bytes)":"b954fdf6","nextExecutorOption(bytes,uint256)":"6e1775e3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReceiveOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidNativeDropOption\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzComposeOption\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzReceiveOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeNativeDropOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_cursor\",\"type\":\"uint256\"}],\"name\":\"nextExecutorOption\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"optionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"option\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol\":\"OptionsHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":{\"keccak256\":\"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850\",\"dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol\":{\"keccak256\":\"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2\",\"dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Executor_InvalidLzComposeOption"},{"inputs":[],"type":"error","name":"Executor_InvalidLzReceiveOption"},{"inputs":[],"type":"error","name":"Executor_InvalidNativeDropOption"},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzComposeOption","outputs":[{"internalType":"uint16","name":"index","type":"uint16"},{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzReceiveOption","outputs":[{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeNativeDropOption","outputs":[{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes32","name":"receiver","type":"bytes32"}]},{"inputs":[{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"uint256","name":"_cursor","type":"uint256"}],"stateMutability":"pure","type":"function","name":"nextExecutorOption","outputs":[{"internalType":"uint8","name":"optionType","type":"uint8"},{"internalType":"bytes","name":"option","type":"bytes"},{"internalType":"uint256","name":"cursor","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol":"OptionsHelper"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":{"keccak256":"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27","urls":["bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850","dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol":{"keccak256":"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095","urls":["bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2","dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG"],"license":"UNLICENSED"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":70} \ No newline at end of file diff --git a/packages/onft-evm/out/OptionsHelper.sol/UlnOptionsMock.json b/packages/onft-evm/out/OptionsHelper.sol/UlnOptionsMock.json deleted file mode 100644 index b76edfa61..000000000 --- a/packages/onft-evm/out/OptionsHelper.sol/UlnOptionsMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"decode","inputs":[{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"executorOptions","type":"bytes","internalType":"bytes"},{"name":"dvnOptions","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"error","name":"LZ_ULN_InvalidLegacyType1Option","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidLegacyType2Option","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidWorkerId","inputs":[{"name":"workerId","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"LZ_ULN_InvalidWorkerOptions","inputs":[{"name":"cursor","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_ULN_UnsupportedOptionType","inputs":[{"name":"optionType","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506107d2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e5c5e9a314610030575b600080fd5b61004361003e366004610529565b61005a565b6040516100519291906105eb565b60405180910390f35b6060806100678484610072565b915091509250929050565b606080600283101561009f5760405163196499c760e21b8152600060048201526024015b60405180910390fd5b60006100ae6002828688610619565b6100b791610643565b60f01c90506002600219820161021f578060005b868310156101c45760006100e460018501858a8c610619565b6100ed91610673565b60f81c9050600081900361011757604051636780cfaf60e01b815260006004820152602401610096565b8160ff1660000361012a57809150610167565b8160ff168160ff16146101675736600061014686868c8e610619565b915091506101578989868585610236565b9099509750859450919250829150505b600184019360009061017e90600301868b8d610619565b61018791610643565b60f01c905060008190036101b15760405163196499c760e21b815260048101869052602401610096565b8060020161ffff168501945050506100cb565b8287146101e75760405163196499c760e21b815260048101849052602401610096565b6002871115610218573660006101ff85858b8d610619565b915091506102108888858585610236565b909850965050505b505061022d565b61022a828787610356565b93505b50509250929050565b60608060001960ff8616016102b35786511561027557868484604051602001610261939291906106a1565b6040516020818303038152906040526102ac565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b965061034b565b60011960ff86160161032d578551156102ef578584846040516020016102db939291906106a1565b604051602081830303815290604052610326565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b955061034b565b604051636780cfaf60e01b815260ff86166004820152602401610096565b509495939450505050565b606060001961ffff8516016103f65760228214610386576040516301b8ca5560e31b815260040160405180910390fd5b60006103a7610399602260028688610619565b6103a2916106c9565b6104e8565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b1660248201529091506034016040516020818303038152906040529150506104e1565b60011961ffff8516016104c2576042821115806104135750606282115b15610431576040516360493e2b60e11b815260040160405180910390fd5b6000610444610399602260028688610619565b90506000610459610399604260228789610619565b90506000604119850161046f866042818a610619565b610478916106c9565b60405160086020938403029190911c92506104a9916001916011918391889183916031916002918b918b91016106e8565b60405160208183030381529060405293505050506104e1565b604051630417051360e41b815261ffff85166004820152602401610096565b9392505050565b60006fffffffffffffffffffffffffffffffff821115610525576040516306dfcc6560e41b81526080600482015260248101839052604401610096565b5090565b6000806020838503121561053c57600080fd5b823567ffffffffffffffff8082111561055457600080fd5b818501915085601f83011261056857600080fd5b81358181111561057757600080fd5b86602082850101111561058957600080fd5b60209290920196919550909350505050565b60005b838110156105b657818101518382015260200161059e565b50506000910152565b600081518084526105d781602086016020860161059b565b601f01601f19169290920160200192915050565b6040815260006105fe60408301856105bf565b828103602084015261061081856105bf565b95945050505050565b6000808585111561062957600080fd5b8386111561063657600080fd5b5050820193919092039150565b6001600160f01b0319813581811691600285101561066b5780818660020360031b1b83161692505b505092915050565b6001600160f81b0319813581811691600185101561066b5760019490940360031b84901b1690921692915050565b600084516106b381846020890161059b565b8201838582376000930192835250909392505050565b803560208310156106e257600019602084900360031b1b165b92915050565b60f88a811b6001600160f81b0319908116835260f08b901b6001600160f01b031916600184015289821b81166003840152608089901b6001600160801b03191660048401529087901b1660148201526000610752601583018760f01b6001600160f01b0319169052565b61076b601783018660f81b6001600160f81b0319169052565b610784601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea2646970667358221220ff331a469c287e3288e36db706f577b76ad4abf0ff12a11a4a37a3a30fa3315164736f6c63430008160033","sourceMap":"281:247:70:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e5c5e9a314610030575b600080fd5b61004361003e366004610529565b61005a565b6040516100519291906105eb565b60405180910390f35b6060806100678484610072565b915091509250929050565b606080600283101561009f5760405163196499c760e21b8152600060048201526024015b60405180910390fd5b60006100ae6002828688610619565b6100b791610643565b60f01c90506002600219820161021f578060005b868310156101c45760006100e460018501858a8c610619565b6100ed91610673565b60f81c9050600081900361011757604051636780cfaf60e01b815260006004820152602401610096565b8160ff1660000361012a57809150610167565b8160ff168160ff16146101675736600061014686868c8e610619565b915091506101578989868585610236565b9099509750859450919250829150505b600184019360009061017e90600301868b8d610619565b61018791610643565b60f01c905060008190036101b15760405163196499c760e21b815260048101869052602401610096565b8060020161ffff168501945050506100cb565b8287146101e75760405163196499c760e21b815260048101849052602401610096565b6002871115610218573660006101ff85858b8d610619565b915091506102108888858585610236565b909850965050505b505061022d565b61022a828787610356565b93505b50509250929050565b60608060001960ff8616016102b35786511561027557868484604051602001610261939291906106a1565b6040516020818303038152906040526102ac565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b965061034b565b60011960ff86160161032d578551156102ef578584846040516020016102db939291906106a1565b604051602081830303815290604052610326565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b955061034b565b604051636780cfaf60e01b815260ff86166004820152602401610096565b509495939450505050565b606060001961ffff8516016103f65760228214610386576040516301b8ca5560e31b815260040160405180910390fd5b60006103a7610399602260028688610619565b6103a2916106c9565b6104e8565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b1660248201529091506034016040516020818303038152906040529150506104e1565b60011961ffff8516016104c2576042821115806104135750606282115b15610431576040516360493e2b60e11b815260040160405180910390fd5b6000610444610399602260028688610619565b90506000610459610399604260228789610619565b90506000604119850161046f866042818a610619565b610478916106c9565b60405160086020938403029190911c92506104a9916001916011918391889183916031916002918b918b91016106e8565b60405160208183030381529060405293505050506104e1565b604051630417051360e41b815261ffff85166004820152602401610096565b9392505050565b60006fffffffffffffffffffffffffffffffff821115610525576040516306dfcc6560e41b81526080600482015260248101839052604401610096565b5090565b6000806020838503121561053c57600080fd5b823567ffffffffffffffff8082111561055457600080fd5b818501915085601f83011261056857600080fd5b81358181111561057757600080fd5b86602082850101111561058957600080fd5b60209290920196919550909350505050565b60005b838110156105b657818101518382015260200161059e565b50506000910152565b600081518084526105d781602086016020860161059b565b601f01601f19169290920160200192915050565b6040815260006105fe60408301856105bf565b828103602084015261061081856105bf565b95945050505050565b6000808585111561062957600080fd5b8386111561063657600080fd5b5050820193919092039150565b6001600160f01b0319813581811691600285101561066b5780818660020360031b1b83161692505b505092915050565b6001600160f81b0319813581811691600185101561066b5760019490940360031b84901b1690921692915050565b600084516106b381846020890161059b565b8201838582376000930192835250909392505050565b803560208310156106e257600019602084900360031b1b165b92915050565b60f88a811b6001600160f81b0319908116835260f08b901b6001600160f01b031916600184015289821b81166003840152608089901b6001600160801b03191660048401529087901b1660148201526000610752601583018760f01b6001600160f01b0319169052565b61076b601783018660f81b6001600160f81b0319169052565b610784601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea2646970667358221220ff331a469c287e3288e36db706f577b76ad4abf0ff12a11a4a37a3a30fa3315164736f6c63430008160033","sourceMap":"281:247:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:182;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;420:28;450:23;492:27;510:8;;492:17;:27::i;:::-;485:34;;;;344:182;;;;;:::o;1135:3038:30:-;1213:28;;1373:1;1355:19;;1351:62;;;1383:30;;-1:-1:-1;;;1383:30:30;;1411:1;1383:30;;;1676:25:145;1649:18;;1383:30:30;;;;;;;;1351:62;1424:18;1459:13;1470:1;1424:18;1459:8;;:13;:::i;:::-;1452:21;;;:::i;:::-;1445:29;;;-1:-1:-1;1501:1:30;-1:-1:-1;;1700:21:30;;1696:2471;;1781:6;1765:13;2066:1412;2073:24;;;2066:1412;;;2121:14;2151:27;2176:1;2167:10;;2160:6;2151:8;;:27;:::i;:::-;2144:35;;;:::i;:::-;2138:42;;;-1:-1:-1;2218:1:30;2206:13;;;2202:51;;2228:25;;-1:-1:-1;;;2228:25:30;;2251:1;2228:25;;;2844:36:145;2817:18;;2228:25:30;2692:194:145;2202:51:30;2537:12;:17;;2553:1;2537:17;2533:681;;2597:8;2582:23;;2533:681;;;2650:12;2638:24;;:8;:24;;;2634:580;;2690:17;;2710:22;2725:6;2719:5;2710:8;;:22;:::i;:::-;2690:42;;;;2829:205;2879:15;2924:10;2964:12;3006:2;;2829:20;:205::i;:::-;2797:237;;-1:-1:-1;2797:237:30;-1:-1:-1;3136:6:30;;-1:-1:-1;3183:8:30;;-1:-1:-1;3183:8:30;;-1:-1:-1;;2634:580:30;3236:8;;;;3283:11;;3311:27;;3327:10;;3236:8;3311;;:27;:::i;:::-;3304:35;;;:::i;:::-;3297:43;;;-1:-1:-1;3374:1:30;3366:9;;;3362:57;;3384:35;;-1:-1:-1;;;3384:35:30;;;;;1676:25:145;;;1649:18;;3384:35:30;1522:185:145;3362:57:30;3451:4;3458:1;3451:8;3441:18;;;;;;2099:1379;;2066:1412;;;3580:25;;;3576:73;;3614:35;;-1:-1:-1;;;3614:35:30;;;;;1676:25:145;;;1649:18;;3614:35:30;1522:185:145;3576:73:30;3845:1;3827:19;;3823:229;;;3870:17;;3890:22;3905:6;3899:5;3890:8;;:22;:::i;:::-;3870:42;;;;3966:67;3987:15;4004:10;4016:12;4030:2;;3966:20;:67::i;:::-;3934:99;;-1:-1:-1;3934:99:30;-1:-1:-1;;;3823:229:30;1737:2329;;1696:2471;;;4114:42;4134:11;4147:8;;4114:19;:42::i;:::-;4096:60;;1696:2471;1268:2905;;1135:3038;;;;;:::o;4179:733::-;4371:12;;-1:-1:-1;;4413:38:30;;;;4409:449;;4486:23;;:28;:124;;4580:16;4598:11;;4563:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4486:124;;;4533:11;;4486:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4486:124:30;4467:143;;4409:449;;;-1:-1:-1;;4631:33:30;;;;4627:231;;4694:18;;:23;:82;;4751:11;4764;;4734:42;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4694:82;;;4720:11;;4694:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4694:82:30;4680:96;;4627:231;;;4814:33;;-1:-1:-1;;;4814:33:30;;2874:4:145;2862:17;;4814:33:30;;;2844:36:145;2817:18;;4814:33:30;2692:194:145;4627:231:30;-1:-1:-1;4875:16:30;;4893:11;;-1:-1:-1;;;;4179:733:30:o;5428:3052::-;5547:28;-1:-1:-1;;5591:21:30;;;;5587:2887;;5651:2;5632:21;;5628:67;;5662:33;;-1:-1:-1;;;5662:33:30;;;;;;;;;;;5628:67;5739:20;5762:48;5778:18;5789:6;5787:1;5778:8;;:18;:::i;:::-;5770:27;;;:::i;:::-;5762:46;:48::i;:::-;6205:239;;-1:-1:-1;;;6205:239:30;;;4596:38:145;;;-1:-1:-1;;;4650:11:145;;;4643:59;4718:11;;;4711:46;-1:-1:-1;;;;;;4794:3:145;4790:16;;;4786:62;4773:11;;;4766:83;5739:71:30;;-1:-1:-1;4865:12:145;;6205:239:30;;;;;;;;;;;;6187:257;;5614:841;5587:2887;;;-1:-1:-1;;6465:21:30;;;;6461:2013;;6560:2;6541:21;;;;:45;;-1:-1:-1;6584:2:30;6566:20;;6541:45;6537:91;;;6595:33;;-1:-1:-1;;;6595:33:30;;;;;;;;;;;6537:91;6672:20;6695:48;6711:18;6722:6;6720:1;6711:8;;:18;:::i;6695:48::-;6672:71;-1:-1:-1;6804:14:30;6821:50;6837:20;6849:7;6846:2;6837:8;;:20;:::i;6821:50::-;6804:67;-1:-1:-1;6902:16:30;-1:-1:-1;;6982:20:30;;7061:13;6982:8;7000:2;6982:8;;7061:13;:::i;:::-;7053:22;;;:::i;:::-;7909:475;;7117:1;7122:2;:16;;;7117:22;7104:36;;;;;-1:-1:-1;7909:475:30;;238:1:67;;7993:2:30;;238:1:67;;8122:12:30;;238:1:67;;8202:2:30;;351:1:67;;8338:6:30;;7104:36;;7909:475;;:::i;:::-;;;;;;;;;;;;;7891:493;;6488:1907;;;6461:2013;;;8422:41;;-1:-1:-1;;;8422:41:30;;5956:6:145;5944:19;;8422:41:30;;;5926:38:145;5899:18;;8422:41:30;5782:188:145;6461:2013:30;5428:3052;;;;;:::o;9259:218:129:-;9316:7;9347:17;9339:25;;9335:105;;;9387:42;;-1:-1:-1;;;9387:42:129;;9418:3;9387:42;;;6157:36:145;6209:18;;;6202:34;;;6130:18;;9387:42:129;5975:267:145;9335:105:129;-1:-1:-1;9464:5:129;9259:218::o;14:591:145:-;84:6;92;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;201:9;188:23;230:18;271:2;263:6;260:14;257:34;;;287:1;284;277:12;257:34;325:6;314:9;310:22;300:32;;370:7;363:4;359:2;355:13;351:27;341:55;;392:1;389;382:12;341:55;432:2;419:16;458:2;450:6;447:14;444:34;;;474:1;471;464:12;444:34;519:7;514:2;505:6;501:2;497:15;493:24;490:37;487:57;;;540:1;537;530:12;487:57;571:2;563:11;;;;;593:6;;-1:-1:-1;14:591:145;;-1:-1:-1;;;;14:591:145:o;610:250::-;695:1;705:113;719:6;716:1;713:13;705:113;;;795:11;;;789:18;776:11;;;769:39;741:2;734:10;705:113;;;-1:-1:-1;;852:1:145;834:16;;827:27;610:250::o;865:270::-;906:3;944:5;938:12;971:6;966:3;959:19;987:76;1056:6;1049:4;1044:3;1040:14;1033:4;1026:5;1022:16;987:76;:::i;:::-;1117:2;1096:15;-1:-1:-1;;1092:29:145;1083:39;;;;1124:4;1079:50;;865:270;-1:-1:-1;;865:270:145:o;1140:377::-;1333:2;1322:9;1315:21;1296:4;1359:44;1399:2;1388:9;1384:18;1376:6;1359:44;:::i;:::-;1451:9;1443:6;1439:22;1434:2;1423:9;1419:18;1412:50;1479:32;1504:6;1496;1479:32;:::i;:::-;1471:40;1140:377;-1:-1:-1;;;;;1140:377:145:o;1712:331::-;1817:9;1828;1870:8;1858:10;1855:24;1852:44;;;1892:1;1889;1882:12;1852:44;1921:6;1911:8;1908:20;1905:40;;;1941:1;1938;1931:12;1905:40;-1:-1:-1;;1967:23:145;;;2012:25;;;;;-1:-1:-1;1712:331:145:o;2048:318::-;-1:-1:-1;;;;;;2168:19:145;;2239:11;;;;2270:1;2262:10;;2259:101;;;2347:2;2341;2334:3;2331:1;2327:11;2324:1;2320:19;2316:28;2312:2;2308:37;2304:46;2295:55;;2259:101;;;2048:318;;;;:::o;2371:316::-;-1:-1:-1;;;;;;2491:19:145;;2560:11;;;;2591:1;2583:10;;2580:101;;;2652:1;2648:11;;;;2645:1;2641:19;2637:28;;;2629:37;2625:46;;;;2371:316;-1:-1:-1;;2371:316:145:o;3073:470::-;3258:3;3296:6;3290:13;3312:66;3371:6;3366:3;3359:4;3351:6;3347:17;3312:66;:::i;:::-;3400:16;;3453:6;3445;3400:16;3425:35;3517:1;3479:18;;3506:13;;;-1:-1:-1;3479:18:145;;3073:470;-1:-1:-1;;;3073:470:145:o;3737:255::-;3857:19;;3896:2;3888:11;;3885:101;;;-1:-1:-1;;3957:2:145;3953:12;;;3950:1;3946:20;3942:33;3931:45;3885:101;3737:255;;;;:::o;4888:889::-;5235:3;5269:16;;;-1:-1:-1;;;;;;5265:25:145;;;5253:38;;5346:3;5324:16;;;-1:-1:-1;;;;;;5320:38:145;5316:1;5307:11;;5300:59;5392:16;;;5388:25;;5384:1;5375:11;;5368:46;5451:3;5447:16;;;-1:-1:-1;;;;;;5443:62:145;5439:1;5430:11;;5423:83;5540:16;;;;5536:25;5531:2;5522:12;;5515:47;5203:3;5571:39;5606:2;5597:12;;5589:6;4198:3;4177:15;-1:-1:-1;;;;;;4173:37:145;4161:50;;4108:109;5571:39;5619:38;5653:2;5648:3;5644:12;5636:6;4086:3;4065:15;-1:-1:-1;;;;;;4061:35:145;4049:48;;3997:106;5619:38;5666:40;5702:2;5697:3;5693:12;5685:6;4296:3;4292:15;-1:-1:-1;;;;;;4288:61:145;4276:74;;4222:134;5666:40;-1:-1:-1;5731:2:145;5722:12;;5715:28;;;;5768:2;5759:12;;4888:889;-1:-1:-1;;;;;;;;4888:889:145:o","linkReferences":{}},"methodIdentifiers":{"decode(bytes)":"e5c5e9a3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_ULN_InvalidLegacyType1Option\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidLegacyType2Option\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"workerId\",\"type\":\"uint8\"}],\"name\":\"LZ_ULN_InvalidWorkerId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"LZ_ULN_InvalidWorkerOptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"optionType\",\"type\":\"uint16\"}],\"name\":\"LZ_ULN_UnsupportedOptionType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"decode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"executorOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"dvnOptions\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol\":\"UlnOptionsMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":{\"keccak256\":\"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850\",\"dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol\":{\"keccak256\":\"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2\",\"dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_ULN_InvalidLegacyType1Option"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidLegacyType2Option"},{"inputs":[{"internalType":"uint8","name":"workerId","type":"uint8"}],"type":"error","name":"LZ_ULN_InvalidWorkerId"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"type":"error","name":"LZ_ULN_InvalidWorkerOptions"},{"inputs":[{"internalType":"uint16","name":"optionType","type":"uint16"}],"type":"error","name":"LZ_ULN_UnsupportedOptionType"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decode","outputs":[{"internalType":"bytes","name":"executorOptions","type":"bytes"},{"internalType":"bytes","name":"dvnOptions","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol":"UlnOptionsMock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":{"keccak256":"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27","urls":["bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850","dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol":{"keccak256":"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095","urls":["bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2","dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG"],"license":"UNLICENSED"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":70} \ No newline at end of file diff --git a/packages/onft-evm/out/Ownable.sol/Ownable.json b/packages/onft-evm/out/Ownable.sol/Ownable.json deleted file mode 100644 index c476be291..000000000 --- a/packages/onft-evm/out/Ownable.sol/Ownable.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the address provided by the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":"Ownable"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":105} \ No newline at end of file diff --git a/packages/onft-evm/out/Packet.sol/PacketDecoder.json b/packages/onft-evm/out/Packet.sol/PacketDecoder.json deleted file mode 100644 index 8fddc7cc2..000000000 --- a/packages/onft-evm/out/Packet.sol/PacketDecoder.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204a51f417ce6cdfdacaa20e7c2ba4130cb7d7d8a63194cb6d2f04b16881e7faec64736f6c63430008160033","sourceMap":"942:1527:46:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;942:1527:46;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204a51f417ce6cdfdacaa20e7c2ba4130cb7d7d8a63194cb6d2f04b16881e7faec64736f6c63430008160033","sourceMap":"942:1527:46:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for decoding LayerZero packets.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PacketDecoder\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":\"PacketDecoder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":"PacketDecoder"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":46} \ No newline at end of file diff --git a/packages/onft-evm/out/PacketV1Codec.sol/PacketV1Codec.json b/packages/onft-evm/out/PacketV1Codec.sol/PacketV1Codec.json deleted file mode 100644 index 529be01d0..000000000 --- a/packages/onft-evm/out/PacketV1Codec.sol/PacketV1Codec.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206b823cf78cedd99f24d913f7e464c537d19034cd2a78445e1e72b383235a38ea64736f6c63430008160033","sourceMap":"179:3486:68:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;179:3486:68;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206b823cf78cedd99f24d913f7e464c537d19034cd2a78445e1e72b383235a38ea64736f6c63430008160033","sourceMap":"179:3486:68:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":\"PacketV1Codec\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":"PacketV1Codec"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":68} \ No newline at end of file diff --git a/packages/onft-evm/out/Pausable.sol/Pausable.json b/packages/onft-evm/out/Pausable.sol/Pausable.json deleted file mode 100644 index 82dab52e7..000000000 --- a/packages/onft-evm/out/Pausable.sol/Pausable.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract in unpaused state."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Pausable.sol":"Pausable"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"}},"version":1},"id":121} \ No newline at end of file diff --git a/packages/onft-evm/out/PriceFeedMock.sol/PriceFeedMock.json b/packages/onft-evm/out/PriceFeedMock.sol/PriceFeedMock.json deleted file mode 100644 index 2883580e6..000000000 --- a/packages/onft-evm/out/PriceFeedMock.sol/PriceFeedMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_priceUpdater","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ARBITRUM_COMPRESSION_PERCENT","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"arbitrumPriceExt","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ILayerZeroPriceFeed.ArbitrumPriceExt","components":[{"name":"gasPerL2Tx","type":"uint64","internalType":"uint64"},{"name":"gasPerL1CallDataByte","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"estimateFeeByChain","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_callDataSize","type":"uint256","internalType":"uint256"},{"name":"_gas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"},{"name":"priceRatio","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"estimateFeeByEid","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_callDataSize","type":"uint256","internalType":"uint256"},{"name":"_gas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint128","internalType":"uint128"},{"name":"","type":"uint128","internalType":"uint128"},{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"estimateFeeOnSend","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_callDataSize","type":"uint256","internalType":"uint256"},{"name":"_gas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint128","internalType":"uint128"},{"name":"","type":"uint128","internalType":"uint128"},{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"payable"},{"type":"function","name":"getFee","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getPrice","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct ILayerZeroPriceFeed.Price","components":[{"name":"priceRatio","type":"uint128","internalType":"uint128"},{"name":"gasPriceInUnit","type":"uint64","internalType":"uint64"},{"name":"gasPerByte","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getPrice","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"price","type":"tuple","internalType":"struct ILayerZeroPriceFeed.Price","components":[{"name":"priceRatio","type":"uint128","internalType":"uint128"},{"name":"gasPriceInUnit","type":"uint64","internalType":"uint64"},{"name":"gasPerByte","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getPriceRatioDenominator","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"nativeTokenPriceUSD","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"priceUpdater","inputs":[{"name":"updater","type":"address","internalType":"address"}],"outputs":[{"name":"active","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setArbitrumCompressionPercent","inputs":[{"name":"_compressionPercent","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEndpoint","inputs":[{"name":"_endpoint","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNativeTokenPriceUSD","inputs":[{"name":"_nativeTokenPriceUSD","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPrice","inputs":[{"name":"_price","type":"tuple[]","internalType":"struct ILayerZeroPriceFeed.UpdatePrice[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"price","type":"tuple","internalType":"struct ILayerZeroPriceFeed.Price","components":[{"name":"priceRatio","type":"uint128","internalType":"uint128"},{"name":"gasPriceInUnit","type":"uint64","internalType":"uint64"},{"name":"gasPerByte","type":"uint32","internalType":"uint32"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPriceForArbitrum","inputs":[{"name":"_update","type":"tuple","internalType":"struct ILayerZeroPriceFeed.UpdatePriceExt","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"price","type":"tuple","internalType":"struct ILayerZeroPriceFeed.Price","components":[{"name":"priceRatio","type":"uint128","internalType":"uint128"},{"name":"gasPriceInUnit","type":"uint64","internalType":"uint64"},{"name":"gasPerByte","type":"uint32","internalType":"uint32"}]},{"name":"extend","type":"tuple","internalType":"struct ILayerZeroPriceFeed.ArbitrumPriceExt","components":[{"name":"gasPerL2Tx","type":"uint64","internalType":"uint64"},{"name":"gasPerL1CallDataByte","type":"uint32","internalType":"uint32"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPriceRatioDenominator","inputs":[{"name":"_denominator","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPriceUpdater","inputs":[{"name":"_addr","type":"address","internalType":"address"},{"name":"_active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"LZ_PriceFeed_InsufficientFee","inputs":[{"name":"provided","type":"uint256","internalType":"uint256"},{"name":"required","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_PriceFeed_NotAnOPStack","inputs":[{"name":"l2Eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"LZ_PriceFeed_OnlyPriceUpdater","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516114d63803806114d683398101604081905261002f9161010a565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e816100ba565b506001600160a01b03166000908152600260205260409020805460ff1916600190811790915580546001600160801b03191668056bc75e2d6310000017905560058054602f60801b6001600160801b039190911617905561013a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561011c57600080fd5b81516001600160a01b038116811461013357600080fd5b9392505050565b61138d806101496000396000f3fe6080604052600436106101405760003560e01c80638ca2fb08116100b6578063d350ad251161006f578063d350ad2514610441578063da26663a14610461578063dbbb415514610522578063e0ad121a14610542578063f2fde38b146105cb578063fd9be522146105eb57600080fd5b80638ca2fb08146103595780638da5cb5b1461039957806392807f58146103b7578063c1723a1d146103e9578063c1840327146103fc578063cd68b79b1461041a57600080fd5b80635d6d7ccb116101085780635d6d7ccb146102405780635e280f1114610260578063715018a6146102985780637bc3c9ab146102ad5780637dc438a4146102ea57806388a4124c1461030a57600080fd5b806311f2c343146101455780632f7cb0b41461017c5780633161b7f61461019e57806336a5beba146101be57806352a7251014610220575b600080fd5b34801561015157600080fd5b5061016961016036600461100d565b60009392505050565b6040519081526020015b60405180910390f35b34801561018857600080fd5b5061019c610197366004611057565b61060b565b005b3480156101aa57600080fd5b5061019c6101b9366004611079565b610632565b3480156101ca57600080fd5b506040805180820182526000808252602091820152815180830183526004546001600160401b03811680835263ffffffff600160401b909204821692840192835284519081529151169181019190915201610173565b34801561022c57600080fd5b5061019c61023b366004611104565b610773565b34801561024c57600080fd5b5061019c61025b366004611057565b6107a6565b34801561026c57600080fd5b50600654610280906001600160a01b031681565b6040516001600160a01b039091168152602001610173565b3480156102a457600080fd5b5061019c610819565b3480156102b957600080fd5b506102cd6102c8366004611152565b61082d565b604080519283526001600160801b03909116602083015201610173565b3480156102f657600080fd5b5061019c610305366004611170565b6108c8565b34801561031657600080fd5b5061032a61032536600461100d565b610989565b604080519485526001600160801b03938416602086015291831691840191909152166060820152608001610173565b34801561036557600080fd5b50610389610374366004611188565b60026020526000908152604090205460ff1681565b6040519015158152602001610173565b3480156103a557600080fd5b506000546001600160a01b0316610280565b3480156103c357600080fd5b506005546001600160801b03165b6040516001600160801b039091168152602001610173565b61032a6103f736600461100d565b6109ab565b34801561040857600080fd5b506001546001600160801b03166103d1565b34801561042657600080fd5b506005546103d190600160801b90046001600160801b031681565b34801561044d57600080fd5b5061019c61045c366004611057565b6109dc565b34801561046d57600080fd5b506104e861047c3660046111a3565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526003835283902083519182018452546001600160801b0381168252600160801b81046001600160401b031692820192909252600160c01b9091049092169082015290565b6040805182516001600160801b031681526020808401516001600160401b0316908201529181015163ffffffff1690820152606001610173565b34801561052e57600080fd5b5061019c61053d366004611188565b610a06565b34801561054e57600080fd5b506104e861055d3660046111be565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452600382529282902082519384018352546001600160801b03811684526001600160401b03600160801b82041691840191909152600160c01b900463ffffffff169082015290565b3480156105d757600080fd5b5061019c6105e6366004611188565b610a30565b3480156105f757600080fd5b5061019c6106063660046111d9565b610a6e565b610613610a84565b600580546001600160801b03928316600160801b029216919091179055565b336106456000546001600160a01b031690565b6001600160a01b031614610683573360009081526002602052604090205460ff166106835760405163320ae52960e01b815260040160405180910390fd5b60005b8181101561076e57368383838181106106a1576106a1611203565b60800291909101915061076590506106bc60208301836111a3565b6106ce36849003840160208501611230565b805160208083015160409384015184516060810186526001600160801b0394851681526001600160401b0392831681850190815263ffffffff9283168288019081529783166000908152600390955295909320925183549551965194166001600160c01b031990951694909417600160801b95909116949094029390931763ffffffff60c01b1916600160c01b9190921602179055565b50600101610686565b505050565b61077b610a84565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b336107b96000546001600160a01b031690565b6001600160a01b0316146107f7573360009081526002602052604090205460ff166107f75760405163320ae52960e01b815260040160405180910390fd5b600580546001600160801b0319166001600160801b0392909216919091179055565b610821610a84565b61082b6000610ab1565b565b6000808461ffff16606e148061084857508461ffff1661279f145b8061085857508461ffff16614eaf145b156108755761086c8561ffff168585610b01565b915091506108c0565b8461ffff16606f148061088d57508461ffff16612794145b8061089d57508461ffff16614ea4145b156108b15761086c8561ffff168585610c0e565b61086c8561ffff168585610d5e565b935093915050565b336108db6000546001600160a01b031690565b6001600160a01b031614610919573360009081526002602052604090205460ff166109195760405163320ae52960e01b815260040160405180910390fd5b6109296106bc60208301836111a3565b600061093b60a08301608084016112a9565b9050600061094f60c0840160a085016111a3565b6004805463ffffffff909216600160401b026bffffffffffffffffffffffff199092166001600160401b0390941693909317179091555050565b60008060008061099a878787610dfe565b935093509350935093509350935093565b6000808080806109bf565b60405180910390fd5b6109ca888888610dfe565b94509450945094505093509350935093565b6109e4610a84565b600180546001600160801b0319166001600160801b0392909216919091179055565b610a0e610a84565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a38610a84565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024016109b6565b610a6b81610ab1565b50565b610a76610a84565b610a808282610ecc565b5050565b6000546001600160a01b0316331461082b5760405163118cdaa760e01b81523360048201526024016109b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff8381166000908152600360205260408120600454600554929384938492600160401b900490911690606490610b4b90600160801b90046001600160801b0316896112da565b610b55919061130d565b610b5f91906112da565b8254909150600090610b7e90600160c01b900463ffffffff16886112da565b83546004549192506000916001600160401b03600160801b90920482169184918691610bab91168b611321565b610bb59190611321565b610bbf9190611321565b610bc991906112da565b60015485549192506001600160801b0390811691610be89116836112da565b610bf2919061130d565b935493996001600160801b039094169850929650505050505050565b6000806000610c1c86610f79565b63ffffffff80821660009081526003602052604081208054939450929091610c4c91600160c01b900416886112da565b610c5890610c74611321565b8254909150600090610c7a90600160801b90046001600160401b0316836112da565b63ffffffff808b1660009081526003602052604081208054939450929091610caa91600160c01b9004168b6112da565b8254909150600090600160801b90046001600160401b0316610ccc8b84611321565b610cd691906112da565b60015487549192506000916001600160801b0391821691610cf89116876112da565b610d02919061130d565b60015485549192506000916001600160801b0391821691610d249116856112da565b610d2e919061130d565b90506000610d3c8284611321565b9554959f6001600160801b039096169e50949c50505050505050505050505050565b63ffffffff80841660009081526003602052604081208054919283928391610d8e91600160c01b900416876112da565b8254909150600090600160801b90046001600160401b0316610db08784611321565b610dba91906112da565b60015484549192506001600160801b0390811691610dd99116836112da565b610de3919061130d565b925492986001600160801b0390931697509195505050505050565b600080808080610e1061753089611334565b90508063ffffffff16606e1480610e2e57508063ffffffff1661279f145b80610e4057508063ffffffff16614eaf145b15610e5a57610e50818888610b01565b9095509350610ea9565b8063ffffffff16606f1480610e7657508063ffffffff16612794145b80610e8857508063ffffffff16614ea4145b15610e9857610e50818888610c0e565b610ea3818888610d5e565b90955093505b505060015460055493979296506001600160801b03908116955090921692509050565b6001600160a01b038216610ef3576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f40576040519150601f19603f3d011682016040523d82523d6000602084013e610f45565b606091505b505090508061076e57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016109b6565b600080610f8861753084611334565b90508063ffffffff16606f03610fa15750606592915050565b8063ffffffff1661279403610fba575061278992915050565b8063ffffffff16614ea403610fd35750614e9992915050565b604051633d0b0cf760e21b815263ffffffff821660048201526024016109b6565b803563ffffffff8116811461100857600080fd5b919050565b60008060006060848603121561102257600080fd5b61102b84610ff4565b95602085013595506040909401359392505050565b80356001600160801b038116811461100857600080fd5b60006020828403121561106957600080fd5b61107282611040565b9392505050565b6000806020838503121561108c57600080fd5b82356001600160401b03808211156110a357600080fd5b818501915085601f8301126110b757600080fd5b8135818111156110c657600080fd5b8660208260071b85010111156110db57600080fd5b60209290920196919550909350505050565b80356001600160a01b038116811461100857600080fd5b6000806040838503121561111757600080fd5b611120836110ed565b91506020830135801515811461113557600080fd5b809150509250929050565b803561ffff8116811461100857600080fd5b60008060006060848603121561116757600080fd5b61102b84611140565b600060c0828403121561118257600080fd5b50919050565b60006020828403121561119a57600080fd5b611072826110ed565b6000602082840312156111b557600080fd5b61107282610ff4565b6000602082840312156111d057600080fd5b61107282611140565b600080604083850312156111ec57600080fd5b6111f5836110ed565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b80356001600160401b038116811461100857600080fd5b60006060828403121561124257600080fd5b604051606081018181106001600160401b038211171561127257634e487b7160e01b600052604160045260246000fd5b60405261127e83611040565b815261128c60208401611219565b602082015261129d60408401610ff4565b60408201529392505050565b6000602082840312156112bb57600080fd5b61107282611219565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176112f1576112f16112c4565b92915050565b634e487b7160e01b600052601260045260246000fd5b60008261131c5761131c6112f7565b500490565b808201808211156112f1576112f16112c4565b600063ffffffff8084168061134b5761134b6112f7565b9216919091069291505056fea264697066735822122043d40d861fac89f60c4938c8341172f4eaeb8b3e6729e13e77697283f99e882864736f6c63430008160033","sourceMap":"619:9549:78:-:0;;;1325:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1368:10;;1269:95:105;;1322:31;;-1:-1:-1;;;1322:31:105;;1350:1;1322:31;;;455:51:145;428:18;;1322:31:105;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1390:27:78::1;;::::0;;;:12:::1;:27;::::0;;;;:34;;-1:-1:-1;;1390:34:78::1;1420:4;1390:34:::0;;::::1;::::0;;;1434:30;;-1:-1:-1;;;;;;1434:30:78::1;1460:4;1434:30;::::0;;1474:28:::1;:33:::0;;-1:-1:-1;;;;;;;;1474:33:78;;;::::1;;::::0;;619:9549;;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:145:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:145;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:145:o;309:203::-;619:9549:78;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101405760003560e01c80638ca2fb08116100b6578063d350ad251161006f578063d350ad2514610441578063da26663a14610461578063dbbb415514610522578063e0ad121a14610542578063f2fde38b146105cb578063fd9be522146105eb57600080fd5b80638ca2fb08146103595780638da5cb5b1461039957806392807f58146103b7578063c1723a1d146103e9578063c1840327146103fc578063cd68b79b1461041a57600080fd5b80635d6d7ccb116101085780635d6d7ccb146102405780635e280f1114610260578063715018a6146102985780637bc3c9ab146102ad5780637dc438a4146102ea57806388a4124c1461030a57600080fd5b806311f2c343146101455780632f7cb0b41461017c5780633161b7f61461019e57806336a5beba146101be57806352a7251014610220575b600080fd5b34801561015157600080fd5b5061016961016036600461100d565b60009392505050565b6040519081526020015b60405180910390f35b34801561018857600080fd5b5061019c610197366004611057565b61060b565b005b3480156101aa57600080fd5b5061019c6101b9366004611079565b610632565b3480156101ca57600080fd5b506040805180820182526000808252602091820152815180830183526004546001600160401b03811680835263ffffffff600160401b909204821692840192835284519081529151169181019190915201610173565b34801561022c57600080fd5b5061019c61023b366004611104565b610773565b34801561024c57600080fd5b5061019c61025b366004611057565b6107a6565b34801561026c57600080fd5b50600654610280906001600160a01b031681565b6040516001600160a01b039091168152602001610173565b3480156102a457600080fd5b5061019c610819565b3480156102b957600080fd5b506102cd6102c8366004611152565b61082d565b604080519283526001600160801b03909116602083015201610173565b3480156102f657600080fd5b5061019c610305366004611170565b6108c8565b34801561031657600080fd5b5061032a61032536600461100d565b610989565b604080519485526001600160801b03938416602086015291831691840191909152166060820152608001610173565b34801561036557600080fd5b50610389610374366004611188565b60026020526000908152604090205460ff1681565b6040519015158152602001610173565b3480156103a557600080fd5b506000546001600160a01b0316610280565b3480156103c357600080fd5b506005546001600160801b03165b6040516001600160801b039091168152602001610173565b61032a6103f736600461100d565b6109ab565b34801561040857600080fd5b506001546001600160801b03166103d1565b34801561042657600080fd5b506005546103d190600160801b90046001600160801b031681565b34801561044d57600080fd5b5061019c61045c366004611057565b6109dc565b34801561046d57600080fd5b506104e861047c3660046111a3565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526003835283902083519182018452546001600160801b0381168252600160801b81046001600160401b031692820192909252600160c01b9091049092169082015290565b6040805182516001600160801b031681526020808401516001600160401b0316908201529181015163ffffffff1690820152606001610173565b34801561052e57600080fd5b5061019c61053d366004611188565b610a06565b34801561054e57600080fd5b506104e861055d3660046111be565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452600382529282902082519384018352546001600160801b03811684526001600160401b03600160801b82041691840191909152600160c01b900463ffffffff169082015290565b3480156105d757600080fd5b5061019c6105e6366004611188565b610a30565b3480156105f757600080fd5b5061019c6106063660046111d9565b610a6e565b610613610a84565b600580546001600160801b03928316600160801b029216919091179055565b336106456000546001600160a01b031690565b6001600160a01b031614610683573360009081526002602052604090205460ff166106835760405163320ae52960e01b815260040160405180910390fd5b60005b8181101561076e57368383838181106106a1576106a1611203565b60800291909101915061076590506106bc60208301836111a3565b6106ce36849003840160208501611230565b805160208083015160409384015184516060810186526001600160801b0394851681526001600160401b0392831681850190815263ffffffff9283168288019081529783166000908152600390955295909320925183549551965194166001600160c01b031990951694909417600160801b95909116949094029390931763ffffffff60c01b1916600160c01b9190921602179055565b50600101610686565b505050565b61077b610a84565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b336107b96000546001600160a01b031690565b6001600160a01b0316146107f7573360009081526002602052604090205460ff166107f75760405163320ae52960e01b815260040160405180910390fd5b600580546001600160801b0319166001600160801b0392909216919091179055565b610821610a84565b61082b6000610ab1565b565b6000808461ffff16606e148061084857508461ffff1661279f145b8061085857508461ffff16614eaf145b156108755761086c8561ffff168585610b01565b915091506108c0565b8461ffff16606f148061088d57508461ffff16612794145b8061089d57508461ffff16614ea4145b156108b15761086c8561ffff168585610c0e565b61086c8561ffff168585610d5e565b935093915050565b336108db6000546001600160a01b031690565b6001600160a01b031614610919573360009081526002602052604090205460ff166109195760405163320ae52960e01b815260040160405180910390fd5b6109296106bc60208301836111a3565b600061093b60a08301608084016112a9565b9050600061094f60c0840160a085016111a3565b6004805463ffffffff909216600160401b026bffffffffffffffffffffffff199092166001600160401b0390941693909317179091555050565b60008060008061099a878787610dfe565b935093509350935093509350935093565b6000808080806109bf565b60405180910390fd5b6109ca888888610dfe565b94509450945094505093509350935093565b6109e4610a84565b600180546001600160801b0319166001600160801b0392909216919091179055565b610a0e610a84565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a38610a84565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024016109b6565b610a6b81610ab1565b50565b610a76610a84565b610a808282610ecc565b5050565b6000546001600160a01b0316331461082b5760405163118cdaa760e01b81523360048201526024016109b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff8381166000908152600360205260408120600454600554929384938492600160401b900490911690606490610b4b90600160801b90046001600160801b0316896112da565b610b55919061130d565b610b5f91906112da565b8254909150600090610b7e90600160c01b900463ffffffff16886112da565b83546004549192506000916001600160401b03600160801b90920482169184918691610bab91168b611321565b610bb59190611321565b610bbf9190611321565b610bc991906112da565b60015485549192506001600160801b0390811691610be89116836112da565b610bf2919061130d565b935493996001600160801b039094169850929650505050505050565b6000806000610c1c86610f79565b63ffffffff80821660009081526003602052604081208054939450929091610c4c91600160c01b900416886112da565b610c5890610c74611321565b8254909150600090610c7a90600160801b90046001600160401b0316836112da565b63ffffffff808b1660009081526003602052604081208054939450929091610caa91600160c01b9004168b6112da565b8254909150600090600160801b90046001600160401b0316610ccc8b84611321565b610cd691906112da565b60015487549192506000916001600160801b0391821691610cf89116876112da565b610d02919061130d565b60015485549192506000916001600160801b0391821691610d249116856112da565b610d2e919061130d565b90506000610d3c8284611321565b9554959f6001600160801b039096169e50949c50505050505050505050505050565b63ffffffff80841660009081526003602052604081208054919283928391610d8e91600160c01b900416876112da565b8254909150600090600160801b90046001600160401b0316610db08784611321565b610dba91906112da565b60015484549192506001600160801b0390811691610dd99116836112da565b610de3919061130d565b925492986001600160801b0390931697509195505050505050565b600080808080610e1061753089611334565b90508063ffffffff16606e1480610e2e57508063ffffffff1661279f145b80610e4057508063ffffffff16614eaf145b15610e5a57610e50818888610b01565b9095509350610ea9565b8063ffffffff16606f1480610e7657508063ffffffff16612794145b80610e8857508063ffffffff16614ea4145b15610e9857610e50818888610c0e565b610ea3818888610d5e565b90955093505b505060015460055493979296506001600160801b03908116955090921692509050565b6001600160a01b038216610ef3576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f40576040519150601f19603f3d011682016040523d82523d6000602084013e610f45565b606091505b505090508061076e57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016109b6565b600080610f8861753084611334565b90508063ffffffff16606f03610fa15750606592915050565b8063ffffffff1661279403610fba575061278992915050565b8063ffffffff16614ea403610fd35750614e9992915050565b604051633d0b0cf760e21b815263ffffffff821660048201526024016109b6565b803563ffffffff8116811461100857600080fd5b919050565b60008060006060848603121561102257600080fd5b61102b84610ff4565b95602085013595506040909401359392505050565b80356001600160801b038116811461100857600080fd5b60006020828403121561106957600080fd5b61107282611040565b9392505050565b6000806020838503121561108c57600080fd5b82356001600160401b03808211156110a357600080fd5b818501915085601f8301126110b757600080fd5b8135818111156110c657600080fd5b8660208260071b85010111156110db57600080fd5b60209290920196919550909350505050565b80356001600160a01b038116811461100857600080fd5b6000806040838503121561111757600080fd5b611120836110ed565b91506020830135801515811461113557600080fd5b809150509250929050565b803561ffff8116811461100857600080fd5b60008060006060848603121561116757600080fd5b61102b84611140565b600060c0828403121561118257600080fd5b50919050565b60006020828403121561119a57600080fd5b611072826110ed565b6000602082840312156111b557600080fd5b61107282610ff4565b6000602082840312156111d057600080fd5b61107282611140565b600080604083850312156111ec57600080fd5b6111f5836110ed565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b80356001600160401b038116811461100857600080fd5b60006060828403121561124257600080fd5b604051606081018181106001600160401b038211171561127257634e487b7160e01b600052604160045260246000fd5b60405261127e83611040565b815261128c60208401611219565b602082015261129d60408401610ff4565b60408201529392505050565b6000602082840312156112bb57600080fd5b61107282611219565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176112f1576112f16112c4565b92915050565b634e487b7160e01b600052601260045260246000fd5b60008261131c5761131c6112f7565b500490565b808201808211156112f1576112f16112c4565b600063ffffffff8084168061134b5761134b6112f7565b9216919091069291505056fea264697066735822122043d40d861fac89f60c4938c8341172f4eaeb8b3e6729e13e77697283f99e882864736f6c63430008160033","sourceMap":"619:9549:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4108:136;;;;;;;;;;-1:-1:-1;4108:136:78;;;;;:::i;:::-;4210:7;4108:136;;;;;;;;;653:25:145;;;641:2;626:18;4108:136:78;;;;;;;;2197:154;;;;;;;;;;-1:-1:-1;2197:154:78;;;;;:::i;:::-;;:::i;:::-;;2695:251;;;;;;;;;;-1:-1:-1;2695:251:78;;;;;:::i;:::-;;:::i;4599:117::-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;4685:24:78;;;;;;;4692:17;4685:24;-1:-1:-1;;;;;4685:24:78;;;;;;-1:-1:-1;;;4685:24:78;;;;;;;;;;;4599:117;;1938:57:145;;;2037:24;;2033:41;2011:20;;;2004:71;;;;1911:18;4599:117:78;1724:357:145;1936:119:78;;;;;;;;;;-1:-1:-1;1936:119:78;;;;;:::i;:::-;;:::i;3354:143::-;;;;;;;;;;-1:-1:-1;3354:143:78;;;;;:::i;:::-;;:::i;1140:36::-;;;;;;;;;;-1:-1:-1;1140:36:78;;;;-1:-1:-1;;;;;1140:36:78;;;;;;-1:-1:-1;;;;;2810:32:145;;;2792:51;;2780:2;2765:18;1140:36:78;2616:233:145;2293:101:105;;;;;;;;;;;;;:::i;5539:587:78:-;;;;;;;;;;-1:-1:-1;5539:587:78;;;;;:::i;:::-;;:::i;:::-;;;;3517:25:145;;;-1:-1:-1;;;;;3578:47:145;;;3573:2;3558:18;;3551:75;3490:18;5539:587:78;3343:289:145;2952:396:78;;;;;;;;;;-1:-1:-1;2952:396:78;;;;;:::i;:::-;;:::i;4977:239::-;;;;;;;;;;-1:-1:-1;4977:239:78;;;;;:::i;:::-;;:::i;:::-;;;;4074:25:145;;;-1:-1:-1;;;;;4188:15:145;;;4183:2;4168:18;;4161:43;4240:15;;;4220:18;;;4213:43;;;;4292:15;4287:2;4272:18;;4265:43;4061:3;4046:19;4977:239:78;3843:471:145;747:59:78;;;;;;;;;;-1:-1:-1;747:59:78;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4675:14:145;;4668:22;4650:41;;4638:2;4623:18;747:59:78;4510:187:145;1638:85:105;;;;;;;;;;-1:-1:-1;1684:7:105;1710:6;-1:-1:-1;;;;;1710:6:105;1638:85;;4431:102:78;;;;;;;;;;-1:-1:-1;4511:15:78;;-1:-1:-1;;;;;4511:15:78;4431:102;;;-1:-1:-1;;;;;5074:47:145;;;5056:66;;5044:2;5029:18;4431:102:78;4910:218:145;3587:385:78;;;;;;:::i;:::-;;:::i;4250:115::-;;;;;;;;;;-1:-1:-1;4335:23:78;;-1:-1:-1;;;;;4335:23:78;4250:115;;1090:43;;;;;;;;;;-1:-1:-1;1090:43:78;;;;-1:-1:-1;;;1090:43:78;;-1:-1:-1;;;;;1090:43:78;;;2061:130;;;;;;;;;;-1:-1:-1;2061:130:78;;;;;:::i;:::-;;:::i;4782:129::-;;;;;;;;;;-1:-1:-1;4782:129:78;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;4877:27:78;;;;;;:18;:27;;;;;4869:35;;;;;;;;-1:-1:-1;;;;;4869:35:78;;;;-1:-1:-1;;;4869:35:78;;-1:-1:-1;;;;;4869:35:78;;;;;;;;-1:-1:-1;;;4869:35:78;;;;;;;;;;;4782:129;;;;;5536:13:145;;-1:-1:-1;;;;;5532:54:145;5514:73;;5647:4;5635:17;;;5629:24;-1:-1:-1;;;;;5625:49:145;5603:20;;;5596:79;5723:17;;;5717:24;5743:10;5713:41;5691:20;;;5684:71;5502:2;5487:18;4782:129:78;5322:439:145;2357:118:78;;;;;;;;;;-1:-1:-1;2357:118:78;;;;;:::i;:::-;;:::i;5313:129::-;;;;;;;;;;-1:-1:-1;5313:129:78;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;5408:27:78;;;;;;;:18;:27;;;;;;5400:35;;;;;;;;-1:-1:-1;;;;;5400:35:78;;;;-1:-1:-1;;;;;;;;5400:35:78;;;;;;;;;;-1:-1:-1;;;5400:35:78;;5408:27;5400:35;;;;;;5313:129;2543:215:105;;;;;;;;;;-1:-1:-1;2543:215:105;;;;;:::i;:::-;;:::i;2481:116:78:-;;;;;;;;;;-1:-1:-1;2481:116:78;;;;;:::i;:::-;;:::i;2197:154::-;1531:13:105;:11;:13::i;:::-;2294:28:78::1;:50:::0;;-1:-1:-1;;;;;2294:50:78;;::::1;-1:-1:-1::0;;;2294:50:78::1;::::0;::::1;::::0;;;::::1;::::0;;2197:154::o;2695:251::-;1690:10;1679:7;1684::105;1710:6;-1:-1:-1;;;;;1710:6:105;;1638:85;1679:7:78;-1:-1:-1;;;;;1679:21:78;;1675:153;;1734:10;1721:24;;;;:12;:24;;;;;;;;1716:102;;1772:31;;-1:-1:-1;;;1772:31:78;;;;;;;;;;;1716:102;2785:9:::1;2780:160;2800:17:::0;;::::1;2780:160;;;2838:28;2869:6;;2876:1;2869:9;;;;;;;:::i;:::-;;;::::0;;;::::1;::::0;-1:-1:-1;2892:37:78::1;::::0;-1:-1:-1;2902:11:78::1;;::::0;::::1;2869:9:::0;2902:11:::1;:::i;:::-;2892:37;;::::0;;;;;2915:13:::1;::::0;::::1;2892:37;:::i;:::-;6317:17:::0;;6368:21;;;;;6419:17;;;;;6476:45;;;;;;;-1:-1:-1;;;;;6476:45:78;;;;;-1:-1:-1;;;;;6476:45:78;;;;;;;;;;;;;;;;;;;6446:27;;;-1:-1:-1;6446:27:78;;;:18;:27;;;;;;;:75;;;;;;;;;;-1:-1:-1;;;;;;6446:75:78;;;;;;;-1:-1:-1;;;6446:75:78;;;;;;;;;;;;-1:-1:-1;;;;6446:75:78;-1:-1:-1;;;6446:75:78;;;;;;;;6221:307;2892:37:::1;-1:-1:-1::0;2819:3:78::1;;2780:160;;;;2695:251:::0;;:::o;1936:119::-;1531:13:105;:11;:13::i;:::-;-1:-1:-1;;;;;2019:19:78;;;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;2019:29:78::1;::::0;::::1;;::::0;;;::::1;::::0;;1936:119::o;3354:143::-;1690:10;1679:7;1684::105;1710:6;-1:-1:-1;;;;;1710:6:105;;1638:85;1679:7:78;-1:-1:-1;;;;;1679:21:78;;1675:153;;1734:10;1721:24;;;;:12;:24;;;;;;;;1716:102;;1772:31;;-1:-1:-1;;;1772:31:78;;;;;;;;;;;1716:102;3452:15:::1;:38:::0;;-1:-1:-1;;;;;;3452:38:78::1;-1:-1:-1::0;;;;;3452:38:78;;;::::1;::::0;;;::::1;::::0;;3354:143::o;2293:101:105:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;5539:587:78:-;5673:11;5686:18;5720:7;:14;;5731:3;5720:14;:34;;;;5738:7;:16;;5749:5;5738:16;5720:34;:54;;;;5758:7;:16;;5769:5;5758:16;5720:54;5716:404;;;5797:59;5827:7;5797:59;;5836:13;5851:4;5797:29;:59::i;:::-;5790:66;;;;;;5716:404;5877:7;:14;;5888:3;5877:14;:34;;;;5895:7;:16;;5906:5;5895:16;5877:34;:54;;;;5915:7;:16;;5926:5;5915:16;5877:54;5873:247;;;5954:59;5984:7;5954:59;;5993:13;6008:4;5954:29;:59::i;5873:247::-;6051:58;6080:7;6051:58;;6089:13;6104:4;6051:28;:58::i;5873:247::-;5539:587;;;;;;:::o;2952:396::-;1690:10;1679:7;1684::105;1710:6;-1:-1:-1;;;;;1710:6:105;;1638:85;1679:7:78;-1:-1:-1;;;;;1679:21:78;;1675:153;;1734:10;1721:24;;;;:12;:24;;;;;;;;1716:102;;1772:31;;-1:-1:-1;;;1772:31:78;;;;;;;;;;;1716:102;3050:37:::1;3060:11;;::::0;::::1;:7:::0;:11:::1;:::i;3050:37::-;3098:17;3118:25;::::0;;;:14:::1;::::0;::::1;:25;:::i;:::-;3098:45:::0;-1:-1:-1;3153:27:78::1;3183:35;::::0;;;;;;::::1;:::i;:::-;3229:17;:41:::0;;3280:61:::1;::::0;;::::1;-1:-1:-1::0;;;3280:61:78::1;-1:-1:-1::0;;3280:61:78;;;-1:-1:-1;;;;;3229:41:78;;::::1;3280:61:::0;;;;::::1;::::0;;;-1:-1:-1;;2952:396:78:o;4977:239::-;5109:7;5118;5127;5136;5162:47;5180:7;5189:13;5204:4;5162:17;:47::i;:::-;5155:54;;;;;;;;4977:239;;;;;;;:::o;3587:385::-;3723:7;;;;;3829:72;;3857:44;;;;;;;;3829:72;3918:47;3936:7;3945:13;3960:4;3918:17;:47::i;:::-;3911:54;;;;;;;;;3587:385;;;;;;;:::o;2061:130::-;1531:13:105;:11;:13::i;:::-;2146:23:78::1;:38:::0;;-1:-1:-1;;;;;;2146:38:78::1;-1:-1:-1::0;;;;;2146:38:78;;;::::1;::::0;;;::::1;::::0;;2061:130::o;2357:118::-;1531:13:105;:11;:13::i;:::-;2426:8:78::1;:42:::0;;-1:-1:-1;;;;;;2426:42:78::1;-1:-1:-1::0;;;;;2426:42:78;;;::::1;::::0;;;::::1;::::0;;2357:118::o;2543:215:105:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:105;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:105;;2700:1:::1;2672:31;::::0;::::1;2792:51:145::0;2765:18;;2672:31:105::1;2616:233:145::0;2623:91:105::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2481:116:78:-;1531:13:105;:11;:13::i;:::-;2561:29:78::1;2577:3;2582:7;2561:15;:29::i;:::-;2481:116:::0;;:::o;1796:162:105:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:105;735:10:120;1855:23:105;1851:101;;1901:40;;-1:-1:-1;;;1901:40:105;;735:10:120;1901:40:105;;;2792:51:145;2765:18;;1901:40:105;2616:233:145;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;9404:762:78:-;9622:27;;;;9549:11;9622:27;;;:18;:27;;;;;9774:17;:38;9723:28;;9549:11;;;;;;-1:-1:-1;;;9774:38:78;;;;;;9755:3;;9707:44;;-1:-1:-1;;;9723:28:78;;-1:-1:-1;;;;;9723:28:78;9707:13;:44;:::i;:::-;9706:52;;;;:::i;:::-;9705:107;;;;:::i;:::-;9883:24;;9678:134;;-1:-1:-1;9840:24:78;;9867:40;;-1:-1:-1;;;9883:24:78;;;;9867:13;:40;:::i;:::-;10024:28;;9942:17;:28;9840:67;;-1:-1:-1;9917:14:78;;-1:-1:-1;;;;;;;;10024:28:78;;;;;;9840:67;;9973:16;;9935:35;;9942:28;9935:4;:35;:::i;:::-;:54;;;;:::i;:::-;:73;;;;:::i;:::-;9934:118;;;;:::i;:::-;10109:23;;10081:24;;9917:135;;-1:-1:-1;;;;;;10109:23:78;;;;10072:33;;10081:24;9917:135;10072:33;:::i;:::-;10071:61;;;;:::i;:::-;10134:24;;;;-1:-1:-1;;;;;10134:24:78;;;;-1:-1:-1;9404:762:78;;-1:-1:-1;;;;;;;9404:762:78:o;8345:1053::-;8490:11;8503:18;8533:17;8553:23;8568:7;8553:14;:23::i;:::-;8635:30;;;;8605:27;8635:30;;;:18;:30;;;;;8719:24;;8533:43;;-1:-1:-1;8635:30:78;8605:27;;8703:40;;-1:-1:-1;;;8719:24:78;;;8703:13;:40;:::i;:::-;8702:49;;8747:4;8702:49;:::i;:::-;8814:28;;8675:76;;-1:-1:-1;8779:13:78;;8795:47;;-1:-1:-1;;;8814:28:78;;-1:-1:-1;;;;;8814:28:78;8675:76;8795:47;:::i;:::-;8901:27;;;;8871;8901;;;:18;:27;;;;;8981:24;;8779:63;;-1:-1:-1;8901:27:78;8871;;8965:40;;-1:-1:-1;;;8981:24:78;;;8965:13;:40;:::i;:::-;9059:28;;8938:67;;-1:-1:-1;9015:13:78;;-1:-1:-1;;;9059:28:78;;-1:-1:-1;;;;;9059:28:78;9032:23;9051:4;8938:67;9032:23;:::i;:::-;9031:56;;;;:::i;:::-;9161:23;;9133:24;;9015:72;;-1:-1:-1;9098:23:78;;-1:-1:-1;;;;;9161:23:78;;;;9125:32;;9133:24;9125:5;:32;:::i;:::-;9124:60;;;;:::i;:::-;9257:23;;9229:24;;9098:86;;-1:-1:-1;9194:23:78;;-1:-1:-1;;;;;9257:23:78;;;;9221:32;;9229:24;9221:5;:32;:::i;:::-;9220:60;;;;:::i;:::-;9194:86;-1:-1:-1;9290:14:78;9307:33;9194:86;9307:15;:33;:::i;:::-;9366:24;;;;-1:-1:-1;;;;;9366:24:78;;;;-1:-1:-1;8345:1053:78;;-1:-1:-1;;;;;;;;;;;;;8345:1053:78:o;6932:601::-;7147:27;;;;7076:11;7147:27;;;:18;:27;;;;;7317:22;;7076:11;;;;;;7301:38;;-1:-1:-1;;;7317:22:78;;;7301:13;:38;:::i;:::-;7395:26;;7276:63;;-1:-1:-1;7349:17:78;;-1:-1:-1;;;7395:26:78;;-1:-1:-1;;;;;7395:26:78;7370:21;7387:4;7276:63;7370:21;:::i;:::-;7369:52;;;;:::i;:::-;7478:23;;7452:22;;7349:72;;-1:-1:-1;;;;;;7478:23:78;;;;7440:34;;7452:22;7349:72;7440:34;:::i;:::-;7439:62;;;;:::i;:::-;7503:22;;;;-1:-1:-1;;;;;7503:22:78;;;;-1:-1:-1;6932:601:78;;-1:-1:-1;;;;;;6932:601:78:o;7539:800::-;7672:11;;;;;7780:16;7790:6;7780:7;:16;:::i;:::-;7764:32;;7810:6;:13;;7820:3;7810:13;:32;;;;7827:6;:15;;7837:5;7827:15;7810:32;:51;;;;7846:6;:15;;7856:5;7846:15;7810:51;7806:434;;;7897:58;7927:6;7935:13;7950:4;7897:29;:58::i;:::-;7877:78;;-1:-1:-1;7877:78:78;-1:-1:-1;7806:434:78;;;7976:6;:13;;7986:3;7976:13;:32;;;;7993:6;:15;;8003:5;7993:15;7976:32;:51;;;;8012:6;:15;;8022:5;8012:15;7976:51;7972:268;;;8063:58;8093:6;8101:13;8116:4;8063:29;:58::i;7972:268::-;8172:57;8201:6;8209:13;8224:4;8172:28;:57::i;:::-;8152:77;;-1:-1:-1;8152:77:78;-1:-1:-1;7972:268:78;-1:-1:-1;;8273:23:78;;8317:15;;7539:800;;;;-1:-1:-1;;;;;;8273:23:78;;;;-1:-1:-1;8317:15:78;;;;-1:-1:-1;7539:800:78;-1:-1:-1;7539:800:78:o;438:252:64:-;-1:-1:-1;;;;;506:19:64;;502:58;;534:26;;-1:-1:-1;;;534:26:64;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:64;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;-1:-1:-1;;;649:34:64;;-1:-1:-1;;;;;8932:32:145;;649:34:64;;;8914:51:145;8981:18;;;8974:34;;;8887:18;;649:34:64;8740:274:145;6534:392:78;6596:6;;6629:15;6638:6;6629;:15;:::i;:::-;6614:30;;6658:5;:12;;6667:3;6658:12;6654:217;;-1:-1:-1;6693:3:78;;6534:392;-1:-1:-1;;6534:392:78:o;6654:217::-;6717:5;:14;;6726:5;6717:14;6713:158;;-1:-1:-1;6754:5:78;;6534:392;-1:-1:-1;;6534:392:78:o;6713:158::-;6799:5;:14;;6808:5;6799:14;6795:76;;-1:-1:-1;6836:5:78;;6534:392;-1:-1:-1;;6534:392:78:o;6795:76::-;6887:32;;-1:-1:-1;;;6887:32:78;;9193:10:145;9181:23;;6887:32:78;;;9163:42:145;9136:18;;6887:32:78;9019:192:145;14:163;81:20;;141:10;130:22;;120:33;;110:61;;167:1;164;157:12;110:61;14:163;;;:::o;182:320::-;258:6;266;274;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:28;384:9;366:28;:::i;:::-;356:38;441:2;426:18;;413:32;;-1:-1:-1;492:2:145;477:18;;;464:32;;182:320;-1:-1:-1;;;182:320:145:o;689:188::-;757:20;;-1:-1:-1;;;;;806:46:145;;796:57;;786:85;;867:1;864;857:12;882:186;941:6;994:2;982:9;973:7;969:23;965:32;962:52;;;1010:1;1007;1000:12;962:52;1033:29;1052:9;1033:29;:::i;:::-;1023:39;882:186;-1:-1:-1;;;882:186:145:o;1073:646::-;1190:6;1198;1251:2;1239:9;1230:7;1226:23;1222:32;1219:52;;;1267:1;1264;1257:12;1219:52;1307:9;1294:23;-1:-1:-1;;;;;1377:2:145;1369:6;1366:14;1363:34;;;1393:1;1390;1383:12;1363:34;1431:6;1420:9;1416:22;1406:32;;1476:7;1469:4;1465:2;1461:13;1457:27;1447:55;;1498:1;1495;1488:12;1447:55;1538:2;1525:16;1564:2;1556:6;1553:14;1550:34;;;1580:1;1577;1570:12;1550:34;1633:7;1628:2;1618:6;1615:1;1611:14;1607:2;1603:23;1599:32;1596:45;1593:65;;;1654:1;1651;1644:12;1593:65;1685:2;1677:11;;;;;1707:6;;-1:-1:-1;1073:646:145;;-1:-1:-1;;;;1073:646:145:o;2086:173::-;2154:20;;-1:-1:-1;;;;;2203:31:145;;2193:42;;2183:70;;2249:1;2246;2239:12;2264:347;2329:6;2337;2390:2;2378:9;2369:7;2365:23;2361:32;2358:52;;;2406:1;2403;2396:12;2358:52;2429:29;2448:9;2429:29;:::i;:::-;2419:39;;2508:2;2497:9;2493:18;2480:32;2555:5;2548:13;2541:21;2534:5;2531:32;2521:60;;2577:1;2574;2567:12;2521:60;2600:5;2590:15;;;2264:347;;;;;:::o;2854:159::-;2921:20;;2981:6;2970:18;;2960:29;;2950:57;;3003:1;3000;2993:12;3018:320;3094:6;3102;3110;3163:2;3151:9;3142:7;3138:23;3134:32;3131:52;;;3179:1;3176;3169:12;3131:52;3202:28;3220:9;3202:28;:::i;3637:201::-;3730:6;3783:3;3771:9;3762:7;3758:23;3754:33;3751:53;;;3800:1;3797;3790:12;3751:53;-1:-1:-1;3823:9:145;3637:201;-1:-1:-1;3637:201:145:o;4319:186::-;4378:6;4431:2;4419:9;4410:7;4406:23;4402:32;4399:52;;;4447:1;4444;4437:12;4399:52;4470:29;4489:9;4470:29;:::i;5133:184::-;5191:6;5244:2;5232:9;5223:7;5219:23;5215:32;5212:52;;;5260:1;5257;5250:12;5212:52;5283:28;5301:9;5283:28;:::i;5766:184::-;5824:6;5877:2;5865:9;5856:7;5852:23;5848:32;5845:52;;;5893:1;5890;5883:12;5845:52;5916:28;5934:9;5916:28;:::i;5955:254::-;6023:6;6031;6084:2;6072:9;6063:7;6059:23;6055:32;6052:52;;;6100:1;6097;6090:12;6052:52;6123:29;6142:9;6123:29;:::i;:::-;6113:39;6199:2;6184:18;;;;6171:32;;-1:-1:-1;;;5955:254:145:o;6214:127::-;6275:10;6270:3;6266:20;6263:1;6256:31;6306:4;6303:1;6296:15;6330:4;6327:1;6320:15;6346:171;6413:20;;-1:-1:-1;;;;;6462:30:145;;6452:41;;6442:69;;6507:1;6504;6497:12;6522:681;6604:6;6657:2;6645:9;6636:7;6632:23;6628:32;6625:52;;;6673:1;6670;6663:12;6625:52;6706:2;6700:9;6748:2;6740:6;6736:15;6817:6;6805:10;6802:22;-1:-1:-1;;;;;6769:10:145;6766:34;6763:62;6760:185;;;6867:10;6862:3;6858:20;6855:1;6848:31;6902:4;6899:1;6892:15;6930:4;6927:1;6920:15;6760:185;6961:2;6954:22;7000:29;7019:9;7000:29;:::i;:::-;6992:6;6985:45;7063:37;7096:2;7085:9;7081:18;7063:37;:::i;:::-;7058:2;7050:6;7046:15;7039:62;7134:37;7167:2;7156:9;7152:18;7134:37;:::i;:::-;7129:2;7117:15;;7110:62;7121:6;6522:681;-1:-1:-1;;;6522:681:145:o;7208:184::-;7266:6;7319:2;7307:9;7298:7;7294:23;7290:32;7287:52;;;7335:1;7332;7325:12;7287:52;7358:28;7376:9;7358:28;:::i;7650:127::-;7711:10;7706:3;7702:20;7699:1;7692:31;7742:4;7739:1;7732:15;7766:4;7763:1;7756:15;7782:168;7855:9;;;7886;;7903:15;;;7897:22;;7883:37;7873:71;;7924:18;;:::i;:::-;7782:168;;;;:::o;7955:127::-;8016:10;8011:3;8007:20;8004:1;7997:31;8047:4;8044:1;8037:15;8071:4;8068:1;8061:15;8087:120;8127:1;8153;8143:35;;8158:18;;:::i;:::-;-1:-1:-1;8192:9:145;;8087:120::o;8212:125::-;8277:9;;;8298:10;;;8295:36;;;8311:18;;:::i;8342:183::-;8373:1;8399:10;8436:2;8433:1;8429:10;8458:3;8448:37;;8465:18;;:::i;:::-;8503:10;;8499:20;;;;;8342:183;-1:-1:-1;;8342:183:145:o","linkReferences":{}},"methodIdentifiers":{"ARBITRUM_COMPRESSION_PERCENT()":"cd68b79b","arbitrumPriceExt()":"36a5beba","endpoint()":"5e280f11","estimateFeeByChain(uint16,uint256,uint256)":"7bc3c9ab","estimateFeeByEid(uint32,uint256,uint256)":"88a4124c","estimateFeeOnSend(uint32,uint256,uint256)":"c1723a1d","getFee(uint32,uint256,uint256)":"11f2c343","getPrice(uint16)":"e0ad121a","getPrice(uint32)":"da26663a","getPriceRatioDenominator()":"c1840327","nativeTokenPriceUSD()":"92807f58","owner()":"8da5cb5b","priceUpdater(address)":"8ca2fb08","renounceOwnership()":"715018a6","setArbitrumCompressionPercent(uint128)":"2f7cb0b4","setEndpoint(address)":"dbbb4155","setNativeTokenPriceUSD(uint128)":"5d6d7ccb","setPrice((uint32,(uint128,uint64,uint32))[])":"3161b7f6","setPriceForArbitrum((uint32,(uint128,uint64,uint32),(uint64,uint32)))":"7dc438a4","setPriceRatioDenominator(uint128)":"d350ad25","setPriceUpdater(address,bool)":"52a72510","transferOwnership(address)":"f2fde38b","withdrawFee(address,uint256)":"fd9be522"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_priceUpdater\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"provided\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"LZ_PriceFeed_InsufficientFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"l2Eid\",\"type\":\"uint32\"}],\"name\":\"LZ_PriceFeed_NotAnOPStack\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_PriceFeed_OnlyPriceUpdater\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ARBITRUM_COMPRESSION_PERCENT\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"arbitrumPriceExt\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasPerL2Tx\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasPerL1CallDataByte\",\"type\":\"uint32\"}],\"internalType\":\"struct ILayerZeroPriceFeed.ArbitrumPriceExt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_callDataSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"}],\"name\":\"estimateFeeByChain\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"priceRatio\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_callDataSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"}],\"name\":\"estimateFeeByEid\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_callDataSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\"}],\"name\":\"estimateFeeOnSend\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"getPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"priceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"gasPriceInUnit\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasPerByte\",\"type\":\"uint32\"}],\"internalType\":\"struct ILayerZeroPriceFeed.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"}],\"name\":\"getPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"priceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"gasPriceInUnit\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasPerByte\",\"type\":\"uint32\"}],\"internalType\":\"struct ILayerZeroPriceFeed.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPriceRatioDenominator\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeTokenPriceUSD\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"updater\",\"type\":\"address\"}],\"name\":\"priceUpdater\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_compressionPercent\",\"type\":\"uint128\"}],\"name\":\"setArbitrumCompressionPercent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_endpoint\",\"type\":\"address\"}],\"name\":\"setEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_nativeTokenPriceUSD\",\"type\":\"uint128\"}],\"name\":\"setNativeTokenPriceUSD\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"priceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"gasPriceInUnit\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasPerByte\",\"type\":\"uint32\"}],\"internalType\":\"struct ILayerZeroPriceFeed.Price\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ILayerZeroPriceFeed.UpdatePrice[]\",\"name\":\"_price\",\"type\":\"tuple[]\"}],\"name\":\"setPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"priceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"gasPriceInUnit\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasPerByte\",\"type\":\"uint32\"}],\"internalType\":\"struct ILayerZeroPriceFeed.Price\",\"name\":\"price\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasPerL2Tx\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasPerL1CallDataByte\",\"type\":\"uint32\"}],\"internalType\":\"struct ILayerZeroPriceFeed.ArbitrumPriceExt\",\"name\":\"extend\",\"type\":\"tuple\"}],\"internalType\":\"struct ILayerZeroPriceFeed.UpdatePriceExt\",\"name\":\"_update\",\"type\":\"tuple\"}],\"name\":\"setPriceForArbitrum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_denominator\",\"type\":\"uint128\"}],\"name\":\"setPriceRatioDenominator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_active\",\"type\":\"bool\"}],\"name\":\"setPriceUpdater\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol\":\"PriceFeedMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol\":{\"keccak256\":\"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec\",\"dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_priceUpdater","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"provided","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"type":"error","name":"LZ_PriceFeed_InsufficientFee"},{"inputs":[{"internalType":"uint32","name":"l2Eid","type":"uint32"}],"type":"error","name":"LZ_PriceFeed_NotAnOPStack"},{"inputs":[],"type":"error","name":"LZ_PriceFeed_OnlyPriceUpdater"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ARBITRUM_COMPRESSION_PERCENT","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"arbitrumPriceExt","outputs":[{"internalType":"struct ILayerZeroPriceFeed.ArbitrumPriceExt","name":"","type":"tuple","components":[{"internalType":"uint64","name":"gasPerL2Tx","type":"uint64"},{"internalType":"uint32","name":"gasPerL1CallDataByte","type":"uint32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"uint256","name":"_callDataSize","type":"uint256"},{"internalType":"uint256","name":"_gas","type":"uint256"}],"stateMutability":"view","type":"function","name":"estimateFeeByChain","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint128","name":"priceRatio","type":"uint128"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"uint256","name":"_callDataSize","type":"uint256"},{"internalType":"uint256","name":"_gas","type":"uint256"}],"stateMutability":"view","type":"function","name":"estimateFeeByEid","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"uint256","name":"_callDataSize","type":"uint256"},{"internalType":"uint256","name":"_gas","type":"uint256"}],"stateMutability":"payable","type":"function","name":"estimateFeeOnSend","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getPrice","outputs":[{"internalType":"struct ILayerZeroPriceFeed.Price","name":"price","type":"tuple","components":[{"internalType":"uint128","name":"priceRatio","type":"uint128"},{"internalType":"uint64","name":"gasPriceInUnit","type":"uint64"},{"internalType":"uint32","name":"gasPerByte","type":"uint32"}]}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"}],"stateMutability":"view","type":"function","name":"getPrice","outputs":[{"internalType":"struct ILayerZeroPriceFeed.Price","name":"price","type":"tuple","components":[{"internalType":"uint128","name":"priceRatio","type":"uint128"},{"internalType":"uint64","name":"gasPriceInUnit","type":"uint64"},{"internalType":"uint32","name":"gasPerByte","type":"uint32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPriceRatioDenominator","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeTokenPriceUSD","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"updater","type":"address"}],"stateMutability":"view","type":"function","name":"priceUpdater","outputs":[{"internalType":"bool","name":"active","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint128","name":"_compressionPercent","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setArbitrumCompressionPercent"},{"inputs":[{"internalType":"address","name":"_endpoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setEndpoint"},{"inputs":[{"internalType":"uint128","name":"_nativeTokenPriceUSD","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setNativeTokenPriceUSD"},{"inputs":[{"internalType":"struct ILayerZeroPriceFeed.UpdatePrice[]","name":"_price","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct ILayerZeroPriceFeed.Price","name":"price","type":"tuple","components":[{"internalType":"uint128","name":"priceRatio","type":"uint128"},{"internalType":"uint64","name":"gasPriceInUnit","type":"uint64"},{"internalType":"uint32","name":"gasPerByte","type":"uint32"}]}]}],"stateMutability":"nonpayable","type":"function","name":"setPrice"},{"inputs":[{"internalType":"struct ILayerZeroPriceFeed.UpdatePriceExt","name":"_update","type":"tuple","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct ILayerZeroPriceFeed.Price","name":"price","type":"tuple","components":[{"internalType":"uint128","name":"priceRatio","type":"uint128"},{"internalType":"uint64","name":"gasPriceInUnit","type":"uint64"},{"internalType":"uint32","name":"gasPerByte","type":"uint32"}]},{"internalType":"struct ILayerZeroPriceFeed.ArbitrumPriceExt","name":"extend","type":"tuple","components":[{"internalType":"uint64","name":"gasPerL2Tx","type":"uint64"},{"internalType":"uint32","name":"gasPerL1CallDataByte","type":"uint32"}]}]}],"stateMutability":"nonpayable","type":"function","name":"setPriceForArbitrum"},{"inputs":[{"internalType":"uint128","name":"_denominator","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setPriceRatioDenominator"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_active","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPriceUpdater"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol":"PriceFeedMock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol":{"keccak256":"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44","urls":["bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec","dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":78} \ No newline at end of file diff --git a/packages/onft-evm/out/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json b/packages/onft-evm/out/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json deleted file mode 100644 index 792c012ea..000000000 --- a/packages/onft-evm/out/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getConfig","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_oapp","type":"address","internalType":"address"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"messageLibType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum MessageLibType"}],"stateMutability":"pure"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_config","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"endpointVersion","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"error","name":"LZ_MessageLib_OnlyEndpoint","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getConfig(uint32,address,uint32)":"9c33abf7","isSupportedEid(uint32)":"6750cd4c","messageLibType()":"1881d94d","setConfig(address,(uint32,uint32,bytes)[])":"20efd722","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_MessageLib_OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_config\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"receive-side message library base contract on endpoint v2. it does not have the complication as the one of endpoint v1, such as nonce, executor whitelist, etc.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol\":\"ReceiveLibBaseE2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol\":{\"keccak256\":\"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2\",\"dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_MessageLib_OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_config","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol":"ReceiveLibBaseE2"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol":{"keccak256":"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9","urls":["bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2","dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":12} \ No newline at end of file diff --git a/packages/onft-evm/out/ReceiveUln302Mock.sol/ReceiveUln302Mock.json b/packages/onft-evm/out/ReceiveUln302Mock.sol/ReceiveUln302Mock.json deleted file mode 100644 index 588400c57..000000000 --- a/packages/onft-evm/out/ReceiveUln302Mock.sol/ReceiveUln302Mock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_endpoint","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"assertHeader","inputs":[{"name":"_packetHeader","type":"bytes","internalType":"bytes"},{"name":"_localEid","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"commitVerification","inputs":[{"name":"_packetHeader","type":"bytes","internalType":"bytes"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAppUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_oapp","type":"address","internalType":"address"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"rtnConfig","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"hashLookup","inputs":[{"name":"headerHash","type":"bytes32","internalType":"bytes32"},{"name":"payloadHash","type":"bytes32","internalType":"bytes32"},{"name":"dvn","type":"address","internalType":"address"}],"outputs":[{"name":"submitted","type":"bool","internalType":"bool"},{"name":"confirmations","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"messageLibType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum MessageLibType"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_params","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultUlnConfigs","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifiable","inputs":[{"name":"_config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]},{"name":"_headerHash","type":"bytes32","internalType":"bytes32"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verify","inputs":[{"name":"_packetHeader","type":"bytes","internalType":"bytes"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"},{"name":"_confirmations","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"endpointVersion","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"event","name":"DefaultUlnConfigsSet","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PayloadVerified","inputs":[{"name":"dvn","type":"address","indexed":false,"internalType":"address"},{"name":"header","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"confirmations","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"proofHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"UlnConfigSet","inputs":[{"name":"oapp","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"config","type":"tuple","indexed":false,"internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"anonymous":false},{"type":"error","name":"LZ_MessageLib_OnlyEndpoint","inputs":[]},{"type":"error","name":"LZ_ULN_AtLeastOneDVN","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidConfigType","inputs":[{"name":"configType","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"LZ_ULN_InvalidConfirmations","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidEid","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidPacketHeader","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidPacketVersion","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_Unsorted","inputs":[]},{"type":"error","name":"LZ_ULN_UnsupportedEid","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"LZ_ULN_Verifying","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c06040523480156200001157600080fd5b50604051620024413803806200244183398101604081905262000034916200013e565b8080816001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009b919062000170565b3380620000c257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000cd81620000ee565b506001600160a01b0390911660805263ffffffff1660a05250620001989050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200015157600080fd5b81516001600160a01b03811681146200016957600080fd5b9392505050565b6000602082840312156200018357600080fd5b815163ffffffff811681146200016957600080fd5b60805160a05161227c620001c5600039600061031e01526000818161041b0152610484015261227c6000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806343ea4fa9116100a25780638da5cb5b116100715780638da5cb5b146102665780639c33abf714610281578063c40ff835146102a1578063e084d952146102b4578063f2fde38b146102c757600080fd5b806343ea4fa91461021857806354fd4d501461022b5780636750cd4c1461024b578063715018a61461025e57600080fd5b806320efd722116100de57806320efd7221461016f57806329460b0b1461018257806339e3f938146101955780633c782a52146101b557600080fd5b806301ffc9a7146101105780630223536e146101385780630894edf11461014d5780631881d94d14610160575b600080fd5b61012361011e3660046116ed565b6102da565b60405190151581526020015b60405180910390f35b61014b61014636600461177b565b610305565b005b61014b61015b3660046117d7565b610317565b600160405161012f9190611822565b61014b61017d3660046118a5565b610482565b61014b6101903660046118f7565b6105a4565b6101a86101a336600461194c565b61073c565b60405161012f9190611a35565b6101f96101c3366004611a48565b600260209081526000938452604080852082529284528284209052825290205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161012f565b6101a861022636600461194c565b610877565b60408051600381526000602082015260029181019190915260600161012f565b610123610259366004611a7d565b610b83565b61014b610b8e565b6000546040516001600160a01b03909116815260200161012f565b61029461028f366004611a98565b610ba2565b60405161012f9190611ad2565b61014b6102af366004611b21565b610c0b565b6101236102c2366004611d10565b610c1b565b61014b6102d5366004611d5d565b610c30565b60006001600160e01b03198216630ab7be9f60e01b14806102ff57506102ff82610c6e565b92915050565b61031184848484610ca3565b50505050565b61034283837f0000000000000000000000000000000000000000000000000000000000000000610d89565b600061034e8484610e0c565b9050600061035c8585610e1e565b9050600061036a8383610877565b905061038e818787604051610380929190611d78565b604051809103902086610e41565b600060405180606001604052808463ffffffff1681526020016103b18989610f91565b81526020016103c08989610faa565b6001600160401b039081169091526040805163a825d74760e01b8152835163ffffffff166004820152602084015160248201529083015190911660448201526001600160a01b038681166064830152608482018890529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a825d7479060a401600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b5050505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146104cb5760405163467409c360e01b815260040160405180910390fd5b60005b8181101561031157368383838181106104e9576104e9611d88565b90506020028101906104fb9190611d9e565b905061051261050d6020830183611a7d565b610fcd565b60026105246040830160208401611a7d565b63ffffffff16036105645761055f61053f6020830183611a7d565b8661054d6040850185611dbe565b81019061055a9190611e04565b610ffb565b61059b565b6105746040820160208301611a7d565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016104ce565b6105ac611051565b60005b818110156106fe57368383838181106105ca576105ca611d88565b90506020028101906105dc9190611e38565b905060ff6105ed6020830183611e4e565b6105fe906040810190602001611e64565b60ff160361061f576040516341d50bed60e11b815260040160405180910390fd5b60ff61062e6020830183611e4e565b61063f906060810190604001611e64565b60ff16036106605760405163211089b360e11b815260040160405180910390fd5b6001600160401b036106756020830183611e4e565b610683906020810190611e7f565b6001600160401b0316036106aa5760405163281b33d760e11b815260040160405180910390fd5b6106c86106ba6020830183611e4e565b6106c390611e9a565b61107e565b6106f560006106da6020840184611a7d565b6106e76020850185611e4e565b6106f090611e9a565b6110b6565b506001016105af565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610730929190611f2a565b60405180910390a15050565b61074461162b565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561080457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107e6575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561086657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610848575b505050505081525050905092915050565b61087f61162b565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b0316806108f45782546001600160401b03168452610911565b6001600160401b0381811614610911576001600160401b03811684525b8154600160401b900460ff166109ab578254600160401b900460ff16156109a6578260010180548060200260200160405190810160405280929190818152602001828054801561098a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161096c575b505050505060808501528254600160401b900460ff1660208501525b610a32565b8154600160401b900460ff90811614610a325781600101805480602002602001604051908101604052809291908181526020018280548015610a1657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109f8575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610adb578254600160481b900460ff1615610ad65782600201805480602002602001604051908101604052809291908181526020018280548015610aab57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a8d575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610b71565b8154600160481b900460ff90811614610b715781600201805480602002602001604051908101604052809291908181526020018280548015610b4657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b28575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610b7a8461107e565b50505092915050565b60006102ff8261134f565b610b96611051565b610ba060006113aa565b565b606060011963ffffffff831601610be357610bbd8385610877565b604051602001610bcd9190611a35565b6040516020818303038152906040529050610c04565b604051635d4be0fd60e11b815263ffffffff83166004820152602401610592565b9392505050565b610c16838383610d89565b505050565b6000610c288484846113fa565b949350505050565b610c38611051565b6001600160a01b038116610c6257604051631e4fbdf760e01b815260006004820152602401610592565b610c6b816113aa565b50565b60006001600160e01b031982166325fc096160e21b14806102ff57506301ffc9a760e01b6001600160e01b03198316146102ff565b604080518082018252600181526001600160401b03831660208201529051600290600090610cd49088908890611d78565b604080519182900390912082526020808301939093529081016000908120868252835281812033808352908452908290208451815495909401516001600160401b03166101000268ffffffffffffffff00199415159490941668ffffffffffffffffff19909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab5691610d7b91879087908690889061206c565b60405180910390a150505050565b60518214610daa5760405163c9bf37b760e01b815260040160405180910390fd5b6001610db68484611503565b60ff1614610dd757604051633a9ae7b960e01b815260040160405180910390fd5b8063ffffffff16610de88484611525565b63ffffffff1614610c165760405163216964bf60e11b815260040160405180910390fd5b6000610c04610e1b8484611535565b90565b6000610e2e600d600984866120c6565b610e37916120f0565b60e01c9392505050565b610e4c8383836113fa565b610e695760405163130c463560e21b815260040160405180910390fd5b602083015160ff1615610efe5760005b836020015160ff168160ff161015610efc57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110610ec157610ec1611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610e79565b505b604083015160ff1615610c165760005b836040015160ff168160ff161015610311576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110610f5657610f56611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610f0e565b6000610fa1602d600d84866120c6565b610c0491612120565b6000610fba6009600184866120c6565b610fc39161213e565b60c01c9392505050565b610fd68161134f565b610c6b57604051633c30434160e21b815263ffffffff82166004820152602401610592565b6110068284836110b6565b6110108284610877565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516110449392919061216c565b60405180910390a1505050565b6000546001600160a01b03163314610ba05760405163118cdaa760e01b8152336004820152602401610592565b602081015160ff161580156110985750606081015160ff16155b15610c6b5760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806110d15750602081015160ff16155b156110ff57608081015151156110fa576040516341d50bed60e11b815260040160405180910390fd5b611165565b806020015160ff1681608001515114158061113a57506002611123600160ff6121b2565b61112d91906121cb565b60ff16816020015160ff16115b15611158576040516341d50bed60e11b815260040160405180910390fd5b6111658160800151611545565b604081015160ff90811614806111805750604081015160ff16155b156111d45760a081015151156111a95760405163211089b360e11b815260040160405180910390fd5b606081015160ff16156111cf576040516338682fa960e01b815260040160405180910390fd5b611279565b806040015160ff168160a001515114158061120f575060026111f8600160ff6121b2565b61120291906121cb565b60ff16816040015160ff16115b1561122d5760405163211089b360e11b815260040160405180910390fd5b606081015160ff16158061124e5750806040015160ff16816060015160ff16115b1561126c576040516338682fa960e01b815260040160405180910390fd5b6112798160a00151611545565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361132b93908501920190611673565b5060a08201518051611347916002840191602090910190611673565b505050505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580610c04575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b602083015160009060ff161561147d5760005b846020015160ff168160ff1610156114655761144f85608001518260ff168151811061143b5761143b611d88565b6020026020010151858588600001516115ac565b61145d576000915050610c04565b60010161140d565b50836040015160ff1660000361147d57506001610c04565b606084015160005b856040015160ff168160ff1610156114f7576114c78660a001518260ff16815181106114b3576114b3611d88565b6020026020010151868689600001516115ac565b156114ef57816114d6816121fb565b9250508160ff166000036114ef57600192505050610c04565b600101611485565b50600095945050505050565b600061151260018284866120c6565b61151b91612218565b60f81c9392505050565b6000610e2e6031602d84866120c6565b6000610fa16051603184866120c6565b6000805b8251811015610c1657600083828151811061156657611566611d88565b60200260200101519050826001600160a01b0316816001600160a01b0316116115a25760405163447516e160e01b815260040160405180910390fd5b9150600101611549565b600083815260026020908152604080832085845282528083206001600160a01b0388168452825280832081518083019092525460ff81161580158084526101009092046001600160401b03169383019390935290916116215750826001600160401b031681602001516001600160401b031610155b9695505050505050565b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156116c8579160200282015b828111156116c857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611693565b506116d49291506116d8565b5090565b5b808211156116d457600081556001016116d9565b6000602082840312156116ff57600080fd5b81356001600160e01b031981168114610c0457600080fd5b60008083601f84011261172957600080fd5b5081356001600160401b0381111561174057600080fd5b60208301915083602082850101111561175857600080fd5b9250929050565b80356001600160401b038116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b84356001600160401b038111156117a757600080fd5b6117b387828801611717565b909550935050602085013591506117cc6040860161175f565b905092959194509250565b6000806000604084860312156117ec57600080fd5b83356001600160401b0381111561180257600080fd5b61180e86828701611717565b909790965060209590950135949350505050565b602081016003831061184457634e487b7160e01b600052602160045260246000fd5b91905290565b80356001600160a01b038116811461177657600080fd5b60008083601f84011261187357600080fd5b5081356001600160401b0381111561188a57600080fd5b6020830191508360208260051b850101111561175857600080fd5b6000806000604084860312156118ba57600080fd5b6118c38461184a565b925060208401356001600160401b038111156118de57600080fd5b6118ea86828701611861565b9497909650939450505050565b6000806020838503121561190a57600080fd5b82356001600160401b0381111561192057600080fd5b61192c85828601611861565b90969095509350505050565b803563ffffffff8116811461177657600080fd5b6000806040838503121561195f57600080fd5b6119688361184a565b915061197660208401611938565b90509250929050565b60008151808452602080850194506020840160005b838110156119b95781516001600160a01b031687529582019590820190600101611994565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c06080850152611a1360c085018261197f565b905060a083015184820360a0860152611a2c828261197f565b95945050505050565b602081526000610c0460208301846119c4565b600080600060608486031215611a5d57600080fd5b8335925060208401359150611a746040850161184a565b90509250925092565b600060208284031215611a8f57600080fd5b610c0482611938565b600080600060608486031215611aad57600080fd5b611ab684611938565b9250611ac46020850161184a565b9150611a7460408501611938565b60006020808352835180602085015260005b81811015611b0057858101830151858201604001528201611ae4565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060408486031215611b3657600080fd5b83356001600160401b03811115611b4c57600080fd5b611b5886828701611717565b9094509250611a74905060208501611938565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611ba357611ba3611b6b565b60405290565b803560ff8116811461177657600080fd5b600082601f830112611bcb57600080fd5b813560206001600160401b0380831115611be757611be7611b6b565b8260051b604051601f19603f83011681018181108482111715611c0c57611c0c611b6b565b6040529384526020818701810194908101925087851115611c2c57600080fd5b6020870191505b84821015611c5357611c448261184a565b83529183019190830190611c33565b979650505050505050565b600060c08284031215611c7057600080fd5b611c78611b81565b9050611c838261175f565b8152611c9160208301611ba9565b6020820152611ca260408301611ba9565b6040820152611cb360608301611ba9565b606082015260808201356001600160401b0380821115611cd257600080fd5b611cde85838601611bba565b608084015260a0840135915080821115611cf757600080fd5b50611d0484828501611bba565b60a08301525092915050565b600080600060608486031215611d2557600080fd5b83356001600160401b03811115611d3b57600080fd5b611d4786828701611c5e565b9660208601359650604090950135949350505050565b600060208284031215611d6f57600080fd5b610c048261184a565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112611db457600080fd5b9190910192915050565b6000808335601e19843603018112611dd557600080fd5b8301803591506001600160401b03821115611def57600080fd5b60200191503681900382131561175857600080fd5b600060208284031215611e1657600080fd5b81356001600160401b03811115611e2c57600080fd5b610c2884828501611c5e565b60008235603e19833603018112611db457600080fd5b6000823560be19833603018112611db457600080fd5b600060208284031215611e7657600080fd5b610c0482611ba9565b600060208284031215611e9157600080fd5b610c048261175f565b60006102ff3683611c5e565b6000808335601e19843603018112611ebd57600080fd5b83016020810192503590506001600160401b03811115611edc57600080fd5b8060051b360382131561175857600080fd5b8183526000602080850194508260005b858110156119b9576001600160a01b03611f178361184a565b1687529582019590820190600101611efe565b60208082528181018390526000906040808401600586901b8501820187855b8881101561205e57603f19808985030185528235603e198c3603018112611f6f57600080fd5b8b0163ffffffff611f7f82611938565b1685528781013560be19823603018112611f9857600080fd5b858901889052016001600160401b03611fb08261175f565b1687860152611fc0888201611ba9565b606060ff80831682890152611fd68a8501611ba9565b92506080818416818a0152611fec838601611ba9565b935060a09250818416838a015261200581860186611ea6565b60c08b81015294509150612020905061010089018483611eee565b92505061202f81840184611ea6565b93509050838783030160e0880152612048828483611eee565b978a019796505050928701925050600101611f49565b509098975050505050505050565b6001600160a01b03861681526080602082018190528101849052838560a0830137600060a08583010152600060a0601f19601f87011683010190506001600160401b03841660408301528260608301529695505050505050565b600080858511156120d657600080fd5b838611156120e357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156121185780818660040360031b1b83161692505b505092915050565b803560208310156102ff57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156121185760089490940360031b84901b1690921692915050565b6001600160a01b038416815263ffffffff83166020820152606060408201819052600090611a2c908301846119c4565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ff576102ff61219c565b600060ff8316806121ec57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b600060ff82168061220e5761220e61219c565b6000190192915050565b6001600160f81b031981358181169160018510156121185760019490940360031b84901b169092169291505056fea26469706673582212209a9d42e4d24ba1f5577ac32292c65d2ac9fe71fc72829f0ae54477497a89995e64736f6c63430008160033","sourceMap":"895:3062:79:-:0;;;1268:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1336:9;978::12;1010;-1:-1:-1;;;;;989:35:12;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1307:10:79;;1269:95:105;;1322:31;;-1:-1:-1;;;1322:31:105;;1350:1;1322:31;;;740:51:145;713:18;;1322:31:105;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;468:20:11;;;;;498;;;;-1:-1:-1;895:3062:79;;-1:-1:-1;895:3062:79;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:145:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:145;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:145:o;309:280::-;378:6;431:2;419:9;410:7;406:23;402:32;399:52;;;447:1;444;437:12;399:52;479:9;473:16;529:10;522:5;518:22;511:5;508:33;498:61;;555:1;552;545:12;594:203;895:3062:79;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806343ea4fa9116100a25780638da5cb5b116100715780638da5cb5b146102665780639c33abf714610281578063c40ff835146102a1578063e084d952146102b4578063f2fde38b146102c757600080fd5b806343ea4fa91461021857806354fd4d501461022b5780636750cd4c1461024b578063715018a61461025e57600080fd5b806320efd722116100de57806320efd7221461016f57806329460b0b1461018257806339e3f938146101955780633c782a52146101b557600080fd5b806301ffc9a7146101105780630223536e146101385780630894edf11461014d5780631881d94d14610160575b600080fd5b61012361011e3660046116ed565b6102da565b60405190151581526020015b60405180910390f35b61014b61014636600461177b565b610305565b005b61014b61015b3660046117d7565b610317565b600160405161012f9190611822565b61014b61017d3660046118a5565b610482565b61014b6101903660046118f7565b6105a4565b6101a86101a336600461194c565b61073c565b60405161012f9190611a35565b6101f96101c3366004611a48565b600260209081526000938452604080852082529284528284209052825290205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161012f565b6101a861022636600461194c565b610877565b60408051600381526000602082015260029181019190915260600161012f565b610123610259366004611a7d565b610b83565b61014b610b8e565b6000546040516001600160a01b03909116815260200161012f565b61029461028f366004611a98565b610ba2565b60405161012f9190611ad2565b61014b6102af366004611b21565b610c0b565b6101236102c2366004611d10565b610c1b565b61014b6102d5366004611d5d565b610c30565b60006001600160e01b03198216630ab7be9f60e01b14806102ff57506102ff82610c6e565b92915050565b61031184848484610ca3565b50505050565b61034283837f0000000000000000000000000000000000000000000000000000000000000000610d89565b600061034e8484610e0c565b9050600061035c8585610e1e565b9050600061036a8383610877565b905061038e818787604051610380929190611d78565b604051809103902086610e41565b600060405180606001604052808463ffffffff1681526020016103b18989610f91565b81526020016103c08989610faa565b6001600160401b039081169091526040805163a825d74760e01b8152835163ffffffff166004820152602084015160248201529083015190911660448201526001600160a01b038681166064830152608482018890529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a825d7479060a401600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b5050505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146104cb5760405163467409c360e01b815260040160405180910390fd5b60005b8181101561031157368383838181106104e9576104e9611d88565b90506020028101906104fb9190611d9e565b905061051261050d6020830183611a7d565b610fcd565b60026105246040830160208401611a7d565b63ffffffff16036105645761055f61053f6020830183611a7d565b8661054d6040850185611dbe565b81019061055a9190611e04565b610ffb565b61059b565b6105746040820160208301611a7d565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016104ce565b6105ac611051565b60005b818110156106fe57368383838181106105ca576105ca611d88565b90506020028101906105dc9190611e38565b905060ff6105ed6020830183611e4e565b6105fe906040810190602001611e64565b60ff160361061f576040516341d50bed60e11b815260040160405180910390fd5b60ff61062e6020830183611e4e565b61063f906060810190604001611e64565b60ff16036106605760405163211089b360e11b815260040160405180910390fd5b6001600160401b036106756020830183611e4e565b610683906020810190611e7f565b6001600160401b0316036106aa5760405163281b33d760e11b815260040160405180910390fd5b6106c86106ba6020830183611e4e565b6106c390611e9a565b61107e565b6106f560006106da6020840184611a7d565b6106e76020850185611e4e565b6106f090611e9a565b6110b6565b506001016105af565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610730929190611f2a565b60405180910390a15050565b61074461162b565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561080457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107e6575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561086657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610848575b505050505081525050905092915050565b61087f61162b565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b0316806108f45782546001600160401b03168452610911565b6001600160401b0381811614610911576001600160401b03811684525b8154600160401b900460ff166109ab578254600160401b900460ff16156109a6578260010180548060200260200160405190810160405280929190818152602001828054801561098a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161096c575b505050505060808501528254600160401b900460ff1660208501525b610a32565b8154600160401b900460ff90811614610a325781600101805480602002602001604051908101604052809291908181526020018280548015610a1657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109f8575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610adb578254600160481b900460ff1615610ad65782600201805480602002602001604051908101604052809291908181526020018280548015610aab57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a8d575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610b71565b8154600160481b900460ff90811614610b715781600201805480602002602001604051908101604052809291908181526020018280548015610b4657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b28575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610b7a8461107e565b50505092915050565b60006102ff8261134f565b610b96611051565b610ba060006113aa565b565b606060011963ffffffff831601610be357610bbd8385610877565b604051602001610bcd9190611a35565b6040516020818303038152906040529050610c04565b604051635d4be0fd60e11b815263ffffffff83166004820152602401610592565b9392505050565b610c16838383610d89565b505050565b6000610c288484846113fa565b949350505050565b610c38611051565b6001600160a01b038116610c6257604051631e4fbdf760e01b815260006004820152602401610592565b610c6b816113aa565b50565b60006001600160e01b031982166325fc096160e21b14806102ff57506301ffc9a760e01b6001600160e01b03198316146102ff565b604080518082018252600181526001600160401b03831660208201529051600290600090610cd49088908890611d78565b604080519182900390912082526020808301939093529081016000908120868252835281812033808352908452908290208451815495909401516001600160401b03166101000268ffffffffffffffff00199415159490941668ffffffffffffffffff19909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab5691610d7b91879087908690889061206c565b60405180910390a150505050565b60518214610daa5760405163c9bf37b760e01b815260040160405180910390fd5b6001610db68484611503565b60ff1614610dd757604051633a9ae7b960e01b815260040160405180910390fd5b8063ffffffff16610de88484611525565b63ffffffff1614610c165760405163216964bf60e11b815260040160405180910390fd5b6000610c04610e1b8484611535565b90565b6000610e2e600d600984866120c6565b610e37916120f0565b60e01c9392505050565b610e4c8383836113fa565b610e695760405163130c463560e21b815260040160405180910390fd5b602083015160ff1615610efe5760005b836020015160ff168160ff161015610efc57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110610ec157610ec1611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610e79565b505b604083015160ff1615610c165760005b836040015160ff168160ff161015610311576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110610f5657610f56611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610f0e565b6000610fa1602d600d84866120c6565b610c0491612120565b6000610fba6009600184866120c6565b610fc39161213e565b60c01c9392505050565b610fd68161134f565b610c6b57604051633c30434160e21b815263ffffffff82166004820152602401610592565b6110068284836110b6565b6110108284610877565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516110449392919061216c565b60405180910390a1505050565b6000546001600160a01b03163314610ba05760405163118cdaa760e01b8152336004820152602401610592565b602081015160ff161580156110985750606081015160ff16155b15610c6b5760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806110d15750602081015160ff16155b156110ff57608081015151156110fa576040516341d50bed60e11b815260040160405180910390fd5b611165565b806020015160ff1681608001515114158061113a57506002611123600160ff6121b2565b61112d91906121cb565b60ff16816020015160ff16115b15611158576040516341d50bed60e11b815260040160405180910390fd5b6111658160800151611545565b604081015160ff90811614806111805750604081015160ff16155b156111d45760a081015151156111a95760405163211089b360e11b815260040160405180910390fd5b606081015160ff16156111cf576040516338682fa960e01b815260040160405180910390fd5b611279565b806040015160ff168160a001515114158061120f575060026111f8600160ff6121b2565b61120291906121cb565b60ff16816040015160ff16115b1561122d5760405163211089b360e11b815260040160405180910390fd5b606081015160ff16158061124e5750806040015160ff16816060015160ff16115b1561126c576040516338682fa960e01b815260040160405180910390fd5b6112798160a00151611545565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361132b93908501920190611673565b5060a08201518051611347916002840191602090910190611673565b505050505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580610c04575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b602083015160009060ff161561147d5760005b846020015160ff168160ff1610156114655761144f85608001518260ff168151811061143b5761143b611d88565b6020026020010151858588600001516115ac565b61145d576000915050610c04565b60010161140d565b50836040015160ff1660000361147d57506001610c04565b606084015160005b856040015160ff168160ff1610156114f7576114c78660a001518260ff16815181106114b3576114b3611d88565b6020026020010151868689600001516115ac565b156114ef57816114d6816121fb565b9250508160ff166000036114ef57600192505050610c04565b600101611485565b50600095945050505050565b600061151260018284866120c6565b61151b91612218565b60f81c9392505050565b6000610e2e6031602d84866120c6565b6000610fa16051603184866120c6565b6000805b8251811015610c1657600083828151811061156657611566611d88565b60200260200101519050826001600160a01b0316816001600160a01b0316116115a25760405163447516e160e01b815260040160405180910390fd5b9150600101611549565b600083815260026020908152604080832085845282528083206001600160a01b0388168452825280832081518083019092525460ff81161580158084526101009092046001600160401b03169383019390935290916116215750826001600160401b031681602001516001600160401b031610155b9695505050505050565b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156116c8579160200282015b828111156116c857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611693565b506116d49291506116d8565b5090565b5b808211156116d457600081556001016116d9565b6000602082840312156116ff57600080fd5b81356001600160e01b031981168114610c0457600080fd5b60008083601f84011261172957600080fd5b5081356001600160401b0381111561174057600080fd5b60208301915083602082850101111561175857600080fd5b9250929050565b80356001600160401b038116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b84356001600160401b038111156117a757600080fd5b6117b387828801611717565b909550935050602085013591506117cc6040860161175f565b905092959194509250565b6000806000604084860312156117ec57600080fd5b83356001600160401b0381111561180257600080fd5b61180e86828701611717565b909790965060209590950135949350505050565b602081016003831061184457634e487b7160e01b600052602160045260246000fd5b91905290565b80356001600160a01b038116811461177657600080fd5b60008083601f84011261187357600080fd5b5081356001600160401b0381111561188a57600080fd5b6020830191508360208260051b850101111561175857600080fd5b6000806000604084860312156118ba57600080fd5b6118c38461184a565b925060208401356001600160401b038111156118de57600080fd5b6118ea86828701611861565b9497909650939450505050565b6000806020838503121561190a57600080fd5b82356001600160401b0381111561192057600080fd5b61192c85828601611861565b90969095509350505050565b803563ffffffff8116811461177657600080fd5b6000806040838503121561195f57600080fd5b6119688361184a565b915061197660208401611938565b90509250929050565b60008151808452602080850194506020840160005b838110156119b95781516001600160a01b031687529582019590820190600101611994565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c06080850152611a1360c085018261197f565b905060a083015184820360a0860152611a2c828261197f565b95945050505050565b602081526000610c0460208301846119c4565b600080600060608486031215611a5d57600080fd5b8335925060208401359150611a746040850161184a565b90509250925092565b600060208284031215611a8f57600080fd5b610c0482611938565b600080600060608486031215611aad57600080fd5b611ab684611938565b9250611ac46020850161184a565b9150611a7460408501611938565b60006020808352835180602085015260005b81811015611b0057858101830151858201604001528201611ae4565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060408486031215611b3657600080fd5b83356001600160401b03811115611b4c57600080fd5b611b5886828701611717565b9094509250611a74905060208501611938565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611ba357611ba3611b6b565b60405290565b803560ff8116811461177657600080fd5b600082601f830112611bcb57600080fd5b813560206001600160401b0380831115611be757611be7611b6b565b8260051b604051601f19603f83011681018181108482111715611c0c57611c0c611b6b565b6040529384526020818701810194908101925087851115611c2c57600080fd5b6020870191505b84821015611c5357611c448261184a565b83529183019190830190611c33565b979650505050505050565b600060c08284031215611c7057600080fd5b611c78611b81565b9050611c838261175f565b8152611c9160208301611ba9565b6020820152611ca260408301611ba9565b6040820152611cb360608301611ba9565b606082015260808201356001600160401b0380821115611cd257600080fd5b611cde85838601611bba565b608084015260a0840135915080821115611cf757600080fd5b50611d0484828501611bba565b60a08301525092915050565b600080600060608486031215611d2557600080fd5b83356001600160401b03811115611d3b57600080fd5b611d4786828701611c5e565b9660208601359650604090950135949350505050565b600060208284031215611d6f57600080fd5b610c048261184a565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112611db457600080fd5b9190910192915050565b6000808335601e19843603018112611dd557600080fd5b8301803591506001600160401b03821115611def57600080fd5b60200191503681900382131561175857600080fd5b600060208284031215611e1657600080fd5b81356001600160401b03811115611e2c57600080fd5b610c2884828501611c5e565b60008235603e19833603018112611db457600080fd5b6000823560be19833603018112611db457600080fd5b600060208284031215611e7657600080fd5b610c0482611ba9565b600060208284031215611e9157600080fd5b610c048261175f565b60006102ff3683611c5e565b6000808335601e19843603018112611ebd57600080fd5b83016020810192503590506001600160401b03811115611edc57600080fd5b8060051b360382131561175857600080fd5b8183526000602080850194508260005b858110156119b9576001600160a01b03611f178361184a565b1687529582019590820190600101611efe565b60208082528181018390526000906040808401600586901b8501820187855b8881101561205e57603f19808985030185528235603e198c3603018112611f6f57600080fd5b8b0163ffffffff611f7f82611938565b1685528781013560be19823603018112611f9857600080fd5b858901889052016001600160401b03611fb08261175f565b1687860152611fc0888201611ba9565b606060ff80831682890152611fd68a8501611ba9565b92506080818416818a0152611fec838601611ba9565b935060a09250818416838a015261200581860186611ea6565b60c08b81015294509150612020905061010089018483611eee565b92505061202f81840184611ea6565b93509050838783030160e0880152612048828483611eee565b978a019796505050928701925050600101611f49565b509098975050505050505050565b6001600160a01b03861681526080602082018190528101849052838560a0830137600060a08583010152600060a0601f19601f87011683010190506001600160401b03841660408301528260608301529695505050505050565b600080858511156120d657600080fd5b838611156120e357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156121185780818660040360031b1b83161692505b505092915050565b803560208310156102ff57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156121185760089490940360031b84901b1690921692915050565b6001600160a01b038416815263ffffffff83166020820152606060408201819052600090611a2c908301846119c4565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ff576102ff61219c565b600060ff8316806121ec57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b600060ff82168061220e5761220e61219c565b6000190192915050565b6001600160f81b031981358181169160018510156121185760019490940360031b84901b169092169291505056fea26469706673582212209a9d42e4d24ba1f5577ac32292c65d2ac9fe71fc72829f0ae54477497a89995e64736f6c63430008160033","sourceMap":"895:3062:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1355:196;;;;;;:::i;:::-;;:::i;:::-;;;470:14:145;;463:22;445:41;;433:2;418:18;1355:196:79;;;;;;;;3127:169;;;;;;:::i;:::-;;:::i;:::-;;2403:675;;;;;;:::i;:::-;;:::i;1261:128:12:-;1360:22;1261:128;;;;;;:::i;1690:517:79:-;;;;;;:::i;:::-;;:::i;2638:787:24:-;;;;;;:::i;:::-;;:::i;5951:153::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;461:125:22:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;461:125:22;;;;;;;6425:14:145;;6418:22;6400:41;;-1:-1:-1;;;;;6477:31:145;;;6472:2;6457:18;;6450:59;6373:18;461:125:22;6234:281:145;3612:2249:24;;;;;;:::i;:::-;;:::i;3821:134:79:-;;;;3940:1;6712:50:145;;3872:12:79;6793:2:145;6778:18;;6771:45;3946:1:79;6832:18:145;;;6825:45;;;;6700:2;6685:18;3821:134:79;6520:356:145;3695:120:79;;;;;;:::i;:::-;;:::i;2293:101:105:-;;;:::i;1638:85::-;1684:7;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:105;;;7216:51:145;;7204:2;7189:18;1638:85:105;7070:203:145;3380:309:79;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1144:140:22:-;;;;;;:::i;:::-;;:::i;914:224::-;;;;;;:::i;:::-;;:::i;2543:215:105:-;;;;;;:::i;:::-;;:::i;1355:196:79:-;1433:4;-1:-1:-1;;;;;;1456:47:79;;-1:-1:-1;;;1456:47:79;;:88;;;1507:37;1531:12;1507:23;:37::i;:::-;1449:95;1355:196;-1:-1:-1;;1355:196:79:o;3127:169::-;3237:52;3245:13;;3260:12;3274:14;3237:7;:52::i;:::-;3127:169;;;;:::o;2403:675::-;2502:38;2516:13;;2531:8;2502:13;:38::i;:::-;2593:16;2612:27;:13;;:25;:27::i;:::-;2593:46;;2649:13;2665:22;:13;;:20;:22::i;:::-;2649:38;;2698:23;2724:30;2737:8;2747:6;2724:12;:30::i;:::-;2698:56;;2764:72;2789:6;2807:13;;2797:24;;;;;;;:::i;:::-;;;;;;;;2823:12;2764:24;:72::i;:::-;2847:20;2870:61;;;;;;;;2877:6;2870:61;;;;;;2885:22;:13;;:20;:22::i;:::-;2870:61;;;;2909:21;:13;;:19;:21::i;:::-;-1:-1:-1;;;;;2870:61:79;;;;;;3002:69;;;-1:-1:-1;;;3002:69:79;;12199:13:145;;12214:10;12195:30;3002:69:79;;;12177:49:145;12282:4;12270:17;;12264:24;12242:20;;;12235:54;12337:17;;;12331:24;12327:49;;;12305:20;;;12298:79;-1:-1:-1;;;;;12413:32:145;;;12393:18;;;12386:60;12462:19;;;12455:35;;;2847:84:79;;-1:-1:-1;3023:8:79;3002:37;;;;;;12149:19:145;;3002:69:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2492:586;;;;2403:675;;;:::o;1690:517::-;326:8:11;-1:-1:-1;;;;;326:22:11;338:10;326:22;322:63;;357:28;;-1:-1:-1;;;357:28:11;;;;;;;;;;;322:63;1805:9:79::1;1800:401;1820:18:::0;;::::1;1800:401;;;1859:29;1891:7;;1899:1;1891:10;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1859:42:::0;-1:-1:-1;1915:30:79::1;1935:9;;::::0;::::1;1859:42:::0;1935:9:::1;:::i;:::-;1915:19;:30::i;:::-;1147:1;1963:16;::::0;;;::::1;::::0;::::1;;:::i;:::-;:35;;::::0;1959:232:::1;;2018:70;2032:9;;::::0;::::1;:5:::0;:9:::1;:::i;:::-;2043:5:::0;2061:12:::1;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;2050:37;;;;;;;:::i;:::-;2018:13;:70::i;:::-;1959:232;;;2159:16;::::0;;;::::1;::::0;::::1;;:::i;:::-;2134:42;::::0;-1:-1:-1;;;2134:42:79;;14024:10:145;14012:23;;;2134:42:79::1;::::0;::::1;13994::145::0;13967:18;;2134:42:79::1;;;;;;;;1959:232;-1:-1:-1::0;1840:3:79::1;;1800:401;;2638:787:24::0;1531:13:105;:11;:13::i;:::-;2747:9:24::1;2742:633;2762:18:::0;;::::1;2742:633;;;2801:39;2843:7;;2851:1;2843:10;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2801:52:::0;-1:-1:-1;1222:15:24::1;2908:12;;::::0;::::1;2801:52:::0;2908:12:::1;:::i;:::-;:29;::::0;;;;;::::1;;;:::i;:::-;:46;;::::0;2904:91:::1;;2963:32;;-1:-1:-1::0;;;2963:32:24::1;;;;;;;;;;;2904:91;1222:15;3013:12;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;:29;::::0;;;;;::::1;;;:::i;:::-;:46;;::::0;3009:91:::1;;3068:32;;-1:-1:-1::0;;;3068:32:24::1;;;;;;;;;;;3009:91;-1:-1:-1::0;;;;;3118:12:24::1;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;:26;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;3118:47:24::1;::::0;3114:89:::1;;3174:29;;-1:-1:-1::0;;;3174:29:24::1;;;;;;;;;;;3114:89;3264:34;3285:12;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;3264:34;;;:::i;:::-;:20;:34::i;:::-;3313:51;1106:1;3340:9;;::::0;::::1;:5:::0;:9:::1;:::i;:::-;3351:12;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;3313:51;;;:::i;:::-;:10;:51::i;:::-;-1:-1:-1::0;2782:3:24::1;;2742:633;;;;3389:29;3410:7;;3389:29;;;;;;;:::i;:::-;;;;;;;;2638:787:::0;;:::o;5951:153::-;6033:16;;:::i;:::-;-1:-1:-1;;;;;6068:17:24;;;;;;:10;:17;;;;;;;;:29;;;;;;;;;;;6061:36;;;;;;;;;-1:-1:-1;;;;;6061:36:24;;;;;-1:-1:-1;;;6061:36:24;;;;;;;;-1:-1:-1;;;6061:36:24;;;;;;;;-1:-1:-1;;;6061:36:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6068:29;;6061:36;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6061:36:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6061:36:24;;;;;;;;;;;;;;;;;;;;;;;;;;;5951:153;;;;:::o;3612:2249::-;3689:26;;:::i;:::-;3761:38;;;3727:31;3761:38;;;:26;;:38;;;:26;:38;;;-1:-1:-1;;;;;3842:17:24;;;;3761:10;3842:17;;;;;:29;;;;;;;;;3951:26;;-1:-1:-1;;;;;3951:26:24;;3987:297;;4057:27;;-1:-1:-1;;;;;4057:27:24;4031:53;;3987:297;;;-1:-1:-1;;;;;4105:34:24;;;;4101:183;;-1:-1:-1;;;;;4234:39:24;;;;4101:183;4346:29;;-1:-1:-1;;;4346:29:24;;:40;:29;4342:604;;4406:30;;-1:-1:-1;;;4406:30:24;;;;:34;4402:253;;4537:13;:26;;4512:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4512:51:24;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4512:22:24;;;:51;4610:30;;-1:-1:-1;;;4610:30:24;;;;4581:26;;;:59;4402:253;4342:604;;;4709:29;;-1:-1:-1;;;4709:29:24;;1222:15;4709:29;;;:46;4705:211;;4800:12;:25;;4775:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4775:50:24;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4775:22:24;;;:50;4872:29;;-1:-1:-1;;;4872:29:24;;;;4843:26;;;:58;4705:211;4960:29;;-1:-1:-1;;;4960:29:24;;:40;:29;4956:733;;5020:30;;-1:-1:-1;;;5020:30:24;;;;:34;5016:338;;5151:13;:26;;5126:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5126:51:24;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5126:22:24;;;:51;5224:30;;;-1:-1:-1;;;5224:30:24;;;;5195:26;;;:59;-1:-1:-1;;;5305:34:24;;;;-1:-1:-1;5272:30:24;;:67;5016:338;4956:733;;;5388:29;;-1:-1:-1;;;5388:29:24;;1222:15;5388:29;;;:46;5384:295;;5479:12;:25;;5454:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5454:50:24;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5454:22:24;;;:50;5551:29;;;-1:-1:-1;;;5551:29:24;;;;5522:26;;;:58;-1:-1:-1;;;5631:33:24;;;;-1:-1:-1;5598:30:24;;:66;5384:295;5823:31;5844:9;5823:20;:31::i;:::-;3717:2144;;;3612:2249;;;;:::o;3695:120:79:-;3764:4;3787:21;3803:4;3787:15;:21::i;2293:101:105:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;3380:309:79:-;3479:12;-1:-1:-1;;3507:30:79;;;;3503:180;;3571:25;3584:5;3591:4;3571:12;:25::i;:::-;3560:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;3553:44;;;;3503:180;3635:37;;-1:-1:-1;;;3635:37:79;;14024:10:145;14012:23;;3635:37:79;;;13994:42:145;13967:18;;3635:37:79;13850:192:145;3503:180:79;3380:309;;;;;:::o;1144:140:22:-;1238:39;1252:13;;1267:9;1238:13;:39::i;:::-;1144:140;;;:::o;914:224::-;1056:4;1079:52;1096:7;1105:11;1118:12;1079:16;:52::i;:::-;1072:59;914:224;-1:-1:-1;;;;914:224:22:o;2543:215:105:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:105;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:105;;2700:1:::1;2672:31;::::0;::::1;7216:51:145::0;7189:18;;2672:31:105::1;7070:203:145::0;2623:91:105::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1036:219:12:-;1139:4;-1:-1:-1;;;;;;1162:45:12;;-1:-1:-1;;;1162:45:12;;:86;;-1:-1:-1;;;;;;;;;;861:40:126;;;1211:37:12;762:146:126;1409:304:22;1585:34;;;;;;;;1598:4;1585:34;;-1:-1:-1;;;;;1585:34:22;;;;;;1531:24;;1520:10;;-1:-1:-1;;1531:24:22;;1541:13;;;;1531:24;:::i;:::-;;;;;;;;;;;1520:36;;;;;;;;;;;;;-1:-1:-1;1520:36:22;;;:50;;;;;;;;1571:10;1520:62;;;;;;;;;;:99;;;;;;;;;-1:-1:-1;;;;;1520:99:22;;;-1:-1:-1;;1520:99:22;;;;;;;-1:-1:-1;;1520:99:22;;;;;;;;;;;;;;1634:72;;;;;;1662:13;;;;1677:14;;1557:12;;1634:72;:::i;:::-;;;;;;;;1409:304;;;;:::o;2929:514::-;3104:2;3080:26;;3076:67;;3115:28;;-1:-1:-1;;;3115:28:22;;;;;;;;;;;3076:67;319:1:68;3216:23:22;:13;;:21;:23::i;:::-;:55;;;3212:97;;3280:29;;-1:-1:-1;;;3280:29:22;;;;;;;;;;;3212:97;3399:9;3373:35;;:22;:13;;:20;:22::i;:::-;:35;;;3369:67;;3417:19;;-1:-1:-1;;;3417:19:22;;;;;;;;;;;2976:130:68;3044:7;3070:29;:17;3079:7;;3070:8;:17::i;:::-;1210:15:60;1084:151;2230:148:68;2293:6;2332:37;605:2;557:1;2332:7;;:37;:::i;:::-;2325:45;;;:::i;:::-;2318:53;;;2230:148;-1:-1:-1;;;2230:148:68:o;2166:757:22:-;2293:52;2310:7;2319:11;2332:12;2293:16;:52::i;:::-;2288:109;;2368:18;;-1:-1:-1;;;2368:18:22;;;;;;;;;;;2288:109;2448:24;;;;:28;;;2444:213;;2497:7;2492:155;2514:7;:24;;;2510:28;;:1;:28;;;2492:155;;;2570:23;;;;:10;:23;;;;;;;;:37;;;;;;;;2608:20;;;;:23;;2570:37;;:23;2608;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2570:62:22;;;;;;;;;;;-1:-1:-1;2570:62:22;2563:69;;-1:-1:-1;;2563:69:22;;;;2540:3;2492:155;;;;2444:213;2708:24;;;;:28;;;2704:213;;2757:7;2752:155;2774:7;:24;;;2770:28;;:1;:28;;;2752:155;;;2830:23;;;;:10;:23;;;;;;;;:37;;;;;;;;2868:20;;;;:23;;2830:37;;:23;2868;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2830:62:22;;;;;;;;;;;-1:-1:-1;2830:62:22;2823:69;;-1:-1:-1;;2823:69:22;;;;2800:3;2752:155;;2384:142:68;2447:7;2481:37;655:2;605;2481:7;;:37;:::i;:::-;2473:46;;;:::i;2078:146::-;2140:6;2179:36;557:1;493;2179:7;;:36;:::i;:::-;2172:44;;;:::i;:::-;2165:52;;;2078:146;-1:-1:-1;;;2078:146:68:o;6870:153:24:-;6947:27;6963:10;6947:15;:27::i;:::-;6942:74;;6983:33;;-1:-1:-1;;;6983:33:24;;14024:10:145;14012:23;;6983:33:24;;;13994:42:145;13967:18;;6983:33:24;13850:192:145;6191:318:24;6292:37;6303:5;6310:10;6322:6;6292:10;:37::i;:::-;6417:31;6430:5;6437:10;6417:12;:31::i;:::-;;6463:39;6476:5;6483:10;6495:6;6463:39;;;;;;;;:::i;:::-;;;;;;;;6191:318;;;:::o;1796:162:105:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:105;735:10:120;1855:23:105;1851:101;;1901:40;;-1:-1:-1;;;1901:40:105;;735:10:120;1901:40:105;;;7216:51:145;7189:18;;1901:40:105;7070:203:145;7110:187:24;7193:24;;;;:29;;;:66;;;;-1:-1:-1;7226:28:24;;;;:33;;;7193:66;7189:101;;;7268:22;;-1:-1:-1;;;7268:22:24;;;;;;;;;;;7392:2122;7709:23;;;;1222:15;7709:40;;;;;:78;;-1:-1:-1;7753:23:24;;;;:34;;;7709:78;7705:423;;;7807:19;;;;:26;:31;7803:76;;7847:32;;-1:-1:-1;;;7847:32:24;;;;;;;;;;;7803:76;7705:423;;;7944:6;:23;;;7914:53;;:6;:19;;;:26;:53;;:92;;;-1:-1:-1;1533:1:24;1510:19;1528:1;1510:15;:19;:::i;:::-;1509:25;;;;:::i;:::-;7971:35;;:6;:23;;;:35;;;7914:92;7910:153;;;8031:32;;-1:-1:-1;;;8031:32:24;;;;;;;;;;;7910:153;8077:40;8097:6;:19;;;8077;:40::i;:::-;8687:23;;;;1222:15;8687:40;;;;;:78;;-1:-1:-1;8731:23:24;;;;:34;;;8687:78;8683:686;;;8785:19;;;;:26;:31;8781:76;;8825:32;;-1:-1:-1;;;8825:32:24;;;;;;;;;;;8781:76;8875:27;;;;:32;;;8871:81;;8916:36;;-1:-1:-1;;;8916:36:24;;;;;;;;;;;8871:81;8683:686;;;9017:6;:23;;;8987:53;;:6;:19;;;:26;:53;;:92;;;-1:-1:-1;1533:1:24;1510:19;1528:1;1510:15;:19;:::i;:::-;1509:25;;;;:::i;:::-;9044:35;;:6;:23;;;:35;;;8987:92;8983:153;;;9104:32;;-1:-1:-1;;;9104:32:24;;;;;;;;;;;8983:153;9154:27;;;;:32;;;;:89;;;9220:6;:23;;;9190:53;;:6;:27;;;:53;;;9154:89;9150:154;;;9268:36;;-1:-1:-1;;;9268:36:24;;;;;;;;;;;9150:154;9318:40;9338:6;:19;;;9318;:40::i;:::-;-1:-1:-1;;;;;9475:17:24;;;;;;:10;:17;;;;;;;;:23;;;;;;;;;;;:32;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9475:32:24;;;-1:-1:-1;;9475:32:24;;;;;;;-1:-1:-1;;;9475:32:24;;;;;;-1:-1:-1;;9475:32:24;-1:-1:-1;;;9475:32:24;;;;;;;-1:-1:-1;;;;9475:32:24;;-1:-1:-1;;;9475:32:24;;;;;;;;;;;;;;;;;;;;;;:23;:32;;;;;;;;;:::i;:::-;-1:-1:-1;9475:32:24;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;7392:2122:24:o;6609:255::-;6726:38;;;6676:4;6726:38;;;:26;;:38;:26;:38;;6781:30;;-1:-1:-1;;;6781:30:24;;;;:34;;;:76;;-1:-1:-1;6819:34:24;-1:-1:-1;;;6819:34:24;;;;:38;;;;-1:-1:-1;;6609:255:24:o;2912:187:105:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;3573:1386:22:-;3778:24;;;;3721:4;;3778:28;;;3774:549;;3827:7;3822:302;3844:7;:24;;;3840:28;;:1;:28;;;3822:302;;;3898:84;3908:7;:20;;;3929:1;3908:23;;;;;;;;;;:::i;:::-;;;;;;;3933:11;3946:12;3960:7;:21;;;3898:9;:84::i;:::-;3893:217;;4086:5;4079:12;;;;;3893:217;3870:3;;3822:302;;;;4141:7;:24;;;:29;;4169:1;4141:29;4137:176;;-1:-1:-1;4294:4:22;4287:11;;4137:176;4404:28;;;;4386:15;4442:449;4464:7;:24;;;4460:28;;:1;:28;;;4442:449;;;4513:84;4523:7;:20;;;4544:1;4523:23;;;;;;;;;;:::i;:::-;;;;;;;4548:11;4561:12;4575:7;:21;;;4513:9;:84::i;:::-;4509:372;;;4696:11;;;;:::i;:::-;;;;4729:9;:14;;4742:1;4729:14;4725:142;;4844:4;4837:11;;;;;;4725:142;4490:3;;4442:449;;;-1:-1:-1;4947:5:22;;3573:1386;-1:-1:-1;;;;;3573:1386:22:o;1919:153:68:-;1983:5;2020:43;493:1;1983:5;2020:7;;:43;:::i;:::-;2013:51;;;:::i;:::-;2007:58;;;1919:153;-1:-1:-1;;;1919:153:68:o;2671:150::-;2734:6;2773:39;706:2;655;2773:7;;:39;:::i;2827:143::-;2892:7;2926:36;785:2;706;2926:7;;:36;:::i;9520:322:24:-;9596:15;9639:9;9634:202;9658:5;:12;9654:1;:16;9634:202;;;9691:11;9705:5;9711:1;9705:8;;;;;;;;:::i;:::-;;;;;;;9691:22;;9738:7;-1:-1:-1;;;;;9731:14:24;:3;-1:-1:-1;;;;;9731:14:24;;9727:44;;9754:17;;-1:-1:-1;;;9754:17:24;;;;;;;;;;;9727:44;9822:3;-1:-1:-1;9672:3:24;;9634:202;;1719:441:22;1886:13;1946:23;;;:10;:23;;;;;;;;:37;;;;;;;;-1:-1:-1;;;;;1946:43:22;;;;;;;;;1911:78;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1911:78:22;;;;;;;;;;2076:77;;;2132:21;-1:-1:-1;;;;;2102:51:22;:12;:26;;;-1:-1:-1;;;;;2102:51:22;;;2076:77;2065:88;1719:441;-1:-1:-1;;;;;;1719:441:22:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:286:145;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:145;;209:43;;199:71;;266:1;263;256:12;497:347;548:8;558:6;612:3;605:4;597:6;593:17;589:27;579:55;;630:1;627;620:12;579:55;-1:-1:-1;653:20:145;;-1:-1:-1;;;;;685:30:145;;682:50;;;728:1;725;718:12;682:50;765:4;757:6;753:17;741:29;;817:3;810:4;801:6;793;789:19;785:30;782:39;779:59;;;834:1;831;824:12;779:59;497:347;;;;;:::o;849:171::-;916:20;;-1:-1:-1;;;;;965:30:145;;955:41;;945:69;;1010:1;1007;1000:12;945:69;849:171;;;:::o;1025:549::-;1112:6;1120;1128;1136;1189:2;1177:9;1168:7;1164:23;1160:32;1157:52;;;1205:1;1202;1195:12;1157:52;1245:9;1232:23;-1:-1:-1;;;;;1270:6:145;1267:30;1264:50;;;1310:1;1307;1300:12;1264:50;1349:58;1399:7;1390:6;1379:9;1375:22;1349:58;:::i;:::-;1426:8;;-1:-1:-1;1323:84:145;-1:-1:-1;;1508:2:145;1493:18;;1480:32;;-1:-1:-1;1531:37:145;1564:2;1549:18;;1531:37;:::i;:::-;1521:47;;1025:549;;;;;;;:::o;1579:477::-;1658:6;1666;1674;1727:2;1715:9;1706:7;1702:23;1698:32;1695:52;;;1743:1;1740;1733:12;1695:52;1783:9;1770:23;-1:-1:-1;;;;;1808:6:145;1805:30;1802:50;;;1848:1;1845;1838:12;1802:50;1887:58;1937:7;1928:6;1917:9;1913:22;1887:58;:::i;:::-;1964:8;;1861:84;;-1:-1:-1;2046:2:145;2031:18;;;;2018:32;;1579:477;-1:-1:-1;;;;1579:477:145:o;2061:348::-;2213:2;2198:18;;2246:1;2235:13;;2225:144;;2291:10;2286:3;2282:20;2279:1;2272:31;2326:4;2323:1;2316:15;2354:4;2351:1;2344:15;2225:144;2378:25;;;2061:348;:::o;2414:173::-;2482:20;;-1:-1:-1;;;;;2531:31:145;;2521:42;;2511:70;;2577:1;2574;2567:12;2592:390;2678:8;2688:6;2742:3;2735:4;2727:6;2723:17;2719:27;2709:55;;2760:1;2757;2750:12;2709:55;-1:-1:-1;2783:20:145;;-1:-1:-1;;;;;2815:30:145;;2812:50;;;2858:1;2855;2848:12;2812:50;2895:4;2887:6;2883:17;2871:29;;2955:3;2948:4;2938:6;2935:1;2931:14;2923:6;2919:27;2915:38;2912:47;2909:67;;;2972:1;2969;2962:12;2987:569;3117:6;3125;3133;3186:2;3174:9;3165:7;3161:23;3157:32;3154:52;;;3202:1;3199;3192:12;3154:52;3225:29;3244:9;3225:29;:::i;:::-;3215:39;;3305:2;3294:9;3290:18;3277:32;-1:-1:-1;;;;;3324:6:145;3321:30;3318:50;;;3364:1;3361;3354:12;3318:50;3403:93;3488:7;3479:6;3468:9;3464:22;3403:93;:::i;:::-;2987:569;;3515:8;;-1:-1:-1;3377:119:145;;-1:-1:-1;;;;2987:569:145:o;3561:504::-;3691:6;3699;3752:2;3740:9;3731:7;3727:23;3723:32;3720:52;;;3768:1;3765;3758:12;3720:52;3808:9;3795:23;-1:-1:-1;;;;;3833:6:145;3830:30;3827:50;;;3873:1;3870;3863:12;3827:50;3912:93;3997:7;3988:6;3977:9;3973:22;3912:93;:::i;:::-;4024:8;;3886:119;;-1:-1:-1;3561:504:145;-1:-1:-1;;;;3561:504:145:o;4070:163::-;4137:20;;4197:10;4186:22;;4176:33;;4166:61;;4223:1;4220;4213:12;4238:258;4305:6;4313;4366:2;4354:9;4345:7;4341:23;4337:32;4334:52;;;4382:1;4379;4372:12;4334:52;4405:29;4424:9;4405:29;:::i;:::-;4395:39;;4453:37;4486:2;4475:9;4471:18;4453:37;:::i;:::-;4443:47;;4238:258;;;;;:::o;4501:465::-;4554:3;4592:5;4586:12;4619:6;4614:3;4607:19;4645:4;4674;4669:3;4665:14;4658:21;;4713:4;4706:5;4702:16;4736:1;4746:195;4760:6;4757:1;4754:13;4746:195;;;4825:13;;-1:-1:-1;;;;;4821:39:145;4809:52;;4881:12;;;;4916:15;;;;4857:1;4775:9;4746:195;;;-1:-1:-1;4957:3:145;;4501:465;-1:-1:-1;;;;;4501:465:145:o;4971:662::-;-1:-1:-1;;;;;5063:5:145;5057:12;5053:37;5048:3;5041:50;5152:4;5144;5137:5;5133:16;5127:23;5123:34;5116:4;5111:3;5107:14;5100:58;5219:4;5211;5204:5;5200:16;5194:23;5190:34;5183:4;5178:3;5174:14;5167:58;5286:4;5278;5271:5;5267:16;5261:23;5257:34;5250:4;5245:3;5241:14;5234:58;5023:3;5338:4;5331:5;5327:16;5321:23;5376:4;5369;5364:3;5360:14;5353:28;5402:58;5454:4;5449:3;5445:14;5431:12;5402:58;:::i;:::-;5390:70;;5508:4;5501:5;5497:16;5491:23;5556:3;5550:4;5546:14;5539:4;5534:3;5530:14;5523:38;5577:50;5622:4;5606:14;5577:50;:::i;:::-;5570:57;4971:662;-1:-1:-1;;;;;4971:662:145:o;5638:264::-;5821:2;5810:9;5803:21;5784:4;5841:55;5892:2;5881:9;5877:18;5869:6;5841:55;:::i;5907:322::-;5984:6;5992;6000;6053:2;6041:9;6032:7;6028:23;6024:32;6021:52;;;6069:1;6066;6059:12;6021:52;6105:9;6092:23;6082:33;;6162:2;6151:9;6147:18;6134:32;6124:42;;6185:38;6219:2;6208:9;6204:18;6185:38;:::i;:::-;6175:48;;5907:322;;;;;:::o;6881:184::-;6939:6;6992:2;6980:9;6971:7;6967:23;6963:32;6960:52;;;7008:1;7005;6998:12;6960:52;7031:28;7049:9;7031:28;:::i;7278:330::-;7353:6;7361;7369;7422:2;7410:9;7401:7;7397:23;7393:32;7390:52;;;7438:1;7435;7428:12;7390:52;7461:28;7479:9;7461:28;:::i;:::-;7451:38;;7508;7542:2;7531:9;7527:18;7508:38;:::i;:::-;7498:48;;7565:37;7598:2;7587:9;7583:18;7565:37;:::i;7613:546::-;7723:4;7752:2;7781;7770:9;7763:21;7813:6;7807:13;7856:6;7851:2;7840:9;7836:18;7829:34;7881:1;7891:140;7905:6;7902:1;7899:13;7891:140;;;8000:14;;;7996:23;;7990:30;7966:17;;;7985:2;7962:26;7955:66;7920:10;;7891:140;;;7895:3;8080:1;8075:2;8066:6;8055:9;8051:22;8047:31;8040:42;8150:2;8143;8139:7;8134:2;8126:6;8122:15;8118:29;8107:9;8103:45;8099:54;8091:62;;;;7613:546;;;;:::o;8164:481::-;8242:6;8250;8258;8311:2;8299:9;8290:7;8286:23;8282:32;8279:52;;;8327:1;8324;8317:12;8279:52;8367:9;8354:23;-1:-1:-1;;;;;8392:6:145;8389:30;8386:50;;;8432:1;8429;8422:12;8386:50;8471:58;8521:7;8512:6;8501:9;8497:22;8471:58;:::i;:::-;8548:8;;-1:-1:-1;8445:84:145;-1:-1:-1;8602:37:145;;-1:-1:-1;8635:2:145;8620:18;;8602:37;:::i;8650:127::-;8711:10;8706:3;8702:20;8699:1;8692:31;8742:4;8739:1;8732:15;8766:4;8763:1;8756:15;8782:248;8849:2;8843:9;8891:4;8879:17;;-1:-1:-1;;;;;8911:34:145;;8947:22;;;8908:62;8905:88;;;8973:18;;:::i;:::-;9009:2;9002:22;8782:248;:::o;9035:156::-;9101:20;;9161:4;9150:16;;9140:27;;9130:55;;9181:1;9178;9171:12;9196:914;9250:5;9303:3;9296:4;9288:6;9284:17;9280:27;9270:55;;9321:1;9318;9311:12;9270:55;9357:6;9344:20;9383:4;-1:-1:-1;;;;;9443:2:145;9439;9436:10;9433:36;;;9449:18;;:::i;:::-;9495:2;9492:1;9488:10;9527:2;9521:9;9590:2;9586:7;9581:2;9577;9573:11;9569:25;9561:6;9557:38;9645:6;9633:10;9630:22;9625:2;9613:10;9610:18;9607:46;9604:72;;;9656:18;;:::i;:::-;9692:2;9685:22;9742:18;;;9788:4;9820:15;;;9816:26;;;9776:17;;;;-1:-1:-1;9854:15:145;;;9851:35;;;9882:1;9879;9872:12;9851:35;9918:4;9910:6;9906:17;9895:28;;9932:148;9948:6;9943:3;9940:15;9932:148;;;10014:23;10033:3;10014:23;:::i;:::-;10002:36;;10058:12;;;;9965;;;;9932:148;;;10098:6;9196:914;-1:-1:-1;;;;;;;9196:914:145:o;10115:849::-;10171:5;10219:4;10207:9;10202:3;10198:19;10194:30;10191:50;;;10237:1;10234;10227:12;10191:50;10259:17;;:::i;:::-;10250:26;;10299:28;10317:9;10299:28;:::i;:::-;10292:5;10285:43;10360:36;10392:2;10381:9;10377:18;10360:36;:::i;:::-;10355:2;10348:5;10344:14;10337:60;10429:36;10461:2;10450:9;10446:18;10429:36;:::i;:::-;10424:2;10417:5;10413:14;10406:60;10498:36;10530:2;10519:9;10515:18;10498:36;:::i;:::-;10493:2;10486:5;10482:14;10475:60;10586:3;10575:9;10571:19;10558:33;-1:-1:-1;;;;;10651:2:145;10643:6;10640:14;10637:34;;;10667:1;10664;10657:12;10637:34;10704:57;10757:3;10748:6;10737:9;10733:22;10704:57;:::i;:::-;10698:3;10691:5;10687:15;10680:82;10815:3;10804:9;10800:19;10787:33;10771:49;;10845:2;10835:8;10832:16;10829:36;;;10861:1;10858;10851:12;10829:36;;10898:59;10953:3;10942:8;10931:9;10927:24;10898:59;:::i;:::-;10892:3;10885:5;10881:15;10874:84;;10115:849;;;;:::o;10969:485::-;11073:6;11081;11089;11142:2;11130:9;11121:7;11117:23;11113:32;11110:52;;;11158:1;11155;11148:12;11110:52;11198:9;11185:23;-1:-1:-1;;;;;11223:6:145;11220:30;11217:50;;;11263:1;11260;11253:12;11217:50;11286:60;11338:7;11329:6;11318:9;11314:22;11286:60;:::i;:::-;11276:70;11393:2;11378:18;;11365:32;;-1:-1:-1;11444:2:145;11429:18;;;11416:32;;10969:485;-1:-1:-1;;;;10969:485:145:o;11459:186::-;11518:6;11571:2;11559:9;11550:7;11546:23;11542:32;11539:52;;;11587:1;11584;11577:12;11539:52;11610:29;11629:9;11610:29;:::i;11650:271::-;11833:6;11825;11820:3;11807:33;11789:3;11859:16;;11884:13;;;11859:16;11650:271;-1:-1:-1;11650:271:145:o;12501:127::-;12562:10;12557:3;12553:20;12550:1;12543:31;12593:4;12590:1;12583:15;12617:4;12614:1;12607:15;12633:332;12734:4;12792:11;12779:25;12886:2;12882:7;12871:8;12855:14;12851:29;12847:43;12827:18;12823:68;12813:96;;12905:1;12902;12895:12;12813:96;12926:33;;;;;12633:332;-1:-1:-1;;12633:332:145:o;12970:521::-;13047:4;13053:6;13113:11;13100:25;13207:2;13203:7;13192:8;13176:14;13172:29;13168:43;13148:18;13144:68;13134:96;;13226:1;13223;13216:12;13134:96;13253:33;;13305:20;;;-1:-1:-1;;;;;;13337:30:145;;13334:50;;;13380:1;13377;13370:12;13334:50;13413:4;13401:17;;-1:-1:-1;13444:14:145;13440:27;;;13430:38;;13427:58;;;13481:1;13478;13471:12;13496:349;13582:6;13635:2;13623:9;13614:7;13610:23;13606:32;13603:52;;;13651:1;13648;13641:12;13603:52;13691:9;13678:23;-1:-1:-1;;;;;13716:6:145;13713:30;13710:50;;;13756:1;13753;13746:12;13710:50;13779:60;13831:7;13822:6;13811:9;13807:22;13779:60;:::i;14047:341::-;14157:4;14215:11;14202:25;14309:2;14305:7;14294:8;14278:14;14274:29;14270:43;14250:18;14246:68;14236:96;;14328:1;14325;14318:12;14393:327;14488:4;14546:11;14533:25;14640:3;14636:8;14625;14609:14;14605:29;14601:44;14581:18;14577:69;14567:97;;14660:1;14657;14650:12;14725:182;14782:6;14835:2;14823:9;14814:7;14810:23;14806:32;14803:52;;;14851:1;14848;14841:12;14803:52;14874:27;14891:9;14874:27;:::i;14912:184::-;14970:6;15023:2;15011:9;15002:7;14998:23;14994:32;14991:52;;;15039:1;15036;15029:12;14991:52;15062:28;15080:9;15062:28;:::i;15101:199::-;15207:9;15244:50;15279:14;15272:5;15244:50;:::i;15305:520::-;15375:5;15382:6;15442:3;15429:17;15528:2;15524:7;15513:8;15497:14;15493:29;15489:43;15469:18;15465:68;15455:96;;15547:1;15544;15537:12;15455:96;15575:33;;15679:4;15666:18;;;-1:-1:-1;15627:21:145;;-1:-1:-1;;;;;;15696:30:145;;15693:50;;;15739:1;15736;15729:12;15693:50;15793:6;15790:1;15786:14;15770;15766:35;15759:5;15755:47;15752:67;;;15815:1;15812;15805:12;15830:449;15930:6;15925:3;15918:19;15900:3;15956:4;15985;15980:3;15976:14;15969:21;;16013:5;16036:1;16046:208;16060:6;16057:1;16054:13;16046:208;;;-1:-1:-1;;;;;16125:26:145;16144:6;16125:26;:::i;:::-;16121:52;16109:65;;16194:12;;;;16229:15;;;;16082:1;16075:9;16046:208;;16284:2551;16551:2;16603:21;;;16576:18;;;16659:22;;;16522:4;;16700:2;16718:18;;;16782:1;16778:14;;;16763:30;;16759:39;;16821:6;16522:4;16855:1951;16869:6;16866:1;16863:13;16855:1951;;;16932:2;16928:7;16988:2;16976:9;16968:6;16964:22;16960:31;16955:3;16948:44;17044:6;17031:20;17135:2;17131:7;17122:6;17106:14;17102:27;17098:41;17078:18;17074:66;17064:94;;17154:1;17151;17144:12;17064:94;17184:31;;17273:10;17247:24;17184:31;17247:24;:::i;:::-;17243:41;17235:6;17228:57;17350:2;17343:5;17339:14;17326:28;17439:3;17435:8;17427:5;17411:14;17407:26;17403:41;17381:20;17377:68;17367:96;;17459:1;17456;17449:12;17367:96;17543:15;;;17536:27;;;17491:32;-1:-1:-1;;;;;17604:26:145;17491:32;17604:26;:::i;:::-;17600:51;17595:2;17587:6;17583:15;17576:76;17685:34;17715:2;17706:7;17702:16;17685:34;:::i;:::-;17742:2;17767:4;17826:2;17812:12;17808:21;17803:2;17795:6;17791:15;17784:46;17865:34;17895:2;17886:7;17882:16;17865:34;:::i;:::-;17843:56;;17922:3;17982:2;17966:14;17962:23;17957:2;17949:6;17945:15;17938:48;18021:34;18051:2;18042:7;18038:16;18021:34;:::i;:::-;17999:56;;18078:3;18068:13;;18138:2;18122:14;18118:23;18113:2;18105:6;18101:15;18094:48;18191:69;18256:2;18247:7;18243:16;18234:7;18191:69;:::i;:::-;18283:4;18307:15;;;18300:27;18155:105;-1:-1:-1;18155:105:145;-1:-1:-1;18354:85:145;;-1:-1:-1;18434:3:145;18422:16;;18155:105;;18354:85;:::i;:::-;18340:99;;;18490:69;18555:2;18546:7;18542:16;18533:7;18490:69;:::i;:::-;18452:107;;;;18622:2;18613:6;18605;18601:19;18597:28;18591:3;18583:6;18579:16;18572:54;18649:77;18719:6;18703:14;18687;18649:77;:::i;:::-;18784:12;;;;18639:87;-1:-1:-1;;;18749:15:145;;;;-1:-1:-1;;16891:1:145;16884:9;16855:1951;;;-1:-1:-1;18823:6:145;;16284:2551;-1:-1:-1;;;;;;;;16284:2551:145:o;18840:656::-;-1:-1:-1;;;;;19080:32:145;;19062:51;;19149:3;19144:2;19129:18;;19122:31;;;19169:19;;19162:35;;;19190:6;19240;19100:3;19219:19;;19206:49;19305:1;19299:3;19290:6;19279:9;19275:22;19271:32;19264:43;19043:4;19375:3;19368:2;19364:7;19359:2;19351:6;19347:15;19343:29;19332:9;19328:45;19324:55;19316:63;;-1:-1:-1;;;;;19419:6:145;19415:31;19410:2;19399:9;19395:18;19388:59;19483:6;19478:2;19467:9;19463:18;19456:34;18840:656;;;;;;;;:::o;19501:331::-;19606:9;19617;19659:8;19647:10;19644:24;19641:44;;;19681:1;19678;19671:12;19641:44;19710:6;19700:8;19697:20;19694:40;;;19730:1;19727;19720:12;19694:40;-1:-1:-1;;19756:23:145;;;19801:25;;;;;-1:-1:-1;19501:331:145:o;19837:323::-;-1:-1:-1;;;;;;19957:19:145;;20033:11;;;;20064:1;20056:10;;20053:101;;;20141:2;20135;20128:3;20125:1;20121:11;20118:1;20114:19;20110:28;20106:2;20102:37;20098:46;20089:55;;20053:101;;;19837:323;;;;:::o;20165:255::-;20285:19;;20324:2;20316:11;;20313:101;;;-1:-1:-1;;20385:2:145;20381:12;;;20378:1;20374:20;20370:33;20359:45;20165:255;;;;:::o;20425:331::-;-1:-1:-1;;;;;;20545:19:145;;20629:11;;;;20660:1;20652:10;;20649:101;;;20721:1;20717:11;;;;20714:1;20710:19;20706:28;;;20698:37;20694:46;;;;20425:331;-1:-1:-1;;20425:331:145:o;20761:447::-;-1:-1:-1;;;;;20998:32:145;;20980:51;;21079:10;21067:23;;21062:2;21047:18;;21040:51;21127:2;21122;21107:18;;21100:30;;;-1:-1:-1;;21147:55:145;;21183:18;;21175:6;21147:55;:::i;21213:127::-;21274:10;21269:3;21265:20;21262:1;21255:31;21305:4;21302:1;21295:15;21329:4;21326:1;21319:15;21345:151;21435:4;21428:12;;;21414;;;21410:31;;21453:14;;21450:40;;;21470:18;;:::i;21501:262::-;21539:1;21573:4;21570:1;21566:12;21597:3;21587:134;;21643:10;21638:3;21634:20;21631:1;21624:31;21678:4;21675:1;21668:15;21706:4;21703:1;21696:15;21587:134;21753:3;21746:4;21743:1;21739:12;21735:22;21730:27;;;21501:262;;;;:::o;21768:178::-;21805:3;21849:4;21842:5;21838:16;21873:7;21863:41;;21884:18;;:::i;:::-;-1:-1:-1;;21920:20:145;;21768:178;-1:-1:-1;;21768:178:145:o;21951:316::-;-1:-1:-1;;;;;;22071:19:145;;22140:11;;;;22171:1;22163:10;;22160:101;;;22232:1;22228:11;;;;22225:1;22221:19;22217:28;;;22209:37;22205:46;;;;21951:316;-1:-1:-1;;21951:316:145:o","linkReferences":{},"immutableReferences":{"1972":[{"start":1051,"length":32},{"start":1156,"length":32}],"1974":[{"start":798,"length":32}]}},"methodIdentifiers":{"assertHeader(bytes,uint32)":"c40ff835","commitVerification(bytes,bytes32)":"0894edf1","getAppUlnConfig(address,uint32)":"39e3f938","getConfig(uint32,address,uint32)":"9c33abf7","getUlnConfig(address,uint32)":"43ea4fa9","hashLookup(bytes32,bytes32,address)":"3c782a52","isSupportedEid(uint32)":"6750cd4c","messageLibType()":"1881d94d","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setConfig(address,(uint32,uint32,bytes)[])":"20efd722","setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":"29460b0b","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","verifiable((uint64,uint8,uint8,uint8,address[],address[]),bytes32,bytes32)":"e084d952","verify(bytes,bytes32,uint64)":"0223536e","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_endpoint\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_AtLeastOneDVN\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"}],\"name\":\"LZ_ULN_InvalidConfigType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidConfirmations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidPacketHeader\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidPacketVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidRequiredDVNCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_Unsorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"LZ_ULN_UnsupportedEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_Verifying\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"DefaultUlnConfigsSet\",\"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\":\"address\",\"name\":\"dvn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"header\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"confirmations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proofHash\",\"type\":\"bytes32\"}],\"name\":\"PayloadVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"indexed\":false,\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"UlnConfigSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_localEid\",\"type\":\"uint32\"}],\"name\":\"assertHeader\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"commitVerification\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getAppUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"rtnConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"headerHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"dvn\",\"type\":\"address\"}],\"name\":\"hashLookup\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"submitted\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setDefaultUlnConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"_config\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_headerHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"verifiable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_confirmations\",\"type\":\"uint64\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"commitVerification(bytes,bytes32)\":{\"details\":\"dont need to check endpoint verifiable here to save gas, as it will reverts if not verifiable.\"},\"getAppUlnConfig(address,uint32)\":{\"details\":\"Get the uln config without the default config for the given remoteEid.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])\":{\"details\":\"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"verify(bytes,bytes32,uint64)\":{\"details\":\"for dvn to verify the payload\"}},\"stateVariables\":{\"CONFIG_TYPE_ULN\":{\"details\":\"CONFIG_TYPE_ULN=2 here to align with SendUln302/ReceiveUln302/ReceiveUln301\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol\":\"ReceiveUln302Mock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol\":{\"keccak256\":\"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2\",\"dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":{\"keccak256\":\"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79\",\"dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol\":{\"keccak256\":\"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc\",\"dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol\":{\"keccak256\":\"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4\",\"dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_endpoint","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"LZ_MessageLib_OnlyEndpoint"},{"inputs":[],"type":"error","name":"LZ_ULN_AtLeastOneDVN"},{"inputs":[{"internalType":"uint32","name":"configType","type":"uint32"}],"type":"error","name":"LZ_ULN_InvalidConfigType"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidConfirmations"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidEid"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidPacketHeader"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidPacketVersion"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount"},{"inputs":[],"type":"error","name":"LZ_ULN_Unsorted"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"LZ_ULN_UnsupportedEid"},{"inputs":[],"type":"error","name":"LZ_ULN_Verifying"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}],"indexed":false}],"type":"event","name":"DefaultUlnConfigsSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"dvn","type":"address","indexed":false},{"internalType":"bytes","name":"header","type":"bytes","indexed":false},{"internalType":"uint256","name":"confirmations","type":"uint256","indexed":false},{"internalType":"bytes32","name":"proofHash","type":"bytes32","indexed":false}],"type":"event","name":"PayloadVerified","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}],"indexed":false}],"type":"event","name":"UlnConfigSet","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_packetHeader","type":"bytes"},{"internalType":"uint32","name":"_localEid","type":"uint32"}],"stateMutability":"pure","type":"function","name":"assertHeader"},{"inputs":[{"internalType":"bytes","name":"_packetHeader","type":"bytes"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"commitVerification"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getAppUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"rtnConfig","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"headerHash","type":"bytes32"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"},{"internalType":"address","name":"dvn","type":"address"}],"stateMutability":"view","type":"function","name":"hashLookup","outputs":[{"internalType":"bool","name":"submitted","type":"bool"},{"internalType":"uint64","name":"confirmations","type":"uint64"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]}],"stateMutability":"nonpayable","type":"function","name":"setDefaultUlnConfigs"},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"struct UlnConfig","name":"_config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]},{"internalType":"bytes32","name":"_headerHash","type":"bytes32"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"verifiable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes","name":"_packetHeader","type":"bytes"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"},{"internalType":"uint64","name":"_confirmations","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"verify"},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{"commitVerification(bytes,bytes32)":{"details":"dont need to check endpoint verifiable here to save gas, as it will reverts if not verifiable."},"getAppUlnConfig(address,uint32)":{"details":"Get the uln config without the default config for the given remoteEid."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":{"details":"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"verify(bytes,bytes32,uint64)":{"details":"for dvn to verify the payload"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol":"ReceiveUln302Mock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol":{"keccak256":"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9","urls":["bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2","dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":{"keccak256":"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44","urls":["bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79","dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol":{"keccak256":"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91","urls":["bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc","dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol":{"keccak256":"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121","urls":["bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4","dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":79} \ No newline at end of file diff --git a/packages/onft-evm/out/ReceiveUlnBase.sol/ReceiveUlnBase.json b/packages/onft-evm/out/ReceiveUlnBase.sol/ReceiveUlnBase.json deleted file mode 100644 index 5ca66541f..000000000 --- a/packages/onft-evm/out/ReceiveUlnBase.sol/ReceiveUlnBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"assertHeader","inputs":[{"name":"_packetHeader","type":"bytes","internalType":"bytes"},{"name":"_localEid","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"getAppUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"rtnConfig","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"hashLookup","inputs":[{"name":"headerHash","type":"bytes32","internalType":"bytes32"},{"name":"payloadHash","type":"bytes32","internalType":"bytes32"},{"name":"dvn","type":"address","internalType":"address"}],"outputs":[{"name":"submitted","type":"bool","internalType":"bool"},{"name":"confirmations","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultUlnConfigs","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifiable","inputs":[{"name":"_config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]},{"name":"_headerHash","type":"bytes32","internalType":"bytes32"},{"name":"_payloadHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"DefaultUlnConfigsSet","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PayloadVerified","inputs":[{"name":"dvn","type":"address","indexed":false,"internalType":"address"},{"name":"header","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"confirmations","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"proofHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"UlnConfigSet","inputs":[{"name":"oapp","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"config","type":"tuple","indexed":false,"internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"anonymous":false},{"type":"error","name":"LZ_ULN_AtLeastOneDVN","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidConfirmations","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidEid","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidPacketHeader","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidPacketVersion","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_Unsorted","inputs":[]},{"type":"error","name":"LZ_ULN_UnsupportedEid","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"LZ_ULN_Verifying","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"assertHeader(bytes,uint32)":"c40ff835","getAppUlnConfig(address,uint32)":"39e3f938","getUlnConfig(address,uint32)":"43ea4fa9","hashLookup(bytes32,bytes32,address)":"3c782a52","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":"29460b0b","transferOwnership(address)":"f2fde38b","verifiable((uint64,uint8,uint8,uint8,address[],address[]),bytes32,bytes32)":"e084d952"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_ULN_AtLeastOneDVN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidConfirmations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidPacketHeader\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidPacketVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidRequiredDVNCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_Unsorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"LZ_ULN_UnsupportedEid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_Verifying\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"DefaultUlnConfigsSet\",\"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\":\"address\",\"name\":\"dvn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"header\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"confirmations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proofHash\",\"type\":\"bytes32\"}],\"name\":\"PayloadVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"indexed\":false,\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"UlnConfigSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_localEid\",\"type\":\"uint32\"}],\"name\":\"assertHeader\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getAppUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"rtnConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"headerHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"dvn\",\"type\":\"address\"}],\"name\":\"hashLookup\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"submitted\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setDefaultUlnConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"_config\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_headerHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"verifiable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"includes the utility functions for checking ULN states and logics\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getAppUlnConfig(address,uint32)\":{\"details\":\"Get the uln config without the default config for the given remoteEid.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])\":{\"details\":\"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":\"ReceiveUlnBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":{\"keccak256\":\"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79\",\"dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_ULN_AtLeastOneDVN"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidConfirmations"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidEid"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidPacketHeader"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidPacketVersion"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount"},{"inputs":[],"type":"error","name":"LZ_ULN_Unsorted"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"LZ_ULN_UnsupportedEid"},{"inputs":[],"type":"error","name":"LZ_ULN_Verifying"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}],"indexed":false}],"type":"event","name":"DefaultUlnConfigsSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"dvn","type":"address","indexed":false},{"internalType":"bytes","name":"header","type":"bytes","indexed":false},{"internalType":"uint256","name":"confirmations","type":"uint256","indexed":false},{"internalType":"bytes32","name":"proofHash","type":"bytes32","indexed":false}],"type":"event","name":"PayloadVerified","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}],"indexed":false}],"type":"event","name":"UlnConfigSet","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_packetHeader","type":"bytes"},{"internalType":"uint32","name":"_localEid","type":"uint32"}],"stateMutability":"pure","type":"function","name":"assertHeader"},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getAppUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"rtnConfig","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"headerHash","type":"bytes32"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"},{"internalType":"address","name":"dvn","type":"address"}],"stateMutability":"view","type":"function","name":"hashLookup","outputs":[{"internalType":"bool","name":"submitted","type":"bool"},{"internalType":"uint64","name":"confirmations","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]}],"stateMutability":"nonpayable","type":"function","name":"setDefaultUlnConfigs"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"struct UlnConfig","name":"_config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]},{"internalType":"bytes32","name":"_headerHash","type":"bytes32"},{"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"verifiable","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getAppUlnConfig(address,uint32)":{"details":"Get the uln config without the default config for the given remoteEid."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":{"details":"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":"ReceiveUlnBase"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":{"keccak256":"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44","urls":["bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79","dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":22} \ No newline at end of file diff --git a/packages/onft-evm/out/ReentrancyGuard.sol/ReentrancyGuard.json b/packages/onft-evm/out/ReentrancyGuard.sol/ReentrancyGuard.json deleted file mode 100644 index 064869007..000000000 --- a/packages/onft-evm/out/ReentrancyGuard.sol/ReentrancyGuard.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":"ReentrancyGuard"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"}},"version":1},"id":122} \ No newline at end of file diff --git a/packages/onft-evm/out/SafeCall.sol/SafeCall.json b/packages/onft-evm/out/SafeCall.sol/SafeCall.json deleted file mode 100644 index 668e030b5..000000000 --- a/packages/onft-evm/out/SafeCall.sol/SafeCall.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122088e4af2b88f346b00dae87c8625accd34f85e233a8f83e2cb2ec10a9b709c07764736f6c63430008160033","sourceMap":"182:4460:21:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;182:4460:21;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122088e4af2b88f346b00dae87c8625accd34f85e233a8f83e2cb2ec10a9b709c07764736f6c63430008160033","sourceMap":"182:4460:21:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"copied from https://github.com/nomad-xyz/ExcessivelySafeCall/blob/main/src/ExcessivelySafeCall.sol.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":\"SafeCall\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":{\"keccak256\":\"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89\",\"dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":"SafeCall"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":{"keccak256":"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d","urls":["bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89","dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh"],"license":"MIT OR Apache-2.0"}},"version":1},"id":21} \ No newline at end of file diff --git a/packages/onft-evm/out/SafeCast.sol/SafeCast.json b/packages/onft-evm/out/SafeCast.sol/SafeCast.json deleted file mode 100644 index 58bf4d2fe..000000000 --- a/packages/onft-evm/out/SafeCast.sol/SafeCast.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"SafeCastOverflowedIntDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"int256","internalType":"int256"}]},{"type":"error","name":"SafeCastOverflowedIntToUint","inputs":[{"name":"value","type":"int256","internalType":"int256"}]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeCastOverflowedUintToInt","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209df7307ba9ae928f9d60f50f622c891948572d8041ba14f6a4450a2ba909095664736f6c63430008160033","sourceMap":"764:33927:129:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;764:33927:129;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209df7307ba9ae928f9d60f50f622c891948572d8041ba14f6a4450a2ba909095664736f6c63430008160033","sourceMap":"764:33927:129:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"type":"error","name":"SafeCastOverflowedIntDowncast"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"type":"error","name":"SafeCastOverflowedIntToUint"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintToInt"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":"SafeCast"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"}},"version":1},"id":129} \ No newline at end of file diff --git a/packages/onft-evm/out/SafeERC20.sol/SafeERC20.json b/packages/onft-evm/out/SafeERC20.sol/SafeERC20.json deleted file mode 100644 index 896ee5929..000000000 --- a/packages/onft-evm/out/SafeERC20.sol/SafeERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"SafeERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122035d2c325248e2ee2a1f35b8acd3348c38e92676bf29c6adfcdc8c1dfb0c74dd064736f6c63430008160033","sourceMap":"751:5018:113:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;751:5018:113;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122035d2c325248e2ee2a1f35b8acd3348c38e92676bf29c6adfcdc8c1dfb0c74dd064736f6c63430008160033","sourceMap":"751:5018:113:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"SafeERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"errors\":{\"SafeERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"SafeERC20FailedDecreaseAllowance"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":"SafeERC20"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"}},"version":1},"id":113} \ No newline at end of file diff --git a/packages/onft-evm/out/SendLibBase.sol/SendLibBase.json b/packages/onft-evm/out/SendLibBase.sol/SendLibBase.json deleted file mode 100644 index 8f37c9467..000000000 --- a/packages/onft-evm/out/SendLibBase.sol/SendLibBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"executorConfigs","inputs":[{"name":"oapp","type":"address","internalType":"address"},{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"fees","inputs":[{"name":"worker","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getExecutorConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"rtnConfig","type":"tuple","internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultExecutorConfigs","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct SetDefaultExecutorConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTreasuryNativeFeeCap","inputs":[{"name":"_newTreasuryNativeFeeCap","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"DefaultExecutorConfigsSet","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct SetDefaultExecutorConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}]}],"anonymous":false},{"type":"event","name":"ExecutorConfigSet","inputs":[{"name":"oapp","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"config","type":"tuple","indexed":false,"internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}],"anonymous":false},{"type":"event","name":"ExecutorFeePaid","inputs":[{"name":"executor","type":"address","indexed":false,"internalType":"address"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TreasuryNativeFeeCapSet","inputs":[{"name":"newTreasuryNativeFeeCap","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TreasurySet","inputs":[{"name":"treasury","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"LZ_MessageLib_InvalidAmount","inputs":[{"name":"requested","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_MessageLib_InvalidExecutor","inputs":[]},{"type":"error","name":"LZ_MessageLib_InvalidMessageSize","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_MessageLib_OnlyEndpoint","inputs":[]},{"type":"error","name":"LZ_MessageLib_TransferFailed","inputs":[]},{"type":"error","name":"LZ_MessageLib_ZeroMessageSize","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"executorConfigs(address,uint32)":"4d963200","fees(address)":"faaebd21","getExecutorConfig(address,uint32)":"188183f4","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setDefaultExecutorConfigs((uint32,(uint32,address))[])":"c14c4349","setTreasuryNativeFeeCap(uint256)":"d15b0d49","transferOwnership(address)":"f2fde38b","treasury()":"61d027b3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"LZ_MessageLib_InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_InvalidExecutor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"LZ_MessageLib_InvalidMessageSize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_ZeroMessageSize\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"internalType\":\"struct ExecutorConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct SetDefaultExecutorConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"DefaultExecutorConfigsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct ExecutorConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"ExecutorConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ExecutorFeePaid\",\"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\":\"uint256\",\"name\":\"newTreasuryNativeFeeCap\",\"type\":\"uint256\"}],\"name\":\"TreasuryNativeFeeCapSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"TreasurySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"executorConfigs\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"worker\",\"type\":\"address\"}],\"name\":\"fees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getExecutorConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"internalType\":\"struct ExecutorConfig\",\"name\":\"rtnConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"internalType\":\"struct ExecutorConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"internalType\":\"struct SetDefaultExecutorConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setDefaultExecutorConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newTreasuryNativeFeeCap\",\"type\":\"uint256\"}],\"name\":\"setTreasuryNativeFeeCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"base contract for both SendLibBaseE1 and SendLibBaseE2\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setTreasuryNativeFeeCap(uint256)\":{\"details\":\"the new value can not be greater than the old value, i.e. down only\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol\":\"SendLibBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol\":{\"keccak256\":\"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4\",\"dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":{\"keccak256\":\"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5\",\"dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":{\"keccak256\":\"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89\",\"dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"type":"error","name":"LZ_MessageLib_InvalidAmount"},{"inputs":[],"type":"error","name":"LZ_MessageLib_InvalidExecutor"},{"inputs":[{"internalType":"uint256","name":"actual","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"LZ_MessageLib_InvalidMessageSize"},{"inputs":[],"type":"error","name":"LZ_MessageLib_OnlyEndpoint"},{"inputs":[],"type":"error","name":"LZ_MessageLib_TransferFailed"},{"inputs":[],"type":"error","name":"LZ_MessageLib_ZeroMessageSize"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"struct SetDefaultExecutorConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct ExecutorConfig","name":"config","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]}],"indexed":false}],"type":"event","name":"DefaultExecutorConfigsSet","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"struct ExecutorConfig","name":"config","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}],"indexed":false}],"type":"event","name":"ExecutorConfigSet","anonymous":false},{"inputs":[{"internalType":"address","name":"executor","type":"address","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"ExecutorFeePaid","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newTreasuryNativeFeeCap","type":"uint256","indexed":false}],"type":"event","name":"TreasuryNativeFeeCapSet","anonymous":false},{"inputs":[{"internalType":"address","name":"treasury","type":"address","indexed":false}],"type":"event","name":"TreasurySet","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address"},{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"executorConfigs","outputs":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]},{"inputs":[{"internalType":"address","name":"worker","type":"address"}],"stateMutability":"view","type":"function","name":"fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getExecutorConfig","outputs":[{"internalType":"struct ExecutorConfig","name":"rtnConfig","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SetDefaultExecutorConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct ExecutorConfig","name":"config","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"setDefaultExecutorConfigs"},{"inputs":[{"internalType":"uint256","name":"_newTreasuryNativeFeeCap","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setTreasuryNativeFeeCap"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setTreasuryNativeFeeCap(uint256)":{"details":"the new value can not be greater than the old value, i.e. down only"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol":"SendLibBase"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol":{"keccak256":"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1","urls":["bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4","dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":{"keccak256":"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345","urls":["bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5","dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":{"keccak256":"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d","urls":["bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89","dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":13} \ No newline at end of file diff --git a/packages/onft-evm/out/SendLibBaseE2.sol/SendLibBaseE2.json b/packages/onft-evm/out/SendLibBaseE2.sol/SendLibBaseE2.json deleted file mode 100644 index 1640483ad..000000000 --- a/packages/onft-evm/out/SendLibBaseE2.sol/SendLibBaseE2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"executorConfigs","inputs":[{"name":"oapp","type":"address","internalType":"address"},{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"fees","inputs":[{"name":"worker","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_oapp","type":"address","internalType":"address"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"config","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getExecutorConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"rtnConfig","type":"tuple","internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"messageLibType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum MessageLibType"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_packet","type":"tuple","internalType":"struct Packet","components":[{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_packet","type":"tuple","internalType":"struct Packet","components":[{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_config","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultExecutorConfigs","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct SetDefaultExecutorConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTreasury","inputs":[{"name":"_treasury","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTreasuryNativeFeeCap","inputs":[{"name":"_newTreasuryNativeFeeCap","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"endpointVersion","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawLzTokenFee","inputs":[{"name":"_lzToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DefaultExecutorConfigsSet","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct SetDefaultExecutorConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}]}],"anonymous":false},{"type":"event","name":"ExecutorConfigSet","inputs":[{"name":"oapp","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"config","type":"tuple","indexed":false,"internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}],"anonymous":false},{"type":"event","name":"ExecutorFeePaid","inputs":[{"name":"executor","type":"address","indexed":false,"internalType":"address"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"LzTokenFeeWithdrawn","inputs":[{"name":"lzToken","type":"address","indexed":false,"internalType":"address"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NativeFeeWithdrawn","inputs":[{"name":"worker","type":"address","indexed":false,"internalType":"address"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TreasuryNativeFeeCapSet","inputs":[{"name":"newTreasuryNativeFeeCap","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TreasurySet","inputs":[{"name":"treasury","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"LZ_MessageLib_CannotWithdrawAltToken","inputs":[]},{"type":"error","name":"LZ_MessageLib_InvalidAmount","inputs":[{"name":"requested","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_MessageLib_InvalidExecutor","inputs":[]},{"type":"error","name":"LZ_MessageLib_InvalidMessageSize","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_MessageLib_NotTreasury","inputs":[]},{"type":"error","name":"LZ_MessageLib_OnlyEndpoint","inputs":[]},{"type":"error","name":"LZ_MessageLib_TransferFailed","inputs":[]},{"type":"error","name":"LZ_MessageLib_ZeroMessageSize","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"executorConfigs(address,uint32)":"4d963200","fees(address)":"faaebd21","getConfig(uint32,address,uint32)":"9c33abf7","getExecutorConfig(address,uint32)":"188183f4","isSupportedEid(uint32)":"6750cd4c","messageLibType()":"1881d94d","owner()":"8da5cb5b","quote((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"d80e9bd9","renounceOwnership()":"715018a6","send((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"4389e58f","setConfig(address,(uint32,uint32,bytes)[])":"20efd722","setDefaultExecutorConfigs((uint32,(uint32,address))[])":"c14c4349","setTreasury(address)":"f0f44260","setTreasuryNativeFeeCap(uint256)":"d15b0d49","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","treasury()":"61d027b3","version()":"54fd4d50","withdrawFee(address,uint256)":"fd9be522","withdrawLzTokenFee(address,address,uint256)":"200175f7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_CannotWithdrawAltToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"LZ_MessageLib_InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_InvalidExecutor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"LZ_MessageLib_InvalidMessageSize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_NotTreasury\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_ZeroMessageSize\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"internalType\":\"struct ExecutorConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct SetDefaultExecutorConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"DefaultExecutorConfigsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct ExecutorConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"ExecutorConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ExecutorFeePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lzToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LzTokenFeeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"worker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NativeFeeWithdrawn\",\"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\":\"uint256\",\"name\":\"newTreasuryNativeFeeCap\",\"type\":\"uint256\"}],\"name\":\"TreasuryNativeFeeCapSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"TreasurySet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"executorConfigs\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"worker\",\"type\":\"address\"}],\"name\":\"fees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getExecutorConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"internalType\":\"struct ExecutorConfig\",\"name\":\"rtnConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"_packet\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"_packet\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_config\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"internalType\":\"struct ExecutorConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"internalType\":\"struct SetDefaultExecutorConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setDefaultExecutorConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newTreasuryNativeFeeCap\",\"type\":\"uint256\"}],\"name\":\"setTreasuryNativeFeeCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawLzTokenFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"send-side message library base contract on endpoint v2. design: the high level logic is the same as SendLibBaseE1 1/ with added interfaces 2/ adapt the functions to the new types, like uint32 for eid, address for sender.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setTreasuryNativeFeeCap(uint256)\":{\"details\":\"the new value can not be greater than the old value, i.e. down only\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"withdrawFee(address,uint256)\":{\"details\":\"E2 only\"},\"withdrawLzTokenFee(address,address,uint256)\":{\"details\":\"_lzToken is a user-supplied value because lzToken might change in the endpoint before all lzToken can be taken outE2 onlytreasury only function\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol\":\"SendLibBaseE2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol\":{\"keccak256\":\"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4\",\"dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol\":{\"keccak256\":\"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497\",\"dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":{\"keccak256\":\"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5\",\"dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":{\"keccak256\":\"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89\",\"dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"LZ_MessageLib_CannotWithdrawAltToken"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"type":"error","name":"LZ_MessageLib_InvalidAmount"},{"inputs":[],"type":"error","name":"LZ_MessageLib_InvalidExecutor"},{"inputs":[{"internalType":"uint256","name":"actual","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"LZ_MessageLib_InvalidMessageSize"},{"inputs":[],"type":"error","name":"LZ_MessageLib_NotTreasury"},{"inputs":[],"type":"error","name":"LZ_MessageLib_OnlyEndpoint"},{"inputs":[],"type":"error","name":"LZ_MessageLib_TransferFailed"},{"inputs":[],"type":"error","name":"LZ_MessageLib_ZeroMessageSize"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"},{"inputs":[{"internalType":"struct SetDefaultExecutorConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct ExecutorConfig","name":"config","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]}],"indexed":false}],"type":"event","name":"DefaultExecutorConfigsSet","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"struct ExecutorConfig","name":"config","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}],"indexed":false}],"type":"event","name":"ExecutorConfigSet","anonymous":false},{"inputs":[{"internalType":"address","name":"executor","type":"address","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"ExecutorFeePaid","anonymous":false},{"inputs":[{"internalType":"address","name":"lzToken","type":"address","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"LzTokenFeeWithdrawn","anonymous":false},{"inputs":[{"internalType":"address","name":"worker","type":"address","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"NativeFeeWithdrawn","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newTreasuryNativeFeeCap","type":"uint256","indexed":false}],"type":"event","name":"TreasuryNativeFeeCapSet","anonymous":false},{"inputs":[{"internalType":"address","name":"treasury","type":"address","indexed":false}],"type":"event","name":"TreasurySet","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address"},{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"executorConfigs","outputs":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]},{"inputs":[{"internalType":"address","name":"worker","type":"address"}],"stateMutability":"view","type":"function","name":"fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"config","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getExecutorConfig","outputs":[{"internalType":"struct ExecutorConfig","name":"rtnConfig","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct Packet","name":"_packet","type":"tuple","components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}]},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quote","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct Packet","name":"_packet","type":"tuple","components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}]},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_config","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"struct SetDefaultExecutorConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct ExecutorConfig","name":"config","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"setDefaultExecutorConfigs"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTreasury"},{"inputs":[{"internalType":"uint256","name":"_newTreasuryNativeFeeCap","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setTreasuryNativeFeeCap"},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"},{"inputs":[{"internalType":"address","name":"_lzToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawLzTokenFee"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setTreasuryNativeFeeCap(uint256)":{"details":"the new value can not be greater than the old value, i.e. down only"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"withdrawFee(address,uint256)":{"details":"E2 only"},"withdrawLzTokenFee(address,address,uint256)":{"details":"_lzToken is a user-supplied value because lzToken might change in the endpoint before all lzToken can be taken outE2 onlytreasury only function"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol":"SendLibBaseE2"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol":{"keccak256":"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1","urls":["bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4","dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol":{"keccak256":"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e","urls":["bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497","dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":{"keccak256":"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345","urls":["bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5","dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":{"keccak256":"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d","urls":["bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89","dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/packages/onft-evm/out/SendUln302Mock.sol/SendUln302Mock.json b/packages/onft-evm/out/SendUln302Mock.sol/SendUln302Mock.json deleted file mode 100644 index 9d8c9bbc5..000000000 --- a/packages/onft-evm/out/SendUln302Mock.sol/SendUln302Mock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_verifyHelper","type":"address","internalType":"address payable"},{"name":"_endpoint","type":"address","internalType":"address"},{"name":"_treasuryGasCap","type":"uint256","internalType":"uint256"},{"name":"_treasuryGasForFeeCap","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"executorConfigs","inputs":[{"name":"oapp","type":"address","internalType":"address"},{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"fees","inputs":[{"name":"worker","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAppUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getConfig","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_oapp","type":"address","internalType":"address"},{"name":"_configType","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getExecutorConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"rtnConfig","type":"tuple","internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"rtnConfig","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"messageLibType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum MessageLibType"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_packet","type":"tuple","internalType":"struct Packet","components":[{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_packet","type":"tuple","internalType":"struct Packet","components":[{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"encodedPacket","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"setConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_params","type":"tuple[]","internalType":"struct SetConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"configType","type":"uint32","internalType":"uint32"},{"name":"config","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultExecutorConfigs","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct SetDefaultExecutorConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultUlnConfigs","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTreasury","inputs":[{"name":"_treasury","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTreasuryNativeFeeCap","inputs":[{"name":"_newTreasuryNativeFeeCap","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"testHelper","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract TestHelperOz5"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"endpointVersion","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawLzTokenFee","inputs":[{"name":"_lzToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DVNFeePaid","inputs":[{"name":"requiredDVNs","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"fees","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"DefaultExecutorConfigsSet","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct SetDefaultExecutorConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}]}],"anonymous":false},{"type":"event","name":"DefaultUlnConfigsSet","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"anonymous":false},{"type":"event","name":"ExecutorConfigSet","inputs":[{"name":"oapp","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"config","type":"tuple","indexed":false,"internalType":"struct ExecutorConfig","components":[{"name":"maxMessageSize","type":"uint32","internalType":"uint32"},{"name":"executor","type":"address","internalType":"address"}]}],"anonymous":false},{"type":"event","name":"ExecutorFeePaid","inputs":[{"name":"executor","type":"address","indexed":false,"internalType":"address"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"LzTokenFeeWithdrawn","inputs":[{"name":"lzToken","type":"address","indexed":false,"internalType":"address"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NativeFeeWithdrawn","inputs":[{"name":"worker","type":"address","indexed":false,"internalType":"address"},{"name":"receiver","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TreasuryNativeFeeCapSet","inputs":[{"name":"newTreasuryNativeFeeCap","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TreasurySet","inputs":[{"name":"treasury","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UlnConfigSet","inputs":[{"name":"oapp","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"config","type":"tuple","indexed":false,"internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"DVN_InvalidDVNIdx","inputs":[]},{"type":"error","name":"DVN_InvalidDVNOptions","inputs":[{"name":"cursor","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"LZ_MessageLib_CannotWithdrawAltToken","inputs":[]},{"type":"error","name":"LZ_MessageLib_InvalidAmount","inputs":[{"name":"requested","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_MessageLib_InvalidExecutor","inputs":[]},{"type":"error","name":"LZ_MessageLib_InvalidMessageSize","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_MessageLib_NotTreasury","inputs":[]},{"type":"error","name":"LZ_MessageLib_OnlyEndpoint","inputs":[]},{"type":"error","name":"LZ_MessageLib_TransferFailed","inputs":[]},{"type":"error","name":"LZ_MessageLib_ZeroMessageSize","inputs":[]},{"type":"error","name":"LZ_ULN_AtLeastOneDVN","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidConfigType","inputs":[{"name":"configType","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"LZ_ULN_InvalidConfirmations","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidLegacyType1Option","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidLegacyType2Option","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidWorkerId","inputs":[{"name":"workerId","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"LZ_ULN_InvalidWorkerOptions","inputs":[{"name":"cursor","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_ULN_Unsorted","inputs":[]},{"type":"error","name":"LZ_ULN_UnsupportedEid","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"LZ_ULN_UnsupportedOptionType","inputs":[{"name":"optionType","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b5060405162004ac038038062004ac083398101604081905262000034916200018b565b82828282836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000077573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009d9190620001d8565b6001600160a01b03821660805263ffffffff811660a05283833380620000dd57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000e88162000122565b5060c0919091526002555050600680546001600160a01b0319166001600160a01b0398909816979097179096555062000207945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200018857600080fd5b50565b60008060008060808587031215620001a257600080fd5b8451620001af8162000172565b6020860151909450620001c28162000172565b6040860151606090960151949790965092505050565b600060208284031215620001eb57600080fd5b815163ffffffff811681146200020057600080fd5b9392505050565b60805160a05160c0516148706200025060003960008181611d100152611e730152600050506000818161069a0152818161079f015281816112b101526117d901526148706000f3fe60806040526004361061014f5760003560e01c806361d027b3116100b6578063d15b0d491161006f578063d15b0d4914610450578063d80e9bd914610470578063f0f442601461049d578063f2fde38b146104bd578063faaebd21146104dd578063fd9be5221461051857600080fd5b806361d027b3146103905780636750cd4c146103b0578063715018a6146103d05780638da5cb5b146103e55780639c33abf714610403578063c14c43491461043057600080fd5b806329460b0b1161010857806329460b0b1461025357806339e3f938146102735780634389e58f146102a057806343ea4fa9146102ce5780634d963200146102ee57806354fd4d501461036357600080fd5b806301ffc9a71461015b5780630e97289b14610190578063188183f4146101c85780631881d94d146101f5578063200175f71461021157806320efd7221461023357600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b6101763660046136fd565b610538565b60405190151581526020015b60405180910390f35b34801561019c57600080fd5b506006546101b0906001600160a01b031681565b6040516001600160a01b039091168152602001610187565b3480156101d457600080fd5b506101e86101e3366004613769565b61058a565b60405161018791906137a2565b34801561020157600080fd5b50600060405161018791906137c8565b34801561021d57600080fd5b5061023161022c3660046137f0565b610663565b005b34801561023f57600080fd5b5061023161024e366004613875565b61079d565b34801561025f57600080fd5b5061023161026e3660046138c9565b610912565b34801561027f57600080fd5b5061029361028e366004613769565b610aaa565b60405161018791906139c0565b3480156102ac57600080fd5b506102c06102bb3660046139ec565b610be5565b604051610187929190613aeb565b3480156102da57600080fd5b506102936102e9366004613769565b610c7a565b3480156102fa57600080fd5b5061033f610309366004613769565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160a01b031682565b6040805163ffffffff90931683526001600160a01b03909116602083015201610187565b34801561036f57600080fd5b50604080516003815260006020820152600291810191909152606001610187565b34801561039c57600080fd5b506003546101b0906001600160a01b031681565b3480156103bc57600080fd5b5061017b6103cb366004613b0f565b610f86565b3480156103dc57600080fd5b50610231610f91565b3480156103f157600080fd5b506000546001600160a01b03166101b0565b34801561040f57600080fd5b5061042361041e366004613b2c565b610fa5565b6040516101879190613b77565b34801561043c57600080fd5b5061023161044b366004613b8a565b611037565b34801561045c57600080fd5b5061023161046b366004613bfe565b611170565b34801561047c57600080fd5b5061049061048b3660046139ec565b6111e5565b6040516101879190613c17565b3480156104a957600080fd5b506102316104b8366004613c2e565b611255565b3480156104c957600080fd5b506102316104d8366004613c2e565b611269565b3480156104e957600080fd5b5061050a6104f8366004613c2e565b60056020526000908152604090205481565b604051908152602001610187565b34801561052457600080fd5b50610231610533366004613c4b565b6112a4565b60006001600160e01b031982166325fc096160e21b148061056957506001600160e01b0319821663b6e9ace360e01b145b8061058457506301ffc9a760e01b6001600160e01b03198316145b92915050565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec602090815260408083206001600160a01b038916845260048352818420948452939091528120805492939092169081900361060e57825463ffffffff16610610565b805b63ffffffff168452815464010000000090046001600160a01b03168061064857835464010000000090046001600160a01b031661064a565b805b6001600160a01b03166020860152509295945050505050565b6003546001600160a01b0316331461068e5760405163885762a760e01b815260040160405180910390fd5b826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071a9190613c77565b6001600160a01b031603610741576040516339a5741160e21b815260040160405180910390fd5b61074c838383611384565b604080516001600160a01b038086168252841660208201529081018290527fe081464b7278501267de69fa85b7b9560b0ae05d5fbfaab9b1986c70356e2efe906060015b60405180910390a1505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107e65760405163467409c360e01b815260040160405180910390fd5b60005b8181101561090c573683838381811061080457610804613c94565b90506020028101906108169190613caa565b905061082d6108286020830183613b0f565b6113c4565b600161083f6040830160208401613b0f565b63ffffffff160361087f5761087a61085a6020830183613b0f565b866108686040850185613cca565b8101906108759190613da0565b6113f2565b610903565b60026108916040830160208401613b0f565b63ffffffff16036108cc5761087a6108ac6020830183613b0f565b866108ba6040850185613cca565b8101906108c79190613f60565b61147a565b6108dc6040820160208301613b0f565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016107e9565b50505050565b61091a6114c3565b60005b81811015610a6c573683838381811061093857610938613c94565b905060200281019061094a9190613f94565b905060ff61095b6020830183613faa565b61096c906040810190602001613fc0565b60ff160361098d576040516341d50bed60e11b815260040160405180910390fd5b60ff61099c6020830183613faa565b6109ad906060810190604001613fc0565b60ff16036109ce5760405163211089b360e11b815260040160405180910390fd5b6001600160401b036109e36020830183613faa565b6109f1906020810190613fdb565b6001600160401b031603610a185760405163281b33d760e11b815260040160405180910390fd5b610a36610a286020830183613faa565b610a3190613ff6565b6114f0565b610a636000610a486020840184613b0f565b610a556020850185613faa565b610a5e90613ff6565b611528565b5060010161091d565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610a9e929190614088565b60405180910390a15050565b610ab2613644565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610b7257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b54575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610bd457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bb6575b505050505081525050905092915050565b60408051808201909152600080825260208201526060610c07868686866117c1565b600654604051631f5dad8b60e31b81529294509092506001600160a01b03169063faed6c5890610c3f908490899089906004016141cd565b600060405180830381600087803b158015610c5957600080fd5b505af1158015610c6d573d6000803e3d6000fd5b5050505094509492505050565b610c82613644565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b031680610cf75782546001600160401b03168452610d14565b6001600160401b0381811614610d14576001600160401b03811684525b8154600160401b900460ff16610dae578254600160401b900460ff1615610da95782600101805480602002602001604051908101604052809291908181526020018280548015610d8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d6f575b505050505060808501528254600160401b900460ff1660208501525b610e35565b8154600160401b900460ff90811614610e355781600101805480602002602001604051908101604052809291908181526020018280548015610e1957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610dfb575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610ede578254600160481b900460ff1615610ed95782600201805480602002602001604051908101604052809291908181526020018280548015610eae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e90575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610f74565b8154600160481b900460ff90811614610f745781600201805480602002602001604051908101604052809291908181526020018280548015610f4957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f2b575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610f7d846114f0565b50505092915050565b600061058482611895565b610f996114c3565b610fa360006118f0565b565b606060001963ffffffff831601610fe657610fc0838561058a565b604051602001610fd091906137a2565b6040516020818303038152906040529050611030565b60011963ffffffff83160161100f57610fff8385610c7a565b604051602001610fd091906139c0565b604051635d4be0fd60e11b815263ffffffff831660048201526024016108fa565b9392505050565b61103f6114c3565b60005b8181101561113e573683838381811061105d5761105d613c94565b606090810292909201925060009161107b9150830160408401613c2e565b6001600160a01b0316036110a257604051631074e82d60e11b815260040160405180910390fd5b6110b26040820160208301613b0f565b63ffffffff166000036110d8576040516349cfac4360e01b815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec906111138385613b0f565b63ffffffff16815260208101919091526040016000206111338282614213565b505050600101611042565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610a9e92919061426c565b6111786114c3565b6002548111156111a95760025460405163068109f760e31b81526108fa918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b7842906020015b60405180910390a150565b604080518082019091526000808252602082015260008061123661120f6060890160408a01613c2e565b61121f60808a0160608b01613b0f565b61122c60c08b018b613cca565b9050878a8a611940565b604080518082019091529182526020820152925050505b949350505050565b61125d6114c3565b61126681611a39565b50565b6112716114c3565b6001600160a01b03811661129b57604051631e4fbdf760e01b8152600060048201526024016108fa565b611266816118f0565b6112ad81611a87565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561130d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113319190613c77565b905061133e818484611ad8565b604080513381526001600160a01b03851660208201529081018390527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610790565b6001600160a01b0382166113ab576040516306b7a93160e41b815260040160405180910390fd5b6113bf6001600160a01b0384168383611afb565b505050565b6113cd81611895565b61126657604051633c30434160e21b815263ffffffff821660048201526024016108fa565b6001600160a01b03808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000026001600160c01b03199093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc80590610790908490869085906142ec565b611485828483611528565b61148f8284610c7a565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516107909392919061432e565b6000546001600160a01b03163314610fa35760405163118cdaa760e01b81523360048201526024016108fa565b602081015160ff1615801561150a5750606081015160ff16155b156112665760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806115435750602081015160ff16155b15611571576080810151511561156c576040516341d50bed60e11b815260040160405180910390fd5b6115d7565b806020015160ff168160800151511415806115ac57506002611595600160ff614374565b61159f919061438d565b60ff16816020015160ff16115b156115ca576040516341d50bed60e11b815260040160405180910390fd5b6115d78160800151611b4d565b604081015160ff90811614806115f25750604081015160ff16155b156116465760a0810151511561161b5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615611641576040516338682fa960e01b815260040160405180910390fd5b6116eb565b806040015160ff168160a00151511415806116815750600261166a600160ff614374565b611674919061438d565b60ff16816040015160ff16115b1561169f5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615806116c05750806040015160ff16816060015160ff16115b156116de576040516338682fa960e01b815260040160405180910390fd5b6116eb8160a00151611b4d565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361179d9390850192019061368c565b5060a082015180516117b991600284019160209091019061368c565b505050505050565b604080518082019091526000808252602082015260607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118205760405163467409c360e01b815260040160405180910390fd5b60008061182e888888611bb4565b909250905060008061186061184960608c0160408d01613c2e565b61185960808d0160608e01613b0f565b858a611c81565b909250905061186f82846143bd565b604080518082019091529081526020810191909152945091925050505b94509492505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580611030575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000806119508686611d8f565b9150915060006119618b8b84611da8565b9050600061196f8c8c61058a565b90506119858a826000015163ffffffff16611db5565b80602001516001600160a01b031663709eb6648c8e8d886040518563ffffffff1660e01b81526004016119bb94939291906143d0565b602060405180830381865afa1580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614403565b611a0690836143bd565b9150600080611a178e8e868e611de4565b9092509050611a2682856143bd565b9e909d509b505050505050505050505050565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f906020016111da565b3360009081526005602052604090205480821115611ac25760405163068109f760e31b815260048101839052602481018290526044016108fa565b3360009081526005602052604090209190039055565b6001600160a01b038316611af0576113bf8282611eb5565b6113bf838383611384565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113bf908490611f62565b6000805b82518110156113bf576000838281518110611b6e57611b6e613c94565b60200260200101519050826001600160a01b0316816001600160a01b031611611baa5760405163447516e160e01b815260040160405180910390fd5b9150600101611b51565b60606000806000611bc58686611d8f565b90925090506000611bef611bdf60608a0160408b01613c2e565b6101e360808b0160608c01613b0f565b90506000611c0060c08a018a613cca565b90509050611c1881836000015163ffffffff16611db5565b6020820151611c4890611c3160808c0160608d01613b0f565b611c4160608d0160408e01613c2e565b8488611fc5565b611c5290866143bd565b9450600080611c618b866120be565b9092509050611c7082886143bd565b909b909a5098505050505050505050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b0316636a8e2a4360e11b1790526003549192506000918291611d38916001600160a01b0316907f0000000000000000000000000000000000000000000000000000000000000000908490876120e1565b91509150611d4887878484612191565b90955093508415611d83576003546001600160a01b031660009081526005602052604081208054879290611d7d9084906143bd565b90915550505b50505094509492505050565b606080611d9c848461220c565b915091505b9250929050565b600061124d8484846122f9565b80821115611de057604051636333d79f60e11b815260048101839052602481018290526044016108fa565b5050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b031663d424422160e01b1790526003549192506000918291611e99916001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000009086612373565b91509150611ea987878484612191565b9450945050505061188c565b6001600160a01b038216611edc576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611f29576040519150601f19603f3d011682016040523d82523d6000602084013e611f2e565b606091505b50509050806113bf57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016108fa565b6000611f776001600160a01b0384168361241f565b90508051600014158015611f9c575080806020019051810190611f9a919061441c565b155b156113bf57604051635274afe760e01b81526001600160a01b03841660048201526024016108fa565b6040516338bf452160e11b81526000906001600160a01b0387169063717e8a4290611ffa9088908890889088906004016143d0565b6020604051808303816000875af1158015612019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203d9190614403565b90508015612073576001600160a01b0386166000908152600560205260408120805483929061206d9084906143bd565b90915550505b604080516001600160a01b0388168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b600060606120d660056120d0866144a8565b8561242d565b909590945092505050565b60006060863b80830361210857604080516000808252602082019092529250925050612187565b60008060008761ffff166001600160401b0381111561212957612129613d10565b6040519080825280601f01601f191660200182016040528015612153576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612174578792505b828152826000602083013e909450925050505b9550959350505050565b6000808315806121a2575082516020115b156121b25750600090508061188c565b6000838060200190518101906121c89190614403565b905085156121d857809150612202565b600060025488116121eb576002546121ed565b875b90508082116121fc57816121fe565b805b9350505b5094509492505050565b60608060008061221c868661257b565b91509150805160000361227457604080516000808252602082019092528391612268565b6040805180820190915260008152606060208201528152602001906001900390816122405790505b50935093505050611da1565b604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908161228b5790505090506040518060400160405280600260ff16815260200183815250816000815181106122e1576122e1613c94565b60209081029190910101529196919550909350505050565b6000806123068585610c7a565b905060008351600014612337578360008151811061232657612326613c94565b602002602001015160200151612348565b604051806020016040528060008152505b90506000806123568361273a565b9150915061236784888a85856129a0565b98975050505050505050565b60006060853b80830361239a5760408051600080825260208201909252925092505061188c565b60008060008761ffff166001600160401b038111156123bb576123bb613d10565b6040519080825280601f01601f1916602001820160405280156123e5576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612405578792505b828152826000602083013e90999098509650505050505050565b606061103083836000612b38565b60006060600061243c85612bd5565b9050600061244986612c62565b80516020820120606088015160408901519293509091600061246b8284610c7a565b90506000895160001461249c578960008151811061248b5761248b613c94565b6020026020010151602001516124ad565b604051806020016040528060008152505b905060606124ff8d846040518060a001604052808963ffffffff1681526020018c81526020018a815260200187600001516001600160401b03168152602001886001600160a01b031681525085612c7f565b604051919b5091506125179089908990602001614545565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a001518360405161256393929190614574565b60405180910390a15050505050505050935093915050565b60608060028310156125a35760405163196499c760e21b8152600060048201526024016108fa565b60006125b260028286886145d2565b6125bb916145fc565b60f01c905060026002198201612723578060005b868310156126c85760006125e860018501858a8c6145d2565b6125f19161462c565b60f81c9050600081900361261b57604051636780cfaf60e01b8152600060048201526024016108fa565b8160ff1660000361262e5780915061266b565b8160ff168160ff161461266b5736600061264a86868c8e6145d2565b9150915061265b8989868585612f1d565b9099509750859450919250829150505b600184019360009061268290600301868b8d6145d2565b61268b916145fc565b60f01c905060008190036126b55760405163196499c760e21b8152600481018690526024016108fa565b8060020161ffff168501945050506125cf565b8287146126eb5760405163196499c760e21b8152600481018490526024016108fa565b600287111561271c5736600061270385858b8d6145d2565b915091506127148888858585612f1d565b909850965050505b5050612731565b61272e82878761303d565b93505b50509250929050565b606080825160000361274b57915091565b6000612756846131c8565b90508060ff166001036128085760408051600180825281830190925290816020015b606081526020019060019003908161277857905050925083836000815181106127a3576127a3613c94565b6020908102919091010152604080516001808252818301909252908160200160208202803683370190505091506127db8460036132a2565b826000815181106127ee576127ee613c94565b602002602001019060ff16908160ff168152505050915091565b8060ff166001600160401b0381111561282357612823613d10565b60405190808252806020026020018201604052801561284c578160200160208202803683370190505b5091508060ff166001600160401b0381111561286a5761286a613d10565b60405190808252806020026020018201604052801561289d57816020015b60608152602001906001900390816128885790505b50925060008060ff5b86518310156129335760019092019160006128c188856132fe565b60029490940193905060006128d689866132a2565b90508260ff1660ff036128eb57809250612924565b8260ff168160ff16146129245760021984860301600061290c8b878461335b565b905061291a8a8a8784613468565b5093909301929150815b5061ffff1692909201916128a6565b818303600061294389858461335b565b905061295188888584613468565b60005b8660ff168160ff16101561299457878160ff168151811061297757612977613c94565b6020908102919091010180516000190160ff169052600101612954565b50505050505050915091565b600080866040015187602001516129b7919061465a565b905060005b8160ff168160ff161015612b2d576000886020015160ff168260ff1610612a115760a089015160208a01516129f19084614374565b60ff1681518110612a0457612a04613c94565b6020026020010151612a33565b88608001518260ff1681518110612a2a57612a2a613c94565b60200260200101515b60408051602081019091526000808252919250905b8651811015612aa0578360ff16878281518110612a6757612a67613c94565b602002602001015160ff1603612a9857878181518110612a8957612a89613c94565b60200260200101519150612aa0565b600101612a48565b508951604051630c2eceab60e21b81526001600160a01b038416916330bb3aac91612ad3918d918d908790600401614673565b602060405180830381865afa158015612af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b149190614403565b612b1e90866143bd565b945050508060010190506129bc565b505095945050505050565b606081471015612b5d5760405163cd78605960e01b81523060048201526024016108fa565b600080856001600160a01b03168486604051612b7991906146b2565b60006040518083038185875af1925050503d8060008114612bb6576040519150601f19603f3d011682016040523d82523d6000602084013e612bbb565b606091505b5091509150612bcb86838361357e565b9695505050505050565b805160208083015160408085015160608087015160808801519351600160f81b9681019690965260c09690961b6001600160c01b031916602186015260e093841b6001600160e01b031990811660298701526001600160a01b03909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c00151604051602001612c4c9291906146c4565b60006060600080612c8f8561273a565b91509150600087604001518860200151612ca9919061465a565b90508060ff166001600160401b03811115612cc657612cc6613d10565b604051908082528060200260200182016040528015612cef578160200160208202803683370190505b50935060005b8160ff168160ff161015610c6d576000896020015160ff168260ff1610612d4a5760a08a015160208b0151612d2a9084614374565b60ff1681518110612d3d57612d3d613c94565b6020026020010151612d6c565b89608001518260ff1681518110612d6357612d63613c94565b60200260200101515b60408051602081019091526000808252919250905b8551811015612dd9578360ff16868281518110612da057612da0613c94565b602002602001015160ff1603612dd157868181518110612dc257612dc2613c94565b60200260200101519150612dd9565b600101612d81565b506040516395d376d760e01b81526001600160a01b038316906395d376d790612e08908d9085906004016146ea565b6020604051808303816000875af1158015612e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4b9190614403565b878460ff1681518110612e6057612e60613c94565b6020026020010181815250506000878460ff1681518110612e8357612e83613c94565b60200260200101511115612f1357868360ff1681518110612ea657612ea6613c94565b60200260200101518c6000846001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ee191906143bd565b92505081905550868360ff1681518110612efd57612efd613c94565b602002602001015188612f1091906143bd565b97505b5050600101612cf5565b60608060001960ff861601612f9a57865115612f5c57868484604051602001612f489392919061475c565b604051602081830303815290604052612f93565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613032565b60011960ff86160161301457855115612fd657858484604051602001612fc29392919061475c565b60405160208183030381529060405261300d565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613032565b604051636780cfaf60e01b815260ff861660048201526024016108fa565b509495939450505050565b606060001961ffff8516016130dd576022821461306d576040516301b8ca5560e31b815260040160405180910390fd5b600061308e6130806022600286886145d2565b61308991614784565b6135da565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b166024820152909150603401604051602081830303815290604052915050611030565b60011961ffff8516016131a9576042821115806130fa5750606282115b15613118576040516360493e2b60e11b815260040160405180910390fd5b600061312b6130806022600286886145d2565b905060006131406130806042602287896145d2565b905060006041198501613156866042818a6145d2565b61315f91614784565b60405160086020938403029190911c9250613190916001916011918391889183916031916002918b918b91016147a2565b6040516020818303038152906040529350505050611030565b604051630417051360e41b815261ffff851660048201526024016108fa565b600080805b83518210156132775760019091019060006131e885846132fe565b905060028301925060028161ffff1610156132195760405163013adb8360e21b8152600481018490526024016108fa565b600061322586856132a2565b90508060ff1660ff0361324b576040516334f4f66f60e21b815260040160405180910390fd5b600160ff82161b83166132685760019485019460ff82161b831792505b5061ffff1691909101906131cd565b8351821461329b5760405163013adb8360e21b8152600481018390526024016108fa565b5050919050565b60006132af8260016143bd565b835110156132f55760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b60448201526064016108fa565b50016001015190565b600061330b8260026143bd565b835110156133525760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b60448201526064016108fa565b50016002015190565b60608161336981601f6143bd565b10156133a85760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016108fa565b6133b282846143bd565b845110156133f65760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016108fa565b606082158015613415576040519150600082526020820160405261345f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561344e578051835260209283019201613436565b5050858452601f01601f1916604052505b50949350505050565b8160ff1660ff0361348c576040516334f4f66f60e21b815260040160405180910390fd5b600061349983600161465a565b905060005b84518110156117b95760008582815181106134bb576134bb613c94565b602002602001015190508060ff168360ff1603613530578682815181106134e4576134e4613c94565b6020026020010151846040516020016134fe929190614545565b60405160208183030381529060405287838151811061351f5761351f613c94565b6020026020010181905250506117b9565b8060ff16600003613575578286838151811061354e5761354e613c94565b602002602001019060ff16908160ff16815250508387838151811061351f5761351f613c94565b5060010161349e565b6060826135935761358e8261361b565b611030565b81511580156135aa57506001600160a01b0384163b155b156135d357604051639996b31560e01b81526001600160a01b03851660048201526024016108fa565b5080611030565b60006fffffffffffffffffffffffffffffffff821115613617576040516306dfcc6560e41b815260806004820152602481018390526044016108fa565b5090565b80511561362b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156136e1579160200282015b828111156136e157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906136ac565b506136179291505b8082111561361757600081556001016136e9565b60006020828403121561370f57600080fd5b81356001600160e01b03198116811461103057600080fd5b6001600160a01b038116811461126657600080fd5b803561374781613727565b919050565b63ffffffff8116811461126657600080fd5b80356137478161374c565b6000806040838503121561377c57600080fd5b823561378781613727565b915060208301356137978161374c565b809150509250929050565b815163ffffffff1681526020808301516001600160a01b03169082015260408101610584565b60208101600383106137ea57634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006060848603121561380557600080fd5b833561381081613727565b9250602084013561382081613727565b929592945050506040919091013590565b60008083601f84011261384357600080fd5b5081356001600160401b0381111561385a57600080fd5b6020830191508360208260051b8501011115611da157600080fd5b60008060006040848603121561388a57600080fd5b833561389581613727565b925060208401356001600160401b038111156138b057600080fd5b6138bc86828701613831565b9497909650939450505050565b600080602083850312156138dc57600080fd5b82356001600160401b038111156138f257600080fd5b6138fe85828601613831565b90969095509350505050565b60008151808452602080850194506020840160005b838110156139445781516001600160a01b03168752958201959082019060010161391f565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261399e60c085018261390a565b905060a083015184820360a08601526139b7828261390a565b95945050505050565b602081526000611030602083018461394f565b801515811461126657600080fd5b8035613747816139d3565b60008060008060608587031215613a0257600080fd5b84356001600160401b0380821115613a1957600080fd5b9086019060e08289031215613a2d57600080fd5b90945060208601359080821115613a4357600080fd5b818701915087601f830112613a5757600080fd5b813581811115613a6657600080fd5b886020828501011115613a7857600080fd5b602083019550809450505050613a90604086016139e1565b905092959194509250565b60005b83811015613ab6578181015183820152602001613a9e565b50506000910152565b60008151808452613ad7816020860160208601613a9b565b601f01601f19169290920160200192915050565b825181526020808401519082015260606040820152600061124d6060830184613abf565b600060208284031215613b2157600080fd5b81356110308161374c565b600080600060608486031215613b4157600080fd5b8335613b4c8161374c565b92506020840135613b5c81613727565b91506040840135613b6c8161374c565b809150509250925092565b6020815260006110306020830184613abf565b60008060208385031215613b9d57600080fd5b82356001600160401b0380821115613bb457600080fd5b818501915085601f830112613bc857600080fd5b813581811115613bd757600080fd5b866020606083028501011115613bec57600080fd5b60209290920196919550909350505050565b600060208284031215613c1057600080fd5b5035919050565b815181526020808301519082015260408101610584565b600060208284031215613c4057600080fd5b813561103081613727565b60008060408385031215613c5e57600080fd5b8235613c6981613727565b946020939093013593505050565b600060208284031215613c8957600080fd5b815161103081613727565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112613cc057600080fd5b9190910192915050565b6000808335601e19843603018112613ce157600080fd5b8301803591506001600160401b03821115613cfb57600080fd5b602001915036819003821315611da157600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715613d4857613d48613d10565b60405290565b60405160e081016001600160401b0381118282101715613d4857613d48613d10565b604051601f8201601f191681016001600160401b0381118282101715613d9857613d98613d10565b604052919050565b600060408284031215613db257600080fd5b604051604081018181106001600160401b0382111715613dd457613dd4613d10565b6040528235613de28161374c565b81526020830135613df281613727565b60208201529392505050565b80356001600160401b038116811461374757600080fd5b803560ff8116811461374757600080fd5b600082601f830112613e3757600080fd5b813560206001600160401b03821115613e5257613e52613d10565b8160051b613e61828201613d70565b9283528481018201928281019087851115613e7b57600080fd5b83870192505b84831015613ea3578235613e9481613727565b82529183019190830190613e81565b979650505050505050565b600060c08284031215613ec057600080fd5b613ec8613d26565b9050613ed382613dfe565b8152613ee160208301613e15565b6020820152613ef260408301613e15565b6040820152613f0360608301613e15565b606082015260808201356001600160401b0380821115613f2257600080fd5b613f2e85838601613e26565b608084015260a0840135915080821115613f4757600080fd5b50613f5484828501613e26565b60a08301525092915050565b600060208284031215613f7257600080fd5b81356001600160401b03811115613f8857600080fd5b61124d84828501613eae565b60008235603e19833603018112613cc057600080fd5b6000823560be19833603018112613cc057600080fd5b600060208284031215613fd257600080fd5b61103082613e15565b600060208284031215613fed57600080fd5b61103082613dfe565b60006105843683613eae565b6000808335601e1984360301811261401957600080fd5b83016020810192503590506001600160401b0381111561403857600080fd5b8060051b3603821315611da157600080fd5b8183526000602080850194508260005b8581101561394457813561406d81613727565b6001600160a01b03168752958201959082019060010161405a565b60208082528181018390526000906040808401600586901b8501820187855b888110156141bf57603f19808985030185528235603e198c36030181126140cd57600080fd5b8b0180356140da8161374c565b63ffffffff168552808801353682900360be190181126140f957600080fd5b858901889052016001600160401b0361411182613dfe565b1687860152614121888201613e15565b606060ff808316828901526141378a8501613e15565b92506080818416818a015261414d838601613e15565b935060a09250818416838a015261416681860186614002565b60c08b8101529450915061418190506101008901848361404a565b92505061419081840184614002565b93509050838783030160e08801526141a982848361404a565b978a0197965050509287019250506001016140a7565b509098975050505050505050565b6040815260006141e06040830186613abf565b8281036020840152838152838560208301376000602085830101526020601f19601f860116820101915050949350505050565b813561421e8161374c565b63ffffffff8116905081548163ffffffff198216178355602084013561424381613727565b6001600160c01b03199190911690911760209190911b640100000000600160c01b031617905550565b6020808252818101839052600090604080840186845b878110156142df5781356142958161374c565b63ffffffff908116845282860135906142ad8261374c565b1683860152818401356142bf81613727565b6001600160a01b0316838501526060928301929190910190600101614282565b5090979650505050505050565b6001600160a01b038416815263ffffffff831660208201526080810161124d6040830184805163ffffffff1682526020908101516001600160a01b0316910152565b6001600160a01b038416815263ffffffff831660208201526060604082018190526000906139b79083018461394f565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156105845761058461435e565b600060ff8316806143ae57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b808201808211156105845761058461435e565b63ffffffff8516815260018060a01b0384166020820152826040820152608060608201526000612bcb6080830184613abf565b60006020828403121561441557600080fd5b5051919050565b60006020828403121561442e57600080fd5b8151611030816139d3565b600082601f83011261444a57600080fd5b81356001600160401b0381111561446357614463613d10565b614476601f8201601f1916602001613d70565b81815284602083860101111561448b57600080fd5b816020850160208301376000918101602001919091529392505050565b600060e082360312156144ba57600080fd5b6144c2613d4e565b6144cb83613dfe565b81526144d96020840161375e565b60208201526144ea6040840161373c565b60408201526144fb6060840161375e565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b0381111561452d57600080fd5b61453936828601614439565b60c08301525092915050565b60008351614557818460208801613a9b565b83519083019061456b818360208801613a9b565b01949350505050565b606081526000614587606083018661390a565b6020838203602085015261459b828761390a565b84810360408601528551808252602080880194509091019060005b818110156141bf578451835293830193918301916001016145b6565b600080858511156145e257600080fd5b838611156145ef57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156146245780818660020360031b1b83161692505b505092915050565b6001600160f81b031981358181169160018510156146245760019490940360031b84901b1690921692915050565b60ff81811683821601908111156105845761058461435e565b63ffffffff851681526001600160401b03841660208201526001600160a01b0383166040820152608060608201819052600090612bcb90830184613abf565b60008251613cc0818460208701613a9b565b828152600082516146dc816020850160208701613a9b565b919091016020019392505050565b6040815263ffffffff83511660408201526000602084015160a0606084015261471660e0840182613abf565b604086015160808581019190915260608701516001600160401b031660a08601528601516001600160a01b031660c0850152838103602085015290506139b78185613abf565b6000845161476e818460208901613a9b565b8201838582376000930192835250909392505050565b8035602083101561058457600019602084900360031b1b1692915050565b60f88a811b6001600160f81b0319908116835260f08b811b6001600160f01b031990811660018601528b841b8316600386015260808b901b6001600160801b031916600486015289841b831660148601529088901b1660158401529085901b1660178201526000614822601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea26469706673582212209c4e56d6c67105dfab95a5db652280357c444a31ddd8e746e20a46bf6d44b3bb64736f6c63430008160033","sourceMap":"982:3336:80:-:0;;;1275:299;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1465:9;1476:15;1493:21;1454:9:14;1486;-1:-1:-1;;;;;1465:35:14;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;468:20:11;;;;498;;;;;1504:17:14;1523:21;1439:10:80;;1269:95:105;;1322:31;;-1:-1:-1;;;1322:31:105;;1350:1;1322:31;;;1126:51:145;1099:18;;1322:31:105;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;2099:36:13::1;::::0;;;;2145:20:::1;:44:::0;-1:-1:-1;;1526:10:80::2;:41:::0;;-1:-1:-1;;;;;;1526:41:80::2;-1:-1:-1::0;;;;;1526:41:80;;;::::2;::::0;;;::::2;::::0;;;-1:-1:-1;982:3336:80;;-1:-1:-1;;;;;982:3336:80;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:139:145:-;-1:-1:-1;;;;;97:31:145;;87:42;;77:70;;143:1;140;133:12;77:70;14:139;:::o;158:532::-;263:6;271;279;287;340:3;328:9;319:7;315:23;311:33;308:53;;;357:1;354;347:12;308:53;389:9;383:16;408:39;441:5;408:39;:::i;:::-;516:2;501:18;;495:25;466:5;;-1:-1:-1;529:41:145;495:25;529:41;:::i;:::-;636:2;621:18;;615:25;680:2;665:18;;;659:25;158:532;;589:7;;-1:-1:-1;158:532:145;-1:-1:-1;;;158:532:145:o;695:280::-;764:6;817:2;805:9;796:7;792:23;788:32;785:52;;;833:1;830;823:12;785:52;865:9;859:16;915:10;908:5;904:22;897:5;894:33;884:61;;941:1;938;931:12;884:61;964:5;695:280;-1:-1:-1;;;695:280:145:o;980:203::-;982:3336:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061014f5760003560e01c806361d027b3116100b6578063d15b0d491161006f578063d15b0d4914610450578063d80e9bd914610470578063f0f442601461049d578063f2fde38b146104bd578063faaebd21146104dd578063fd9be5221461051857600080fd5b806361d027b3146103905780636750cd4c146103b0578063715018a6146103d05780638da5cb5b146103e55780639c33abf714610403578063c14c43491461043057600080fd5b806329460b0b1161010857806329460b0b1461025357806339e3f938146102735780634389e58f146102a057806343ea4fa9146102ce5780634d963200146102ee57806354fd4d501461036357600080fd5b806301ffc9a71461015b5780630e97289b14610190578063188183f4146101c85780631881d94d146101f5578063200175f71461021157806320efd7221461023357600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b6101763660046136fd565b610538565b60405190151581526020015b60405180910390f35b34801561019c57600080fd5b506006546101b0906001600160a01b031681565b6040516001600160a01b039091168152602001610187565b3480156101d457600080fd5b506101e86101e3366004613769565b61058a565b60405161018791906137a2565b34801561020157600080fd5b50600060405161018791906137c8565b34801561021d57600080fd5b5061023161022c3660046137f0565b610663565b005b34801561023f57600080fd5b5061023161024e366004613875565b61079d565b34801561025f57600080fd5b5061023161026e3660046138c9565b610912565b34801561027f57600080fd5b5061029361028e366004613769565b610aaa565b60405161018791906139c0565b3480156102ac57600080fd5b506102c06102bb3660046139ec565b610be5565b604051610187929190613aeb565b3480156102da57600080fd5b506102936102e9366004613769565b610c7a565b3480156102fa57600080fd5b5061033f610309366004613769565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160a01b031682565b6040805163ffffffff90931683526001600160a01b03909116602083015201610187565b34801561036f57600080fd5b50604080516003815260006020820152600291810191909152606001610187565b34801561039c57600080fd5b506003546101b0906001600160a01b031681565b3480156103bc57600080fd5b5061017b6103cb366004613b0f565b610f86565b3480156103dc57600080fd5b50610231610f91565b3480156103f157600080fd5b506000546001600160a01b03166101b0565b34801561040f57600080fd5b5061042361041e366004613b2c565b610fa5565b6040516101879190613b77565b34801561043c57600080fd5b5061023161044b366004613b8a565b611037565b34801561045c57600080fd5b5061023161046b366004613bfe565b611170565b34801561047c57600080fd5b5061049061048b3660046139ec565b6111e5565b6040516101879190613c17565b3480156104a957600080fd5b506102316104b8366004613c2e565b611255565b3480156104c957600080fd5b506102316104d8366004613c2e565b611269565b3480156104e957600080fd5b5061050a6104f8366004613c2e565b60056020526000908152604090205481565b604051908152602001610187565b34801561052457600080fd5b50610231610533366004613c4b565b6112a4565b60006001600160e01b031982166325fc096160e21b148061056957506001600160e01b0319821663b6e9ace360e01b145b8061058457506301ffc9a760e01b6001600160e01b03198316145b92915050565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec602090815260408083206001600160a01b038916845260048352818420948452939091528120805492939092169081900361060e57825463ffffffff16610610565b805b63ffffffff168452815464010000000090046001600160a01b03168061064857835464010000000090046001600160a01b031661064a565b805b6001600160a01b03166020860152509295945050505050565b6003546001600160a01b0316331461068e5760405163885762a760e01b815260040160405180910390fd5b826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071a9190613c77565b6001600160a01b031603610741576040516339a5741160e21b815260040160405180910390fd5b61074c838383611384565b604080516001600160a01b038086168252841660208201529081018290527fe081464b7278501267de69fa85b7b9560b0ae05d5fbfaab9b1986c70356e2efe906060015b60405180910390a1505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107e65760405163467409c360e01b815260040160405180910390fd5b60005b8181101561090c573683838381811061080457610804613c94565b90506020028101906108169190613caa565b905061082d6108286020830183613b0f565b6113c4565b600161083f6040830160208401613b0f565b63ffffffff160361087f5761087a61085a6020830183613b0f565b866108686040850185613cca565b8101906108759190613da0565b6113f2565b610903565b60026108916040830160208401613b0f565b63ffffffff16036108cc5761087a6108ac6020830183613b0f565b866108ba6040850185613cca565b8101906108c79190613f60565b61147a565b6108dc6040820160208301613b0f565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016107e9565b50505050565b61091a6114c3565b60005b81811015610a6c573683838381811061093857610938613c94565b905060200281019061094a9190613f94565b905060ff61095b6020830183613faa565b61096c906040810190602001613fc0565b60ff160361098d576040516341d50bed60e11b815260040160405180910390fd5b60ff61099c6020830183613faa565b6109ad906060810190604001613fc0565b60ff16036109ce5760405163211089b360e11b815260040160405180910390fd5b6001600160401b036109e36020830183613faa565b6109f1906020810190613fdb565b6001600160401b031603610a185760405163281b33d760e11b815260040160405180910390fd5b610a36610a286020830183613faa565b610a3190613ff6565b6114f0565b610a636000610a486020840184613b0f565b610a556020850185613faa565b610a5e90613ff6565b611528565b5060010161091d565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610a9e929190614088565b60405180910390a15050565b610ab2613644565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610b7257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b54575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610bd457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bb6575b505050505081525050905092915050565b60408051808201909152600080825260208201526060610c07868686866117c1565b600654604051631f5dad8b60e31b81529294509092506001600160a01b03169063faed6c5890610c3f908490899089906004016141cd565b600060405180830381600087803b158015610c5957600080fd5b505af1158015610c6d573d6000803e3d6000fd5b5050505094509492505050565b610c82613644565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b031680610cf75782546001600160401b03168452610d14565b6001600160401b0381811614610d14576001600160401b03811684525b8154600160401b900460ff16610dae578254600160401b900460ff1615610da95782600101805480602002602001604051908101604052809291908181526020018280548015610d8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d6f575b505050505060808501528254600160401b900460ff1660208501525b610e35565b8154600160401b900460ff90811614610e355781600101805480602002602001604051908101604052809291908181526020018280548015610e1957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610dfb575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610ede578254600160481b900460ff1615610ed95782600201805480602002602001604051908101604052809291908181526020018280548015610eae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e90575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610f74565b8154600160481b900460ff90811614610f745781600201805480602002602001604051908101604052809291908181526020018280548015610f4957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f2b575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610f7d846114f0565b50505092915050565b600061058482611895565b610f996114c3565b610fa360006118f0565b565b606060001963ffffffff831601610fe657610fc0838561058a565b604051602001610fd091906137a2565b6040516020818303038152906040529050611030565b60011963ffffffff83160161100f57610fff8385610c7a565b604051602001610fd091906139c0565b604051635d4be0fd60e11b815263ffffffff831660048201526024016108fa565b9392505050565b61103f6114c3565b60005b8181101561113e573683838381811061105d5761105d613c94565b606090810292909201925060009161107b9150830160408401613c2e565b6001600160a01b0316036110a257604051631074e82d60e11b815260040160405180910390fd5b6110b26040820160208301613b0f565b63ffffffff166000036110d8576040516349cfac4360e01b815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec906111138385613b0f565b63ffffffff16815260208101919091526040016000206111338282614213565b505050600101611042565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610a9e92919061426c565b6111786114c3565b6002548111156111a95760025460405163068109f760e31b81526108fa918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b7842906020015b60405180910390a150565b604080518082019091526000808252602082015260008061123661120f6060890160408a01613c2e565b61121f60808a0160608b01613b0f565b61122c60c08b018b613cca565b9050878a8a611940565b604080518082019091529182526020820152925050505b949350505050565b61125d6114c3565b61126681611a39565b50565b6112716114c3565b6001600160a01b03811661129b57604051631e4fbdf760e01b8152600060048201526024016108fa565b611266816118f0565b6112ad81611a87565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561130d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113319190613c77565b905061133e818484611ad8565b604080513381526001600160a01b03851660208201529081018390527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610790565b6001600160a01b0382166113ab576040516306b7a93160e41b815260040160405180910390fd5b6113bf6001600160a01b0384168383611afb565b505050565b6113cd81611895565b61126657604051633c30434160e21b815263ffffffff821660048201526024016108fa565b6001600160a01b03808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000026001600160c01b03199093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc80590610790908490869085906142ec565b611485828483611528565b61148f8284610c7a565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516107909392919061432e565b6000546001600160a01b03163314610fa35760405163118cdaa760e01b81523360048201526024016108fa565b602081015160ff1615801561150a5750606081015160ff16155b156112665760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806115435750602081015160ff16155b15611571576080810151511561156c576040516341d50bed60e11b815260040160405180910390fd5b6115d7565b806020015160ff168160800151511415806115ac57506002611595600160ff614374565b61159f919061438d565b60ff16816020015160ff16115b156115ca576040516341d50bed60e11b815260040160405180910390fd5b6115d78160800151611b4d565b604081015160ff90811614806115f25750604081015160ff16155b156116465760a0810151511561161b5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615611641576040516338682fa960e01b815260040160405180910390fd5b6116eb565b806040015160ff168160a00151511415806116815750600261166a600160ff614374565b611674919061438d565b60ff16816040015160ff16115b1561169f5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615806116c05750806040015160ff16816060015160ff16115b156116de576040516338682fa960e01b815260040160405180910390fd5b6116eb8160a00151611b4d565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361179d9390850192019061368c565b5060a082015180516117b991600284019160209091019061368c565b505050505050565b604080518082019091526000808252602082015260607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118205760405163467409c360e01b815260040160405180910390fd5b60008061182e888888611bb4565b909250905060008061186061184960608c0160408d01613c2e565b61185960808d0160608e01613b0f565b858a611c81565b909250905061186f82846143bd565b604080518082019091529081526020810191909152945091925050505b94509492505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580611030575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000806119508686611d8f565b9150915060006119618b8b84611da8565b9050600061196f8c8c61058a565b90506119858a826000015163ffffffff16611db5565b80602001516001600160a01b031663709eb6648c8e8d886040518563ffffffff1660e01b81526004016119bb94939291906143d0565b602060405180830381865afa1580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614403565b611a0690836143bd565b9150600080611a178e8e868e611de4565b9092509050611a2682856143bd565b9e909d509b505050505050505050505050565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f906020016111da565b3360009081526005602052604090205480821115611ac25760405163068109f760e31b815260048101839052602481018290526044016108fa565b3360009081526005602052604090209190039055565b6001600160a01b038316611af0576113bf8282611eb5565b6113bf838383611384565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113bf908490611f62565b6000805b82518110156113bf576000838281518110611b6e57611b6e613c94565b60200260200101519050826001600160a01b0316816001600160a01b031611611baa5760405163447516e160e01b815260040160405180910390fd5b9150600101611b51565b60606000806000611bc58686611d8f565b90925090506000611bef611bdf60608a0160408b01613c2e565b6101e360808b0160608c01613b0f565b90506000611c0060c08a018a613cca565b90509050611c1881836000015163ffffffff16611db5565b6020820151611c4890611c3160808c0160608d01613b0f565b611c4160608d0160408e01613c2e565b8488611fc5565b611c5290866143bd565b9450600080611c618b866120be565b9092509050611c7082886143bd565b909b909a5098505050505050505050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b0316636a8e2a4360e11b1790526003549192506000918291611d38916001600160a01b0316907f0000000000000000000000000000000000000000000000000000000000000000908490876120e1565b91509150611d4887878484612191565b90955093508415611d83576003546001600160a01b031660009081526005602052604081208054879290611d7d9084906143bd565b90915550505b50505094509492505050565b606080611d9c848461220c565b915091505b9250929050565b600061124d8484846122f9565b80821115611de057604051636333d79f60e11b815260048101839052602481018290526044016108fa565b5050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b031663d424422160e01b1790526003549192506000918291611e99916001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000009086612373565b91509150611ea987878484612191565b9450945050505061188c565b6001600160a01b038216611edc576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611f29576040519150601f19603f3d011682016040523d82523d6000602084013e611f2e565b606091505b50509050806113bf57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016108fa565b6000611f776001600160a01b0384168361241f565b90508051600014158015611f9c575080806020019051810190611f9a919061441c565b155b156113bf57604051635274afe760e01b81526001600160a01b03841660048201526024016108fa565b6040516338bf452160e11b81526000906001600160a01b0387169063717e8a4290611ffa9088908890889088906004016143d0565b6020604051808303816000875af1158015612019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203d9190614403565b90508015612073576001600160a01b0386166000908152600560205260408120805483929061206d9084906143bd565b90915550505b604080516001600160a01b0388168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b600060606120d660056120d0866144a8565b8561242d565b909590945092505050565b60006060863b80830361210857604080516000808252602082019092529250925050612187565b60008060008761ffff166001600160401b0381111561212957612129613d10565b6040519080825280601f01601f191660200182016040528015612153576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612174578792505b828152826000602083013e909450925050505b9550959350505050565b6000808315806121a2575082516020115b156121b25750600090508061188c565b6000838060200190518101906121c89190614403565b905085156121d857809150612202565b600060025488116121eb576002546121ed565b875b90508082116121fc57816121fe565b805b9350505b5094509492505050565b60608060008061221c868661257b565b91509150805160000361227457604080516000808252602082019092528391612268565b6040805180820190915260008152606060208201528152602001906001900390816122405790505b50935093505050611da1565b604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908161228b5790505090506040518060400160405280600260ff16815260200183815250816000815181106122e1576122e1613c94565b60209081029190910101529196919550909350505050565b6000806123068585610c7a565b905060008351600014612337578360008151811061232657612326613c94565b602002602001015160200151612348565b604051806020016040528060008152505b90506000806123568361273a565b9150915061236784888a85856129a0565b98975050505050505050565b60006060853b80830361239a5760408051600080825260208201909252925092505061188c565b60008060008761ffff166001600160401b038111156123bb576123bb613d10565b6040519080825280601f01601f1916602001820160405280156123e5576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612405578792505b828152826000602083013e90999098509650505050505050565b606061103083836000612b38565b60006060600061243c85612bd5565b9050600061244986612c62565b80516020820120606088015160408901519293509091600061246b8284610c7a565b90506000895160001461249c578960008151811061248b5761248b613c94565b6020026020010151602001516124ad565b604051806020016040528060008152505b905060606124ff8d846040518060a001604052808963ffffffff1681526020018c81526020018a815260200187600001516001600160401b03168152602001886001600160a01b031681525085612c7f565b604051919b5091506125179089908990602001614545565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a001518360405161256393929190614574565b60405180910390a15050505050505050935093915050565b60608060028310156125a35760405163196499c760e21b8152600060048201526024016108fa565b60006125b260028286886145d2565b6125bb916145fc565b60f01c905060026002198201612723578060005b868310156126c85760006125e860018501858a8c6145d2565b6125f19161462c565b60f81c9050600081900361261b57604051636780cfaf60e01b8152600060048201526024016108fa565b8160ff1660000361262e5780915061266b565b8160ff168160ff161461266b5736600061264a86868c8e6145d2565b9150915061265b8989868585612f1d565b9099509750859450919250829150505b600184019360009061268290600301868b8d6145d2565b61268b916145fc565b60f01c905060008190036126b55760405163196499c760e21b8152600481018690526024016108fa565b8060020161ffff168501945050506125cf565b8287146126eb5760405163196499c760e21b8152600481018490526024016108fa565b600287111561271c5736600061270385858b8d6145d2565b915091506127148888858585612f1d565b909850965050505b5050612731565b61272e82878761303d565b93505b50509250929050565b606080825160000361274b57915091565b6000612756846131c8565b90508060ff166001036128085760408051600180825281830190925290816020015b606081526020019060019003908161277857905050925083836000815181106127a3576127a3613c94565b6020908102919091010152604080516001808252818301909252908160200160208202803683370190505091506127db8460036132a2565b826000815181106127ee576127ee613c94565b602002602001019060ff16908160ff168152505050915091565b8060ff166001600160401b0381111561282357612823613d10565b60405190808252806020026020018201604052801561284c578160200160208202803683370190505b5091508060ff166001600160401b0381111561286a5761286a613d10565b60405190808252806020026020018201604052801561289d57816020015b60608152602001906001900390816128885790505b50925060008060ff5b86518310156129335760019092019160006128c188856132fe565b60029490940193905060006128d689866132a2565b90508260ff1660ff036128eb57809250612924565b8260ff168160ff16146129245760021984860301600061290c8b878461335b565b905061291a8a8a8784613468565b5093909301929150815b5061ffff1692909201916128a6565b818303600061294389858461335b565b905061295188888584613468565b60005b8660ff168160ff16101561299457878160ff168151811061297757612977613c94565b6020908102919091010180516000190160ff169052600101612954565b50505050505050915091565b600080866040015187602001516129b7919061465a565b905060005b8160ff168160ff161015612b2d576000886020015160ff168260ff1610612a115760a089015160208a01516129f19084614374565b60ff1681518110612a0457612a04613c94565b6020026020010151612a33565b88608001518260ff1681518110612a2a57612a2a613c94565b60200260200101515b60408051602081019091526000808252919250905b8651811015612aa0578360ff16878281518110612a6757612a67613c94565b602002602001015160ff1603612a9857878181518110612a8957612a89613c94565b60200260200101519150612aa0565b600101612a48565b508951604051630c2eceab60e21b81526001600160a01b038416916330bb3aac91612ad3918d918d908790600401614673565b602060405180830381865afa158015612af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b149190614403565b612b1e90866143bd565b945050508060010190506129bc565b505095945050505050565b606081471015612b5d5760405163cd78605960e01b81523060048201526024016108fa565b600080856001600160a01b03168486604051612b7991906146b2565b60006040518083038185875af1925050503d8060008114612bb6576040519150601f19603f3d011682016040523d82523d6000602084013e612bbb565b606091505b5091509150612bcb86838361357e565b9695505050505050565b805160208083015160408085015160608087015160808801519351600160f81b9681019690965260c09690961b6001600160c01b031916602186015260e093841b6001600160e01b031990811660298701526001600160a01b03909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c00151604051602001612c4c9291906146c4565b60006060600080612c8f8561273a565b91509150600087604001518860200151612ca9919061465a565b90508060ff166001600160401b03811115612cc657612cc6613d10565b604051908082528060200260200182016040528015612cef578160200160208202803683370190505b50935060005b8160ff168160ff161015610c6d576000896020015160ff168260ff1610612d4a5760a08a015160208b0151612d2a9084614374565b60ff1681518110612d3d57612d3d613c94565b6020026020010151612d6c565b89608001518260ff1681518110612d6357612d63613c94565b60200260200101515b60408051602081019091526000808252919250905b8551811015612dd9578360ff16868281518110612da057612da0613c94565b602002602001015160ff1603612dd157868181518110612dc257612dc2613c94565b60200260200101519150612dd9565b600101612d81565b506040516395d376d760e01b81526001600160a01b038316906395d376d790612e08908d9085906004016146ea565b6020604051808303816000875af1158015612e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4b9190614403565b878460ff1681518110612e6057612e60613c94565b6020026020010181815250506000878460ff1681518110612e8357612e83613c94565b60200260200101511115612f1357868360ff1681518110612ea657612ea6613c94565b60200260200101518c6000846001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ee191906143bd565b92505081905550868360ff1681518110612efd57612efd613c94565b602002602001015188612f1091906143bd565b97505b5050600101612cf5565b60608060001960ff861601612f9a57865115612f5c57868484604051602001612f489392919061475c565b604051602081830303815290604052612f93565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613032565b60011960ff86160161301457855115612fd657858484604051602001612fc29392919061475c565b60405160208183030381529060405261300d565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613032565b604051636780cfaf60e01b815260ff861660048201526024016108fa565b509495939450505050565b606060001961ffff8516016130dd576022821461306d576040516301b8ca5560e31b815260040160405180910390fd5b600061308e6130806022600286886145d2565b61308991614784565b6135da565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b166024820152909150603401604051602081830303815290604052915050611030565b60011961ffff8516016131a9576042821115806130fa5750606282115b15613118576040516360493e2b60e11b815260040160405180910390fd5b600061312b6130806022600286886145d2565b905060006131406130806042602287896145d2565b905060006041198501613156866042818a6145d2565b61315f91614784565b60405160086020938403029190911c9250613190916001916011918391889183916031916002918b918b91016147a2565b6040516020818303038152906040529350505050611030565b604051630417051360e41b815261ffff851660048201526024016108fa565b600080805b83518210156132775760019091019060006131e885846132fe565b905060028301925060028161ffff1610156132195760405163013adb8360e21b8152600481018490526024016108fa565b600061322586856132a2565b90508060ff1660ff0361324b576040516334f4f66f60e21b815260040160405180910390fd5b600160ff82161b83166132685760019485019460ff82161b831792505b5061ffff1691909101906131cd565b8351821461329b5760405163013adb8360e21b8152600481018390526024016108fa565b5050919050565b60006132af8260016143bd565b835110156132f55760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b60448201526064016108fa565b50016001015190565b600061330b8260026143bd565b835110156133525760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b60448201526064016108fa565b50016002015190565b60608161336981601f6143bd565b10156133a85760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016108fa565b6133b282846143bd565b845110156133f65760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016108fa565b606082158015613415576040519150600082526020820160405261345f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561344e578051835260209283019201613436565b5050858452601f01601f1916604052505b50949350505050565b8160ff1660ff0361348c576040516334f4f66f60e21b815260040160405180910390fd5b600061349983600161465a565b905060005b84518110156117b95760008582815181106134bb576134bb613c94565b602002602001015190508060ff168360ff1603613530578682815181106134e4576134e4613c94565b6020026020010151846040516020016134fe929190614545565b60405160208183030381529060405287838151811061351f5761351f613c94565b6020026020010181905250506117b9565b8060ff16600003613575578286838151811061354e5761354e613c94565b602002602001019060ff16908160ff16815250508387838151811061351f5761351f613c94565b5060010161349e565b6060826135935761358e8261361b565b611030565b81511580156135aa57506001600160a01b0384163b155b156135d357604051639996b31560e01b81526001600160a01b03851660048201526024016108fa565b5080611030565b60006fffffffffffffffffffffffffffffffff821115613617576040516306dfcc6560e41b815260806004820152602481018390526044016108fa565b5090565b80511561362b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156136e1579160200282015b828111156136e157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906136ac565b506136179291505b8082111561361757600081556001016136e9565b60006020828403121561370f57600080fd5b81356001600160e01b03198116811461103057600080fd5b6001600160a01b038116811461126657600080fd5b803561374781613727565b919050565b63ffffffff8116811461126657600080fd5b80356137478161374c565b6000806040838503121561377c57600080fd5b823561378781613727565b915060208301356137978161374c565b809150509250929050565b815163ffffffff1681526020808301516001600160a01b03169082015260408101610584565b60208101600383106137ea57634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006060848603121561380557600080fd5b833561381081613727565b9250602084013561382081613727565b929592945050506040919091013590565b60008083601f84011261384357600080fd5b5081356001600160401b0381111561385a57600080fd5b6020830191508360208260051b8501011115611da157600080fd5b60008060006040848603121561388a57600080fd5b833561389581613727565b925060208401356001600160401b038111156138b057600080fd5b6138bc86828701613831565b9497909650939450505050565b600080602083850312156138dc57600080fd5b82356001600160401b038111156138f257600080fd5b6138fe85828601613831565b90969095509350505050565b60008151808452602080850194506020840160005b838110156139445781516001600160a01b03168752958201959082019060010161391f565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261399e60c085018261390a565b905060a083015184820360a08601526139b7828261390a565b95945050505050565b602081526000611030602083018461394f565b801515811461126657600080fd5b8035613747816139d3565b60008060008060608587031215613a0257600080fd5b84356001600160401b0380821115613a1957600080fd5b9086019060e08289031215613a2d57600080fd5b90945060208601359080821115613a4357600080fd5b818701915087601f830112613a5757600080fd5b813581811115613a6657600080fd5b886020828501011115613a7857600080fd5b602083019550809450505050613a90604086016139e1565b905092959194509250565b60005b83811015613ab6578181015183820152602001613a9e565b50506000910152565b60008151808452613ad7816020860160208601613a9b565b601f01601f19169290920160200192915050565b825181526020808401519082015260606040820152600061124d6060830184613abf565b600060208284031215613b2157600080fd5b81356110308161374c565b600080600060608486031215613b4157600080fd5b8335613b4c8161374c565b92506020840135613b5c81613727565b91506040840135613b6c8161374c565b809150509250925092565b6020815260006110306020830184613abf565b60008060208385031215613b9d57600080fd5b82356001600160401b0380821115613bb457600080fd5b818501915085601f830112613bc857600080fd5b813581811115613bd757600080fd5b866020606083028501011115613bec57600080fd5b60209290920196919550909350505050565b600060208284031215613c1057600080fd5b5035919050565b815181526020808301519082015260408101610584565b600060208284031215613c4057600080fd5b813561103081613727565b60008060408385031215613c5e57600080fd5b8235613c6981613727565b946020939093013593505050565b600060208284031215613c8957600080fd5b815161103081613727565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112613cc057600080fd5b9190910192915050565b6000808335601e19843603018112613ce157600080fd5b8301803591506001600160401b03821115613cfb57600080fd5b602001915036819003821315611da157600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715613d4857613d48613d10565b60405290565b60405160e081016001600160401b0381118282101715613d4857613d48613d10565b604051601f8201601f191681016001600160401b0381118282101715613d9857613d98613d10565b604052919050565b600060408284031215613db257600080fd5b604051604081018181106001600160401b0382111715613dd457613dd4613d10565b6040528235613de28161374c565b81526020830135613df281613727565b60208201529392505050565b80356001600160401b038116811461374757600080fd5b803560ff8116811461374757600080fd5b600082601f830112613e3757600080fd5b813560206001600160401b03821115613e5257613e52613d10565b8160051b613e61828201613d70565b9283528481018201928281019087851115613e7b57600080fd5b83870192505b84831015613ea3578235613e9481613727565b82529183019190830190613e81565b979650505050505050565b600060c08284031215613ec057600080fd5b613ec8613d26565b9050613ed382613dfe565b8152613ee160208301613e15565b6020820152613ef260408301613e15565b6040820152613f0360608301613e15565b606082015260808201356001600160401b0380821115613f2257600080fd5b613f2e85838601613e26565b608084015260a0840135915080821115613f4757600080fd5b50613f5484828501613e26565b60a08301525092915050565b600060208284031215613f7257600080fd5b81356001600160401b03811115613f8857600080fd5b61124d84828501613eae565b60008235603e19833603018112613cc057600080fd5b6000823560be19833603018112613cc057600080fd5b600060208284031215613fd257600080fd5b61103082613e15565b600060208284031215613fed57600080fd5b61103082613dfe565b60006105843683613eae565b6000808335601e1984360301811261401957600080fd5b83016020810192503590506001600160401b0381111561403857600080fd5b8060051b3603821315611da157600080fd5b8183526000602080850194508260005b8581101561394457813561406d81613727565b6001600160a01b03168752958201959082019060010161405a565b60208082528181018390526000906040808401600586901b8501820187855b888110156141bf57603f19808985030185528235603e198c36030181126140cd57600080fd5b8b0180356140da8161374c565b63ffffffff168552808801353682900360be190181126140f957600080fd5b858901889052016001600160401b0361411182613dfe565b1687860152614121888201613e15565b606060ff808316828901526141378a8501613e15565b92506080818416818a015261414d838601613e15565b935060a09250818416838a015261416681860186614002565b60c08b8101529450915061418190506101008901848361404a565b92505061419081840184614002565b93509050838783030160e08801526141a982848361404a565b978a0197965050509287019250506001016140a7565b509098975050505050505050565b6040815260006141e06040830186613abf565b8281036020840152838152838560208301376000602085830101526020601f19601f860116820101915050949350505050565b813561421e8161374c565b63ffffffff8116905081548163ffffffff198216178355602084013561424381613727565b6001600160c01b03199190911690911760209190911b640100000000600160c01b031617905550565b6020808252818101839052600090604080840186845b878110156142df5781356142958161374c565b63ffffffff908116845282860135906142ad8261374c565b1683860152818401356142bf81613727565b6001600160a01b0316838501526060928301929190910190600101614282565b5090979650505050505050565b6001600160a01b038416815263ffffffff831660208201526080810161124d6040830184805163ffffffff1682526020908101516001600160a01b0316910152565b6001600160a01b038416815263ffffffff831660208201526060604082018190526000906139b79083018461394f565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156105845761058461435e565b600060ff8316806143ae57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b808201808211156105845761058461435e565b63ffffffff8516815260018060a01b0384166020820152826040820152608060608201526000612bcb6080830184613abf565b60006020828403121561441557600080fd5b5051919050565b60006020828403121561442e57600080fd5b8151611030816139d3565b600082601f83011261444a57600080fd5b81356001600160401b0381111561446357614463613d10565b614476601f8201601f1916602001613d70565b81815284602083860101111561448b57600080fd5b816020850160208301376000918101602001919091529392505050565b600060e082360312156144ba57600080fd5b6144c2613d4e565b6144cb83613dfe565b81526144d96020840161375e565b60208201526144ea6040840161373c565b60408201526144fb6060840161375e565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b0381111561452d57600080fd5b61453936828601614439565b60c08301525092915050565b60008351614557818460208801613a9b565b83519083019061456b818360208801613a9b565b01949350505050565b606081526000614587606083018661390a565b6020838203602085015261459b828761390a565b84810360408601528551808252602080880194509091019060005b818110156141bf578451835293830193918301916001016145b6565b600080858511156145e257600080fd5b838611156145ef57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156146245780818660020360031b1b83161692505b505092915050565b6001600160f81b031981358181169160018510156146245760019490940360031b84901b1690921692915050565b60ff81811683821601908111156105845761058461435e565b63ffffffff851681526001600160401b03841660208201526001600160a01b0383166040820152608060608201819052600090612bcb90830184613abf565b60008251613cc0818460208701613a9b565b828152600082516146dc816020850160208701613a9b565b919091016020019392505050565b6040815263ffffffff83511660408201526000602084015160a0606084015261471660e0840182613abf565b604086015160808581019190915260608701516001600160401b031660a08601528601516001600160a01b031660c0850152838103602085015290506139b78185613abf565b6000845161476e818460208901613a9b565b8201838582376000930192835250909392505050565b8035602083101561058457600019602084900360031b1b1692915050565b60f88a811b6001600160f81b0319908116835260f08b811b6001600160f01b031990811660018601528b841b8316600386015260808b901b6001600160801b031916600486015289841b831660148601529088901b1660158401529085901b1660178201526000614822601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea26469706673582212209c4e56d6c67105dfab95a5db652280357c444a31ddd8e746e20a46bf6d44b3bb64736f6c63430008160033","sourceMap":"982:3336:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1554:301:14;;;;;;;;;;-1:-1:-1;1554:301:14;;;;;:::i;:::-;;:::i;:::-;;;470:14:145;;463:22;445:41;;433:2;418:18;1554:301:14;;;;;;;;1075:31:80;;;;;;;;;;-1:-1:-1;1075:31:80;;;;-1:-1:-1;;;;;1075:31:80;;;;;;-1:-1:-1;;;;;692:32:145;;;674:51;;662:2;647:18;1075:31:80;497:234:145;3440:604:13;;;;;;;;;;-1:-1:-1;3440:604:13;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4373:125:14:-;;;;;;;;;;-1:-1:-1;4439:14:14;4373:125;;;;;;:::i;3421:449::-;;;;;;;;;;-1:-1:-1;3421:449:14;;;;;:::i;:::-;;:::i;:::-;;1740:682:80;;;;;;;;;;-1:-1:-1;1740:682:80;;;;;:::i;:::-;;:::i;2638:787:24:-;;;;;;;;;;-1:-1:-1;2638:787:24;;;;;:::i;:::-;;:::i;5951:153::-;;;;;;;;;;-1:-1:-1;5951:153:24;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3980:336:80:-;;;;;;;;;;-1:-1:-1;3980:336:80;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;3612:2249:24:-;;;;;;;;;;-1:-1:-1;3612:2249:24;;;;;:::i;:::-;;:::i;1111:85:13:-;;;;;;;;;;-1:-1:-1;1111:85:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1111:85:13;;;;;;;8384:10:145;8372:23;;;8354:42;;-1:-1:-1;;;;;8432:32:145;;;8427:2;8412:18;;8405:60;8327:18;1111:85:13;8182:289:145;2942:134:80;;;;;;;;;;-1:-1:-1;2942:134:80;;;3061:1;8668:50:145;;2993:12:80;8749:2:145;8734:18;;8727:45;3067:1:80;8788:18:145;;;8781:45;;;;8656:2;8641:18;2942:134:80;8476:356:145;1082:23:13;;;;;;;;;;-1:-1:-1;1082:23:13;;;;-1:-1:-1;;;;;1082:23:13;;;3082:120:80;;;;;;;;;;-1:-1:-1;3082:120:80;;;;;:::i;:::-;;:::i;2293:101:105:-;;;;;;;;;;;;;:::i;1638:85::-;;;;;;;;;;-1:-1:-1;1684:7:105;1710:6;-1:-1:-1;;;;;1710:6:105;1638:85;;2506:430:80;;;;;;;;;;-1:-1:-1;2506:430:80;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2202:554:13:-;;;;;;;;;;-1:-1:-1;2202:554:13;;;;;:::i;:::-;;:::i;2843:436::-;;;;;;;;;;-1:-1:-1;2843:436:13;;;;;:::i;:::-;;:::i;3940:427:14:-;;;;;;;;;;-1:-1:-1;3940:427:14;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2688:99::-;;;;;;;;;;-1:-1:-1;2688:99:14;;;;;:::i;:::-;;:::i;2543:215:105:-;;;;;;;;;;-1:-1:-1;2543:215:105;;;;;:::i;:::-;;:::i;1252:46:13:-;;;;;;;;;;-1:-1:-1;1252:46:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11568:25:145;;;11556:2;11541:18;1252:46:13;11422:177:145;2882:348:14;;;;;;;;;;-1:-1:-1;2882:348:14;;;;;:::i;:::-;;:::i;1554:301::-;1657:4;-1:-1:-1;;;;;;1692:45:14;;-1:-1:-1;;;1692:45:14;;:103;;-1:-1:-1;;;;;;;1753:42:14;;-1:-1:-1;;;1753:42:14;1692:103;:156;;;-1:-1:-1;;;;;;;;;;861:40:126;;;1811:37:14;1673:175;1554:301;-1:-1:-1;;1554:301:14:o;3440:604:13:-;-1:-1:-1;;;;;;;;;;;;;;;;;3604:43:13;;;;3565:36;3604:43;;;:31;;:43;;;:31;:43;;;-1:-1:-1;;;;;3695:22:13;;;;3604:15;3695:22;;;;;:34;;;;;;;;;3764:27;;3604:43;;3695:34;;3764:27;;3828:19;;;:67;;3867:28;;;;3828:67;;;3850:14;3828:67;3801:94;;;;3925:21;;;;;-1:-1:-1;;;;;3925:21:13;;3977:60;;4015:22;;;;;-1:-1:-1;;;;;4015:22:13;3977:60;;;4004:8;3977:60;-1:-1:-1;;;;;3956:81:13;:18;;;:81;-1:-1:-1;3956:9:13;;3440:604;-1:-1:-1;;;;;3440:604:13:o;3421:449:14:-;3534:8;;-1:-1:-1;;;;;3534:8:14;3520:10;:22;3516:62;;3551:27;;-1:-1:-1;;;3551:27:14;;;;;;;;;;;3516:62;3700:8;-1:-1:-1;;;;;3652:56:14;3673:8;-1:-1:-1;;;;;3652:42:14;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3652:56:14;;3648:107;;3717:38;;-1:-1:-1;;;3717:38:14;;;;;;;;;;;3648:107;3766:38;3781:8;3791:3;3796:7;3766:14;:38::i;:::-;3820:43;;;-1:-1:-1;;;;;12438:15:145;;;12420:34;;12490:15;;12485:2;12470:18;;12463:43;12522:18;;;12515:34;;;3820:43:14;;12370:2:145;12355:18;3820:43:14;;;;;;;;3421:449;;;:::o;1740:682:80:-;326:8:11;-1:-1:-1;;;;;326:22:11;338:10;326:22;322:63;;357:28;;-1:-1:-1;;;357:28:11;;;;;;;;;;;322:63;1855:9:80::1;1850:566;1870:18:::0;;::::1;1850:566;;;1909:29;1941:7;;1949:1;1941:10;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1909:42:::0;-1:-1:-1;1965:30:80::1;1985:9;;::::0;::::1;1909:42:::0;1985:9:::1;:::i;:::-;1965:19;:30::i;:::-;1161:1;2013:16;::::0;;;::::1;::::0;::::1;;:::i;:::-;:40;;::::0;2009:397:::1;;2073:80;2092:9;;::::0;::::1;:5:::0;:9:::1;:::i;:::-;2103:5:::0;2121:12:::1;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;2110:42;;;;;;;:::i;:::-;2073:18;:80::i;:::-;2009:397;;;1211:1;2178:16;::::0;;;::::1;::::0;::::1;;:::i;:::-;:35;;::::0;2174:232:::1;;2233:70;2247:9;;::::0;::::1;:5:::0;:9:::1;:::i;:::-;2258:5:::0;2276:12:::1;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;2265:37;;;;;;;:::i;:::-;2233:13;:70::i;2174:232::-;2374:16;::::0;;;::::1;::::0;::::1;;:::i;:::-;2349:42;::::0;-1:-1:-1;;;2349:42:80;;17654:10:145;17642:23;;;2349:42:80::1;::::0;::::1;17624::145::0;17597:18;;2349:42:80::1;;;;;;;;2174:232;-1:-1:-1::0;1890:3:80::1;;1850:566;;;;1740:682:::0;;;:::o;2638:787:24:-;1531:13:105;:11;:13::i;:::-;2747:9:24::1;2742:633;2762:18:::0;;::::1;2742:633;;;2801:39;2843:7;;2851:1;2843:10;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2801:52:::0;-1:-1:-1;1222:15:24::1;2908:12;;::::0;::::1;2801:52:::0;2908:12:::1;:::i;:::-;:29;::::0;;;;;::::1;;;:::i;:::-;:46;;::::0;2904:91:::1;;2963:32;;-1:-1:-1::0;;;2963:32:24::1;;;;;;;;;;;2904:91;1222:15;3013:12;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;:29;::::0;;;;;::::1;;;:::i;:::-;:46;;::::0;3009:91:::1;;3068:32;;-1:-1:-1::0;;;3068:32:24::1;;;;;;;;;;;3009:91;-1:-1:-1::0;;;;;3118:12:24::1;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;:26;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;3118:47:24::1;::::0;3114:89:::1;;3174:29;;-1:-1:-1::0;;;3174:29:24::1;;;;;;;;;;;3114:89;3264:34;3285:12;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;3264:34;;;:::i;:::-;:20;:34::i;:::-;3313:51;1106:1;3340:9;;::::0;::::1;:5:::0;:9:::1;:::i;:::-;3351:12;;::::0;::::1;:5:::0;:12:::1;:::i;:::-;3313:51;;;:::i;:::-;:10;:51::i;:::-;-1:-1:-1::0;2782:3:24::1;;2742:633;;;;3389:29;3410:7;;3389:29;;;;;;;:::i;:::-;;;;;;;;2638:787:::0;;:::o;5951:153::-;6033:16;;:::i;:::-;-1:-1:-1;;;;;6068:17:24;;;;;;:10;:17;;;;;;;;:29;;;;;;;;;;;6061:36;;;;;;;;;-1:-1:-1;;;;;6061:36:24;;;;;-1:-1:-1;;;6061:36:24;;;;;;;;-1:-1:-1;;;6061:36:24;;;;;;;;-1:-1:-1;;;6061:36:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6068:29;;6061:36;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6061:36:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6061:36:24;;;;;;;;;;;;;;;;;;;;;;;;;;;5951:153;;;;:::o;3980:336:80:-;-1:-1:-1;;;;;;;;;;;;;;;;;4144:26:80;4205:44;4216:7;4225:8;;4235:13;4205:10;:44::i;:::-;4259:10;;:50;;-1:-1:-1;;;4259:50:80;;4182:67;;-1:-1:-1;4182:67:80;;-1:-1:-1;;;;;;4259:10:80;;:25;;:50;;4182:67;;4300:8;;;;4259:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3980:336;;;;;;;:::o;3612:2249:24:-;3689:26;;:::i;:::-;3761:38;;;3727:31;3761:38;;;:26;;:38;;;:26;:38;;;-1:-1:-1;;;;;3842:17:24;;;;3761:10;3842:17;;;;;:29;;;;;;;;;3951:26;;-1:-1:-1;;;;;3951:26:24;;3987:297;;4057:27;;-1:-1:-1;;;;;4057:27:24;4031:53;;3987:297;;;-1:-1:-1;;;;;4105:34:24;;;;4101:183;;-1:-1:-1;;;;;4234:39:24;;;;4101:183;4346:29;;-1:-1:-1;;;4346:29:24;;:40;:29;4342:604;;4406:30;;-1:-1:-1;;;4406:30:24;;;;:34;4402:253;;4537:13;:26;;4512:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4512:51:24;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4512:22:24;;;:51;4610:30;;-1:-1:-1;;;4610:30:24;;;;4581:26;;;:59;4402:253;4342:604;;;4709:29;;-1:-1:-1;;;4709:29:24;;1222:15;4709:29;;;:46;4705:211;;4800:12;:25;;4775:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4775:50:24;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4775:22:24;;;:50;4872:29;;-1:-1:-1;;;4872:29:24;;;;4843:26;;;:58;4705:211;4960:29;;-1:-1:-1;;;4960:29:24;;:40;:29;4956:733;;5020:30;;-1:-1:-1;;;5020:30:24;;;;:34;5016:338;;5151:13;:26;;5126:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5126:51:24;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5126:22:24;;;:51;5224:30;;;-1:-1:-1;;;5224:30:24;;;;5195:26;;;:59;-1:-1:-1;;;5305:34:24;;;;-1:-1:-1;5272:30:24;;:67;5016:338;4956:733;;;5388:29;;-1:-1:-1;;;5388:29:24;;1222:15;5388:29;;;:46;5384:295;;5479:12;:25;;5454:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5454:50:24;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5454:22:24;;;:50;5551:29;;;-1:-1:-1;;;5551:29:24;;;;5522:26;;;:58;-1:-1:-1;;;5631:33:24;;;;-1:-1:-1;5598:30:24;;:66;5384:295;5823:31;5844:9;5823:20;:31::i;:::-;3717:2144;;;3612:2249;;;;:::o;3082:120:80:-;3151:4;3174:21;3190:4;3174:15;:21::i;2293:101:105:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2506:430:80:-;2605:12;-1:-1:-1;;2633:35:80;;;;2629:301;;2702:30;2720:5;2727:4;2702:17;:30::i;:::-;2691:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;2684:49;;;;2629:301;-1:-1:-1;;2754:30:80;;;;2750:180;;2818:25;2831:5;2838:4;2818:12;:25::i;:::-;2807:37;;;;;;;;:::i;2750:180::-;2882:37;;-1:-1:-1;;;2882:37:80;;17654:10:145;17642:23;;2882:37:80;;;17624:42:145;17597:18;;2882:37:80;17480:192:145;2750:180:80;2506:430;;;;;:::o;2202:554:13:-;1531:13:105;:11;:13::i;:::-;2321:9:13::1;2316:385;2336:18:::0;;::::1;2316:385;;;2375:44;2422:7;;2430:1;2422:10;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;::::0;-1:-1:-1;2484:3:13::1;::::0;2451:21:::1;::::0;-1:-1:-1;2451:21:13;;;;;::::1;:::i;:::-;-1:-1:-1::0;;;;;2451:37:13::1;::::0;2447:81:::1;;2497:31;;-1:-1:-1::0;;;2497:31:13::1;;;;;;;;;;;2447:81;2546:27;::::0;;;:12:::1;::::0;::::1;:27;:::i;:::-;:32;;2577:1;2546:32:::0;2542:76:::1;;2587:31;;-1:-1:-1::0;;;2587:31:13::1;;;;;;;;;;;2542:76;2633:31;::::0;;;:15:::1;2678:12;2633:31:::0;;;2678:12;::::1;::::0;2633:31;;2665:9:::1;2678:12:::0;:5;2665:9:::1;:::i;:::-;2633:42;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;2633:42:13;:57:::1;::::0;:42;:57:::1;:::i;:::-;-1:-1:-1::0;;;2356:3:13::1;;2316:385;;;;2715:34;2741:7;;2715:34;;;;;;;:::i;2843:436::-:0;1531:13:105;:11;:13::i;:::-;3035:20:13::1;;3008:24;:47;3004:147;;;3130:20;::::0;3076:75:::1;::::0;-1:-1:-1;;;3076:75:13;;::::1;::::0;3104:24;;3076:75:::1;;25117:25:145::0;;;25173:2;25158:18;;25151:34;25105:2;25090:18;;24943:248;3004:147:13::1;3161:20;:47:::0;;;3223:49:::1;::::0;11568:25:145;;;3223:49:13::1;::::0;11556:2:145;11541:18;3223:49:13::1;;;;;;;;2843:436:::0;:::o;3940:427:14:-;-1:-1:-1;;;;;;;;;;;;;;;;;4110:17:14;;4151:157;4171:14;;;;;;;;:::i;:::-;4199;;;;;;;;:::i;:::-;4227:15;;;;:7;:15;:::i;:::-;:22;;4263:13;4290:8;;4151:6;:157::i;:::-;4325:35;;;;;;;;;;;;;;;;;-1:-1:-1;;;3940:427:14;;;;;;;:::o;2688:99::-;1531:13:105;:11;:13::i;:::-;2757:23:14::1;2770:9;2757:12;:23::i;:::-;2688:99:::0;:::o;2543:215:105:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:105;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:105;;2700:1:::1;2672:31;::::0;::::1;674:51:145::0;647:18;;2672:31:105::1;497:234:145::0;2623:91:105::1;2723:28;2742:8;2723:18;:28::i;2882:348:14:-:0;2952:18;2962:7;2952:9;:18::i;:::-;2980:19;3023:8;-1:-1:-1;;;;;3002:42:14;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2980:66;;3115:49;3138:11;3151:3;3156:7;3115:22;:49::i;:::-;3179:44;;;3198:10;12420:34:145;;-1:-1:-1;;;;;12490:15:145;;12485:2;12470:18;;12463:43;12522:18;;;12515:34;;;3179:44:14;;12370:2:145;12355:18;3179:44:14;12180:375:145;696:194:64;-1:-1:-1;;;;;779:19:64;;775:58;;807:26;;-1:-1:-1;;;807:26:64;;;;;;;;;;;775:58;843:40;-1:-1:-1;;;;;843:27:64;;871:3;876:6;843:27;:40::i;:::-;696:194;;;:::o;6870:153:24:-;6947:27;6963:10;6947:15;:27::i;:::-;6942:74;;6983:33;;-1:-1:-1;;;6983:33:24;;17654:10:145;17642:23;;6983:33:24;;;17624:42:145;17597:18;;6983:33:24;17480:192:145;9691:223:13;-1:-1:-1;;;;;9803:22:13;;;;;;;:15;:22;;;;;;;;:34;;;;;;;;;;;;;:44;;;;;;;;;;;;;-1:-1:-1;;;;;;9803:44:13;;;;;;;;;;;;;;9862:45;;;;;9819:5;;9826:10;;9840:7;;9862:45;:::i;6191:318:24:-;6292:37;6303:5;6310:10;6322:6;6292:10;:37::i;:::-;6417:31;6430:5;6437:10;6417:12;:31::i;:::-;;6463:39;6476:5;6483:10;6495:6;6463:39;;;;;;;;:::i;1796:162:105:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:105;735:10:120;1855:23:105;1851:101;;1901:40;;-1:-1:-1;;;1901:40:105;;735:10:120;1901:40:105;;;674:51:145;647:18;;1901:40:105;497:234:145;7110:187:24;7193:24;;;;:29;;;:66;;;;-1:-1:-1;7226:28:24;;;;:33;;;7193:66;7189:101;;;7268:22;;-1:-1:-1;;;7268:22:24;;;;;;;;;;;7392:2122;7709:23;;;;1222:15;7709:40;;;;;:78;;-1:-1:-1;7753:23:24;;;;:34;;;7709:78;7705:423;;;7807:19;;;;:26;:31;7803:76;;7847:32;;-1:-1:-1;;;7847:32:24;;;;;;;;;;;7803:76;7705:423;;;7944:6;:23;;;7914:53;;:6;:19;;;:26;:53;;:92;;;-1:-1:-1;1533:1:24;1510:19;1528:1;1510:15;:19;:::i;:::-;1509:25;;;;:::i;:::-;7971:35;;:6;:23;;;:35;;;7914:92;7910:153;;;8031:32;;-1:-1:-1;;;8031:32:24;;;;;;;;;;;7910:153;8077:40;8097:6;:19;;;8077;:40::i;:::-;8687:23;;;;1222:15;8687:40;;;;;:78;;-1:-1:-1;8731:23:24;;;;:34;;;8687:78;8683:686;;;8785:19;;;;:26;:31;8781:76;;8825:32;;-1:-1:-1;;;8825:32:24;;;;;;;;;;;8781:76;8875:27;;;;:32;;;8871:81;;8916:36;;-1:-1:-1;;;8916:36:24;;;;;;;;;;;8871:81;8683:686;;;9017:6;:23;;;8987:53;;:6;:19;;;:26;:53;;:92;;;-1:-1:-1;1533:1:24;1510:19;1528:1;1510:15;:19;:::i;:::-;1509:25;;;;:::i;:::-;9044:35;;:6;:23;;;:35;;;8987:92;8983:153;;;9104:32;;-1:-1:-1;;;9104:32:24;;;;;;;;;;;8983:153;9154:27;;;;:32;;;;:89;;;9220:6;:23;;;9190:53;;:6;:27;;;:53;;;9154:89;9150:154;;;9268:36;;-1:-1:-1;;;9268:36:24;;;;;;;;;;;9150:154;9318:40;9338:6;:19;;;9318;:40::i;:::-;-1:-1:-1;;;;;9475:17:24;;;;;;:10;:17;;;;;;;;:23;;;;;;;;;;;:32;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9475:32:24;;;-1:-1:-1;;9475:32:24;;;;;;;-1:-1:-1;;;9475:32:24;;;;;;-1:-1:-1;;9475:32:24;-1:-1:-1;;;9475:32:24;;;;;;;-1:-1:-1;;;;9475:32:24;;-1:-1:-1;;;9475:32:24;;;;;;;;;;;;;;;;;;;;;;:23;:32;;;;;;;;;:::i;:::-;-1:-1:-1;9475:32:24;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;7392:2122:24:o;2011:602:14:-;-1:-1:-1;;;;;;;;;;;;;;;;;2183:12:14;326:8:11;-1:-1:-1;;;;;326:22:11;338:10;326:22;322:63;;357:28;;-1:-1:-1;;;357:28:11;;;;;;;;;;;322:63;2208:26:14::1;2236:22:::0;2262:30:::1;2274:7;2283:8;;2262:11;:30::i;:::-;2207:85:::0;;-1:-1:-1;2207:85:14;-1:-1:-1;2304:25:14::1;::::0;2353:133:::1;2379:14;::::0;;;::::1;::::0;::::1;;:::i;:::-;2407;::::0;;;::::1;::::0;::::1;;:::i;:::-;2435;2463:13;2353:12;:133::i;:::-;2303:183:::0;;-1:-1:-1;2303:183:14;-1:-1:-1;2496:35:14::1;2303:183:::0;2496:35;::::1;:::i;:::-;2550:40;::::0;;;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;2592:13:14;;-1:-1:-1;;;395:1:11::1;2011:602:14::0;;;;;;;:::o;6609:255:24:-;6726:38;;;6676:4;6726:38;;;:26;;:38;:26;:38;;6781:30;;-1:-1:-1;;;6781:30:24;;;;:34;;;:76;;-1:-1:-1;6819:34:24;-1:-1:-1;;;6819:34:24;;;;:38;;;;-1:-1:-1;;6609:255:24:o;2912:187:105:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;5857:1005:13:-;6038:7;6047;6067:28;6097:40;6141:23;6155:8;;6141:13;:23::i;:::-;6066:98;;;;6256:17;6276:51;6291:7;6300;6309:17;6276:14;:51::i;:::-;6256:71;;6364:28;6395:35;6413:7;6422;6395:17;:35::i;:::-;6364:66;;6467:51;6486:8;6496:6;:21;;;6467:51;;:18;:51::i;:::-;6561:6;:15;;;-1:-1:-1;;;;;6542:42:13;;6585:7;6594;6603:8;6613:15;6542:87;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6529:100;;;;:::i;:::-;;;6667:25;6694:18;6716:58;6731:7;6740;6749:9;6760:13;6716:14;:58::i;:::-;6666:108;;-1:-1:-1;6666:108:13;-1:-1:-1;6784:30:13;6666:108;6784:30;;:::i;:::-;;6844:10;;-1:-1:-1;5857:1005:13;-1:-1:-1;;;;;;;;;;;;5857:1005:13:o;9561:124::-;9621:8;:20;;-1:-1:-1;;;;;;9621:20:13;-1:-1:-1;;;;;9621:20:13;;;;;;;;9656:22;;674:51:145;;;9656:22:13;;662:2:145;647:18;9656:22:13;497:234:145;9310:245:13;9384:10;9365:11;9379:16;;;:4;:16;;;;;;9409:13;;;9405:67;;;9431:41;;-1:-1:-1;;;9431:41:13;;;;;25117:25:145;;;25158:18;;;25151:34;;;25090:18;;9431:41:13;24943:248:145;9405:67:13;9511:10;9506:16;;;;:4;:16;;;;;9525:13;;;9506:32;;9310:245::o;896:222:64:-;-1:-1:-1;;;;;987:22:64;;983:129;;1025:19;1032:3;1037:6;1025;:19::i;983:129::-;1075:26;1081:6;1089:3;1094:6;1075:5;:26::i;1303:160:113:-;1412:43;;;-1:-1:-1;;;;;27648:32:145;;1412:43:113;;;27630:51:145;27697:18;;;;27690:34;;;1412:43:113;;;;;;;;;;27603:18:145;;;;1412:43:113;;;;;;;;-1:-1:-1;;;;;1412:43:113;-1:-1:-1;;;1412:43:113;;;1385:71;;1405:5;;1385:19;:71::i;9520:322:24:-;9596:15;9639:9;9634:202;9658:5;:12;9654:1;:16;9634:202;;;9691:11;9705:5;9711:1;9705:8;;;;;;;;:::i;:::-;;;;;;;9691:22;;9738:7;-1:-1:-1;;;;;9731:14:24;:3;-1:-1:-1;;;;;9731:14:24;;9727:44;;9754:17;;-1:-1:-1;;;9754:17:24;;;;;;;;;;;9727:44;9822:3;-1:-1:-1;9672:3:24;;9634:202;;4631:891:14;4742:26;4770:22;4838:28;4868:40;4912:23;4926:8;;4912:13;:23::i;:::-;4837:98;;-1:-1:-1;4837:98:14;-1:-1:-1;4973:28:14;5004:49;5022:14;;;;;;;;:::i;:::-;5038;;;;;;;;:::i;5004:49::-;4973:80;-1:-1:-1;5063:15:14;5081;;;;:7;:15;:::i;:::-;:22;;5063:40;;5113:50;5132:7;5141:6;:21;;;5113:50;;:18;:50::i;:::-;5204:15;;;;5191:87;;5221:14;;;;;;;;:::i;:::-;5237;;;;;;;;:::i;:::-;5253:7;5262:15;5191:12;:87::i;:::-;5173:105;;;;:::i;:::-;;;5322:19;5343:24;5371:40;5384:7;5393:17;5371:12;:40::i;:::-;5321:90;;-1:-1:-1;5321:90:14;-1:-1:-1;5448:29:14;5321:90;5448:29;;:::i;:::-;5504:11;;5448:29;;-1:-1:-1;4631:891:14;-1:-1:-1;;;;;;;;;4631:891:14:o;4753:862:13:-;4970:8;;4909:25;;;;-1:-1:-1;;;;;4970:8:13;:24;4966:643;;5034:139;;-1:-1:-1;;;;;27976:32:145;;5034:139:13;;;27958:51:145;28057:10;28045:23;;28025:18;;;28018:51;28085:18;;;28078:34;;;28155:14;;28148:22;28128:18;;;28121:50;5010:21:13;;27930:19:145;;5034:139:13;;;-1:-1:-1;;5034:139:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;5034:139:13;-1:-1:-1;;;5034:139:13;;;5225:8;;5034:139;;-1:-1:-1;;;;;5225:67:13;;-1:-1:-1;;;;;5225:8:13;;5243:16;;-1:-1:-1;;5034:139:13;5225:17;:67::i;:::-;5187:105;;;;5341:69;5362:15;5379:13;5394:7;5403:6;5341:20;:69::i;:::-;5307:103;;-1:-1:-1;5307:103:13;-1:-1:-1;5508:21:13;;5504:95;;5554:8;;-1:-1:-1;;;;;5554:8:13;5549:14;;;;:4;:14;;;;;:35;;5567:17;;5549:14;:35;;5567:17;;5549:35;:::i;:::-;;;;-1:-1:-1;;5504:95:13;4996:613;;;4753:862;;;;;;;:::o;3792:182:80:-;3886:12;3900:22;3941:26;3958:8;;3941:16;:26::i;:::-;3934:33;;;;3792:182;;;;;;:::o;3290:223::-;3442:7;3468:38;3479:7;3488;3497:8;3468:10;:38::i;4114:164:13:-;4211:4;4201:7;:14;4197:74;;;4224:47;;-1:-1:-1;;;4224:47:13;;;;;25117:25:145;;;25158:18;;;25151:34;;;25090:18;;4224:47:13;24943:248:145;4197:74:13;4114:164;;:::o;7265:772::-;7542:8;;7428:17;;;;-1:-1:-1;;;;;7542:8:13;:24;7538:493;;7606:139;;-1:-1:-1;;;;;27976:32:145;;7606:139:13;;;27958:51:145;28057:10;28045:23;;28025:18;;;28018:51;28085:18;;;28078:34;;;28155:14;;28148:22;28128:18;;;28121:50;7582:21:13;;27930:19:145;;7606:139:13;;;-1:-1:-1;;7606:139:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;7606:139:13;-1:-1:-1;;;7606:139:13;;;7797:8;;7606:139;;-1:-1:-1;;;;;7797:132:13;;-1:-1:-1;;;;;7797:8:13;;7838:16;;7606:139;7797:23;:132::i;:::-;7759:170;;;;7951:69;7972:15;7989:13;8004:7;8013:6;7951:20;:69::i;:::-;7944:76;;;;;;;;;438:252:64;-1:-1:-1;;;;;506:19:64;;502:58;;534:26;;-1:-1:-1;;;534:26:64;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:64;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;-1:-1:-1;;;649:34:64;;-1:-1:-1;;;;;27648:32:145;;649:34:64;;;27630:51:145;27697:18;;;27690:34;;;27603:18;;649:34:64;27456:274:145;4059:629:113;4478:23;4504:33;-1:-1:-1;;;;;4504:27:113;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:113;;-1:-1:-1;;;;;692:32:145;;4631:40:113;;;674:51:145;647:18;;4631:40:113;497:234:145;4284:463:13;4516:85;;-1:-1:-1;;;4516:85:13;;4471:19;;-1:-1:-1;;;;;4516:39:13;;;;;:85;;4556:7;;4565;;4574:8;;4584:16;;4516:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4502:99;-1:-1:-1;4615:15:13;;4611:76;;-1:-1:-1;;;;;4646:15:13;;;;;;:4;:15;;;;;:30;;4665:11;;4646:15;:30;;4665:11;;4646:30;:::i;:::-;;;;-1:-1:-1;;4611:76:13;4701:39;;;-1:-1:-1;;;;;27648:32:145;;27630:51;;27712:2;27697:18;;27690:34;;;4701:39:13;;27603:18:145;4701:39:13;;;;;;;4284:463;;;;;;;:::o;3519:267:80:-;3648:23;3673:26;3746:33;3755:4;3746:33;3761:7;3746:33;:::i;:::-;3770:8;3746;:33::i;:::-;3711:68;;;;-1:-1:-1;3519:267:80;-1:-1:-1;;;3519:267:80:o;770:1503:21:-;940:4;946:12;1058:20;;1101:9;;;1097:68;;1141:12;;;1134:5;1141:12;;;;;;;;;1126:28;;;;;;;1097:68;1211:15;1236:13;1259:24;1296:8;1286:19;;-1:-1:-1;;;;;1286:19:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1286:19:21;;1259:46;;1807:1;1778;1741:9;1735:16;1703:4;1692:9;1688:20;1649:6;1611:7;1582:4;1560:272;1548:284;;1899:16;1888:27;;1943:8;1934:7;1931:21;1928:76;;;1982:8;1971:19;;1928:76;2089:7;2076:11;2069:28;2209:7;2206:1;2199:4;2186:11;2182:22;2167:50;2244:8;;-1:-1:-1;2254:11:21;-1:-1:-1;;;770:1503:21;;;;;;;;;:::o;8043:1215:13:-;8216:17;8235:18;8306:8;8305:9;:47;;;-1:-1:-1;8318:14:13;;966:2;-1:-1:-1;8305:47:13;8301:66;;;-1:-1:-1;8362:1:13;;-1:-1:-1;8362:1:13;8354:13;;8301:66;8406:24;8444:7;8433:30;;;;;;;;;;;;:::i;:::-;8406:57;;8477:13;8473:779;;;8519:16;8506:29;;8473:779;;;8995:20;9036;;9018:15;:38;:79;;9077:20;;9018:79;;;9059:15;9018:79;8995:102;;9195:12;9176:16;:31;:65;;9225:16;9176:65;;;9210:12;9176:65;9164:77;;8552:700;8473:779;8255:1003;8043:1215;;;;;;;:::o;752:495:23:-;826:12;840:22;875:25;902:20;926:27;944:8;;926:17;:27::i;:::-;874:79;;;;968:7;:14;986:1;968:19;964:95;;1025:22;;;1045:1;1025:22;;;;;;;;;1011:12;;1025:22;;;-1:-1:-1;;;;;;;;;;;;;;;;;1025:22:23;;;;;;;;;;;;;;;;1003:45;;;;;;;;964:95;1105:22;;;1125:1;1105:22;;;;;;;;;1069:33;;1105:22;;;;-1:-1:-1;;;;;;;;;;;;;;;;;1105:22:23;;;;;;;;;;;;;;;1069:58;;1153:44;;;;;;;;475:1:29;1153:44:23;;;;;;1189:7;1153:44;;;1137:10;1148:1;1137:13;;;;;;;;:::i;:::-;;;;;;;;;;:60;1215:12;;;;-1:-1:-1;752:495:23;;-1:-1:-1;;;;752:495:23:o;3654:574::-;3793:16;3821:23;3847:30;3860:7;3869;3847:12;:30::i;:::-;3821:56;;3947:23;3973:8;:15;3992:1;3973:20;:54;;4008:8;4017:1;4008:11;;;;;;;;:::i;:::-;;;;;;;:19;;;3973:54;;;3996:9;;;;;;;;;;;;3973:54;3947:80;;4038:27;4067:25;4096:43;4128:10;4096:31;:43::i;:::-;4037:102;;;;4161:60;4170:6;4178:7;4187;4196:12;4210:10;4161:8;:60::i;:::-;4150:71;3654:574;-1:-1:-1;;;;;;;;3654:574:23:o;3183:1457:21:-;3340:4;3346:12;3458:20;;3501:9;;;3497:68;;3541:12;;;3534:5;3541:12;;;;;;;;;3526:28;;;;;;;3497:68;3611:15;3636:13;3659:24;3696:8;3686:19;;-1:-1:-1;;;;;3686:19:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3686:19:21;;3659:46;;4174:1;4145;4108:9;4102:16;4070:4;4059:9;4055:20;4017:7;3988:4;3960:239;3948:251;;4266:16;4255:27;;4310:8;4301:7;4298:21;4295:76;;;4349:8;4338:19;;4295:76;4456:7;4443:11;4436:28;4576:7;4573:1;4566:4;4553:11;4549:22;4534:50;4611:8;;;;-1:-1:-1;3183:1457:21;-1:-1:-1;;;;;;;3183:1457:21:o;2705:151:118:-;2780:12;2811:38;2833:6;2841:4;2847:1;2811:21;:38::i;1304:1110:23:-;1469:16;1487:26;1525:25;1553:41;1586:7;1553:32;:41::i;:::-;1525:69;;1604:20;1627:36;1655:7;1627:27;:36::i;:::-;1695:18;;;;;;1739:14;;;;1780;;;;1604:59;;-1:-1:-1;1695:18:23;;1673:19;1830:28;1780:14;1739;1830:12;:28::i;:::-;1804:54;;1928:23;1954:8;:15;1973:1;1954:20;:54;;1989:8;1998:1;1989:11;;;;;;;;:::i;:::-;;;;;;;:19;;;1954:54;;;1977:9;;;;;;;;;;;;1954:54;1928:80;;2018:24;2074:191;2099:5;2118:6;2138:93;;;;;;;;2167:6;2138:93;;;;;;2175:12;2138:93;;;;2189:11;2138:93;;;;2202:6;:20;;;-1:-1:-1;;;;;2138:93:23;;;;;2224:6;-1:-1:-1;;;;;2138:93:23;;;;2245:10;2074:11;:191::i;:::-;2291:39;;2052:213;;-1:-1:-1;2052:213:23;-1:-1:-1;2291:39:23;;2308:12;;2322:7;;2291:39;;;:::i;:::-;;;;;;;;;;;;;2275:55;;2346:61;2357:6;:19;;;2378:6;:19;;;2399:7;2346:61;;;;;;;;:::i;:::-;;;;;;;;1515:899;;;;;;;;1304:1110;;;;;;:::o;1135:3038:30:-;1213:28;;1373:1;1355:19;;1351:62;;;1383:30;;-1:-1:-1;;;1383:30:30;;1411:1;1383:30;;;11568:25:145;11541:18;;1383:30:30;11422:177:145;1351:62:30;1424:18;1459:13;1470:1;1424:18;1459:8;;:13;:::i;:::-;1452:21;;;:::i;:::-;1445:29;;;-1:-1:-1;1501:1:30;-1:-1:-1;;1700:21:30;;1696:2471;;1781:6;1765:13;2066:1412;2073:24;;;2066:1412;;;2121:14;2151:27;2176:1;2167:10;;2160:6;2151:8;;:27;:::i;:::-;2144:35;;;:::i;:::-;2138:42;;;-1:-1:-1;2218:1:30;2206:13;;;2202:51;;2228:25;;-1:-1:-1;;;2228:25:30;;2251:1;2228:25;;;33332:36:145;33305:18;;2228:25:30;33180:194:145;2202:51:30;2537:12;:17;;2553:1;2537:17;2533:681;;2597:8;2582:23;;2533:681;;;2650:12;2638:24;;:8;:24;;;2634:580;;2690:17;;2710:22;2725:6;2719:5;2710:8;;:22;:::i;:::-;2690:42;;;;2829:205;2879:15;2924:10;2964:12;3006:2;;2829:20;:205::i;:::-;2797:237;;-1:-1:-1;2797:237:30;-1:-1:-1;3136:6:30;;-1:-1:-1;3183:8:30;;-1:-1:-1;3183:8:30;;-1:-1:-1;;2634:580:30;3236:8;;;;3283:11;;3311:27;;3327:10;;3236:8;3311;;:27;:::i;:::-;3304:35;;;:::i;:::-;3297:43;;;-1:-1:-1;3374:1:30;3366:9;;;3362:57;;3384:35;;-1:-1:-1;;;3384:35:30;;;;;11568:25:145;;;11541:18;;3384:35:30;11422:177:145;3362:57:30;3451:4;3458:1;3451:8;3441:18;;;;;;2099:1379;;2066:1412;;;3580:25;;;3576:73;;3614:35;;-1:-1:-1;;;3614:35:30;;;;;11568:25:145;;;11541:18;;3614:35:30;11422:177:145;3576:73:30;3845:1;3827:19;;3823:229;;;3870:17;;3890:22;3905:6;3899:5;3890:8;;:22;:::i;:::-;3870:42;;;;3966:67;3987:15;4004:10;4016:12;4030:2;;3966:20;:67::i;:::-;3934:99;;-1:-1:-1;3934:99:30;-1:-1:-1;;;3823:229:30;1737:2329;;1696:2471;;;4114:42;4134:11;4147:8;;4114:19;:42::i;:::-;4096:60;;1696:2471;1268:2905;;1135:3038;;;;;:::o;1107:2599:29:-;1197:25;1224;1265:8;:15;1284:1;1265:20;1261:57;;1107:2599;;;:::o;1261:57::-;1329:13;1345:20;1356:8;1345:10;:20::i;:::-;1329:36;;1452:7;:12;;1463:1;1452:12;1448:255;;1493:14;;;1505:1;1493:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1480:27;;1537:8;1521:10;1532:1;1521:13;;;;;;;;:::i;:::-;;;;;;;;;;:24;1573:14;;;1585:1;1573:14;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1560:27:29;-1:-1:-1;1617:19:29;:8;1634:1;1617:16;:19::i;:::-;1601:10;1612:1;1601:13;;;;;;;;:::i;:::-;;;;;;:35;;;;;;;;;;;1661:31;1107:2599;;;:::o;1448:255::-;1800:7;1788:20;;-1:-1:-1;;;;;1788:20:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1788:20:29;;1775:33;;1843:7;1831:20;;-1:-1:-1;;;;;1831:20:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1818:33:29;-1:-1:-1;1885:14:29;;1967:3;2014:1178;2030:8;:15;2021:6;:24;2014:1178;;;2065:8;;;;;2178:19;2200:25;:8;2065;2200:17;:25::i;:::-;2253:1;2243:11;;;;;2178:47;-1:-1:-1;2335:12:29;2350:24;:8;2243:11;2350:16;:24::i;:::-;2335:39;;2636:10;:17;;2650:3;2636:17;2632:505;;2690:6;2677:19;;2632:505;;;2735:10;2725:20;;:6;:20;;;2721:416;;-1:-1:-1;;2783:14:29;;;:18;2769:11;2882:26;:8;2792:5;2783:18;2882:14;:26::i;:::-;2863:45;;2930:58;2948:10;2960;2972;2984:3;2930:17;:58::i;:::-;-1:-1:-1;3065:12:29;;;;;3112:6;-1:-1:-1;3112:6:29;2721:416;-1:-1:-1;3155:22:29;;;;;;;2014:1178;;;3398:14;;;3383:12;3444:27;:8;3407:5;3398:14;3444;:27::i;:::-;3426:45;;3485:57;3503:10;3515;3527;3539:2;3485:17;:57::i;:::-;3611:7;3606:84;3628:7;3624:11;;:1;:11;;;3606:84;;;3662:10;3673:1;3662:13;;;;;;;;;;:::i;:::-;;;;;;;;;;3660:15;;-1:-1:-1;;3660:15:29;;;;;;3637:3;3606:84;;;;1861:1839;;;;;1251:2455;1107:2599;;;:::o;4234:1078:23:-;4434:16;4562;4608:7;:24;;;4581:7;:24;;;:51;;;;:::i;:::-;4562:70;;4647:7;4642:664;4664:10;4660:14;;:1;:14;;;4642:664;;;4695:11;4713:7;:24;;;4709:28;;:1;:28;;;:139;;4798:20;;;;4823:24;;;;4819:28;;:1;:28;:::i;:::-;4798:50;;;;;;;;;;:::i;:::-;;;;;;;4709:139;;;4756:7;:20;;;4777:1;4756:23;;;;;;;;;;:::i;:::-;;;;;;;4709:139;4863:25;;;;;;;;;:20;:25;;;4695:153;;-1:-1:-1;4863:25:23;5003:192;5027:7;:14;5023:1;:18;5003:192;;;5084:1;5070:15;;:7;5078:1;5070:10;;;;;;;;:::i;:::-;;;;;;;:15;;;5066:115;;5119:13;5133:1;5119:16;;;;;;;;:::i;:::-;;;;;;;5109:26;;5157:5;;5066:115;5043:3;;5003:192;;;-1:-1:-1;5255:21:23;;5220:75;;-1:-1:-1;;;5220:75:23;;-1:-1:-1;;;;;5220:25:23;;;;;:75;;5246:7;;5278;;5287;;5220:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5208:87;;;;:::i;:::-;;;4681:625;;4676:3;;;;;4642:664;;;;4452:860;4234:1078;;;;;;;:::o;3180:392:118:-;3279:12;3331:5;3307:21;:29;3303:108;;;3359:41;;-1:-1:-1;;;3359:41:118;;3394:4;3359:41;;;674:51:145;647:18;;3359:41:118;497:234:145;3303:108:118;3421:12;3435:23;3462:6;-1:-1:-1;;;;;3462:11:118;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:118:o;1263:359:68:-;1446:13;;1477:14;;;;;1509;;;;;1337:12;1553:14;;;;1585:16;;;;1380:235;;-1:-1:-1;;;1380:235:68;;;34584:49:145;;;;34688:3;34666:16;;;;-1:-1:-1;;;;;;34662:51:145;34649:11;;;34642:72;34737:3;34786:16;;;-1:-1:-1;;;;;;34782:25:145;;;34769:11;;;34762:46;-1:-1:-1;;;;;1509:24:68;;;34824:12:145;;;34817:28;34879:16;;;;34875:25;;;34861:12;;;34854:47;34917:12;;;34910:28;34954:12;;1380:235:68;;;;;;;;;;;;;1361:254;;1263:359;;;:::o;1628:154::-;1697:12;1745:7;:12;;;1759:7;:15;;;1728:47;;;;;;;;;:::i;2420:1192:23:-;2638:16;2656:24;2693:27;2722:21;2747:43;2779:10;2747:31;:43::i;:::-;2692:98;;;;2801:16;2850:10;:27;;;2820:10;:27;;;:57;;;;:::i;:::-;2801:76;;2911:10;2897:25;;-1:-1:-1;;;;;2897:25:23;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2897:25:23;;2887:35;;2937:7;2932:674;2954:10;2950:14;;:1;:14;;;2932:674;;;2985:11;3003:10;:27;;;2999:31;;:1;:31;;;:151;;3094:23;;;;3122:27;;;;3118:31;;:1;:31;:::i;:::-;3094:56;;;;;;;;;;:::i;:::-;;;;;;;2999:151;;;3049:10;:23;;;3073:1;3049:26;;;;;;;;;;:::i;:::-;;;;;;;2999:151;3165:25;;;;;;;;;:20;:25;;;2985:165;;-1:-1:-1;3165:25:23;3204:189;3228:6;:13;3224:1;:17;3204:189;;;3283:1;3270:14;;:6;3277:1;3270:9;;;;;;;;:::i;:::-;;;;;;;:14;;;3266:113;;3318:12;3331:1;3318:15;;;;;;;;:::i;:::-;;;;;;;3308:25;;3355:5;;3266:113;3243:3;;3204:189;;;-1:-1:-1;3420:45:23;;-1:-1:-1;;;3420:45:23;;-1:-1:-1;;;;;3420:28:23;;;;;:45;;3449:6;;3457:7;;3420:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3407:7;3415:1;3407:10;;;;;;;;;;:::i;:::-;;;;;;:58;;;;;3496:1;3483:7;3491:1;3483:10;;;;;;;;;;:::i;:::-;;;;;;;:14;3479:117;;;3531:7;3539:1;3531:10;;;;;;;;;;:::i;:::-;;;;;;;3517:5;:10;3523:3;-1:-1:-1;;;;;3517:10:23;-1:-1:-1;;;;;3517:10:23;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;3571:7;3579:1;3571:10;;;;;;;;;;:::i;:::-;;;;;;;3559:22;;;;;:::i;:::-;;;3479:117;-1:-1:-1;;2966:3:23;;2932:674;;4179:733:30;4371:12;;-1:-1:-1;;4413:38:30;;;;4409:449;;4486:23;;:28;:124;;4580:16;4598:11;;4563:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4486:124;;;4533:11;;4486:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4486:124:30;4467:143;;4409:449;;;-1:-1:-1;;4631:33:30;;;;4627:231;;4694:18;;:23;:82;;4751:11;4764;;4734:42;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4694:82;;;4720:11;;4694:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4694:82:30;4680:96;;4627:231;;;4814:33;;-1:-1:-1;;;4814:33:30;;33362:4:145;33350:17;;4814:33:30;;;33332:36:145;33305:18;;4814:33:30;33180:194:145;4627:231:30;-1:-1:-1;4875:16:30;;4893:11;;-1:-1:-1;;;;4179:733:30:o;5428:3052::-;5547:28;-1:-1:-1;;5591:21:30;;;;5587:2887;;5651:2;5632:21;;5628:67;;5662:33;;-1:-1:-1;;;5662:33:30;;;;;;;;;;;5628:67;5739:20;5762:48;5778:18;5789:6;5787:1;5778:8;;:18;:::i;:::-;5770:27;;;:::i;:::-;5762:46;:48::i;:::-;6205:239;;-1:-1:-1;;;6205:239:30;;;37470:38:145;;;-1:-1:-1;;;37524:11:145;;;37517:59;37592:11;;;37585:46;-1:-1:-1;;;;;;37668:3:145;37664:16;;;37660:62;37647:11;;;37640:83;5739:71:30;;-1:-1:-1;37739:12:145;;6205:239:30;;;;;;;;;;;;6187:257;;5614:841;5587:2887;;;-1:-1:-1;;6465:21:30;;;;6461:2013;;6560:2;6541:21;;;;:45;;-1:-1:-1;6584:2:30;6566:20;;6541:45;6537:91;;;6595:33;;-1:-1:-1;;;6595:33:30;;;;;;;;;;;6537:91;6672:20;6695:48;6711:18;6722:6;6720:1;6711:8;;:18;:::i;6695:48::-;6672:71;-1:-1:-1;6804:14:30;6821:50;6837:20;6849:7;6846:2;6837:8;;:20;:::i;6821:50::-;6804:67;-1:-1:-1;6902:16:30;-1:-1:-1;;6982:20:30;;7061:13;6982:8;7000:2;6982:8;;7061:13;:::i;:::-;7053:22;;;:::i;:::-;7909:475;;7117:1;7122:2;:16;;;7117:22;7104:36;;;;;-1:-1:-1;7909:475:30;;238:1:67;;7993:2:30;;238:1:67;;8122:12:30;;238:1:67;;8202:2:30;;351:1:67;;8338:6:30;;7104:36;;7909:475;;:::i;:::-;;;;;;;;;;;;;7891:493;;6488:1907;;;6461:2013;;;8422:41;;-1:-1:-1;;;8422:41:30;;38868:6:145;38856:19;;8422:41:30;;;38838:38:145;38811:18;;8422:41:30;38694:188:145;4741:1438:29;4807:13;;;4952:1134;4968:8;:15;4959:6;:24;4952:1134;;;5003:8;;;;;5048:19;5070:25;:8;5003;5070:17;:25::i;:::-;5048:47;;5123:1;5113:11;;;;5161:1;5146:12;:16;;;5142:58;;;5171:29;;-1:-1:-1;;;5171:29:29;;;;;11568:25:145;;;11541:18;;5171:29:29;11422:177:145;5142:58:29;5277:12;5292:24;:8;5309:6;5292:16;:24::i;:::-;5277:39;;5848:6;:13;;5858:3;5848:13;5844:45;;5870:19;;-1:-1:-1;;;5870:19:29;;;;;;;;;;;5844:45;435:1:66;:10;;;;462:31;;5907:124:29;;5954:9;;;;;667:10:66;;;;709:31;;5985:27:29;;5907:124;-1:-1:-1;6049:22:29;;;;;;;4952:1134;;;6119:8;:15;6109:6;:25;6105:67;;6143:29;;-1:-1:-1;;;6143:29:29;;;;;11568:25:145;;;11541:18;;6143:29:29;11422:177:145;6105:67:29;4822:1357;;4741:1438;;;:::o;12627:302:134:-;12704:5;12746:10;:6;12755:1;12746:10;:::i;:::-;12729:6;:13;:27;;12721:60;;;;-1:-1:-1;;;12721:60:134;;39089:2:145;12721:60:134;;;39071:21:145;39128:2;39108:18;;;39101:30;-1:-1:-1;;;39147:18:145;;;39140:49;39206:18;;12721:60:134;38887:343:145;12721:60:134;-1:-1:-1;12857:29:134;12873:3;12857:29;12851:36;;12627:302::o;12935:305::-;13013:6;13056:10;:6;13065:1;13056:10;:::i;:::-;13039:6;:13;:27;;13031:60;;;;-1:-1:-1;;;13031:60:134;;39437:2:145;13031:60:134;;;39419:21:145;39476:2;39456:18;;;39449:30;-1:-1:-1;;;39495:18:145;;;39488:50;39555:18;;13031:60:134;39235:344:145;13031:60:134;-1:-1:-1;13168:29:134;13184:3;13168:29;13162:36;;12935:305::o;9457:2804::-;9603:12;9655:7;9639:12;9655:7;9649:2;9639:12;:::i;:::-;:23;;9631:50;;;;-1:-1:-1;;;9631:50:134;;39786:2:145;9631:50:134;;;39768:21:145;39825:2;39805:18;;;39798:30;-1:-1:-1;;;39844:18:145;;;39837:44;39898:18;;9631:50:134;39584:338:145;9631:50:134;9716:16;9725:7;9716:6;:16;:::i;:::-;9699:6;:13;:33;;9691:63;;;;-1:-1:-1;;;9691:63:134;;40129:2:145;9691:63:134;;;40111:21:145;40168:2;40148:18;;;40141:30;-1:-1:-1;;;40187:18:145;;;40180:47;40244:18;;9691:63:134;39927:341:145;9691:63:134;9765:22;9828:15;;9856:1967;;;;11964:4;11958:11;11945:24;;12150:1;12139:9;12132:20;12198:4;12187:9;12183:20;12177:4;12170:34;9821:2397;;9856:1967;10038:4;10032:11;10019:24;;10697:2;10688:7;10684:16;11079:9;11072:17;11066:4;11062:28;11050:9;11039;11035:25;11031:60;11127:7;11123:2;11119:16;11379:6;11365:9;11358:17;11352:4;11348:28;11336:9;11328:6;11324:22;11320:57;11316:70;11153:425;11412:3;11408:2;11405:11;11153:425;;;11550:9;;11539:21;;11453:4;11445:13;;;;11485;11153:425;;;-1:-1:-1;;11596:26:134;;;11804:2;11787:11;-1:-1:-1;;11783:25:134;11777:4;11770:39;-1:-1:-1;9821:2397:134;-1:-1:-1;12245:9:134;9457:2804;-1:-1:-1;;;;9457:2804:134:o;3712:909:29:-;4037:7;:14;;4048:3;4037:14;4033:46;;4060:19;;-1:-1:-1;;;4060:19:29;;;;;;;;;;;4033:46;4089:15;4107:11;:7;4117:1;4107:11;:::i;:::-;4089:29;;4134:9;4129:486;4153:11;:18;4149:1;:22;4129:486;;;4192:11;4206;4218:1;4206:14;;;;;;;;:::i;:::-;;;;;;;4192:28;;4251:5;4238:18;;:9;:18;;;4234:371;;4310:11;4322:1;4310:14;;;;;;;;:::i;:::-;;;;;;;4326:11;4293:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4276:11;4288:1;4276:14;;;;;;;;:::i;:::-;;;;;;:62;;;;4356:5;;;4234:371;4386:5;:10;;4395:1;4386:10;4382:223;;4512:9;4495:11;4507:1;4495:14;;;;;;;;:::i;:::-;;;;;;:26;;;;;;;;;;;4556:11;4539;4551:1;4539:14;;;;;;;;:::i;4382:223::-;-1:-1:-1;4173:3:29;;4129:486;;4625:582:118;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:118;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:118;;-1:-1:-1;;;;;692:32:145;;5121:24:118;;;674:51:145;647:18;;5121:24:118;497:234:145;5041:119:118;-1:-1:-1;5180:10:118;5173:17;;9259:218:129;9316:7;9347:17;9339:25;;9335:105;;;9387:42;;-1:-1:-1;;;9387:42:129;;9418:3;9387:42;;;40455:36:145;40507:18;;;40500:34;;;40428:18;;9387:42:129;40273:267:145;9335:105:129;-1:-1:-1;9464:5:129;9259:218::o;5743:516:118:-;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:118;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:286:145;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:145;;209:43;;199:71;;266:1;263;256:12;736:131;-1:-1:-1;;;;;811:31:145;;801:42;;791:70;;857:1;854;847:12;872:134;940:20;;969:31;940:20;969:31;:::i;:::-;872:134;;;:::o;1011:121::-;1096:10;1089:5;1085:22;1078:5;1075:33;1065:61;;1122:1;1119;1112:12;1137:132;1204:20;;1233:30;1204:20;1233:30;:::i;1274:386::-;1341:6;1349;1402:2;1390:9;1381:7;1377:23;1373:32;1370:52;;;1418:1;1415;1408:12;1370:52;1457:9;1444:23;1476:31;1501:5;1476:31;:::i;:::-;1526:5;-1:-1:-1;1583:2:145;1568:18;;1555:32;1596;1555;1596;:::i;:::-;1647:7;1637:17;;;1274:386;;;;;:::o;1868:267::-;1749:12;;1763:10;1745:29;1733:42;;1828:4;1817:16;;;1811:23;-1:-1:-1;;;;;1807:49:145;1791:14;;;1784:73;2066:2;2051:18;;2078:51;1665:198;2140:348;2292:2;2277:18;;2325:1;2314:13;;2304:144;;2370:10;2365:3;2361:20;2358:1;2351:31;2405:4;2402:1;2395:15;2433:4;2430:1;2423:15;2304:144;2457:25;;;2140:348;:::o;2493:456::-;2570:6;2578;2586;2639:2;2627:9;2618:7;2614:23;2610:32;2607:52;;;2655:1;2652;2645:12;2607:52;2694:9;2681:23;2713:31;2738:5;2713:31;:::i;:::-;2763:5;-1:-1:-1;2820:2:145;2805:18;;2792:32;2833:33;2792:32;2833:33;:::i;:::-;2493:456;;2885:7;;-1:-1:-1;;;2939:2:145;2924:18;;;;2911:32;;2493:456::o;2954:390::-;3040:8;3050:6;3104:3;3097:4;3089:6;3085:17;3081:27;3071:55;;3122:1;3119;3112:12;3071:55;-1:-1:-1;3145:20:145;;-1:-1:-1;;;;;3177:30:145;;3174:50;;;3220:1;3217;3210:12;3174:50;3257:4;3249:6;3245:17;3233:29;;3317:3;3310:4;3300:6;3297:1;3293:14;3285:6;3281:27;3277:38;3274:47;3271:67;;;3334:1;3331;3324:12;3349:630;3479:6;3487;3495;3548:2;3536:9;3527:7;3523:23;3519:32;3516:52;;;3564:1;3561;3554:12;3516:52;3603:9;3590:23;3622:31;3647:5;3622:31;:::i;:::-;3672:5;-1:-1:-1;3728:2:145;3713:18;;3700:32;-1:-1:-1;;;;;3744:30:145;;3741:50;;;3787:1;3784;3777:12;3741:50;3826:93;3911:7;3902:6;3891:9;3887:22;3826:93;:::i;:::-;3349:630;;3938:8;;-1:-1:-1;3800:119:145;;-1:-1:-1;;;;3349:630:145:o;3984:504::-;4114:6;4122;4175:2;4163:9;4154:7;4150:23;4146:32;4143:52;;;4191:1;4188;4181:12;4143:52;4231:9;4218:23;-1:-1:-1;;;;;4256:6:145;4253:30;4250:50;;;4296:1;4293;4286:12;4250:50;4335:93;4420:7;4411:6;4400:9;4396:22;4335:93;:::i;:::-;4447:8;;4309:119;;-1:-1:-1;3984:504:145;-1:-1:-1;;;;3984:504:145:o;4493:476::-;4557:3;4595:5;4589:12;4622:6;4617:3;4610:19;4648:4;4677;4672:3;4668:14;4661:21;;4716:4;4709:5;4705:16;4739:1;4749:195;4763:6;4760:1;4757:13;4749:195;;;4828:13;;-1:-1:-1;;;;;4824:39:145;4812:52;;4884:12;;;;4919:15;;;;4860:1;4778:9;4749:195;;;-1:-1:-1;4960:3:145;;4493:476;-1:-1:-1;;;;;4493:476:145:o;4974:684::-;-1:-1:-1;;;;;5066:5:145;5060:12;5056:37;5051:3;5044:50;5155:4;5147;5140:5;5136:16;5130:23;5126:34;5119:4;5114:3;5110:14;5103:58;5222:4;5214;5207:5;5203:16;5197:23;5193:34;5186:4;5181:3;5177:14;5170:58;5289:4;5281;5274:5;5270:16;5264:23;5260:34;5253:4;5248:3;5244:14;5237:58;5026:3;5341:4;5334:5;5330:16;5324:23;5379:4;5372;5367:3;5363:14;5356:28;5405:69;5468:4;5463:3;5459:14;5445:12;5405:69;:::i;:::-;5393:81;;5522:4;5515:5;5511:16;5505:23;5570:3;5564:4;5560:14;5553:4;5548:3;5544:14;5537:38;5591:61;5647:4;5631:14;5591:61;:::i;:::-;5584:68;4974:684;-1:-1:-1;;;;;4974:684:145:o;5663:264::-;5846:2;5835:9;5828:21;5809:4;5866:55;5917:2;5906:9;5902:18;5894:6;5866:55;:::i;5932:118::-;6018:5;6011:13;6004:21;5997:5;5994:32;5984:60;;6040:1;6037;6030:12;6055:128;6120:20;;6149:28;6120:20;6149:28;:::i;6188:924::-;6300:6;6308;6316;6324;6377:2;6365:9;6356:7;6352:23;6348:32;6345:52;;;6393:1;6390;6383:12;6345:52;6433:9;6420:23;-1:-1:-1;;;;;6503:2:145;6495:6;6492:14;6489:34;;;6519:1;6516;6509:12;6489:34;6542:22;;;;6598:3;6580:16;;;6576:26;6573:46;;;6615:1;6612;6605:12;6573:46;6638:2;;-1:-1:-1;6693:2:145;6678:18;;6665:32;;6709:16;;;6706:36;;;6738:1;6735;6728:12;6706:36;6776:8;6765:9;6761:24;6751:34;;6823:7;6816:4;6812:2;6808:13;6804:27;6794:55;;6845:1;6842;6835:12;6794:55;6885:2;6872:16;6911:2;6903:6;6900:14;6897:34;;;6927:1;6924;6917:12;6897:34;6972:7;6967:2;6958:6;6954:2;6950:15;6946:24;6943:37;6940:57;;;6993:1;6990;6983:12;6940:57;7024:2;7020;7016:11;7006:21;;7046:6;7036:16;;;;;7071:35;7102:2;7091:9;7087:18;7071:35;:::i;:::-;7061:45;;6188:924;;;;;;;:::o;7275:250::-;7360:1;7370:113;7384:6;7381:1;7378:13;7370:113;;;7460:11;;;7454:18;7441:11;;;7434:39;7406:2;7399:10;7370:113;;;-1:-1:-1;;7517:1:145;7499:16;;7492:27;7275:250::o;7530:270::-;7571:3;7609:5;7603:12;7636:6;7631:3;7624:19;7652:76;7721:6;7714:4;7709:3;7705:14;7698:4;7691:5;7687:16;7652:76;:::i;:::-;7782:2;7761:15;-1:-1:-1;;7757:29:145;7748:39;;;;7789:4;7744:50;;7530:270;-1:-1:-1;;7530:270:145:o;7805:372::-;7195:12;;7183:25;;7257:4;7246:16;;;7240:23;7224:14;;;7217:47;8107:2;8102;8091:9;8087:18;8080:30;8003:4;8127:44;8167:2;8156:9;8152:18;8144:6;8127:44;:::i;9045:245::-;9103:6;9156:2;9144:9;9135:7;9131:23;9127:32;9124:52;;;9172:1;9169;9162:12;9124:52;9211:9;9198:23;9230:30;9254:5;9230:30;:::i;9295:525::-;9370:6;9378;9386;9439:2;9427:9;9418:7;9414:23;9410:32;9407:52;;;9455:1;9452;9445:12;9407:52;9494:9;9481:23;9513:30;9537:5;9513:30;:::i;:::-;9562:5;-1:-1:-1;9619:2:145;9604:18;;9591:32;9632:33;9591:32;9632:33;:::i;:::-;9684:7;-1:-1:-1;9743:2:145;9728:18;;9715:32;9756;9715;9756;:::i;:::-;9807:7;9797:17;;;9295:525;;;;;:::o;9825:217::-;9972:2;9961:9;9954:21;9935:4;9992:44;10032:2;10021:9;10017:18;10009:6;9992:44;:::i;10047:667::-;10182:6;10190;10243:2;10231:9;10222:7;10218:23;10214:32;10211:52;;;10259:1;10256;10249:12;10211:52;10299:9;10286:23;-1:-1:-1;;;;;10369:2:145;10361:6;10358:14;10355:34;;;10385:1;10382;10375:12;10355:34;10423:6;10412:9;10408:22;10398:32;;10468:7;10461:4;10457:2;10453:13;10449:27;10439:55;;10490:1;10487;10480:12;10439:55;10530:2;10517:16;10556:2;10548:6;10545:14;10542:34;;;10572:1;10569;10562:12;10542:34;10628:7;10623:2;10615:4;10607:6;10603:17;10599:2;10595:26;10591:35;10588:48;10585:68;;;10649:1;10646;10639:12;10585:68;10680:2;10672:11;;;;;10702:6;;-1:-1:-1;10047:667:145;;-1:-1:-1;;;;10047:667:145:o;10719:180::-;10778:6;10831:2;10819:9;10810:7;10806:23;10802:32;10799:52;;;10847:1;10844;10837:12;10799:52;-1:-1:-1;10870:23:145;;10719:180;-1:-1:-1;10719:180:145:o;10904:261::-;7195:12;;7183:25;;7257:4;7246:16;;;7240:23;7224:14;;;7217:47;11098:2;11083:18;;11110:49;7117:153;11170:247;11229:6;11282:2;11270:9;11261:7;11257:23;11253:32;11250:52;;;11298:1;11295;11288:12;11250:52;11337:9;11324:23;11356:31;11381:5;11356:31;:::i;11604:315::-;11672:6;11680;11733:2;11721:9;11712:7;11708:23;11704:32;11701:52;;;11749:1;11746;11739:12;11701:52;11788:9;11775:23;11807:31;11832:5;11807:31;:::i;:::-;11857:5;11909:2;11894:18;;;;11881:32;;-1:-1:-1;;;11604:315:145:o;11924:251::-;11994:6;12047:2;12035:9;12026:7;12022:23;12018:32;12015:52;;;12063:1;12060;12053:12;12015:52;12095:9;12089:16;12114:31;12139:5;12114:31;:::i;12560:127::-;12621:10;12616:3;12612:20;12609:1;12602:31;12652:4;12649:1;12642:15;12676:4;12673:1;12666:15;12692:332;12793:4;12851:11;12838:25;12945:2;12941:7;12930:8;12914:14;12910:29;12906:43;12886:18;12882:68;12872:96;;12964:1;12961;12954:12;12872:96;12985:33;;;;;12692:332;-1:-1:-1;;12692:332:145:o;13029:521::-;13106:4;13112:6;13172:11;13159:25;13266:2;13262:7;13251:8;13235:14;13231:29;13227:43;13207:18;13203:68;13193:96;;13285:1;13282;13275:12;13193:96;13312:33;;13364:20;;;-1:-1:-1;;;;;;13396:30:145;;13393:50;;;13439:1;13436;13429:12;13393:50;13472:4;13460:17;;-1:-1:-1;13503:14:145;13499:27;;;13489:38;;13486:58;;;13540:1;13537;13530:12;13555:127;13616:10;13611:3;13607:20;13604:1;13597:31;13647:4;13644:1;13637:15;13671:4;13668:1;13661:15;13687:253;13759:2;13753:9;13801:4;13789:17;;-1:-1:-1;;;;;13821:34:145;;13857:22;;;13818:62;13815:88;;;13883:18;;:::i;:::-;13919:2;13912:22;13687:253;:::o;13945:::-;14017:2;14011:9;14059:4;14047:17;;-1:-1:-1;;;;;14079:34:145;;14115:22;;;14076:62;14073:88;;;14141:18;;:::i;14203:275::-;14274:2;14268:9;14339:2;14320:13;;-1:-1:-1;;14316:27:145;14304:40;;-1:-1:-1;;;;;14359:34:145;;14395:22;;;14356:62;14353:88;;;14421:18;;:::i;:::-;14457:2;14450:22;14203:275;;-1:-1:-1;14203:275:145:o;14483:650::-;14574:6;14627:2;14615:9;14606:7;14602:23;14598:32;14595:52;;;14643:1;14640;14633:12;14595:52;14676:2;14670:9;14718:2;14710:6;14706:15;14787:6;14775:10;14772:22;-1:-1:-1;;;;;14739:10:145;14736:34;14733:62;14730:88;;;14798:18;;:::i;:::-;14834:2;14827:22;14871:23;;14903:30;14871:23;14903:30;:::i;:::-;14942:21;;15015:2;15000:18;;14987:32;15028:33;14987:32;15028:33;:::i;:::-;15089:2;15077:15;;15070:32;15081:6;14483:650;-1:-1:-1;;;14483:650:145:o;15138:171::-;15205:20;;-1:-1:-1;;;;;15254:30:145;;15244:41;;15234:69;;15299:1;15296;15289:12;15314:156;15380:20;;15440:4;15429:16;;15419:27;;15409:55;;15460:1;15457;15450:12;15475:787;15529:5;15582:3;15575:4;15567:6;15563:17;15559:27;15549:55;;15600:1;15597;15590:12;15549:55;15636:6;15623:20;15662:4;-1:-1:-1;;;;;15681:2:145;15678:26;15675:52;;;15707:18;;:::i;:::-;15753:2;15750:1;15746:10;15776:28;15800:2;15796;15792:11;15776:28;:::i;:::-;15838:15;;;15908;;;15904:24;;;15869:12;;;;15940:15;;;15937:35;;;15968:1;15965;15958:12;15937:35;16004:2;15996:6;15992:15;15981:26;;16016:217;16032:6;16027:3;16024:15;16016:217;;;16112:3;16099:17;16129:31;16154:5;16129:31;:::i;:::-;16173:18;;16049:12;;;;16211;;;;16016:217;;;16251:5;15475:787;-1:-1:-1;;;;;;;15475:787:145:o;16267:854::-;16323:5;16371:4;16359:9;16354:3;16350:19;16346:30;16343:50;;;16389:1;16386;16379:12;16343:50;16411:22;;:::i;:::-;16402:31;;16456:28;16474:9;16456:28;:::i;:::-;16449:5;16442:43;16517:36;16549:2;16538:9;16534:18;16517:36;:::i;:::-;16512:2;16505:5;16501:14;16494:60;16586:36;16618:2;16607:9;16603:18;16586:36;:::i;:::-;16581:2;16574:5;16570:14;16563:60;16655:36;16687:2;16676:9;16672:18;16655:36;:::i;:::-;16650:2;16643:5;16639:14;16632:60;16743:3;16732:9;16728:19;16715:33;-1:-1:-1;;;;;16808:2:145;16800:6;16797:14;16794:34;;;16824:1;16821;16814:12;16794:34;16861:57;16914:3;16905:6;16894:9;16890:22;16861:57;:::i;:::-;16855:3;16848:5;16844:15;16837:82;16972:3;16961:9;16957:19;16944:33;16928:49;;17002:2;16992:8;16989:16;16986:36;;;17018:1;17015;17008:12;16986:36;;17055:59;17110:3;17099:8;17088:9;17084:24;17055:59;:::i;:::-;17049:3;17042:5;17038:15;17031:84;;16267:854;;;;:::o;17126:349::-;17212:6;17265:2;17253:9;17244:7;17240:23;17236:32;17233:52;;;17281:1;17278;17271:12;17233:52;17321:9;17308:23;-1:-1:-1;;;;;17346:6:145;17343:30;17340:50;;;17386:1;17383;17376:12;17340:50;17409:60;17461:7;17452:6;17441:9;17437:22;17409:60;:::i;17677:341::-;17787:4;17845:11;17832:25;17939:2;17935:7;17924:8;17908:14;17904:29;17900:43;17880:18;17876:68;17866:96;;17958:1;17955;17948:12;18023:327;18118:4;18176:11;18163:25;18270:3;18266:8;18255;18239:14;18235:29;18231:44;18211:18;18207:69;18197:97;;18290:1;18287;18280:12;18355:182;18412:6;18465:2;18453:9;18444:7;18440:23;18436:32;18433:52;;;18481:1;18478;18471:12;18433:52;18504:27;18521:9;18504:27;:::i;18542:184::-;18600:6;18653:2;18641:9;18632:7;18628:23;18624:32;18621:52;;;18669:1;18666;18659:12;18621:52;18692:28;18710:9;18692:28;:::i;18731:199::-;18837:9;18874:50;18909:14;18902:5;18874:50;:::i;18935:520::-;19005:5;19012:6;19072:3;19059:17;19158:2;19154:7;19143:8;19127:14;19123:29;19119:43;19099:18;19095:68;19085:96;;19177:1;19174;19167:12;19085:96;19205:33;;19309:4;19296:18;;;-1:-1:-1;19257:21:145;;-1:-1:-1;;;;;;19326:30:145;;19323:50;;;19369:1;19366;19359:12;19323:50;19423:6;19420:1;19416:14;19400;19396:35;19389:5;19385:47;19382:67;;;19445:1;19442;19435:12;19460:524;19560:6;19555:3;19548:19;19530:3;19586:4;19615;19610:3;19606:14;19599:21;;19643:5;19666:1;19676:283;19690:6;19687:1;19684:13;19676:283;;;19767:6;19754:20;19787:33;19812:7;19787:33;:::i;:::-;-1:-1:-1;;;;;19845:33:145;19833:46;;19899:12;;;;19934:15;;;;19875:1;19705:9;19676:283;;19989:2626;20256:2;20308:21;;;20281:18;;;20364:22;;;20227:4;;20405:2;20423:18;;;20487:1;20483:14;;;20468:30;;20464:39;;20526:6;20227:4;20560:2026;20574:6;20571:1;20568:13;20560:2026;;;20637:2;20633:7;20693:2;20681:9;20673:6;20669:22;20665:31;20660:3;20653:44;20749:6;20736:20;20840:2;20836:7;20827:6;20811:14;20807:27;20803:41;20783:18;20779:66;20769:94;;20859:1;20856;20849:12;20769:94;20889:31;;20948:19;;20980:32;20948:19;20980:32;:::i;:::-;21053:10;21040:24;21025:40;;21119:14;;;21106:28;21191:14;21187:26;;;-1:-1:-1;;21183:41:145;21157:68;;21147:96;;21239:1;21236;21229:12;21147:96;21323:15;;;21316:27;;;21271:32;-1:-1:-1;;;;;21384:26:145;21271:32;21384:26;:::i;:::-;21380:51;21375:2;21367:6;21363:15;21356:76;21465:34;21495:2;21486:7;21482:16;21465:34;:::i;:::-;21522:2;21547:4;21606:2;21592:12;21588:21;21583:2;21575:6;21571:15;21564:46;21645:34;21675:2;21666:7;21662:16;21645:34;:::i;:::-;21623:56;;21702:3;21762:2;21746:14;21742:23;21737:2;21729:6;21725:15;21718:48;21801:34;21831:2;21822:7;21818:16;21801:34;:::i;:::-;21779:56;;21858:3;21848:13;;21918:2;21902:14;21898:23;21893:2;21885:6;21881:15;21874:48;21971:69;22036:2;22027:7;22023:16;22014:7;21971:69;:::i;:::-;22063:4;22087:15;;;22080:27;21935:105;-1:-1:-1;21935:105:145;-1:-1:-1;22134:85:145;;-1:-1:-1;22214:3:145;22202:16;;21935:105;;22134:85;:::i;:::-;22120:99;;;22270:69;22335:2;22326:7;22322:16;22313:7;22270:69;:::i;:::-;22232:107;;;;22402:2;22393:6;22385;22381:19;22377:28;22371:3;22363:6;22359:16;22352:54;22429:77;22499:6;22483:14;22467;22429:77;:::i;:::-;22564:12;;;;22419:87;-1:-1:-1;;;22529:15:145;;;;-1:-1:-1;;20596:1:145;20589:9;20560:2026;;;-1:-1:-1;22603:6:145;;19989:2626;-1:-1:-1;;;;;;;;19989:2626:145:o;22620:539::-;22823:2;22812:9;22805:21;22786:4;22849:44;22889:2;22878:9;22874:18;22866:6;22849:44;:::i;:::-;22941:9;22933:6;22929:22;22924:2;22913:9;22909:18;22902:50;22976:6;22968;22961:22;23030:6;23022;23017:2;23009:6;23005:15;22992:45;23083:1;23078:2;23069:6;23061;23057:19;23053:28;23046:39;23150:2;23143;23139:7;23134:2;23126:6;23122:15;23118:29;23110:6;23106:42;23102:51;23094:59;;;22620:539;;;;;;:::o;23164:581::-;23343:5;23330:19;23358:32;23382:7;23358:32;:::i;:::-;23422:10;23413:7;23409:24;23399:34;;23458:4;23452:11;23514:2;23500:10;23496:15;23492:2;23488:24;23485:32;23479:4;23472:46;23566:2;23559:5;23555:14;23542:28;23579:33;23604:7;23579:33;:::i;:::-;-1:-1:-1;;;;;;23640:37:145;;;;23637:45;;;23692:2;23688:16;;;;-1:-1:-1;;;;;23684:53:145;23634:104;23621:118;;-1:-1:-1;23164:581:145:o;23750:1188::-;24027:2;24079:21;;;24052:18;;;24135:22;;;23998:4;;24176:2;24194:18;;;24235:6;23998:4;24269:643;24283:6;24280:1;24277:13;24269:643;;;24358:6;24345:20;24378:30;24402:5;24378:30;:::i;:::-;24431:10;24466:14;;;24454:27;;24522:15;;;24509:29;;24551:32;24509:29;24551:32;:::i;:::-;24617:16;24603:12;;;24596:38;24675:15;;;24662:29;24704:33;24662:29;24704:33;:::i;:::-;-1:-1:-1;;;;;24771:33:145;24757:12;;;24750:55;24828:4;24852:12;;;;24887:15;;;;;24801:1;24298:9;24269:643;;;-1:-1:-1;24929:3:145;;23750:1188;-1:-1:-1;;;;;;;23750:1188:145:o;25196:451::-;-1:-1:-1;;;;;25479:32:145;;25461:51;;25560:10;25548:23;;25543:2;25528:18;;25521:51;25448:3;25433:19;;25581:60;25637:2;25622:18;;25614:6;1749:12;;1763:10;1745:29;1733:42;;1828:4;1817:16;;;1811:23;-1:-1:-1;;;;;1807:49:145;1791:14;;1784:73;1665:198;25652:447;-1:-1:-1;;;;;25889:32:145;;25871:51;;25970:10;25958:23;;25953:2;25938:18;;25931:51;26018:2;26013;25998:18;;25991:30;;;-1:-1:-1;;26038:55:145;;26074:18;;26066:6;26038:55;:::i;26104:127::-;26165:10;26160:3;26156:20;26153:1;26146:31;26196:4;26193:1;26186:15;26220:4;26217:1;26210:15;26236:151;26326:4;26319:12;;;26305;;;26301:31;;26344:14;;26341:40;;;26361:18;;:::i;26392:262::-;26430:1;26464:4;26461:1;26457:12;26488:3;26478:134;;26534:10;26529:3;26525:20;26522:1;26515:31;26569:4;26566:1;26559:15;26597:4;26594:1;26587:15;26478:134;26644:3;26637:4;26634:1;26630:12;26626:22;26621:27;;;26392:262;;;;:::o;26659:125::-;26724:9;;;26745:10;;;26742:36;;;26758:18;;:::i;26789:473::-;27030:10;27022:6;27018:23;27007:9;27000:42;27107:1;27103;27098:3;27094:11;27090:19;27082:6;27078:32;27073:2;27062:9;27058:18;27051:60;27147:6;27142:2;27131:9;27127:18;27120:34;27190:3;27185:2;27174:9;27170:18;27163:31;26981:4;27211:45;27251:3;27240:9;27236:19;27228:6;27211:45;:::i;27267:184::-;27337:6;27390:2;27378:9;27369:7;27365:23;27361:32;27358:52;;;27406:1;27403;27396:12;27358:52;-1:-1:-1;27429:16:145;;27267:184;-1:-1:-1;27267:184:145:o;28392:245::-;28459:6;28512:2;28500:9;28491:7;28487:23;28483:32;28480:52;;;28528:1;28525;28518:12;28480:52;28560:9;28554:16;28579:28;28601:5;28579:28;:::i;28642:530::-;28684:5;28737:3;28730:4;28722:6;28718:17;28714:27;28704:55;;28755:1;28752;28745:12;28704:55;28791:6;28778:20;-1:-1:-1;;;;;28813:2:145;28810:26;28807:52;;;28839:18;;:::i;:::-;28883:55;28926:2;28907:13;;-1:-1:-1;;28903:27:145;28932:4;28899:38;28883:55;:::i;:::-;28963:2;28954:7;28947:19;29009:3;29002:4;28997:2;28989:6;28985:15;28981:26;28978:35;28975:55;;;29026:1;29023;29016:12;28975:55;29091:2;29084:4;29076:6;29072:17;29065:4;29056:7;29052:18;29039:55;29139:1;29114:16;;;29132:4;29110:27;29103:38;;;;29118:7;28642:530;-1:-1:-1;;;28642:530:145:o;29177:848::-;29279:9;29338:4;29330:5;29314:14;29310:26;29306:37;29303:57;;;29356:1;29353;29346:12;29303:57;29384:22;;:::i;:::-;29431:24;29449:5;29431:24;:::i;:::-;29422:7;29415:41;29490:33;29519:2;29512:5;29508:14;29490:33;:::i;:::-;29485:2;29476:7;29472:16;29465:59;29558:34;29588:2;29581:5;29577:14;29558:34;:::i;:::-;29553:2;29544:7;29540:16;29533:60;29627:33;29656:2;29649:5;29645:14;29627:33;:::i;:::-;29622:2;29613:7;29609:16;29602:59;29720:3;29713:5;29709:15;29696:29;29690:3;29681:7;29677:17;29670:56;29785:3;29778:5;29774:15;29761:29;29755:3;29746:7;29742:17;29735:56;29838:3;29831:5;29827:15;29814:29;-1:-1:-1;;;;;29858:6:145;29855:30;29852:50;;;29898:1;29895;29888:12;29852:50;29937:52;29974:14;29965:6;29958:5;29954:18;29937:52;:::i;:::-;29931:3;29918:17;;29911:79;-1:-1:-1;29922:7:145;29177:848;-1:-1:-1;;29177:848:145:o;30030:492::-;30205:3;30243:6;30237:13;30259:66;30318:6;30313:3;30306:4;30298:6;30294:17;30259:66;:::i;:::-;30388:13;;30347:16;;;;30410:70;30388:13;30347:16;30457:4;30445:17;;30410:70;:::i;:::-;30496:20;;30030:492;-1:-1:-1;;;;30030:492:145:o;30997:1008::-;31332:2;31321:9;31314:21;31295:4;31358:56;31410:2;31399:9;31395:18;31387:6;31358:56;:::i;:::-;31433:2;31483:9;31475:6;31471:22;31466:2;31455:9;31451:18;31444:50;31517:44;31554:6;31546;31517:44;:::i;:::-;31597:22;;;31592:2;31577:18;;31570:50;31669:13;;31691:22;;;31741:2;31767:15;;;;-1:-1:-1;31729:15:145;;;;31800:1;31810:169;31824:6;31821:1;31818:13;31810:169;;;31885:13;;31873:26;;31954:15;;;;31919:12;;;;31846:1;31839:9;31810:169;;32200:331;32305:9;32316;32358:8;32346:10;32343:24;32340:44;;;32380:1;32377;32370:12;32340:44;32409:6;32399:8;32396:20;32393:40;;;32429:1;32426;32419:12;32393:40;-1:-1:-1;;32455:23:145;;;32500:25;;;;;-1:-1:-1;32200:331:145:o;32536:318::-;-1:-1:-1;;;;;;32656:19:145;;32727:11;;;;32758:1;32750:10;;32747:101;;;32835:2;32829;32822:3;32819:1;32815:11;32812:1;32808:19;32804:28;32800:2;32796:37;32792:46;32783:55;;32747:101;;;32536:318;;;;:::o;32859:316::-;-1:-1:-1;;;;;;32979:19:145;;33048:11;;;;33079:1;33071:10;;33068:101;;;33140:1;33136:11;;;;33133:1;33129:19;33125:28;;;33117:37;33113:46;;;;32859:316;-1:-1:-1;;32859:316:145:o;33379:148::-;33467:4;33446:12;;;33460;;;33442:31;;33485:13;;33482:39;;;33501:18;;:::i;33532:496::-;33771:10;33759:23;;33741:42;;-1:-1:-1;;;;;33819:31:145;;33814:2;33799:18;;33792:59;-1:-1:-1;;;;;33887:32:145;;33882:2;33867:18;;33860:60;33956:3;33951:2;33936:18;;33929:31;;;-1:-1:-1;;33977:45:145;;34002:19;;33994:6;33977:45;:::i;34033:287::-;34162:3;34200:6;34194:13;34216:66;34275:6;34270:3;34263:4;34255:6;34251:17;34216:66;:::i;34977:359::-;35164:6;35159:3;35152:19;35134:3;35200:6;35194:13;35216:73;35282:6;35277:2;35272:3;35268:12;35263:2;35255:6;35251:15;35216:73;:::i;:::-;35309:16;;;;35327:2;35305:25;;34977:359;-1:-1:-1;;;34977:359:145:o;35341:826::-;35580:2;35569:9;35562:21;35638:10;35629:6;35623:13;35619:30;35614:2;35603:9;35599:18;35592:58;35543:4;35697;35689:6;35685:17;35679:24;35739:4;35734:2;35723:9;35719:18;35712:32;35767:51;35813:3;35802:9;35798:19;35784:12;35767:51;:::i;:::-;35873:2;35861:15;;35855:22;35849:3;35834:19;;;35827:51;;;;35938:2;35926:15;;35920:22;-1:-1:-1;;;;;35916:47:145;35909:4;35894:20;;35887:77;36011:16;;36005:23;-1:-1:-1;;;;;36001:49:145;35995:3;35980:19;;35973:78;36089:22;;;36082:4;36067:20;;36060:52;35753:65;-1:-1:-1;36129:32:145;35753:65;36146:6;36129:32;:::i;36172:470::-;36357:3;36395:6;36389:13;36411:66;36470:6;36465:3;36458:4;36450:6;36446:17;36411:66;:::i;:::-;36499:16;;36552:6;36544;36499:16;36524:35;36616:1;36578:18;;36605:13;;;-1:-1:-1;36578:18:145;;36172:470;-1:-1:-1;;;36172:470:145:o;36836:255::-;36956:19;;36995:2;36987:11;;36984:101;;;-1:-1:-1;;37056:2:145;37052:12;;;37049:1;37045:20;37041:33;37030:45;36836:255;;;;:::o;37762:927::-;38109:3;38143:16;;;-1:-1:-1;;;;;;38139:25:145;;;38127:38;;38188:3;38232:16;;;-1:-1:-1;;;;;;38228:25:145;;;38224:1;38215:11;;38208:46;38287:16;;;38283:25;;38279:1;38270:11;;38263:46;38346:3;38342:16;;;-1:-1:-1;;;;;;38338:62:145;38334:1;38325:11;;38318:83;38435:16;;;38431:25;;38426:2;38417:12;;38410:47;38491:16;;;;38487:25;38482:2;38473:12;;38466:47;38547:16;;;;38543:25;38538:2;38529:12;;38522:47;38077:3;38578:40;38614:2;38605:12;;38597:6;37170:3;37166:15;-1:-1:-1;;;;;;37162:61:145;37150:74;;37096:134;38578:40;-1:-1:-1;38643:2:145;38634:12;;38627:28;;;;38680:2;38671:12;;37762:927;-1:-1:-1;;;;;;;;37762:927:145:o","linkReferences":{},"immutableReferences":{"1972":[{"start":1690,"length":32},{"start":1951,"length":32},{"start":4785,"length":32},{"start":6105,"length":32}],"2129":[{"start":7440,"length":32},{"start":7795,"length":32}]}},"methodIdentifiers":{"executorConfigs(address,uint32)":"4d963200","fees(address)":"faaebd21","getAppUlnConfig(address,uint32)":"39e3f938","getConfig(uint32,address,uint32)":"9c33abf7","getExecutorConfig(address,uint32)":"188183f4","getUlnConfig(address,uint32)":"43ea4fa9","isSupportedEid(uint32)":"6750cd4c","messageLibType()":"1881d94d","owner()":"8da5cb5b","quote((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"d80e9bd9","renounceOwnership()":"715018a6","send((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"4389e58f","setConfig(address,(uint32,uint32,bytes)[])":"20efd722","setDefaultExecutorConfigs((uint32,(uint32,address))[])":"c14c4349","setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":"29460b0b","setTreasury(address)":"f0f44260","setTreasuryNativeFeeCap(uint256)":"d15b0d49","supportsInterface(bytes4)":"01ffc9a7","testHelper()":"0e97289b","transferOwnership(address)":"f2fde38b","treasury()":"61d027b3","version()":"54fd4d50","withdrawFee(address,uint256)":"fd9be522","withdrawLzTokenFee(address,address,uint256)":"200175f7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_verifyHelper\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_endpoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_treasuryGasCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_treasuryGasForFeeCap\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DVN_InvalidDVNIdx\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"DVN_InvalidDVNOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_CannotWithdrawAltToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"LZ_MessageLib_InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_InvalidExecutor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"LZ_MessageLib_InvalidMessageSize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_NotTreasury\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_MessageLib_ZeroMessageSize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_AtLeastOneDVN\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"}],\"name\":\"LZ_ULN_InvalidConfigType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidConfirmations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidLegacyType1Option\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidLegacyType2Option\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidRequiredDVNCount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"workerId\",\"type\":\"uint8\"}],\"name\":\"LZ_ULN_InvalidWorkerId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"LZ_ULN_InvalidWorkerOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_Unsorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"LZ_ULN_UnsupportedEid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"optionType\",\"type\":\"uint16\"}],\"name\":\"LZ_ULN_UnsupportedOptionType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"fees\",\"type\":\"uint256[]\"}],\"name\":\"DVNFeePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"internalType\":\"struct ExecutorConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct SetDefaultExecutorConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"DefaultExecutorConfigsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"DefaultUlnConfigsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct ExecutorConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"ExecutorConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ExecutorFeePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lzToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LzTokenFeeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"worker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NativeFeeWithdrawn\",\"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\":\"uint256\",\"name\":\"newTreasuryNativeFeeCap\",\"type\":\"uint256\"}],\"name\":\"TreasuryNativeFeeCapSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"TreasurySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"indexed\":false,\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"UlnConfigSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"executorConfigs\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"worker\",\"type\":\"address\"}],\"name\":\"fees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getAppUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_configType\",\"type\":\"uint32\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getExecutorConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"internalType\":\"struct ExecutorConfig\",\"name\":\"rtnConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"rtnConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"_packet\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"_packet\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"encodedPacket\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configType\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"struct SetConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxMessageSize\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"internalType\":\"struct ExecutorConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"internalType\":\"struct SetDefaultExecutorConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setDefaultExecutorConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setDefaultUlnConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"setTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newTreasuryNativeFeeCap\",\"type\":\"uint256\"}],\"name\":\"setTreasuryNativeFeeCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testHelper\",\"outputs\":[{\"internalType\":\"contract TestHelperOz5\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lzToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawLzTokenFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"getAppUlnConfig(address,uint32)\":{\"details\":\"Get the uln config without the default config for the given remoteEid.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])\":{\"details\":\"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN\"},\"setTreasuryNativeFeeCap(uint256)\":{\"details\":\"the new value can not be greater than the old value, i.e. down only\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"withdrawFee(address,uint256)\":{\"details\":\"E2 only\"},\"withdrawLzTokenFee(address,address,uint256)\":{\"details\":\"_lzToken is a user-supplied value because lzToken might change in the endpoint before all lzToken can be taken outE2 onlytreasury only function\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol\":\"SendUln302Mock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol\":{\"keccak256\":\"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2\",\"dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol\":{\"keccak256\":\"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4\",\"dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol\":{\"keccak256\":\"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497\",\"dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":{\"keccak256\":\"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f\",\"dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol\":{\"keccak256\":\"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032\",\"dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":{\"keccak256\":\"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5\",\"dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":{\"keccak256\":\"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89\",\"dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":{\"keccak256\":\"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79\",\"dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol\":{\"keccak256\":\"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2\",\"dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9\",\"dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":{\"keccak256\":\"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55\",\"dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol\":{\"keccak256\":\"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc\",\"dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":{\"keccak256\":\"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850\",\"dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol\":{\"keccak256\":\"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691\",\"dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":{\"keccak256\":\"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241\",\"dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":{\"keccak256\":\"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c\",\"dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":{\"keccak256\":\"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a\",\"dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":{\"keccak256\":\"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54\",\"dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol\":{\"keccak256\":\"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda\",\"dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol\":{\"keccak256\":\"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2\",\"dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol\":{\"keccak256\":\"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11\",\"dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol\":{\"keccak256\":\"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677\",\"dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol\":{\"keccak256\":\"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590\",\"dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol\":{\"keccak256\":\"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045\",\"dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol\":{\"keccak256\":\"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13\",\"dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol\":{\"keccak256\":\"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29\",\"dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol\":{\"keccak256\":\"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f\",\"dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol\":{\"keccak256\":\"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec\",\"dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol\":{\"keccak256\":\"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4\",\"dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol\":{\"keccak256\":\"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574\",\"dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol\":{\"keccak256\":\"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991\",\"dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol\":{\"keccak256\":\"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1\",\"dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e\",\"dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8\",\"dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_verifyHelper","type":"address"},{"internalType":"address","name":"_endpoint","type":"address"},{"internalType":"uint256","name":"_treasuryGasCap","type":"uint256"},{"internalType":"uint256","name":"_treasuryGasForFeeCap","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"DVN_InvalidDVNIdx"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"type":"error","name":"DVN_InvalidDVNOptions"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"LZ_MessageLib_CannotWithdrawAltToken"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"type":"error","name":"LZ_MessageLib_InvalidAmount"},{"inputs":[],"type":"error","name":"LZ_MessageLib_InvalidExecutor"},{"inputs":[{"internalType":"uint256","name":"actual","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"LZ_MessageLib_InvalidMessageSize"},{"inputs":[],"type":"error","name":"LZ_MessageLib_NotTreasury"},{"inputs":[],"type":"error","name":"LZ_MessageLib_OnlyEndpoint"},{"inputs":[],"type":"error","name":"LZ_MessageLib_TransferFailed"},{"inputs":[],"type":"error","name":"LZ_MessageLib_ZeroMessageSize"},{"inputs":[],"type":"error","name":"LZ_ULN_AtLeastOneDVN"},{"inputs":[{"internalType":"uint32","name":"configType","type":"uint32"}],"type":"error","name":"LZ_ULN_InvalidConfigType"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidConfirmations"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidLegacyType1Option"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidLegacyType2Option"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount"},{"inputs":[{"internalType":"uint8","name":"workerId","type":"uint8"}],"type":"error","name":"LZ_ULN_InvalidWorkerId"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"type":"error","name":"LZ_ULN_InvalidWorkerOptions"},{"inputs":[],"type":"error","name":"LZ_ULN_Unsorted"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"LZ_ULN_UnsupportedEid"},{"inputs":[{"internalType":"uint16","name":"optionType","type":"uint16"}],"type":"error","name":"LZ_ULN_UnsupportedOptionType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"},{"inputs":[{"internalType":"address[]","name":"requiredDVNs","type":"address[]","indexed":false},{"internalType":"address[]","name":"optionalDVNs","type":"address[]","indexed":false},{"internalType":"uint256[]","name":"fees","type":"uint256[]","indexed":false}],"type":"event","name":"DVNFeePaid","anonymous":false},{"inputs":[{"internalType":"struct SetDefaultExecutorConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct ExecutorConfig","name":"config","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]}],"indexed":false}],"type":"event","name":"DefaultExecutorConfigsSet","anonymous":false},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}],"indexed":false}],"type":"event","name":"DefaultUlnConfigsSet","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"struct ExecutorConfig","name":"config","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}],"indexed":false}],"type":"event","name":"ExecutorConfigSet","anonymous":false},{"inputs":[{"internalType":"address","name":"executor","type":"address","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"ExecutorFeePaid","anonymous":false},{"inputs":[{"internalType":"address","name":"lzToken","type":"address","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"LzTokenFeeWithdrawn","anonymous":false},{"inputs":[{"internalType":"address","name":"worker","type":"address","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"NativeFeeWithdrawn","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newTreasuryNativeFeeCap","type":"uint256","indexed":false}],"type":"event","name":"TreasuryNativeFeeCapSet","anonymous":false},{"inputs":[{"internalType":"address","name":"treasury","type":"address","indexed":false}],"type":"event","name":"TreasurySet","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}],"indexed":false}],"type":"event","name":"UlnConfigSet","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address"},{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"executorConfigs","outputs":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]},{"inputs":[{"internalType":"address","name":"worker","type":"address"}],"stateMutability":"view","type":"function","name":"fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getAppUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_configType","type":"uint32"}],"stateMutability":"view","type":"function","name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getExecutorConfig","outputs":[{"internalType":"struct ExecutorConfig","name":"rtnConfig","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"rtnConfig","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct Packet","name":"_packet","type":"tuple","components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}]},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quote","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct Packet","name":"_packet","type":"tuple","components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}]},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"bytes","name":"encodedPacket","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"struct SetConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint32","name":"configType","type":"uint32"},{"internalType":"bytes","name":"config","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setConfig"},{"inputs":[{"internalType":"struct SetDefaultExecutorConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct ExecutorConfig","name":"config","type":"tuple","components":[{"internalType":"uint32","name":"maxMessageSize","type":"uint32"},{"internalType":"address","name":"executor","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"setDefaultExecutorConfigs"},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]}],"stateMutability":"nonpayable","type":"function","name":"setDefaultUlnConfigs"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTreasury"},{"inputs":[{"internalType":"uint256","name":"_newTreasuryNativeFeeCap","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setTreasuryNativeFeeCap"},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"testHelper","outputs":[{"internalType":"contract TestHelperOz5","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"},{"inputs":[{"internalType":"address","name":"_lzToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawLzTokenFee"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getAppUlnConfig(address,uint32)":{"details":"Get the uln config without the default config for the given remoteEid."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":{"details":"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN"},"setTreasuryNativeFeeCap(uint256)":{"details":"the new value can not be greater than the old value, i.e. down only"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"withdrawFee(address,uint256)":{"details":"E2 only"},"withdrawLzTokenFee(address,address,uint256)":{"details":"_lzToken is a user-supplied value because lzToken might change in the endpoint before all lzToken can be taken outE2 onlytreasury only function"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol":"SendUln302Mock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol":{"keccak256":"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9","urls":["bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2","dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol":{"keccak256":"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1","urls":["bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4","dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol":{"keccak256":"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e","urls":["bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497","dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":{"keccak256":"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a","urls":["bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f","dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol":{"keccak256":"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3","urls":["bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032","dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":{"keccak256":"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345","urls":["bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5","dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":{"keccak256":"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d","urls":["bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89","dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":{"keccak256":"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44","urls":["bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79","dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol":{"keccak256":"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5","urls":["bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2","dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f","urls":["bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9","dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":{"keccak256":"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73","urls":["bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55","dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol":{"keccak256":"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91","urls":["bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc","dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":{"keccak256":"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27","urls":["bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850","dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol":{"keccak256":"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f","urls":["bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691","dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol":{"keccak256":"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a","urls":["bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241","dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol":{"keccak256":"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73","urls":["bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c","dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol":{"keccak256":"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1","urls":["bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a","dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol":{"keccak256":"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420","urls":["bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54","dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":{"keccak256":"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5","urls":["bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b","dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":{"keccak256":"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9","urls":["bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f","dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol":{"keccak256":"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22","urls":["bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda","dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa"],"license":"BUSL-1.1"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol":{"keccak256":"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095","urls":["bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2","dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol":{"keccak256":"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95","urls":["bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11","dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol":{"keccak256":"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef","urls":["bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677","dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol":{"keccak256":"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada","urls":["bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590","dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol":{"keccak256":"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff","urls":["bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045","dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol":{"keccak256":"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21","urls":["bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13","dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol":{"keccak256":"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16","urls":["bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29","dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol":{"keccak256":"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830","urls":["bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f","dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol":{"keccak256":"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44","urls":["bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec","dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol":{"keccak256":"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121","urls":["bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4","dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol":{"keccak256":"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348","urls":["bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574","dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol":{"keccak256":"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9","urls":["bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991","dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol":{"keccak256":"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97","urls":["bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1","dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol":{"keccak256":"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70","urls":["bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e","dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"keccak256":"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67","urls":["bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8","dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":80} \ No newline at end of file diff --git a/packages/onft-evm/out/SendUlnBase.sol/SendUlnBase.json b/packages/onft-evm/out/SendUlnBase.sol/SendUlnBase.json deleted file mode 100644 index 34b0673fb..000000000 --- a/packages/onft-evm/out/SendUlnBase.sol/SendUlnBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getAppUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"rtnConfig","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultUlnConfigs","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DVNFeePaid","inputs":[{"name":"requiredDVNs","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"fees","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"DefaultUlnConfigsSet","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UlnConfigSet","inputs":[{"name":"oapp","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"config","type":"tuple","indexed":false,"internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"anonymous":false},{"type":"error","name":"LZ_ULN_AtLeastOneDVN","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidConfirmations","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_Unsorted","inputs":[]},{"type":"error","name":"LZ_ULN_UnsupportedEid","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getAppUlnConfig(address,uint32)":"39e3f938","getUlnConfig(address,uint32)":"43ea4fa9","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":"29460b0b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_ULN_AtLeastOneDVN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidConfirmations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidRequiredDVNCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_Unsorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"LZ_ULN_UnsupportedEid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"fees\",\"type\":\"uint256[]\"}],\"name\":\"DVNFeePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"DefaultUlnConfigsSet\",\"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\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"indexed\":false,\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"UlnConfigSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getAppUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"rtnConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setDefaultUlnConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"includes the utility functions for checking ULN states and logics\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getAppUlnConfig(address,uint32)\":{\"details\":\"Get the uln config without the default config for the given remoteEid.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])\":{\"details\":\"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol\":\"SendUlnBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol\":{\"keccak256\":\"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4\",\"dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":{\"keccak256\":\"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5\",\"dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":{\"keccak256\":\"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89\",\"dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol\":{\"keccak256\":\"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2\",\"dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":{\"keccak256\":\"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850\",\"dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_ULN_AtLeastOneDVN"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidConfirmations"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount"},{"inputs":[],"type":"error","name":"LZ_ULN_Unsorted"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"LZ_ULN_UnsupportedEid"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address[]","name":"requiredDVNs","type":"address[]","indexed":false},{"internalType":"address[]","name":"optionalDVNs","type":"address[]","indexed":false},{"internalType":"uint256[]","name":"fees","type":"uint256[]","indexed":false}],"type":"event","name":"DVNFeePaid","anonymous":false},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}],"indexed":false}],"type":"event","name":"DefaultUlnConfigsSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}],"indexed":false}],"type":"event","name":"UlnConfigSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getAppUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"rtnConfig","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]}],"stateMutability":"nonpayable","type":"function","name":"setDefaultUlnConfigs"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"getAppUlnConfig(address,uint32)":{"details":"Get the uln config without the default config for the given remoteEid."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":{"details":"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol":"SendUlnBase"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol":{"keccak256":"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1","urls":["bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4","dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":{"keccak256":"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345","urls":["bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5","dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":{"keccak256":"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d","urls":["bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89","dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol":{"keccak256":"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5","urls":["bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2","dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":{"keccak256":"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27","urls":["bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850","dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":23} \ No newline at end of file diff --git a/packages/onft-evm/out/SignedMath.sol/SignedMath.json b/packages/onft-evm/out/SignedMath.sol/SignedMath.json deleted file mode 100644 index 2331614cc..000000000 --- a/packages/onft-evm/out/SignedMath.sol/SignedMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ad664ae7c62fcb8b33e950d3f494a68a2b8cb74c677fd00384e3bd72e8de14e964736f6c63430008160033","sourceMap":"216:1047:130:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;216:1047:130;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ad664ae7c62fcb8b33e950d3f494a68a2b8cb74c677fd00384e3bd72e8de14e964736f6c63430008160033","sourceMap":"216:1047:130:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":"SignedMath"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":130} \ No newline at end of file diff --git a/packages/onft-evm/out/SimpleMessageLibMock.sol/SimpleMessageLibMock.json b/packages/onft-evm/out/SimpleMessageLibMock.sol/SimpleMessageLibMock.json deleted file mode 100644 index cc418004d..000000000 --- a/packages/onft-evm/out/SimpleMessageLibMock.sol/SimpleMessageLibMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_verifyHelper","type":"address","internalType":"address payable"},{"name":"_endpoint","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"PACKET_VERSION","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"defaultOption","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isSupportedEid","inputs":[{"name":"","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"localEid","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"lzTokenFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"messageLibType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum MessageLibType"}],"stateMutability":"pure"},{"type":"function","name":"nativeFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"","type":"tuple","internalType":"struct Packet","components":[{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_packet","type":"tuple","internalType":"struct Packet","components":[{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"address","internalType":"address"},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"bytes32","internalType":"bytes32"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"encodedPacket","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultOption","inputs":[{"name":"_defaultOption","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMessagingFee","inputs":[{"name":"_nativeFee","type":"uint256","internalType":"uint256"},{"name":"_lzTokenFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWhitelistCaller","inputs":[{"name":"_whitelistCaller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"testHelper","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract TestHelperOz5"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"validatePacket","inputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"major","type":"uint64","internalType":"uint64"},{"name":"minor","type":"uint8","internalType":"uint8"},{"name":"endpointVersion","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"whitelistCaller","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawLzTokenFee","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidEndpoint","inputs":[{"name":"expected","type":"address","internalType":"address"},{"name":"actual","type":"address","internalType":"address"}]},{"type":"error","name":"LZ_NotImplemented","inputs":[]},{"type":"error","name":"LzTokenIsAddressZero","inputs":[]},{"type":"error","name":"OnlyEndpoint","inputs":[]},{"type":"error","name":"OnlyWhitelistCaller","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"ToIsAddressZero","inputs":[]},{"type":"error","name":"TransferFailed","inputs":[]},{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b5060405162001a4438038062001a44833981016040819052620000349162000179565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000668162000110565b50600180546001600160a01b0319166001600160a01b038481169190911790915581166080819052600060a0526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa158015620000cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f59190620001b8565b63ffffffff1660c052505060636003556064600455620001e7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200017657600080fd5b50565b600080604083850312156200018d57600080fd5b82516200019a8162000160565b6020840151909250620001ad8162000160565b809150509250929050565b600060208284031215620001cb57600080fd5b815163ffffffff81168114620001e057600080fd5b9392505050565b60805160a05160c05161181162000233600039600061038c015260006102fb0152600081816102c7015281816105d6015281816106df015281816108e50152610aa101526118116000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063996f79c01161006f578063996f79c014610447578063aec336e61461045d578063d80e9bd91461047d578063dabca063146104aa578063f2fde38b146104ca578063fd9be522146104ea57610156565b8063715018a614610365578063726075371461037a57806372d71322146103c35780638da5cb5b146103e55780638f58aa7a14610403578063909532381461042357610156565b80634389e58f116101085780634389e58f1461025a57806354fd4d50146102895780635e280f11146102b557806361d027b3146102e95780636251b6371461031d5780636750cd4c1461034457610156565b806301ffc9a71461016f5780630e97289b146101a457806312cc947f146101dc5780631881d94d146101fe5780631c7c294e1461021a578063334993ff1461023a57610156565b3661015657005b604051632657b6c360e01b815260040160405180910390fd5b34801561017b57600080fd5b5061018f61018a366004610fd6565b61050a565b60405190151581526020015b60405180910390f35b3480156101b057600080fd5b506001546101c4906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b3480156101e857600080fd5b506101fc6101f7366004611041565b610541565b005b34801561020a57600080fd5b50600260405161019b9190611082565b34801561022657600080fd5b506002546101c4906001600160a01b031681565b34801561024657600080fd5b506101fc6102553660046110aa565b6106b3565b34801561026657600080fd5b5061027a6102753660046111bc565b6106c6565b60405161019b93929190611283565b34801561029557600080fd5b50604080516000808252602082015260029181019190915260600161019b565b3480156102c157600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f557600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b34801561032957600080fd5b50610332600181565b60405160ff909116815260200161019b565b34801561035057600080fd5b5061018f61035f3660046112d2565b50600190565b34801561037157600080fd5b506101fc610810565b34801561038657600080fd5b506103ae7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161019b565b3480156103cf57600080fd5b506103d8610824565b60405161019b91906112ed565b3480156103f157600080fd5b506000546001600160a01b03166101c4565b34801561040f57600080fd5b506101fc61041e366004611320565b6108b2565b34801561042f57600080fd5b5061043960035481565b60405190815260200161019b565b34801561045357600080fd5b5061043960045481565b34801561046957600080fd5b506101fc61047836600461134c565b6109a7565b34801561048957600080fd5b5061049d610498366004611369565b6109d1565b60405161019b91906113e4565b3480156104b657600080fd5b506101fc6104c53660046113fb565b610a13565b3480156104d657600080fd5b506101fc6104e536600461134c565b610a2b565b3480156104f657600080fd5b506101fc610505366004611320565b610a6e565b60006001600160e01b031982166325fc096160e21b148061053b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6002546001600160a01b03161580159061056657506002546001600160a01b03163314155b1561058457604051631c2c85bb60e21b815260040160405180910390fd5b6000604051806060016040528061059b8585610b2e565b63ffffffff1681526020016105b08585610b51565b81526020016105bf8585610b71565b6001600160401b0316905290506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106068686610b94565b6106108787610ba6565b60405161061e929190611437565b6040805191829003822060e086901b6001600160e01b0319168352845163ffffffff166004840152602085015160248401529301516001600160401b031660448201526001600160a01b039091166064820152608481019190915260a401600060405180830381600087803b15801561069657600080fd5b505af11580156106aa573d6000803e3d6000fd5b50505050505050565b6106bb610bc2565b600491909155600355565b60408051808201909152600080825260208201526060807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461072657604051630fd72cd960e31b815260040160405180910390fd5b6107376107328761145e565b610bef565b9150845160001461074857846107d4565b60058054610755906114fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610781906114fb565b80156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b50505050505b90506107e08282610c47565b60405180604001604052806004548152602001856107ff576000610803565b6003545b9052969195509350915050565b610818610bc2565b6108226000610caf565b565b60058054610831906114fb565b80601f016020809104026020016040519081016040528092919081815260200182805461085d906114fb565b80156108aa5780601f1061087f576101008083540402835291602001916108aa565b820191906000526020600020905b81548152906001019060200180831161088d57829003601f168201915b505050505081565b6108ba610bc2565b6001600160a01b0382166108e157604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061152f565b90506001600160a01b03811661098e576040516354c1781b60e01b815260040160405180910390fd5b6109a26001600160a01b0382168484610cff565b505050565b6109af610bc2565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600454815260200183610a04576000610a08565b6003545b905295945050505050565b610a1b610bc2565b6005610a278282611594565b5050565b610a33610bc2565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610a6b81610caf565b50565b610a76610bc2565b6001600160a01b038216610a9d57604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b21919061152f565b90506109a2818484610d51565b6000610b3e600d60098486611653565b610b479161167d565b60e01c9392505050565b6000610b61602d600d8486611653565b610b6a916116ad565b9392505050565b6000610b81600960018486611653565b610b8a916116cb565b60c01c9392505050565b6000610b6a610ba38484610d74565b90565b366000610bb68360518187611653565b915091505b9250929050565b6000546001600160a01b031633146108225760405163118cdaa760e01b8152336004820152602401610a59565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610c3198600198919791966001600160a01b031695016116f9565b6040516020818303038152906040529050919050565b600154604051631f5dad8b60e31b81526001600160a01b039091169063faed6c5890610c799085908590600401611774565b600060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526109a2908490610d84565b6001600160a01b038316610d69576109a28282610de7565b6109a2838383610e94565b6000610b61605160318486611653565b6000610d996001600160a01b03841683610ecf565b90508051600014158015610dbe575080806020019051810190610dbc91906117a2565b155b156109a257604051635274afe760e01b81526001600160a01b0384166004820152602401610a59565b6001600160a01b038216610e0e576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b50509050806109a257604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610a59565b6001600160a01b038216610ebb576040516306b7a93160e41b815260040160405180910390fd5b6109a26001600160a01b0384168383610cff565b6060610b6a8383600084600080856001600160a01b03168486604051610ef591906117bf565b60006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b5091509150610f47868383610f51565b9695505050505050565b606082610f6657610f6182610fad565b610b6a565b8151158015610f7d57506001600160a01b0384163b155b15610fa657604051639996b31560e01b81526001600160a01b0385166004820152602401610a59565b5080610b6a565b805115610fbd5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610fe857600080fd5b81356001600160e01b031981168114610b6a57600080fd5b60008083601f84011261101257600080fd5b5081356001600160401b0381111561102957600080fd5b602083019150836020828501011115610bbb57600080fd5b6000806020838503121561105457600080fd5b82356001600160401b0381111561106a57600080fd5b61107685828601611000565b90969095509350505050565b60208101600383106110a457634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156110bd57600080fd5b50508035926020909101359150565b600060e082840312156110de57600080fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561111c5761111c6110e4565b60405290565b600082601f83011261113357600080fd5b81356001600160401b038082111561114d5761114d6110e4565b604051601f8301601f19908116603f01168101908282118183101715611175576111756110e4565b8160405283815286602085880101111561118e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610a6b57600080fd5b6000806000606084860312156111d157600080fd5b83356001600160401b03808211156111e857600080fd5b6111f4878388016110cc565b9450602086013591508082111561120a57600080fd5b5061121786828701611122565b9250506040840135611228816111ae565b809150509250925092565b60005b8381101561124e578181015183820152602001611236565b50506000910152565b6000815180845261126f816020860160208601611233565b601f01601f19169290920160200192915050565b83518152602080850151908201526080604082015260006112a76080830185611257565b8281036060840152610f478185611257565b803563ffffffff811681146112cd57600080fd5b919050565b6000602082840312156112e457600080fd5b610b6a826112b9565b602081526000610b6a6020830184611257565b6001600160a01b0381168114610a6b57600080fd5b80356112cd81611300565b6000806040838503121561133357600080fd5b823561133e81611300565b946020939093013593505050565b60006020828403121561135e57600080fd5b8135610b6a81611300565b6000806000806060858703121561137f57600080fd5b84356001600160401b038082111561139657600080fd5b6113a2888389016110cc565b955060208701359150808211156113b857600080fd5b506113c587828801611000565b90945092505060408501356113d9816111ae565b939692955090935050565b81518152602080830151908201526040810161053b565b60006020828403121561140d57600080fd5b81356001600160401b0381111561142357600080fd5b61142f84828501611122565b949350505050565b8183823760009101908152919050565b80356001600160401b03811681146112cd57600080fd5b600060e0823603121561147057600080fd5b6114786110fa565b61148183611447565b815261148f602084016112b9565b60208201526114a060408401611315565b60408201526114b1606084016112b9565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b038111156114e357600080fd5b6114ef36828601611122565b60c08301525092915050565b600181811c9082168061150f57607f821691505b6020821081036110de57634e487b7160e01b600052602260045260246000fd5b60006020828403121561154157600080fd5b8151610b6a81611300565b601f8211156109a2576000816000526020600020601f850160051c810160208610156115755750805b601f850160051c820191505b81811015610ca757828155600101611581565b81516001600160401b038111156115ad576115ad6110e4565b6115c1816115bb84546114fb565b8461154c565b602080601f8311600181146115f657600084156115de5750858301515b600019600386901b1c1916600185901b178555610ca7565b600085815260208120601f198616915b8281101561162557888601518255948401946001909101908401611606565b50858210156116435787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808585111561166357600080fd5b8386111561167057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116a55780818660040360031b1b83161692505b505092915050565b8035602083101561053b57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156116a55760089490940360031b84901b1690921692915050565b60ff60f81b8960f81b1681526001600160401b0360c01b8860c01b166001820152600063ffffffff60e01b808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611760816071850160208701611233565b919091016071019998505050505050505050565b6040815260006117876040830185611257565b82810360208401526117998185611257565b95945050505050565b6000602082840312156117b457600080fd5b8151610b6a816111ae565b600082516117d1818460208701611233565b919091019291505056fea2646970667358221220990cfb4d672f3a4b176b2a0dac3fbeff814b316fc90a05799662ae7184d6045a64736f6c63430008160033","sourceMap":"1070:4885:81:-:0;;;2016:387;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2086:10;;1269:95:105;;1322:31;;-1:-1:-1;;;1322:31:105;;1350:1;1322:31;;;718:51:145;691:18;;1322:31:105;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;2108:10:81::1;:41:::0;;-1:-1:-1;;;;;;2108:41:81::1;-1:-1:-1::0;;;;;2108:41:81;;::::1;::::0;;;::::1;::::0;;;2159:20;::::1;;::::0;;;-1:-1:-1;2189:23:81::1;::::0;2233:37:::1;::::0;;-1:-1:-1;;;2233:37:81;;;;:35:::1;::::0;:37:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;2159:20;2233:37:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2222:48;;;::::0;-1:-1:-1;;2293:2:81::1;2280:10;:15:::0;2317:3:::1;2305:9;:15:::0;1070:4885;;2912:187:105;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:139:145:-;-1:-1:-1;;;;;97:31:145;;87:42;;77:70;;143:1;140;133:12;77:70;14:139;:::o;158:409::-;245:6;253;306:2;294:9;285:7;281:23;277:32;274:52;;;322:1;319;312:12;274:52;354:9;348:16;373:39;406:5;373:39;:::i;:::-;481:2;466:18;;460:25;431:5;;-1:-1:-1;494:41:145;460:25;494:41;:::i;:::-;554:7;544:17;;;158:409;;;;;:::o;780:280::-;849:6;902:2;890:9;881:7;877:23;873:32;870:52;;;918:1;915;908:12;870:52;950:9;944:16;1000:10;993:5;989:22;982:5;979:33;969:61;;1026:1;1023;1016:12;969:61;1049:5;780:280;-1:-1:-1;;;780:280:145:o;:::-;1070:4885:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063996f79c01161006f578063996f79c014610447578063aec336e61461045d578063d80e9bd91461047d578063dabca063146104aa578063f2fde38b146104ca578063fd9be522146104ea57610156565b8063715018a614610365578063726075371461037a57806372d71322146103c35780638da5cb5b146103e55780638f58aa7a14610403578063909532381461042357610156565b80634389e58f116101085780634389e58f1461025a57806354fd4d50146102895780635e280f11146102b557806361d027b3146102e95780636251b6371461031d5780636750cd4c1461034457610156565b806301ffc9a71461016f5780630e97289b146101a457806312cc947f146101dc5780631881d94d146101fe5780631c7c294e1461021a578063334993ff1461023a57610156565b3661015657005b604051632657b6c360e01b815260040160405180910390fd5b34801561017b57600080fd5b5061018f61018a366004610fd6565b61050a565b60405190151581526020015b60405180910390f35b3480156101b057600080fd5b506001546101c4906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b3480156101e857600080fd5b506101fc6101f7366004611041565b610541565b005b34801561020a57600080fd5b50600260405161019b9190611082565b34801561022657600080fd5b506002546101c4906001600160a01b031681565b34801561024657600080fd5b506101fc6102553660046110aa565b6106b3565b34801561026657600080fd5b5061027a6102753660046111bc565b6106c6565b60405161019b93929190611283565b34801561029557600080fd5b50604080516000808252602082015260029181019190915260600161019b565b3480156102c157600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f557600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b34801561032957600080fd5b50610332600181565b60405160ff909116815260200161019b565b34801561035057600080fd5b5061018f61035f3660046112d2565b50600190565b34801561037157600080fd5b506101fc610810565b34801561038657600080fd5b506103ae7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161019b565b3480156103cf57600080fd5b506103d8610824565b60405161019b91906112ed565b3480156103f157600080fd5b506000546001600160a01b03166101c4565b34801561040f57600080fd5b506101fc61041e366004611320565b6108b2565b34801561042f57600080fd5b5061043960035481565b60405190815260200161019b565b34801561045357600080fd5b5061043960045481565b34801561046957600080fd5b506101fc61047836600461134c565b6109a7565b34801561048957600080fd5b5061049d610498366004611369565b6109d1565b60405161019b91906113e4565b3480156104b657600080fd5b506101fc6104c53660046113fb565b610a13565b3480156104d657600080fd5b506101fc6104e536600461134c565b610a2b565b3480156104f657600080fd5b506101fc610505366004611320565b610a6e565b60006001600160e01b031982166325fc096160e21b148061053b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6002546001600160a01b03161580159061056657506002546001600160a01b03163314155b1561058457604051631c2c85bb60e21b815260040160405180910390fd5b6000604051806060016040528061059b8585610b2e565b63ffffffff1681526020016105b08585610b51565b81526020016105bf8585610b71565b6001600160401b0316905290506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106068686610b94565b6106108787610ba6565b60405161061e929190611437565b6040805191829003822060e086901b6001600160e01b0319168352845163ffffffff166004840152602085015160248401529301516001600160401b031660448201526001600160a01b039091166064820152608481019190915260a401600060405180830381600087803b15801561069657600080fd5b505af11580156106aa573d6000803e3d6000fd5b50505050505050565b6106bb610bc2565b600491909155600355565b60408051808201909152600080825260208201526060807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461072657604051630fd72cd960e31b815260040160405180910390fd5b6107376107328761145e565b610bef565b9150845160001461074857846107d4565b60058054610755906114fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610781906114fb565b80156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b50505050505b90506107e08282610c47565b60405180604001604052806004548152602001856107ff576000610803565b6003545b9052969195509350915050565b610818610bc2565b6108226000610caf565b565b60058054610831906114fb565b80601f016020809104026020016040519081016040528092919081815260200182805461085d906114fb565b80156108aa5780601f1061087f576101008083540402835291602001916108aa565b820191906000526020600020905b81548152906001019060200180831161088d57829003601f168201915b505050505081565b6108ba610bc2565b6001600160a01b0382166108e157604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061152f565b90506001600160a01b03811661098e576040516354c1781b60e01b815260040160405180910390fd5b6109a26001600160a01b0382168484610cff565b505050565b6109af610bc2565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600454815260200183610a04576000610a08565b6003545b905295945050505050565b610a1b610bc2565b6005610a278282611594565b5050565b610a33610bc2565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610a6b81610caf565b50565b610a76610bc2565b6001600160a01b038216610a9d57604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b21919061152f565b90506109a2818484610d51565b6000610b3e600d60098486611653565b610b479161167d565b60e01c9392505050565b6000610b61602d600d8486611653565b610b6a916116ad565b9392505050565b6000610b81600960018486611653565b610b8a916116cb565b60c01c9392505050565b6000610b6a610ba38484610d74565b90565b366000610bb68360518187611653565b915091505b9250929050565b6000546001600160a01b031633146108225760405163118cdaa760e01b8152336004820152602401610a59565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610c3198600198919791966001600160a01b031695016116f9565b6040516020818303038152906040529050919050565b600154604051631f5dad8b60e31b81526001600160a01b039091169063faed6c5890610c799085908590600401611774565b600060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526109a2908490610d84565b6001600160a01b038316610d69576109a28282610de7565b6109a2838383610e94565b6000610b61605160318486611653565b6000610d996001600160a01b03841683610ecf565b90508051600014158015610dbe575080806020019051810190610dbc91906117a2565b155b156109a257604051635274afe760e01b81526001600160a01b0384166004820152602401610a59565b6001600160a01b038216610e0e576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b50509050806109a257604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610a59565b6001600160a01b038216610ebb576040516306b7a93160e41b815260040160405180910390fd5b6109a26001600160a01b0384168383610cff565b6060610b6a8383600084600080856001600160a01b03168486604051610ef591906117bf565b60006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b5091509150610f47868383610f51565b9695505050505050565b606082610f6657610f6182610fad565b610b6a565b8151158015610f7d57506001600160a01b0384163b155b15610fa657604051639996b31560e01b81526001600160a01b0385166004820152602401610a59565b5080610b6a565b805115610fbd5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610fe857600080fd5b81356001600160e01b031981168114610b6a57600080fd5b60008083601f84011261101257600080fd5b5081356001600160401b0381111561102957600080fd5b602083019150836020828501011115610bbb57600080fd5b6000806020838503121561105457600080fd5b82356001600160401b0381111561106a57600080fd5b61107685828601611000565b90969095509350505050565b60208101600383106110a457634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156110bd57600080fd5b50508035926020909101359150565b600060e082840312156110de57600080fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561111c5761111c6110e4565b60405290565b600082601f83011261113357600080fd5b81356001600160401b038082111561114d5761114d6110e4565b604051601f8301601f19908116603f01168101908282118183101715611175576111756110e4565b8160405283815286602085880101111561118e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610a6b57600080fd5b6000806000606084860312156111d157600080fd5b83356001600160401b03808211156111e857600080fd5b6111f4878388016110cc565b9450602086013591508082111561120a57600080fd5b5061121786828701611122565b9250506040840135611228816111ae565b809150509250925092565b60005b8381101561124e578181015183820152602001611236565b50506000910152565b6000815180845261126f816020860160208601611233565b601f01601f19169290920160200192915050565b83518152602080850151908201526080604082015260006112a76080830185611257565b8281036060840152610f478185611257565b803563ffffffff811681146112cd57600080fd5b919050565b6000602082840312156112e457600080fd5b610b6a826112b9565b602081526000610b6a6020830184611257565b6001600160a01b0381168114610a6b57600080fd5b80356112cd81611300565b6000806040838503121561133357600080fd5b823561133e81611300565b946020939093013593505050565b60006020828403121561135e57600080fd5b8135610b6a81611300565b6000806000806060858703121561137f57600080fd5b84356001600160401b038082111561139657600080fd5b6113a2888389016110cc565b955060208701359150808211156113b857600080fd5b506113c587828801611000565b90945092505060408501356113d9816111ae565b939692955090935050565b81518152602080830151908201526040810161053b565b60006020828403121561140d57600080fd5b81356001600160401b0381111561142357600080fd5b61142f84828501611122565b949350505050565b8183823760009101908152919050565b80356001600160401b03811681146112cd57600080fd5b600060e0823603121561147057600080fd5b6114786110fa565b61148183611447565b815261148f602084016112b9565b60208201526114a060408401611315565b60408201526114b1606084016112b9565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b038111156114e357600080fd5b6114ef36828601611122565b60c08301525092915050565b600181811c9082168061150f57607f821691505b6020821081036110de57634e487b7160e01b600052602260045260246000fd5b60006020828403121561154157600080fd5b8151610b6a81611300565b601f8211156109a2576000816000526020600020601f850160051c810160208610156115755750805b601f850160051c820191505b81811015610ca757828155600101611581565b81516001600160401b038111156115ad576115ad6110e4565b6115c1816115bb84546114fb565b8461154c565b602080601f8311600181146115f657600084156115de5750858301515b600019600386901b1c1916600185901b178555610ca7565b600085815260208120601f198616915b8281101561162557888601518255948401946001909101908401611606565b50858210156116435787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808585111561166357600080fd5b8386111561167057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116a55780818660040360031b1b83161692505b505092915050565b8035602083101561053b57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156116a55760089490940360031b84901b1690921692915050565b60ff60f81b8960f81b1681526001600160401b0360c01b8860c01b166001820152600063ffffffff60e01b808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611760816071850160208701611233565b919091016071019998505050505050505050565b6040815260006117876040830185611257565b82810360208401526117998185611257565b95945050505050565b6000602082840312156117b457600080fd5b8151610b6a816111ae565b600082516117d1818460208701611233565b919091019291505056fea2646970667358221220990cfb4d672f3a4b176b2a0dac3fbeff814b316fc90a05799662ae7184d6045a64736f6c63430008160033","sourceMap":"1070:4885:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5885:26;;-1:-1:-1;;;5885:26:81;;;;;;;;;;;2409:191;;;;;;;;;;-1:-1:-1;2409:191:81;;;;;:::i;:::-;;:::i;:::-;;;470:14:145;;463:22;445:41;;433:2;418:18;2409:191:81;;;;;;;;1158:31;;;;;;;;;;-1:-1:-1;1158:31:81;;;;-1:-1:-1;;;;;1158:31:81;;;;;;-1:-1:-1;;;;;692:32:145;;;674:51;;662:2;647:18;1158:31:81;497:234:145;2640:420:81;;;;;;;;;;-1:-1:-1;2640:420:81;;;;;:::i;:::-;;:::i;:::-;;5364:118;;;;;;;;;;-1:-1:-1;5446:29:81;5364:118;;;;;;:::i;1427:30::-;;;;;;;;;;-1:-1:-1;1427:30:81;;;;-1:-1:-1;;;;;1427:30:81;;;3792:158;;;;;;;;;;-1:-1:-1;3792:158:81;;;;;:::i;:::-;;:::i;3124:480::-;;;;;;;;;;-1:-1:-1;3124:480:81;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;5233:125::-;;;;;;;;;;-1:-1:-1;5233:125:81;;;5275:12;5834:50:145;;;5915:2;5900:18;;5893:45;5349:1:81;5954:18:145;;;5947:45;;;;5822:2;5807:18;5233:125:81;5642:356:145;1264:33:81;;;;;;;;;;;;;;;1303;;;;;;;;;;;;;;;1380:40;;;;;;;;;;;;1419:1;1380:40;;;;;6175:4:145;6163:17;;;6145:36;;6133:2;6118:18;1380:40:81;6003:184:145;5138:89:81;;;;;;;;;;-1:-1:-1;5138:89:81;;;;;:::i;:::-;-1:-1:-1;5216:4:81;;5138:89;2293:101:105;;;;;;;;;;;;;:::i;1342:32:81:-;;;;;;;;;;;;;;;;;;6723:10:145;6711:23;;;6693:42;;6681:2;6666:18;1342:32:81;6549:192:145;1526:26:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1638:85:105:-;;;;;;;;;;-1:-1:-1;1684:7:105;1710:6;-1:-1:-1;;;;;1710:6:105;1638:85;;4451:379:81;;;;;;;;;;-1:-1:-1;4451:379:81;;;;;:::i;:::-;;:::i;1464:25::-;;;;;;;;;;;;;;;;;;;7709::145;;;7697:2;7682:18;1464:25:81;7563:177:145;1495:24:81;;;;;;;;;;;;;;;;3956:124;;;;;;;;;;-1:-1:-1;3956:124:81;;;;;:::i;:::-;;:::i;4886:246::-;;;;;;;;;;-1:-1:-1;4886:246:81;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3665:121::-;;;;;;;;;;-1:-1:-1;3665:121:81;;;;;:::i;:::-;;:::i;2543:215:105:-;;;;;;;;;;-1:-1:-1;2543:215:105;;;;;:::i;:::-;;:::i;4086:359:81:-;;;;;;;;;;-1:-1:-1;4086:359:81;;;;;:::i;:::-;;:::i;2409:191::-;2486:4;-1:-1:-1;;;;;;2509:44:81;;-1:-1:-1;;;2509:44:81;;:84;;-1:-1:-1;;;;;;;;;;861:40:126;;;2557:36:81;2502:91;2409:191;-1:-1:-1;;2409:191:81:o;2640:420::-;2715:15;;-1:-1:-1;;;;;2715:15:81;:31;;;;:64;;-1:-1:-1;2764:15:81;;-1:-1:-1;;;;;2764:15:81;2750:10;:29;;2715:64;2711:123;;;2802:21;;-1:-1:-1;;;2802:21:81;;;;;;;;;;;2711:123;2843:20;2866:71;;;;;;;;2873:20;:11;;:18;:20::i;:::-;2866:71;;;;;;2895:20;:11;;:18;:20::i;:::-;2866:71;;;;2917:19;:11;;:17;:19::i;:::-;-1:-1:-1;;;;;2866:71:81;;;2843:94;-1:-1:-1;;;;;;2968:8:81;2947:37;;2843:94;2993:25;:11;;:23;:25::i;:::-;3030:21;:11;;:19;:21::i;:::-;3020:32;;;;;;;:::i;:::-;;;;;;;;;;2947:106;;;;-1:-1:-1;;;;;;2947:106:81;;;9934:13:145;;9949:10;9930:30;2947:106:81;;;9912:49:145;10017:4;10005:17;;9999:24;9977:20;;;9970:54;10072:17;;10066:24;-1:-1:-1;;;;;10062:49:145;10040:20;;;10033:79;-1:-1:-1;;;;;10148:32:145;;;10128:18;;;10121:60;10197:19;;;10190:35;;;;9884:19;;2947:106:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2701:359;2640:420;;:::o;3792:158::-;1531:13:105;:11;:13::i;:::-;3887:9:81::1;:22:::0;;;;3919:10:::1;:24:::0;3792:158::o;3124:480::-;-1:-1:-1;;;;;;;;;;;;;;;;;3292:26:81;;1866:8;-1:-1:-1;;;;;1866:22:81;1878:10;1866:22;1862:74;;1911:14;;-1:-1:-1;;;1911:14:81;;;;;;;;;;;1862:74;3368:29:::1;;3389:7:::0;3368:29:::1;:::i;:::-;:20;:29::i;:::-;3352:45;;3418:8;:15;3437:1;3418:20;:47;;3457:8;3418:47;;;3441:13;3418:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3408:57;;3475:50;3502:13;3517:7;3475:26;:50::i;:::-;3542:55;;;;;;;;3555:9;;3542:55;;;;3566:13;:30;;3595:1;3566:30;;;3582:10;;3566:30;3542:55:::0;;3536:61;3124:480;;-1:-1:-1;3124:480:81;-1:-1:-1;3124:480:81;-1:-1:-1;;3124:480:81:o;2293:101:105:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1526:26:81:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4451:379::-;1531:13:105;:11;:13::i;:::-;-1:-1:-1;;;;;4542:19:81;::::1;4538:74;;4584:17;;-1:-1:-1::0;;;4584:17:81::1;;;;;;;;;;;4538:74;4621:15;4660:8;-1:-1:-1::0;;;;;4639:38:81::1;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4621:58:::0;-1:-1:-1;;;;;;4693:23:81;::::1;4689:83;;4739:22;;-1:-1:-1::0;;;4739:22:81::1;;;;;;;;;;;4689:83;4781:42;-1:-1:-1::0;;;;;4781:28:81;::::1;4810:3:::0;4815:7;4781:28:::1;:42::i;:::-;4528:302;4451:379:::0;;:::o;3956:124::-;1531:13:105;:11;:13::i;:::-;4039:15:81::1;:34:::0;;-1:-1:-1;;;;;;4039:34:81::1;-1:-1:-1::0;;;;;4039:34:81;;;::::1;::::0;;;::::1;::::0;;3956:124::o;4886:246::-;-1:-1:-1;;;;;;;;;;;;;;;;;5070:55:81;;;;;;;;5083:9;;5070:55;;;;5094:13;:30;;5123:1;5094:30;;;5110:10;;5094:30;5070:55;;5063:62;4886:246;-1:-1:-1;;;;;4886:246:81:o;3665:121::-;1531:13:105;:11;:13::i;:::-;3749::81::1;:30;3765:14:::0;3749:13;:30:::1;:::i;:::-;;3665:121:::0;:::o;2543:215:105:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:105;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:105;;2700:1:::1;2672:31;::::0;::::1;674:51:145::0;647:18;;2672:31:105::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;4086:359:81:-;1531:13:105;:11;:13::i;:::-;-1:-1:-1;;;;;4170:19:81;::::1;4166:74;;4212:17;;-1:-1:-1::0;;;4212:17:81::1;;;;;;;;;;;4166:74;4250:20;4294:8;-1:-1:-1::0;;;;;4273:42:81::1;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4250:67;;4388:50;4411:12;4425:3;4430:7;4388:22;:50::i;2230:148:68:-:0;2293:6;2332:37;605:2;557:1;2332:7;;:37;:::i;:::-;2325:45;;;:::i;:::-;2318:53;;;2230:148;-1:-1:-1;;;2230:148:68:o;2384:142::-;2447:7;2481:37;655:2;605;2481:7;;:37;:::i;:::-;2473:46;;;:::i;:::-;2466:53;2384:142;-1:-1:-1;;;2384:142:68:o;2078:146::-;2140:6;2179:36;557:1;493;2179:7;;:36;:::i;:::-;2172:44;;;:::i;:::-;2165:52;;;2078:146;-1:-1:-1;;;2078:146:68:o;2976:130::-;3044:7;3070:29;:17;3079:7;;3070:8;:17::i;:::-;1210:15:60;1084:151;3397:132:68;3461:14;;3500:21;:7;785:2;3500:7;;:21;:::i;:::-;3487:35;;;;3397:132;;;;;;:::o;1796:162:105:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:105;735:10:120;1855:23:105;1851:101;;1901:40;;-1:-1:-1;;;1901:40:105;;735:10:120;1901:40:105;;;674:51:145;647:18;;1901:40:105;497:234:145;872:385:68;1046:13;;1073:14;;;;;1101;;;;;934:26;1141:14;;;;1169:16;;;;1199:12;;;;1225:15;;;;988:262;;934:26;;988:262;;319:1;;1046:13;;1073:14;;-1:-1:-1;;;;;1101:24:68;;988:262;;:::i;:::-;;;;;;;;;;;;;972:278;;872:385;;;:::o;5661:173:81:-;5776:10;;:51;;-1:-1:-1;;;5776:51:81;;-1:-1:-1;;;;;5776:10:81;;;;:25;;:51;;5802:14;;5818:8;;5776:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5661:173;;:::o;2912:187:105:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:105;;;-1:-1:-1;;;;;;3020:17:105;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;1303:160:113:-;1412:43;;;-1:-1:-1;;;;;16822:32:145;;1412:43:113;;;16804:51:145;16871:18;;;;16864:34;;;1412:43:113;;;;;;;;;;16777:18:145;;;;1412:43:113;;;;;;;;-1:-1:-1;;;;;1412:43:113;-1:-1:-1;;;1412:43:113;;;1385:71;;1405:5;;1385:19;:71::i;896:222:64:-;-1:-1:-1;;;;;987:22:64;;983:129;;1025:19;1032:3;1037:6;1025;:19::i;983:129::-;1075:26;1081:6;1089:3;1094:6;1075:5;:26::i;2827:143:68:-;2892:7;2926:36;785:2;706;2926:7;;:36;:::i;4059:629:113:-;4478:23;4504:33;-1:-1:-1;;;;;4504:27:113;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:113;;-1:-1:-1;;;;;692:32:145;;4631:40:113;;;674:51:145;647:18;;4631:40:113;497:234:145;438:252:64;-1:-1:-1;;;;;506:19:64;;502:58;;534:26;;-1:-1:-1;;;534:26:64;;;;;;;;;;;502:58;571:12;589:3;-1:-1:-1;;;;;589:8:64;606:6;589:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;570:48;;;633:7;628:55;;649:34;;-1:-1:-1;;;649:34:64;;-1:-1:-1;;;;;16822:32:145;;649:34:64;;;16804:51:145;16871:18;;;16864:34;;;16777:18;;649:34:64;16630:274:145;696:194:64;-1:-1:-1;;;;;779:19:64;;775:58;;807:26;;-1:-1:-1;;;807:26:64;;;;;;;;;;;775:58;843:40;-1:-1:-1;;;;;843:27:64;;871:3;876:6;843:27;:40::i;2705:151:118:-;2780:12;2811:38;2833:6;2841:4;2847:1;2780:12;3421;3435:23;3462:6;-1:-1:-1;;;;;3462:11:118;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:118:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:118;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:118;;-1:-1:-1;;;;;692:32:145;;5121:24:118;;;674:51:145;647:18;;5121:24:118;497:234:145;5041:119:118;-1:-1:-1;5180:10:118;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:118;;;;;;;;;;;14:286:145;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:145;;209:43;;199:71;;266:1;263;256:12;736:347;787:8;797:6;851:3;844:4;836:6;832:17;828:27;818:55;;869:1;866;859:12;818:55;-1:-1:-1;892:20:145;;-1:-1:-1;;;;;924:30:145;;921:50;;;967:1;964;957:12;921:50;1004:4;996:6;992:17;980:29;;1056:3;1049:4;1040:6;1032;1028:19;1024:30;1021:39;1018:59;;;1073:1;1070;1063:12;1088:409;1158:6;1166;1219:2;1207:9;1198:7;1194:23;1190:32;1187:52;;;1235:1;1232;1225:12;1187:52;1275:9;1262:23;-1:-1:-1;;;;;1300:6:145;1297:30;1294:50;;;1340:1;1337;1330:12;1294:50;1379:58;1429:7;1420:6;1409:9;1405:22;1379:58;:::i;:::-;1456:8;;1353:84;;-1:-1:-1;1088:409:145;-1:-1:-1;;;;1088:409:145:o;1502:348::-;1654:2;1639:18;;1687:1;1676:13;;1666:144;;1732:10;1727:3;1723:20;1720:1;1713:31;1767:4;1764:1;1757:15;1795:4;1792:1;1785:15;1666:144;1819:25;;;1502:348;:::o;2063:248::-;2131:6;2139;2192:2;2180:9;2171:7;2167:23;2163:32;2160:52;;;2208:1;2205;2198:12;2160:52;-1:-1:-1;;2231:23:145;;;2301:2;2286:18;;;2273:32;;-1:-1:-1;2063:248:145:o;2316:155::-;2375:5;2420:3;2411:6;2406:3;2402:16;2398:26;2395:46;;;2437:1;2434;2427:12;2395:46;-1:-1:-1;2459:6:145;2316:155;-1:-1:-1;2316:155:145:o;2476:127::-;2537:10;2532:3;2528:20;2525:1;2518:31;2568:4;2565:1;2558:15;2592:4;2589:1;2582:15;2608:248;2675:2;2669:9;2717:4;2705:17;;-1:-1:-1;;;;;2737:34:145;;2773:22;;;2734:62;2731:88;;;2799:18;;:::i;:::-;2835:2;2828:22;2608:248;:::o;2861:718::-;2903:5;2956:3;2949:4;2941:6;2937:17;2933:27;2923:55;;2974:1;2971;2964:12;2923:55;3010:6;2997:20;-1:-1:-1;;;;;3073:2:145;3069;3066:10;3063:36;;;3079:18;;:::i;:::-;3154:2;3148:9;3122:2;3208:13;;-1:-1:-1;;3204:22:145;;;3228:2;3200:31;3196:40;3184:53;;;3252:18;;;3272:22;;;3249:46;3246:72;;;3298:18;;:::i;:::-;3338:10;3334:2;3327:22;3373:2;3365:6;3358:18;3419:3;3412:4;3407:2;3399:6;3395:15;3391:26;3388:35;3385:55;;;3436:1;3433;3426:12;3385:55;3500:2;3493:4;3485:6;3481:17;3474:4;3466:6;3462:17;3449:54;3547:1;3540:4;3535:2;3527:6;3523:15;3519:26;3512:37;3567:6;3558:15;;;;;;2861:718;;;;:::o;3584:118::-;3670:5;3663:13;3656:21;3649:5;3646:32;3636:60;;3692:1;3689;3682:12;3707:703;3817:6;3825;3833;3886:2;3874:9;3865:7;3861:23;3857:32;3854:52;;;3902:1;3899;3892:12;3854:52;3942:9;3929:23;-1:-1:-1;;;;;4012:2:145;4004:6;4001:14;3998:34;;;4028:1;4025;4018:12;3998:34;4051:66;4109:7;4100:6;4089:9;4085:22;4051:66;:::i;:::-;4041:76;;4170:2;4159:9;4155:18;4142:32;4126:48;;4199:2;4189:8;4186:16;4183:36;;;4215:1;4212;4205:12;4183:36;;4238:51;4281:7;4270:8;4259:9;4255:24;4238:51;:::i;:::-;4228:61;;;4339:2;4328:9;4324:18;4311:32;4352:28;4374:5;4352:28;:::i;:::-;4399:5;4389:15;;;3707:703;;;;;:::o;4573:250::-;4658:1;4668:113;4682:6;4679:1;4676:13;4668:113;;;4758:11;;;4752:18;4739:11;;;4732:39;4704:2;4697:10;4668:113;;;-1:-1:-1;;4815:1:145;4797:16;;4790:27;4573:250::o;4828:270::-;4869:3;4907:5;4901:12;4934:6;4929:3;4922:19;4950:76;5019:6;5012:4;5007:3;5003:14;4996:4;4989:5;4985:16;4950:76;:::i;:::-;5080:2;5059:15;-1:-1:-1;;5055:29:145;5046:39;;;;5087:4;5042:50;;4828:270;-1:-1:-1;;4828:270:145:o;5103:534::-;4493:12;;4481:25;;4555:4;4544:16;;;4538:23;4522:14;;;4515:47;5451:3;5446:2;5435:9;5431:18;5424:31;5347:4;5478:45;5518:3;5507:9;5503:19;5495:6;5478:45;:::i;:::-;5571:9;5563:6;5559:22;5554:2;5543:9;5539:18;5532:50;5599:32;5624:6;5616;5599:32;:::i;6192:163::-;6259:20;;6319:10;6308:22;;6298:33;;6288:61;;6345:1;6342;6335:12;6288:61;6192:163;;;:::o;6360:184::-;6418:6;6471:2;6459:9;6450:7;6446:23;6442:32;6439:52;;;6487:1;6484;6477:12;6439:52;6510:28;6528:9;6510:28;:::i;6746:217::-;6893:2;6882:9;6875:21;6856:4;6913:44;6953:2;6942:9;6938:18;6930:6;6913:44;:::i;6968:131::-;-1:-1:-1;;;;;7043:31:145;;7033:42;;7023:70;;7089:1;7086;7079:12;7104:134;7172:20;;7201:31;7172:20;7201:31;:::i;7243:315::-;7311:6;7319;7372:2;7360:9;7351:7;7347:23;7343:32;7340:52;;;7388:1;7385;7378:12;7340:52;7427:9;7414:23;7446:31;7471:5;7446:31;:::i;:::-;7496:5;7548:2;7533:18;;;;7520:32;;-1:-1:-1;;;7243:315:145:o;7745:247::-;7804:6;7857:2;7845:9;7836:7;7832:23;7828:32;7825:52;;;7873:1;7870;7863:12;7825:52;7912:9;7899:23;7931:31;7956:5;7931:31;:::i;7997:792::-;8109:6;8117;8125;8133;8186:2;8174:9;8165:7;8161:23;8157:32;8154:52;;;8202:1;8199;8192:12;8154:52;8242:9;8229:23;-1:-1:-1;;;;;8312:2:145;8304:6;8301:14;8298:34;;;8328:1;8325;8318:12;8298:34;8351:66;8409:7;8400:6;8389:9;8385:22;8351:66;:::i;:::-;8341:76;;8470:2;8459:9;8455:18;8442:32;8426:48;;8499:2;8489:8;8486:16;8483:36;;;8515:1;8512;8505:12;8483:36;;8554:60;8606:7;8595:8;8584:9;8580:24;8554:60;:::i;:::-;8633:8;;-1:-1:-1;8528:86:145;-1:-1:-1;;8718:2:145;8703:18;;8690:32;8731:28;8690:32;8731:28;:::i;:::-;7997:792;;;;-1:-1:-1;7997:792:145;;-1:-1:-1;;7997:792:145:o;8794:261::-;4493:12;;4481:25;;4555:4;4544:16;;;4538:23;4522:14;;;4515:47;8988:2;8973:18;;9000:49;4415:153;9060:320;9128:6;9181:2;9169:9;9160:7;9156:23;9152:32;9149:52;;;9197:1;9194;9187:12;9149:52;9237:9;9224:23;-1:-1:-1;;;;;9262:6:145;9259:30;9256:50;;;9302:1;9299;9292:12;9256:50;9325:49;9366:7;9357:6;9346:9;9342:22;9325:49;:::i;:::-;9315:59;9060:320;-1:-1:-1;;;;9060:320:145:o;9385:271::-;9568:6;9560;9555:3;9542:33;9524:3;9594:16;;9619:13;;;9594:16;9385:271;-1:-1:-1;9385:271:145:o;10236:171::-;10303:20;;-1:-1:-1;;;;;10352:30:145;;10342:41;;10332:69;;10397:1;10394;10387:12;10412:843;10514:9;10573:4;10565:5;10549:14;10545:26;10541:37;10538:57;;;10591:1;10588;10581:12;10538:57;10619:17;;:::i;:::-;10661:24;10679:5;10661:24;:::i;:::-;10652:7;10645:41;10720:33;10749:2;10742:5;10738:14;10720:33;:::i;:::-;10715:2;10706:7;10702:16;10695:59;10788:34;10818:2;10811:5;10807:14;10788:34;:::i;:::-;10783:2;10774:7;10770:16;10763:60;10857:33;10886:2;10879:5;10875:14;10857:33;:::i;:::-;10852:2;10843:7;10839:16;10832:59;10950:3;10943:5;10939:15;10926:29;10920:3;10911:7;10907:17;10900:56;11015:3;11008:5;11004:15;10991:29;10985:3;10976:7;10972:17;10965:56;11068:3;11061:5;11057:15;11044:29;-1:-1:-1;;;;;11088:6:145;11085:30;11082:50;;;11128:1;11125;11118:12;11082:50;11167:52;11204:14;11195:6;11188:5;11184:18;11167:52;:::i;:::-;11161:3;11148:17;;11141:79;-1:-1:-1;11152:7:145;10412:843;-1:-1:-1;;10412:843:145:o;11260:380::-;11339:1;11335:12;;;;11382;;;11403:61;;11457:4;11449:6;11445:17;11435:27;;11403:61;11510:2;11502:6;11499:14;11479:18;11476:38;11473:161;;11556:10;11551:3;11547:20;11544:1;11537:31;11591:4;11588:1;11581:15;11619:4;11616:1;11609:15;11645:251;11715:6;11768:2;11756:9;11747:7;11743:23;11739:32;11736:52;;;11784:1;11781;11774:12;11736:52;11816:9;11810:16;11835:31;11860:5;11835:31;:::i;12026:542::-;12127:2;12122:3;12119:11;12116:446;;;12163:1;12187:5;12184:1;12177:16;12231:4;12228:1;12218:18;12301:2;12289:10;12285:19;12282:1;12278:27;12272:4;12268:38;12337:4;12325:10;12322:20;12319:47;;;-1:-1:-1;12360:4:145;12319:47;12415:2;12410:3;12406:12;12403:1;12399:20;12393:4;12389:31;12379:41;;12470:82;12488:2;12481:5;12478:13;12470:82;;;12533:17;;;12514:1;12503:13;12470:82;;12744:1341;12868:3;12862:10;-1:-1:-1;;;;;12887:6:145;12884:30;12881:56;;;12917:18;;:::i;:::-;12946:96;13035:6;12995:38;13027:4;13021:11;12995:38;:::i;:::-;12989:4;12946:96;:::i;:::-;13097:4;;13154:2;13143:14;;13171:1;13166:662;;;;13872:1;13889:6;13886:89;;;-1:-1:-1;13941:19:145;;;13935:26;13886:89;-1:-1:-1;;12701:1:145;12697:11;;;12693:24;12689:29;12679:40;12725:1;12721:11;;;12676:57;13988:81;;13136:943;;13166:662;11973:1;11966:14;;;12010:4;11997:18;;-1:-1:-1;;13202:20:145;;;13319:236;13333:7;13330:1;13327:14;13319:236;;;13422:19;;;13416:26;13401:42;;13514:27;;;;13482:1;13470:14;;;;13349:19;;13319:236;;;13323:3;13583:6;13574:7;13571:19;13568:201;;;13644:19;;;13638:26;-1:-1:-1;;13727:1:145;13723:14;;;13739:3;13719:24;13715:37;13711:42;13696:58;13681:74;;13568:201;-1:-1:-1;;;;;13815:1:145;13799:14;;;13795:22;13782:36;;-1:-1:-1;12744:1341:145:o;14090:331::-;14195:9;14206;14248:8;14236:10;14233:24;14230:44;;;14270:1;14267;14260:12;14230:44;14299:6;14289:8;14286:20;14283:40;;;14319:1;14316;14309:12;14283:40;-1:-1:-1;;14345:23:145;;;14390:25;;;;;-1:-1:-1;14090:331:145:o;14426:323::-;-1:-1:-1;;;;;;14546:19:145;;14622:11;;;;14653:1;14645:10;;14642:101;;;14730:2;14724;14717:3;14714:1;14710:11;14707:1;14703:19;14699:28;14695:2;14691:37;14687:46;14678:55;;14642:101;;;14426:323;;;;:::o;14754:255::-;14874:19;;14913:2;14905:11;;14902:101;;;-1:-1:-1;;14974:2:145;14970:12;;;14967:1;14963:20;14959:33;14948:45;14754:255;;;;:::o;15014:331::-;-1:-1:-1;;;;;;15134:19:145;;15218:11;;;;15249:1;15241:10;;15238:101;;;15310:1;15306:11;;;;15303:1;15299:19;15295:28;;;15287:37;15283:46;;;;15014:331;-1:-1:-1;;15014:331:145:o;15350:893::-;15726:3;15721;15717:13;15708:6;15703:3;15699:16;15695:36;15690:3;15683:49;-1:-1:-1;;;;;15787:3:145;15783:28;15774:6;15769:3;15765:16;15761:51;15757:1;15752:3;15748:11;15741:72;15665:3;15841:10;15836:3;15832:20;15903:2;15894:6;15889:3;15885:16;15881:25;15877:1;15872:3;15868:11;15861:46;15937:6;15932:2;15927:3;15923:12;15916:28;15996:2;15987:6;15982:3;15978:16;15974:25;15969:2;15964:3;15960:12;15953:47;;16030:6;16025:2;16020:3;16016:12;16009:28;16067:6;16062:2;16057:3;16053:12;16046:28;16103:6;16097:13;16119:76;16188:6;16182:3;16177;16173:13;16166:4;16158:6;16154:17;16119:76;:::i;:::-;16215:16;;;;16233:3;16211:26;;15350:893;-1:-1:-1;;;;;;;;;15350:893:145:o;16248:377::-;16441:2;16430:9;16423:21;16404:4;16467:44;16507:2;16496:9;16492:18;16484:6;16467:44;:::i;:::-;16559:9;16551:6;16547:22;16542:2;16531:9;16527:18;16520:50;16587:32;16612:6;16604;16587:32;:::i;:::-;16579:40;16248:377;-1:-1:-1;;;;;16248:377:145:o;16909:245::-;16976:6;17029:2;17017:9;17008:7;17004:23;17000:32;16997:52;;;17045:1;17042;17035:12;16997:52;17077:9;17071:16;17096:28;17118:5;17096:28;:::i;17369:287::-;17498:3;17536:6;17530:13;17552:66;17611:6;17606:3;17599:4;17591:6;17587:17;17552:66;:::i;:::-;17634:16;;;;;17369:287;-1:-1:-1;;17369:287:145:o","linkReferences":{},"immutableReferences":{"19339":[{"start":711,"length":32},{"start":1494,"length":32},{"start":1759,"length":32},{"start":2277,"length":32},{"start":2721,"length":32}],"19341":[{"start":763,"length":32}],"19343":[{"start":908,"length":32}]}},"methodIdentifiers":{"PACKET_VERSION()":"6251b637","defaultOption()":"72d71322","endpoint()":"5e280f11","isSupportedEid(uint32)":"6750cd4c","localEid()":"72607537","lzTokenFee()":"90953238","messageLibType()":"1881d94d","nativeFee()":"996f79c0","owner()":"8da5cb5b","quote((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"d80e9bd9","renounceOwnership()":"715018a6","send((uint64,uint32,address,uint32,bytes32,bytes32,bytes),bytes,bool)":"4389e58f","setDefaultOption(bytes)":"dabca063","setMessagingFee(uint256,uint256)":"334993ff","setWhitelistCaller(address)":"aec336e6","supportsInterface(bytes4)":"01ffc9a7","testHelper()":"0e97289b","transferOwnership(address)":"f2fde38b","treasury()":"61d027b3","validatePacket(bytes)":"12cc947f","version()":"54fd4d50","whitelistCaller()":"1c7c294e","withdrawFee(address,uint256)":"fd9be522","withdrawLzTokenFee(address,uint256)":"8f58aa7a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_verifyHelper\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_endpoint\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"expected\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actual\",\"type\":\"address\"}],\"name\":\"InvalidEndpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenIsAddressZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyWhitelistCaller\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ToIsAddressZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"PACKET_VERSION\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultOption\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"isSupportedEid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"localEid\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzTokenFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageLibType\",\"outputs\":[{\"internalType\":\"enum MessageLibType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quote\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"struct Packet\",\"name\":\"_packet\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"encodedPacket\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_defaultOption\",\"type\":\"bytes\"}],\"name\":\"setDefaultOption\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lzTokenFee\",\"type\":\"uint256\"}],\"name\":\"setMessagingFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_whitelistCaller\",\"type\":\"address\"}],\"name\":\"setWhitelistCaller\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testHelper\",\"outputs\":[{\"internalType\":\"contract TestHelperOz5\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packetBytes\",\"type\":\"bytes\"}],\"name\":\"validatePacket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"major\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"minor\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"endpointVersion\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"whitelistCaller\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawLzTokenFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol\":\"SimpleMessageLibMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol\":{\"keccak256\":\"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2\",\"dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol\":{\"keccak256\":\"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4\",\"dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol\":{\"keccak256\":\"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497\",\"dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":{\"keccak256\":\"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f\",\"dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol\":{\"keccak256\":\"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032\",\"dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":{\"keccak256\":\"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5\",\"dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":{\"keccak256\":\"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89\",\"dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":{\"keccak256\":\"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79\",\"dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol\":{\"keccak256\":\"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2\",\"dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9\",\"dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":{\"keccak256\":\"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55\",\"dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol\":{\"keccak256\":\"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc\",\"dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":{\"keccak256\":\"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850\",\"dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol\":{\"keccak256\":\"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691\",\"dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":{\"keccak256\":\"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241\",\"dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":{\"keccak256\":\"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c\",\"dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":{\"keccak256\":\"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a\",\"dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":{\"keccak256\":\"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54\",\"dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol\":{\"keccak256\":\"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda\",\"dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol\":{\"keccak256\":\"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2\",\"dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol\":{\"keccak256\":\"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11\",\"dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol\":{\"keccak256\":\"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677\",\"dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol\":{\"keccak256\":\"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590\",\"dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol\":{\"keccak256\":\"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045\",\"dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol\":{\"keccak256\":\"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13\",\"dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol\":{\"keccak256\":\"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29\",\"dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol\":{\"keccak256\":\"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f\",\"dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol\":{\"keccak256\":\"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec\",\"dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol\":{\"keccak256\":\"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4\",\"dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol\":{\"keccak256\":\"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574\",\"dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol\":{\"keccak256\":\"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991\",\"dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol\":{\"keccak256\":\"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1\",\"dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e\",\"dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8\",\"dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_verifyHelper","type":"address"},{"internalType":"address","name":"_endpoint","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[{"internalType":"address","name":"expected","type":"address"},{"internalType":"address","name":"actual","type":"address"}],"type":"error","name":"InvalidEndpoint"},{"inputs":[],"type":"error","name":"LZ_NotImplemented"},{"inputs":[],"type":"error","name":"LzTokenIsAddressZero"},{"inputs":[],"type":"error","name":"OnlyEndpoint"},{"inputs":[],"type":"error","name":"OnlyWhitelistCaller"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"ToIsAddressZero"},{"inputs":[],"type":"error","name":"TransferFailed"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"PACKET_VERSION","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultOption","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"pure","type":"function","name":"isSupportedEid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"localEid","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lzTokenFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"messageLibType","outputs":[{"internalType":"enum MessageLibType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct Packet","name":"","type":"tuple","components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quote","outputs":[{"internalType":"struct MessagingFee","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct Packet","name":"_packet","type":"tuple","components":[{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"receiver","type":"bytes32"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}]},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"bytes","name":"encodedPacket","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"_defaultOption","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultOption"},{"inputs":[{"internalType":"uint256","name":"_nativeFee","type":"uint256"},{"internalType":"uint256","name":"_lzTokenFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMessagingFee"},{"inputs":[{"internalType":"address","name":"_whitelistCaller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setWhitelistCaller"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"testHelper","outputs":[{"internalType":"contract TestHelperOz5","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"packetBytes","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"validatePacket"},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"major","type":"uint64"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"endpointVersion","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"whitelistCaller","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawLzTokenFee"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol":"SimpleMessageLibMock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol":{"keccak256":"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9","urls":["bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2","dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol":{"keccak256":"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1","urls":["bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4","dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol":{"keccak256":"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e","urls":["bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497","dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":{"keccak256":"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a","urls":["bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f","dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol":{"keccak256":"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3","urls":["bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032","dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":{"keccak256":"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345","urls":["bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5","dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":{"keccak256":"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d","urls":["bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89","dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":{"keccak256":"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44","urls":["bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79","dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol":{"keccak256":"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5","urls":["bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2","dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f","urls":["bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9","dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":{"keccak256":"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73","urls":["bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55","dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol":{"keccak256":"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91","urls":["bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc","dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":{"keccak256":"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27","urls":["bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850","dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol":{"keccak256":"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f","urls":["bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691","dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol":{"keccak256":"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a","urls":["bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241","dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol":{"keccak256":"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73","urls":["bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c","dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol":{"keccak256":"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1","urls":["bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a","dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol":{"keccak256":"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420","urls":["bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54","dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":{"keccak256":"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5","urls":["bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b","dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":{"keccak256":"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9","urls":["bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f","dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol":{"keccak256":"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22","urls":["bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda","dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa"],"license":"BUSL-1.1"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol":{"keccak256":"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095","urls":["bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2","dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol":{"keccak256":"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95","urls":["bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11","dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol":{"keccak256":"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef","urls":["bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677","dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol":{"keccak256":"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada","urls":["bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590","dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol":{"keccak256":"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff","urls":["bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045","dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol":{"keccak256":"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21","urls":["bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13","dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol":{"keccak256":"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16","urls":["bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29","dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol":{"keccak256":"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830","urls":["bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f","dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol":{"keccak256":"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44","urls":["bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec","dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol":{"keccak256":"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121","urls":["bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4","dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol":{"keccak256":"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348","urls":["bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574","dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol":{"keccak256":"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9","urls":["bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991","dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol":{"keccak256":"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97","urls":["bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1","dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol":{"keccak256":"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70","urls":["bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e","dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"keccak256":"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67","urls":["bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8","dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":81} \ No newline at end of file diff --git a/packages/onft-evm/out/StdAssertions.sol/StdAssertions.json b/packages/onft-evm/out/StdAssertions.sol/StdAssertions.json deleted file mode 100644 index 29491a585..000000000 --- a/packages/onft-evm/out/StdAssertions.sol/StdAssertions.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol\":\"StdAssertions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol":"StdAssertions"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"id":85} \ No newline at end of file diff --git a/packages/onft-evm/out/StdChains.sol/StdChains.json b/packages/onft-evm/out/StdChains.sol/StdChains.json deleted file mode 100644 index 7d81f6aae..000000000 --- a/packages/onft-evm/out/StdChains.sol/StdChains.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"StdChains provides information about EVM compatible chains that can be used in scripts/tests. For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the alias used in this contract, which can be found as the first argument to the `setChainWithDefaultRpcUrl` call in the `initializeStdChains` function. There are two main ways to use this contract: 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or `setChain(string memory chainAlias, Chain memory chain)` 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`. The first time either of those are used, chains are initialized with the default set of RPC URLs. This is done in `initializeStdChains`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in `defaultRpcUrls`. The `setChain` function is straightforward, and it simply saves off the given chain data. The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say we want to retrieve the RPC URL for `mainnet`: - If you have specified data with `setChain`, it will return that. - If you have configured a mainnet RPC URL in `foundry.toml`, it will return the URL, provided it is valid (e.g. a URL is specified, or an environment variable is given and exists). - If neither of the above conditions is met, the default data is returned. Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> environment variable -> defaults.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol\":\"StdChains\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e\",\"dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol":"StdChains"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol":{"keccak256":"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70","urls":["bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e","dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"id":86} \ No newline at end of file diff --git a/packages/onft-evm/out/StdCheats.sol/StdCheats.json b/packages/onft-evm/out/StdCheats.sol/StdCheats.json deleted file mode 100644 index e61df86b4..000000000 --- a/packages/onft-evm/out/StdCheats.sol/StdCheats.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":\"StdCheats\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":"StdCheats"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"}},"version":1},"id":87} \ No newline at end of file diff --git a/packages/onft-evm/out/StdCheats.sol/StdCheatsSafe.json b/packages/onft-evm/out/StdCheats.sol/StdCheatsSafe.json deleted file mode 100644 index c2059f5e0..000000000 --- a/packages/onft-evm/out/StdCheats.sol/StdCheatsSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":\"StdCheatsSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":"StdCheatsSafe"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"}},"version":1},"id":87} \ No newline at end of file diff --git a/packages/onft-evm/out/StdError.sol/stdError.json b/packages/onft-evm/out/StdError.sol/stdError.json deleted file mode 100644 index 9d2333689..000000000 --- a/packages/onft-evm/out/StdError.sol/stdError.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x61025061003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061009d5760003560e01c8063986c5f6811610070578063986c5f68146100d8578063b22dc54d146100e0578063b67689da146100e8578063d160e4de146100f0578063fa784a44146100f857600080fd5b806305ee8612146100a257806310332977146100c05780631de45560146100c85780638995290f146100d0575b600080fd5b6100aa610100565b6040516100b791906101cb565b60405180910390f35b6100aa61013b565b6100aa61014d565b6100aa61015f565b6100aa610171565b6100aa610183565b6100aa610195565b6100aa6101a7565b6100aa6101b9565b604051603260248201526044015b60408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905281565b6040516001602482015260440161010e565b6040516021602482015260440161010e565b6040516011602482015260440161010e565b6040516041602482015260440161010e565b6040516031602482015260440161010e565b6040516051602482015260440161010e565b6040516022602482015260440161010e565b6040516012602482015260440161010e565b60006020808352835180602085015260005b818110156101f9578581018301518582016040015282016101dd565b506000604082860101526040601f19601f830116850101925050509291505056fea264697066735822122031eed407a7a1f6a5b4df709bf034ef62ac2f48f1321dba4d2176fca9fe54969664736f6c63430008160033","sourceMap":"162:850:88:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:850:88;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061009d5760003560e01c8063986c5f6811610070578063986c5f68146100d8578063b22dc54d146100e0578063b67689da146100e8578063d160e4de146100f0578063fa784a44146100f857600080fd5b806305ee8612146100a257806310332977146100c05780631de45560146100c85780638995290f146100d0575b600080fd5b6100aa610100565b6040516100b791906101cb565b60405180910390f35b6100aa61013b565b6100aa61014d565b6100aa61015f565b6100aa610171565b6100aa610183565b6100aa610195565b6100aa6101a7565b6100aa6101b9565b604051603260248201526044015b60408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905281565b6040516001602482015260440161010e565b6040516021602482015260440161010e565b6040516011602482015260440161010e565b6040516041602482015260440161010e565b6040516031602482015260440161010e565b6040516051602482015260440161010e565b6040516022602482015260440161010e565b6040516012602482015260440161010e565b60006020808352835180602085015260005b818110156101f9578581018301518582016040015282016101dd565b506000604082860101526040601f19601f830116850101925050509291505056fea264697066735822122031eed407a7a1f6a5b4df709bf034ef62ac2f48f1321dba4d2176fca9fe54969664736f6c63430008160033","sourceMap":"162:850:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;726:36:145;699:18;;778:47:88;;;;-1:-1:-1;;778:47:88;;;;;;;;;;;;;;-1:-1:-1;;;;;778:47:88;-1:-1:-1;;;778:47:88;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;726:36:145;699:18;;224:47:88;573:195:145;461:91:88;505:47;;547:4;505:47;;;726:36:145;699:18;;505:47:88;573:195:145;277:87:88;317:47;;359:4;317:47;;;726:36:145;699:18;;317:47:88;573:195:145;831:88:88;872:47;;914:4;872:47;;;726:36:145;699:18;;872:47:88;573:195:145;654:80:88;687:47;;729:4;687:47;;;726:36:145;699:18;;687:47:88;573:195:145;925:84:88;962:47;;1004:4;962:47;;;726:36:145;699:18;;962:47:88;573:195:145;558:90:88;601:47;;643:4;601:47;;;726:36:145;699:18;;601:47:88;573:195:145;370:85:88;408:47;;450:4;408:47;;;726:36:145;699:18;;408:47:88;573:195:145;14:554;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;304:3;489:1;484:2;475:6;464:9;460:22;456:31;449:42;559:2;552;548:7;543:2;535:6;531:15;527:29;516:9;512:45;508:54;500:62;;;;14:554;;;;:::o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol":"stdError"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"id":88} \ No newline at end of file diff --git a/packages/onft-evm/out/StdInvariant.sol/StdInvariant.json b/packages/onft-evm/out/StdInvariant.sol/StdInvariant.json deleted file mode 100644 index 7b6566ab9..000000000 --- a/packages/onft-evm/out/StdInvariant.sol/StdInvariant.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol\":\"StdInvariant\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol":"StdInvariant"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"}},"version":1},"id":89} \ No newline at end of file diff --git a/packages/onft-evm/out/StdJson.sol/stdJson.json b/packages/onft-evm/out/StdJson.sol/stdJson.json deleted file mode 100644 index 98cc699e7..000000000 --- a/packages/onft-evm/out/StdJson.sol/stdJson.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b46897119b05cfe342d2a13ff4c21a06c1c4e58363c06af6220c8e7cb6f3279264736f6c63430008160033","sourceMap":"830:5612:90:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;830:5612:90;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b46897119b05cfe342d2a13ff4c21a06c1c4e58363c06af6220c8e7cb6f3279264736f6c63430008160033","sourceMap":"830:5612:90:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol\":\"stdJson\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol":"stdJson"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"id":90} \ No newline at end of file diff --git a/packages/onft-evm/out/StdMath.sol/stdMath.json b/packages/onft-evm/out/StdMath.sol/stdMath.json deleted file mode 100644 index 2c64b41d7..000000000 --- a/packages/onft-evm/out/StdMath.sol/stdMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f09619f232fb58a44fb4108b3c8bd011b392ac0a0a3630fd5e029ec56caebb1664736f6c63430008160033","sourceMap":"65:1294:91:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:1294:91;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f09619f232fb58a44fb4108b3c8bd011b392ac0a0a3630fd5e029ec56caebb1664736f6c63430008160033","sourceMap":"65:1294:91:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"id":91} \ No newline at end of file diff --git a/packages/onft-evm/out/StdStorage.sol/stdStorage.json b/packages/onft-evm/out/StdStorage.sol/stdStorage.json deleted file mode 100644 index 433158213..000000000 --- a/packages/onft-evm/out/StdStorage.sol/stdStorage.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220798526750deddaf42217ec1d1c2f1ff5fc8b79875fa5c2d34df01fe890b1fa9364736f6c63430008160033","sourceMap":"8870:4920:92:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;8870:4920:92;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220798526750deddaf42217ec1d1c2f1ff5fc8b79875fa5c2d34df01fe890b1fa9364736f6c63430008160033","sourceMap":"8870:4920:92:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":\"stdStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":"stdStorage"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"id":92} \ No newline at end of file diff --git a/packages/onft-evm/out/StdStorage.sol/stdStorageSafe.json b/packages/onft-evm/out/StdStorage.sol/stdStorageSafe.json deleted file mode 100644 index 1a5c2e192..000000000 --- a/packages/onft-evm/out/StdStorage.sol/stdStorageSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205a699ce9d00125fe5de6b1e2b155bc0344a1bb7800ac34b0ac6e16fce58bc33064736f6c63430008160033","sourceMap":"368:8500:92:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;368:8500:92;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205a699ce9d00125fe5de6b1e2b155bc0344a1bb7800ac34b0ac6e16fce58bc33064736f6c63430008160033","sourceMap":"368:8500:92:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":\"stdStorageSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":"stdStorageSafe"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"id":92} \ No newline at end of file diff --git a/packages/onft-evm/out/StdStyle.sol/StdStyle.json b/packages/onft-evm/out/StdStyle.sol/StdStyle.json deleted file mode 100644 index 2978e65eb..000000000 --- a/packages/onft-evm/out/StdStyle.sol/StdStyle.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220835a4841735c8a2571bcbca8efbe04a77b2161ae4917229a9421bb2732bb2bf264736f6c63430008160033","sourceMap":"100:10361:93:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;100:10361:93;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220835a4841735c8a2571bcbca8efbe04a77b2161ae4917229a9421bb2732bb2bf264736f6c63430008160033","sourceMap":"100:10361:93:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol\":\"StdStyle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol":"StdStyle"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"id":93} \ No newline at end of file diff --git a/packages/onft-evm/out/StdUtils.sol/StdUtils.json b/packages/onft-evm/out/StdUtils.sol/StdUtils.json deleted file mode 100644 index 3029dc714..000000000 --- a/packages/onft-evm/out/StdUtils.sol/StdUtils.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file diff --git a/packages/onft-evm/out/StorageSlot.sol/StorageSlot.json b/packages/onft-evm/out/StorageSlot.sol/StorageSlot.json deleted file mode 100644 index 24f77158b..000000000 --- a/packages/onft-evm/out/StorageSlot.sol/StorageSlot.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207d44e57f545b7149eb1b2c531bff9ac93439dc9c55b8670f0d9d01d7cf809df264736f6c63430008160033","sourceMap":"1245:2685:123:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1245:2685:123;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207d44e57f545b7149eb1b2c531bff9ac93439dc9c55b8670f0d9d01d7cf809df264736f6c63430008160033","sourceMap":"1245:2685:123:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":"StorageSlot"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"}},"version":1},"id":123} \ No newline at end of file diff --git a/packages/onft-evm/out/Strings.sol/Strings.json b/packages/onft-evm/out/Strings.sol/Strings.json deleted file mode 100644 index 19eb2a336..000000000 --- a/packages/onft-evm/out/Strings.sol/Strings.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202057c8e1470827c8b7e29f9439cb9595d67cd35ef56bf63d06fb659c668116d064736f6c63430008160033","sourceMap":"251:2847:124:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;251:2847:124;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202057c8e1470827c8b7e29f9439cb9595d67cd35ef56bf63d06fb659c668116d064736f6c63430008160033","sourceMap":"251:2847:124:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/utils/Strings.sol":"Strings"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"}},"version":1},"id":124} \ No newline at end of file diff --git a/packages/onft-evm/out/TestHelperOz5.sol/TestHelperOz5.json b/packages/onft-evm/out/TestHelperOz5.sol/TestHelperOz5.json deleted file mode 100644 index cc6604a7c..000000000 --- a/packages/onft-evm/out/TestHelperOz5.sol/TestHelperOz5.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_FOR_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"assertGuid","inputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"},{"name":"guid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"decodeLzComposeOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"index","type":"uint16","internalType":"uint16"},{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeLzReceiveOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeNativeDropOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"receiver","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"executorValueCap","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextInflightPacket","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"hasPendingPackets","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"flag","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_from","type":"address","internalType":"address"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_to","type":"address","internalType":"address"},{"name":"_composerMsg","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzCompose","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_composer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceive","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextExecutorOption","inputs":[{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_cursor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"optionType","type":"uint8","internalType":"uint8"},{"name":"option","type":"bytes","internalType":"bytes"},{"name":"cursor","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"registerEndpoint","inputs":[{"name":"endpoint","type":"address","internalType":"contract EndpointV2Mock"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"schedulePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setExecutorValueCap","inputs":[{"name":"_valueCap","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUpEndpoints","inputs":[{"name":"_endpointNum","type":"uint8","internalType":"uint8"},{"name":"_libraryType","type":"uint8","internalType":"enum TestHelperOz5.LibraryType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setupOApps","inputs":[{"name":"_oappCreationCode","type":"bytes","internalType":"bytes"},{"name":"_startEid","type":"uint8","internalType":"uint8"},{"name":"_oappNum","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"},{"name":"_packetAmount","type":"uint256","internalType":"uint256"},{"name":"_composer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wireOApps","inputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"Executor_InvalidLzComposeOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReceiveOption","inputs":[]},{"type":"error","name":"Executor_InvalidNativeDropOption","inputs":[]},{"type":"error","name":"QueueEmpty","inputs":[]},{"type":"error","name":"QueueFull","inputs":[]}],"bytecode":{"object":"0x6080604081905260078054600160ff199182168117909255600b805490911690911790556200002e906200009c565b604051809103906000f0801580156200004b573d6000803e3d6000fd5b50601c80546001600160a01b03929092166001600160a01b0319909216919091179055602180546001600160801b03191667016345785d8a00001790553480156200009557600080fd5b50620000aa565b6107f2806201d80483390190565b6201d74980620000bb6000396000f3fe608060405260043610620002335760003560e01c80637982cf42116200012f578063b954fdf611620000ad578063e20c9f711162000078578063e20c9f7114620006dc578063ec53eaa014620006f4578063f93e1d61146200070b578063fa7626d41462000751578063faed6c58146200076d57600080fd5b8063b954fdf61462000623578063ba414fa61462000668578063baead19c1462000680578063defd9da6146200069b57600080fd5b8063a29c898411620000fa578063a29c89841462000582578063ae6ce4001462000599578063b1dcf5c814620005be578063b5508aa914620005e6578063b752b72a14620005fe57600080fd5b80637982cf4214620004ea57806385226c81146200051e578063916a17c61462000545578063997cff1b146200055d57600080fd5b80633bbd6a9411620001bd5780635e7baa4211620001885780635e7baa42146200040c5780635ea0fefe146200043157806366d9a9a014620004675780636e1775e3146200048e578063703ca25414620004c557600080fd5b80633bbd6a9414620003755780633e5e3c23146200038c5780633f7286f414620003a4578063518e8ab014620003bc57600080fd5b80631ed7831c11620001fe5780631ed7831c14620002be5780632113ce6214620002ee5780632a35d25014620003295780632ade3880146200034e57600080fd5b8063090852b614620002405780630a9254e4146200026757806312cc947f14620002745780631cc46525146200029957600080fd5b366200023b57005b600080fd5b3480156200024d57600080fd5b50620002656200025f36600462004471565b62000792565b005b3480156200026557600080fd5b3480156200028157600080fd5b506200026562000293366004620044f3565b620007ae565b348015620002a657600080fd5b5062000265620002b836600462004548565b620010b2565b348015620002cb57600080fd5b50620002d662002523565b604051620002e59190620045c5565b60405180910390f35b348015620002fb57600080fd5b5060215462000310906001600160801b031681565b6040516001600160801b039091168152602001620002e5565b3480156200033657600080fd5b50620002d662000348366004620046d4565b62002587565b3480156200035b57600080fd5b50620003666200269e565b604051620002e59190620047f1565b620002656200038636600462004874565b620027ec565b3480156200039957600080fd5b50620002d6620028ac565b348015620003b157600080fd5b50620002d66200290e565b348015620003c957600080fd5b50620003e1620003db366004620044f3565b62002970565b6040805161ffff90941684526001600160801b039283166020850152911690820152606001620002e5565b3480156200041957600080fd5b50620002656200042b3660046200492e565b6200298e565b3480156200043e57600080fd5b5062000456620004503660046200498e565b62002e42565b6040519015158152602001620002e5565b3480156200047457600080fd5b506200047f62002e77565b604051620002e59190620049bd565b3480156200049b57600080fd5b50620004b3620004ad36600462004a76565b62002f61565b604051620002e5949392919062004aee565b348015620004d257600080fd5b5062000265620004e436600462004b44565b62002f85565b348015620004f757600080fd5b506200050f620005093660046200498e565b62003151565b604051620002e5919062004be8565b3480156200052b57600080fd5b50620005366200323f565b604051620002e5919062004bfd565b3480156200055257600080fd5b506200047f62003319565b3480156200056a57600080fd5b50620002656200057c36600462004a76565b62003403565b620002656200059336600462004c12565b6200345b565b348015620005a657600080fd5b5062000265620005b836600462004ca2565b620034dc565b348015620005cb57600080fd5b50620005d7620186a081565b604051908152602001620002e5565b348015620005f357600080fd5b50620005366200357d565b3480156200060b57600080fd5b50620002656200061d36600462004cc2565b62003657565b3480156200063057600080fd5b506200064862000642366004620044f3565b62003666565b604080516001600160801b039093168352602083019190915201620002e5565b3480156200067557600080fd5b506200045662003681565b3480156200068d57600080fd5b50620005d764e8d4a5100081565b348015620006a857600080fd5b5062000265620006ba36600462004cf9565b602180546001600160801b0319166001600160801b0392909216919091179055565b348015620006e957600080fd5b50620002d6620037b8565b620002656200070536600462004d19565b6200381a565b3480156200071857600080fd5b50620007306200072a366004620044f3565b62003955565b604080516001600160801b03938416815292909116602083015201620002e5565b3480156200075e57600080fd5b50600754620004569060ff1681565b3480156200077a57600080fd5b50620002656200078c36600462004d88565b62003964565b620007aa826001600160a01b0383166000806200298e565b5050565b6000620007bc8383620039f6565b63ffffffff811660009081526020805260408120549192506001600160a01b03909116908163402f8468620007f2878762003a1d565b620007fe888862003a32565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015263ffffffff1660248201526044016040805180830381865afa1580156200084d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000873919062004e0b565b50905060008190506000826001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401606060405180830381865afa158015620008bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008e2919062004e61565b50509050806001600160401b031660030362001044576000826001600160a01b0316639c33abf7620009158a8a62003a32565b620009218b8b62003a1d565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526001600160a01b0316602482015260026044820152606401600060405180830381865afa15801562000979573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620009a3919081019062004efb565b9050600081806020019051810190620009bd919062004faf565b60800151600081518110620009d657620009d662005096565b602002602001015190506000620009ee8a8a62003a44565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093945062000a3392508d91508c905062003a56565b60405162000a43929190620050ac565b6040518091039020905060606000630223536e60e01b8484606460405160240162000a7193929190620050bc565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03861663f010cb238d8b8562000ac7426103e862005100565b6040518563ffffffff1660e01b815260040162000ae8949392919062005116565b602060405180830381865afa15801562000b06573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b2c919062005159565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b82526001600483015260248201819052915060009081908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063e341eaa490604401606060405180830381865afa15801562000bdc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c02919062005173565b6040805160208101939093528281019190915260f89290921b6001600160f81b03191660608201528151604181830301815260619091019091529650600094506001935062000c5092505050565b60405190808252806020026020018201604052801562000cad57816020015b6040805160a081018252600080825260208201819052606092820183905282820152608081019190915281526020019060019003908162000c6f5790505b5090506040518060a001604052808d63ffffffff1681526020018a6001600160a01b03168152602001838152602001426103e862000cec919062005100565b8152602001848152508160008151811062000d0b5762000d0b62005096565b602090810291909101015260405163b143044b60e01b81526001600160a01b0387169063b143044b9062000d44908490600401620051ad565b600060405180830381600087803b15801562000d5f57600080fd5b505af115801562000d74573d6000803e3d6000fd5b505050506000630894edf160e01b868660405160240162000d979291906200525f565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03881663f010cb238f8d8562000ded426103e862005100565b6040518563ffffffff1660e01b815260040162000e0e949392919062005116565b602060405180830381865afa15801562000e2c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e52919062005159565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b82526001600483015260248201819052915060009081908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063e341eaa490604401606060405180830381865afa15801562000f02573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f28919062005173565b60408051602081018490529081018290526001600160f81b031960f885901b1660608201529295509093509150606101604051602081830303815290604052985050505050506040518060a001604052808e63ffffffff1681526020018b6001600160a01b03168152602001828152602001426103e862000faa919062005100565b8152602001858152508260008151811062000fc95762000fc962005096565b602090810291909101015260405163b143044b60e01b81526001600160a01b0388169063b143044b9062001002908590600401620051ad565b600060405180830381600087803b1580156200101d57600080fd5b505af115801562001032573d6000803e3d6000fd5b505050505050505050505050620010a9565b6040516312cc947f60e01b81526001600160a01b038416906312cc947f9062001074908a908a9060040162005283565b600060405180830381600087803b1580156200108f57600080fd5b505af1158015620010a4573d6000803e3d6000fd5b505050505b50505050505050565b60008260ff166001600160401b03811115620010d257620010d2620045da565b604051908082528060200260200182016040528015620010fc578160200160208202803683370190505b50905060008360ff166001600160401b038111156200111f576200111f620045da565b60405190808252806020026020018201604052801562001149578160200160208202803683370190505b50905060005b8460ff168160ff1610156200125a5760006200116d82600162005299565b60ff16905080838360ff16815181106200118b576200118b62005096565b602002602001019063ffffffff16908163ffffffff16815250508030604051620011b59062004319565b63ffffffff90921682526001600160a01b03166020820152604001604051809103906000f080158015620011ed573d6000803e3d6000fd5b50848360ff168151811062001206576200120662005096565b60200260200101906001600160a01b031690816001600160a01b03168152505062001250848360ff168151811062001242576200124262005096565b6020026020010151620034dc565b506001016200114f565b5060008460ff166001600160401b038111156200127b576200127b620045da565b604051908082528060200260200182016040528015620012a5578160200160208202803683370190505b50905060008560ff166001600160401b03811115620012c857620012c8620045da565b604051908082528060200260200182016040528015620012f2578160200160208202803683370190505b506040805160018082528183019092529192506000919060208083019080368337019050506040516001625e79b760e01b0319815260016004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156200136e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013949190620052b5565b81600081518110620013aa57620013aa62005096565b60200260200101906001600160a01b031690816001600160a01b031681525050600030604051620013db9062004327565b6001600160a01b039091168152602001604051809103906000f08015801562001408573d6000803e3d6000fd5b50905060005b8860ff168160ff1610156200235b576000886001811115620014345762001434620052d5565b036200218f576000878260ff168151811062001454576200145462005096565b60200260200101519050600080308364e8d4a51000620186a06040516200147b9062004335565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103906000f080158015620014bb573d6000803e3d6000fd5b50915082604051620014cd9062004343565b6001600160a01b039091168152602001604051809103906000f080158015620014fa573d6000803e3d6000fd5b509050898460ff168151811062001515576200151562005096565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0384811660048301529091169063e8964e8190602401600060405180830381600087803b1580156200156557600080fd5b505af11580156200157a573d6000803e3d6000fd5b50505050898460ff168151811062001596576200159662005096565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b158015620015e657600080fd5b505af1158015620015fb573d6000803e3d6000fd5b5050505081888560ff168151811062001618576200161862005096565b60200260200101906001600160a01b031690816001600160a01b03168152505080878560ff168151811062001651576200165162005096565b6001600160a01b0392909216602092830291909101820152604080516001808252818301909252600092839283929182810190803683370190505090503081600081518110620016a557620016a562005096565b6001600160a01b039290921660209283029190910182015260408051600280825260608201835260009391929091830190803683370190505090508581600081518110620016f757620016f762005096565b60200260200101906001600160a01b031690816001600160a01b03168152505084816001815181106200172e576200172e62005096565b60200260200101906001600160a01b031690816001600160a01b031681525050866000828b3086604051620017639062004351565b6200177496959493929190620052eb565b604051809103906000f08015801562001791573d6000803e3d6000fd5b5093506000604051620017a4906200435f565b604051809103906000f080158015620017c1573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b1580156200180a57600080fd5b505af11580156200181f573d6000803e3d6000fd5b5050505088600162001832919062005299565b828b8d60018760405162001846906200436d565b620018579695949392919062005349565b604051809103906000f08015801562001874573d6000803e3d6000fd5b5093506000670de0b6b3a764000060405162001890906200437b565b908152602001604051809103906000f080158015620018b3573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b158015620018fc57600080fd5b505af115801562001911573d6000803e3d6000fd5b505050505050505060008e60ff16905060008163ffffffff166001600160401b03811115620019445762001944620045da565b604051908082528060200260200182016040528015620019a657816020015b6040805160c08101825260008082526020808301829052928201819052606082018190526080820181905260a08201528252600019909201910181620019635790505b50905060008263ffffffff166001600160401b03811115620019cc57620019cc620045da565b60405190808252806020026020018201604052801562001a2057816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181620019eb5790505b50905060005b8363ffffffff168160ff161015620020bc578060ff168a60ff160315620020a757600062001a5682600162005299565b60408051600180825281830190925260ff9290921692506000919060208083019080368337019050506040805160008082526020820190925291925050878260008151811062001aaa5762001aaa62005096565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b62001ae462004389565b81526020019060019003908162001ada57905050905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff168152602001828152508260008151811062001b725762001b7262005096565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038e16906329460b0b9062001bab908590600401620053bc565b600060405180830381600087803b15801562001bc657600080fd5b505af115801562001bdb573d6000803e3d6000fd5b50600094506001935062001bee92505050565b60405190808252806020026020018201604052801562001c2b57816020015b62001c17620043f2565b81526020019060019003908162001c0d5790505b5090506000604051806040016040528061271063ffffffff1681526020018c6001600160a01b0316815250905060405180604001604052808663ffffffff168152602001828152508260008151811062001c895762001c8962005096565b602090810291909101015260405163c14c434960e01b81526001600160a01b038e169063c14c43499062001cc29085906004016200549a565b600060405180830381600087803b15801562001cdd57600080fd5b505af115801562001cf2573d6000803e3d6000fd5b50600094506001935062001d0592505050565b60405190808252806020026020018201604052801562001d4257816020015b62001d2e62004389565b81526020019060019003908162001d245790505b50905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff168152602001828152508260008151811062001dbd5762001dbd62005096565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038d16906329460b0b9062001df6908590600401620053bc565b600060405180830381600087803b15801562001e1157600080fd5b505af115801562001e26573d6000803e3d6000fd5b50506040805160c08101825263ffffffff89168152611388602082018190529181019190915261271060608201526402540be40060808201526021546001600160801b031660a08201528a519094508a935060ff891692508210905062001e915762001e9162005096565b602002602001018190525060405180608001604052808463ffffffff1681526020016113886001600160401b0316815260200161271061ffff1681526020016402540be4006001600160801b0316815250858560ff168151811062001efa5762001efa62005096565b602002602001018190525060008e6001600160a01b031663c18403276040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001f46573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f6c91906200550b565b60408051600180825281830190925291925060009190816020015b62001fbb60408051808201825260008082528251606081018452818152602081810183905293810191909152909182015290565b81526020019060019003908162001f8757905050905060405180604001604052808663ffffffff16815260200160405180606001604052808560016200200291906200552b565b6001600160801b0316815260016020820181905260409091015290528151829060009062002034576200203462005096565b60200260200101819052508f6001600160a01b0316633161b7f6826040518263ffffffff1660e01b81526004016200206d919062005559565b600060405180830381600087803b1580156200208857600080fd5b505af11580156200209d573d6000803e3d6000fd5b5050505050505050505b80620020b381620055cd565b91505062001a26565b50604051633d85ac3360e01b81526001600160a01b03861690633d85ac3390620020eb908590600401620055ef565b600060405180830381600087803b1580156200210657600080fd5b505af11580156200211b573d6000803e3d6000fd5b50506040516352d3b87160e01b81526001600160a01b03871692506352d3b87191506200214d90849060040162005681565b600060405180830381600087803b1580156200216857600080fd5b505af11580156200217d573d6000803e3d6000fd5b50505050505050505050505062002352565b6001886001811115620021a657620021a6620052d5565b036200230e57600030888360ff1681518110620021c757620021c762005096565b6020026020010151604051620021dd9062004437565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562002211573d6000803e3d6000fd5b509050878260ff16815181106200222c576200222c62005096565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b1580156200227c57600080fd5b505af115801562002291573d6000803e3d6000fd5b5050505080868360ff1681518110620022ae57620022ae62005096565b60200260200101906001600160a01b031690816001600160a01b03168152505080858360ff1681518110620022e757620022e762005096565b60200260200101906001600160a01b031690816001600160a01b0316815250505062002352565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206c696272617279207479706560601b60448201526064015b60405180910390fd5b6001016200140e565b5060005b8860ff168160ff16101562002518576000878260ff168151811062002388576200238862005096565b6020026020010151905060005b8a60ff168160ff1610156200250d578060ff168360ff16031562002504576001600160a01b03821663aafea312620023cf83600162005299565b898660ff1681518110620023e757620023e762005096565b60200260200101516040518363ffffffff1660e01b81526004016200242492919060ff9290921682526001600160a01b0316602082015260400190565b600060405180830381600087803b1580156200243f57600080fd5b505af115801562002454573d6000803e3d6000fd5b50505050816001600160a01b031663a718531b82600162002476919062005299565b888660ff16815181106200248e576200248e62005096565b60209081029190910101516040516001600160e01b031960e085901b16815260ff90921660048301526001600160a01b0316602482015260006044820152606401600060405180830381600087803b158015620024ea57600080fd5b505af1158015620024ff573d6000803e3d6000fd5b505050505b60010162002395565b50506001016200235f565b505050505050505050565b606060148054806020026020016040519081016040528092919081815260200182805480156200257d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200255e575b5050505050905090565b60608160ff166001600160401b03811115620025a757620025a7620045da565b604051908082528060200260200182016040528015620025d1578160200160208202803683370190505b509050825b620025e2838562005299565b60ff168160ff1610156200268b5760ff81166000908152602080805260408083205481516001600160a01b03909116928101929092523090820152600160608201526200264390879060800160405160208183030381529060405262003a68565b90508083620026538785620056f6565b60ff168151811062002669576200266962005096565b6001600160a01b039092166020928302919091019091015250600101620025d6565b50620026978162002f85565b9392505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015620027e357600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620027cb578382906000526020600020018054620027379062005712565b80601f0160208091040260200160405190810160405280929190818152602001828054620027659062005712565b8015620027b65780601f106200278a57610100808354040283529160200191620027b6565b820191906000526020600020905b8154815290600101906020018083116200279857829003601f168201915b50505050508152602001906001019062002715565b505050508152505081526020019060010190620026c2565b50505050905090565b63ffffffff871660009081526020805260408120546001600160a01b0316908080620028188962003ac7565b925092509250836001600160a01b03166391d20fa18284908d8b8d898d8d604051806020016040528060008152506040518a63ffffffff1660e01b81526004016200286a97969594939291906200574e565b6000604051808303818589803b1580156200288457600080fd5b5088f115801562002899573d6000803e3d6000fd5b5050505050505050505050505050505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200257d576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200255e575050505050905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200257d576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200255e575050505050905090565b600080600062002981858562003bc4565b9250925092509250925092565b63ffffffff841660009081526020805260409020546001600160a01b0316620029fa5760405162461bcd60e51b815260206004820152601b60248201527f656e64706f696e74206e6f742079657420726567697374657265640000000000604482015260640162002349565b63ffffffff84166000908152601d6020908152604080832086845290915281209062002a268262003c42565b905060008460000362002a465762002a3e8362003c42565b905062002a5a565b84821162002a55578162002a57565b845b90505b8015620010a9578062002a6d81620057a2565b915050600062002a7d8462003c60565b6000818152601e602052604081208054929350909162002a9d9062005712565b80601f016020809104026020016040519081016040528092919081815260200182805462002acb9062005712565b801562002b1c5780601f1062002af05761010080835404028352916020019162002b1c565b820191906000526020600020905b81548152906001019060200180831162002afe57829003601f168201915b505060405163997cff1b60e01b8152939450309363997cff1b935062002b4b925085915086906004016200525f565b60006040518083038186803b15801562002b6457600080fd5b505afa15801562002b79573d6000803e3d6000fd5b50506040516312cc947f60e01b81523092506312cc947f915062002ba290849060040162004be8565b600060405180830381600087803b15801562002bbd57600080fd5b505af115801562002bd2573d6000803e3d6000fd5b5050506000838152601f6020526040812080549192509062002bf49062005712565b80601f016020809104026020016040519081016040528092919081815260200182805462002c229062005712565b801562002c735780601f1062002c475761010080835404028352916020019162002c73565b820191906000526020600020905b81548152906001019060200180831162002c5557829003601f168201915b5050505050905062002c8781600262003cd1565b1562002d435760008062002c9b8362003ce7565b604051919350915081906000906001600160a01b0383169085908381818185875af1925050503d806000811462002cef576040519150601f19603f3d011682016040523d82523d6000602084013e62002cf4565b606091505b505090508062002d3e5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640162002349565b505050505b62002d5081600162003cd1565b1562002db2576040516307629f5560e51b8152309063ec53eaa09062002d7d9085908590600401620057bc565b600060405180830381600087803b15801562002d9857600080fd5b505af115801562002dad573d6000803e3d6000fd5b505050505b6001600160a01b0387161580159062002dd3575062002dd381600362003cd1565b1562002e39576040516328a7226160e21b8152309063a29c89849062002e04908590859088908d90600401620057e5565b600060405180830381600087803b15801562002e1f57600080fd5b505af115801562002e34573d6000803e3d6000fd5b505050505b50505062002a5a565b61ffff82166000908152601d6020908152604080832084845290915281208162002e6c8262003c42565b119150505b92915050565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015620027e35760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562002f4857602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162002f095790505b5050505050815250508152602001906001019062002e9b565b60003660008062002f7487878762003dde565b935093509350935093509350935093565b805160005b818110156200314c57600083828151811062002faa5762002faa62005096565b6020026020010151905060005b8381101562003141578281146200313857600085828151811062002fdf5762002fdf62005096565b602002602001015190506000816001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200302a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030509190620052b5565b6001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200308e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030b4919062005830565b9050836001600160a01b0316633400288b82620030d7856001600160a01b031690565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b1580156200311c57600080fd5b505af115801562003131573d6000803e3d6000fd5b5050505050505b60010162002fb7565b505060010162002f8a565b505050565b61ffff82166000908152601d6020908152604080832084845290915281206060916200317d8262003c42565b111562003238576000620031918262003e3a565b6000818152601e60205260409020805491925090620031b09062005712565b80601f0160208091040260200160405190810160405280929190818152602001828054620031de9062005712565b80156200322f5780601f1062003203576101008083540402835291602001916200322f565b820191906000526020600020905b8154815290600101906020018083116200321157829003601f168201915b50505050509250505b5092915050565b60606018805480602002602001604051908101604052809291908181526020016000905b82821015620027e3578382906000526020600020018054620032859062005712565b80601f0160208091040260200160405190810160405280929190818152602001828054620032b39062005712565b8015620033045780601f10620032d85761010080835404028352916020019162003304565b820191906000526020600020905b815481529060010190602001808311620032e657829003601f168201915b50505050508152602001906001019062003263565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015620027e35760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620033ea57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620033ab5790505b505050505081525050815260200190600101906200333d565b600062003411848462003ea8565b9050818114620034555760405162461bcd60e51b815260206004820152600e60248201526d0ceead2c840dcdee840dac2e8c6d60931b604482015260640162002349565b50505050565b30633bbd6a946200346d8787620039f6565b62003479888862003a1d565b868686620034888c8c62003ec5565b6040518863ffffffff1660e01b8152600401620034ac979695949392919062005850565b600060405180830381600087803b158015620034c757600080fd5b505af115801562002518573d6000803e3d6000fd5b8060206000836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003520573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003546919062005830565b63ffffffff168152602081019190915260400160002080546001600160a01b0319166001600160a01b039290921691909117905550565b60606017805480602002602001604051908101604052809291908181526020016000905b82821015620027e3578382906000526020600020018054620035c39062005712565b80601f0160208091040260200160405190810160405280929190818152602001828054620035f19062005712565b8015620036425780601f10620036165761010080835404028352916020019162003642565b820191906000526020600020905b8154815290600101906020018083116200362457829003601f168201915b505050505081526020019060010190620035a1565b620007aa82826000806200298e565b60008062003675848462003ed7565b915091505b9250929050565b600754600090610100900460ff1615620036a45750600754610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620037b35760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b8284015282518083038401815260608301909352600092909162003735917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001620058b2565b60408051601f19818403018152908290526200375191620058e5565b6000604051808303816000865af19150503d806000811462003790576040519150601f19603f3d011682016040523d82523d6000602084013e62003795565b606091505b5091505080806020019051810190620037af919062005903565b9150505b919050565b606060138054806020026020016040519081016040528092919081815260200182805480156200257d576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200255e575050505050905090565b6000602060006200382c8686620039f6565b63ffffffff16815260208101919091526040016000908120546001600160a01b03169150806200385c8462003f23565b915091506000604051806060016040528062003879898962003a32565b63ffffffff1681526020016200389089896200401a565b8152602001620038a189896200402c565b6001600160401b0316905290506001600160a01b038416630c0c389e848484620038cc8c8c62003a1d565b620038d88d8d62003ea8565b620038e48e8e62003ec5565b604051806020016040528060008152506040518963ffffffff1660e01b8152600401620039179695949392919062005921565b6000604051808303818589803b1580156200393157600080fd5b5088f115801562003946573d6000803e3d6000fd5b50505050505050505050505050565b60008062003675848462004053565b6000620039728585620039f6565b90506000620039828686620040b7565b63ffffffff83166000908152601d602090815260408083208484529091528120919250620039b1888862003ea8565b9050620039bf8282620040c9565b6000818152601e60205260409020620039da888a83620059dd565b506000818152601f6020526040902062002518868883620059dd565b600062003a086031602d848662005aaa565b62003a139162005ad6565b60e01c9392505050565b60006200269762003a2f8484620040b7565b90565b600062003a08600d6009848662005aaa565b36600062003675605182858762005aaa565b36600062003675836051818762005aaa565b6000808360405160200162003a7e9190620058e5565b60408051601f198184030181529082905262003a9f91859060200162005b05565b60405160208183030381529060405290508051602082016000f09150813b6200323857600080fd5b600080600080600062003adc86600362004134565b915091508162003b415760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a436f6d706f7365206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002349565b604051630518e8ab60e41b8152309063518e8ab09062003b6690849060040162004be8565b606060405180830381865afa15801562003b84573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003baa919062005b38565b91986001600160801b039182169850911695509350505050565b600080806012841480159062003bdb575060228414155b1562003bfa57604051638b4aa70b60e01b815260040160405180910390fd5b62003c088585600062004273565b925062003c18858560026200429e565b91506022841462003c2b57600062003c39565b62003c39858560126200429e565b90509250925092565b546001600160801b03808216600160801b9092048116919091031690565b80546000906001600160801b03600160801b820481169116810362003c98576040516375e52f4f60e01b815260040160405180910390fd5b600019016001600160801b039081166000818152600185016020526040812080549190558454909216600160801b909102179092555090565b600062003cdf838362004134565b509392505050565b60008060008062003cfa85600262004134565b915091508162003d605760405162461bcd60e51b815260206004820152602a60248201527f4f7074696f6e7348656c7065723a206e617469766544726f70206f7074696f6e604482015269081b9bdd08199bdd5b9960b21b606482015260840162002349565b604051635caa7efb60e11b8152309063b954fdf69062003d8590849060040162004be8565b6040805180830381865afa15801562003da2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003dc8919062005b81565b6001600160801b03909116969095509350505050565b60003681600184018162003df488888462004273565b60029290920191905062003e0a888884620042c9565b94506001820161ffff8216830162003e2581838b8d62005aaa565b979b909a50969850505061ffff160193505050565b600062003e5a8254600160801b81046001600160801b0390811691161490565b1562003e79576040516375e52f4f60e01b815260040160405180910390fd5b5080546000196001600160801b03600160801b9092048216011660009081526001909101602052604090205490565b600062003eba60716051848662005aaa565b620026979162005bb2565b36600062003675836071818762005aaa565b6000806030831462003efc576040516361d0c2c760e11b815260040160405180910390fd5b62003f0a848460006200429e565b915062003f1a84846010620042f1565b90509250929050565b60008060008062003f3685600162004134565b915091508162003f9b5760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a52656365697665206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002349565b60405163f93e1d6160e01b8152309063f93e1d619062003fc090849060040162004be8565b6040805180830381865afa15801562003fdd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004003919062005bd1565b6001600160801b0391821697911695509350505050565b600062003eba602d600d848662005aaa565b60006200403e60096001848662005aaa565b620040499162005c05565b60c01c9392505050565b6000806010831480159062004069575060208314155b156200408857604051634796aee160e01b815260040160405180910390fd5b62004096848460006200429e565b915060208314620040a957600062003f1a565b62003f1a848460106200429e565b600062003eba60516031848662005aaa565b81546001600160801b038082166000190191600160801b90048116908216036200410657604051638acb5f2760e01b815260040160405180910390fd5b6001600160801b0316600081815260018401602052604090209190915581546001600160801b031916179055565b601c5460405163e5c5e9a360e01b815260009160609183916001600160a01b03169063e5c5e9a3906200416c90889060040162004be8565b600060405180830381865afa1580156200418a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620041b4919081019062005c34565b50905060005b81518110156200426a57604051636e1775e360e01b8152600090819081903090636e1775e390620041f290889088906004016200525f565b600060405180830381865afa15801562004210573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200423a919081019062005c9e565b9250925092508760ff168360ff16036200425f57506001955093506200367a92505050565b9250620041ba915050565b50509250929050565b600060028201620042878184868862005aaa565b620042929162005cfd565b60f01c95945050505050565b600060108201620042b28184868862005aaa565b620042bd9162005d2c565b60801c95945050505050565b6000838383818110620042e057620042e062005096565b919091013560f81c95945050505050565b600060208201620043058184868862005aaa565b620043109162005bb2565b95945050505050565b6155c18062005d5c83390190565b6114d6806200b31d83390190565b614ac0806200c7f383390190565b61244180620112b383390190565b612c7080620136f483390190565b611257806201636483390190565b6138e780620175bb83390190565b610e2e806201aea283390190565b6040518060400160405280600063ffffffff168152602001620043ed6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b905290565b6040518060400160405280600063ffffffff168152602001620043ed6040518060400160405280600063ffffffff16815260200160006001600160a01b031681525090565b611a44806201bcd083390190565b63ffffffff811681146200445857600080fd5b50565b6001600160a01b03811681146200445857600080fd5b600080604083850312156200448557600080fd5b8235620044928162004445565b91506020830135620044a4816200445b565b809150509250929050565b60008083601f840112620044c257600080fd5b5081356001600160401b03811115620044da57600080fd5b6020830191508360208285010111156200367a57600080fd5b600080602083850312156200450757600080fd5b82356001600160401b038111156200451e57600080fd5b6200452c85828601620044af565b90969095509350505050565b60ff811681146200445857600080fd5b600080604083850312156200455c57600080fd5b8235620045698162004538565b9150602083013560028110620044a457600080fd5b60008151808452602080850194506020840160005b83811015620045ba5781516001600160a01b03168752958201959082019060010162004593565b509495945050505050565b6020815260006200269760208301846200457e565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715620046155762004615620045da565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620046465762004646620045da565b604052919050565b60006001600160401b038211156200466a576200466a620045da565b50601f01601f191660200190565b600082601f8301126200468a57600080fd5b8135620046a16200469b826200464e565b6200461b565b818152846020838601011115620046b757600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215620046ea57600080fd5b83356001600160401b038111156200470157600080fd5b6200470f8682870162004678565b9350506020840135620047228162004538565b91506040840135620047348162004538565b809150509250925092565b60005b838110156200475c57818101518382015260200162004742565b50506000910152565b600081518084526200477f8160208601602086016200473f565b601f01601f19169290920160200192915050565b60008282518085526020808601955060208260051b8401016020860160005b84811015620047e457601f19868403018952620047d183835162004765565b98840198925090830190600101620047b2565b5090979650505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200486657888303603f19018552815180516001600160a01b03168452870151878401879052620048528785018262004793565b95880195935050908601906001016200481a565b509098975050505050505050565b600080600080600080600060c0888a0312156200489057600080fd5b87356200489d8162004445565b96506020880135620048af816200445b565b955060408801356001600160401b0380821115620048cc57600080fd5b620048da8b838c0162004678565b965060608a0135955060808a01359150620048f5826200445b565b90935060a089013590808211156200490c57600080fd5b506200491b8a828b01620044af565b989b979a50959850939692959293505050565b600080600080608085870312156200494557600080fd5b8435620049528162004445565b93506020850135925060408501359150606085013562004972816200445b565b939692955090935050565b61ffff811681146200445857600080fd5b60008060408385031215620049a257600080fd5b8235620049af816200497d565b946020939093013593505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b8481101562004a6757898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b8083101562004a515783516001600160e01b0319168252928b019260019290920191908b019062004a25565b50978a01979550505091870191600101620049e7565b50919998505050505050505050565b60008060006040848603121562004a8c57600080fd5b83356001600160401b0381111562004aa357600080fd5b62004ab186828701620044af565b909790965060209590950135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60ff8516815260606020820152600062004b0d60608301858762004ac5565b905082604083015295945050505050565b60006001600160401b0382111562004b3a5762004b3a620045da565b5060051b60200190565b6000602080838503121562004b5857600080fd5b82356001600160401b0381111562004b6f57600080fd5b8301601f8101851362004b8157600080fd5b803562004b926200469b8262004b1e565b81815260059190911b8201830190838101908783111562004bb257600080fd5b928401925b8284101562004bdd57833562004bcd816200445b565b8252928401929084019062004bb7565b979650505050505050565b60208152600062002697602083018462004765565b60208152600062002697602083018462004793565b60008060008060006080868803121562004c2b57600080fd5b85356001600160401b038082111562004c4357600080fd5b62004c5189838a01620044af565b9097509550602088013591508082111562004c6b57600080fd5b5062004c7a8882890162004678565b93505060408601359150606086013562004c94816200445b565b809150509295509295909350565b60006020828403121562004cb557600080fd5b813562002697816200445b565b6000806040838503121562004cd657600080fd5b8235620049af8162004445565b6001600160801b03811681146200445857600080fd5b60006020828403121562004d0c57600080fd5b8135620026978162004ce3565b60008060006040848603121562004d2f57600080fd5b83356001600160401b038082111562004d4757600080fd5b62004d5587838801620044af565b9095509350602086013591508082111562004d6f57600080fd5b5062004d7e8682870162004678565b9150509250925092565b6000806000806040858703121562004d9f57600080fd5b84356001600160401b038082111562004db757600080fd5b62004dc588838901620044af565b9096509450602087013591508082111562004ddf57600080fd5b5062004dee87828801620044af565b95989497509550505050565b80518015158114620037b357600080fd5b6000806040838503121562004e1f57600080fd5b825162004e2c816200445b565b915062003f1a6020840162004dfa565b80516001600160401b0381168114620037b357600080fd5b8051620037b38162004538565b60008060006060848603121562004e7757600080fd5b62004e828462004e3c565b9250602084015162004e948162004538565b6040850151909250620047348162004538565b600082601f83011262004eb957600080fd5b815162004eca6200469b826200464e565b81815284602083860101111562004ee057600080fd5b62004ef38260208301602087016200473f565b949350505050565b60006020828403121562004f0e57600080fd5b81516001600160401b0381111562004f2557600080fd5b62004ef38482850162004ea7565b600082601f83011262004f4557600080fd5b8151602062004f586200469b8362004b1e565b8083825260208201915060208460051b87010193508684111562004f7b57600080fd5b602086015b8481101562004fa457805162004f96816200445b565b835291830191830162004f80565b509695505050505050565b60006020828403121562004fc257600080fd5b81516001600160401b038082111562004fda57600080fd5b9083019060c0828603121562004fef57600080fd5b62004ff9620045f0565b620050048362004e3c565b8152620050146020840162004e54565b6020820152620050276040840162004e54565b60408201526200503a6060840162004e54565b60608201526080830151828111156200505257600080fd5b620050608782860162004f33565b60808301525060a0830151828111156200507957600080fd5b620050878782860162004f33565b60a08301525095945050505050565b634e487b7160e01b600052603260045260246000fd5b8183823760009101908152919050565b606081526000620050d1606083018662004765565b905083602083015260ff83166040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111562002e715762002e71620050ea565b63ffffffff851681526001600160a01b0384166020820152608060408201819052600090620051489083018562004765565b905082606083015295945050505050565b6000602082840312156200516c57600080fd5b5051919050565b6000806000606084860312156200518957600080fd5b8351620051968162004538565b602085015160409095015190969495509392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200486657888303603f190185528151805163ffffffff168452878101516001600160a01b0316888501528681015160a088860181905290620052208287018262004765565b9150506060808301518187015250608080830151925085820381870152506200524a818362004765565b968901969450505090860190600101620051d6565b60408152600062005274604083018562004765565b90508260208301529392505050565b60208152600062004ef360208301848662004ac5565b60ff818116838216019081111562002e715762002e71620050ea565b600060208284031215620052c857600080fd5b815162002697816200445b565b634e487b7160e01b600052602160045260246000fd5b600060018060a01b038089168352808816602084015260c060408401526200531760c08401886200457e565b8187166060850152818616608085015283810360a08501526200533b81866200457e565b9a9950505050505050505050565b60ff8716815260c0602082015260006200536760c08301886200457e565b6001600160a01b038716604084015282810360608401526200538a81876200457e565b90506001600160401b038516608084015282810360a0840152620053af81856200457e565b9998505050505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200486657603f19898403810186528251805163ffffffff16855288015188850188905280516001600160401b0316888601528089015160ff9081166060808801919091528983015182166080808901919091529083015190911660a0808801919091529082015160c08088015290620054686101008801836200457e565b920151868303840160e08801529190506200548481836200457e565b978a0197955050509187019150600101620053e5565b602080825282518282018190526000919060409081850190868401855b82811015620054fe578151805163ffffffff9081168652908701518051909116878601528601516001600160a01b03168585015260609093019290850190600101620054b7565b5091979650505050505050565b6000602082840312156200551e57600080fd5b8151620026978162004ce3565b6001600160801b03818116838216028082169190828114620055515762005551620050ea565b505092915050565b602080825282518282018190526000919060409081850190868401855b82811015620054fe578151805163ffffffff90811686529087015180516001600160801b031688870152808801516001600160401b0316878701528601511660608501526080909301929085019060010162005576565b600060ff821660ff8103620055e657620055e6620050ea565b60010192915050565b602080825282518282018190526000919060409081850190868401855b82811015620054fe578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016200560c565b602080825282518282018190526000919060409081850190868401855b82811015620054fe578151805163ffffffff168552868101516001600160401b0316878601528581015161ffff16868601526060908101516001600160801b031690850152608090930192908501906001016200569e565b60ff828116828216039081111562002e715762002e71620050ea565b600181811c908216806200572757607f821691505b6020821081036200574857634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038881168252871660208201526040810186905261ffff8516606082015260c0608082018190526000906200578e908301858762004ac5565b82810360a08401526200533b818562004765565b600081620057b457620057b4620050ea565b506000190190565b604081526000620057d1604083018562004765565b828103602084015262004310818562004765565b608081526000620057fa608083018762004765565b82810360208401526200580e818762004765565b604084019590955250506001600160a01b039190911660609091015292915050565b6000602082840312156200584357600080fd5b8151620026978162004445565b63ffffffff88168152600060018060a01b03808916602084015260c060408401526200588060c084018962004765565b876060850152818716608085015283810360a0850152620058a381868862004ac5565b9b9a5050505050505050505050565b6001600160e01b0319831681528151600090620058d78160048501602087016200473f565b919091016004019392505050565b60008251620058f98184602087016200473f565b9190910192915050565b6000602082840312156200591657600080fd5b620026978262004dfa565b63ffffffff8751168152602087015160208201526001600160401b03604088015116604082015260018060a01b038616606082015284608082015260e060a082015260006200597560e08301858762004ac5565b82810360c0840152620053af818562004765565b601f8211156200314c576000816000526020600020601f850160051c81016020861015620059b45750805b601f850160051c820191505b81811015620059d557828155600101620059c0565b505050505050565b6001600160401b03831115620059f757620059f7620045da565b62005a0f8362005a08835462005712565b8362005989565b6000601f84116001811462005a46576000851562005a2d5750838201355b600019600387901b1c1916600186901b17835562005aa3565b600083815260209020601f19861690835b8281101562005a79578685013582556020948501946001909201910162005a57565b508682101562005a975760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6000808585111562005abb57600080fd5b8386111562005ac957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015620055515760049490940360031b84901b1690921692915050565b6000835162005b198184602088016200473f565b83519083019062005b2f8183602088016200473f565b01949350505050565b60008060006060848603121562005b4e57600080fd5b835162005b5b816200497d565b602085015190935062005b6e8162004ce3565b6040850151909250620047348162004ce3565b6000806040838503121562005b9557600080fd5b825162005ba28162004ce3565b6020939093015192949293505050565b8035602083101562002e7157600019602084900360031b1b1692915050565b6000806040838503121562005be557600080fd5b825162005bf28162004ce3565b6020840151909250620044a48162004ce3565b6001600160c01b03198135818116916008851015620055515760089490940360031b84901b1690921692915050565b6000806040838503121562005c4857600080fd5b82516001600160401b038082111562005c6057600080fd5b62005c6e8683870162004ea7565b9350602085015191508082111562005c8557600080fd5b5062005c948582860162004ea7565b9150509250929050565b60008060006060848603121562005cb457600080fd5b835162005cc18162004538565b60208501519093506001600160401b0381111562005cde57600080fd5b62005cec8682870162004ea7565b925050604084015190509250925092565b6001600160f01b03198135818116916002851015620055515760029490940360031b84901b1690921692915050565b6001600160801b03198135818116916010851015620055515760109490940360031b84901b169092169291505056fe60c06040526001600d553480156200001657600080fd5b50604051620055c1380380620055c18339810160408190526200003991620002cd565b81816001600160a01b0381166200006b57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200007681620000cd565b5063ffffffff166080526040516200008e90620002bf565b604051809103906000f080158015620000ab573d6000803e3d6000fd5b506001600160a01b031660a0819052620000c5906200011d565b50506200034a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001276200028e565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019991906200031f565b620001b75760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620001f25760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910160405180910390a150565b6000546001600160a01b03163314620002bd5760405163118cdaa760e01b815233600482015260240162000062565b565b6101e380620053de83390190565b60008060408385031215620002e157600080fd5b825163ffffffff81168114620002f657600080fd5b60208401519092506001600160a01b03811681146200031457600080fd5b809150509250929050565b6000602082840312156200033257600080fd5b815180151581146200034357600080fd5b9392505050565b60805160a05161504b6200039360003960006107810152600081816105310152818161278901528181612f7b01528181612fe20152818161355301526135ba015261504b6000f3fe6080604052600436106103505760003560e01c80639132e5c3116101c6578063c9fc7bcd116100f7578063ddc28c5811610095578063e8964e811161006f578063e8964e8114610b8f578063ef667aa114610baf578063f2fde38b14610bfa578063f64be4c714610c1a57600080fd5b8063ddc28c5814610b2e578063e1758bd814610b5b578063e4fe1d9414610b6f57600080fd5b8063d4b4ec8f116100d1578063d4b4ec8f14610a72578063d70b890214610a92578063dc706a6214610ab2578063dc93c8a214610ae257600080fd5b8063c9fc7bcd146109f6578063ca5eb5e114610a3d578063cb5026b914610a5d57600080fd5b8063a7229fd911610164578063aafea3121161013e578063aafea31214610976578063b96a277f14610996578063c28e0eed146109b6578063c9a54a99146109d657600080fd5b8063a7229fd914610916578063a825d74714610936578063aafe5e071461095657600080fd5b80639c6d7340116101a05780639c6d73401461086f5780639d7f9775146108b6578063a0dd43fc146108d6578063a718531b146108f657600080fd5b80639132e5c31461081a57806391d20fa11461083c5780639535ff301461084f57600080fd5b80635b17bb70116102a05780636f50a8031161023e57806379624ca91161021857806379624ca9146107a35780637cb59012146107bc578063861e1ca5146107dc5780638da5cb5b146107fc57600080fd5b80636f50a80314610724578063715018a61461075a578063733180911461076f57600080fd5b80636a14d7151161027a5780636a14d715146106655780636bf73fa3146106855780636dbd9f90146106a55780636e83f5bb146106c557600080fd5b80635b17bb70146105b65780636750cd4c14610615578063697fe6b61461064557600080fd5b80632baf0be71161030d578063402f8468116102e7578063402f8468146104c057806340f80683146104ff578063416ecebf1461051f578063587cde1e1461056857600080fd5b80632baf0be7146104355780632e80fbf31461045957806335d330b01461047957600080fd5b80630c0c389e1461035557806314f651a91461036a578063183c834f146103a85780632637a450146103c85780632a56c1b0146103e85780632b3197b914610408575b600080fd5b610368610363366004613ef7565b610c50565b005b34801561037657600080fd5b5061037f610d4e565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103b457600080fd5b506103686103c3366004613fa6565b610d80565b6103db6103d6366004613ff1565b611027565b60405161039f9190614043565b3480156103f457600080fd5b50610368610403366004614085565b61114d565b34801561041457600080fd5b506104286104233660046140f4565b6111ed565b60405161039f9190614198565b34801561044157600080fd5b5061044b60001981565b60405190815260200161039f565b34801561046557600080fd5b506103686104743660046141c2565b6112b8565b34801561048557600080fd5b5061044b610494366004614229565b600c60209081526000948552604080862082529385528385208152918452828420909152825290205481565b3480156104cc57600080fd5b506104e06104db36600461426b565b611427565b604080516001600160a01b03909316835290151560208301520161039f565b34801561050b57600080fd5b5061036861051a3660046141c2565b6114a5565b34801561052b57600080fd5b506105537f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161039f565b34801561057457600080fd5b5061059e610583366004614295565b600f602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161039f565b3480156105c257600080fd5b506105fd6105d13660046142b0565b60016020908152600093845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161039f565b34801561062157600080fd5b506106356106303660046142ec565b61160b565b604051901515815260200161039f565b34801561065157600080fd5b50610368610660366004614307565b61165b565b34801561067157600080fd5b50610368610680366004613fa6565b6116d0565b34801561069157600080fd5b506103686106a0366004614402565b611aae565b3480156106b157600080fd5b506103686106c03660046144e5565b611b18565b3480156106d157600080fd5b506107056106e03660046142ec565b600b60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161039f565b34801561073057600080fd5b5061059e61073f3660046142ec565b600a602052600090815260409020546001600160a01b031681565b34801561076657600080fd5b50610368611bba565b34801561077b57600080fd5b5061059e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107af57600080fd5b50600d5460011415610635565b3480156107c857600080fd5b506103686107d7366004614575565b611bce565b3480156107e857600080fd5b506106356107f73660046145c6565b611cba565b34801561080857600080fd5b506000546001600160a01b031661059e565b34801561082657600080fd5b5061082f611d26565b60405161039f91906145f1565b61036861084a36600461463e565b611d88565b34801561085b57600080fd5b5061036861086a3660046146e8565b611f18565b34801561087b57600080fd5b506105fd61088a3660046142b0565b60036020908152600093845260408085208252928452828420905282529020546001600160401b031681565b3480156108c257600080fd5b506106356108d13660046146e8565b61217c565b3480156108e257600080fd5b506105fd6108f13660046142b0565b612256565b34801561090257600080fd5b5061036861091136600461472b565b6122b6565b34801561092257600080fd5b50610368610931366004614757565b6125d6565b34801561094257600080fd5b50610368610951366004614775565b6125ee565b34801561096257600080fd5b5061044b6109713660046142b0565b612739565b34801561098257600080fd5b506103686109913660046147b2565b6127b9565b3480156109a257600080fd5b5061059e6109b136600461426b565b6129e2565b3480156109c257600080fd5b506103686109d1366004614295565b612a51565b3480156109e257600080fd5b506106356109f13660046145c6565b612aae565b348015610a0257600080fd5b5061044b610a113660046147ce565b600260209081526000948552604080862082529385528385208152918452828420909152825290205481565b348015610a4957600080fd5b50610368610a58366004614295565b612b13565b348015610a6957600080fd5b5061044b600081565b348015610a7e57600080fd5b50610368610a8d36600461472b565b612b73565b348015610a9e57600080fd5b50610368610aad3660046147ce565b612db1565b348015610abe57600080fd5b50610635610acd366004614295565b60056020526000908152604090205460ff1681565b348015610aee57600080fd5b50610635610afd36600461426b565b6001600160a01b03918216600090815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610b3a57600080fd5b50610b4e610b49366004613ff1565b612ea0565b60405161039f9190614810565b348015610b6757600080fd5b50600061059e565b348015610b7b57600080fd5b50600e5461059e906001600160a01b031681565b348015610b9b57600080fd5b50610368610baa366004614295565b61310c565b348015610bbb57600080fd5b50610705610bca36600461426b565b6008602090815260009283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610c0657600080fd5b50610368610c15366004614295565b613270565b348015610c2657600080fd5b5061059e610c353660046142ec565b6009602052600090815260409020546001600160a01b031681565b610c9f86610c6160208a018a6142ec565b60208a0135610c7660608c0160408d01614827565b898989604051602001610c8b93929190614842565b6040516020818303038152906040526132ae565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610cda908b908a908a908a9033908b908b906004016148be565b6000604051808303818588803b158015610cf357600080fd5b505af1158015610d07573d6000803e3d6000fd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d3d929190614915565b60405180910390a150505050505050565b600080610d5e600d546001141590565b610d6a57600080610d78565b610d78600d5460a081901c91565b915091509091565b6001600160a01b038216600090815260056020526040902054829060ff16610dbb57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e5e576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f9190614951565b6002811115610e4057610e4061493b565b03610e5e576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610efa576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190614980565b610efa57604051630e476aa960e21b815260040160405180910390fd5b610f0388613469565b6000610f0f8989611427565b9150508015610f3157604051633c075f7560e01b815260040160405180910390fd5b85600003610f79576001600160a01b038916600090815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610fdf565b438611610f99576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b03898116600090815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051611014949392919061499d565b60405180910390a1505050505050505050565b61102f613e40565b61103c60208401846142ec565b336001600d54146110605760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561108e908601608087016149cd565b80156110a35750600e546001600160a01b0316155b156110c157604051632d7b695560e11b815260040160405180910390fd5b6000806110ce33886134ba565b9150915060006110db3490565b905060006110f76110f260a08b0160808c016149cd565b613766565b905061110884604001518383613802565b600e5460408501516020015161112a916001600160a01b03169083868c613850565b60408401515161113c9083858b61387d565b50506001600d555095945050505050565b61115685613469565b600083838360405160200161116d93929190614842565b60408051601f1981840301815291905290506111ab8661119060208801886142ec565b60208801356111a560608a0160408b01614827565b856132ae565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111dd929190614915565b60405180910390a1505050505050565b6001600160a01b038316600090815260056020526040902054606090849060ff1661122b57604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf790606401600060405180830381865afa158015611286573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ae9190810190614a7d565b9695505050505050565b6112c185613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461133357604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b039081169084161180159061137f575080155b156113a857604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190206000199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb55292906111dd90879087908a9088908890614ab1565b6001600160a01b03808316600090815260076020908152604080832063ffffffff86168452909152812054909116908161149e5763ffffffff83166000908152600a60205260409020546001600160a01b031691508161149a57604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b6114ae85613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461151b57604051637182306f60e01b8152600481018290526024810183905260440161132a565b80158061156557506001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561158e57604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e906111dd90879087908a9088908890614ab1565b63ffffffff81166000908152600960205260408120546001600160a01b031615801590611655575063ffffffff82166000908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116ba9a99989796959493929190614aee565b60405180910390a4505050505050505050505050565b6001600160a01b038216600090815260056020526040902054829060ff1615801561170357506001600160a01b03811615155b156117215760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b038116156117c4576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117959190614951565b60028111156117a6576117a661493b565b036117c4576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615611860576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190614980565b61186057604051630e476aa960e21b815260040160405180910390fd5b61186988613469565b6001600160a01b03808916600090815260076020908152604080832063ffffffff8c168452909152902054811690871681036118b85760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03898116600081815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a18515611a32576001600160a01b038116158061195b57506001600160a01b038716155b1561197957604051633c075f7560e01b815260040160405180910390fd5b60006040518060400160405280836001600160a01b0316815260200188436119a19190614b6d565b90526001600160a01b038b8116600090815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611a24918d918d91879161499d565b60405180910390a150611aa3565b6001600160a01b038916600090815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611014918c918c9186919061499d565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611b039a99989796959493929190614b80565b60405180910390a35050505050505050505050565b6001600160a01b038316600090815260056020526040902054839060ff16611b5357604051631bc58ef360e11b815260040160405180910390fd5b611b5c85613469565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b8c90889087908790600401614bdf565b600060405180830381600087803b158015611ba657600080fd5b505af1158015611aa3573d6000803e3d6000fd5b611bc26138a7565b611bcc60006138d4565b565b336000908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611c2457604051630542086560e21b815260040160405180910390fd5b8181604051611c34929190614cd2565b60408051918290038220336000818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611cab919088908890889088908890614ce2565b60405180910390a15050505050565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590611cea908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613924565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050505050905090565b6001600160a01b038089166000908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611dd39087908790614cd2565b60405180910390209050808214611e07576040516335ca595f60e01b8152600481018390526024810182905260440161132a565b6001600160a01b03808b166000908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611e76908e908d908c908c9033908d908d90600401614d2c565b6000604051808303818588803b158015611e8f57600080fd5b505af1158015611ea3573d6000803e3d6000fd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611f0494939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b038116600090815260056020526040902054819060ff16158015611f4b57506001600160a01b03811615155b15611f695760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b0381161561200c576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdd9190614951565b6002811115611fee57611fee61493b565b0361200c57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b038216156120a8576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190614980565b6120a857604051630e476aa960e21b815260040160405180910390fd5b6120b187613469565b6001600160a01b03878116600090815260066020908152604080832063ffffffff8b1684529091529020548187169116036120ff5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03878116600081815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d3d565b600080600061218b8686611427565b91509150816001600160a01b0316846001600160a01b0316036121b357600192505050611d1f565b6000816121e8576001600160a01b038716600090815260086020908152604080832063ffffffff8a16845290915290206121fe565b63ffffffff86166000908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156122385750438160200151115b156122495760019350505050611d1f565b5060009695505050505050565b6001600160a01b038316600090815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b6122a1858585846001016139a8565b156122ae57600101612292565b949350505050565b6122be6138a7565b6001600160a01b038216600090815260056020526040902054829060ff166122f957604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b0381161561239c576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236d9190614951565b600281111561237e5761237e61493b565b0361239c576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612438576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156123f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241b9190614980565b61243857604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87166000908152600a60205260409020546001600160a01b03908116908716810361247b5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88166000818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156125695763ffffffff88166000908152600b6020526040902080546001600160a01b0319166001600160a01b0383161781556125228743614b6d565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89161255b918c918691614d7f565b60405180910390a1506125cc565b63ffffffff88166000908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916125c3918b918591614d7f565b60405180910390a15b5050505050505050565b6125de6138a7565b6125e98383836139f5565b505050565b612605826125ff60208601866142ec565b3361217c565b612622576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040822090829061264b908701876142ec565b63ffffffff168152602080820192909252604090810160009081208784013582529092529020546001600160401b03169050612688848483613924565b6126a55760405163751cb20f60e01b815260040160405180910390fd5b6126b0848483613a18565b6126cc5760405162bbf0e560e11b815260040160405180910390fd5b6126f8836126dd60208701876142ec565b60208701356126f26060890160408a01614827565b86613ad5565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161272b93929190614da6565b60405180910390a150505050565b6001600160a01b038316600090815260036020908152604080832063ffffffff8616845282528083208484529091528120548190612781906001600160401b03166001614dce565b90506127b0817f0000000000000000000000000000000000000000000000000000000000000000878787613b3b565b95945050505050565b6127c16138a7565b6001600160a01b038116600090815260056020526040902054819060ff166127fc57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b0381161561289f576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561284c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128709190614951565b60028111156128815761288161493b565b0361289f57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561293b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156128fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291e9190614980565b61293b57604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86166000908152600960205260409020546001600160a01b0380871691160361297c5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff861660008181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f591016111dd565b6001600160a01b03808316600090815260066020908152604080832063ffffffff861684529091529020541680611655575063ffffffff81166000908152600960205260409020546001600160a01b03168061165557604051636c1ccdb560e01b815260040160405180910390fd5b612a596138a7565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590612ade908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613a18565b336000818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d79839819101612aa3565b6001600160a01b038216600090815260056020526040902054829060ff16612bae57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612c51576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c229190614951565b6002811115612c3357612c3361493b565b03612c51576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612ced576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd09190614980565b612ced57604051630e476aa960e21b815260040160405180910390fd5b612cf56138a7565b84600003612d295763ffffffff87166000908152600b6020526040812080546001600160a01b031916815560010155612d7e565b438511612d49576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87166000908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610d3d93929190614d7f565b612dba84613469565b612dc5848484612256565b612dd0906001614dce565b6001600160401b0316816001600160401b031614612e0c57604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001600160a01b038416600081815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161272b565b6040805180820190915260008082526020820152612ec460a08401608085016149cd565b8015612ed95750600e546001600160a01b0316155b15612ef757604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b03821660009081526003602090815260408220908290612f20908701876142ec565b63ffffffff16815260208082019290925260409081016000908120878401358252909252902054612f5b906001600160401b03166001614dce565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001866000016020810190612fc791906142ec565b63ffffffff1681526020018660200135815260200161301f847f0000000000000000000000000000000000000000000000000000000000000000888a600001602081019061301591906142ec565b8b60200135613b3b565b81526020016130316040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061307e9050856109b160208901896142ec565b90506001600160a01b03811663d80e9bd98361309d60608a018a614dee565b6130ad60a08c0160808d016149cd565b6040518563ffffffff1660e01b81526004016130cc9493929190614e34565b6040805180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190614f28565b6131146138a7565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561315f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131839190614980565b6131a05760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156131da5760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af59101612aa3565b6132786138a7565b6001600160a01b0381166132a257604051631e4fbdf760e01b81526000600482015260240161132a565b6132ab816138d4565b50565b6001600160a01b038516600090815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b0390811690841681101561339c57600181015b846001600160401b0316816001600160401b03161161334f5761331f888888846139a8565b61334757604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001016132fa565b506001600160a01b038716600090815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b038916600090815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461341657604051637182306f60e01b8152600481018290526024810184905260440161132a565b50506001600160a01b03909516600090815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b0382161480159061349c57506001600160a01b038181166000908152600f6020526040902054163314155b156132ab5760405163c4c5259360e01b815260040160405180910390fd5b6134c2613e40565b600080613533856134d660208701876142ec565b6001600160a01b0391909116600090815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b0316815260200186600001602081019061359f91906142ec565b63ffffffff168152602001866020013581526020016135ed847f00000000000000000000000000000000000000000000000000000000000000008a8a600001602081019061301591906142ec565b81526020016135ff6040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061364c9050876109b160208901896142ec565b90506000806001600160a01b038316634389e58f8561366e60608c018c614dee565b61367e60a08e0160808f016149cd565b6040518563ffffffff1660e01b815260040161369d9493929190614e34565b6000604051808303816000875af11580156136bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136e49190810190614f44565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161371860608b018b614dee565b866040516137299493929190614f92565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b600081156137fd57600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156137b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137da9190614fd2565b9050806000036137fd57604051631775123760e01b815260040160405180910390fd5b919050565b82518210806138145750808360200151115b156125e95782516020840151604051634f3ec0d360e01b815260048101929092526024820184905260448201526064810182905260840161132a565b831561386157613861858386613bb4565b82841015613876576138768582868603613bb4565b5050505050565b831561388d5761388d8285613bef565b828410156138a1576138a181858503613bef565b50505050565b6000546001600160a01b03163314611bcc5760405163118cdaa760e01b815233600482015260240161132a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080826001600160401b031611806122ae5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d90613967908790600401614feb565b602060405180830381865afa158015613984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ae9190614980565b6001600160a01b038416600090815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b038316613a0d576125e98282613bef565b6125e9838383613bb4565b60006001600160401b038216613a346060860160408701614827565b6001600160401b031611806122ae57506001600160a01b03831660009081526002602090815260408220908290613a6d908801886142ec565b63ffffffff1663ffffffff1681526020019081526020016000206000866020013581526020019081526020016000206000866040016020810190613ab19190614827565b6001600160401b031681526020810191909152604001600020541415949350505050565b80613af3576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b03909416600090815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b600085856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b6001600160a01b038216613bdb576040516306b7a93160e41b815260040160405180910390fd5b6125e96001600160a01b0384168383613c9c565b6001600160a01b038216613c16576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613c63576040519150601f19603f3d011682016040523d82523d6000602084013e613c68565b606091505b50509050806125e957604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161132a565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b1790526125e991859190600090613cfa90841683613d48565b90508051600014158015613d1f575080806020019051810190613d1d9190614980565b155b156125e957604051635274afe760e01b81526001600160a01b038416600482015260240161132a565b6060611d1f8383600084600080856001600160a01b03168486604051613d6e9190614ff9565b60006040518083038185875af1925050503d8060008114613dab576040519150601f19603f3d011682016040523d82523d6000602084013e613db0565b606091505b50915091506112ae868383606082613dd057613dcb82613e17565b611d1f565b8151158015613de757506001600160a01b0384163b155b15613e1057604051639996b31560e01b81526001600160a01b038516600482015260240161132a565b5080611d1f565b805115613e275780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001613e82604051806040016040528060008152602001600081525090565b905290565b600060608284031215613e9957600080fd5b50919050565b80356001600160a01b03811681146137fd57600080fd5b60008083601f840112613ec857600080fd5b5081356001600160401b03811115613edf57600080fd5b60208301915083602082850101111561149e57600080fd5b600080600080600080600060e0888a031215613f1257600080fd5b613f1c8989613e87565b9650613f2a60608901613e9f565b95506080880135945060a08801356001600160401b0380821115613f4d57600080fd5b613f598b838c01613eb6565b909650945060c08a0135915080821115613f7257600080fd5b50613f7f8a828b01613eb6565b989b979a50959850939692959293505050565b803563ffffffff811681146137fd57600080fd5b60008060008060808587031215613fbc57600080fd5b613fc585613e9f565b9350613fd360208601613f92565b9250613fe160408601613e9f565b9396929550929360600135925050565b6000806040838503121561400457600080fd5b82356001600160401b0381111561401a57600080fd5b830160a0818603121561402c57600080fd5b915061403a60208401613e9f565b90509250929050565b6000608082019050825182526001600160401b036020840151166020830152604083015161407e604084018280518252602090810151910152565b5092915050565b600080600080600060c0868803121561409d57600080fd5b6140a686613e9f565b94506140b58760208801613e87565b93506080860135925060a08601356001600160401b038111156140d757600080fd5b6140e388828901613eb6565b969995985093965092949392505050565b6000806000806080858703121561410a57600080fd5b61411385613e9f565b935061412160208601613e9f565b925061412f60408601613f92565b915061413d60608601613f92565b905092959194509250565b60005b8381101561416357818101518382015260200161414b565b50506000910152565b60008151808452614184816020860160208601614148565b601f01601f19169290920160200192915050565b602081526000611d1f602083018461416c565b80356001600160401b03811681146137fd57600080fd5b600080600080600060a086880312156141da57600080fd5b6141e386613e9f565b94506141f160208701613f92565b935060408601359250614206606087016141ab565b949793965091946080013592915050565b803561ffff811681146137fd57600080fd5b6000806000806080858703121561423f57600080fd5b61424885613e9f565b935061425660208601613e9f565b92506040850135915061413d60608601614217565b6000806040838503121561427e57600080fd5b61428783613e9f565b915061403a60208401613f92565b6000602082840312156142a757600080fd5b611d1f82613e9f565b6000806000606084860312156142c557600080fd5b6142ce84613e9f565b92506142dc60208501613f92565b9150604084013590509250925092565b6000602082840312156142fe57600080fd5b611d1f82613f92565b6000806000806000806000806000806000806101208d8f03121561432a57600080fd5b6143338d613e9f565b9b5061434160208e01613e9f565b9a5060408d0135995061435660608e01614217565b985060808d0135975060a08d013596506001600160401b0360c08e0135111561437e57600080fd5b61438e8e60c08f01358f01613eb6565b90965094506001600160401b0360e08e013511156143ab57600080fd5b6143bb8e60e08f01358f01613eb6565b90945092506001600160401b036101008e013511156143d957600080fd5b6143ea8e6101008f01358f01613eb6565b81935080925050509295989b509295989b509295989b565b60008060008060008060008060008060006101408c8e03121561442457600080fd5b61442e8d8d613e87565b9a5061443c60608d01613e9f565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e0135111561446c57600080fd5b61447c8e60e08f01358f01613eb6565b90975095506101008d013581101561449357600080fd5b6144a48e6101008f01358f01613eb6565b90955093506101208d01358110156144bb57600080fd5b506144cd8d6101208e01358e01613eb6565b81935080925050509295989b509295989b9093969950565b600080600080606085870312156144fb57600080fd5b61450485613e9f565b935061451260208601613e9f565b925060408501356001600160401b038082111561452e57600080fd5b818701915087601f83011261454257600080fd5b81358181111561455157600080fd5b8860208260051b850101111561456657600080fd5b95989497505060200194505050565b60008060008060006080868803121561458d57600080fd5b61459686613e9f565b9450602086013593506145ab60408701614217565b925060608601356001600160401b038111156140d757600080fd5b600080608083850312156145d957600080fd5b6145e38484613e87565b915061403a60608401613e9f565b6020808252825182820181905260009190848201906040850190845b818110156146325783516001600160a01b03168352928401929184019160010161460d565b50909695505050505050565b60008060008060008060008060c0898b03121561465a57600080fd5b61466389613e9f565b975061467160208a01613e9f565b96506040890135955061468660608a01614217565b945060808901356001600160401b03808211156146a257600080fd5b6146ae8c838d01613eb6565b909650945060a08b01359150808211156146c757600080fd5b506146d48b828c01613eb6565b999c989b5096995094979396929594505050565b6000806000606084860312156146fd57600080fd5b61470684613e9f565b925061471460208501613f92565b915061472260408501613e9f565b90509250925092565b60008060006060848603121561474057600080fd5b61474984613f92565b92506142dc60208501613e9f565b60008060006060848603121561476c57600080fd5b61474984613e9f565b600080600060a0848603121561478a57600080fd5b6147948585613e87565b92506147a260608501613e9f565b9150608084013590509250925092565b600080604083850312156147c557600080fd5b61402c83613f92565b600080600080608085870312156147e457600080fd5b6147ed85613e9f565b93506147fb60208601613f92565b92506040850135915061413d606086016141ab565b815181526020808301519082015260408101611655565b60006020828403121561483957600080fd5b611d1f826141ab565b838152818360208301376000910160200190815292915050565b63ffffffff61486a82613f92565b168252602081013560208301526001600160401b0361488b604083016141ab565b1660408301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6148c8818961485c565b86606082015260e0608082015260006148e560e083018789614895565b6001600160a01b03861660a084015282810360c0840152614907818587614895565b9a9950505050505050505050565b60808101614923828561485c565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561496357600080fd5b815160038110611d1f57600080fd5b80151581146132ab57600080fd5b60006020828403121561499257600080fd5b8151611d1f81614972565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b6000602082840312156149df57600080fd5b8135611d1f81614972565b634e487b7160e01b600052604160045260246000fd5b600082601f830112614a1157600080fd5b81516001600160401b0380821115614a2b57614a2b6149ea565b604051601f8301601f19908116603f01168101908282118183101715614a5357614a536149ea565b81604052838152866020858801011115614a6c57600080fd5b6112ae846020830160208901614148565b600060208284031215614a8f57600080fd5b81516001600160401b03811115614aa557600080fd5b6122ae84828501614a00565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201526000614b1e60e08301888a614895565b82810360a0840152614b31818789614895565b905082810360c0840152614b46818587614895565b9d9c50505050505050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561165557611655614b57565b6000610120614b8f838e61485c565b8b60608401528a60808401528960a08401528060c0840152614bb4818401898b614895565b905082810360e0840152614bc9818789614895565b9050828103610100840152614b46818587614895565b6001600160a01b03841681526040602080830182905282820184905260009190606090818501600587901b8601830188865b89811015614cc257888303605f190184528135368c9003605e19018112614c3757600080fd5b8b0163ffffffff80614c4883613f92565b16855280614c57888401613f92565b16878601525087810135601e19823603018112614c7357600080fd5b0185810190356001600160401b03811115614c8d57600080fd5b803603821315614c9c57600080fd5b8789860152614cae8886018284614895565b958701959450505090840190600101614c11565b50909a9950505050505050505050565b8183823760009101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a060808201819052600090614d209083018486614895565b98975050505050505050565b600060018060a01b03808a16835288602084015260a06040840152614d5560a08401888a614895565b81871660608501528381036080850152614d70818688614895565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614db4828661485c565b6001600160a01b0393909316606082015260800152919050565b6001600160401b0381811683821601908082111561407e5761407e614b57565b6000808335601e19843603018112614e0557600080fd5b8301803591506001600160401b03821115614e1f57600080fd5b60200191503681900382131561149e57600080fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a0830152850151600090614e8360c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614eb461014084018261416c565b90508281036020840152614ec9818688614895565b9150506127b0604083018415159052565b600060408284031215614eec57600080fd5b604051604081018181106001600160401b0382111715614f0e57614f0e6149ea565b604052825181526020928301519281019290925250919050565b600060408284031215614f3a57600080fd5b611d1f8383614eda565b60008060608385031215614f5757600080fd5b614f618484614eda565b915060408301516001600160401b03811115614f7c57600080fd5b614f8885828601614a00565b9150509250929050565b606081526000614fa5606083018761416c565b8281036020840152614fb8818688614895565b91505060018060a01b038316604083015295945050505050565b600060208284031215614fe457600080fd5b5051919050565b60608101611655828461485c565b6000825161500b818460208701614148565b919091019291505056fea264697066735822122060b78f73c9ab9c1651b5848f9a662a4d7443b5174845f63dab183c0e0ef4aa8b64736f6c63430008160033608060405234801561001057600080fd5b506101c3806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a7146100655780631881d94d1461008d57806354fd4d501461009c5780636750cd4c146100c3575b604051632657b6c360e01b815260040160405180910390fd5b61007861007336600461010e565b6100d7565b60405190151581526020015b60405180910390f35b6002604051610084919061013f565b6040805167ffffffffffffffff815260ff6020820152600291810191909152606001610084565b6100786100d1366004610167565b50600190565b60006001600160e01b031982166325fc096160e21b148061010857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561012057600080fd5b81356001600160e01b03198116811461013857600080fd5b9392505050565b602081016003831061016157634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561017957600080fd5b813563ffffffff8116811461013857600080fdfea26469706673582212201492a62cde195effaf02cad81258b16b83979b7f432c3fe0ca641db583822bb764736f6c63430008160033608060405234801561001057600080fd5b506040516114d63803806114d683398101604081905261002f9161010a565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e816100ba565b506001600160a01b03166000908152600260205260409020805460ff1916600190811790915580546001600160801b03191668056bc75e2d6310000017905560058054602f60801b6001600160801b039190911617905561013a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561011c57600080fd5b81516001600160a01b038116811461013357600080fd5b9392505050565b61138d806101496000396000f3fe6080604052600436106101405760003560e01c80638ca2fb08116100b6578063d350ad251161006f578063d350ad2514610441578063da26663a14610461578063dbbb415514610522578063e0ad121a14610542578063f2fde38b146105cb578063fd9be522146105eb57600080fd5b80638ca2fb08146103595780638da5cb5b1461039957806392807f58146103b7578063c1723a1d146103e9578063c1840327146103fc578063cd68b79b1461041a57600080fd5b80635d6d7ccb116101085780635d6d7ccb146102405780635e280f1114610260578063715018a6146102985780637bc3c9ab146102ad5780637dc438a4146102ea57806388a4124c1461030a57600080fd5b806311f2c343146101455780632f7cb0b41461017c5780633161b7f61461019e57806336a5beba146101be57806352a7251014610220575b600080fd5b34801561015157600080fd5b5061016961016036600461100d565b60009392505050565b6040519081526020015b60405180910390f35b34801561018857600080fd5b5061019c610197366004611057565b61060b565b005b3480156101aa57600080fd5b5061019c6101b9366004611079565b610632565b3480156101ca57600080fd5b506040805180820182526000808252602091820152815180830183526004546001600160401b03811680835263ffffffff600160401b909204821692840192835284519081529151169181019190915201610173565b34801561022c57600080fd5b5061019c61023b366004611104565b610773565b34801561024c57600080fd5b5061019c61025b366004611057565b6107a6565b34801561026c57600080fd5b50600654610280906001600160a01b031681565b6040516001600160a01b039091168152602001610173565b3480156102a457600080fd5b5061019c610819565b3480156102b957600080fd5b506102cd6102c8366004611152565b61082d565b604080519283526001600160801b03909116602083015201610173565b3480156102f657600080fd5b5061019c610305366004611170565b6108c8565b34801561031657600080fd5b5061032a61032536600461100d565b610989565b604080519485526001600160801b03938416602086015291831691840191909152166060820152608001610173565b34801561036557600080fd5b50610389610374366004611188565b60026020526000908152604090205460ff1681565b6040519015158152602001610173565b3480156103a557600080fd5b506000546001600160a01b0316610280565b3480156103c357600080fd5b506005546001600160801b03165b6040516001600160801b039091168152602001610173565b61032a6103f736600461100d565b6109ab565b34801561040857600080fd5b506001546001600160801b03166103d1565b34801561042657600080fd5b506005546103d190600160801b90046001600160801b031681565b34801561044d57600080fd5b5061019c61045c366004611057565b6109dc565b34801561046d57600080fd5b506104e861047c3660046111a3565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526003835283902083519182018452546001600160801b0381168252600160801b81046001600160401b031692820192909252600160c01b9091049092169082015290565b6040805182516001600160801b031681526020808401516001600160401b0316908201529181015163ffffffff1690820152606001610173565b34801561052e57600080fd5b5061019c61053d366004611188565b610a06565b34801561054e57600080fd5b506104e861055d3660046111be565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452600382529282902082519384018352546001600160801b03811684526001600160401b03600160801b82041691840191909152600160c01b900463ffffffff169082015290565b3480156105d757600080fd5b5061019c6105e6366004611188565b610a30565b3480156105f757600080fd5b5061019c6106063660046111d9565b610a6e565b610613610a84565b600580546001600160801b03928316600160801b029216919091179055565b336106456000546001600160a01b031690565b6001600160a01b031614610683573360009081526002602052604090205460ff166106835760405163320ae52960e01b815260040160405180910390fd5b60005b8181101561076e57368383838181106106a1576106a1611203565b60800291909101915061076590506106bc60208301836111a3565b6106ce36849003840160208501611230565b805160208083015160409384015184516060810186526001600160801b0394851681526001600160401b0392831681850190815263ffffffff9283168288019081529783166000908152600390955295909320925183549551965194166001600160c01b031990951694909417600160801b95909116949094029390931763ffffffff60c01b1916600160c01b9190921602179055565b50600101610686565b505050565b61077b610a84565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b336107b96000546001600160a01b031690565b6001600160a01b0316146107f7573360009081526002602052604090205460ff166107f75760405163320ae52960e01b815260040160405180910390fd5b600580546001600160801b0319166001600160801b0392909216919091179055565b610821610a84565b61082b6000610ab1565b565b6000808461ffff16606e148061084857508461ffff1661279f145b8061085857508461ffff16614eaf145b156108755761086c8561ffff168585610b01565b915091506108c0565b8461ffff16606f148061088d57508461ffff16612794145b8061089d57508461ffff16614ea4145b156108b15761086c8561ffff168585610c0e565b61086c8561ffff168585610d5e565b935093915050565b336108db6000546001600160a01b031690565b6001600160a01b031614610919573360009081526002602052604090205460ff166109195760405163320ae52960e01b815260040160405180910390fd5b6109296106bc60208301836111a3565b600061093b60a08301608084016112a9565b9050600061094f60c0840160a085016111a3565b6004805463ffffffff909216600160401b026bffffffffffffffffffffffff199092166001600160401b0390941693909317179091555050565b60008060008061099a878787610dfe565b935093509350935093509350935093565b6000808080806109bf565b60405180910390fd5b6109ca888888610dfe565b94509450945094505093509350935093565b6109e4610a84565b600180546001600160801b0319166001600160801b0392909216919091179055565b610a0e610a84565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a38610a84565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024016109b6565b610a6b81610ab1565b50565b610a76610a84565b610a808282610ecc565b5050565b6000546001600160a01b0316331461082b5760405163118cdaa760e01b81523360048201526024016109b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff8381166000908152600360205260408120600454600554929384938492600160401b900490911690606490610b4b90600160801b90046001600160801b0316896112da565b610b55919061130d565b610b5f91906112da565b8254909150600090610b7e90600160c01b900463ffffffff16886112da565b83546004549192506000916001600160401b03600160801b90920482169184918691610bab91168b611321565b610bb59190611321565b610bbf9190611321565b610bc991906112da565b60015485549192506001600160801b0390811691610be89116836112da565b610bf2919061130d565b935493996001600160801b039094169850929650505050505050565b6000806000610c1c86610f79565b63ffffffff80821660009081526003602052604081208054939450929091610c4c91600160c01b900416886112da565b610c5890610c74611321565b8254909150600090610c7a90600160801b90046001600160401b0316836112da565b63ffffffff808b1660009081526003602052604081208054939450929091610caa91600160c01b9004168b6112da565b8254909150600090600160801b90046001600160401b0316610ccc8b84611321565b610cd691906112da565b60015487549192506000916001600160801b0391821691610cf89116876112da565b610d02919061130d565b60015485549192506000916001600160801b0391821691610d249116856112da565b610d2e919061130d565b90506000610d3c8284611321565b9554959f6001600160801b039096169e50949c50505050505050505050505050565b63ffffffff80841660009081526003602052604081208054919283928391610d8e91600160c01b900416876112da565b8254909150600090600160801b90046001600160401b0316610db08784611321565b610dba91906112da565b60015484549192506001600160801b0390811691610dd99116836112da565b610de3919061130d565b925492986001600160801b0390931697509195505050505050565b600080808080610e1061753089611334565b90508063ffffffff16606e1480610e2e57508063ffffffff1661279f145b80610e4057508063ffffffff16614eaf145b15610e5a57610e50818888610b01565b9095509350610ea9565b8063ffffffff16606f1480610e7657508063ffffffff16612794145b80610e8857508063ffffffff16614ea4145b15610e9857610e50818888610c0e565b610ea3818888610d5e565b90955093505b505060015460055493979296506001600160801b03908116955090921692509050565b6001600160a01b038216610ef3576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f40576040519150601f19603f3d011682016040523d82523d6000602084013e610f45565b606091505b505090508061076e57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016109b6565b600080610f8861753084611334565b90508063ffffffff16606f03610fa15750606592915050565b8063ffffffff1661279403610fba575061278992915050565b8063ffffffff16614ea403610fd35750614e9992915050565b604051633d0b0cf760e21b815263ffffffff821660048201526024016109b6565b803563ffffffff8116811461100857600080fd5b919050565b60008060006060848603121561102257600080fd5b61102b84610ff4565b95602085013595506040909401359392505050565b80356001600160801b038116811461100857600080fd5b60006020828403121561106957600080fd5b61107282611040565b9392505050565b6000806020838503121561108c57600080fd5b82356001600160401b03808211156110a357600080fd5b818501915085601f8301126110b757600080fd5b8135818111156110c657600080fd5b8660208260071b85010111156110db57600080fd5b60209290920196919550909350505050565b80356001600160a01b038116811461100857600080fd5b6000806040838503121561111757600080fd5b611120836110ed565b91506020830135801515811461113557600080fd5b809150509250929050565b803561ffff8116811461100857600080fd5b60008060006060848603121561116757600080fd5b61102b84611140565b600060c0828403121561118257600080fd5b50919050565b60006020828403121561119a57600080fd5b611072826110ed565b6000602082840312156111b557600080fd5b61107282610ff4565b6000602082840312156111d057600080fd5b61107282611140565b600080604083850312156111ec57600080fd5b6111f5836110ed565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b80356001600160401b038116811461100857600080fd5b60006060828403121561124257600080fd5b604051606081018181106001600160401b038211171561127257634e487b7160e01b600052604160045260246000fd5b60405261127e83611040565b815261128c60208401611219565b602082015261129d60408401610ff4565b60408201529392505050565b6000602082840312156112bb57600080fd5b61107282611219565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176112f1576112f16112c4565b92915050565b634e487b7160e01b600052601260045260246000fd5b60008261131c5761131c6112f7565b500490565b808201808211156112f1576112f16112c4565b600063ffffffff8084168061134b5761134b6112f7565b9216919091069291505056fea264697066735822122043d40d861fac89f60c4938c8341172f4eaeb8b3e6729e13e77697283f99e882864736f6c6343000816003360e06040523480156200001157600080fd5b5060405162004ac038038062004ac083398101604081905262000034916200018b565b82828282836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000077573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009d9190620001d8565b6001600160a01b03821660805263ffffffff811660a05283833380620000dd57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000e88162000122565b5060c0919091526002555050600680546001600160a01b0319166001600160a01b0398909816979097179096555062000207945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200018857600080fd5b50565b60008060008060808587031215620001a257600080fd5b8451620001af8162000172565b6020860151909450620001c28162000172565b6040860151606090960151949790965092505050565b600060208284031215620001eb57600080fd5b815163ffffffff811681146200020057600080fd5b9392505050565b60805160a05160c0516148706200025060003960008181611d100152611e730152600050506000818161069a0152818161079f015281816112b101526117d901526148706000f3fe60806040526004361061014f5760003560e01c806361d027b3116100b6578063d15b0d491161006f578063d15b0d4914610450578063d80e9bd914610470578063f0f442601461049d578063f2fde38b146104bd578063faaebd21146104dd578063fd9be5221461051857600080fd5b806361d027b3146103905780636750cd4c146103b0578063715018a6146103d05780638da5cb5b146103e55780639c33abf714610403578063c14c43491461043057600080fd5b806329460b0b1161010857806329460b0b1461025357806339e3f938146102735780634389e58f146102a057806343ea4fa9146102ce5780634d963200146102ee57806354fd4d501461036357600080fd5b806301ffc9a71461015b5780630e97289b14610190578063188183f4146101c85780631881d94d146101f5578063200175f71461021157806320efd7221461023357600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b6101763660046136fd565b610538565b60405190151581526020015b60405180910390f35b34801561019c57600080fd5b506006546101b0906001600160a01b031681565b6040516001600160a01b039091168152602001610187565b3480156101d457600080fd5b506101e86101e3366004613769565b61058a565b60405161018791906137a2565b34801561020157600080fd5b50600060405161018791906137c8565b34801561021d57600080fd5b5061023161022c3660046137f0565b610663565b005b34801561023f57600080fd5b5061023161024e366004613875565b61079d565b34801561025f57600080fd5b5061023161026e3660046138c9565b610912565b34801561027f57600080fd5b5061029361028e366004613769565b610aaa565b60405161018791906139c0565b3480156102ac57600080fd5b506102c06102bb3660046139ec565b610be5565b604051610187929190613aeb565b3480156102da57600080fd5b506102936102e9366004613769565b610c7a565b3480156102fa57600080fd5b5061033f610309366004613769565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160a01b031682565b6040805163ffffffff90931683526001600160a01b03909116602083015201610187565b34801561036f57600080fd5b50604080516003815260006020820152600291810191909152606001610187565b34801561039c57600080fd5b506003546101b0906001600160a01b031681565b3480156103bc57600080fd5b5061017b6103cb366004613b0f565b610f86565b3480156103dc57600080fd5b50610231610f91565b3480156103f157600080fd5b506000546001600160a01b03166101b0565b34801561040f57600080fd5b5061042361041e366004613b2c565b610fa5565b6040516101879190613b77565b34801561043c57600080fd5b5061023161044b366004613b8a565b611037565b34801561045c57600080fd5b5061023161046b366004613bfe565b611170565b34801561047c57600080fd5b5061049061048b3660046139ec565b6111e5565b6040516101879190613c17565b3480156104a957600080fd5b506102316104b8366004613c2e565b611255565b3480156104c957600080fd5b506102316104d8366004613c2e565b611269565b3480156104e957600080fd5b5061050a6104f8366004613c2e565b60056020526000908152604090205481565b604051908152602001610187565b34801561052457600080fd5b50610231610533366004613c4b565b6112a4565b60006001600160e01b031982166325fc096160e21b148061056957506001600160e01b0319821663b6e9ace360e01b145b8061058457506301ffc9a760e01b6001600160e01b03198316145b92915050565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec602090815260408083206001600160a01b038916845260048352818420948452939091528120805492939092169081900361060e57825463ffffffff16610610565b805b63ffffffff168452815464010000000090046001600160a01b03168061064857835464010000000090046001600160a01b031661064a565b805b6001600160a01b03166020860152509295945050505050565b6003546001600160a01b0316331461068e5760405163885762a760e01b815260040160405180910390fd5b826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071a9190613c77565b6001600160a01b031603610741576040516339a5741160e21b815260040160405180910390fd5b61074c838383611384565b604080516001600160a01b038086168252841660208201529081018290527fe081464b7278501267de69fa85b7b9560b0ae05d5fbfaab9b1986c70356e2efe906060015b60405180910390a1505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107e65760405163467409c360e01b815260040160405180910390fd5b60005b8181101561090c573683838381811061080457610804613c94565b90506020028101906108169190613caa565b905061082d6108286020830183613b0f565b6113c4565b600161083f6040830160208401613b0f565b63ffffffff160361087f5761087a61085a6020830183613b0f565b866108686040850185613cca565b8101906108759190613da0565b6113f2565b610903565b60026108916040830160208401613b0f565b63ffffffff16036108cc5761087a6108ac6020830183613b0f565b866108ba6040850185613cca565b8101906108c79190613f60565b61147a565b6108dc6040820160208301613b0f565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016107e9565b50505050565b61091a6114c3565b60005b81811015610a6c573683838381811061093857610938613c94565b905060200281019061094a9190613f94565b905060ff61095b6020830183613faa565b61096c906040810190602001613fc0565b60ff160361098d576040516341d50bed60e11b815260040160405180910390fd5b60ff61099c6020830183613faa565b6109ad906060810190604001613fc0565b60ff16036109ce5760405163211089b360e11b815260040160405180910390fd5b6001600160401b036109e36020830183613faa565b6109f1906020810190613fdb565b6001600160401b031603610a185760405163281b33d760e11b815260040160405180910390fd5b610a36610a286020830183613faa565b610a3190613ff6565b6114f0565b610a636000610a486020840184613b0f565b610a556020850185613faa565b610a5e90613ff6565b611528565b5060010161091d565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610a9e929190614088565b60405180910390a15050565b610ab2613644565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610b7257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b54575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610bd457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bb6575b505050505081525050905092915050565b60408051808201909152600080825260208201526060610c07868686866117c1565b600654604051631f5dad8b60e31b81529294509092506001600160a01b03169063faed6c5890610c3f908490899089906004016141cd565b600060405180830381600087803b158015610c5957600080fd5b505af1158015610c6d573d6000803e3d6000fd5b5050505094509492505050565b610c82613644565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b031680610cf75782546001600160401b03168452610d14565b6001600160401b0381811614610d14576001600160401b03811684525b8154600160401b900460ff16610dae578254600160401b900460ff1615610da95782600101805480602002602001604051908101604052809291908181526020018280548015610d8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d6f575b505050505060808501528254600160401b900460ff1660208501525b610e35565b8154600160401b900460ff90811614610e355781600101805480602002602001604051908101604052809291908181526020018280548015610e1957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610dfb575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610ede578254600160481b900460ff1615610ed95782600201805480602002602001604051908101604052809291908181526020018280548015610eae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e90575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610f74565b8154600160481b900460ff90811614610f745781600201805480602002602001604051908101604052809291908181526020018280548015610f4957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f2b575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610f7d846114f0565b50505092915050565b600061058482611895565b610f996114c3565b610fa360006118f0565b565b606060001963ffffffff831601610fe657610fc0838561058a565b604051602001610fd091906137a2565b6040516020818303038152906040529050611030565b60011963ffffffff83160161100f57610fff8385610c7a565b604051602001610fd091906139c0565b604051635d4be0fd60e11b815263ffffffff831660048201526024016108fa565b9392505050565b61103f6114c3565b60005b8181101561113e573683838381811061105d5761105d613c94565b606090810292909201925060009161107b9150830160408401613c2e565b6001600160a01b0316036110a257604051631074e82d60e11b815260040160405180910390fd5b6110b26040820160208301613b0f565b63ffffffff166000036110d8576040516349cfac4360e01b815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec906111138385613b0f565b63ffffffff16815260208101919091526040016000206111338282614213565b505050600101611042565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610a9e92919061426c565b6111786114c3565b6002548111156111a95760025460405163068109f760e31b81526108fa918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b7842906020015b60405180910390a150565b604080518082019091526000808252602082015260008061123661120f6060890160408a01613c2e565b61121f60808a0160608b01613b0f565b61122c60c08b018b613cca565b9050878a8a611940565b604080518082019091529182526020820152925050505b949350505050565b61125d6114c3565b61126681611a39565b50565b6112716114c3565b6001600160a01b03811661129b57604051631e4fbdf760e01b8152600060048201526024016108fa565b611266816118f0565b6112ad81611a87565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561130d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113319190613c77565b905061133e818484611ad8565b604080513381526001600160a01b03851660208201529081018390527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610790565b6001600160a01b0382166113ab576040516306b7a93160e41b815260040160405180910390fd5b6113bf6001600160a01b0384168383611afb565b505050565b6113cd81611895565b61126657604051633c30434160e21b815263ffffffff821660048201526024016108fa565b6001600160a01b03808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000026001600160c01b03199093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc80590610790908490869085906142ec565b611485828483611528565b61148f8284610c7a565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516107909392919061432e565b6000546001600160a01b03163314610fa35760405163118cdaa760e01b81523360048201526024016108fa565b602081015160ff1615801561150a5750606081015160ff16155b156112665760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806115435750602081015160ff16155b15611571576080810151511561156c576040516341d50bed60e11b815260040160405180910390fd5b6115d7565b806020015160ff168160800151511415806115ac57506002611595600160ff614374565b61159f919061438d565b60ff16816020015160ff16115b156115ca576040516341d50bed60e11b815260040160405180910390fd5b6115d78160800151611b4d565b604081015160ff90811614806115f25750604081015160ff16155b156116465760a0810151511561161b5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615611641576040516338682fa960e01b815260040160405180910390fd5b6116eb565b806040015160ff168160a00151511415806116815750600261166a600160ff614374565b611674919061438d565b60ff16816040015160ff16115b1561169f5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615806116c05750806040015160ff16816060015160ff16115b156116de576040516338682fa960e01b815260040160405180910390fd5b6116eb8160a00151611b4d565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361179d9390850192019061368c565b5060a082015180516117b991600284019160209091019061368c565b505050505050565b604080518082019091526000808252602082015260607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118205760405163467409c360e01b815260040160405180910390fd5b60008061182e888888611bb4565b909250905060008061186061184960608c0160408d01613c2e565b61185960808d0160608e01613b0f565b858a611c81565b909250905061186f82846143bd565b604080518082019091529081526020810191909152945091925050505b94509492505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580611030575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000806119508686611d8f565b9150915060006119618b8b84611da8565b9050600061196f8c8c61058a565b90506119858a826000015163ffffffff16611db5565b80602001516001600160a01b031663709eb6648c8e8d886040518563ffffffff1660e01b81526004016119bb94939291906143d0565b602060405180830381865afa1580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614403565b611a0690836143bd565b9150600080611a178e8e868e611de4565b9092509050611a2682856143bd565b9e909d509b505050505050505050505050565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f906020016111da565b3360009081526005602052604090205480821115611ac25760405163068109f760e31b815260048101839052602481018290526044016108fa565b3360009081526005602052604090209190039055565b6001600160a01b038316611af0576113bf8282611eb5565b6113bf838383611384565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113bf908490611f62565b6000805b82518110156113bf576000838281518110611b6e57611b6e613c94565b60200260200101519050826001600160a01b0316816001600160a01b031611611baa5760405163447516e160e01b815260040160405180910390fd5b9150600101611b51565b60606000806000611bc58686611d8f565b90925090506000611bef611bdf60608a0160408b01613c2e565b6101e360808b0160608c01613b0f565b90506000611c0060c08a018a613cca565b90509050611c1881836000015163ffffffff16611db5565b6020820151611c4890611c3160808c0160608d01613b0f565b611c4160608d0160408e01613c2e565b8488611fc5565b611c5290866143bd565b9450600080611c618b866120be565b9092509050611c7082886143bd565b909b909a5098505050505050505050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b0316636a8e2a4360e11b1790526003549192506000918291611d38916001600160a01b0316907f0000000000000000000000000000000000000000000000000000000000000000908490876120e1565b91509150611d4887878484612191565b90955093508415611d83576003546001600160a01b031660009081526005602052604081208054879290611d7d9084906143bd565b90915550505b50505094509492505050565b606080611d9c848461220c565b915091505b9250929050565b600061124d8484846122f9565b80821115611de057604051636333d79f60e11b815260048101839052602481018290526044016108fa565b5050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b031663d424422160e01b1790526003549192506000918291611e99916001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000009086612373565b91509150611ea987878484612191565b9450945050505061188c565b6001600160a01b038216611edc576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611f29576040519150601f19603f3d011682016040523d82523d6000602084013e611f2e565b606091505b50509050806113bf57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016108fa565b6000611f776001600160a01b0384168361241f565b90508051600014158015611f9c575080806020019051810190611f9a919061441c565b155b156113bf57604051635274afe760e01b81526001600160a01b03841660048201526024016108fa565b6040516338bf452160e11b81526000906001600160a01b0387169063717e8a4290611ffa9088908890889088906004016143d0565b6020604051808303816000875af1158015612019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203d9190614403565b90508015612073576001600160a01b0386166000908152600560205260408120805483929061206d9084906143bd565b90915550505b604080516001600160a01b0388168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b600060606120d660056120d0866144a8565b8561242d565b909590945092505050565b60006060863b80830361210857604080516000808252602082019092529250925050612187565b60008060008761ffff166001600160401b0381111561212957612129613d10565b6040519080825280601f01601f191660200182016040528015612153576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612174578792505b828152826000602083013e909450925050505b9550959350505050565b6000808315806121a2575082516020115b156121b25750600090508061188c565b6000838060200190518101906121c89190614403565b905085156121d857809150612202565b600060025488116121eb576002546121ed565b875b90508082116121fc57816121fe565b805b9350505b5094509492505050565b60608060008061221c868661257b565b91509150805160000361227457604080516000808252602082019092528391612268565b6040805180820190915260008152606060208201528152602001906001900390816122405790505b50935093505050611da1565b604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908161228b5790505090506040518060400160405280600260ff16815260200183815250816000815181106122e1576122e1613c94565b60209081029190910101529196919550909350505050565b6000806123068585610c7a565b905060008351600014612337578360008151811061232657612326613c94565b602002602001015160200151612348565b604051806020016040528060008152505b90506000806123568361273a565b9150915061236784888a85856129a0565b98975050505050505050565b60006060853b80830361239a5760408051600080825260208201909252925092505061188c565b60008060008761ffff166001600160401b038111156123bb576123bb613d10565b6040519080825280601f01601f1916602001820160405280156123e5576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612405578792505b828152826000602083013e90999098509650505050505050565b606061103083836000612b38565b60006060600061243c85612bd5565b9050600061244986612c62565b80516020820120606088015160408901519293509091600061246b8284610c7a565b90506000895160001461249c578960008151811061248b5761248b613c94565b6020026020010151602001516124ad565b604051806020016040528060008152505b905060606124ff8d846040518060a001604052808963ffffffff1681526020018c81526020018a815260200187600001516001600160401b03168152602001886001600160a01b031681525085612c7f565b604051919b5091506125179089908990602001614545565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a001518360405161256393929190614574565b60405180910390a15050505050505050935093915050565b60608060028310156125a35760405163196499c760e21b8152600060048201526024016108fa565b60006125b260028286886145d2565b6125bb916145fc565b60f01c905060026002198201612723578060005b868310156126c85760006125e860018501858a8c6145d2565b6125f19161462c565b60f81c9050600081900361261b57604051636780cfaf60e01b8152600060048201526024016108fa565b8160ff1660000361262e5780915061266b565b8160ff168160ff161461266b5736600061264a86868c8e6145d2565b9150915061265b8989868585612f1d565b9099509750859450919250829150505b600184019360009061268290600301868b8d6145d2565b61268b916145fc565b60f01c905060008190036126b55760405163196499c760e21b8152600481018690526024016108fa565b8060020161ffff168501945050506125cf565b8287146126eb5760405163196499c760e21b8152600481018490526024016108fa565b600287111561271c5736600061270385858b8d6145d2565b915091506127148888858585612f1d565b909850965050505b5050612731565b61272e82878761303d565b93505b50509250929050565b606080825160000361274b57915091565b6000612756846131c8565b90508060ff166001036128085760408051600180825281830190925290816020015b606081526020019060019003908161277857905050925083836000815181106127a3576127a3613c94565b6020908102919091010152604080516001808252818301909252908160200160208202803683370190505091506127db8460036132a2565b826000815181106127ee576127ee613c94565b602002602001019060ff16908160ff168152505050915091565b8060ff166001600160401b0381111561282357612823613d10565b60405190808252806020026020018201604052801561284c578160200160208202803683370190505b5091508060ff166001600160401b0381111561286a5761286a613d10565b60405190808252806020026020018201604052801561289d57816020015b60608152602001906001900390816128885790505b50925060008060ff5b86518310156129335760019092019160006128c188856132fe565b60029490940193905060006128d689866132a2565b90508260ff1660ff036128eb57809250612924565b8260ff168160ff16146129245760021984860301600061290c8b878461335b565b905061291a8a8a8784613468565b5093909301929150815b5061ffff1692909201916128a6565b818303600061294389858461335b565b905061295188888584613468565b60005b8660ff168160ff16101561299457878160ff168151811061297757612977613c94565b6020908102919091010180516000190160ff169052600101612954565b50505050505050915091565b600080866040015187602001516129b7919061465a565b905060005b8160ff168160ff161015612b2d576000886020015160ff168260ff1610612a115760a089015160208a01516129f19084614374565b60ff1681518110612a0457612a04613c94565b6020026020010151612a33565b88608001518260ff1681518110612a2a57612a2a613c94565b60200260200101515b60408051602081019091526000808252919250905b8651811015612aa0578360ff16878281518110612a6757612a67613c94565b602002602001015160ff1603612a9857878181518110612a8957612a89613c94565b60200260200101519150612aa0565b600101612a48565b508951604051630c2eceab60e21b81526001600160a01b038416916330bb3aac91612ad3918d918d908790600401614673565b602060405180830381865afa158015612af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b149190614403565b612b1e90866143bd565b945050508060010190506129bc565b505095945050505050565b606081471015612b5d5760405163cd78605960e01b81523060048201526024016108fa565b600080856001600160a01b03168486604051612b7991906146b2565b60006040518083038185875af1925050503d8060008114612bb6576040519150601f19603f3d011682016040523d82523d6000602084013e612bbb565b606091505b5091509150612bcb86838361357e565b9695505050505050565b805160208083015160408085015160608087015160808801519351600160f81b9681019690965260c09690961b6001600160c01b031916602186015260e093841b6001600160e01b031990811660298701526001600160a01b03909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c00151604051602001612c4c9291906146c4565b60006060600080612c8f8561273a565b91509150600087604001518860200151612ca9919061465a565b90508060ff166001600160401b03811115612cc657612cc6613d10565b604051908082528060200260200182016040528015612cef578160200160208202803683370190505b50935060005b8160ff168160ff161015610c6d576000896020015160ff168260ff1610612d4a5760a08a015160208b0151612d2a9084614374565b60ff1681518110612d3d57612d3d613c94565b6020026020010151612d6c565b89608001518260ff1681518110612d6357612d63613c94565b60200260200101515b60408051602081019091526000808252919250905b8551811015612dd9578360ff16868281518110612da057612da0613c94565b602002602001015160ff1603612dd157868181518110612dc257612dc2613c94565b60200260200101519150612dd9565b600101612d81565b506040516395d376d760e01b81526001600160a01b038316906395d376d790612e08908d9085906004016146ea565b6020604051808303816000875af1158015612e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4b9190614403565b878460ff1681518110612e6057612e60613c94565b6020026020010181815250506000878460ff1681518110612e8357612e83613c94565b60200260200101511115612f1357868360ff1681518110612ea657612ea6613c94565b60200260200101518c6000846001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ee191906143bd565b92505081905550868360ff1681518110612efd57612efd613c94565b602002602001015188612f1091906143bd565b97505b5050600101612cf5565b60608060001960ff861601612f9a57865115612f5c57868484604051602001612f489392919061475c565b604051602081830303815290604052612f93565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613032565b60011960ff86160161301457855115612fd657858484604051602001612fc29392919061475c565b60405160208183030381529060405261300d565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613032565b604051636780cfaf60e01b815260ff861660048201526024016108fa565b509495939450505050565b606060001961ffff8516016130dd576022821461306d576040516301b8ca5560e31b815260040160405180910390fd5b600061308e6130806022600286886145d2565b61308991614784565b6135da565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b166024820152909150603401604051602081830303815290604052915050611030565b60011961ffff8516016131a9576042821115806130fa5750606282115b15613118576040516360493e2b60e11b815260040160405180910390fd5b600061312b6130806022600286886145d2565b905060006131406130806042602287896145d2565b905060006041198501613156866042818a6145d2565b61315f91614784565b60405160086020938403029190911c9250613190916001916011918391889183916031916002918b918b91016147a2565b6040516020818303038152906040529350505050611030565b604051630417051360e41b815261ffff851660048201526024016108fa565b600080805b83518210156132775760019091019060006131e885846132fe565b905060028301925060028161ffff1610156132195760405163013adb8360e21b8152600481018490526024016108fa565b600061322586856132a2565b90508060ff1660ff0361324b576040516334f4f66f60e21b815260040160405180910390fd5b600160ff82161b83166132685760019485019460ff82161b831792505b5061ffff1691909101906131cd565b8351821461329b5760405163013adb8360e21b8152600481018390526024016108fa565b5050919050565b60006132af8260016143bd565b835110156132f55760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b60448201526064016108fa565b50016001015190565b600061330b8260026143bd565b835110156133525760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b60448201526064016108fa565b50016002015190565b60608161336981601f6143bd565b10156133a85760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016108fa565b6133b282846143bd565b845110156133f65760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016108fa565b606082158015613415576040519150600082526020820160405261345f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561344e578051835260209283019201613436565b5050858452601f01601f1916604052505b50949350505050565b8160ff1660ff0361348c576040516334f4f66f60e21b815260040160405180910390fd5b600061349983600161465a565b905060005b84518110156117b95760008582815181106134bb576134bb613c94565b602002602001015190508060ff168360ff1603613530578682815181106134e4576134e4613c94565b6020026020010151846040516020016134fe929190614545565b60405160208183030381529060405287838151811061351f5761351f613c94565b6020026020010181905250506117b9565b8060ff16600003613575578286838151811061354e5761354e613c94565b602002602001019060ff16908160ff16815250508387838151811061351f5761351f613c94565b5060010161349e565b6060826135935761358e8261361b565b611030565b81511580156135aa57506001600160a01b0384163b155b156135d357604051639996b31560e01b81526001600160a01b03851660048201526024016108fa565b5080611030565b60006fffffffffffffffffffffffffffffffff821115613617576040516306dfcc6560e41b815260806004820152602481018390526044016108fa565b5090565b80511561362b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156136e1579160200282015b828111156136e157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906136ac565b506136179291505b8082111561361757600081556001016136e9565b60006020828403121561370f57600080fd5b81356001600160e01b03198116811461103057600080fd5b6001600160a01b038116811461126657600080fd5b803561374781613727565b919050565b63ffffffff8116811461126657600080fd5b80356137478161374c565b6000806040838503121561377c57600080fd5b823561378781613727565b915060208301356137978161374c565b809150509250929050565b815163ffffffff1681526020808301516001600160a01b03169082015260408101610584565b60208101600383106137ea57634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006060848603121561380557600080fd5b833561381081613727565b9250602084013561382081613727565b929592945050506040919091013590565b60008083601f84011261384357600080fd5b5081356001600160401b0381111561385a57600080fd5b6020830191508360208260051b8501011115611da157600080fd5b60008060006040848603121561388a57600080fd5b833561389581613727565b925060208401356001600160401b038111156138b057600080fd5b6138bc86828701613831565b9497909650939450505050565b600080602083850312156138dc57600080fd5b82356001600160401b038111156138f257600080fd5b6138fe85828601613831565b90969095509350505050565b60008151808452602080850194506020840160005b838110156139445781516001600160a01b03168752958201959082019060010161391f565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261399e60c085018261390a565b905060a083015184820360a08601526139b7828261390a565b95945050505050565b602081526000611030602083018461394f565b801515811461126657600080fd5b8035613747816139d3565b60008060008060608587031215613a0257600080fd5b84356001600160401b0380821115613a1957600080fd5b9086019060e08289031215613a2d57600080fd5b90945060208601359080821115613a4357600080fd5b818701915087601f830112613a5757600080fd5b813581811115613a6657600080fd5b886020828501011115613a7857600080fd5b602083019550809450505050613a90604086016139e1565b905092959194509250565b60005b83811015613ab6578181015183820152602001613a9e565b50506000910152565b60008151808452613ad7816020860160208601613a9b565b601f01601f19169290920160200192915050565b825181526020808401519082015260606040820152600061124d6060830184613abf565b600060208284031215613b2157600080fd5b81356110308161374c565b600080600060608486031215613b4157600080fd5b8335613b4c8161374c565b92506020840135613b5c81613727565b91506040840135613b6c8161374c565b809150509250925092565b6020815260006110306020830184613abf565b60008060208385031215613b9d57600080fd5b82356001600160401b0380821115613bb457600080fd5b818501915085601f830112613bc857600080fd5b813581811115613bd757600080fd5b866020606083028501011115613bec57600080fd5b60209290920196919550909350505050565b600060208284031215613c1057600080fd5b5035919050565b815181526020808301519082015260408101610584565b600060208284031215613c4057600080fd5b813561103081613727565b60008060408385031215613c5e57600080fd5b8235613c6981613727565b946020939093013593505050565b600060208284031215613c8957600080fd5b815161103081613727565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112613cc057600080fd5b9190910192915050565b6000808335601e19843603018112613ce157600080fd5b8301803591506001600160401b03821115613cfb57600080fd5b602001915036819003821315611da157600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715613d4857613d48613d10565b60405290565b60405160e081016001600160401b0381118282101715613d4857613d48613d10565b604051601f8201601f191681016001600160401b0381118282101715613d9857613d98613d10565b604052919050565b600060408284031215613db257600080fd5b604051604081018181106001600160401b0382111715613dd457613dd4613d10565b6040528235613de28161374c565b81526020830135613df281613727565b60208201529392505050565b80356001600160401b038116811461374757600080fd5b803560ff8116811461374757600080fd5b600082601f830112613e3757600080fd5b813560206001600160401b03821115613e5257613e52613d10565b8160051b613e61828201613d70565b9283528481018201928281019087851115613e7b57600080fd5b83870192505b84831015613ea3578235613e9481613727565b82529183019190830190613e81565b979650505050505050565b600060c08284031215613ec057600080fd5b613ec8613d26565b9050613ed382613dfe565b8152613ee160208301613e15565b6020820152613ef260408301613e15565b6040820152613f0360608301613e15565b606082015260808201356001600160401b0380821115613f2257600080fd5b613f2e85838601613e26565b608084015260a0840135915080821115613f4757600080fd5b50613f5484828501613e26565b60a08301525092915050565b600060208284031215613f7257600080fd5b81356001600160401b03811115613f8857600080fd5b61124d84828501613eae565b60008235603e19833603018112613cc057600080fd5b6000823560be19833603018112613cc057600080fd5b600060208284031215613fd257600080fd5b61103082613e15565b600060208284031215613fed57600080fd5b61103082613dfe565b60006105843683613eae565b6000808335601e1984360301811261401957600080fd5b83016020810192503590506001600160401b0381111561403857600080fd5b8060051b3603821315611da157600080fd5b8183526000602080850194508260005b8581101561394457813561406d81613727565b6001600160a01b03168752958201959082019060010161405a565b60208082528181018390526000906040808401600586901b8501820187855b888110156141bf57603f19808985030185528235603e198c36030181126140cd57600080fd5b8b0180356140da8161374c565b63ffffffff168552808801353682900360be190181126140f957600080fd5b858901889052016001600160401b0361411182613dfe565b1687860152614121888201613e15565b606060ff808316828901526141378a8501613e15565b92506080818416818a015261414d838601613e15565b935060a09250818416838a015261416681860186614002565b60c08b8101529450915061418190506101008901848361404a565b92505061419081840184614002565b93509050838783030160e08801526141a982848361404a565b978a0197965050509287019250506001016140a7565b509098975050505050505050565b6040815260006141e06040830186613abf565b8281036020840152838152838560208301376000602085830101526020601f19601f860116820101915050949350505050565b813561421e8161374c565b63ffffffff8116905081548163ffffffff198216178355602084013561424381613727565b6001600160c01b03199190911690911760209190911b640100000000600160c01b031617905550565b6020808252818101839052600090604080840186845b878110156142df5781356142958161374c565b63ffffffff908116845282860135906142ad8261374c565b1683860152818401356142bf81613727565b6001600160a01b0316838501526060928301929190910190600101614282565b5090979650505050505050565b6001600160a01b038416815263ffffffff831660208201526080810161124d6040830184805163ffffffff1682526020908101516001600160a01b0316910152565b6001600160a01b038416815263ffffffff831660208201526060604082018190526000906139b79083018461394f565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156105845761058461435e565b600060ff8316806143ae57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b808201808211156105845761058461435e565b63ffffffff8516815260018060a01b0384166020820152826040820152608060608201526000612bcb6080830184613abf565b60006020828403121561441557600080fd5b5051919050565b60006020828403121561442e57600080fd5b8151611030816139d3565b600082601f83011261444a57600080fd5b81356001600160401b0381111561446357614463613d10565b614476601f8201601f1916602001613d70565b81815284602083860101111561448b57600080fd5b816020850160208301376000918101602001919091529392505050565b600060e082360312156144ba57600080fd5b6144c2613d4e565b6144cb83613dfe565b81526144d96020840161375e565b60208201526144ea6040840161373c565b60408201526144fb6060840161375e565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b0381111561452d57600080fd5b61453936828601614439565b60c08301525092915050565b60008351614557818460208801613a9b565b83519083019061456b818360208801613a9b565b01949350505050565b606081526000614587606083018661390a565b6020838203602085015261459b828761390a565b84810360408601528551808252602080880194509091019060005b818110156141bf578451835293830193918301916001016145b6565b600080858511156145e257600080fd5b838611156145ef57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156146245780818660020360031b1b83161692505b505092915050565b6001600160f81b031981358181169160018510156146245760019490940360031b84901b1690921692915050565b60ff81811683821601908111156105845761058461435e565b63ffffffff851681526001600160401b03841660208201526001600160a01b0383166040820152608060608201819052600090612bcb90830184613abf565b60008251613cc0818460208701613a9b565b828152600082516146dc816020850160208701613a9b565b919091016020019392505050565b6040815263ffffffff83511660408201526000602084015160a0606084015261471660e0840182613abf565b604086015160808581019190915260608701516001600160401b031660a08601528601516001600160a01b031660c0850152838103602085015290506139b78185613abf565b6000845161476e818460208901613a9b565b8201838582376000930192835250909392505050565b8035602083101561058457600019602084900360031b1b1692915050565b60f88a811b6001600160f81b0319908116835260f08b811b6001600160f01b031990811660018601528b841b8316600386015260808b901b6001600160801b031916600486015289841b831660148601529088901b1660158401529085901b1660178201526000614822601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea26469706673582212209c4e56d6c67105dfab95a5db652280357c444a31ddd8e746e20a46bf6d44b3bb64736f6c6343000816003360c06040523480156200001157600080fd5b50604051620024413803806200244183398101604081905262000034916200013e565b8080816001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009b919062000170565b3380620000c257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000cd81620000ee565b506001600160a01b0390911660805263ffffffff1660a05250620001989050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200015157600080fd5b81516001600160a01b03811681146200016957600080fd5b9392505050565b6000602082840312156200018357600080fd5b815163ffffffff811681146200016957600080fd5b60805160a05161227c620001c5600039600061031e01526000818161041b0152610484015261227c6000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806343ea4fa9116100a25780638da5cb5b116100715780638da5cb5b146102665780639c33abf714610281578063c40ff835146102a1578063e084d952146102b4578063f2fde38b146102c757600080fd5b806343ea4fa91461021857806354fd4d501461022b5780636750cd4c1461024b578063715018a61461025e57600080fd5b806320efd722116100de57806320efd7221461016f57806329460b0b1461018257806339e3f938146101955780633c782a52146101b557600080fd5b806301ffc9a7146101105780630223536e146101385780630894edf11461014d5780631881d94d14610160575b600080fd5b61012361011e3660046116ed565b6102da565b60405190151581526020015b60405180910390f35b61014b61014636600461177b565b610305565b005b61014b61015b3660046117d7565b610317565b600160405161012f9190611822565b61014b61017d3660046118a5565b610482565b61014b6101903660046118f7565b6105a4565b6101a86101a336600461194c565b61073c565b60405161012f9190611a35565b6101f96101c3366004611a48565b600260209081526000938452604080852082529284528284209052825290205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161012f565b6101a861022636600461194c565b610877565b60408051600381526000602082015260029181019190915260600161012f565b610123610259366004611a7d565b610b83565b61014b610b8e565b6000546040516001600160a01b03909116815260200161012f565b61029461028f366004611a98565b610ba2565b60405161012f9190611ad2565b61014b6102af366004611b21565b610c0b565b6101236102c2366004611d10565b610c1b565b61014b6102d5366004611d5d565b610c30565b60006001600160e01b03198216630ab7be9f60e01b14806102ff57506102ff82610c6e565b92915050565b61031184848484610ca3565b50505050565b61034283837f0000000000000000000000000000000000000000000000000000000000000000610d89565b600061034e8484610e0c565b9050600061035c8585610e1e565b9050600061036a8383610877565b905061038e818787604051610380929190611d78565b604051809103902086610e41565b600060405180606001604052808463ffffffff1681526020016103b18989610f91565b81526020016103c08989610faa565b6001600160401b039081169091526040805163a825d74760e01b8152835163ffffffff166004820152602084015160248201529083015190911660448201526001600160a01b038681166064830152608482018890529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a825d7479060a401600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b5050505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146104cb5760405163467409c360e01b815260040160405180910390fd5b60005b8181101561031157368383838181106104e9576104e9611d88565b90506020028101906104fb9190611d9e565b905061051261050d6020830183611a7d565b610fcd565b60026105246040830160208401611a7d565b63ffffffff16036105645761055f61053f6020830183611a7d565b8661054d6040850185611dbe565b81019061055a9190611e04565b610ffb565b61059b565b6105746040820160208301611a7d565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016104ce565b6105ac611051565b60005b818110156106fe57368383838181106105ca576105ca611d88565b90506020028101906105dc9190611e38565b905060ff6105ed6020830183611e4e565b6105fe906040810190602001611e64565b60ff160361061f576040516341d50bed60e11b815260040160405180910390fd5b60ff61062e6020830183611e4e565b61063f906060810190604001611e64565b60ff16036106605760405163211089b360e11b815260040160405180910390fd5b6001600160401b036106756020830183611e4e565b610683906020810190611e7f565b6001600160401b0316036106aa5760405163281b33d760e11b815260040160405180910390fd5b6106c86106ba6020830183611e4e565b6106c390611e9a565b61107e565b6106f560006106da6020840184611a7d565b6106e76020850185611e4e565b6106f090611e9a565b6110b6565b506001016105af565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610730929190611f2a565b60405180910390a15050565b61074461162b565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561080457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107e6575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561086657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610848575b505050505081525050905092915050565b61087f61162b565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b0316806108f45782546001600160401b03168452610911565b6001600160401b0381811614610911576001600160401b03811684525b8154600160401b900460ff166109ab578254600160401b900460ff16156109a6578260010180548060200260200160405190810160405280929190818152602001828054801561098a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161096c575b505050505060808501528254600160401b900460ff1660208501525b610a32565b8154600160401b900460ff90811614610a325781600101805480602002602001604051908101604052809291908181526020018280548015610a1657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109f8575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610adb578254600160481b900460ff1615610ad65782600201805480602002602001604051908101604052809291908181526020018280548015610aab57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a8d575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610b71565b8154600160481b900460ff90811614610b715781600201805480602002602001604051908101604052809291908181526020018280548015610b4657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b28575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610b7a8461107e565b50505092915050565b60006102ff8261134f565b610b96611051565b610ba060006113aa565b565b606060011963ffffffff831601610be357610bbd8385610877565b604051602001610bcd9190611a35565b6040516020818303038152906040529050610c04565b604051635d4be0fd60e11b815263ffffffff83166004820152602401610592565b9392505050565b610c16838383610d89565b505050565b6000610c288484846113fa565b949350505050565b610c38611051565b6001600160a01b038116610c6257604051631e4fbdf760e01b815260006004820152602401610592565b610c6b816113aa565b50565b60006001600160e01b031982166325fc096160e21b14806102ff57506301ffc9a760e01b6001600160e01b03198316146102ff565b604080518082018252600181526001600160401b03831660208201529051600290600090610cd49088908890611d78565b604080519182900390912082526020808301939093529081016000908120868252835281812033808352908452908290208451815495909401516001600160401b03166101000268ffffffffffffffff00199415159490941668ffffffffffffffffff19909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab5691610d7b91879087908690889061206c565b60405180910390a150505050565b60518214610daa5760405163c9bf37b760e01b815260040160405180910390fd5b6001610db68484611503565b60ff1614610dd757604051633a9ae7b960e01b815260040160405180910390fd5b8063ffffffff16610de88484611525565b63ffffffff1614610c165760405163216964bf60e11b815260040160405180910390fd5b6000610c04610e1b8484611535565b90565b6000610e2e600d600984866120c6565b610e37916120f0565b60e01c9392505050565b610e4c8383836113fa565b610e695760405163130c463560e21b815260040160405180910390fd5b602083015160ff1615610efe5760005b836020015160ff168160ff161015610efc57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110610ec157610ec1611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610e79565b505b604083015160ff1615610c165760005b836040015160ff168160ff161015610311576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110610f5657610f56611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610f0e565b6000610fa1602d600d84866120c6565b610c0491612120565b6000610fba6009600184866120c6565b610fc39161213e565b60c01c9392505050565b610fd68161134f565b610c6b57604051633c30434160e21b815263ffffffff82166004820152602401610592565b6110068284836110b6565b6110108284610877565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516110449392919061216c565b60405180910390a1505050565b6000546001600160a01b03163314610ba05760405163118cdaa760e01b8152336004820152602401610592565b602081015160ff161580156110985750606081015160ff16155b15610c6b5760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806110d15750602081015160ff16155b156110ff57608081015151156110fa576040516341d50bed60e11b815260040160405180910390fd5b611165565b806020015160ff1681608001515114158061113a57506002611123600160ff6121b2565b61112d91906121cb565b60ff16816020015160ff16115b15611158576040516341d50bed60e11b815260040160405180910390fd5b6111658160800151611545565b604081015160ff90811614806111805750604081015160ff16155b156111d45760a081015151156111a95760405163211089b360e11b815260040160405180910390fd5b606081015160ff16156111cf576040516338682fa960e01b815260040160405180910390fd5b611279565b806040015160ff168160a001515114158061120f575060026111f8600160ff6121b2565b61120291906121cb565b60ff16816040015160ff16115b1561122d5760405163211089b360e11b815260040160405180910390fd5b606081015160ff16158061124e5750806040015160ff16816060015160ff16115b1561126c576040516338682fa960e01b815260040160405180910390fd5b6112798160a00151611545565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361132b93908501920190611673565b5060a08201518051611347916002840191602090910190611673565b505050505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580610c04575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b602083015160009060ff161561147d5760005b846020015160ff168160ff1610156114655761144f85608001518260ff168151811061143b5761143b611d88565b6020026020010151858588600001516115ac565b61145d576000915050610c04565b60010161140d565b50836040015160ff1660000361147d57506001610c04565b606084015160005b856040015160ff168160ff1610156114f7576114c78660a001518260ff16815181106114b3576114b3611d88565b6020026020010151868689600001516115ac565b156114ef57816114d6816121fb565b9250508160ff166000036114ef57600192505050610c04565b600101611485565b50600095945050505050565b600061151260018284866120c6565b61151b91612218565b60f81c9392505050565b6000610e2e6031602d84866120c6565b6000610fa16051603184866120c6565b6000805b8251811015610c1657600083828151811061156657611566611d88565b60200260200101519050826001600160a01b0316816001600160a01b0316116115a25760405163447516e160e01b815260040160405180910390fd5b9150600101611549565b600083815260026020908152604080832085845282528083206001600160a01b0388168452825280832081518083019092525460ff81161580158084526101009092046001600160401b03169383019390935290916116215750826001600160401b031681602001516001600160401b031610155b9695505050505050565b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156116c8579160200282015b828111156116c857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611693565b506116d49291506116d8565b5090565b5b808211156116d457600081556001016116d9565b6000602082840312156116ff57600080fd5b81356001600160e01b031981168114610c0457600080fd5b60008083601f84011261172957600080fd5b5081356001600160401b0381111561174057600080fd5b60208301915083602082850101111561175857600080fd5b9250929050565b80356001600160401b038116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b84356001600160401b038111156117a757600080fd5b6117b387828801611717565b909550935050602085013591506117cc6040860161175f565b905092959194509250565b6000806000604084860312156117ec57600080fd5b83356001600160401b0381111561180257600080fd5b61180e86828701611717565b909790965060209590950135949350505050565b602081016003831061184457634e487b7160e01b600052602160045260246000fd5b91905290565b80356001600160a01b038116811461177657600080fd5b60008083601f84011261187357600080fd5b5081356001600160401b0381111561188a57600080fd5b6020830191508360208260051b850101111561175857600080fd5b6000806000604084860312156118ba57600080fd5b6118c38461184a565b925060208401356001600160401b038111156118de57600080fd5b6118ea86828701611861565b9497909650939450505050565b6000806020838503121561190a57600080fd5b82356001600160401b0381111561192057600080fd5b61192c85828601611861565b90969095509350505050565b803563ffffffff8116811461177657600080fd5b6000806040838503121561195f57600080fd5b6119688361184a565b915061197660208401611938565b90509250929050565b60008151808452602080850194506020840160005b838110156119b95781516001600160a01b031687529582019590820190600101611994565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c06080850152611a1360c085018261197f565b905060a083015184820360a0860152611a2c828261197f565b95945050505050565b602081526000610c0460208301846119c4565b600080600060608486031215611a5d57600080fd5b8335925060208401359150611a746040850161184a565b90509250925092565b600060208284031215611a8f57600080fd5b610c0482611938565b600080600060608486031215611aad57600080fd5b611ab684611938565b9250611ac46020850161184a565b9150611a7460408501611938565b60006020808352835180602085015260005b81811015611b0057858101830151858201604001528201611ae4565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060408486031215611b3657600080fd5b83356001600160401b03811115611b4c57600080fd5b611b5886828701611717565b9094509250611a74905060208501611938565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611ba357611ba3611b6b565b60405290565b803560ff8116811461177657600080fd5b600082601f830112611bcb57600080fd5b813560206001600160401b0380831115611be757611be7611b6b565b8260051b604051601f19603f83011681018181108482111715611c0c57611c0c611b6b565b6040529384526020818701810194908101925087851115611c2c57600080fd5b6020870191505b84821015611c5357611c448261184a565b83529183019190830190611c33565b979650505050505050565b600060c08284031215611c7057600080fd5b611c78611b81565b9050611c838261175f565b8152611c9160208301611ba9565b6020820152611ca260408301611ba9565b6040820152611cb360608301611ba9565b606082015260808201356001600160401b0380821115611cd257600080fd5b611cde85838601611bba565b608084015260a0840135915080821115611cf757600080fd5b50611d0484828501611bba565b60a08301525092915050565b600080600060608486031215611d2557600080fd5b83356001600160401b03811115611d3b57600080fd5b611d4786828701611c5e565b9660208601359650604090950135949350505050565b600060208284031215611d6f57600080fd5b610c048261184a565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112611db457600080fd5b9190910192915050565b6000808335601e19843603018112611dd557600080fd5b8301803591506001600160401b03821115611def57600080fd5b60200191503681900382131561175857600080fd5b600060208284031215611e1657600080fd5b81356001600160401b03811115611e2c57600080fd5b610c2884828501611c5e565b60008235603e19833603018112611db457600080fd5b6000823560be19833603018112611db457600080fd5b600060208284031215611e7657600080fd5b610c0482611ba9565b600060208284031215611e9157600080fd5b610c048261175f565b60006102ff3683611c5e565b6000808335601e19843603018112611ebd57600080fd5b83016020810192503590506001600160401b03811115611edc57600080fd5b8060051b360382131561175857600080fd5b8183526000602080850194508260005b858110156119b9576001600160a01b03611f178361184a565b1687529582019590820190600101611efe565b60208082528181018390526000906040808401600586901b8501820187855b8881101561205e57603f19808985030185528235603e198c3603018112611f6f57600080fd5b8b0163ffffffff611f7f82611938565b1685528781013560be19823603018112611f9857600080fd5b858901889052016001600160401b03611fb08261175f565b1687860152611fc0888201611ba9565b606060ff80831682890152611fd68a8501611ba9565b92506080818416818a0152611fec838601611ba9565b935060a09250818416838a015261200581860186611ea6565b60c08b81015294509150612020905061010089018483611eee565b92505061202f81840184611ea6565b93509050838783030160e0880152612048828483611eee565b978a019796505050928701925050600101611f49565b509098975050505050505050565b6001600160a01b03861681526080602082018190528101849052838560a0830137600060a08583010152600060a0601f19601f87011683010190506001600160401b03841660408301528260608301529695505050505050565b600080858511156120d657600080fd5b838611156120e357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156121185780818660040360031b1b83161692505b505092915050565b803560208310156102ff57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156121185760089490940360031b84901b1690921692915050565b6001600160a01b038416815263ffffffff83166020820152606060408201819052600090611a2c908301846119c4565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ff576102ff61219c565b600060ff8316806121ec57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b600060ff82168061220e5761220e61219c565b6000190192915050565b6001600160f81b031981358181169160018510156121185760019490940360031b84901b169092169291505056fea26469706673582212209a9d42e4d24ba1f5577ac32292c65d2ac9fe71fc72829f0ae54477497a89995e64736f6c6343000816003360806040523480156200001157600080fd5b5060405162002c7038038062002c7083398101604081905262000034916200046f565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b038581169190911790915584908490612ee090859085908216156200008f576200008d60008362000226565b505b60005b8551811015620000f457620000ea7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000d657620000d662000523565b60200260200101516200022660201b60201c565b5060010162000092565b5060005b815181101562000146576200013c7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000d657620000d662000523565b50600101620000f8565b505060016004908155600680546001600160a01b0319166001600160a01b038d169081179091556040805163416ecebf60e01b8152905191965063416ecebf95508083019450602093509091908290030181865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d3919062000539565b6006805463ffffffff92909216600160a01b0263ffffffff60a01b199092169190911790555050600780546001600160a01b039094166001600160a01b03199094169390931790925550620005a5915050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156200027957506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b15620002c65760018054601590620002a190600160a81b90046001600160401b031662000568565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b620002d28383620002de565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1662000383576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556200033a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620002d8565b506000620002d8565b80516001600160a01b0381168114620003a457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003d157600080fd5b815160206001600160401b0380831115620003f057620003f0620003a9565b8260051b604051601f19603f83011681018181108482111715620004185762000418620003a9565b60405293845260208187018101949081019250878511156200043957600080fd5b6020870191505b84821015620004645762000454826200038c565b8352918301919083019062000440565b979650505050505050565b60008060008060008060c087890312156200048957600080fd5b62000494876200038c565b9550620004a4602088016200038c565b60408801519095506001600160401b0380821115620004c257600080fd5b620004d08a838b01620003bf565b9550620004e060608a016200038c565b9450620004f060808a016200038c565b935060a08901519150808211156200050757600080fd5b506200051689828a01620003bf565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156200054c57600080fd5b815163ffffffff811681146200056157600080fd5b9392505050565b60006001600160401b038281166002600160401b031981016200059b57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6126bb80620005b56000396000f3fe6080604052600436106101e25760003560e01c8063709eb66411610102578063a217fddf11610095578063c7b2370b11610064578063c7b2370b14610649578063cd88b90314610669578063d2ae210414610689578063d547741f146106c857600080fd5b8063a217fddf146105cf578063c2803b2c146105e4578063c358de0a14610604578063c416aa511461062457600080fd5b8063741bef1a116100d1578063741bef1a146104cd5780638624ba07146104ed57806391d14854146105005780639e9449651461052057600080fd5b8063709eb66414610434578063717e8a4214610454578063724e78da14610474578063726075371461049457600080fd5b80632f2ff15d1161017a5780633d85ac33116101495780633d85ac33146103b1578063475b6d9e146103d15780635c975abb146103e45780635e280f11146103fc57600080fd5b80632f2ff15d1461033e5780633146646a1461035e57806336568abe1461037e5780633927c0751461039e57600080fd5b806316c38b3c116101b657806316c38b3c14610293578063248a9ca3146102b357806326e67a37146102f15780632de113761461031e57600080fd5b8062bf2e80146101e757806301e336671461022157806301ffc9a7146102435780631095b6d714610273575b600080fd5b3480156101f357600080fd5b5060015461020990600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561022d57600080fd5b5061024161023c366004611a9c565b6106e8565b005b34801561024f57600080fd5b5061026361025e366004611ad8565b610711565b6040519015158152602001610218565b34801561027f57600080fd5b5061024161028e366004611a9c565b610748565b34801561029f57600080fd5b506102416102ae366004611b10565b61085b565b3480156102bf57600080fd5b506102e36102ce366004611b2d565b60009081526020819052604090206001015490565b604051908152602001610218565b3480156102fd57600080fd5b5061031161030c366004611b5a565b610880565b6040516102189190611b75565b34801561032a57600080fd5b50610263610339366004611bbc565b610907565b34801561034a57600080fd5b50610241610359366004611bd7565b61099e565b34801561036a57600080fd5b50610241610379366004611c4b565b6109c3565b34801561038a57600080fd5b50610241610399366004611bd7565b610a53565b6102416103ac366004611cf2565b610a6c565b3480156103bd57600080fd5b506102416103cc366004611e33565b610b27565b6102416103df366004611f4e565b610c9e565b3480156103f057600080fd5b5060015460ff16610263565b34801561040857600080fd5b5060065461041c906001600160a01b031681565b6040516001600160a01b039091168152602001610218565b34801561044057600080fd5b506102e361044f366004611fcc565b610ce0565b34801561046057600080fd5b506102e361046f366004611fcc565b610de7565b34801561048057600080fd5b5061024161048f366004611bbc565b610f13565b3480156104a057600080fd5b506006546104b890600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610218565b3480156104d957600080fd5b5060025461041c906001600160a01b031681565b6102416104fb36600461203a565b610f79565b34801561050c57600080fd5b5061026361051b366004611bd7565b611084565b34801561052c57600080fd5b5061058c61053b366004611b5a565b600560205260009081526040902080546001909101546001600160401b038083169261ffff600160401b820416926001600160801b03600160501b90920482169291811691600160801b9091041685565b604080516001600160401b03968716815261ffff90951660208601526001600160801b03938416908501529116606083015291909116608082015260a001610218565b3480156105db57600080fd5b506102e3600081565b3480156105f057600080fd5b5060075461041c906001600160a01b031681565b34801561061057600080fd5b5061024161061f3660046120b2565b6110ad565b34801561063057600080fd5b5060015461041c9061010090046001600160a01b031681565b34801561065557600080fd5b50610241610664366004611bbc565b611115565b34801561067557600080fd5b506102416106843660046120cd565b611183565b34801561069557600080fd5b506001546106b090600160a81b90046001600160401b031681565b6040516001600160401b039091168152602001610218565b3480156106d457600080fd5b506102416106e3366004611bd7565b6111bb565b600080516020612666833981519152610700816111e0565b61070b8484846111ed565b50505050565b60006001600160e01b03198216637965db0b60e01b148061074257506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020612666833981519152610760816111e0565b61078a7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de85611084565b6107a757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610866816111e0565b811561087857610874611215565b5050565b610874611269565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156108fb57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108cc5790505b50505050509050919050565b60006109337f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611084565b1561094057506000919050565b600154600160a81b90046001600160401b0316158061098457506109847f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83611084565b1561099157506001919050565b506000919050565b919050565b6000828152602081905260409020600101546109b9816111e0565b61070b83836112a2565b6000805160206126668339815191526109db816111e0565b6109e3611338565b600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610a179087908790879060040161217b565b600060405180830381600087803b158015610a3157600080fd5b505af1158015610a45573d6000803e3d6000fd5b5050505061070b6001600455565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020612666833981519152610a84816111e0565b610a8c611338565b610aac88610a9a8686611362565b610aa48787611385565b8a8a8a61139e565b50600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610ae19087908790879060040161217b565b600060405180830381600087803b158015610afb57600080fd5b505af1158015610b0f573d6000803e3d6000fd5b50505050610b1d6001600455565b5050505050505050565b600080516020612666833981519152610b3f816111e0565b60005b8251811015610c62576000838281518110610b5f57610b5f61219f565b6020908102919091018101516040805160a08082018352838501516001600160401b03908116835260608086015161ffff9081168589019081526080808901516001600160801b03908116888a01908152968a01518116948801948552888a01518616918801918252985163ffffffff1660009081526005909a529690982094518554985194518816600160501b026fffffffffffffffffffffffffffffffff60501b1995909216600160401b0269ffffffffffffffffffff1990991690841617979097179290921695909517825551600191820180549351909516600160801b026001600160c01b031990931693169290921717909155919091019050610b42565b507fb99f6de5e22c60c178b03bfacf2daeb4b6089f5b37e0fe2c48a5d5141191fc5382604051610c9291906121b5565b60405180910390a15050565b600080516020612666833981519152610cb6816111e0565b610cbe611338565b610ccc87878787878761139e565b50610cd76001600455565b50505050505050565b600084610cec81610907565b610d0957604051634ab5ebcd60e01b815260040160405180910390fd5b610d11611505565b6040805160a0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290528a831684860152606084018a905260015461ffff600160e81b8204166080860152600092835260059091529084902093516321a7700b60e11b815292936101009091049091169163434ee01691610d9a918591908a908a90600401612252565b602060405180830381865afa158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb9190612306565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de610e13816111e0565b85610e1d81610907565b610e3a57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160a0810182526002546001600160a01b03908116825263ffffffff8b1660208084018290528b831684860152606084018b905260015461ffff600160e81b820416608086015260009283526005909152908490209351632b377bb160e11b815292936101009091049091169163566ef76291610ec3918591908b908b90600401612252565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f069190612306565b9998505050505050505050565b600080516020612666833981519152610f2b816111e0565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d90602001610c92565b600080516020612666833981519152610f91816111e0565b610f99611338565b600654600090610fc7906020850190600160a01b900463ffffffff16610fbf8287611bbc565b89898961139e565b90506000610fd58234612335565b6006549091506001600160a01b0316630c0c389e60e08601358360208801610ffd818a611bbc565b60808a013561100f60a08c018c612348565b61101c60c08e018e612348565b6040518a63ffffffff1660e01b815260040161103e97969594939291906123c7565b6000604051808303818589803b15801561105757600080fd5b5088f115801561106b573d6000803e3d6000fd5b505050505050505061107d6001600455565b5050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206126668339815191526110c5816111e0565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610c92565b60008051602061266683398151915261112d816111e0565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610c92565b60008051602061266683398151915261119b816111e0565b63ffffffff8416600090815260036020526040902061107d9084846119c7565b6000828152602081905260409020600101546111d6816111e0565b61070b838361152b565b6111ea81336115b5565b50565b6001600160a01b03831661120a5761120582826115f3565b505050565b6112058383836116a0565b61121d611505565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b6112716116db565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361124c565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156112da57506112d88383611084565b155b1561132457600180546015906112ff90600160a81b90046001600160401b031661241d565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836116fe565b5060019392505050565b60026004540361135b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600455565b60006113726031602d8486612443565b61137b9161246d565b60e01c9392505050565b60006113976113948484611790565b90565b9392505050565b600080836001600160401b038111156113b9576113b9611d85565b6040519080825280602002602001820160405280156113e2578160200160208202803683370190505b50905060005b848110156114b85760008686838181106114045761140461219f565b90506040020180360381019061141a919061249d565b9050600081600001516001600160a01b031682602001518790604051600060405180830381858888f193505050503d8060008114611474576040519150601f19603f3d011682016040523d82523d6000602084013e611479565b606091505b50509050808484815181106114905761149061219f565b9115156020928302919091018201528201516114ac90866124f3565b945050506001016113e8565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c34688888888888866040516114f296959493929190612544565b60405180910390a1509695505050505050565b60015460ff16156115295760405163d93c066560e01b815260040160405180910390fd5b565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8314801561156157506115618383611084565b156115ab576001805460159061158690600160a81b90046001600160401b03166125d8565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836117a9565b6115bf8282611084565b6108745760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044015b60405180910390fd5b6001600160a01b03821661161a576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611667576040519150601f19603f3d011682016040523d82523d6000602084013e61166c565b606091505b505090508061120557604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016115ea565b6001600160a01b0382166116c7576040516306b7a93160e41b815260040160405180910390fd5b6112056001600160a01b0384168383611814565b60015460ff1661152957604051638dfc202b60e01b815260040160405180910390fd5b600061170a8383611084565b611788576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117403390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610742565b506000610742565b60006117a0605160318486612443565b611397916125fb565b60006117b58383611084565b15611788576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610742565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b17905261120591859190600090611872908416836118c0565b905080516000141580156118975750808060200190518101906118959190612619565b155b1561120557604051635274afe760e01b81526001600160a01b03841660048201526024016115ea565b60606113978383600084600080856001600160a01b031684866040516118e69190612636565b60006040518083038185875af1925050503d8060008114611923576040519150601f19603f3d011682016040523d82523d6000602084013e611928565b606091505b5091509150611938868383611942565b9695505050505050565b606082611957576119528261199e565b611397565b815115801561196e57506001600160a01b0384163b155b1561199757604051639996b31560e01b81526001600160a01b03851660048201526024016115ea565b5080611397565b8051156119ae5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f01602090048101928215611a605791602002820160005b83821115611a3157833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026119f0565b8015611a5e5782816101000a81549060ff0219169055600101602081600001049283019260010302611a31565b505b50611a6c929150611a70565b5090565b5b80821115611a6c5760008155600101611a71565b80356001600160a01b038116811461099957600080fd5b600080600060608486031215611ab157600080fd5b611aba84611a85565b9250611ac860208501611a85565b9150604084013590509250925092565b600060208284031215611aea57600080fd5b81356001600160e01b03198116811461139757600080fd5b80151581146111ea57600080fd5b600060208284031215611b2257600080fd5b813561139781611b02565b600060208284031215611b3f57600080fd5b5035919050565b803563ffffffff8116811461099957600080fd5b600060208284031215611b6c57600080fd5b61139782611b46565b6020808252825182820181905260009190848201906040850190845b81811015611bb057835160ff1683529284019291840191600101611b91565b50909695505050505050565b600060208284031215611bce57600080fd5b61139782611a85565b60008060408385031215611bea57600080fd5b82359150611bfa60208401611a85565b90509250929050565b60008083601f840112611c1557600080fd5b5081356001600160401b03811115611c2c57600080fd5b602083019150836020828501011115611c4457600080fd5b9250929050565b600080600060408486031215611c6057600080fd5b83356001600160401b03811115611c7657600080fd5b611c8286828701611c03565b909790965060209590950135949350505050565b600060608284031215611ca857600080fd5b50919050565b60008083601f840112611cc057600080fd5b5081356001600160401b03811115611cd757600080fd5b6020830191508360208260061b8501011115611c4457600080fd5b600080600080600080600060e0888a031215611d0d57600080fd5b611d178989611c96565b965060608801356001600160401b0380821115611d3357600080fd5b611d3f8b838c01611cae565b909850965060808a0135955060a08a0135915080821115611d5f57600080fd5b50611d6c8a828b01611c03565b989b979a5095989497959660c090950135949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611dbd57611dbd611d85565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611deb57611deb611d85565b604052919050565b80356001600160401b038116811461099957600080fd5b803561ffff8116811461099957600080fd5b80356001600160801b038116811461099957600080fd5b60006020808385031215611e4657600080fd5b82356001600160401b0380821115611e5d57600080fd5b818501915085601f830112611e7157600080fd5b813581811115611e8357611e83611d85565b611e91848260051b01611dc3565b818152848101925060c0918202840185019188831115611eb057600080fd5b938501935b82851015611f425780858a031215611ecd5760008081fd5b611ed5611d9b565b611ede86611b46565b8152611eeb878701611df3565b878201526040611efc818801611df3565b908201526060611f0d878201611e0a565b908201526080611f1e878201611e1c565b9082015260a0611f2f878201611e1c565b9082015284529384019392850192611eb5565b50979650505050505050565b60008060008060008060e08789031215611f6757600080fd5b611f718888611c96565b9550611f7f60608801611b46565b9450611f8d60808801611a85565b935060a08701356001600160401b03811115611fa857600080fd5b611fb489828a01611cae565b979a969950949794969560c090950135949350505050565b600080600080600060808688031215611fe457600080fd5b611fed86611b46565b9450611ffb60208701611a85565b93506040860135925060608601356001600160401b0381111561201d57600080fd5b61202988828901611c03565b969995985093965092949392505050565b6000806000806060858703121561205057600080fd5b84356001600160401b038082111561206757600080fd5b61207388838901611cae565b909650945060208701359350604087013591508082111561209357600080fd5b50850161010081880312156120a757600080fd5b939692955090935050565b6000602082840312156120c457600080fd5b61139782611e0a565b6000806000604084860312156120e257600080fd5b6120eb84611b46565b925060208401356001600160401b038082111561210757600080fd5b818601915086601f83011261211b57600080fd5b81358181111561212a57600080fd5b8760208260051b850101111561213f57600080fd5b6020830194508093505050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061218f604083018587612152565b9050826020830152949350505050565b634e487b7160e01b600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015612245578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016121d2565b5091979650505050505050565b84516001600160a01b03908116825260208087015163ffffffff1690830152604080870151909116818301526060808701519083015260808087015161ffff9081168285015286546001600160401b0380821660a08701529381901c90911660c085015260501c6001600160801b0390811660e08501526001870154908116610100850152901c1661012082015261016061014082018190526000906122fb8382018587612152565b979650505050505050565b60006020828403121561231857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107425761074261231f565b6000808335601e1984360301811261235f57600080fd5b8301803591506001600160401b0382111561237957600080fd5b602001915036819003821315611c4457600080fd5b63ffffffff61239c82611b46565b168252602081013560208301526001600160401b036123bd60408301611df3565b1660408301525050565b6123d1818961238e565b60018060a01b038716606082015285608082015260e060a082015260006123fc60e083018688612152565b82810360c084015261240f818587612152565b9a9950505050505050505050565b60006001600160401b038083168181036124395761243961231f565b6001019392505050565b6000808585111561245357600080fd5b8386111561246057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156124955780818660040360031b1b83161692505b505092915050565b6000604082840312156124af57600080fd5b604051604081018181106001600160401b03821117156124d1576124d1611d85565b6040526124dd83611a85565b8152602083013560208201528091505092915050565b808201808211156107425761074261231f565b60008151808452602080850194506020840160005b8381101561253957815115158752958201959082019060010161251b565b509495945050505050565b600060e08201612554838a61238e565b63ffffffff881660608401526001600160a01b03878116608085015260e060a0850152908590528590610100840160005b878110156125b6578261259785611a85565b1682526020848101359083015260409384019390910190600101612585565b5084810360c08601526125c98187612506565b9b9a5050505050505050505050565b60006001600160401b038216806125f1576125f161231f565b6000190192915050565b8035602083101561074257600019602084900360031b1b1692915050565b60006020828403121561262b57600080fd5b815161139781611b02565b6000825160005b81811015612657576020818601810151858301520161263d565b50600092019182525091905056fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220cab19ebaa8e6602c84c9f9f739a45b5571c5513ee60da41f638da9127243412364736f6c6343000816003360a060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610052565b50670de0b6b3a76400006080526100a2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60805161119a6100bd60003960006107cb015261119a6000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063434ee01614610087578063566ef762146100ba578063715018a6146100da5780638da5cb5b146100ef578063f2fde38b1461011757600080fd5b3661006057005b600080fd5b34801561007157600080fd5b50610085610080366004610dc9565b610137565b005b34801561009357600080fd5b506100a76100a2366004610e1d565b61014f565b6040519081526020015b60405180910390f35b3480156100c657600080fd5b506100a76100d5366004610e1d565b610328565b3480156100e657600080fd5b506100856103fb565b3480156100fb57600080fd5b506000546040516001600160a01b0390911681526020016100b1565b34801561012357600080fd5b50610085610132366004610eaf565b61040f565b61013f61044d565b61014a83838361047a565b505050565b600061015e6020850185610eca565b67ffffffffffffffff166000036101a65761017f6040860160208701610ef4565b60405163c3baa0b760e01b815263ffffffff90911660048201526024015b60405180910390fd5b6000806101f96101c56101bf60408a0160208b01610ef4565b50600090565b6101d26020890189610eca565b6101e260a08a0160808b01610eca565b6101f260808b0160608c01610f2f565b898961049d565b9092509050600080808061021060208c018c610eaf565b6001600160a01b03166388a4124c61022e60408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa158015610281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a59190610f4c565b929650909450925090506102ef846102c360408d0160208e01610fa1565b8d60800160208101906102d69190610fa1565b8d60400160208101906102e99190610f2f565b8561075b565b965061030f8684848e608001602081019061030a9190610fa1565b610832565b6103199088610fdb565b9b9a5050505050505050505050565b60006103376020850185610eca565b67ffffffffffffffff166000036103585761017f6040860160208701610ef4565b6000806103716101c56101bf60408a0160208b01610ef4565b9092509050600080808061038860208c018c610eaf565b6001600160a01b031663c1723a1d6103a660408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af1158015610281573d6000803e3d6000fd5b61040361044d565b61040d600061088a565b565b61041761044d565b6001600160a01b03811661044157604051631e4fbdf760e01b81526000600482015260240161019d565b61044a8161088a565b50565b6000546001600160a01b0316331461040d5760405163118cdaa760e01b815233600482015260240161019d565b6001600160a01b0383166104925761014a82826108da565b61014a838383610987565b6000808281036104bf5760405162575ea160e01b815260040160405180910390fd5b5067ffffffffffffffff861660008089815b868410156106a15760003681806104e98c8c8a6109c2565b9a509195509350915087905060001960ff85160161057c5760008061050e8585610a18565b9150915087801561052857506000816001600160801b0316115b1561054b5760405163052e551560e01b815260ff8716600482015260240161019d565b61055e6001600160801b0382168d610fdb565b9b506105736001600160801b03831688610fdb565b96505050610698565b60011960ff8516016105b25760006105948484610a7d565b5090506105aa6001600160801b0382168c610fdb565b9a5050610698565b60021960ff8516016106655785156105e25760405163052e551560e01b815260ff8516600482015260240161019d565b6000806105ef8585610abb565b9250925050816001600160801b031660000361061e5760405163a169d0e160e01b815260040160405180910390fd5b6106316001600160801b0382168d610fdb565b9b508f67ffffffffffffffff16826106499190610fee565b61065c906001600160801b03168c610fdb565b9a505050610698565b60031960ff85160161067a5760019650610698565b60405163052e551560e01b815260ff8516600482015260240161019d565b505050506104d1565b8387146106c457604051634c83bb7560e11b81526004810185905260240161019d565b886001600160801b03168611156106ff576040516242670160e11b8152600481018790526001600160801b038a16602482015260440161019d565b8060000361072057604051630e5eb8f360e41b815260040160405180910390fd5b61072a8186610fdb565b9450821561074c57606461073f866066611015565b610749919061102c565b94505b50505050965096945050505050565b60008061ffff86161561076e5785610770565b845b9050600061271061078561ffff84168a611015565b61078f919061102c565b90506001600160801b03841615806107ae57506001600160801b038516155b156107bc5791506108299050565b600088856001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000886001600160801b03166107fe9190611015565b610808919061102c565b6108129190610fdb565b90508181116108215781610823565b805b93505050505b95945050505050565b60008415610882576127108261ffff16846001600160801b0316866001600160801b0316886108619190611015565b61086b919061102c565b6108759190611015565b61087f919061102c565b90505b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216610901576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461094e576040519150601f19603f3d011682016040523d82523d6000602084013e610953565b606091505b505090508061014a57604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161019d565b6001600160a01b0382166109ae576040516306b7a93160e41b815260040160405180910390fd5b61014a6001600160a01b0384168383610b2f565b6000368160018401816109d6888884610b81565b6002929092019190506109ea888884610baa565b94506001820161ffff82168301610a0381838b8d61104e565b979b909a50969850505061ffff160193505050565b60008060108314801590610a2d575060208314155b15610a4b57604051634796aee160e01b815260040160405180910390fd5b610a5784846000610bcf565b915060208314610a68576000610a74565b610a7484846010610bcf565b90509250929050565b60008060308314610aa1576040516361d0c2c760e11b815260040160405180910390fd5b610aad84846000610bcf565b9150610a7484846010610bf6565b6000808060128414801590610ad1575060228414155b15610aef57604051638b4aa70b60e01b815260040160405180910390fd5b610afb85856000610b81565b9250610b0985856002610bcf565b915060228414610b1a576000610b26565b610b2685856012610bcf565b90509250925092565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261014a908490610c11565b600060028201610b938184868861104e565b610b9c91611078565b60f01c9150505b9392505050565b6000838383818110610bbe57610bbe6110a8565b919091013560f81c95945050505050565b600060108201610be18184868861104e565b610bea916110be565b60801c95945050505050565b600060208201610c088184868861104e565b610829916110f5565b6000610c266001600160a01b03841683610c74565b90508051600014158015610c4b575080806020019051810190610c499190611113565b155b1561014a57604051635274afe760e01b81526001600160a01b038416600482015260240161019d565b6060610c8283836000610c8b565b90505b92915050565b606081471015610cb05760405163cd78605960e01b815230600482015260240161019d565b600080856001600160a01b03168486604051610ccc9190611135565b60006040518083038185875af1925050503d8060008114610d09576040519150601f19603f3d011682016040523d82523d6000602084013e610d0e565b606091505b5091509150610d1e868383610d28565b9695505050505050565b606082610d3d57610d3882610d84565b610ba3565b8151158015610d5457506001600160a01b0384163b155b15610d7d57604051639996b31560e01b81526001600160a01b038516600482015260240161019d565b5080610ba3565b805115610d945780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610dc457600080fd5b919050565b600080600060608486031215610dde57600080fd5b610de784610dad565b9250610df560208501610dad565b9150604084013590509250925092565b600060a08284031215610e1757600080fd5b50919050565b6000806000806101608587031215610e3457600080fd5b610e3e8686610e05565b9350610e4d8660a08701610e05565b925061014085013567ffffffffffffffff80821115610e6b57600080fd5b818701915087601f830112610e7f57600080fd5b813581811115610e8e57600080fd5b886020828501011115610ea057600080fd5b95989497505060200194505050565b600060208284031215610ec157600080fd5b610c8282610dad565b600060208284031215610edc57600080fd5b813567ffffffffffffffff81168114610ba357600080fd5b600060208284031215610f0657600080fd5b813563ffffffff81168114610ba357600080fd5b6001600160801b038116811461044a57600080fd5b600060208284031215610f4157600080fd5b8135610ba381610f1a565b60008060008060808587031215610f6257600080fd5b845193506020850151610f7481610f1a565b6040860151909350610f8581610f1a565b6060860151909250610f9681610f1a565b939692955090935050565b600060208284031215610fb357600080fd5b813561ffff81168114610ba357600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610c8557610c85610fc5565b6001600160801b0381811683821601908082111561100e5761100e610fc5565b5092915050565b8082028115828204841417610c8557610c85610fc5565b60008261104957634e487b7160e01b600052601260045260246000fd5b500490565b6000808585111561105e57600080fd5b8386111561106b57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156110a05780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b6fffffffffffffffffffffffffffffffff1981358181169160108510156110a05760109490940360031b84901b1690921692915050565b80356020831015610c8557600019602084900360031b1b1692915050565b60006020828403121561112557600080fd5b81518015158114610ba357600080fd5b6000825160005b81811015611156576020818601810151858301520161113c565b50600092019182525091905056fea26469706673582212203780ea40a0f93eab5083efacc1d316a7c83f03997bd6b3821d356fbf88b94a5164736f6c6343000816003360a06040523480156200001157600080fd5b50604051620038e7380380620038e78339810160408190526200003491620004de565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b03861617905582828686612ee060008660005b8551811015620000d657620000cc7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000b857620000b8620005b1565b60200260200101516200027d60201b60201c565b5060010162000074565b5060005b815181101562000128576200011e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000b857620000b8620005b1565b50600101620000da565b505050505050806001600160401b03166000036200015957604051635f86e17760e01b815260040160405180910390fd5b806001600160401b0316825110156200019f5781516040516378e2c15760e11b81526001600160401b039182166004820152908216602482015260440160405180910390fd5b6000805b835181101562000231576000848281518110620001c457620001c4620005b1565b60200260200101519050826001600160a01b0316816001600160a01b03161162000201576040516305fa937f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600460205260409020805460ff1916600190811790915590925001620001a3565b50509051600580546001600160401b0393841668010000000000000000026001600160801b0319909116939092169290921717905550505063ffffffff90921660805250620006049050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83148015620002d057506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b156200031d5760018054601590620002f890600160a81b90046001600160401b0316620005c7565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b62000329838362000335565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16620003da576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620003913390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200032f565b5060006200032f565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200041157600080fd5b919050565b600082601f8301126200042857600080fd5b815160206001600160401b0380831115620004475762000447620003e3565b8260051b604051601f19603f830116810181811084821117156200046f576200046f620003e3565b60405293845260208187018101949081019250878511156200049057600080fd5b6020870191505b84821015620004bb57620004ab82620003f9565b8352918301919083019062000497565b979650505050505050565b80516001600160401b03811681146200041157600080fd5b60008060008060008060c08789031215620004f857600080fd5b865163ffffffff811681146200050d57600080fd5b60208801519096506001600160401b03808211156200052b57600080fd5b620005398a838b0162000416565b96506200054960408a01620003f9565b955060608901519150808211156200056057600080fd5b6200056e8a838b0162000416565b94506200057e60808a01620004c6565b935060a08901519150808211156200059557600080fd5b50620005a489828a0162000416565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b03198101620005fa57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6080516132b96200062e6000396000818161074c015281816112280152611b1001526132b96000f3fe60806040526004361061022f5760003560e01c80638585c9451161012e578063c7a823e0116100ab578063d547741f1161006f578063d547741f146107aa578063dafe0ccc146107ca578063f010cb23146107ea578063f3b4ebd01461080a578063fd62e7501461082a57600080fd5b8063c7a823e0146106cc578063c7b2370b146106fa578063cd88b9031461071a578063cf34c7681461073a578063d2ae21041461078357600080fd5b8063aef18bf7116100f2578063aef18bf714610617578063b143044b14610647578063c358de0a14610667578063c416aa5114610687578063c5e193cd146106ac57600080fd5b80638585c9451461052a57806391d148541461054a57806395d376d71461056a5780639e9449651461057d578063a217fddf1461060257600080fd5b80632f2ff15d116101bc5780635553fb8e116101805780635553fb8e1461046a5780635c975abb1461048a578063724e78da146104a2578063736c0d5b146104c2578063741bef1a146104f257600080fd5b80632f2ff15d146103ca57806330bb3aac146103ea57806331cb61051461040a57806336568abe1461042a57806352d3b8711461044a57600080fd5b806316c38b3c1161020357806316c38b3c146102e05780631703a01814610300578063248a9ca31461033f57806326e67a371461037d5780632de11376146103aa57600080fd5b8062bf2e801461023457806301e336671461026e57806301ffc9a7146102905780631095b6d7146102c0575b600080fd5b34801561024057600080fd5b5060015461025690600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561027a57600080fd5b5061028e610289366004612695565b61084a565b005b34801561029c57600080fd5b506102b06102ab3660046126d6565b610873565b6040519015158152602001610265565b3480156102cc57600080fd5b5061028e6102db366004612695565b6108aa565b3480156102ec57600080fd5b5061028e6102fb36600461270e565b6109ac565b34801561030c57600080fd5b5060055461032790600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610265565b34801561034b57600080fd5b5061036f61035a36600461272b565b60009081526020819052604090206001015490565b604051908152602001610265565b34801561038957600080fd5b5061039d610398366004612758565b6109d1565b6040516102659190612773565b3480156103b657600080fd5b506102b06103c53660046127ba565b610a58565b3480156103d657600080fd5b5061028e6103e53660046127d7565b610add565b3480156103f657600080fd5b5061036f610405366004612866565b610bb2565b34801561041657600080fd5b5061028e6104253660046128dd565b610cca565b34801561043657600080fd5b5061028e6104453660046127d7565b610cf4565b34801561045657600080fd5b5061028e61046536600461290b565b610d0d565b34801561047657600080fd5b5061036f610485366004612991565b610e86565b34801561049657600080fd5b5060015460ff166102b0565b3480156104ae57600080fd5b5061028e6104bd3660046127ba565b610f9e565b3480156104ce57600080fd5b506102b06104dd3660046127ba565b60046020526000908152604090205460ff1681565b3480156104fe57600080fd5b50600254610512906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b34801561053657600080fd5b5061028e6105453660046129e7565b61100c565b34801561055657600080fd5b506102b06105653660046127d7565b611038565b61036f610578366004612a1a565b611061565b34801561058957600080fd5b506105d1610598366004612758565b6006602052600090815260409020546001600160401b03811690600160401b810461ffff1690600160501b90046001600160801b031683565b604080516001600160401b03909416845261ffff90921660208401526001600160801b031690820152606001610265565b34801561060e57600080fd5b5061036f600081565b34801561062357600080fd5b506102b061063236600461272b565b60076020526000908152604090205460ff1681565b34801561065357600080fd5b5061028e610662366004612ac6565b6111d7565b34801561067357600080fd5b5061028e610682366004612b07565b61148c565b34801561069357600080fd5b506001546105129061010090046001600160a01b031681565b3480156106b857600080fd5b5061036f6106c7366004612991565b6114f4565b3480156106d857600080fd5b506106ec6106e7366004612b22565b611661565b604051610265929190612b76565b34801561070657600080fd5b5061028e6107153660046127ba565b61183f565b34801561072657600080fd5b5061028e610735366004612baa565b6118ad565b34801561074657600080fd5b5061076e7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610265565b34801561078f57600080fd5b5060015461032790600160a81b90046001600160401b031681565b3480156107b657600080fd5b5061028e6107c53660046127d7565b6118ec565b3480156107d657600080fd5b5061028e6107e5366004612695565b6119a0565b3480156107f657600080fd5b5061036f610805366004612bef565b611a55565b34801561081657600080fd5b5061028e610825366004612c59565b611a91565b34801561083657600080fd5b50600554610327906001600160401b031681565b60008051602061324483398151915261086281611c3f565b61086d848484611c49565b50505050565b60006001600160e01b03198216637965db0b60e01b14806108a457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000805160206132448339815191526108c281611c3f565b6108da60008051602061322483398151915285611038565b6108f757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561094157600080fd5b505af1158015610955573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b60006109b781611c3f565b81156109c9576109c5611c71565b5050565b6109c5611cc5565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610a4c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610a1d5790505b50505050509050919050565b6000610a847f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611038565b15610a9157506000919050565b600154600160a81b90046001600160401b03161580610ac35750610ac360008051602061326483398151915283611038565b15610ad057506001919050565b506000919050565b919050565b81600080516020613264833981519152811480610b1957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610b31575060008051602061322483398151915281145b15610b5b57303314610b5657604051637d5d391d60e11b815260040160405180910390fd5b610ba8565b6000805160206132448339815191528103610b8757610b56600080516020613244833981519152611c3f565b604051634a7ee1b960e11b8152600481018290526024015b60405180910390fd5b61086d8383611cfe565b600083610bbe81610a58565b610bdb57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290526001600160401b03808c16858701528a84166060860152600554600160401b900416608085015260015461ffff600160e81b82041660a086015260009283526006909152908490209351637bfa20a960e01b8152929361010090910490911691637bfa20a991610c7d918591908a908a90600401612d1d565b602060405180830381865afa158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbe9190612d77565b98975050505050505050565b303314610cea57604051637d5d391d60e11b815260040160405180910390fd5b6109c58282611d82565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020613244833981519152610d2581611c3f565b60005b82811015610e475736848483818110610d4357610d43612d90565b90506080020190506040518060600160405280826020016020810190610d6991906129e7565b6001600160401b03168152602001610d876060840160408501612b07565b61ffff168152602001610da06080840160608501612dbd565b6001600160801b0316905260066000610dbc6020850185612758565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516001600160801b0316600160501b026fffffffffffffffffffffffffffffffff60501b1961ffff909516600160401b0269ffffffffffffffffffff199094166001600160401b0390931692909217929092179290921691909117905550600101610d28565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051610e79929190612dd8565b60405180910390a1505050565b600081610e9281610a58565b610eaf57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808a1660208085018290526001600160401b03808b16868801528985166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451637bfa20a960e01b8152939461010090920490921692637bfa20a992610f52928692600401612ebc565b602060405180830381865afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190612d77565b979650505050505050565b600080516020613244833981519152610fb681611c3f565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b30331461102c57604051637d5d391d60e11b815260040160405180910390fd5b61103581611edd565b50565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600060008051602061322483398151915261107b81611c3f565b61108b60a08601608087016127ba565b61109481610a58565b6110b157604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c081019091526002546001600160a01b031681526000906020808201906110df908a018a612758565b63ffffffff1681526020016110fa60808a0160608b016129e7565b6001600160401b0316815260200161111860a08a0160808b016127ba565b6001600160a01b039081168252600554600160401b90046001600160401b0316602080840191909152600154600160e81b810461ffff16604090940193909352929350610100909104169063df2b057e90839060069060009061117d908d018d612758565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b81526004016111b89493929190612d1d565b6020604051808303816000875af1158015610f6f573d6000803e3d6000fd5b6000805160206132448339815191526111ef81611c3f565b60005b8281101561086d573684848381811061120d5761120d612d90565b905060200281019061121f9190612f15565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112556020830183612758565b63ffffffff16146112665750611484565b428160600135116112775750611484565b60006112b06112896020840184612758565b61129960408501602086016127ba565b6112a66040860186612f35565b8660600135611a55565b905060006112c5826106e76080860186612f35565b50905080611308576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611484565b600061132861131a6040860186612f35565b61132391612f7b565b611fab565b905080156113a35760008381526007602052604090205460ff1615611389577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611378929190612ff0565b60405180910390a150505050611484565b6000838152600760205260409020805460ff191660011790555b6000806113b660408701602088016127ba565b6001600160a01b03166113cc6040880188612f35565b6040516113da92919061308b565b6000604051808303816000865af19150503d8060008114611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50915091508161147d578215611443576000858152600760205260409020805460ff191690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf878260405161147492919061309b565b60405180910390a15b5050505050505b6001016111f2565b6000805160206132448339815191526114a481611c3f565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611000565b600060008051602061322483398151915261150e81611c3f565b8261151881610a58565b61153557604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808b1660208085018290526001600160401b03808c16868801528a85166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451636f9582bf60e11b815293946101009092049092169263df2b057e926115d8928692600401612ebc565b6020604051808303816000875af11580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612d77565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef8460405161164e91815260200190565b60405180910390a1505050949350505050565b600554600090819061168490600160401b90046001600160401b031660416130ca565b83146116965750600090506001611837565b60006116ef866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b600554600160401b90046001600160401b031681101561182b57366000888861171f8560416130ca565b9061172b8660016130e1565b6117369060416130ca565b92611743939291906130f4565b9150915060008061178a8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fe492505050565b50909250905060008160038111156117a4576117a4612b60565b146117bd57600060019850985050505050505050611837565b856001600160a01b0316826001600160a01b0316116117ea57600060029850985050505050505050611837565b6001600160a01b03821660009081526004602052604090205460ff1661181e57600060039850985050505050505050611837565b50935050506001016116f5565b50600160009350935050505b935093915050565b60008051602061324483398151915261185781611c3f565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611000565b6000805160206132448339815191526118c581611c3f565b63ffffffff841660009081526003602052604090206118e59084846125c2565b5050505050565b8160008051602061326483398151915281148061192857507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611940575060008051602061322483398151915281145b1561196a5730331461196557604051637d5d391d60e11b815260040160405180910390fd5b611996565b6000805160206132448339815191528103610b8757611965600080516020613244833981519152611c3f565b61086d8383612031565b6000805160206132448339815191526119b881611c3f565b6119d060008051602061322483398151915285611038565b6119ed57604051635ee08b9760e01b815260040160405180910390fd5b6040516303d8c5ef60e11b81526001600160a01b038481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001611a7095949392919061311e565b60405160208183030381529060405280519060200120905095945050505050565b42816060013511611ab557604051630bbaf26360e01b815260040160405180910390fd5b30611ac660408301602084016127ba565b6001600160a01b031614611b0957611ae460408201602083016127ba565b604051631ce0bfcd60e01b81526001600160a01b039091166004820152602401610b9f565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611b3d6020830183612758565b63ffffffff1614611b7757611b556020820182612758565b60405163134bf0e160e11b815263ffffffff9091166004820152602401610b9f565b6000611b896112896020840184612758565b90506000611b9e826106e76080860186612f35565b50905080611bbf57604051630af656f760e11b815260040160405180910390fd5b60008281526007602052604090205460ff1615611bf257604051634eb522d360e11b815260048101839052602401610b9f565b60008281526007602052604090819020805460ff1916600117905561086d9060008051602061324483398151915290611c2d90860186612f35565b810190611c3a91906127ba565b611cfe565b61103581336120a9565b6001600160a01b038316611c6657611c6182826120e2565b505050565b611c6183838361218f565b611c796121ca565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b611ccd6121f0565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ca8565b600060008051602061326483398151915283148015611d245750611d228383611038565b155b15611d6e5760018054601590611d4990600160a81b90046001600160401b0316613164565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612213565b5060019392505050565b6001600160a01b03821660009081526004602052604090205481151560ff909116151503611dd6576040516302c6469560e51b81526001600160a01b03831660048201528115156024820152604401610b9f565b6001600160a01b0382166000908152600460205260408120805460ff191683151517905581611e1c57600554611e17906001906001600160401b031661318a565b611e33565b600554611e33906001600160401b031660016131b1565b6005549091506001600160401b03600160401b9091048116908216811115611e81576040516378e2c15760e11b81526001600160401b03808416600483015282166024820152604401610b9f565b6005805467ffffffffffffffff19166001600160401b038416179055604080516001600160a01b038616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce910161099e565b806001600160401b0316600003611f0757604051635f86e17760e01b815260040160405180910390fd5b6005546001600160401b03908116908216811015611f4b576040516378e2c15760e11b81526001600160401b03808316600483015283166024820152604401610b9f565b600580546fffffffffffffffff00000000000000001916600160401b6001600160401b038516908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611000565b60006001600160e01b03198216630111a9b760e11b148015906108a457506001600160e01b0319821663704316e560e01b141592915050565b6000806000835160410361201e5760208401516040850151606086015160001a612010888285856122a5565b95509550955050505061202a565b50508151600091506002905b9250925092565b60006000805160206132648339815191528314801561205557506120558383611038565b1561209f576001805460159061207a90600160a81b90046001600160401b03166131d1565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612374565b6120b38282611038565b6109c55760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610b9f565b6001600160a01b038216612109576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612156576040519150601f19603f3d011682016040523d82523d6000602084013e61215b565b606091505b5050905080611c6157604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610b9f565b6001600160a01b0382166121b6576040516306b7a93160e41b815260040160405180910390fd5b611c616001600160a01b03841683836123df565b60015460ff16156121ee5760405163d93c066560e01b815260040160405180910390fd5b565b60015460ff166121ee57604051638dfc202b60e01b815260040160405180910390fd5b600061221f8383611038565b61229d576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556122553390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016108a4565b5060006108a4565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156122e0575060009150600390508261236a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612334573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123605750600092506001915082905061236a565b9250600091508190505b9450945094915050565b60006123808383611038565b1561229d576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016108a4565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b179052611c619185919060009061243d9084168361248b565b9050805160001415801561246257508080602001905181019061246091906131f4565b155b15611c6157604051635274afe760e01b81526001600160a01b0384166004820152602401610b9f565b6060612499838360006124a0565b9392505050565b6060814710156124c55760405163cd78605960e01b8152306004820152602401610b9f565b600080856001600160a01b031684866040516124e19190613211565b60006040518083038185875af1925050503d806000811461251e576040519150601f19603f3d011682016040523d82523d6000602084013e612523565b606091505b509150915061253386838361253d565b9695505050505050565b6060826125525761254d82612599565b612499565b815115801561256957506001600160a01b0384163b155b1561259257604051639996b31560e01b81526001600160a01b0385166004820152602401610b9f565b5080612499565b8051156125a95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f0160209004810192821561265b5791602002820160005b8382111561262c57833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026125eb565b80156126595782816101000a81549060ff021916905560010160208160000104928301926001030261262c565b505b5061266792915061266b565b5090565b5b80821115612667576000815560010161266c565b6001600160a01b038116811461103557600080fd5b6000806000606084860312156126aa57600080fd5b83356126b581612680565b925060208401356126c581612680565b929592945050506040919091013590565b6000602082840312156126e857600080fd5b81356001600160e01b03198116811461249957600080fd5b801515811461103557600080fd5b60006020828403121561272057600080fd5b813561249981612700565b60006020828403121561273d57600080fd5b5035919050565b803563ffffffff81168114610ad857600080fd5b60006020828403121561276a57600080fd5b61249982612744565b6020808252825182820181905260009190848201906040850190845b818110156127ae57835160ff168352928401929184019160010161278f565b50909695505050505050565b6000602082840312156127cc57600080fd5b813561249981612680565b600080604083850312156127ea57600080fd5b8235915060208301356127fc81612680565b809150509250929050565b80356001600160401b0381168114610ad857600080fd5b60008083601f84011261283057600080fd5b5081356001600160401b0381111561284757600080fd5b60208301915083602082850101111561285f57600080fd5b9250929050565b60008060008060006080868803121561287e57600080fd5b61288786612744565b945061289560208701612807565b935060408601356128a581612680565b925060608601356001600160401b038111156128c057600080fd5b6128cc8882890161281e565b969995985093965092949392505050565b600080604083850312156128f057600080fd5b82356128fb81612680565b915060208301356127fc81612700565b6000806020838503121561291e57600080fd5b82356001600160401b038082111561293557600080fd5b818501915085601f83011261294957600080fd5b81358181111561295857600080fd5b8660208260071b850101111561296d57600080fd5b60209290920196919550909350505050565b803561ffff81168114610ad857600080fd5b600080600080608085870312156129a757600080fd5b6129b08561297f565b93506129be6020860161297f565b92506129cc60408601612807565b915060608501356129dc81612680565b939692955090935050565b6000602082840312156129f957600080fd5b61249982612807565b600060a08284031215612a1457600080fd5b50919050565b600080600060408486031215612a2f57600080fd5b83356001600160401b0380821115612a4657600080fd5b612a5287838801612a02565b94506020860135915080821115612a6857600080fd5b50612a758682870161281e565b9497909650939450505050565b60008083601f840112612a9457600080fd5b5081356001600160401b03811115612aab57600080fd5b6020830191508360208260051b850101111561285f57600080fd5b60008060208385031215612ad957600080fd5b82356001600160401b03811115612aef57600080fd5b612afb85828601612a82565b90969095509350505050565b600060208284031215612b1957600080fd5b6124998261297f565b600080600060408486031215612b3757600080fd5b8335925060208401356001600160401b03811115612b5457600080fd5b612a758682870161281e565b634e487b7160e01b600052602160045260246000fd5b82151581526040810160048310612b9d57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b600080600060408486031215612bbf57600080fd5b612bc884612744565b925060208401356001600160401b03811115612be357600080fd5b612a7586828701612a82565b600080600080600060808688031215612c0757600080fd5b612c1086612744565b94506020860135612c2081612680565b935060408601356001600160401b03811115612c3b57600080fd5b612c478882890161281e565b96999598509660600135949350505050565b600060208284031215612c6b57600080fd5b81356001600160401b03811115612c8157600080fd5b612c8d84828501612a02565b949350505050565b60018060a01b0380825116835263ffffffff602083015116602084015260408201516001600160401b03808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000610140612d2c8388612c95565b612d6360c0840187546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b80610120840152610f938184018587612cf4565b600060208284031215612d8957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b80356001600160801b0381168114610ad857600080fd5b600060208284031215612dcf57600080fd5b61249982612da6565b6020808252818101839052600090604080840186845b87811015612e5f5763ffffffff612e0483612744565b1683526001600160401b03612e1a868401612807565b168584015261ffff612e2d85840161297f565b168484015260606001600160801b03612e47828501612da6565b16908401526080928301929190910190600101612dee565b5090979650505050505050565b60005b83811015612e87578181015183820152602001612e6f565b50506000910152565b60008151808452612ea8816020860160208601612e6c565b601f01601f19169290920160200192915050565b6000610140612ecb8387612c95565b612f0260c0840186546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b8061012084015261253381840185612e90565b60008235609e19833603018112612f2b57600080fd5b9190910192915050565b6000808335601e19843603018112612f4c57600080fd5b8301803591506001600160401b03821115612f6657600080fd5b60200191503681900382131561285f57600080fd5b6001600160e01b03198135818116916004851015612fa35780818660040360031b1b83161692505b505092915050565b6000808335601e19843603018112612fc257600080fd5b83016020810192503590506001600160401b03811115612fe157600080fd5b80360382131561285f57600080fd5b6040815263ffffffff61300284612744565b1660408201526000602084013561301881612680565b6001600160a01b031660608301526130336040850185612fab565b60a0608085015261304860e085018284612cf4565b915050606085013560a08401526130626080860186612fab565b848303603f190160c0860152613079838284612cf4565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000612c8d6040830184612e90565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a4576108a46130b4565b808201808211156108a4576108a46130b4565b6000808585111561310457600080fd5b8386111561311157600080fd5b5050820193919092039150565b63ffffffff60e01b8660e01b1681526bffffffffffffffffffffffff198560601b1660048201528360188201528183603883013760009101603801908152949350505050565b60006001600160401b03808316818103613180576131806130b4565b6001019392505050565b6001600160401b038281168282160390808211156131aa576131aa6130b4565b5092915050565b6001600160401b038181168382160190808211156131aa576131aa6130b4565b60006001600160401b038216806131ea576131ea6130b4565b6000190192915050565b60006020828403121561320657600080fd5b815161249981612700565b60008251612f2b818460208701612e6c56fe724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19dea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177574845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bcaa26469706673582212203b61bbdddbd40de2a99f40cf79bc54fd320e09acc6ea01dd4f473c7f674ee39f64736f6c6343000816003360a060405234801561001057600080fd5b50604051610e2e380380610e2e83398101604081905261002f916100b7565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610067565b506080526100d0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100c957600080fd5b5051919050565b608051610d436100eb60003960006105fa0152610d436000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063715018a6146100875780637bfa20a91461009c5780638da5cb5b146100cf578063df2b057e146100f7578063f2fde38b1461010a57600080fd5b3661006057005b600080fd5b34801561007157600080fd5b506100856100803660046109c7565b61012a565b005b34801561009357600080fd5b50610085610142565b3480156100a857600080fd5b506100bc6100b7366004610a03565b610156565b6040519081526020015b60405180910390f35b3480156100db57600080fd5b506000546040516001600160a01b0390911681526020016100c6565b6100bc610105366004610a03565b6102e6565b34801561011657600080fd5b50610085610125366004610aa5565b6103cf565b61013261040d565b61013d83838361043a565b505050565b61014a61040d565b610154600061045d565b565b60006101656020850185610ac0565b67ffffffffffffffff166000036101ad576101866040860160208701610aea565b60405163680489c560e11b815263ffffffff90911660048201526024015b60405180910390fd5b6101b783836104ad565b5060006101dc6101cd60a0880160808901610ac0565b67ffffffffffffffff1661051f565b90506000806101ee6020890189610aa5565b6001600160a01b03166388a4124c61020c60408b0160208c01610aea565b8561021a60208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff166044820152606401608060405180830381865afa158015610273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102979190610b25565b9350505091506102da828860200160208101906102b49190610b7a565b6102c460c08c0160a08d01610b7a565b6102d460608c0160408d01610b9e565b8561058b565b98975050505050505050565b60006102f56020850185610ac0565b67ffffffffffffffff16600003610316576101866040860160208701610aea565b61032083836104ad565b5060006103366101cd60a0880160808901610ac0565b90506000806103486020890189610aa5565b6001600160a01b031663c1723a1d61036660408b0160208c01610aea565b8561037460208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff1660448201526064016080604051808303816000875af1158015610273573d6000803e3d6000fd5b6103d761040d565b6001600160a01b03811661040157604051631e4fbdf760e01b8152600060048201526024016101a4565b61040a8161045d565b50565b6000546001600160a01b031633146101545760405163118cdaa760e01b81523360048201526024016101a4565b6001600160a01b0383166104525761013d8282610661565b61013d83838361070e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082156104f0576000806104c4868685610749565b604051637085244b60e01b815260ff8516600482015290965092945085935050602490910190506101a4565b8083146105135760405163013adb8360e21b8152600481018290526024016101a4565b60009150505b92915050565b60008061052d604184610bd1565b905061053a602082610bfe565b156105625761054a602082610bfe565b6105549082610c12565b61055f906020610c25565b90505b8061056f60e06044610c25565b6105799190610c25565b610584906040610c25565b9392505050565b60008061ffff86161561059e57856105a0565b845b905060006127106105b561ffff84168a610bd1565b6105bf9190610c38565b90506001600160801b03841615806105de57506001600160801b038516155b156105ec5791506106589050565b6000846001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000876001600160801b031661062d9190610bd1565b6106379190610c38565b610641908a610c25565b90508181116106505781610652565b805b93505050505b95945050505050565b6001600160a01b038216610688576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b505090508061013d57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016101a4565b6001600160a01b038216610735576040516306b7a93160e41b815260040160405180910390fd5b61013d6001600160a01b03841683836107a3565b60003681600184018161075d8888846107f5565b6002830192909150610775908990899060030161081c565b94506002820161ffff8216830161078e81838b8d610c4c565b979b909a50969850505061ffff160193505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261013d908490610841565b60006002820161080781848688610c4c565b61081091610c76565b60f01c95945050505050565b600083838381811061083057610830610ca6565b919091013560f81c95945050505050565b60006108566001600160a01b038416836108a4565b9050805160001415801561087b5750808060200190518101906108799190610cbc565b155b1561013d57604051635274afe760e01b81526001600160a01b03841660048201526024016101a4565b60606105848383600084600080856001600160a01b031684866040516108ca9190610cde565b60006040518083038185875af1925050503d8060008114610907576040519150601f19603f3d011682016040523d82523d6000602084013e61090c565b606091505b509150915061091c868383610926565b9695505050505050565b60608261093b5761093682610982565b610584565b815115801561095257506001600160a01b0384163b155b1561097b57604051639996b31560e01b81526001600160a01b03851660048201526024016101a4565b5080610584565b8051156109925780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109c257600080fd5b919050565b6000806000606084860312156109dc57600080fd5b6109e5846109ab565b92506109f3602085016109ab565b9150604084013590509250925092565b600080600080848603610140811215610a1b57600080fd5b60c0811215610a2957600080fd5b859450606060bf1982011215610a3e57600080fd5b5060c08501925061012085013567ffffffffffffffff80821115610a6157600080fd5b818701915087601f830112610a7557600080fd5b813581811115610a8457600080fd5b886020828501011115610a9657600080fd5b95989497505060200194505050565b600060208284031215610ab757600080fd5b610584826109ab565b600060208284031215610ad257600080fd5b813567ffffffffffffffff8116811461058457600080fd5b600060208284031215610afc57600080fd5b813563ffffffff8116811461058457600080fd5b6001600160801b038116811461040a57600080fd5b60008060008060808587031215610b3b57600080fd5b845193506020850151610b4d81610b10565b6040860151909350610b5e81610b10565b6060860151909250610b6f81610b10565b939692955090935050565b600060208284031215610b8c57600080fd5b813561ffff8116811461058457600080fd5b600060208284031215610bb057600080fd5b813561058481610b10565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761051957610519610bbb565b634e487b7160e01b600052601260045260246000fd5b600082610c0d57610c0d610be8565b500690565b8181038181111561051957610519610bbb565b8082018082111561051957610519610bbb565b600082610c4757610c47610be8565b500490565b60008085851115610c5c57600080fd5b83861115610c6957600080fd5b5050820193919092039150565b6001600160f01b03198135818116916002851015610c9e5780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610cce57600080fd5b8151801515811461058457600080fd5b6000825160005b81811015610cff5760208186018101518583015201610ce5565b50600092019182525091905056fea2646970667358221220a3bc24e7c5cbedac7e00899eb168625849d3210800cd0b59d0aa08cd2b3af71664736f6c6343000816003360e06040523480156200001157600080fd5b5060405162001a4438038062001a44833981016040819052620000349162000179565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000668162000110565b50600180546001600160a01b0319166001600160a01b038481169190911790915581166080819052600060a0526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa158015620000cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f59190620001b8565b63ffffffff1660c052505060636003556064600455620001e7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200017657600080fd5b50565b600080604083850312156200018d57600080fd5b82516200019a8162000160565b6020840151909250620001ad8162000160565b809150509250929050565b600060208284031215620001cb57600080fd5b815163ffffffff81168114620001e057600080fd5b9392505050565b60805160a05160c05161181162000233600039600061038c015260006102fb0152600081816102c7015281816105d6015281816106df015281816108e50152610aa101526118116000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063996f79c01161006f578063996f79c014610447578063aec336e61461045d578063d80e9bd91461047d578063dabca063146104aa578063f2fde38b146104ca578063fd9be522146104ea57610156565b8063715018a614610365578063726075371461037a57806372d71322146103c35780638da5cb5b146103e55780638f58aa7a14610403578063909532381461042357610156565b80634389e58f116101085780634389e58f1461025a57806354fd4d50146102895780635e280f11146102b557806361d027b3146102e95780636251b6371461031d5780636750cd4c1461034457610156565b806301ffc9a71461016f5780630e97289b146101a457806312cc947f146101dc5780631881d94d146101fe5780631c7c294e1461021a578063334993ff1461023a57610156565b3661015657005b604051632657b6c360e01b815260040160405180910390fd5b34801561017b57600080fd5b5061018f61018a366004610fd6565b61050a565b60405190151581526020015b60405180910390f35b3480156101b057600080fd5b506001546101c4906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b3480156101e857600080fd5b506101fc6101f7366004611041565b610541565b005b34801561020a57600080fd5b50600260405161019b9190611082565b34801561022657600080fd5b506002546101c4906001600160a01b031681565b34801561024657600080fd5b506101fc6102553660046110aa565b6106b3565b34801561026657600080fd5b5061027a6102753660046111bc565b6106c6565b60405161019b93929190611283565b34801561029557600080fd5b50604080516000808252602082015260029181019190915260600161019b565b3480156102c157600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f557600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b34801561032957600080fd5b50610332600181565b60405160ff909116815260200161019b565b34801561035057600080fd5b5061018f61035f3660046112d2565b50600190565b34801561037157600080fd5b506101fc610810565b34801561038657600080fd5b506103ae7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161019b565b3480156103cf57600080fd5b506103d8610824565b60405161019b91906112ed565b3480156103f157600080fd5b506000546001600160a01b03166101c4565b34801561040f57600080fd5b506101fc61041e366004611320565b6108b2565b34801561042f57600080fd5b5061043960035481565b60405190815260200161019b565b34801561045357600080fd5b5061043960045481565b34801561046957600080fd5b506101fc61047836600461134c565b6109a7565b34801561048957600080fd5b5061049d610498366004611369565b6109d1565b60405161019b91906113e4565b3480156104b657600080fd5b506101fc6104c53660046113fb565b610a13565b3480156104d657600080fd5b506101fc6104e536600461134c565b610a2b565b3480156104f657600080fd5b506101fc610505366004611320565b610a6e565b60006001600160e01b031982166325fc096160e21b148061053b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6002546001600160a01b03161580159061056657506002546001600160a01b03163314155b1561058457604051631c2c85bb60e21b815260040160405180910390fd5b6000604051806060016040528061059b8585610b2e565b63ffffffff1681526020016105b08585610b51565b81526020016105bf8585610b71565b6001600160401b0316905290506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106068686610b94565b6106108787610ba6565b60405161061e929190611437565b6040805191829003822060e086901b6001600160e01b0319168352845163ffffffff166004840152602085015160248401529301516001600160401b031660448201526001600160a01b039091166064820152608481019190915260a401600060405180830381600087803b15801561069657600080fd5b505af11580156106aa573d6000803e3d6000fd5b50505050505050565b6106bb610bc2565b600491909155600355565b60408051808201909152600080825260208201526060807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461072657604051630fd72cd960e31b815260040160405180910390fd5b6107376107328761145e565b610bef565b9150845160001461074857846107d4565b60058054610755906114fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610781906114fb565b80156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b50505050505b90506107e08282610c47565b60405180604001604052806004548152602001856107ff576000610803565b6003545b9052969195509350915050565b610818610bc2565b6108226000610caf565b565b60058054610831906114fb565b80601f016020809104026020016040519081016040528092919081815260200182805461085d906114fb565b80156108aa5780601f1061087f576101008083540402835291602001916108aa565b820191906000526020600020905b81548152906001019060200180831161088d57829003601f168201915b505050505081565b6108ba610bc2565b6001600160a01b0382166108e157604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061152f565b90506001600160a01b03811661098e576040516354c1781b60e01b815260040160405180910390fd5b6109a26001600160a01b0382168484610cff565b505050565b6109af610bc2565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600454815260200183610a04576000610a08565b6003545b905295945050505050565b610a1b610bc2565b6005610a278282611594565b5050565b610a33610bc2565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610a6b81610caf565b50565b610a76610bc2565b6001600160a01b038216610a9d57604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b21919061152f565b90506109a2818484610d51565b6000610b3e600d60098486611653565b610b479161167d565b60e01c9392505050565b6000610b61602d600d8486611653565b610b6a916116ad565b9392505050565b6000610b81600960018486611653565b610b8a916116cb565b60c01c9392505050565b6000610b6a610ba38484610d74565b90565b366000610bb68360518187611653565b915091505b9250929050565b6000546001600160a01b031633146108225760405163118cdaa760e01b8152336004820152602401610a59565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610c3198600198919791966001600160a01b031695016116f9565b6040516020818303038152906040529050919050565b600154604051631f5dad8b60e31b81526001600160a01b039091169063faed6c5890610c799085908590600401611774565b600060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526109a2908490610d84565b6001600160a01b038316610d69576109a28282610de7565b6109a2838383610e94565b6000610b61605160318486611653565b6000610d996001600160a01b03841683610ecf565b90508051600014158015610dbe575080806020019051810190610dbc91906117a2565b155b156109a257604051635274afe760e01b81526001600160a01b0384166004820152602401610a59565b6001600160a01b038216610e0e576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b50509050806109a257604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610a59565b6001600160a01b038216610ebb576040516306b7a93160e41b815260040160405180910390fd5b6109a26001600160a01b0384168383610cff565b6060610b6a8383600084600080856001600160a01b03168486604051610ef591906117bf565b60006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b5091509150610f47868383610f51565b9695505050505050565b606082610f6657610f6182610fad565b610b6a565b8151158015610f7d57506001600160a01b0384163b155b15610fa657604051639996b31560e01b81526001600160a01b0385166004820152602401610a59565b5080610b6a565b805115610fbd5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610fe857600080fd5b81356001600160e01b031981168114610b6a57600080fd5b60008083601f84011261101257600080fd5b5081356001600160401b0381111561102957600080fd5b602083019150836020828501011115610bbb57600080fd5b6000806020838503121561105457600080fd5b82356001600160401b0381111561106a57600080fd5b61107685828601611000565b90969095509350505050565b60208101600383106110a457634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156110bd57600080fd5b50508035926020909101359150565b600060e082840312156110de57600080fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561111c5761111c6110e4565b60405290565b600082601f83011261113357600080fd5b81356001600160401b038082111561114d5761114d6110e4565b604051601f8301601f19908116603f01168101908282118183101715611175576111756110e4565b8160405283815286602085880101111561118e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610a6b57600080fd5b6000806000606084860312156111d157600080fd5b83356001600160401b03808211156111e857600080fd5b6111f4878388016110cc565b9450602086013591508082111561120a57600080fd5b5061121786828701611122565b9250506040840135611228816111ae565b809150509250925092565b60005b8381101561124e578181015183820152602001611236565b50506000910152565b6000815180845261126f816020860160208601611233565b601f01601f19169290920160200192915050565b83518152602080850151908201526080604082015260006112a76080830185611257565b8281036060840152610f478185611257565b803563ffffffff811681146112cd57600080fd5b919050565b6000602082840312156112e457600080fd5b610b6a826112b9565b602081526000610b6a6020830184611257565b6001600160a01b0381168114610a6b57600080fd5b80356112cd81611300565b6000806040838503121561133357600080fd5b823561133e81611300565b946020939093013593505050565b60006020828403121561135e57600080fd5b8135610b6a81611300565b6000806000806060858703121561137f57600080fd5b84356001600160401b038082111561139657600080fd5b6113a2888389016110cc565b955060208701359150808211156113b857600080fd5b506113c587828801611000565b90945092505060408501356113d9816111ae565b939692955090935050565b81518152602080830151908201526040810161053b565b60006020828403121561140d57600080fd5b81356001600160401b0381111561142357600080fd5b61142f84828501611122565b949350505050565b8183823760009101908152919050565b80356001600160401b03811681146112cd57600080fd5b600060e0823603121561147057600080fd5b6114786110fa565b61148183611447565b815261148f602084016112b9565b60208201526114a060408401611315565b60408201526114b1606084016112b9565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b038111156114e357600080fd5b6114ef36828601611122565b60c08301525092915050565b600181811c9082168061150f57607f821691505b6020821081036110de57634e487b7160e01b600052602260045260246000fd5b60006020828403121561154157600080fd5b8151610b6a81611300565b601f8211156109a2576000816000526020600020601f850160051c810160208610156115755750805b601f850160051c820191505b81811015610ca757828155600101611581565b81516001600160401b038111156115ad576115ad6110e4565b6115c1816115bb84546114fb565b8461154c565b602080601f8311600181146115f657600084156115de5750858301515b600019600386901b1c1916600185901b178555610ca7565b600085815260208120601f198616915b8281101561162557888601518255948401946001909101908401611606565b50858210156116435787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808585111561166357600080fd5b8386111561167057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116a55780818660040360031b1b83161692505b505092915050565b8035602083101561053b57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156116a55760089490940360031b84901b1690921692915050565b60ff60f81b8960f81b1681526001600160401b0360c01b8860c01b166001820152600063ffffffff60e01b808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611760816071850160208701611233565b919091016071019998505050505050505050565b6040815260006117876040830185611257565b82810360208401526117998185611257565b95945050505050565b6000602082840312156117b457600080fd5b8151610b6a816111ae565b600082516117d1818460208701611233565b919091019291505056fea2646970667358221220990cfb4d672f3a4b176b2a0dac3fbeff814b316fc90a05799662ae7184d6045a64736f6c63430008160033a264697066735822122022d697bcfe71cbd0a9e17d1281877bf347d564e9423dd7644ac9f78470aa31f164736f6c63430008160033608060405234801561001057600080fd5b506107d2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e5c5e9a314610030575b600080fd5b61004361003e366004610529565b61005a565b6040516100519291906105eb565b60405180910390f35b6060806100678484610072565b915091509250929050565b606080600283101561009f5760405163196499c760e21b8152600060048201526024015b60405180910390fd5b60006100ae6002828688610619565b6100b791610643565b60f01c90506002600219820161021f578060005b868310156101c45760006100e460018501858a8c610619565b6100ed91610673565b60f81c9050600081900361011757604051636780cfaf60e01b815260006004820152602401610096565b8160ff1660000361012a57809150610167565b8160ff168160ff16146101675736600061014686868c8e610619565b915091506101578989868585610236565b9099509750859450919250829150505b600184019360009061017e90600301868b8d610619565b61018791610643565b60f01c905060008190036101b15760405163196499c760e21b815260048101869052602401610096565b8060020161ffff168501945050506100cb565b8287146101e75760405163196499c760e21b815260048101849052602401610096565b6002871115610218573660006101ff85858b8d610619565b915091506102108888858585610236565b909850965050505b505061022d565b61022a828787610356565b93505b50509250929050565b60608060001960ff8616016102b35786511561027557868484604051602001610261939291906106a1565b6040516020818303038152906040526102ac565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b965061034b565b60011960ff86160161032d578551156102ef578584846040516020016102db939291906106a1565b604051602081830303815290604052610326565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b955061034b565b604051636780cfaf60e01b815260ff86166004820152602401610096565b509495939450505050565b606060001961ffff8516016103f65760228214610386576040516301b8ca5560e31b815260040160405180910390fd5b60006103a7610399602260028688610619565b6103a2916106c9565b6104e8565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b1660248201529091506034016040516020818303038152906040529150506104e1565b60011961ffff8516016104c2576042821115806104135750606282115b15610431576040516360493e2b60e11b815260040160405180910390fd5b6000610444610399602260028688610619565b90506000610459610399604260228789610619565b90506000604119850161046f866042818a610619565b610478916106c9565b60405160086020938403029190911c92506104a9916001916011918391889183916031916002918b918b91016106e8565b60405160208183030381529060405293505050506104e1565b604051630417051360e41b815261ffff85166004820152602401610096565b9392505050565b60006fffffffffffffffffffffffffffffffff821115610525576040516306dfcc6560e41b81526080600482015260248101839052604401610096565b5090565b6000806020838503121561053c57600080fd5b823567ffffffffffffffff8082111561055457600080fd5b818501915085601f83011261056857600080fd5b81358181111561057757600080fd5b86602082850101111561058957600080fd5b60209290920196919550909350505050565b60005b838110156105b657818101518382015260200161059e565b50506000910152565b600081518084526105d781602086016020860161059b565b601f01601f19169290920160200192915050565b6040815260006105fe60408301856105bf565b828103602084015261061081856105bf565b95945050505050565b6000808585111561062957600080fd5b8386111561063657600080fd5b5050820193919092039150565b6001600160f01b0319813581811691600285101561066b5780818660020360031b1b83161692505b505092915050565b6001600160f81b0319813581811691600185101561066b5760019490940360031b84901b1690921692915050565b600084516106b381846020890161059b565b8201838582376000930192835250909392505050565b803560208310156106e257600019602084900360031b1b165b92915050565b60f88a811b6001600160f81b0319908116835260f08b901b6001600160f01b031916600184015289821b81166003840152608089901b6001600160801b03191660048401529087901b1660148201526000610752601583018760f01b6001600160f01b0319169052565b61076b601783018660f81b6001600160f81b0319169052565b610784601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea2646970667358221220ff331a469c287e3288e36db706f577b76ad4abf0ff12a11a4a37a3a30fa3315164736f6c63430008160033","sourceMap":"2206:19797:71:-:0;;;;;1572:26:83;;;1594:4;-1:-1:-1;;1572:26:83;;;;;;;;3126:44:86;;;;;;;;;;;587:20:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;559:48:70;;;-1:-1:-1;;;;;559:48:70;;;;-1:-1:-1;;;;;;559:48:70;;;;;;;;;2909:43:71;;;-1:-1:-1;;;;;;2909:43:71;2943:9;2909:43;;;2206:19797;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610620002335760003560e01c80637982cf42116200012f578063b954fdf611620000ad578063e20c9f711162000078578063e20c9f7114620006dc578063ec53eaa014620006f4578063f93e1d61146200070b578063fa7626d41462000751578063faed6c58146200076d57600080fd5b8063b954fdf61462000623578063ba414fa61462000668578063baead19c1462000680578063defd9da6146200069b57600080fd5b8063a29c898411620000fa578063a29c89841462000582578063ae6ce4001462000599578063b1dcf5c814620005be578063b5508aa914620005e6578063b752b72a14620005fe57600080fd5b80637982cf4214620004ea57806385226c81146200051e578063916a17c61462000545578063997cff1b146200055d57600080fd5b80633bbd6a9411620001bd5780635e7baa4211620001885780635e7baa42146200040c5780635ea0fefe146200043157806366d9a9a014620004675780636e1775e3146200048e578063703ca25414620004c557600080fd5b80633bbd6a9414620003755780633e5e3c23146200038c5780633f7286f414620003a4578063518e8ab014620003bc57600080fd5b80631ed7831c11620001fe5780631ed7831c14620002be5780632113ce6214620002ee5780632a35d25014620003295780632ade3880146200034e57600080fd5b8063090852b614620002405780630a9254e4146200026757806312cc947f14620002745780631cc46525146200029957600080fd5b366200023b57005b600080fd5b3480156200024d57600080fd5b50620002656200025f36600462004471565b62000792565b005b3480156200026557600080fd5b3480156200028157600080fd5b506200026562000293366004620044f3565b620007ae565b348015620002a657600080fd5b5062000265620002b836600462004548565b620010b2565b348015620002cb57600080fd5b50620002d662002523565b604051620002e59190620045c5565b60405180910390f35b348015620002fb57600080fd5b5060215462000310906001600160801b031681565b6040516001600160801b039091168152602001620002e5565b3480156200033657600080fd5b50620002d662000348366004620046d4565b62002587565b3480156200035b57600080fd5b50620003666200269e565b604051620002e59190620047f1565b620002656200038636600462004874565b620027ec565b3480156200039957600080fd5b50620002d6620028ac565b348015620003b157600080fd5b50620002d66200290e565b348015620003c957600080fd5b50620003e1620003db366004620044f3565b62002970565b6040805161ffff90941684526001600160801b039283166020850152911690820152606001620002e5565b3480156200041957600080fd5b50620002656200042b3660046200492e565b6200298e565b3480156200043e57600080fd5b5062000456620004503660046200498e565b62002e42565b6040519015158152602001620002e5565b3480156200047457600080fd5b506200047f62002e77565b604051620002e59190620049bd565b3480156200049b57600080fd5b50620004b3620004ad36600462004a76565b62002f61565b604051620002e5949392919062004aee565b348015620004d257600080fd5b5062000265620004e436600462004b44565b62002f85565b348015620004f757600080fd5b506200050f620005093660046200498e565b62003151565b604051620002e5919062004be8565b3480156200052b57600080fd5b50620005366200323f565b604051620002e5919062004bfd565b3480156200055257600080fd5b506200047f62003319565b3480156200056a57600080fd5b50620002656200057c36600462004a76565b62003403565b620002656200059336600462004c12565b6200345b565b348015620005a657600080fd5b5062000265620005b836600462004ca2565b620034dc565b348015620005cb57600080fd5b50620005d7620186a081565b604051908152602001620002e5565b348015620005f357600080fd5b50620005366200357d565b3480156200060b57600080fd5b50620002656200061d36600462004cc2565b62003657565b3480156200063057600080fd5b506200064862000642366004620044f3565b62003666565b604080516001600160801b039093168352602083019190915201620002e5565b3480156200067557600080fd5b506200045662003681565b3480156200068d57600080fd5b50620005d764e8d4a5100081565b348015620006a857600080fd5b5062000265620006ba36600462004cf9565b602180546001600160801b0319166001600160801b0392909216919091179055565b348015620006e957600080fd5b50620002d6620037b8565b620002656200070536600462004d19565b6200381a565b3480156200071857600080fd5b50620007306200072a366004620044f3565b62003955565b604080516001600160801b03938416815292909116602083015201620002e5565b3480156200075e57600080fd5b50600754620004569060ff1681565b3480156200077a57600080fd5b50620002656200078c36600462004d88565b62003964565b620007aa826001600160a01b0383166000806200298e565b5050565b6000620007bc8383620039f6565b63ffffffff811660009081526020805260408120549192506001600160a01b03909116908163402f8468620007f2878762003a1d565b620007fe888862003a32565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015263ffffffff1660248201526044016040805180830381865afa1580156200084d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000873919062004e0b565b50905060008190506000826001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401606060405180830381865afa158015620008bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008e2919062004e61565b50509050806001600160401b031660030362001044576000826001600160a01b0316639c33abf7620009158a8a62003a32565b620009218b8b62003a1d565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526001600160a01b0316602482015260026044820152606401600060405180830381865afa15801562000979573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620009a3919081019062004efb565b9050600081806020019051810190620009bd919062004faf565b60800151600081518110620009d657620009d662005096565b602002602001015190506000620009ee8a8a62003a44565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093945062000a3392508d91508c905062003a56565b60405162000a43929190620050ac565b6040518091039020905060606000630223536e60e01b8484606460405160240162000a7193929190620050bc565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03861663f010cb238d8b8562000ac7426103e862005100565b6040518563ffffffff1660e01b815260040162000ae8949392919062005116565b602060405180830381865afa15801562000b06573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b2c919062005159565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b82526001600483015260248201819052915060009081908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063e341eaa490604401606060405180830381865afa15801562000bdc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c02919062005173565b6040805160208101939093528281019190915260f89290921b6001600160f81b03191660608201528151604181830301815260619091019091529650600094506001935062000c5092505050565b60405190808252806020026020018201604052801562000cad57816020015b6040805160a081018252600080825260208201819052606092820183905282820152608081019190915281526020019060019003908162000c6f5790505b5090506040518060a001604052808d63ffffffff1681526020018a6001600160a01b03168152602001838152602001426103e862000cec919062005100565b8152602001848152508160008151811062000d0b5762000d0b62005096565b602090810291909101015260405163b143044b60e01b81526001600160a01b0387169063b143044b9062000d44908490600401620051ad565b600060405180830381600087803b15801562000d5f57600080fd5b505af115801562000d74573d6000803e3d6000fd5b505050506000630894edf160e01b868660405160240162000d979291906200525f565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905060006001600160a01b03881663f010cb238f8d8562000ded426103e862005100565b6040518563ffffffff1660e01b815260040162000e0e949392919062005116565b602060405180830381865afa15801562000e2c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e52919062005159565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150600090605c0160408051808303601f190181529082905280516020909101206338d07aa960e21b82526001600483015260248201819052915060009081908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063e341eaa490604401606060405180830381865afa15801562000f02573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f28919062005173565b60408051602081018490529081018290526001600160f81b031960f885901b1660608201529295509093509150606101604051602081830303815290604052985050505050506040518060a001604052808e63ffffffff1681526020018b6001600160a01b03168152602001828152602001426103e862000faa919062005100565b8152602001858152508260008151811062000fc95762000fc962005096565b602090810291909101015260405163b143044b60e01b81526001600160a01b0388169063b143044b9062001002908590600401620051ad565b600060405180830381600087803b1580156200101d57600080fd5b505af115801562001032573d6000803e3d6000fd5b505050505050505050505050620010a9565b6040516312cc947f60e01b81526001600160a01b038416906312cc947f9062001074908a908a9060040162005283565b600060405180830381600087803b1580156200108f57600080fd5b505af1158015620010a4573d6000803e3d6000fd5b505050505b50505050505050565b60008260ff166001600160401b03811115620010d257620010d2620045da565b604051908082528060200260200182016040528015620010fc578160200160208202803683370190505b50905060008360ff166001600160401b038111156200111f576200111f620045da565b60405190808252806020026020018201604052801562001149578160200160208202803683370190505b50905060005b8460ff168160ff1610156200125a5760006200116d82600162005299565b60ff16905080838360ff16815181106200118b576200118b62005096565b602002602001019063ffffffff16908163ffffffff16815250508030604051620011b59062004319565b63ffffffff90921682526001600160a01b03166020820152604001604051809103906000f080158015620011ed573d6000803e3d6000fd5b50848360ff168151811062001206576200120662005096565b60200260200101906001600160a01b031690816001600160a01b03168152505062001250848360ff168151811062001242576200124262005096565b6020026020010151620034dc565b506001016200114f565b5060008460ff166001600160401b038111156200127b576200127b620045da565b604051908082528060200260200182016040528015620012a5578160200160208202803683370190505b50905060008560ff166001600160401b03811115620012c857620012c8620045da565b604051908082528060200260200182016040528015620012f2578160200160208202803683370190505b506040805160018082528183019092529192506000919060208083019080368337019050506040516001625e79b760e01b0319815260016004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156200136e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013949190620052b5565b81600081518110620013aa57620013aa62005096565b60200260200101906001600160a01b031690816001600160a01b031681525050600030604051620013db9062004327565b6001600160a01b039091168152602001604051809103906000f08015801562001408573d6000803e3d6000fd5b50905060005b8860ff168160ff1610156200235b576000886001811115620014345762001434620052d5565b036200218f576000878260ff168151811062001454576200145462005096565b60200260200101519050600080308364e8d4a51000620186a06040516200147b9062004335565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103906000f080158015620014bb573d6000803e3d6000fd5b50915082604051620014cd9062004343565b6001600160a01b039091168152602001604051809103906000f080158015620014fa573d6000803e3d6000fd5b509050898460ff168151811062001515576200151562005096565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0384811660048301529091169063e8964e8190602401600060405180830381600087803b1580156200156557600080fd5b505af11580156200157a573d6000803e3d6000fd5b50505050898460ff168151811062001596576200159662005096565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b158015620015e657600080fd5b505af1158015620015fb573d6000803e3d6000fd5b5050505081888560ff168151811062001618576200161862005096565b60200260200101906001600160a01b031690816001600160a01b03168152505080878560ff168151811062001651576200165162005096565b6001600160a01b0392909216602092830291909101820152604080516001808252818301909252600092839283929182810190803683370190505090503081600081518110620016a557620016a562005096565b6001600160a01b039290921660209283029190910182015260408051600280825260608201835260009391929091830190803683370190505090508581600081518110620016f757620016f762005096565b60200260200101906001600160a01b031690816001600160a01b03168152505084816001815181106200172e576200172e62005096565b60200260200101906001600160a01b031690816001600160a01b031681525050866000828b3086604051620017639062004351565b6200177496959493929190620052eb565b604051809103906000f08015801562001791573d6000803e3d6000fd5b5093506000604051620017a4906200435f565b604051809103906000f080158015620017c1573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b1580156200180a57600080fd5b505af11580156200181f573d6000803e3d6000fd5b5050505088600162001832919062005299565b828b8d60018760405162001846906200436d565b620018579695949392919062005349565b604051809103906000f08015801562001874573d6000803e3d6000fd5b5093506000670de0b6b3a764000060405162001890906200437b565b908152602001604051809103906000f080158015620018b3573d6000803e3d6000fd5b5060405163c7b2370b60e01b81526001600160a01b0380831660048301529192509086169063c7b2370b90602401600060405180830381600087803b158015620018fc57600080fd5b505af115801562001911573d6000803e3d6000fd5b505050505050505060008e60ff16905060008163ffffffff166001600160401b03811115620019445762001944620045da565b604051908082528060200260200182016040528015620019a657816020015b6040805160c08101825260008082526020808301829052928201819052606082018190526080820181905260a08201528252600019909201910181620019635790505b50905060008263ffffffff166001600160401b03811115620019cc57620019cc620045da565b60405190808252806020026020018201604052801562001a2057816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181620019eb5790505b50905060005b8363ffffffff168160ff161015620020bc578060ff168a60ff160315620020a757600062001a5682600162005299565b60408051600180825281830190925260ff9290921692506000919060208083019080368337019050506040805160008082526020820190925291925050878260008151811062001aaa5762001aaa62005096565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b62001ae462004389565b81526020019060019003908162001ada57905050905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff168152602001828152508260008151811062001b725762001b7262005096565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038e16906329460b0b9062001bab908590600401620053bc565b600060405180830381600087803b15801562001bc657600080fd5b505af115801562001bdb573d6000803e3d6000fd5b50600094506001935062001bee92505050565b60405190808252806020026020018201604052801562001c2b57816020015b62001c17620043f2565b81526020019060019003908162001c0d5790505b5090506000604051806040016040528061271063ffffffff1681526020018c6001600160a01b0316815250905060405180604001604052808663ffffffff168152602001828152508260008151811062001c895762001c8962005096565b602090810291909101015260405163c14c434960e01b81526001600160a01b038e169063c14c43499062001cc29085906004016200549a565b600060405180830381600087803b15801562001cdd57600080fd5b505af115801562001cf2573d6000803e3d6000fd5b50600094506001935062001d0592505050565b60405190808252806020026020018201604052801562001d4257816020015b62001d2e62004389565b81526020019060019003908162001d245790505b50905060006040518060c0016040528060646001600160401b03168152602001855160ff168152602001845160ff168152602001600060ff16815260200185815260200184815250905060405180604001604052808663ffffffff168152602001828152508260008151811062001dbd5762001dbd62005096565b60209081029190910101526040516329460b0b60e01b81526001600160a01b038d16906329460b0b9062001df6908590600401620053bc565b600060405180830381600087803b15801562001e1157600080fd5b505af115801562001e26573d6000803e3d6000fd5b50506040805160c08101825263ffffffff89168152611388602082018190529181019190915261271060608201526402540be40060808201526021546001600160801b031660a08201528a519094508a935060ff891692508210905062001e915762001e9162005096565b602002602001018190525060405180608001604052808463ffffffff1681526020016113886001600160401b0316815260200161271061ffff1681526020016402540be4006001600160801b0316815250858560ff168151811062001efa5762001efa62005096565b602002602001018190525060008e6001600160a01b031663c18403276040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001f46573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f6c91906200550b565b60408051600180825281830190925291925060009190816020015b62001fbb60408051808201825260008082528251606081018452818152602081810183905293810191909152909182015290565b81526020019060019003908162001f8757905050905060405180604001604052808663ffffffff16815260200160405180606001604052808560016200200291906200552b565b6001600160801b0316815260016020820181905260409091015290528151829060009062002034576200203462005096565b60200260200101819052508f6001600160a01b0316633161b7f6826040518263ffffffff1660e01b81526004016200206d919062005559565b600060405180830381600087803b1580156200208857600080fd5b505af11580156200209d573d6000803e3d6000fd5b5050505050505050505b80620020b381620055cd565b91505062001a26565b50604051633d85ac3360e01b81526001600160a01b03861690633d85ac3390620020eb908590600401620055ef565b600060405180830381600087803b1580156200210657600080fd5b505af11580156200211b573d6000803e3d6000fd5b50506040516352d3b87160e01b81526001600160a01b03871692506352d3b87191506200214d90849060040162005681565b600060405180830381600087803b1580156200216857600080fd5b505af11580156200217d573d6000803e3d6000fd5b50505050505050505050505062002352565b6001886001811115620021a657620021a6620052d5565b036200230e57600030888360ff1681518110620021c757620021c762005096565b6020026020010151604051620021dd9062004437565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562002211573d6000803e3d6000fd5b509050878260ff16815181106200222c576200222c62005096565b602090810291909101015160405163e8964e8160e01b81526001600160a01b0383811660048301529091169063e8964e8190602401600060405180830381600087803b1580156200227c57600080fd5b505af115801562002291573d6000803e3d6000fd5b5050505080868360ff1681518110620022ae57620022ae62005096565b60200260200101906001600160a01b031690816001600160a01b03168152505080858360ff1681518110620022e757620022e762005096565b60200260200101906001600160a01b031690816001600160a01b0316815250505062002352565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206c696272617279207479706560601b60448201526064015b60405180910390fd5b6001016200140e565b5060005b8860ff168160ff16101562002518576000878260ff168151811062002388576200238862005096565b6020026020010151905060005b8a60ff168160ff1610156200250d578060ff168360ff16031562002504576001600160a01b03821663aafea312620023cf83600162005299565b898660ff1681518110620023e757620023e762005096565b60200260200101516040518363ffffffff1660e01b81526004016200242492919060ff9290921682526001600160a01b0316602082015260400190565b600060405180830381600087803b1580156200243f57600080fd5b505af115801562002454573d6000803e3d6000fd5b50505050816001600160a01b031663a718531b82600162002476919062005299565b888660ff16815181106200248e576200248e62005096565b60209081029190910101516040516001600160e01b031960e085901b16815260ff90921660048301526001600160a01b0316602482015260006044820152606401600060405180830381600087803b158015620024ea57600080fd5b505af1158015620024ff573d6000803e3d6000fd5b505050505b60010162002395565b50506001016200235f565b505050505050505050565b606060148054806020026020016040519081016040528092919081815260200182805480156200257d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200255e575b5050505050905090565b60608160ff166001600160401b03811115620025a757620025a7620045da565b604051908082528060200260200182016040528015620025d1578160200160208202803683370190505b509050825b620025e2838562005299565b60ff168160ff1610156200268b5760ff81166000908152602080805260408083205481516001600160a01b03909116928101929092523090820152600160608201526200264390879060800160405160208183030381529060405262003a68565b90508083620026538785620056f6565b60ff168151811062002669576200266962005096565b6001600160a01b039092166020928302919091019091015250600101620025d6565b50620026978162002f85565b9392505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015620027e357600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620027cb578382906000526020600020018054620027379062005712565b80601f0160208091040260200160405190810160405280929190818152602001828054620027659062005712565b8015620027b65780601f106200278a57610100808354040283529160200191620027b6565b820191906000526020600020905b8154815290600101906020018083116200279857829003601f168201915b50505050508152602001906001019062002715565b505050508152505081526020019060010190620026c2565b50505050905090565b63ffffffff871660009081526020805260408120546001600160a01b0316908080620028188962003ac7565b925092509250836001600160a01b03166391d20fa18284908d8b8d898d8d604051806020016040528060008152506040518a63ffffffff1660e01b81526004016200286a97969594939291906200574e565b6000604051808303818589803b1580156200288457600080fd5b5088f115801562002899573d6000803e3d6000fd5b5050505050505050505050505050505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200257d576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200255e575050505050905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200257d576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200255e575050505050905090565b600080600062002981858562003bc4565b9250925092509250925092565b63ffffffff841660009081526020805260409020546001600160a01b0316620029fa5760405162461bcd60e51b815260206004820152601b60248201527f656e64706f696e74206e6f742079657420726567697374657265640000000000604482015260640162002349565b63ffffffff84166000908152601d6020908152604080832086845290915281209062002a268262003c42565b905060008460000362002a465762002a3e8362003c42565b905062002a5a565b84821162002a55578162002a57565b845b90505b8015620010a9578062002a6d81620057a2565b915050600062002a7d8462003c60565b6000818152601e602052604081208054929350909162002a9d9062005712565b80601f016020809104026020016040519081016040528092919081815260200182805462002acb9062005712565b801562002b1c5780601f1062002af05761010080835404028352916020019162002b1c565b820191906000526020600020905b81548152906001019060200180831162002afe57829003601f168201915b505060405163997cff1b60e01b8152939450309363997cff1b935062002b4b925085915086906004016200525f565b60006040518083038186803b15801562002b6457600080fd5b505afa15801562002b79573d6000803e3d6000fd5b50506040516312cc947f60e01b81523092506312cc947f915062002ba290849060040162004be8565b600060405180830381600087803b15801562002bbd57600080fd5b505af115801562002bd2573d6000803e3d6000fd5b5050506000838152601f6020526040812080549192509062002bf49062005712565b80601f016020809104026020016040519081016040528092919081815260200182805462002c229062005712565b801562002c735780601f1062002c475761010080835404028352916020019162002c73565b820191906000526020600020905b81548152906001019060200180831162002c5557829003601f168201915b5050505050905062002c8781600262003cd1565b1562002d435760008062002c9b8362003ce7565b604051919350915081906000906001600160a01b0383169085908381818185875af1925050503d806000811462002cef576040519150601f19603f3d011682016040523d82523d6000602084013e62002cf4565b606091505b505090508062002d3e5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640162002349565b505050505b62002d5081600162003cd1565b1562002db2576040516307629f5560e51b8152309063ec53eaa09062002d7d9085908590600401620057bc565b600060405180830381600087803b15801562002d9857600080fd5b505af115801562002dad573d6000803e3d6000fd5b505050505b6001600160a01b0387161580159062002dd3575062002dd381600362003cd1565b1562002e39576040516328a7226160e21b8152309063a29c89849062002e04908590859088908d90600401620057e5565b600060405180830381600087803b15801562002e1f57600080fd5b505af115801562002e34573d6000803e3d6000fd5b505050505b50505062002a5a565b61ffff82166000908152601d6020908152604080832084845290915281208162002e6c8262003c42565b119150505b92915050565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015620027e35760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562002f4857602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162002f095790505b5050505050815250508152602001906001019062002e9b565b60003660008062002f7487878762003dde565b935093509350935093509350935093565b805160005b818110156200314c57600083828151811062002faa5762002faa62005096565b6020026020010151905060005b8381101562003141578281146200313857600085828151811062002fdf5762002fdf62005096565b602002602001015190506000816001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200302a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030509190620052b5565b6001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200308e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030b4919062005830565b9050836001600160a01b0316633400288b82620030d7856001600160a01b031690565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526024820152604401600060405180830381600087803b1580156200311c57600080fd5b505af115801562003131573d6000803e3d6000fd5b5050505050505b60010162002fb7565b505060010162002f8a565b505050565b61ffff82166000908152601d6020908152604080832084845290915281206060916200317d8262003c42565b111562003238576000620031918262003e3a565b6000818152601e60205260409020805491925090620031b09062005712565b80601f0160208091040260200160405190810160405280929190818152602001828054620031de9062005712565b80156200322f5780601f1062003203576101008083540402835291602001916200322f565b820191906000526020600020905b8154815290600101906020018083116200321157829003601f168201915b50505050509250505b5092915050565b60606018805480602002602001604051908101604052809291908181526020016000905b82821015620027e3578382906000526020600020018054620032859062005712565b80601f0160208091040260200160405190810160405280929190818152602001828054620032b39062005712565b8015620033045780601f10620032d85761010080835404028352916020019162003304565b820191906000526020600020905b815481529060010190602001808311620032e657829003601f168201915b50505050508152602001906001019062003263565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015620027e35760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620033ea57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620033ab5790505b505050505081525050815260200190600101906200333d565b600062003411848462003ea8565b9050818114620034555760405162461bcd60e51b815260206004820152600e60248201526d0ceead2c840dcdee840dac2e8c6d60931b604482015260640162002349565b50505050565b30633bbd6a946200346d8787620039f6565b62003479888862003a1d565b868686620034888c8c62003ec5565b6040518863ffffffff1660e01b8152600401620034ac979695949392919062005850565b600060405180830381600087803b158015620034c757600080fd5b505af115801562002518573d6000803e3d6000fd5b8060206000836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003520573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003546919062005830565b63ffffffff168152602081019190915260400160002080546001600160a01b0319166001600160a01b039290921691909117905550565b60606017805480602002602001604051908101604052809291908181526020016000905b82821015620027e3578382906000526020600020018054620035c39062005712565b80601f0160208091040260200160405190810160405280929190818152602001828054620035f19062005712565b8015620036425780601f10620036165761010080835404028352916020019162003642565b820191906000526020600020905b8154815290600101906020018083116200362457829003601f168201915b505050505081526020019060010190620035a1565b620007aa82826000806200298e565b60008062003675848462003ed7565b915091505b9250929050565b600754600090610100900460ff1615620036a45750600754610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15620037b35760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b8284015282518083038401815260608301909352600092909162003735917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc491608001620058b2565b60408051601f19818403018152908290526200375191620058e5565b6000604051808303816000865af19150503d806000811462003790576040519150601f19603f3d011682016040523d82523d6000602084013e62003795565b606091505b5091505080806020019051810190620037af919062005903565b9150505b919050565b606060138054806020026020016040519081016040528092919081815260200182805480156200257d576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116200255e575050505050905090565b6000602060006200382c8686620039f6565b63ffffffff16815260208101919091526040016000908120546001600160a01b03169150806200385c8462003f23565b915091506000604051806060016040528062003879898962003a32565b63ffffffff1681526020016200389089896200401a565b8152602001620038a189896200402c565b6001600160401b0316905290506001600160a01b038416630c0c389e848484620038cc8c8c62003a1d565b620038d88d8d62003ea8565b620038e48e8e62003ec5565b604051806020016040528060008152506040518963ffffffff1660e01b8152600401620039179695949392919062005921565b6000604051808303818589803b1580156200393157600080fd5b5088f115801562003946573d6000803e3d6000fd5b50505050505050505050505050565b60008062003675848462004053565b6000620039728585620039f6565b90506000620039828686620040b7565b63ffffffff83166000908152601d602090815260408083208484529091528120919250620039b1888862003ea8565b9050620039bf8282620040c9565b6000818152601e60205260409020620039da888a83620059dd565b506000818152601f6020526040902062002518868883620059dd565b600062003a086031602d848662005aaa565b62003a139162005ad6565b60e01c9392505050565b60006200269762003a2f8484620040b7565b90565b600062003a08600d6009848662005aaa565b36600062003675605182858762005aaa565b36600062003675836051818762005aaa565b6000808360405160200162003a7e9190620058e5565b60408051601f198184030181529082905262003a9f91859060200162005b05565b60405160208183030381529060405290508051602082016000f09150813b6200323857600080fd5b600080600080600062003adc86600362004134565b915091508162003b415760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a436f6d706f7365206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002349565b604051630518e8ab60e41b8152309063518e8ab09062003b6690849060040162004be8565b606060405180830381865afa15801562003b84573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003baa919062005b38565b91986001600160801b039182169850911695509350505050565b600080806012841480159062003bdb575060228414155b1562003bfa57604051638b4aa70b60e01b815260040160405180910390fd5b62003c088585600062004273565b925062003c18858560026200429e565b91506022841462003c2b57600062003c39565b62003c39858560126200429e565b90509250925092565b546001600160801b03808216600160801b9092048116919091031690565b80546000906001600160801b03600160801b820481169116810362003c98576040516375e52f4f60e01b815260040160405180910390fd5b600019016001600160801b039081166000818152600185016020526040812080549190558454909216600160801b909102179092555090565b600062003cdf838362004134565b509392505050565b60008060008062003cfa85600262004134565b915091508162003d605760405162461bcd60e51b815260206004820152602a60248201527f4f7074696f6e7348656c7065723a206e617469766544726f70206f7074696f6e604482015269081b9bdd08199bdd5b9960b21b606482015260840162002349565b604051635caa7efb60e11b8152309063b954fdf69062003d8590849060040162004be8565b6040805180830381865afa15801562003da2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003dc8919062005b81565b6001600160801b03909116969095509350505050565b60003681600184018162003df488888462004273565b60029290920191905062003e0a888884620042c9565b94506001820161ffff8216830162003e2581838b8d62005aaa565b979b909a50969850505061ffff160193505050565b600062003e5a8254600160801b81046001600160801b0390811691161490565b1562003e79576040516375e52f4f60e01b815260040160405180910390fd5b5080546000196001600160801b03600160801b9092048216011660009081526001909101602052604090205490565b600062003eba60716051848662005aaa565b620026979162005bb2565b36600062003675836071818762005aaa565b6000806030831462003efc576040516361d0c2c760e11b815260040160405180910390fd5b62003f0a848460006200429e565b915062003f1a84846010620042f1565b90509250929050565b60008060008062003f3685600162004134565b915091508162003f9b5760405162461bcd60e51b815260206004820152602960248201527f4f7074696f6e7348656c7065723a206c7a52656365697665206f7074696f6e206044820152681b9bdd08199bdd5b9960ba1b606482015260840162002349565b60405163f93e1d6160e01b8152309063f93e1d619062003fc090849060040162004be8565b6040805180830381865afa15801562003fdd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004003919062005bd1565b6001600160801b0391821697911695509350505050565b600062003eba602d600d848662005aaa565b60006200403e60096001848662005aaa565b620040499162005c05565b60c01c9392505050565b6000806010831480159062004069575060208314155b156200408857604051634796aee160e01b815260040160405180910390fd5b62004096848460006200429e565b915060208314620040a957600062003f1a565b62003f1a848460106200429e565b600062003eba60516031848662005aaa565b81546001600160801b038082166000190191600160801b90048116908216036200410657604051638acb5f2760e01b815260040160405180910390fd5b6001600160801b0316600081815260018401602052604090209190915581546001600160801b031916179055565b601c5460405163e5c5e9a360e01b815260009160609183916001600160a01b03169063e5c5e9a3906200416c90889060040162004be8565b600060405180830381865afa1580156200418a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620041b4919081019062005c34565b50905060005b81518110156200426a57604051636e1775e360e01b8152600090819081903090636e1775e390620041f290889088906004016200525f565b600060405180830381865afa15801562004210573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200423a919081019062005c9e565b9250925092508760ff168360ff16036200425f57506001955093506200367a92505050565b9250620041ba915050565b50509250929050565b600060028201620042878184868862005aaa565b620042929162005cfd565b60f01c95945050505050565b600060108201620042b28184868862005aaa565b620042bd9162005d2c565b60801c95945050505050565b6000838383818110620042e057620042e062005096565b919091013560f81c95945050505050565b600060208201620043058184868862005aaa565b620043109162005bb2565b95945050505050565b6155c18062005d5c83390190565b6114d6806200b31d83390190565b614ac0806200c7f383390190565b61244180620112b383390190565b612c7080620136f483390190565b611257806201636483390190565b6138e780620175bb83390190565b610e2e806201aea283390190565b6040518060400160405280600063ffffffff168152602001620043ed6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b905290565b6040518060400160405280600063ffffffff168152602001620043ed6040518060400160405280600063ffffffff16815260200160006001600160a01b031681525090565b611a44806201bcd083390190565b63ffffffff811681146200445857600080fd5b50565b6001600160a01b03811681146200445857600080fd5b600080604083850312156200448557600080fd5b8235620044928162004445565b91506020830135620044a4816200445b565b809150509250929050565b60008083601f840112620044c257600080fd5b5081356001600160401b03811115620044da57600080fd5b6020830191508360208285010111156200367a57600080fd5b600080602083850312156200450757600080fd5b82356001600160401b038111156200451e57600080fd5b6200452c85828601620044af565b90969095509350505050565b60ff811681146200445857600080fd5b600080604083850312156200455c57600080fd5b8235620045698162004538565b9150602083013560028110620044a457600080fd5b60008151808452602080850194506020840160005b83811015620045ba5781516001600160a01b03168752958201959082019060010162004593565b509495945050505050565b6020815260006200269760208301846200457e565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715620046155762004615620045da565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620046465762004646620045da565b604052919050565b60006001600160401b038211156200466a576200466a620045da565b50601f01601f191660200190565b600082601f8301126200468a57600080fd5b8135620046a16200469b826200464e565b6200461b565b818152846020838601011115620046b757600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215620046ea57600080fd5b83356001600160401b038111156200470157600080fd5b6200470f8682870162004678565b9350506020840135620047228162004538565b91506040840135620047348162004538565b809150509250925092565b60005b838110156200475c57818101518382015260200162004742565b50506000910152565b600081518084526200477f8160208601602086016200473f565b601f01601f19169290920160200192915050565b60008282518085526020808601955060208260051b8401016020860160005b84811015620047e457601f19868403018952620047d183835162004765565b98840198925090830190600101620047b2565b5090979650505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200486657888303603f19018552815180516001600160a01b03168452870151878401879052620048528785018262004793565b95880195935050908601906001016200481a565b509098975050505050505050565b600080600080600080600060c0888a0312156200489057600080fd5b87356200489d8162004445565b96506020880135620048af816200445b565b955060408801356001600160401b0380821115620048cc57600080fd5b620048da8b838c0162004678565b965060608a0135955060808a01359150620048f5826200445b565b90935060a089013590808211156200490c57600080fd5b506200491b8a828b01620044af565b989b979a50959850939692959293505050565b600080600080608085870312156200494557600080fd5b8435620049528162004445565b93506020850135925060408501359150606085013562004972816200445b565b939692955090935050565b61ffff811681146200445857600080fd5b60008060408385031215620049a257600080fd5b8235620049af816200497d565b946020939093013593505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b8481101562004a6757898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b8083101562004a515783516001600160e01b0319168252928b019260019290920191908b019062004a25565b50978a01979550505091870191600101620049e7565b50919998505050505050505050565b60008060006040848603121562004a8c57600080fd5b83356001600160401b0381111562004aa357600080fd5b62004ab186828701620044af565b909790965060209590950135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60ff8516815260606020820152600062004b0d60608301858762004ac5565b905082604083015295945050505050565b60006001600160401b0382111562004b3a5762004b3a620045da565b5060051b60200190565b6000602080838503121562004b5857600080fd5b82356001600160401b0381111562004b6f57600080fd5b8301601f8101851362004b8157600080fd5b803562004b926200469b8262004b1e565b81815260059190911b8201830190838101908783111562004bb257600080fd5b928401925b8284101562004bdd57833562004bcd816200445b565b8252928401929084019062004bb7565b979650505050505050565b60208152600062002697602083018462004765565b60208152600062002697602083018462004793565b60008060008060006080868803121562004c2b57600080fd5b85356001600160401b038082111562004c4357600080fd5b62004c5189838a01620044af565b9097509550602088013591508082111562004c6b57600080fd5b5062004c7a8882890162004678565b93505060408601359150606086013562004c94816200445b565b809150509295509295909350565b60006020828403121562004cb557600080fd5b813562002697816200445b565b6000806040838503121562004cd657600080fd5b8235620049af8162004445565b6001600160801b03811681146200445857600080fd5b60006020828403121562004d0c57600080fd5b8135620026978162004ce3565b60008060006040848603121562004d2f57600080fd5b83356001600160401b038082111562004d4757600080fd5b62004d5587838801620044af565b9095509350602086013591508082111562004d6f57600080fd5b5062004d7e8682870162004678565b9150509250925092565b6000806000806040858703121562004d9f57600080fd5b84356001600160401b038082111562004db757600080fd5b62004dc588838901620044af565b9096509450602087013591508082111562004ddf57600080fd5b5062004dee87828801620044af565b95989497509550505050565b80518015158114620037b357600080fd5b6000806040838503121562004e1f57600080fd5b825162004e2c816200445b565b915062003f1a6020840162004dfa565b80516001600160401b0381168114620037b357600080fd5b8051620037b38162004538565b60008060006060848603121562004e7757600080fd5b62004e828462004e3c565b9250602084015162004e948162004538565b6040850151909250620047348162004538565b600082601f83011262004eb957600080fd5b815162004eca6200469b826200464e565b81815284602083860101111562004ee057600080fd5b62004ef38260208301602087016200473f565b949350505050565b60006020828403121562004f0e57600080fd5b81516001600160401b0381111562004f2557600080fd5b62004ef38482850162004ea7565b600082601f83011262004f4557600080fd5b8151602062004f586200469b8362004b1e565b8083825260208201915060208460051b87010193508684111562004f7b57600080fd5b602086015b8481101562004fa457805162004f96816200445b565b835291830191830162004f80565b509695505050505050565b60006020828403121562004fc257600080fd5b81516001600160401b038082111562004fda57600080fd5b9083019060c0828603121562004fef57600080fd5b62004ff9620045f0565b620050048362004e3c565b8152620050146020840162004e54565b6020820152620050276040840162004e54565b60408201526200503a6060840162004e54565b60608201526080830151828111156200505257600080fd5b620050608782860162004f33565b60808301525060a0830151828111156200507957600080fd5b620050878782860162004f33565b60a08301525095945050505050565b634e487b7160e01b600052603260045260246000fd5b8183823760009101908152919050565b606081526000620050d1606083018662004765565b905083602083015260ff83166040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111562002e715762002e71620050ea565b63ffffffff851681526001600160a01b0384166020820152608060408201819052600090620051489083018562004765565b905082606083015295945050505050565b6000602082840312156200516c57600080fd5b5051919050565b6000806000606084860312156200518957600080fd5b8351620051968162004538565b602085015160409095015190969495509392505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200486657888303603f190185528151805163ffffffff168452878101516001600160a01b0316888501528681015160a088860181905290620052208287018262004765565b9150506060808301518187015250608080830151925085820381870152506200524a818362004765565b968901969450505090860190600101620051d6565b60408152600062005274604083018562004765565b90508260208301529392505050565b60208152600062004ef360208301848662004ac5565b60ff818116838216019081111562002e715762002e71620050ea565b600060208284031215620052c857600080fd5b815162002697816200445b565b634e487b7160e01b600052602160045260246000fd5b600060018060a01b038089168352808816602084015260c060408401526200531760c08401886200457e565b8187166060850152818616608085015283810360a08501526200533b81866200457e565b9a9950505050505050505050565b60ff8716815260c0602082015260006200536760c08301886200457e565b6001600160a01b038716604084015282810360608401526200538a81876200457e565b90506001600160401b038516608084015282810360a0840152620053af81856200457e565b9998505050505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156200486657603f19898403810186528251805163ffffffff16855288015188850188905280516001600160401b0316888601528089015160ff9081166060808801919091528983015182166080808901919091529083015190911660a0808801919091529082015160c08088015290620054686101008801836200457e565b920151868303840160e08801529190506200548481836200457e565b978a0197955050509187019150600101620053e5565b602080825282518282018190526000919060409081850190868401855b82811015620054fe578151805163ffffffff9081168652908701518051909116878601528601516001600160a01b03168585015260609093019290850190600101620054b7565b5091979650505050505050565b6000602082840312156200551e57600080fd5b8151620026978162004ce3565b6001600160801b03818116838216028082169190828114620055515762005551620050ea565b505092915050565b602080825282518282018190526000919060409081850190868401855b82811015620054fe578151805163ffffffff90811686529087015180516001600160801b031688870152808801516001600160401b0316878701528601511660608501526080909301929085019060010162005576565b600060ff821660ff8103620055e657620055e6620050ea565b60010192915050565b602080825282518282018190526000919060409081850190868401855b82811015620054fe578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016200560c565b602080825282518282018190526000919060409081850190868401855b82811015620054fe578151805163ffffffff168552868101516001600160401b0316878601528581015161ffff16868601526060908101516001600160801b031690850152608090930192908501906001016200569e565b60ff828116828216039081111562002e715762002e71620050ea565b600181811c908216806200572757607f821691505b6020821081036200574857634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038881168252871660208201526040810186905261ffff8516606082015260c0608082018190526000906200578e908301858762004ac5565b82810360a08401526200533b818562004765565b600081620057b457620057b4620050ea565b506000190190565b604081526000620057d1604083018562004765565b828103602084015262004310818562004765565b608081526000620057fa608083018762004765565b82810360208401526200580e818762004765565b604084019590955250506001600160a01b039190911660609091015292915050565b6000602082840312156200584357600080fd5b8151620026978162004445565b63ffffffff88168152600060018060a01b03808916602084015260c060408401526200588060c084018962004765565b876060850152818716608085015283810360a0850152620058a381868862004ac5565b9b9a5050505050505050505050565b6001600160e01b0319831681528151600090620058d78160048501602087016200473f565b919091016004019392505050565b60008251620058f98184602087016200473f565b9190910192915050565b6000602082840312156200591657600080fd5b620026978262004dfa565b63ffffffff8751168152602087015160208201526001600160401b03604088015116604082015260018060a01b038616606082015284608082015260e060a082015260006200597560e08301858762004ac5565b82810360c0840152620053af818562004765565b601f8211156200314c576000816000526020600020601f850160051c81016020861015620059b45750805b601f850160051c820191505b81811015620059d557828155600101620059c0565b505050505050565b6001600160401b03831115620059f757620059f7620045da565b62005a0f8362005a08835462005712565b8362005989565b6000601f84116001811462005a46576000851562005a2d5750838201355b600019600387901b1c1916600186901b17835562005aa3565b600083815260209020601f19861690835b8281101562005a79578685013582556020948501946001909201910162005a57565b508682101562005a975760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6000808585111562005abb57600080fd5b8386111562005ac957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015620055515760049490940360031b84901b1690921692915050565b6000835162005b198184602088016200473f565b83519083019062005b2f8183602088016200473f565b01949350505050565b60008060006060848603121562005b4e57600080fd5b835162005b5b816200497d565b602085015190935062005b6e8162004ce3565b6040850151909250620047348162004ce3565b6000806040838503121562005b9557600080fd5b825162005ba28162004ce3565b6020939093015192949293505050565b8035602083101562002e7157600019602084900360031b1b1692915050565b6000806040838503121562005be557600080fd5b825162005bf28162004ce3565b6020840151909250620044a48162004ce3565b6001600160c01b03198135818116916008851015620055515760089490940360031b84901b1690921692915050565b6000806040838503121562005c4857600080fd5b82516001600160401b038082111562005c6057600080fd5b62005c6e8683870162004ea7565b9350602085015191508082111562005c8557600080fd5b5062005c948582860162004ea7565b9150509250929050565b60008060006060848603121562005cb457600080fd5b835162005cc18162004538565b60208501519093506001600160401b0381111562005cde57600080fd5b62005cec8682870162004ea7565b925050604084015190509250925092565b6001600160f01b03198135818116916002851015620055515760029490940360031b84901b1690921692915050565b6001600160801b03198135818116916010851015620055515760109490940360031b84901b169092169291505056fe60c06040526001600d553480156200001657600080fd5b50604051620055c1380380620055c18339810160408190526200003991620002cd565b81816001600160a01b0381166200006b57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200007681620000cd565b5063ffffffff166080526040516200008e90620002bf565b604051809103906000f080158015620000ab573d6000803e3d6000fd5b506001600160a01b031660a0819052620000c5906200011d565b50506200034a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001276200028e565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019991906200031f565b620001b75760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620001f25760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af5910160405180910390a150565b6000546001600160a01b03163314620002bd5760405163118cdaa760e01b815233600482015260240162000062565b565b6101e380620053de83390190565b60008060408385031215620002e157600080fd5b825163ffffffff81168114620002f657600080fd5b60208401519092506001600160a01b03811681146200031457600080fd5b809150509250929050565b6000602082840312156200033257600080fd5b815180151581146200034357600080fd5b9392505050565b60805160a05161504b6200039360003960006107810152600081816105310152818161278901528181612f7b01528181612fe20152818161355301526135ba015261504b6000f3fe6080604052600436106103505760003560e01c80639132e5c3116101c6578063c9fc7bcd116100f7578063ddc28c5811610095578063e8964e811161006f578063e8964e8114610b8f578063ef667aa114610baf578063f2fde38b14610bfa578063f64be4c714610c1a57600080fd5b8063ddc28c5814610b2e578063e1758bd814610b5b578063e4fe1d9414610b6f57600080fd5b8063d4b4ec8f116100d1578063d4b4ec8f14610a72578063d70b890214610a92578063dc706a6214610ab2578063dc93c8a214610ae257600080fd5b8063c9fc7bcd146109f6578063ca5eb5e114610a3d578063cb5026b914610a5d57600080fd5b8063a7229fd911610164578063aafea3121161013e578063aafea31214610976578063b96a277f14610996578063c28e0eed146109b6578063c9a54a99146109d657600080fd5b8063a7229fd914610916578063a825d74714610936578063aafe5e071461095657600080fd5b80639c6d7340116101a05780639c6d73401461086f5780639d7f9775146108b6578063a0dd43fc146108d6578063a718531b146108f657600080fd5b80639132e5c31461081a57806391d20fa11461083c5780639535ff301461084f57600080fd5b80635b17bb70116102a05780636f50a8031161023e57806379624ca91161021857806379624ca9146107a35780637cb59012146107bc578063861e1ca5146107dc5780638da5cb5b146107fc57600080fd5b80636f50a80314610724578063715018a61461075a578063733180911461076f57600080fd5b80636a14d7151161027a5780636a14d715146106655780636bf73fa3146106855780636dbd9f90146106a55780636e83f5bb146106c557600080fd5b80635b17bb70146105b65780636750cd4c14610615578063697fe6b61461064557600080fd5b80632baf0be71161030d578063402f8468116102e7578063402f8468146104c057806340f80683146104ff578063416ecebf1461051f578063587cde1e1461056857600080fd5b80632baf0be7146104355780632e80fbf31461045957806335d330b01461047957600080fd5b80630c0c389e1461035557806314f651a91461036a578063183c834f146103a85780632637a450146103c85780632a56c1b0146103e85780632b3197b914610408575b600080fd5b610368610363366004613ef7565b610c50565b005b34801561037657600080fd5b5061037f610d4e565b6040805163ffffffff90931683526001600160a01b039091166020830152015b60405180910390f35b3480156103b457600080fd5b506103686103c3366004613fa6565b610d80565b6103db6103d6366004613ff1565b611027565b60405161039f9190614043565b3480156103f457600080fd5b50610368610403366004614085565b61114d565b34801561041457600080fd5b506104286104233660046140f4565b6111ed565b60405161039f9190614198565b34801561044157600080fd5b5061044b60001981565b60405190815260200161039f565b34801561046557600080fd5b506103686104743660046141c2565b6112b8565b34801561048557600080fd5b5061044b610494366004614229565b600c60209081526000948552604080862082529385528385208152918452828420909152825290205481565b3480156104cc57600080fd5b506104e06104db36600461426b565b611427565b604080516001600160a01b03909316835290151560208301520161039f565b34801561050b57600080fd5b5061036861051a3660046141c2565b6114a5565b34801561052b57600080fd5b506105537f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161039f565b34801561057457600080fd5b5061059e610583366004614295565b600f602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161039f565b3480156105c257600080fd5b506105fd6105d13660046142b0565b60016020908152600093845260408085208252928452828420905282529020546001600160401b031681565b6040516001600160401b03909116815260200161039f565b34801561062157600080fd5b506106356106303660046142ec565b61160b565b604051901515815260200161039f565b34801561065157600080fd5b50610368610660366004614307565b61165b565b34801561067157600080fd5b50610368610680366004613fa6565b6116d0565b34801561069157600080fd5b506103686106a0366004614402565b611aae565b3480156106b157600080fd5b506103686106c03660046144e5565b611b18565b3480156106d157600080fd5b506107056106e03660046142ec565b600b60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161039f565b34801561073057600080fd5b5061059e61073f3660046142ec565b600a602052600090815260409020546001600160a01b031681565b34801561076657600080fd5b50610368611bba565b34801561077b57600080fd5b5061059e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107af57600080fd5b50600d5460011415610635565b3480156107c857600080fd5b506103686107d7366004614575565b611bce565b3480156107e857600080fd5b506106356107f73660046145c6565b611cba565b34801561080857600080fd5b506000546001600160a01b031661059e565b34801561082657600080fd5b5061082f611d26565b60405161039f91906145f1565b61036861084a36600461463e565b611d88565b34801561085b57600080fd5b5061036861086a3660046146e8565b611f18565b34801561087b57600080fd5b506105fd61088a3660046142b0565b60036020908152600093845260408085208252928452828420905282529020546001600160401b031681565b3480156108c257600080fd5b506106356108d13660046146e8565b61217c565b3480156108e257600080fd5b506105fd6108f13660046142b0565b612256565b34801561090257600080fd5b5061036861091136600461472b565b6122b6565b34801561092257600080fd5b50610368610931366004614757565b6125d6565b34801561094257600080fd5b50610368610951366004614775565b6125ee565b34801561096257600080fd5b5061044b6109713660046142b0565b612739565b34801561098257600080fd5b506103686109913660046147b2565b6127b9565b3480156109a257600080fd5b5061059e6109b136600461426b565b6129e2565b3480156109c257600080fd5b506103686109d1366004614295565b612a51565b3480156109e257600080fd5b506106356109f13660046145c6565b612aae565b348015610a0257600080fd5b5061044b610a113660046147ce565b600260209081526000948552604080862082529385528385208152918452828420909152825290205481565b348015610a4957600080fd5b50610368610a58366004614295565b612b13565b348015610a6957600080fd5b5061044b600081565b348015610a7e57600080fd5b50610368610a8d36600461472b565b612b73565b348015610a9e57600080fd5b50610368610aad3660046147ce565b612db1565b348015610abe57600080fd5b50610635610acd366004614295565b60056020526000908152604090205460ff1681565b348015610aee57600080fd5b50610635610afd36600461426b565b6001600160a01b03918216600090815260066020908152604080832063ffffffff9490941683529290522054161590565b348015610b3a57600080fd5b50610b4e610b49366004613ff1565b612ea0565b60405161039f9190614810565b348015610b6757600080fd5b50600061059e565b348015610b7b57600080fd5b50600e5461059e906001600160a01b031681565b348015610b9b57600080fd5b50610368610baa366004614295565b61310c565b348015610bbb57600080fd5b50610705610bca36600461426b565b6008602090815260009283526040808420909152908252902080546001909101546001600160a01b039091169082565b348015610c0657600080fd5b50610368610c15366004614295565b613270565b348015610c2657600080fd5b5061059e610c353660046142ec565b6009602052600090815260409020546001600160a01b031681565b610c9f86610c6160208a018a6142ec565b60208a0135610c7660608c0160408d01614827565b898989604051602001610c8b93929190614842565b6040516020818303038152906040526132ae565b506040516313137d6560e01b81526001600160a01b038716906313137d65903490610cda908b908a908a908a9033908b908b906004016148be565b6000604051808303818588803b158015610cf357600080fd5b505af1158015610d07573d6000803e3d6000fd5b50505050507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca048787604051610d3d929190614915565b60405180910390a150505050505050565b600080610d5e600d546001141590565b610d6a57600080610d78565b610d78600d5460a081901c91565b915091509091565b6001600160a01b038216600090815260056020526040902054829060ff16610dbb57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615610e5e576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2f9190614951565b6002811115610e4057610e4061493b565b03610e5e576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615610efa576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190614980565b610efa57604051630e476aa960e21b815260040160405180910390fd5b610f0388613469565b6000610f0f8989611427565b9150508015610f3157604051633c075f7560e01b815260040160405180910390fd5b85600003610f79576001600160a01b038916600090815260086020908152604080832063ffffffff8c168452909152812080546001600160a01b031916815560010155610fdf565b438611610f99576040516302efcf9160e11b815260040160405180910390fd5b6001600160a01b03898116600090815260086020908152604080832063ffffffff8d168452909152902080546001600160a01b0319169189169190911781556001018690555b7f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092889898989604051611014949392919061499d565b60405180910390a1505050505050505050565b61102f613e40565b61103c60208401846142ec565b336001600d54146110605760405163ee120b0960e01b815260040160405180910390fd5b63ffffffff60a01b60a083811b919091166001600160a01b03831617600d5561108e908601608087016149cd565b80156110a35750600e546001600160a01b0316155b156110c157604051632d7b695560e11b815260040160405180910390fd5b6000806110ce33886134ba565b9150915060006110db3490565b905060006110f76110f260a08b0160808c016149cd565b613766565b905061110884604001518383613802565b600e5460408501516020015161112a916001600160a01b03169083868c613850565b60408401515161113c9083858b61387d565b50506001600d555095945050505050565b61115685613469565b600083838360405160200161116d93929190614842565b60408051601f1981840301815291905290506111ab8661119060208801886142ec565b60208801356111a560608a0160408b01614827565b856132ae565b507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca0485876040516111dd929190614915565b60405180910390a1505050505050565b6001600160a01b038316600090815260056020526040902054606090849060ff1661122b57604051631bc58ef360e11b815260040160405180910390fd5b604051639c33abf760e01b815263ffffffff80861660048301526001600160a01b0388811660248401529085166044830152861690639c33abf790606401600060405180830381865afa158015611286573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ae9190810190614a7d565b9695505050505050565b6112c185613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461133357604051637182306f60e01b815260048101829052602481018390526044015b60405180910390fd5b6001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b039081169084161180159061137f575080155b156113a857604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b0387168452909152908190206000199055517faf0450c392c4f702515a457a362328c8aa21916048ca6d0419e248b30cb55292906111dd90879087908a9088908890614ab1565b6001600160a01b03808316600090815260076020908152604080832063ffffffff86168452909152812054909116908161149e5763ffffffff83166000908152600a60205260409020546001600160a01b031691508161149a57604051633c74268360e11b815260040160405180910390fd5b5060015b9250929050565b6114ae85613469565b6001600160a01b038516600090815260026020908152604080832063ffffffff88168452825280832086845282528083206001600160401b038616845290915290205481811461151b57604051637182306f60e01b8152600481018290526024810183905260440161132a565b80158061156557506001600160a01b038616600090815260016020908152604080832063ffffffff8916845282528083208784529091529020546001600160401b03908116908416115b1561158e57604051630c09b63560e41b81526001600160401b038416600482015260240161132a565b6001600160a01b038616600090815260026020908152604080832063ffffffff89168452825280832087845282528083206001600160401b038716845290915280822091909155517f7f68a37a6e69a0de35024a234558f9efe4b33b58657753d21eaaa82d51c3510e906111dd90879087908a9088908890614ab1565b63ffffffff81166000908152600960205260408120546001600160a01b031615801590611655575063ffffffff82166000908152600a60205260409020546001600160a01b031615155b92915050565b336001600160a01b03168b6001600160a01b03168d6001600160a01b03167f8a0b1dce321c5c5fb42349bce46d18087c04140de520917661fb923e44a904b98d8d8d8d8d8d8d8d8d8d6040516116ba9a99989796959493929190614aee565b60405180910390a4505050505050505050505050565b6001600160a01b038216600090815260056020526040902054829060ff1615801561170357506001600160a01b03811615155b156117215760405163a4ff2ec360e01b815260040160405180910390fd5b826001600160a01b038116156117c4576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117959190614951565b60028111156117a6576117a661493b565b036117c4576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615611860576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190614980565b61186057604051630e476aa960e21b815260040160405180910390fd5b61186988613469565b6001600160a01b03808916600090815260076020908152604080832063ffffffff8c168452909152902054811690871681036118b85760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03898116600081815260076020908152604080832063ffffffff8e168085529083529281902080546001600160a01b031916958d1695861790558051938452908301919091528101919091527fcd6f92f5ac6185a5acfa02c92090746cec64d777269cbcd0ed031e396657a1c29060600160405180910390a18515611a32576001600160a01b038116158061195b57506001600160a01b038716155b1561197957604051633c075f7560e01b815260040160405180910390fd5b60006040518060400160405280836001600160a01b0316815260200188436119a19190614b6d565b90526001600160a01b038b8116600090815260086020908152604080832063ffffffff8f168452825291829020845181546001600160a01b03191694169390931783558301516001909201829055519192507f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611a24918d918d91879161499d565b60405180910390a150611aa3565b6001600160a01b038916600090815260086020908152604080832063ffffffff8c16845290915280822080546001600160a01b0319168155600101829055517f4e0a5bbfa0c11a64effb1ada324b5437a17272e1aed9320398715ef71bb2092891611014918c918c9186919061499d565b505050505050505050565b336001600160a01b03168a6001600160a01b03167f7edfa10fe10193301ad8a8bea7e968c7bcabcc64981f368e3aeada40ce26ae2c8d8c8c8c8c8c8c8c8c8c604051611b039a99989796959493929190614b80565b60405180910390a35050505050505050505050565b6001600160a01b038316600090815260056020526040902054839060ff16611b5357604051631bc58ef360e11b815260040160405180910390fd5b611b5c85613469565b604051631077eb9160e11b81526001600160a01b038516906320efd72290611b8c90889087908790600401614bdf565b600060405180830381600087803b158015611ba657600080fd5b505af1158015611aa3573d6000803e3d6000fd5b611bc26138a7565b611bcc60006138d4565b565b336000908152600c602090815260408083206001600160a01b03891684528252808320878452825280832061ffff8716845290915290205415611c2457604051630542086560e21b815260040160405180910390fd5b8181604051611c34929190614cd2565b60408051918290038220336000818152600c60209081528482206001600160a01b038c16835281528482208a8352815284822061ffff8a168352905292909220557f3d52ff888d033fd3dd1d8057da59e850c91d91a72c41dfa445b247dfedeb6dc191611cab919088908890889088908890614ce2565b60405180910390a15050505050565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590611cea908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613924565b9392505050565b60606004805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050505050905090565b6001600160a01b038089166000908152600c60209081526040808320938b168352928152828220898352815282822061ffff891683529052818120549151611dd39087908790614cd2565b60405180910390209050808214611e07576040516335ca595f60e01b8152600481018390526024810182905260440161132a565b6001600160a01b03808b166000908152600c60209081526040808320938d168084529382528083208c8452825280832061ffff8c168452909152908190206001905551630685081360e51b815263d0a10260903490611e76908e908d908c908c9033908d908d90600401614d2c565b6000604051808303818588803b158015611e8f57600080fd5b505af1158015611ea3573d6000803e3d6000fd5b50505050507e36c98efcf9e6641dfbc9051f66f405253e8e0c2ab4a24dccda15595b7378c88a8a8a8a604051611f0494939291906001600160a01b039485168152929093166020830152604082015261ffff91909116606082015260800190565b60405180910390a150505050505050505050565b6001600160a01b038116600090815260056020526040902054819060ff16158015611f4b57506001600160a01b03811615155b15611f695760405163a4ff2ec360e01b815260040160405180910390fd5b816001600160a01b0381161561200c576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdd9190614951565b6002811115611fee57611fee61493b565b0361200c57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b038216156120a8576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208b9190614980565b6120a857604051630e476aa960e21b815260040160405180910390fd5b6120b187613469565b6001600160a01b03878116600090815260066020908152604080832063ffffffff8b1684529091529020548187169116036120ff5760405163d0ecb66b60e01b815260040160405180910390fd5b6001600160a01b03878116600081815260066020908152604080832063ffffffff8c168085529083529281902080546001600160a01b031916958b1695861790558051938452908301919091528101919091527f4cff966ebee29a156dcb34cf72c1d06231fb1777f6bdf6e8089819232f002b1c90606001610d3d565b600080600061218b8686611427565b91509150816001600160a01b0316846001600160a01b0316036121b357600192505050611d1f565b6000816121e8576001600160a01b038716600090815260086020908152604080832063ffffffff8a16845290915290206121fe565b63ffffffff86166000908152600b602052604090205b6040805180820190915281546001600160a01b03908116808352600190930154602083015290925086161480156122385750438160200151115b156122495760019350505050611d1f565b5060009695505050505050565b6001600160a01b038316600090815260016020908152604080832063ffffffff8616845282528083208484529091528120546001600160401b03165b6122a1858585846001016139a8565b156122ae57600101612292565b949350505050565b6122be6138a7565b6001600160a01b038216600090815260056020526040902054829060ff166122f957604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b0381161561239c576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612349573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236d9190614951565b600281111561237e5761237e61493b565b0361239c576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612438576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156123f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241b9190614980565b61243857604051630e476aa960e21b815260040160405180910390fd5b63ffffffff87166000908152600a60205260409020546001600160a01b03908116908716810361247b5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff88166000818152600a602090815260409182902080546001600160a01b0319166001600160a01b038c169081179091558251938452908301527fc16891855cffb4a5ac51ac11864a3f3c96ba816cc45fe686c987ae36277de5ec910160405180910390a185156125695763ffffffff88166000908152600b6020526040902080546001600160a01b0319166001600160a01b0383161781556125228743614b6d565b600182018190556040517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f89161255b918c918691614d7f565b60405180910390a1506125cc565b63ffffffff88166000908152600b602052604080822080546001600160a01b0319168155600101829055517f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8916125c3918b918591614d7f565b60405180910390a15b5050505050505050565b6125de6138a7565b6125e98383836139f5565b505050565b612605826125ff60208601866142ec565b3361217c565b612622576040516313e9bb2b60e21b815260040160405180910390fd5b6001600160a01b0382166000908152600160209081526040822090829061264b908701876142ec565b63ffffffff168152602080820192909252604090810160009081208784013582529092529020546001600160401b03169050612688848483613924565b6126a55760405163751cb20f60e01b815260040160405180910390fd5b6126b0848483613a18565b6126cc5760405162bbf0e560e11b815260040160405180910390fd5b6126f8836126dd60208701876142ec565b60208701356126f26060890160408a01614827565b86613ad5565b7f0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b484848460405161272b93929190614da6565b60405180910390a150505050565b6001600160a01b038316600090815260036020908152604080832063ffffffff8616845282528083208484529091528120548190612781906001600160401b03166001614dce565b90506127b0817f0000000000000000000000000000000000000000000000000000000000000000878787613b3b565b95945050505050565b6127c16138a7565b6001600160a01b038116600090815260056020526040902054819060ff166127fc57604051631bc58ef360e11b815260040160405180910390fd5b816001600160a01b0381161561289f576001816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561284c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128709190614951565b60028111156128815761288161493b565b0361289f57604051633d00f6f160e11b815260040160405180910390fd5b82846001600160a01b0382161561293b576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa1580156128fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291e9190614980565b61293b57604051630e476aa960e21b815260040160405180910390fd5b63ffffffff86166000908152600960205260409020546001600160a01b0380871691160361297c5760405163d0ecb66b60e01b815260040160405180910390fd5b63ffffffff861660008181526009602090815260409182902080546001600160a01b0319166001600160a01b038a169081179091558251938452908301527f16aa0f528038ab41019e95bae5b418a50ba8532c5800e3b7ea2f517d3fa625f591016111dd565b6001600160a01b03808316600090815260066020908152604080832063ffffffff861684529091529020541680611655575063ffffffff81166000908152600960205260409020546001600160a01b03168061165557604051636c1ccdb560e01b815260040160405180910390fd5b612a596138a7565b600e80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd476ec5ec1ac11cec3714d41e7ea49419471aceb9bd0dff1becfc3e363a62396906020015b60405180910390a150565b6001600160a01b03811660009081526001602090815260408220611d1f91859185918590612ade908501856142ec565b63ffffffff168152602080820192909252604090810160009081208984013582529092529020546001600160401b0316613a18565b336000818152600f602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d79839819101612aa3565b6001600160a01b038216600090815260056020526040902054829060ff16612bae57604051631bc58ef360e11b815260040160405180910390fd5b826001600160a01b03811615612c51576000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c229190614951565b6002811115612c3357612c3361493b565b03612c51576040516342756b1b60e11b815260040160405180910390fd5b83856001600160a01b03821615612ced576040516319d4335360e21b815263ffffffff821660048201526001600160a01b03831690636750cd4c90602401602060405180830381865afa158015612cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd09190614980565b612ced57604051630e476aa960e21b815260040160405180910390fd5b612cf56138a7565b84600003612d295763ffffffff87166000908152600b6020526040812080546001600160a01b031916815560010155612d7e565b438511612d49576040516302efcf9160e11b815260040160405180910390fd5b63ffffffff87166000908152600b6020526040902080546001600160a01b0319166001600160a01b0388161781556001018590555b7f55b28633cdb29709386f555dfc54418592ad475ce7a65a78ac5928af60ffb8f8878787604051610d3d93929190614d7f565b612dba84613469565b612dc5848484612256565b612dd0906001614dce565b6001600160401b0316816001600160401b031614612e0c57604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001600160a01b038416600081815260016020908152604080832063ffffffff8816808552908352818420878552835292819020805467ffffffffffffffff19166001600160401b038716908117909155815193845291830186905282019290925260608101919091527f28f40053783033ef755556a0c3315379141f51a33aed8334174ffbadd90bde489060800161272b565b6040805180820190915260008082526020820152612ec460a08401608085016149cd565b8015612ed95750600e546001600160a01b0316155b15612ef757604051632d7b695560e11b815260040160405180910390fd5b6001600160a01b03821660009081526003602090815260408220908290612f20908701876142ec565b63ffffffff16815260208082019290925260409081016000908120878401358252909252902054612f5b906001600160401b03166001614dce565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001856001600160a01b03168152602001866000016020810190612fc791906142ec565b63ffffffff1681526020018660200135815260200161301f847f0000000000000000000000000000000000000000000000000000000000000000888a600001602081019061301591906142ec565b8b60200135613b3b565b81526020016130316040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061307e9050856109b160208901896142ec565b90506001600160a01b03811663d80e9bd98361309d60608a018a614dee565b6130ad60a08c0160808d016149cd565b6040518563ffffffff1660e01b81526004016130cc9493929190614e34565b6040805180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190614f28565b6131146138a7565b6040516301ffc9a760e01b81526325fc096160e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561315f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131839190614980565b6131a05760405163eb64f35d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156131da5760405163457517f360e11b815260040160405180910390fd5b6001600160a01b0381166000818152600560209081526040808320805460ff191660019081179091556004805491820181559093527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90920180546001600160a01b0319168417905590519182527f6b374d56679ca9463f27c85c6311e2bb7fde69bf201d3da39d53f10bd9d78af59101612aa3565b6132786138a7565b6001600160a01b0381166132a257604051631e4fbdf760e01b81526000600482015260240161132a565b6132ab816138d4565b50565b6001600160a01b038516600090815260016020908152604080832063ffffffff8816845282528083208684529091528120546001600160401b0390811690841681101561339c57600181015b846001600160401b0316816001600160401b03161161334f5761331f888888846139a8565b61334757604051630c09b63560e41b81526001600160401b038216600482015260240161132a565b6001016132fa565b506001600160a01b038716600090815260016020908152604080832063ffffffff8a16845282528083208884529091529020805467ffffffffffffffff19166001600160401b0386161790555b82516020808501919091206001600160a01b038916600090815260028352604080822063ffffffff8b168352845280822089835284528082206001600160401b0389168352909352919091205490925080831461341657604051637182306f60e01b8152600481018290526024810184905260440161132a565b50506001600160a01b03909516600090815260026020908152604080832063ffffffff90971683529581528582209482529384528481206001600160401b03909316815291909252918220919091555090565b336001600160a01b0382161480159061349c57506001600160a01b038181166000908152600f6020526040902054163314155b156132ab5760405163c4c5259360e01b815260040160405180910390fd5b6134c2613e40565b600080613533856134d660208701876142ec565b6001600160a01b0391909116600090815260036020908152604080832063ffffffff949094168352928152828220818901358352905220805467ffffffffffffffff19811660016001600160401b03928316019182161790915590565b905060006040518060e00160405280836001600160401b031681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001876001600160a01b0316815260200186600001602081019061359f91906142ec565b63ffffffff168152602001866020013581526020016135ed847f00000000000000000000000000000000000000000000000000000000000000008a8a600001602081019061301591906142ec565b81526020016135ff6040880188614dee565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250929350915061364c9050876109b160208901896142ec565b90506000806001600160a01b038316634389e58f8561366e60608c018c614dee565b61367e60a08e0160808f016149cd565b6040518563ffffffff1660e01b815260040161369d9493929190614e34565b6000604051808303816000875af11580156136bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136e49190810190614f44565b90925090507f1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f8161371860608b018b614dee565b866040516137299493929190614f92565b60405180910390a1506040805160608101825260a09094015184526001600160401b03909416602084015292820192909252925090509250929050565b600081156137fd57600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156137b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137da9190614fd2565b9050806000036137fd57604051631775123760e01b815260040160405180910390fd5b919050565b82518210806138145750808360200151115b156125e95782516020840151604051634f3ec0d360e01b815260048101929092526024820184905260448201526064810182905260840161132a565b831561386157613861858386613bb4565b82841015613876576138768582868603613bb4565b5050505050565b831561388d5761388d8285613bef565b828410156138a1576138a181858503613bef565b50505050565b6000546001600160a01b03163314611bcc5760405163118cdaa760e01b815233600482015260240161132a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080826001600160401b031611806122ae5750604051600162842fc360e01b031981526001600160a01b0384169063ff7bd03d90613967908790600401614feb565b602060405180830381865afa158015613984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ae9190614980565b6001600160a01b038416600090815260026020908152604080832063ffffffff87168452825280832085845282528083206001600160401b03851684529091529020541515949350505050565b6001600160a01b038316613a0d576125e98282613bef565b6125e9838383613bb4565b60006001600160401b038216613a346060860160408701614827565b6001600160401b031611806122ae57506001600160a01b03831660009081526002602090815260408220908290613a6d908801886142ec565b63ffffffff1663ffffffff1681526020019081526020016000206000866020013581526020019081526020016000206000866040016020810190613ab19190614827565b6001600160401b031681526020810191909152604001600020541415949350505050565b80613af3576040516304df7fdb60e11b815260040160405180910390fd5b6001600160a01b03909416600090815260026020908152604080832063ffffffff90961683529481528482209382529283528381206001600160401b03909216815291522055565b600085856001600160a01b03861660405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b6001600160a01b038216613bdb576040516306b7a93160e41b815260040160405180910390fd5b6125e96001600160a01b0384168383613c9c565b6001600160a01b038216613c16576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613c63576040519150601f19603f3d011682016040523d82523d6000602084013e613c68565b606091505b50509050806125e957604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161132a565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b1790526125e991859190600090613cfa90841683613d48565b90508051600014158015613d1f575080806020019051810190613d1d9190614980565b155b156125e957604051635274afe760e01b81526001600160a01b038416600482015260240161132a565b6060611d1f8383600084600080856001600160a01b03168486604051613d6e9190614ff9565b60006040518083038185875af1925050503d8060008114613dab576040519150601f19603f3d011682016040523d82523d6000602084013e613db0565b606091505b50915091506112ae868383606082613dd057613dcb82613e17565b611d1f565b8151158015613de757506001600160a01b0384163b155b15613e1057604051639996b31560e01b81526001600160a01b038516600482015260240161132a565b5080611d1f565b805115613e275780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180606001604052806000801916815260200160006001600160401b03168152602001613e82604051806040016040528060008152602001600081525090565b905290565b600060608284031215613e9957600080fd5b50919050565b80356001600160a01b03811681146137fd57600080fd5b60008083601f840112613ec857600080fd5b5081356001600160401b03811115613edf57600080fd5b60208301915083602082850101111561149e57600080fd5b600080600080600080600060e0888a031215613f1257600080fd5b613f1c8989613e87565b9650613f2a60608901613e9f565b95506080880135945060a08801356001600160401b0380821115613f4d57600080fd5b613f598b838c01613eb6565b909650945060c08a0135915080821115613f7257600080fd5b50613f7f8a828b01613eb6565b989b979a50959850939692959293505050565b803563ffffffff811681146137fd57600080fd5b60008060008060808587031215613fbc57600080fd5b613fc585613e9f565b9350613fd360208601613f92565b9250613fe160408601613e9f565b9396929550929360600135925050565b6000806040838503121561400457600080fd5b82356001600160401b0381111561401a57600080fd5b830160a0818603121561402c57600080fd5b915061403a60208401613e9f565b90509250929050565b6000608082019050825182526001600160401b036020840151166020830152604083015161407e604084018280518252602090810151910152565b5092915050565b600080600080600060c0868803121561409d57600080fd5b6140a686613e9f565b94506140b58760208801613e87565b93506080860135925060a08601356001600160401b038111156140d757600080fd5b6140e388828901613eb6565b969995985093965092949392505050565b6000806000806080858703121561410a57600080fd5b61411385613e9f565b935061412160208601613e9f565b925061412f60408601613f92565b915061413d60608601613f92565b905092959194509250565b60005b8381101561416357818101518382015260200161414b565b50506000910152565b60008151808452614184816020860160208601614148565b601f01601f19169290920160200192915050565b602081526000611d1f602083018461416c565b80356001600160401b03811681146137fd57600080fd5b600080600080600060a086880312156141da57600080fd5b6141e386613e9f565b94506141f160208701613f92565b935060408601359250614206606087016141ab565b949793965091946080013592915050565b803561ffff811681146137fd57600080fd5b6000806000806080858703121561423f57600080fd5b61424885613e9f565b935061425660208601613e9f565b92506040850135915061413d60608601614217565b6000806040838503121561427e57600080fd5b61428783613e9f565b915061403a60208401613f92565b6000602082840312156142a757600080fd5b611d1f82613e9f565b6000806000606084860312156142c557600080fd5b6142ce84613e9f565b92506142dc60208501613f92565b9150604084013590509250925092565b6000602082840312156142fe57600080fd5b611d1f82613f92565b6000806000806000806000806000806000806101208d8f03121561432a57600080fd5b6143338d613e9f565b9b5061434160208e01613e9f565b9a5060408d0135995061435660608e01614217565b985060808d0135975060a08d013596506001600160401b0360c08e0135111561437e57600080fd5b61438e8e60c08f01358f01613eb6565b90965094506001600160401b0360e08e013511156143ab57600080fd5b6143bb8e60e08f01358f01613eb6565b90945092506001600160401b036101008e013511156143d957600080fd5b6143ea8e6101008f01358f01613eb6565b81935080925050509295989b509295989b509295989b565b60008060008060008060008060008060006101408c8e03121561442457600080fd5b61442e8d8d613e87565b9a5061443c60608d01613e9f565b995060808c0135985060a08c0135975060c08c013596506001600160401b038060e08e0135111561446c57600080fd5b61447c8e60e08f01358f01613eb6565b90975095506101008d013581101561449357600080fd5b6144a48e6101008f01358f01613eb6565b90955093506101208d01358110156144bb57600080fd5b506144cd8d6101208e01358e01613eb6565b81935080925050509295989b509295989b9093969950565b600080600080606085870312156144fb57600080fd5b61450485613e9f565b935061451260208601613e9f565b925060408501356001600160401b038082111561452e57600080fd5b818701915087601f83011261454257600080fd5b81358181111561455157600080fd5b8860208260051b850101111561456657600080fd5b95989497505060200194505050565b60008060008060006080868803121561458d57600080fd5b61459686613e9f565b9450602086013593506145ab60408701614217565b925060608601356001600160401b038111156140d757600080fd5b600080608083850312156145d957600080fd5b6145e38484613e87565b915061403a60608401613e9f565b6020808252825182820181905260009190848201906040850190845b818110156146325783516001600160a01b03168352928401929184019160010161460d565b50909695505050505050565b60008060008060008060008060c0898b03121561465a57600080fd5b61466389613e9f565b975061467160208a01613e9f565b96506040890135955061468660608a01614217565b945060808901356001600160401b03808211156146a257600080fd5b6146ae8c838d01613eb6565b909650945060a08b01359150808211156146c757600080fd5b506146d48b828c01613eb6565b999c989b5096995094979396929594505050565b6000806000606084860312156146fd57600080fd5b61470684613e9f565b925061471460208501613f92565b915061472260408501613e9f565b90509250925092565b60008060006060848603121561474057600080fd5b61474984613f92565b92506142dc60208501613e9f565b60008060006060848603121561476c57600080fd5b61474984613e9f565b600080600060a0848603121561478a57600080fd5b6147948585613e87565b92506147a260608501613e9f565b9150608084013590509250925092565b600080604083850312156147c557600080fd5b61402c83613f92565b600080600080608085870312156147e457600080fd5b6147ed85613e9f565b93506147fb60208601613f92565b92506040850135915061413d606086016141ab565b815181526020808301519082015260408101611655565b60006020828403121561483957600080fd5b611d1f826141ab565b838152818360208301376000910160200190815292915050565b63ffffffff61486a82613f92565b168252602081013560208301526001600160401b0361488b604083016141ab565b1660408301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6148c8818961485c565b86606082015260e0608082015260006148e560e083018789614895565b6001600160a01b03861660a084015282810360c0840152614907818587614895565b9a9950505050505050505050565b60808101614923828561485c565b6001600160a01b039290921660609190910152919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561496357600080fd5b815160038110611d1f57600080fd5b80151581146132ab57600080fd5b60006020828403121561499257600080fd5b8151611d1f81614972565b6001600160a01b03948516815263ffffffff93909316602084015292166040820152606081019190915260800190565b6000602082840312156149df57600080fd5b8135611d1f81614972565b634e487b7160e01b600052604160045260246000fd5b600082601f830112614a1157600080fd5b81516001600160401b0380821115614a2b57614a2b6149ea565b604051601f8301601f19908116603f01168101908282118183101715614a5357614a536149ea565b81604052838152866020858801011115614a6c57600080fd5b6112ae846020830160208901614148565b600060208284031215614a8f57600080fd5b81516001600160401b03811115614aa557600080fd5b6122ae84828501614a00565b63ffffffff95909516855260208501939093526001600160a01b039190911660408401526001600160401b03166060830152608082015260a00190565b8a815261ffff8a16602082015288604082015287606082015260e060808201526000614b1e60e08301888a614895565b82810360a0840152614b31818789614895565b905082810360c0840152614b46818587614895565b9d9c50505050505050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561165557611655614b57565b6000610120614b8f838e61485c565b8b60608401528a60808401528960a08401528060c0840152614bb4818401898b614895565b905082810360e0840152614bc9818789614895565b9050828103610100840152614b46818587614895565b6001600160a01b03841681526040602080830182905282820184905260009190606090818501600587901b8601830188865b89811015614cc257888303605f190184528135368c9003605e19018112614c3757600080fd5b8b0163ffffffff80614c4883613f92565b16855280614c57888401613f92565b16878601525087810135601e19823603018112614c7357600080fd5b0185810190356001600160401b03811115614c8d57600080fd5b803603821315614c9c57600080fd5b8789860152614cae8886018284614895565b958701959450505090840190600101614c11565b50909a9950505050505050505050565b8183823760009101908152919050565b6001600160a01b038781168252861660208201526040810185905261ffff8416606082015260a060808201819052600090614d209083018486614895565b98975050505050505050565b600060018060a01b03808a16835288602084015260a06040840152614d5560a08401888a614895565b81871660608501528381036080850152614d70818688614895565b9b9a5050505050505050505050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60a08101614db4828661485c565b6001600160a01b0393909316606082015260800152919050565b6001600160401b0381811683821601908082111561407e5761407e614b57565b6000808335601e19843603018112614e0557600080fd5b8301803591506001600160401b03821115614e1f57600080fd5b60200191503681900382131561149e57600080fd5b606080825285516001600160401b031682820152602086015163ffffffff16608083015260408601516001600160a01b031660a0830152850151600090614e8360c084018263ffffffff169052565b50608086015160e083015260a086015161010083015260c086015160e0610120840152614eb461014084018261416c565b90508281036020840152614ec9818688614895565b9150506127b0604083018415159052565b600060408284031215614eec57600080fd5b604051604081018181106001600160401b0382111715614f0e57614f0e6149ea565b604052825181526020928301519281019290925250919050565b600060408284031215614f3a57600080fd5b611d1f8383614eda565b60008060608385031215614f5757600080fd5b614f618484614eda565b915060408301516001600160401b03811115614f7c57600080fd5b614f8885828601614a00565b9150509250929050565b606081526000614fa5606083018761416c565b8281036020840152614fb8818688614895565b91505060018060a01b038316604083015295945050505050565b600060208284031215614fe457600080fd5b5051919050565b60608101611655828461485c565b6000825161500b818460208701614148565b919091019291505056fea264697066735822122060b78f73c9ab9c1651b5848f9a662a4d7443b5174845f63dab183c0e0ef4aa8b64736f6c63430008160033608060405234801561001057600080fd5b506101c3806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a7146100655780631881d94d1461008d57806354fd4d501461009c5780636750cd4c146100c3575b604051632657b6c360e01b815260040160405180910390fd5b61007861007336600461010e565b6100d7565b60405190151581526020015b60405180910390f35b6002604051610084919061013f565b6040805167ffffffffffffffff815260ff6020820152600291810191909152606001610084565b6100786100d1366004610167565b50600190565b60006001600160e01b031982166325fc096160e21b148061010857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006020828403121561012057600080fd5b81356001600160e01b03198116811461013857600080fd5b9392505050565b602081016003831061016157634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561017957600080fd5b813563ffffffff8116811461013857600080fdfea26469706673582212201492a62cde195effaf02cad81258b16b83979b7f432c3fe0ca641db583822bb764736f6c63430008160033608060405234801561001057600080fd5b506040516114d63803806114d683398101604081905261002f9161010a565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e816100ba565b506001600160a01b03166000908152600260205260409020805460ff1916600190811790915580546001600160801b03191668056bc75e2d6310000017905560058054602f60801b6001600160801b039190911617905561013a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561011c57600080fd5b81516001600160a01b038116811461013357600080fd5b9392505050565b61138d806101496000396000f3fe6080604052600436106101405760003560e01c80638ca2fb08116100b6578063d350ad251161006f578063d350ad2514610441578063da26663a14610461578063dbbb415514610522578063e0ad121a14610542578063f2fde38b146105cb578063fd9be522146105eb57600080fd5b80638ca2fb08146103595780638da5cb5b1461039957806392807f58146103b7578063c1723a1d146103e9578063c1840327146103fc578063cd68b79b1461041a57600080fd5b80635d6d7ccb116101085780635d6d7ccb146102405780635e280f1114610260578063715018a6146102985780637bc3c9ab146102ad5780637dc438a4146102ea57806388a4124c1461030a57600080fd5b806311f2c343146101455780632f7cb0b41461017c5780633161b7f61461019e57806336a5beba146101be57806352a7251014610220575b600080fd5b34801561015157600080fd5b5061016961016036600461100d565b60009392505050565b6040519081526020015b60405180910390f35b34801561018857600080fd5b5061019c610197366004611057565b61060b565b005b3480156101aa57600080fd5b5061019c6101b9366004611079565b610632565b3480156101ca57600080fd5b506040805180820182526000808252602091820152815180830183526004546001600160401b03811680835263ffffffff600160401b909204821692840192835284519081529151169181019190915201610173565b34801561022c57600080fd5b5061019c61023b366004611104565b610773565b34801561024c57600080fd5b5061019c61025b366004611057565b6107a6565b34801561026c57600080fd5b50600654610280906001600160a01b031681565b6040516001600160a01b039091168152602001610173565b3480156102a457600080fd5b5061019c610819565b3480156102b957600080fd5b506102cd6102c8366004611152565b61082d565b604080519283526001600160801b03909116602083015201610173565b3480156102f657600080fd5b5061019c610305366004611170565b6108c8565b34801561031657600080fd5b5061032a61032536600461100d565b610989565b604080519485526001600160801b03938416602086015291831691840191909152166060820152608001610173565b34801561036557600080fd5b50610389610374366004611188565b60026020526000908152604090205460ff1681565b6040519015158152602001610173565b3480156103a557600080fd5b506000546001600160a01b0316610280565b3480156103c357600080fd5b506005546001600160801b03165b6040516001600160801b039091168152602001610173565b61032a6103f736600461100d565b6109ab565b34801561040857600080fd5b506001546001600160801b03166103d1565b34801561042657600080fd5b506005546103d190600160801b90046001600160801b031681565b34801561044d57600080fd5b5061019c61045c366004611057565b6109dc565b34801561046d57600080fd5b506104e861047c3660046111a3565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526003835283902083519182018452546001600160801b0381168252600160801b81046001600160401b031692820192909252600160c01b9091049092169082015290565b6040805182516001600160801b031681526020808401516001600160401b0316908201529181015163ffffffff1690820152606001610173565b34801561052e57600080fd5b5061019c61053d366004611188565b610a06565b34801561054e57600080fd5b506104e861055d3660046111be565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452600382529282902082519384018352546001600160801b03811684526001600160401b03600160801b82041691840191909152600160c01b900463ffffffff169082015290565b3480156105d757600080fd5b5061019c6105e6366004611188565b610a30565b3480156105f757600080fd5b5061019c6106063660046111d9565b610a6e565b610613610a84565b600580546001600160801b03928316600160801b029216919091179055565b336106456000546001600160a01b031690565b6001600160a01b031614610683573360009081526002602052604090205460ff166106835760405163320ae52960e01b815260040160405180910390fd5b60005b8181101561076e57368383838181106106a1576106a1611203565b60800291909101915061076590506106bc60208301836111a3565b6106ce36849003840160208501611230565b805160208083015160409384015184516060810186526001600160801b0394851681526001600160401b0392831681850190815263ffffffff9283168288019081529783166000908152600390955295909320925183549551965194166001600160c01b031990951694909417600160801b95909116949094029390931763ffffffff60c01b1916600160c01b9190921602179055565b50600101610686565b505050565b61077b610a84565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b336107b96000546001600160a01b031690565b6001600160a01b0316146107f7573360009081526002602052604090205460ff166107f75760405163320ae52960e01b815260040160405180910390fd5b600580546001600160801b0319166001600160801b0392909216919091179055565b610821610a84565b61082b6000610ab1565b565b6000808461ffff16606e148061084857508461ffff1661279f145b8061085857508461ffff16614eaf145b156108755761086c8561ffff168585610b01565b915091506108c0565b8461ffff16606f148061088d57508461ffff16612794145b8061089d57508461ffff16614ea4145b156108b15761086c8561ffff168585610c0e565b61086c8561ffff168585610d5e565b935093915050565b336108db6000546001600160a01b031690565b6001600160a01b031614610919573360009081526002602052604090205460ff166109195760405163320ae52960e01b815260040160405180910390fd5b6109296106bc60208301836111a3565b600061093b60a08301608084016112a9565b9050600061094f60c0840160a085016111a3565b6004805463ffffffff909216600160401b026bffffffffffffffffffffffff199092166001600160401b0390941693909317179091555050565b60008060008061099a878787610dfe565b935093509350935093509350935093565b6000808080806109bf565b60405180910390fd5b6109ca888888610dfe565b94509450945094505093509350935093565b6109e4610a84565b600180546001600160801b0319166001600160801b0392909216919091179055565b610a0e610a84565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610a38610a84565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024016109b6565b610a6b81610ab1565b50565b610a76610a84565b610a808282610ecc565b5050565b6000546001600160a01b0316331461082b5760405163118cdaa760e01b81523360048201526024016109b6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff8381166000908152600360205260408120600454600554929384938492600160401b900490911690606490610b4b90600160801b90046001600160801b0316896112da565b610b55919061130d565b610b5f91906112da565b8254909150600090610b7e90600160c01b900463ffffffff16886112da565b83546004549192506000916001600160401b03600160801b90920482169184918691610bab91168b611321565b610bb59190611321565b610bbf9190611321565b610bc991906112da565b60015485549192506001600160801b0390811691610be89116836112da565b610bf2919061130d565b935493996001600160801b039094169850929650505050505050565b6000806000610c1c86610f79565b63ffffffff80821660009081526003602052604081208054939450929091610c4c91600160c01b900416886112da565b610c5890610c74611321565b8254909150600090610c7a90600160801b90046001600160401b0316836112da565b63ffffffff808b1660009081526003602052604081208054939450929091610caa91600160c01b9004168b6112da565b8254909150600090600160801b90046001600160401b0316610ccc8b84611321565b610cd691906112da565b60015487549192506000916001600160801b0391821691610cf89116876112da565b610d02919061130d565b60015485549192506000916001600160801b0391821691610d249116856112da565b610d2e919061130d565b90506000610d3c8284611321565b9554959f6001600160801b039096169e50949c50505050505050505050505050565b63ffffffff80841660009081526003602052604081208054919283928391610d8e91600160c01b900416876112da565b8254909150600090600160801b90046001600160401b0316610db08784611321565b610dba91906112da565b60015484549192506001600160801b0390811691610dd99116836112da565b610de3919061130d565b925492986001600160801b0390931697509195505050505050565b600080808080610e1061753089611334565b90508063ffffffff16606e1480610e2e57508063ffffffff1661279f145b80610e4057508063ffffffff16614eaf145b15610e5a57610e50818888610b01565b9095509350610ea9565b8063ffffffff16606f1480610e7657508063ffffffff16612794145b80610e8857508063ffffffff16614ea4145b15610e9857610e50818888610c0e565b610ea3818888610d5e565b90955093505b505060015460055493979296506001600160801b03908116955090921692509050565b6001600160a01b038216610ef3576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f40576040519150601f19603f3d011682016040523d82523d6000602084013e610f45565b606091505b505090508061076e57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016109b6565b600080610f8861753084611334565b90508063ffffffff16606f03610fa15750606592915050565b8063ffffffff1661279403610fba575061278992915050565b8063ffffffff16614ea403610fd35750614e9992915050565b604051633d0b0cf760e21b815263ffffffff821660048201526024016109b6565b803563ffffffff8116811461100857600080fd5b919050565b60008060006060848603121561102257600080fd5b61102b84610ff4565b95602085013595506040909401359392505050565b80356001600160801b038116811461100857600080fd5b60006020828403121561106957600080fd5b61107282611040565b9392505050565b6000806020838503121561108c57600080fd5b82356001600160401b03808211156110a357600080fd5b818501915085601f8301126110b757600080fd5b8135818111156110c657600080fd5b8660208260071b85010111156110db57600080fd5b60209290920196919550909350505050565b80356001600160a01b038116811461100857600080fd5b6000806040838503121561111757600080fd5b611120836110ed565b91506020830135801515811461113557600080fd5b809150509250929050565b803561ffff8116811461100857600080fd5b60008060006060848603121561116757600080fd5b61102b84611140565b600060c0828403121561118257600080fd5b50919050565b60006020828403121561119a57600080fd5b611072826110ed565b6000602082840312156111b557600080fd5b61107282610ff4565b6000602082840312156111d057600080fd5b61107282611140565b600080604083850312156111ec57600080fd5b6111f5836110ed565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b80356001600160401b038116811461100857600080fd5b60006060828403121561124257600080fd5b604051606081018181106001600160401b038211171561127257634e487b7160e01b600052604160045260246000fd5b60405261127e83611040565b815261128c60208401611219565b602082015261129d60408401610ff4565b60408201529392505050565b6000602082840312156112bb57600080fd5b61107282611219565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176112f1576112f16112c4565b92915050565b634e487b7160e01b600052601260045260246000fd5b60008261131c5761131c6112f7565b500490565b808201808211156112f1576112f16112c4565b600063ffffffff8084168061134b5761134b6112f7565b9216919091069291505056fea264697066735822122043d40d861fac89f60c4938c8341172f4eaeb8b3e6729e13e77697283f99e882864736f6c6343000816003360e06040523480156200001157600080fd5b5060405162004ac038038062004ac083398101604081905262000034916200018b565b82828282836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000077573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009d9190620001d8565b6001600160a01b03821660805263ffffffff811660a05283833380620000dd57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000e88162000122565b5060c0919091526002555050600680546001600160a01b0319166001600160a01b0398909816979097179096555062000207945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200018857600080fd5b50565b60008060008060808587031215620001a257600080fd5b8451620001af8162000172565b6020860151909450620001c28162000172565b6040860151606090960151949790965092505050565b600060208284031215620001eb57600080fd5b815163ffffffff811681146200020057600080fd5b9392505050565b60805160a05160c0516148706200025060003960008181611d100152611e730152600050506000818161069a0152818161079f015281816112b101526117d901526148706000f3fe60806040526004361061014f5760003560e01c806361d027b3116100b6578063d15b0d491161006f578063d15b0d4914610450578063d80e9bd914610470578063f0f442601461049d578063f2fde38b146104bd578063faaebd21146104dd578063fd9be5221461051857600080fd5b806361d027b3146103905780636750cd4c146103b0578063715018a6146103d05780638da5cb5b146103e55780639c33abf714610403578063c14c43491461043057600080fd5b806329460b0b1161010857806329460b0b1461025357806339e3f938146102735780634389e58f146102a057806343ea4fa9146102ce5780634d963200146102ee57806354fd4d501461036357600080fd5b806301ffc9a71461015b5780630e97289b14610190578063188183f4146101c85780631881d94d146101f5578063200175f71461021157806320efd7221461023357600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b6101763660046136fd565b610538565b60405190151581526020015b60405180910390f35b34801561019c57600080fd5b506006546101b0906001600160a01b031681565b6040516001600160a01b039091168152602001610187565b3480156101d457600080fd5b506101e86101e3366004613769565b61058a565b60405161018791906137a2565b34801561020157600080fd5b50600060405161018791906137c8565b34801561021d57600080fd5b5061023161022c3660046137f0565b610663565b005b34801561023f57600080fd5b5061023161024e366004613875565b61079d565b34801561025f57600080fd5b5061023161026e3660046138c9565b610912565b34801561027f57600080fd5b5061029361028e366004613769565b610aaa565b60405161018791906139c0565b3480156102ac57600080fd5b506102c06102bb3660046139ec565b610be5565b604051610187929190613aeb565b3480156102da57600080fd5b506102936102e9366004613769565b610c7a565b3480156102fa57600080fd5b5061033f610309366004613769565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160a01b031682565b6040805163ffffffff90931683526001600160a01b03909116602083015201610187565b34801561036f57600080fd5b50604080516003815260006020820152600291810191909152606001610187565b34801561039c57600080fd5b506003546101b0906001600160a01b031681565b3480156103bc57600080fd5b5061017b6103cb366004613b0f565b610f86565b3480156103dc57600080fd5b50610231610f91565b3480156103f157600080fd5b506000546001600160a01b03166101b0565b34801561040f57600080fd5b5061042361041e366004613b2c565b610fa5565b6040516101879190613b77565b34801561043c57600080fd5b5061023161044b366004613b8a565b611037565b34801561045c57600080fd5b5061023161046b366004613bfe565b611170565b34801561047c57600080fd5b5061049061048b3660046139ec565b6111e5565b6040516101879190613c17565b3480156104a957600080fd5b506102316104b8366004613c2e565b611255565b3480156104c957600080fd5b506102316104d8366004613c2e565b611269565b3480156104e957600080fd5b5061050a6104f8366004613c2e565b60056020526000908152604090205481565b604051908152602001610187565b34801561052457600080fd5b50610231610533366004613c4b565b6112a4565b60006001600160e01b031982166325fc096160e21b148061056957506001600160e01b0319821663b6e9ace360e01b145b8061058457506301ffc9a760e01b6001600160e01b03198316145b92915050565b604080518082019091526000808252602082015263ffffffff80831660008181527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec602090815260408083206001600160a01b038916845260048352818420948452939091528120805492939092169081900361060e57825463ffffffff16610610565b805b63ffffffff168452815464010000000090046001600160a01b03168061064857835464010000000090046001600160a01b031661064a565b805b6001600160a01b03166020860152509295945050505050565b6003546001600160a01b0316331461068e5760405163885762a760e01b815260040160405180910390fd5b826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071a9190613c77565b6001600160a01b031603610741576040516339a5741160e21b815260040160405180910390fd5b61074c838383611384565b604080516001600160a01b038086168252841660208201529081018290527fe081464b7278501267de69fa85b7b9560b0ae05d5fbfaab9b1986c70356e2efe906060015b60405180910390a1505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107e65760405163467409c360e01b815260040160405180910390fd5b60005b8181101561090c573683838381811061080457610804613c94565b90506020028101906108169190613caa565b905061082d6108286020830183613b0f565b6113c4565b600161083f6040830160208401613b0f565b63ffffffff160361087f5761087a61085a6020830183613b0f565b866108686040850185613cca565b8101906108759190613da0565b6113f2565b610903565b60026108916040830160208401613b0f565b63ffffffff16036108cc5761087a6108ac6020830183613b0f565b866108ba6040850185613cca565b8101906108c79190613f60565b61147a565b6108dc6040820160208301613b0f565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016107e9565b50505050565b61091a6114c3565b60005b81811015610a6c573683838381811061093857610938613c94565b905060200281019061094a9190613f94565b905060ff61095b6020830183613faa565b61096c906040810190602001613fc0565b60ff160361098d576040516341d50bed60e11b815260040160405180910390fd5b60ff61099c6020830183613faa565b6109ad906060810190604001613fc0565b60ff16036109ce5760405163211089b360e11b815260040160405180910390fd5b6001600160401b036109e36020830183613faa565b6109f1906020810190613fdb565b6001600160401b031603610a185760405163281b33d760e11b815260040160405180910390fd5b610a36610a286020830183613faa565b610a3190613ff6565b6114f0565b610a636000610a486020840184613b0f565b610a556020850185613faa565b610a5e90613ff6565b611528565b5060010161091d565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610a9e929190614088565b60405180910390a15050565b610ab2613644565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610b7257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b54575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610bd457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bb6575b505050505081525050905092915050565b60408051808201909152600080825260208201526060610c07868686866117c1565b600654604051631f5dad8b60e31b81529294509092506001600160a01b03169063faed6c5890610c3f908490899089906004016141cd565b600060405180830381600087803b158015610c5957600080fd5b505af1158015610c6d573d6000803e3d6000fd5b5050505094509492505050565b610c82613644565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b031680610cf75782546001600160401b03168452610d14565b6001600160401b0381811614610d14576001600160401b03811684525b8154600160401b900460ff16610dae578254600160401b900460ff1615610da95782600101805480602002602001604051908101604052809291908181526020018280548015610d8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d6f575b505050505060808501528254600160401b900460ff1660208501525b610e35565b8154600160401b900460ff90811614610e355781600101805480602002602001604051908101604052809291908181526020018280548015610e1957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610dfb575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610ede578254600160481b900460ff1615610ed95782600201805480602002602001604051908101604052809291908181526020018280548015610eae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e90575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610f74565b8154600160481b900460ff90811614610f745781600201805480602002602001604051908101604052809291908181526020018280548015610f4957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f2b575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610f7d846114f0565b50505092915050565b600061058482611895565b610f996114c3565b610fa360006118f0565b565b606060001963ffffffff831601610fe657610fc0838561058a565b604051602001610fd091906137a2565b6040516020818303038152906040529050611030565b60011963ffffffff83160161100f57610fff8385610c7a565b604051602001610fd091906139c0565b604051635d4be0fd60e11b815263ffffffff831660048201526024016108fa565b9392505050565b61103f6114c3565b60005b8181101561113e573683838381811061105d5761105d613c94565b606090810292909201925060009161107b9150830160408401613c2e565b6001600160a01b0316036110a257604051631074e82d60e11b815260040160405180910390fd5b6110b26040820160208301613b0f565b63ffffffff166000036110d8576040516349cfac4360e01b815260040160405180910390fd5b6000808052600460209081528201907f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec906111138385613b0f565b63ffffffff16815260208101919091526040016000206111338282614213565b505050600101611042565b507f2b001e1c6683bf79cc52891bd7215b204c787d18134fc7f3d21b4f32a49e47de8282604051610a9e92919061426c565b6111786114c3565b6002548111156111a95760025460405163068109f760e31b81526108fa918391600401918252602082015260400190565b60028190556040518181527f491ff913b5444f4136b0d4075f020cfe3a5f60de926ec0b091612401a22b7842906020015b60405180910390a150565b604080518082019091526000808252602082015260008061123661120f6060890160408a01613c2e565b61121f60808a0160608b01613b0f565b61122c60c08b018b613cca565b9050878a8a611940565b604080518082019091529182526020820152925050505b949350505050565b61125d6114c3565b61126681611a39565b50565b6112716114c3565b6001600160a01b03811661129b57604051631e4fbdf760e01b8152600060048201526024016108fa565b611266816118f0565b6112ad81611a87565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561130d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113319190613c77565b905061133e818484611ad8565b604080513381526001600160a01b03851660208201529081018390527f820b7fd51bf79c54350bab98400651b3314ff6e79b33528821871d94a666988390606001610790565b6001600160a01b0382166113ab576040516306b7a93160e41b815260040160405180910390fd5b6113bf6001600160a01b0384168383611afb565b505050565b6113cd81611895565b61126657604051633c30434160e21b815263ffffffff821660048201526024016108fa565b6001600160a01b03808316600090815260046020908152604080832063ffffffff8089168552908352928190208551815493870151909516640100000000026001600160c01b03199093169490931693909317179055517f779cb2dd9d2bb1be1737d05435d744facbfb84a2a4912e21379d39beddcdc80590610790908490869085906142ec565b611485828483611528565b61148f8284610c7a565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516107909392919061432e565b6000546001600160a01b03163314610fa35760405163118cdaa760e01b81523360048201526024016108fa565b602081015160ff1615801561150a5750606081015160ff16155b156112665760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806115435750602081015160ff16155b15611571576080810151511561156c576040516341d50bed60e11b815260040160405180910390fd5b6115d7565b806020015160ff168160800151511415806115ac57506002611595600160ff614374565b61159f919061438d565b60ff16816020015160ff16115b156115ca576040516341d50bed60e11b815260040160405180910390fd5b6115d78160800151611b4d565b604081015160ff90811614806115f25750604081015160ff16155b156116465760a0810151511561161b5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615611641576040516338682fa960e01b815260040160405180910390fd5b6116eb565b806040015160ff168160a00151511415806116815750600261166a600160ff614374565b611674919061438d565b60ff16816040015160ff16115b1561169f5760405163211089b360e11b815260040160405180910390fd5b606081015160ff1615806116c05750806040015160ff16816060015160ff16115b156116de576040516338682fa960e01b815260040160405180910390fd5b6116eb8160a00151611b4d565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361179d9390850192019061368c565b5060a082015180516117b991600284019160209091019061368c565b505050505050565b604080518082019091526000808252602082015260607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118205760405163467409c360e01b815260040160405180910390fd5b60008061182e888888611bb4565b909250905060008061186061184960608c0160408d01613c2e565b61185960808d0160608e01613b0f565b858a611c81565b909250905061186f82846143bd565b604080518082019091529081526020810191909152945091925050505b94509492505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580611030575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000806119508686611d8f565b9150915060006119618b8b84611da8565b9050600061196f8c8c61058a565b90506119858a826000015163ffffffff16611db5565b80602001516001600160a01b031663709eb6648c8e8d886040518563ffffffff1660e01b81526004016119bb94939291906143d0565b602060405180830381865afa1580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614403565b611a0690836143bd565b9150600080611a178e8e868e611de4565b9092509050611a2682856143bd565b9e909d509b505050505050505050505050565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f906020016111da565b3360009081526005602052604090205480821115611ac25760405163068109f760e31b815260048101839052602481018290526044016108fa565b3360009081526005602052604090209190039055565b6001600160a01b038316611af0576113bf8282611eb5565b6113bf838383611384565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113bf908490611f62565b6000805b82518110156113bf576000838281518110611b6e57611b6e613c94565b60200260200101519050826001600160a01b0316816001600160a01b031611611baa5760405163447516e160e01b815260040160405180910390fd5b9150600101611b51565b60606000806000611bc58686611d8f565b90925090506000611bef611bdf60608a0160408b01613c2e565b6101e360808b0160608c01613b0f565b90506000611c0060c08a018a613cca565b90509050611c1881836000015163ffffffff16611db5565b6020820151611c4890611c3160808c0160608d01613b0f565b611c4160608d0160408e01613c2e565b8488611fc5565b611c5290866143bd565b9450600080611c618b866120be565b9092509050611c7082886143bd565b909b909a5098505050505050505050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b0316636a8e2a4360e11b1790526003549192506000918291611d38916001600160a01b0316907f0000000000000000000000000000000000000000000000000000000000000000908490876120e1565b91509150611d4887878484612191565b90955093508415611d83576003546001600160a01b031660009081526005602052604081208054879290611d7d9084906143bd565b90915550505b50505094509492505050565b606080611d9c848461220c565b915091505b9250929050565b600061124d8484846122f9565b80821115611de057604051636333d79f60e11b815260048101839052602481018290526044016108fa565b5050565b60035460009081906001600160a01b03161561188c576040516001600160a01b038716602482015263ffffffff8616604482015260648101859052831515608482015260009060a40160408051601f19818403018152919052602080820180516001600160e01b031663d424422160e01b1790526003549192506000918291611e99916001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000009086612373565b91509150611ea987878484612191565b9450945050505061188c565b6001600160a01b038216611edc576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611f29576040519150601f19603f3d011682016040523d82523d6000602084013e611f2e565b606091505b50509050806113bf57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016108fa565b6000611f776001600160a01b0384168361241f565b90508051600014158015611f9c575080806020019051810190611f9a919061441c565b155b156113bf57604051635274afe760e01b81526001600160a01b03841660048201526024016108fa565b6040516338bf452160e11b81526000906001600160a01b0387169063717e8a4290611ffa9088908890889088906004016143d0565b6020604051808303816000875af1158015612019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203d9190614403565b90508015612073576001600160a01b0386166000908152600560205260408120805483929061206d9084906143bd565b90915550505b604080516001600160a01b0388168152602081018390527f61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a910160405180910390a195945050505050565b600060606120d660056120d0866144a8565b8561242d565b909590945092505050565b60006060863b80830361210857604080516000808252602082019092529250925050612187565b60008060008761ffff166001600160401b0381111561212957612129613d10565b6040519080825280601f01601f191660200182016040528015612153576020820181803683370190505b509050600080885160208a018c8f8ff191503d925087831115612174578792505b828152826000602083013e909450925050505b9550959350505050565b6000808315806121a2575082516020115b156121b25750600090508061188c565b6000838060200190518101906121c89190614403565b905085156121d857809150612202565b600060025488116121eb576002546121ed565b875b90508082116121fc57816121fe565b805b9350505b5094509492505050565b60608060008061221c868661257b565b91509150805160000361227457604080516000808252602082019092528391612268565b6040805180820190915260008152606060208201528152602001906001900390816122405790505b50935093505050611da1565b604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908161228b5790505090506040518060400160405280600260ff16815260200183815250816000815181106122e1576122e1613c94565b60209081029190910101529196919550909350505050565b6000806123068585610c7a565b905060008351600014612337578360008151811061232657612326613c94565b602002602001015160200151612348565b604051806020016040528060008152505b90506000806123568361273a565b9150915061236784888a85856129a0565b98975050505050505050565b60006060853b80830361239a5760408051600080825260208201909252925092505061188c565b60008060008761ffff166001600160401b038111156123bb576123bb613d10565b6040519080825280601f01601f1916602001820160405280156123e5576020820181803683370190505b509050600080885160208a018d8dfa91503d925087831115612405578792505b828152826000602083013e90999098509650505050505050565b606061103083836000612b38565b60006060600061243c85612bd5565b9050600061244986612c62565b80516020820120606088015160408901519293509091600061246b8284610c7a565b90506000895160001461249c578960008151811061248b5761248b613c94565b6020026020010151602001516124ad565b604051806020016040528060008152505b905060606124ff8d846040518060a001604052808963ffffffff1681526020018c81526020018a815260200187600001516001600160401b03168152602001886001600160a01b031681525085612c7f565b604051919b5091506125179089908990602001614545565b60405160208183030381529060405298507f07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db2464483608001518460a001518360405161256393929190614574565b60405180910390a15050505050505050935093915050565b60608060028310156125a35760405163196499c760e21b8152600060048201526024016108fa565b60006125b260028286886145d2565b6125bb916145fc565b60f01c905060026002198201612723578060005b868310156126c85760006125e860018501858a8c6145d2565b6125f19161462c565b60f81c9050600081900361261b57604051636780cfaf60e01b8152600060048201526024016108fa565b8160ff1660000361262e5780915061266b565b8160ff168160ff161461266b5736600061264a86868c8e6145d2565b9150915061265b8989868585612f1d565b9099509750859450919250829150505b600184019360009061268290600301868b8d6145d2565b61268b916145fc565b60f01c905060008190036126b55760405163196499c760e21b8152600481018690526024016108fa565b8060020161ffff168501945050506125cf565b8287146126eb5760405163196499c760e21b8152600481018490526024016108fa565b600287111561271c5736600061270385858b8d6145d2565b915091506127148888858585612f1d565b909850965050505b5050612731565b61272e82878761303d565b93505b50509250929050565b606080825160000361274b57915091565b6000612756846131c8565b90508060ff166001036128085760408051600180825281830190925290816020015b606081526020019060019003908161277857905050925083836000815181106127a3576127a3613c94565b6020908102919091010152604080516001808252818301909252908160200160208202803683370190505091506127db8460036132a2565b826000815181106127ee576127ee613c94565b602002602001019060ff16908160ff168152505050915091565b8060ff166001600160401b0381111561282357612823613d10565b60405190808252806020026020018201604052801561284c578160200160208202803683370190505b5091508060ff166001600160401b0381111561286a5761286a613d10565b60405190808252806020026020018201604052801561289d57816020015b60608152602001906001900390816128885790505b50925060008060ff5b86518310156129335760019092019160006128c188856132fe565b60029490940193905060006128d689866132a2565b90508260ff1660ff036128eb57809250612924565b8260ff168160ff16146129245760021984860301600061290c8b878461335b565b905061291a8a8a8784613468565b5093909301929150815b5061ffff1692909201916128a6565b818303600061294389858461335b565b905061295188888584613468565b60005b8660ff168160ff16101561299457878160ff168151811061297757612977613c94565b6020908102919091010180516000190160ff169052600101612954565b50505050505050915091565b600080866040015187602001516129b7919061465a565b905060005b8160ff168160ff161015612b2d576000886020015160ff168260ff1610612a115760a089015160208a01516129f19084614374565b60ff1681518110612a0457612a04613c94565b6020026020010151612a33565b88608001518260ff1681518110612a2a57612a2a613c94565b60200260200101515b60408051602081019091526000808252919250905b8651811015612aa0578360ff16878281518110612a6757612a67613c94565b602002602001015160ff1603612a9857878181518110612a8957612a89613c94565b60200260200101519150612aa0565b600101612a48565b508951604051630c2eceab60e21b81526001600160a01b038416916330bb3aac91612ad3918d918d908790600401614673565b602060405180830381865afa158015612af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b149190614403565b612b1e90866143bd565b945050508060010190506129bc565b505095945050505050565b606081471015612b5d5760405163cd78605960e01b81523060048201526024016108fa565b600080856001600160a01b03168486604051612b7991906146b2565b60006040518083038185875af1925050503d8060008114612bb6576040519150601f19603f3d011682016040523d82523d6000602084013e612bbb565b606091505b5091509150612bcb86838361357e565b9695505050505050565b805160208083015160408085015160608087015160808801519351600160f81b9681019690965260c09690961b6001600160c01b031916602186015260e093841b6001600160e01b031990811660298701526001600160a01b03909216602d8601529490921b909116604d83015260518201526071015b6040516020818303038152906040529050919050565b60608160a001518260c00151604051602001612c4c9291906146c4565b60006060600080612c8f8561273a565b91509150600087604001518860200151612ca9919061465a565b90508060ff166001600160401b03811115612cc657612cc6613d10565b604051908082528060200260200182016040528015612cef578160200160208202803683370190505b50935060005b8160ff168160ff161015610c6d576000896020015160ff168260ff1610612d4a5760a08a015160208b0151612d2a9084614374565b60ff1681518110612d3d57612d3d613c94565b6020026020010151612d6c565b89608001518260ff1681518110612d6357612d63613c94565b60200260200101515b60408051602081019091526000808252919250905b8551811015612dd9578360ff16868281518110612da057612da0613c94565b602002602001015160ff1603612dd157868181518110612dc257612dc2613c94565b60200260200101519150612dd9565b600101612d81565b506040516395d376d760e01b81526001600160a01b038316906395d376d790612e08908d9085906004016146ea565b6020604051808303816000875af1158015612e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4b9190614403565b878460ff1681518110612e6057612e60613c94565b6020026020010181815250506000878460ff1681518110612e8357612e83613c94565b60200260200101511115612f1357868360ff1681518110612ea657612ea6613c94565b60200260200101518c6000846001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ee191906143bd565b92505081905550868360ff1681518110612efd57612efd613c94565b602002602001015188612f1091906143bd565b97505b5050600101612cf5565b60608060001960ff861601612f9a57865115612f5c57868484604051602001612f489392919061475c565b604051602081830303815290604052612f93565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9650613032565b60011960ff86160161301457855115612fd657858484604051602001612fc29392919061475c565b60405160208183030381529060405261300d565b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9550613032565b604051636780cfaf60e01b815260ff861660048201526024016108fa565b509495939450505050565b606060001961ffff8516016130dd576022821461306d576040516301b8ca5560e31b815260040160405180910390fd5b600061308e6130806022600286886145d2565b61308991614784565b6135da565b604051600160f81b60208201819052601160f01b602183015260238201526001600160801b0319608083901b166024820152909150603401604051602081830303815290604052915050611030565b60011961ffff8516016131a9576042821115806130fa5750606282115b15613118576040516360493e2b60e11b815260040160405180910390fd5b600061312b6130806022600286886145d2565b905060006131406130806042602287896145d2565b905060006041198501613156866042818a6145d2565b61315f91614784565b60405160086020938403029190911c9250613190916001916011918391889183916031916002918b918b91016147a2565b6040516020818303038152906040529350505050611030565b604051630417051360e41b815261ffff851660048201526024016108fa565b600080805b83518210156132775760019091019060006131e885846132fe565b905060028301925060028161ffff1610156132195760405163013adb8360e21b8152600481018490526024016108fa565b600061322586856132a2565b90508060ff1660ff0361324b576040516334f4f66f60e21b815260040160405180910390fd5b600160ff82161b83166132685760019485019460ff82161b831792505b5061ffff1691909101906131cd565b8351821461329b5760405163013adb8360e21b8152600481018390526024016108fa565b5050919050565b60006132af8260016143bd565b835110156132f55760405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b60448201526064016108fa565b50016001015190565b600061330b8260026143bd565b835110156133525760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b60448201526064016108fa565b50016002015190565b60608161336981601f6143bd565b10156133a85760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016108fa565b6133b282846143bd565b845110156133f65760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016108fa565b606082158015613415576040519150600082526020820160405261345f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561344e578051835260209283019201613436565b5050858452601f01601f1916604052505b50949350505050565b8160ff1660ff0361348c576040516334f4f66f60e21b815260040160405180910390fd5b600061349983600161465a565b905060005b84518110156117b95760008582815181106134bb576134bb613c94565b602002602001015190508060ff168360ff1603613530578682815181106134e4576134e4613c94565b6020026020010151846040516020016134fe929190614545565b60405160208183030381529060405287838151811061351f5761351f613c94565b6020026020010181905250506117b9565b8060ff16600003613575578286838151811061354e5761354e613c94565b602002602001019060ff16908160ff16815250508387838151811061351f5761351f613c94565b5060010161349e565b6060826135935761358e8261361b565b611030565b81511580156135aa57506001600160a01b0384163b155b156135d357604051639996b31560e01b81526001600160a01b03851660048201526024016108fa565b5080611030565b60006fffffffffffffffffffffffffffffffff821115613617576040516306dfcc6560e41b815260806004820152602481018390526044016108fa565b5090565b80511561362b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156136e1579160200282015b828111156136e157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906136ac565b506136179291505b8082111561361757600081556001016136e9565b60006020828403121561370f57600080fd5b81356001600160e01b03198116811461103057600080fd5b6001600160a01b038116811461126657600080fd5b803561374781613727565b919050565b63ffffffff8116811461126657600080fd5b80356137478161374c565b6000806040838503121561377c57600080fd5b823561378781613727565b915060208301356137978161374c565b809150509250929050565b815163ffffffff1681526020808301516001600160a01b03169082015260408101610584565b60208101600383106137ea57634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006060848603121561380557600080fd5b833561381081613727565b9250602084013561382081613727565b929592945050506040919091013590565b60008083601f84011261384357600080fd5b5081356001600160401b0381111561385a57600080fd5b6020830191508360208260051b8501011115611da157600080fd5b60008060006040848603121561388a57600080fd5b833561389581613727565b925060208401356001600160401b038111156138b057600080fd5b6138bc86828701613831565b9497909650939450505050565b600080602083850312156138dc57600080fd5b82356001600160401b038111156138f257600080fd5b6138fe85828601613831565b90969095509350505050565b60008151808452602080850194506020840160005b838110156139445781516001600160a01b03168752958201959082019060010161391f565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c0608085015261399e60c085018261390a565b905060a083015184820360a08601526139b7828261390a565b95945050505050565b602081526000611030602083018461394f565b801515811461126657600080fd5b8035613747816139d3565b60008060008060608587031215613a0257600080fd5b84356001600160401b0380821115613a1957600080fd5b9086019060e08289031215613a2d57600080fd5b90945060208601359080821115613a4357600080fd5b818701915087601f830112613a5757600080fd5b813581811115613a6657600080fd5b886020828501011115613a7857600080fd5b602083019550809450505050613a90604086016139e1565b905092959194509250565b60005b83811015613ab6578181015183820152602001613a9e565b50506000910152565b60008151808452613ad7816020860160208601613a9b565b601f01601f19169290920160200192915050565b825181526020808401519082015260606040820152600061124d6060830184613abf565b600060208284031215613b2157600080fd5b81356110308161374c565b600080600060608486031215613b4157600080fd5b8335613b4c8161374c565b92506020840135613b5c81613727565b91506040840135613b6c8161374c565b809150509250925092565b6020815260006110306020830184613abf565b60008060208385031215613b9d57600080fd5b82356001600160401b0380821115613bb457600080fd5b818501915085601f830112613bc857600080fd5b813581811115613bd757600080fd5b866020606083028501011115613bec57600080fd5b60209290920196919550909350505050565b600060208284031215613c1057600080fd5b5035919050565b815181526020808301519082015260408101610584565b600060208284031215613c4057600080fd5b813561103081613727565b60008060408385031215613c5e57600080fd5b8235613c6981613727565b946020939093013593505050565b600060208284031215613c8957600080fd5b815161103081613727565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112613cc057600080fd5b9190910192915050565b6000808335601e19843603018112613ce157600080fd5b8301803591506001600160401b03821115613cfb57600080fd5b602001915036819003821315611da157600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715613d4857613d48613d10565b60405290565b60405160e081016001600160401b0381118282101715613d4857613d48613d10565b604051601f8201601f191681016001600160401b0381118282101715613d9857613d98613d10565b604052919050565b600060408284031215613db257600080fd5b604051604081018181106001600160401b0382111715613dd457613dd4613d10565b6040528235613de28161374c565b81526020830135613df281613727565b60208201529392505050565b80356001600160401b038116811461374757600080fd5b803560ff8116811461374757600080fd5b600082601f830112613e3757600080fd5b813560206001600160401b03821115613e5257613e52613d10565b8160051b613e61828201613d70565b9283528481018201928281019087851115613e7b57600080fd5b83870192505b84831015613ea3578235613e9481613727565b82529183019190830190613e81565b979650505050505050565b600060c08284031215613ec057600080fd5b613ec8613d26565b9050613ed382613dfe565b8152613ee160208301613e15565b6020820152613ef260408301613e15565b6040820152613f0360608301613e15565b606082015260808201356001600160401b0380821115613f2257600080fd5b613f2e85838601613e26565b608084015260a0840135915080821115613f4757600080fd5b50613f5484828501613e26565b60a08301525092915050565b600060208284031215613f7257600080fd5b81356001600160401b03811115613f8857600080fd5b61124d84828501613eae565b60008235603e19833603018112613cc057600080fd5b6000823560be19833603018112613cc057600080fd5b600060208284031215613fd257600080fd5b61103082613e15565b600060208284031215613fed57600080fd5b61103082613dfe565b60006105843683613eae565b6000808335601e1984360301811261401957600080fd5b83016020810192503590506001600160401b0381111561403857600080fd5b8060051b3603821315611da157600080fd5b8183526000602080850194508260005b8581101561394457813561406d81613727565b6001600160a01b03168752958201959082019060010161405a565b60208082528181018390526000906040808401600586901b8501820187855b888110156141bf57603f19808985030185528235603e198c36030181126140cd57600080fd5b8b0180356140da8161374c565b63ffffffff168552808801353682900360be190181126140f957600080fd5b858901889052016001600160401b0361411182613dfe565b1687860152614121888201613e15565b606060ff808316828901526141378a8501613e15565b92506080818416818a015261414d838601613e15565b935060a09250818416838a015261416681860186614002565b60c08b8101529450915061418190506101008901848361404a565b92505061419081840184614002565b93509050838783030160e08801526141a982848361404a565b978a0197965050509287019250506001016140a7565b509098975050505050505050565b6040815260006141e06040830186613abf565b8281036020840152838152838560208301376000602085830101526020601f19601f860116820101915050949350505050565b813561421e8161374c565b63ffffffff8116905081548163ffffffff198216178355602084013561424381613727565b6001600160c01b03199190911690911760209190911b640100000000600160c01b031617905550565b6020808252818101839052600090604080840186845b878110156142df5781356142958161374c565b63ffffffff908116845282860135906142ad8261374c565b1683860152818401356142bf81613727565b6001600160a01b0316838501526060928301929190910190600101614282565b5090979650505050505050565b6001600160a01b038416815263ffffffff831660208201526080810161124d6040830184805163ffffffff1682526020908101516001600160a01b0316910152565b6001600160a01b038416815263ffffffff831660208201526060604082018190526000906139b79083018461394f565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156105845761058461435e565b600060ff8316806143ae57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b808201808211156105845761058461435e565b63ffffffff8516815260018060a01b0384166020820152826040820152608060608201526000612bcb6080830184613abf565b60006020828403121561441557600080fd5b5051919050565b60006020828403121561442e57600080fd5b8151611030816139d3565b600082601f83011261444a57600080fd5b81356001600160401b0381111561446357614463613d10565b614476601f8201601f1916602001613d70565b81815284602083860101111561448b57600080fd5b816020850160208301376000918101602001919091529392505050565b600060e082360312156144ba57600080fd5b6144c2613d4e565b6144cb83613dfe565b81526144d96020840161375e565b60208201526144ea6040840161373c565b60408201526144fb6060840161375e565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b0381111561452d57600080fd5b61453936828601614439565b60c08301525092915050565b60008351614557818460208801613a9b565b83519083019061456b818360208801613a9b565b01949350505050565b606081526000614587606083018661390a565b6020838203602085015261459b828761390a565b84810360408601528551808252602080880194509091019060005b818110156141bf578451835293830193918301916001016145b6565b600080858511156145e257600080fd5b838611156145ef57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156146245780818660020360031b1b83161692505b505092915050565b6001600160f81b031981358181169160018510156146245760019490940360031b84901b1690921692915050565b60ff81811683821601908111156105845761058461435e565b63ffffffff851681526001600160401b03841660208201526001600160a01b0383166040820152608060608201819052600090612bcb90830184613abf565b60008251613cc0818460208701613a9b565b828152600082516146dc816020850160208701613a9b565b919091016020019392505050565b6040815263ffffffff83511660408201526000602084015160a0606084015261471660e0840182613abf565b604086015160808581019190915260608701516001600160401b031660a08601528601516001600160a01b031660c0850152838103602085015290506139b78185613abf565b6000845161476e818460208901613a9b565b8201838582376000930192835250909392505050565b8035602083101561058457600019602084900360031b1b1692915050565b60f88a811b6001600160f81b0319908116835260f08b811b6001600160f01b031990811660018601528b841b8316600386015260808b901b6001600160801b031916600486015289841b831660148601529088901b1660158401529085901b1660178201526000614822601883018560801b6001600160801b0319169052565b5060288101919091526048019897505050505050505056fea26469706673582212209c4e56d6c67105dfab95a5db652280357c444a31ddd8e746e20a46bf6d44b3bb64736f6c6343000816003360c06040523480156200001157600080fd5b50604051620024413803806200244183398101604081905262000034916200013e565b8080816001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009b919062000170565b3380620000c257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000cd81620000ee565b506001600160a01b0390911660805263ffffffff1660a05250620001989050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200015157600080fd5b81516001600160a01b03811681146200016957600080fd5b9392505050565b6000602082840312156200018357600080fd5b815163ffffffff811681146200016957600080fd5b60805160a05161227c620001c5600039600061031e01526000818161041b0152610484015261227c6000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806343ea4fa9116100a25780638da5cb5b116100715780638da5cb5b146102665780639c33abf714610281578063c40ff835146102a1578063e084d952146102b4578063f2fde38b146102c757600080fd5b806343ea4fa91461021857806354fd4d501461022b5780636750cd4c1461024b578063715018a61461025e57600080fd5b806320efd722116100de57806320efd7221461016f57806329460b0b1461018257806339e3f938146101955780633c782a52146101b557600080fd5b806301ffc9a7146101105780630223536e146101385780630894edf11461014d5780631881d94d14610160575b600080fd5b61012361011e3660046116ed565b6102da565b60405190151581526020015b60405180910390f35b61014b61014636600461177b565b610305565b005b61014b61015b3660046117d7565b610317565b600160405161012f9190611822565b61014b61017d3660046118a5565b610482565b61014b6101903660046118f7565b6105a4565b6101a86101a336600461194c565b61073c565b60405161012f9190611a35565b6101f96101c3366004611a48565b600260209081526000938452604080852082529284528284209052825290205460ff81169061010090046001600160401b031682565b6040805192151583526001600160401b0390911660208301520161012f565b6101a861022636600461194c565b610877565b60408051600381526000602082015260029181019190915260600161012f565b610123610259366004611a7d565b610b83565b61014b610b8e565b6000546040516001600160a01b03909116815260200161012f565b61029461028f366004611a98565b610ba2565b60405161012f9190611ad2565b61014b6102af366004611b21565b610c0b565b6101236102c2366004611d10565b610c1b565b61014b6102d5366004611d5d565b610c30565b60006001600160e01b03198216630ab7be9f60e01b14806102ff57506102ff82610c6e565b92915050565b61031184848484610ca3565b50505050565b61034283837f0000000000000000000000000000000000000000000000000000000000000000610d89565b600061034e8484610e0c565b9050600061035c8585610e1e565b9050600061036a8383610877565b905061038e818787604051610380929190611d78565b604051809103902086610e41565b600060405180606001604052808463ffffffff1681526020016103b18989610f91565b81526020016103c08989610faa565b6001600160401b039081169091526040805163a825d74760e01b8152835163ffffffff166004820152602084015160248201529083015190911660448201526001600160a01b038681166064830152608482018890529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a825d7479060a401600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b5050505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146104cb5760405163467409c360e01b815260040160405180910390fd5b60005b8181101561031157368383838181106104e9576104e9611d88565b90506020028101906104fb9190611d9e565b905061051261050d6020830183611a7d565b610fcd565b60026105246040830160208401611a7d565b63ffffffff16036105645761055f61053f6020830183611a7d565b8661054d6040850185611dbe565b81019061055a9190611e04565b610ffb565b61059b565b6105746040820160208301611a7d565b604051635d4be0fd60e11b815263ffffffff90911660048201526024015b60405180910390fd5b506001016104ce565b6105ac611051565b60005b818110156106fe57368383838181106105ca576105ca611d88565b90506020028101906105dc9190611e38565b905060ff6105ed6020830183611e4e565b6105fe906040810190602001611e64565b60ff160361061f576040516341d50bed60e11b815260040160405180910390fd5b60ff61062e6020830183611e4e565b61063f906060810190604001611e64565b60ff16036106605760405163211089b360e11b815260040160405180910390fd5b6001600160401b036106756020830183611e4e565b610683906020810190611e7f565b6001600160401b0316036106aa5760405163281b33d760e11b815260040160405180910390fd5b6106c86106ba6020830183611e4e565b6106c390611e9a565b61107e565b6106f560006106da6020840184611a7d565b6106e76020850185611e4e565b6106f090611e9a565b6110b6565b506001016105af565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b5608282604051610730929190611f2a565b60405180910390a15050565b61074461162b565b6001600160a01b038316600090815260016020818152604080842063ffffffff87168552825292839020835160c08101855281546001600160401b038116825260ff600160401b8204811683860152600160481b8204811683880152600160501b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561080457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107e6575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561086657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610848575b505050505081525050905092915050565b61087f61162b565b63ffffffff821660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602090815260408083206001600160a01b03881684526001835281842094845293909152902080546001600160401b0316806108f45782546001600160401b03168452610911565b6001600160401b0381811614610911576001600160401b03811684525b8154600160401b900460ff166109ab578254600160401b900460ff16156109a6578260010180548060200260200160405190810160405280929190818152602001828054801561098a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161096c575b505050505060808501528254600160401b900460ff1660208501525b610a32565b8154600160401b900460ff90811614610a325781600101805480602002602001604051908101604052809291908181526020018280548015610a1657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109f8575b505050505060808501528154600160401b900460ff1660208501525b8154600160481b900460ff16610adb578254600160481b900460ff1615610ad65782600201805480602002602001604051908101604052809291908181526020018280548015610aab57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a8d575b505050505060a0850152825460ff600160481b820481166040870152600160501b9091041660608501525b610b71565b8154600160481b900460ff90811614610b715781600201805480602002602001604051908101604052809291908181526020018280548015610b4657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b28575b505050505060a0850152815460ff600160481b820481166040870152600160501b9091041660608501525b610b7a8461107e565b50505092915050565b60006102ff8261134f565b610b96611051565b610ba060006113aa565b565b606060011963ffffffff831601610be357610bbd8385610877565b604051602001610bcd9190611a35565b6040516020818303038152906040529050610c04565b604051635d4be0fd60e11b815263ffffffff83166004820152602401610592565b9392505050565b610c16838383610d89565b505050565b6000610c288484846113fa565b949350505050565b610c38611051565b6001600160a01b038116610c6257604051631e4fbdf760e01b815260006004820152602401610592565b610c6b816113aa565b50565b60006001600160e01b031982166325fc096160e21b14806102ff57506301ffc9a760e01b6001600160e01b03198316146102ff565b604080518082018252600181526001600160401b03831660208201529051600290600090610cd49088908890611d78565b604080519182900390912082526020808301939093529081016000908120868252835281812033808352908452908290208451815495909401516001600160401b03166101000268ffffffffffffffff00199415159490941668ffffffffffffffffff19909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab5691610d7b91879087908690889061206c565b60405180910390a150505050565b60518214610daa5760405163c9bf37b760e01b815260040160405180910390fd5b6001610db68484611503565b60ff1614610dd757604051633a9ae7b960e01b815260040160405180910390fd5b8063ffffffff16610de88484611525565b63ffffffff1614610c165760405163216964bf60e11b815260040160405180910390fd5b6000610c04610e1b8484611535565b90565b6000610e2e600d600984866120c6565b610e37916120f0565b60e01c9392505050565b610e4c8383836113fa565b610e695760405163130c463560e21b815260040160405180910390fd5b602083015160ff1615610efe5760005b836020015160ff168160ff161015610efc57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110610ec157610ec1611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610e79565b505b604083015160ff1615610c165760005b836040015160ff168160ff161015610311576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110610f5657610f56611d88565b6020908102919091018101516001600160a01b03168252810191909152604001600020805468ffffffffffffffffff19169055600101610f0e565b6000610fa1602d600d84866120c6565b610c0491612120565b6000610fba6009600184866120c6565b610fc39161213e565b60c01c9392505050565b610fd68161134f565b610c6b57604051633c30434160e21b815263ffffffff82166004820152602401610592565b6110068284836110b6565b6110108284610877565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516110449392919061216c565b60405180910390a1505050565b6000546001600160a01b03163314610ba05760405163118cdaa760e01b8152336004820152602401610592565b602081015160ff161580156110985750606081015160ff16155b15610c6b5760405163ce2c375160e01b815260040160405180910390fd5b602081015160ff90811614806110d15750602081015160ff16155b156110ff57608081015151156110fa576040516341d50bed60e11b815260040160405180910390fd5b611165565b806020015160ff1681608001515114158061113a57506002611123600160ff6121b2565b61112d91906121cb565b60ff16816020015160ff16115b15611158576040516341d50bed60e11b815260040160405180910390fd5b6111658160800151611545565b604081015160ff90811614806111805750604081015160ff16155b156111d45760a081015151156111a95760405163211089b360e11b815260040160405180910390fd5b606081015160ff16156111cf576040516338682fa960e01b815260040160405180910390fd5b611279565b806040015160ff168160a001515114158061120f575060026111f8600160ff6121b2565b61120291906121cb565b60ff16816040015160ff16115b1561122d5760405163211089b360e11b815260040160405180910390fd5b606081015160ff16158061124e5750806040015160ff16816060015160ff16115b1561126c576040516338682fa960e01b815260040160405180910390fd5b6112798160a00151611545565b6001600160a01b038316600090815260016020818152604080842063ffffffff8716855282529283902084518154868401519587015160608801516001600160401b0390931668ffffffffffffffffff1990921691909117600160401b60ff97881602176affff0000000000000000001916600160481b9187169190910260ff60501b191617600160501b95909116949094029390931783556080840151805185949361132b93908501920190611673565b5060a08201518051611347916002840191602090910190611673565b505050505050565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081208054600160401b900460ff16151580610c04575054600160501b900460ff16151592915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b602083015160009060ff161561147d5760005b846020015160ff168160ff1610156114655761144f85608001518260ff168151811061143b5761143b611d88565b6020026020010151858588600001516115ac565b61145d576000915050610c04565b60010161140d565b50836040015160ff1660000361147d57506001610c04565b606084015160005b856040015160ff168160ff1610156114f7576114c78660a001518260ff16815181106114b3576114b3611d88565b6020026020010151868689600001516115ac565b156114ef57816114d6816121fb565b9250508160ff166000036114ef57600192505050610c04565b600101611485565b50600095945050505050565b600061151260018284866120c6565b61151b91612218565b60f81c9392505050565b6000610e2e6031602d84866120c6565b6000610fa16051603184866120c6565b6000805b8251811015610c1657600083828151811061156657611566611d88565b60200260200101519050826001600160a01b0316816001600160a01b0316116115a25760405163447516e160e01b815260040160405180910390fd5b9150600101611549565b600083815260026020908152604080832085845282528083206001600160a01b0388168452825280832081518083019092525460ff81161580158084526101009092046001600160401b03169383019390935290916116215750826001600160401b031681602001516001600160401b031610155b9695505050505050565b6040518060c0016040528060006001600160401b03168152602001600060ff168152602001600060ff168152602001600060ff16815260200160608152602001606081525090565b8280548282559060005260206000209081019282156116c8579160200282015b828111156116c857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611693565b506116d49291506116d8565b5090565b5b808211156116d457600081556001016116d9565b6000602082840312156116ff57600080fd5b81356001600160e01b031981168114610c0457600080fd5b60008083601f84011261172957600080fd5b5081356001600160401b0381111561174057600080fd5b60208301915083602082850101111561175857600080fd5b9250929050565b80356001600160401b038116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b84356001600160401b038111156117a757600080fd5b6117b387828801611717565b909550935050602085013591506117cc6040860161175f565b905092959194509250565b6000806000604084860312156117ec57600080fd5b83356001600160401b0381111561180257600080fd5b61180e86828701611717565b909790965060209590950135949350505050565b602081016003831061184457634e487b7160e01b600052602160045260246000fd5b91905290565b80356001600160a01b038116811461177657600080fd5b60008083601f84011261187357600080fd5b5081356001600160401b0381111561188a57600080fd5b6020830191508360208260051b850101111561175857600080fd5b6000806000604084860312156118ba57600080fd5b6118c38461184a565b925060208401356001600160401b038111156118de57600080fd5b6118ea86828701611861565b9497909650939450505050565b6000806020838503121561190a57600080fd5b82356001600160401b0381111561192057600080fd5b61192c85828601611861565b90969095509350505050565b803563ffffffff8116811461177657600080fd5b6000806040838503121561195f57600080fd5b6119688361184a565b915061197660208401611938565b90509250929050565b60008151808452602080850194506020840160005b838110156119b95781516001600160a01b031687529582019590820190600101611994565b509495945050505050565b6001600160401b03815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c06080850152611a1360c085018261197f565b905060a083015184820360a0860152611a2c828261197f565b95945050505050565b602081526000610c0460208301846119c4565b600080600060608486031215611a5d57600080fd5b8335925060208401359150611a746040850161184a565b90509250925092565b600060208284031215611a8f57600080fd5b610c0482611938565b600080600060608486031215611aad57600080fd5b611ab684611938565b9250611ac46020850161184a565b9150611a7460408501611938565b60006020808352835180602085015260005b81811015611b0057858101830151858201604001528201611ae4565b506000604082860101526040601f19601f8301168501019250505092915050565b600080600060408486031215611b3657600080fd5b83356001600160401b03811115611b4c57600080fd5b611b5886828701611717565b9094509250611a74905060208501611938565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611ba357611ba3611b6b565b60405290565b803560ff8116811461177657600080fd5b600082601f830112611bcb57600080fd5b813560206001600160401b0380831115611be757611be7611b6b565b8260051b604051601f19603f83011681018181108482111715611c0c57611c0c611b6b565b6040529384526020818701810194908101925087851115611c2c57600080fd5b6020870191505b84821015611c5357611c448261184a565b83529183019190830190611c33565b979650505050505050565b600060c08284031215611c7057600080fd5b611c78611b81565b9050611c838261175f565b8152611c9160208301611ba9565b6020820152611ca260408301611ba9565b6040820152611cb360608301611ba9565b606082015260808201356001600160401b0380821115611cd257600080fd5b611cde85838601611bba565b608084015260a0840135915080821115611cf757600080fd5b50611d0484828501611bba565b60a08301525092915050565b600080600060608486031215611d2557600080fd5b83356001600160401b03811115611d3b57600080fd5b611d4786828701611c5e565b9660208601359650604090950135949350505050565b600060208284031215611d6f57600080fd5b610c048261184a565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112611db457600080fd5b9190910192915050565b6000808335601e19843603018112611dd557600080fd5b8301803591506001600160401b03821115611def57600080fd5b60200191503681900382131561175857600080fd5b600060208284031215611e1657600080fd5b81356001600160401b03811115611e2c57600080fd5b610c2884828501611c5e565b60008235603e19833603018112611db457600080fd5b6000823560be19833603018112611db457600080fd5b600060208284031215611e7657600080fd5b610c0482611ba9565b600060208284031215611e9157600080fd5b610c048261175f565b60006102ff3683611c5e565b6000808335601e19843603018112611ebd57600080fd5b83016020810192503590506001600160401b03811115611edc57600080fd5b8060051b360382131561175857600080fd5b8183526000602080850194508260005b858110156119b9576001600160a01b03611f178361184a565b1687529582019590820190600101611efe565b60208082528181018390526000906040808401600586901b8501820187855b8881101561205e57603f19808985030185528235603e198c3603018112611f6f57600080fd5b8b0163ffffffff611f7f82611938565b1685528781013560be19823603018112611f9857600080fd5b858901889052016001600160401b03611fb08261175f565b1687860152611fc0888201611ba9565b606060ff80831682890152611fd68a8501611ba9565b92506080818416818a0152611fec838601611ba9565b935060a09250818416838a015261200581860186611ea6565b60c08b81015294509150612020905061010089018483611eee565b92505061202f81840184611ea6565b93509050838783030160e0880152612048828483611eee565b978a019796505050928701925050600101611f49565b509098975050505050505050565b6001600160a01b03861681526080602082018190528101849052838560a0830137600060a08583010152600060a0601f19601f87011683010190506001600160401b03841660408301528260608301529695505050505050565b600080858511156120d657600080fd5b838611156120e357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156121185780818660040360031b1b83161692505b505092915050565b803560208310156102ff57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156121185760089490940360031b84901b1690921692915050565b6001600160a01b038416815263ffffffff83166020820152606060408201819052600090611a2c908301846119c4565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ff576102ff61219c565b600060ff8316806121ec57634e487b7160e01b600052601260045260246000fd5b8060ff84160491505092915050565b600060ff82168061220e5761220e61219c565b6000190192915050565b6001600160f81b031981358181169160018510156121185760019490940360031b84901b169092169291505056fea26469706673582212209a9d42e4d24ba1f5577ac32292c65d2ac9fe71fc72829f0ae54477497a89995e64736f6c6343000816003360806040523480156200001157600080fd5b5060405162002c7038038062002c7083398101604081905262000034916200046f565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b038581169190911790915584908490612ee090859085908216156200008f576200008d60008362000226565b505b60005b8551811015620000f457620000ea7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000d657620000d662000523565b60200260200101516200022660201b60201c565b5060010162000092565b5060005b815181101562000146576200013c7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000d657620000d662000523565b50600101620000f8565b505060016004908155600680546001600160a01b0319166001600160a01b038d169081179091556040805163416ecebf60e01b8152905191965063416ecebf95508083019450602093509091908290030181865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d3919062000539565b6006805463ffffffff92909216600160a01b0263ffffffff60a01b199092169190911790555050600780546001600160a01b039094166001600160a01b03199094169390931790925550620005a5915050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156200027957506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b15620002c65760018054601590620002a190600160a81b90046001600160401b031662000568565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b620002d28383620002de565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1662000383576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556200033a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620002d8565b506000620002d8565b80516001600160a01b0381168114620003a457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003d157600080fd5b815160206001600160401b0380831115620003f057620003f0620003a9565b8260051b604051601f19603f83011681018181108482111715620004185762000418620003a9565b60405293845260208187018101949081019250878511156200043957600080fd5b6020870191505b84821015620004645762000454826200038c565b8352918301919083019062000440565b979650505050505050565b60008060008060008060c087890312156200048957600080fd5b62000494876200038c565b9550620004a4602088016200038c565b60408801519095506001600160401b0380821115620004c257600080fd5b620004d08a838b01620003bf565b9550620004e060608a016200038c565b9450620004f060808a016200038c565b935060a08901519150808211156200050757600080fd5b506200051689828a01620003bf565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156200054c57600080fd5b815163ffffffff811681146200056157600080fd5b9392505050565b60006001600160401b038281166002600160401b031981016200059b57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6126bb80620005b56000396000f3fe6080604052600436106101e25760003560e01c8063709eb66411610102578063a217fddf11610095578063c7b2370b11610064578063c7b2370b14610649578063cd88b90314610669578063d2ae210414610689578063d547741f146106c857600080fd5b8063a217fddf146105cf578063c2803b2c146105e4578063c358de0a14610604578063c416aa511461062457600080fd5b8063741bef1a116100d1578063741bef1a146104cd5780638624ba07146104ed57806391d14854146105005780639e9449651461052057600080fd5b8063709eb66414610434578063717e8a4214610454578063724e78da14610474578063726075371461049457600080fd5b80632f2ff15d1161017a5780633d85ac33116101495780633d85ac33146103b1578063475b6d9e146103d15780635c975abb146103e45780635e280f11146103fc57600080fd5b80632f2ff15d1461033e5780633146646a1461035e57806336568abe1461037e5780633927c0751461039e57600080fd5b806316c38b3c116101b657806316c38b3c14610293578063248a9ca3146102b357806326e67a37146102f15780632de113761461031e57600080fd5b8062bf2e80146101e757806301e336671461022157806301ffc9a7146102435780631095b6d714610273575b600080fd5b3480156101f357600080fd5b5060015461020990600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561022d57600080fd5b5061024161023c366004611a9c565b6106e8565b005b34801561024f57600080fd5b5061026361025e366004611ad8565b610711565b6040519015158152602001610218565b34801561027f57600080fd5b5061024161028e366004611a9c565b610748565b34801561029f57600080fd5b506102416102ae366004611b10565b61085b565b3480156102bf57600080fd5b506102e36102ce366004611b2d565b60009081526020819052604090206001015490565b604051908152602001610218565b3480156102fd57600080fd5b5061031161030c366004611b5a565b610880565b6040516102189190611b75565b34801561032a57600080fd5b50610263610339366004611bbc565b610907565b34801561034a57600080fd5b50610241610359366004611bd7565b61099e565b34801561036a57600080fd5b50610241610379366004611c4b565b6109c3565b34801561038a57600080fd5b50610241610399366004611bd7565b610a53565b6102416103ac366004611cf2565b610a6c565b3480156103bd57600080fd5b506102416103cc366004611e33565b610b27565b6102416103df366004611f4e565b610c9e565b3480156103f057600080fd5b5060015460ff16610263565b34801561040857600080fd5b5060065461041c906001600160a01b031681565b6040516001600160a01b039091168152602001610218565b34801561044057600080fd5b506102e361044f366004611fcc565b610ce0565b34801561046057600080fd5b506102e361046f366004611fcc565b610de7565b34801561048057600080fd5b5061024161048f366004611bbc565b610f13565b3480156104a057600080fd5b506006546104b890600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610218565b3480156104d957600080fd5b5060025461041c906001600160a01b031681565b6102416104fb36600461203a565b610f79565b34801561050c57600080fd5b5061026361051b366004611bd7565b611084565b34801561052c57600080fd5b5061058c61053b366004611b5a565b600560205260009081526040902080546001909101546001600160401b038083169261ffff600160401b820416926001600160801b03600160501b90920482169291811691600160801b9091041685565b604080516001600160401b03968716815261ffff90951660208601526001600160801b03938416908501529116606083015291909116608082015260a001610218565b3480156105db57600080fd5b506102e3600081565b3480156105f057600080fd5b5060075461041c906001600160a01b031681565b34801561061057600080fd5b5061024161061f3660046120b2565b6110ad565b34801561063057600080fd5b5060015461041c9061010090046001600160a01b031681565b34801561065557600080fd5b50610241610664366004611bbc565b611115565b34801561067557600080fd5b506102416106843660046120cd565b611183565b34801561069557600080fd5b506001546106b090600160a81b90046001600160401b031681565b6040516001600160401b039091168152602001610218565b3480156106d457600080fd5b506102416106e3366004611bd7565b6111bb565b600080516020612666833981519152610700816111e0565b61070b8484846111ed565b50505050565b60006001600160e01b03198216637965db0b60e01b148061074257506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020612666833981519152610760816111e0565b61078a7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de85611084565b6107a757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b6000610866816111e0565b811561087857610874611215565b5050565b610874611269565b63ffffffff81166000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156108fb57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108cc5790505b50505050509050919050565b60006109337f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611084565b1561094057506000919050565b600154600160a81b90046001600160401b0316158061098457506109847f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83611084565b1561099157506001919050565b506000919050565b919050565b6000828152602081905260409020600101546109b9816111e0565b61070b83836112a2565b6000805160206126668339815191526109db816111e0565b6109e3611338565b600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610a179087908790879060040161217b565b600060405180830381600087803b158015610a3157600080fd5b505af1158015610a45573d6000803e3d6000fd5b5050505061070b6001600455565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020612666833981519152610a84816111e0565b610a8c611338565b610aac88610a9a8686611362565b610aa48787611385565b8a8a8a61139e565b50600754604051631cca20df60e31b81526001600160a01b039091169063e65106f890610ae19087908790879060040161217b565b600060405180830381600087803b158015610afb57600080fd5b505af1158015610b0f573d6000803e3d6000fd5b50505050610b1d6001600455565b5050505050505050565b600080516020612666833981519152610b3f816111e0565b60005b8251811015610c62576000838281518110610b5f57610b5f61219f565b6020908102919091018101516040805160a08082018352838501516001600160401b03908116835260608086015161ffff9081168589019081526080808901516001600160801b03908116888a01908152968a01518116948801948552888a01518616918801918252985163ffffffff1660009081526005909a529690982094518554985194518816600160501b026fffffffffffffffffffffffffffffffff60501b1995909216600160401b0269ffffffffffffffffffff1990991690841617979097179290921695909517825551600191820180549351909516600160801b026001600160c01b031990931693169290921717909155919091019050610b42565b507fb99f6de5e22c60c178b03bfacf2daeb4b6089f5b37e0fe2c48a5d5141191fc5382604051610c9291906121b5565b60405180910390a15050565b600080516020612666833981519152610cb6816111e0565b610cbe611338565b610ccc87878787878761139e565b50610cd76001600455565b50505050505050565b600084610cec81610907565b610d0957604051634ab5ebcd60e01b815260040160405180910390fd5b610d11611505565b6040805160a0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290528a831684860152606084018a905260015461ffff600160e81b8204166080860152600092835260059091529084902093516321a7700b60e11b815292936101009091049091169163434ee01691610d9a918591908a908a90600401612252565b602060405180830381865afa158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb9190612306565b98975050505050505050565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de610e13816111e0565b85610e1d81610907565b610e3a57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160a0810182526002546001600160a01b03908116825263ffffffff8b1660208084018290528b831684860152606084018b905260015461ffff600160e81b820416608086015260009283526005909152908490209351632b377bb160e11b815292936101009091049091169163566ef76291610ec3918591908b908b90600401612252565b6020604051808303816000875af1158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f069190612306565b9998505050505050505050565b600080516020612666833981519152610f2b816111e0565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d90602001610c92565b600080516020612666833981519152610f91816111e0565b610f99611338565b600654600090610fc7906020850190600160a01b900463ffffffff16610fbf8287611bbc565b89898961139e565b90506000610fd58234612335565b6006549091506001600160a01b0316630c0c389e60e08601358360208801610ffd818a611bbc565b60808a013561100f60a08c018c612348565b61101c60c08e018e612348565b6040518a63ffffffff1660e01b815260040161103e97969594939291906123c7565b6000604051808303818589803b15801561105757600080fd5b5088f115801561106b573d6000803e3d6000fd5b505050505050505061107d6001600455565b5050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206126668339815191526110c5816111e0565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610c92565b60008051602061266683398151915261112d816111e0565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610c92565b60008051602061266683398151915261119b816111e0565b63ffffffff8416600090815260036020526040902061107d9084846119c7565b6000828152602081905260409020600101546111d6816111e0565b61070b838361152b565b6111ea81336115b5565b50565b6001600160a01b03831661120a5761120582826115f3565b505050565b6112058383836116a0565b61121d611505565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b6112716116db565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361124c565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca831480156112da57506112d88383611084565b155b1561132457600180546015906112ff90600160a81b90046001600160401b031661241d565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836116fe565b5060019392505050565b60026004540361135b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600455565b60006113726031602d8486612443565b61137b9161246d565b60e01c9392505050565b60006113976113948484611790565b90565b9392505050565b600080836001600160401b038111156113b9576113b9611d85565b6040519080825280602002602001820160405280156113e2578160200160208202803683370190505b50905060005b848110156114b85760008686838181106114045761140461219f565b90506040020180360381019061141a919061249d565b9050600081600001516001600160a01b031682602001518790604051600060405180830381858888f193505050503d8060008114611474576040519150601f19603f3d011682016040523d82523d6000602084013e611479565b606091505b50509050808484815181106114905761149061219f565b9115156020928302919091018201528201516114ac90866124f3565b945050506001016113e8565b507f1f48172553121d8bf273ce457a5a3dd180d464e0add3e0143045b7fa039c34688888888888866040516114f296959493929190612544565b60405180910390a1509695505050505050565b60015460ff16156115295760405163d93c066560e01b815260040160405180910390fd5b565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8314801561156157506115618383611084565b156115ab576001805460159061158690600160a81b90046001600160401b03166125d8565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b61132e83836117a9565b6115bf8282611084565b6108745760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044015b60405180910390fd5b6001600160a01b03821661161a576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611667576040519150601f19603f3d011682016040523d82523d6000602084013e61166c565b606091505b505090508061120557604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016115ea565b6001600160a01b0382166116c7576040516306b7a93160e41b815260040160405180910390fd5b6112056001600160a01b0384168383611814565b60015460ff1661152957604051638dfc202b60e01b815260040160405180910390fd5b600061170a8383611084565b611788576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556117403390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610742565b506000610742565b60006117a0605160318486612443565b611397916125fb565b60006117b58383611084565b15611788576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610742565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b17905261120591859190600090611872908416836118c0565b905080516000141580156118975750808060200190518101906118959190612619565b155b1561120557604051635274afe760e01b81526001600160a01b03841660048201526024016115ea565b60606113978383600084600080856001600160a01b031684866040516118e69190612636565b60006040518083038185875af1925050503d8060008114611923576040519150601f19603f3d011682016040523d82523d6000602084013e611928565b606091505b5091509150611938868383611942565b9695505050505050565b606082611957576119528261199e565b611397565b815115801561196e57506001600160a01b0384163b155b1561199757604051639996b31560e01b81526001600160a01b03851660048201526024016115ea565b5080611397565b8051156119ae5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f01602090048101928215611a605791602002820160005b83821115611a3157833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026119f0565b8015611a5e5782816101000a81549060ff0219169055600101602081600001049283019260010302611a31565b505b50611a6c929150611a70565b5090565b5b80821115611a6c5760008155600101611a71565b80356001600160a01b038116811461099957600080fd5b600080600060608486031215611ab157600080fd5b611aba84611a85565b9250611ac860208501611a85565b9150604084013590509250925092565b600060208284031215611aea57600080fd5b81356001600160e01b03198116811461139757600080fd5b80151581146111ea57600080fd5b600060208284031215611b2257600080fd5b813561139781611b02565b600060208284031215611b3f57600080fd5b5035919050565b803563ffffffff8116811461099957600080fd5b600060208284031215611b6c57600080fd5b61139782611b46565b6020808252825182820181905260009190848201906040850190845b81811015611bb057835160ff1683529284019291840191600101611b91565b50909695505050505050565b600060208284031215611bce57600080fd5b61139782611a85565b60008060408385031215611bea57600080fd5b82359150611bfa60208401611a85565b90509250929050565b60008083601f840112611c1557600080fd5b5081356001600160401b03811115611c2c57600080fd5b602083019150836020828501011115611c4457600080fd5b9250929050565b600080600060408486031215611c6057600080fd5b83356001600160401b03811115611c7657600080fd5b611c8286828701611c03565b909790965060209590950135949350505050565b600060608284031215611ca857600080fd5b50919050565b60008083601f840112611cc057600080fd5b5081356001600160401b03811115611cd757600080fd5b6020830191508360208260061b8501011115611c4457600080fd5b600080600080600080600060e0888a031215611d0d57600080fd5b611d178989611c96565b965060608801356001600160401b0380821115611d3357600080fd5b611d3f8b838c01611cae565b909850965060808a0135955060a08a0135915080821115611d5f57600080fd5b50611d6c8a828b01611c03565b989b979a5095989497959660c090950135949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611dbd57611dbd611d85565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611deb57611deb611d85565b604052919050565b80356001600160401b038116811461099957600080fd5b803561ffff8116811461099957600080fd5b80356001600160801b038116811461099957600080fd5b60006020808385031215611e4657600080fd5b82356001600160401b0380821115611e5d57600080fd5b818501915085601f830112611e7157600080fd5b813581811115611e8357611e83611d85565b611e91848260051b01611dc3565b818152848101925060c0918202840185019188831115611eb057600080fd5b938501935b82851015611f425780858a031215611ecd5760008081fd5b611ed5611d9b565b611ede86611b46565b8152611eeb878701611df3565b878201526040611efc818801611df3565b908201526060611f0d878201611e0a565b908201526080611f1e878201611e1c565b9082015260a0611f2f878201611e1c565b9082015284529384019392850192611eb5565b50979650505050505050565b60008060008060008060e08789031215611f6757600080fd5b611f718888611c96565b9550611f7f60608801611b46565b9450611f8d60808801611a85565b935060a08701356001600160401b03811115611fa857600080fd5b611fb489828a01611cae565b979a969950949794969560c090950135949350505050565b600080600080600060808688031215611fe457600080fd5b611fed86611b46565b9450611ffb60208701611a85565b93506040860135925060608601356001600160401b0381111561201d57600080fd5b61202988828901611c03565b969995985093965092949392505050565b6000806000806060858703121561205057600080fd5b84356001600160401b038082111561206757600080fd5b61207388838901611cae565b909650945060208701359350604087013591508082111561209357600080fd5b50850161010081880312156120a757600080fd5b939692955090935050565b6000602082840312156120c457600080fd5b61139782611e0a565b6000806000604084860312156120e257600080fd5b6120eb84611b46565b925060208401356001600160401b038082111561210757600080fd5b818601915086601f83011261211b57600080fd5b81358181111561212a57600080fd5b8760208260051b850101111561213f57600080fd5b6020830194508093505050509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061218f604083018587612152565b9050826020830152949350505050565b634e487b7160e01b600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015612245578151805163ffffffff168552868101516001600160401b039081168887015286820151168686015260608082015161ffff16908601526080808201516001600160801b039081169187019190915260a091820151169085015260c090930192908501906001016121d2565b5091979650505050505050565b84516001600160a01b03908116825260208087015163ffffffff1690830152604080870151909116818301526060808701519083015260808087015161ffff9081168285015286546001600160401b0380821660a08701529381901c90911660c085015260501c6001600160801b0390811660e08501526001870154908116610100850152901c1661012082015261016061014082018190526000906122fb8382018587612152565b979650505050505050565b60006020828403121561231857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107425761074261231f565b6000808335601e1984360301811261235f57600080fd5b8301803591506001600160401b0382111561237957600080fd5b602001915036819003821315611c4457600080fd5b63ffffffff61239c82611b46565b168252602081013560208301526001600160401b036123bd60408301611df3565b1660408301525050565b6123d1818961238e565b60018060a01b038716606082015285608082015260e060a082015260006123fc60e083018688612152565b82810360c084015261240f818587612152565b9a9950505050505050505050565b60006001600160401b038083168181036124395761243961231f565b6001019392505050565b6000808585111561245357600080fd5b8386111561246057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156124955780818660040360031b1b83161692505b505092915050565b6000604082840312156124af57600080fd5b604051604081018181106001600160401b03821117156124d1576124d1611d85565b6040526124dd83611a85565b8152602083013560208201528091505092915050565b808201808211156107425761074261231f565b60008151808452602080850194506020840160005b8381101561253957815115158752958201959082019060010161251b565b509495945050505050565b600060e08201612554838a61238e565b63ffffffff881660608401526001600160a01b03878116608085015260e060a0850152908590528590610100840160005b878110156125b6578261259785611a85565b1682526020848101359083015260409384019390910190600101612585565b5084810360c08601526125c98187612506565b9b9a5050505050505050505050565b60006001600160401b038216806125f1576125f161231f565b6000190192915050565b8035602083101561074257600019602084900360031b1b1692915050565b60006020828403121561262b57600080fd5b815161139781611b02565b6000825160005b81811015612657576020818601810151858301520161263d565b50600092019182525091905056fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220cab19ebaa8e6602c84c9f9f739a45b5571c5513ee60da41f638da9127243412364736f6c6343000816003360a060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610052565b50670de0b6b3a76400006080526100a2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60805161119a6100bd60003960006107cb015261119a6000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063434ee01614610087578063566ef762146100ba578063715018a6146100da5780638da5cb5b146100ef578063f2fde38b1461011757600080fd5b3661006057005b600080fd5b34801561007157600080fd5b50610085610080366004610dc9565b610137565b005b34801561009357600080fd5b506100a76100a2366004610e1d565b61014f565b6040519081526020015b60405180910390f35b3480156100c657600080fd5b506100a76100d5366004610e1d565b610328565b3480156100e657600080fd5b506100856103fb565b3480156100fb57600080fd5b506000546040516001600160a01b0390911681526020016100b1565b34801561012357600080fd5b50610085610132366004610eaf565b61040f565b61013f61044d565b61014a83838361047a565b505050565b600061015e6020850185610eca565b67ffffffffffffffff166000036101a65761017f6040860160208701610ef4565b60405163c3baa0b760e01b815263ffffffff90911660048201526024015b60405180910390fd5b6000806101f96101c56101bf60408a0160208b01610ef4565b50600090565b6101d26020890189610eca565b6101e260a08a0160808b01610eca565b6101f260808b0160608c01610f2f565b898961049d565b9092509050600080808061021060208c018c610eaf565b6001600160a01b03166388a4124c61022e60408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e0135602482015260448101889052606401608060405180830381865afa158015610281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a59190610f4c565b929650909450925090506102ef846102c360408d0160208e01610fa1565b8d60800160208101906102d69190610fa1565b8d60400160208101906102e99190610f2f565b8561075b565b965061030f8684848e608001602081019061030a9190610fa1565b610832565b6103199088610fdb565b9b9a5050505050505050505050565b60006103376020850185610eca565b67ffffffffffffffff166000036103585761017f6040860160208701610ef4565b6000806103716101c56101bf60408a0160208b01610ef4565b9092509050600080808061038860208c018c610eaf565b6001600160a01b031663c1723a1d6103a660408e0160208f01610ef4565b6040516001600160e01b031960e084901b16815263ffffffff91909116600482015260608e01356024820152604481018890526064016080604051808303816000875af1158015610281573d6000803e3d6000fd5b61040361044d565b61040d600061088a565b565b61041761044d565b6001600160a01b03811661044157604051631e4fbdf760e01b81526000600482015260240161019d565b61044a8161088a565b50565b6000546001600160a01b0316331461040d5760405163118cdaa760e01b815233600482015260240161019d565b6001600160a01b0383166104925761014a82826108da565b61014a838383610987565b6000808281036104bf5760405162575ea160e01b815260040160405180910390fd5b5067ffffffffffffffff861660008089815b868410156106a15760003681806104e98c8c8a6109c2565b9a509195509350915087905060001960ff85160161057c5760008061050e8585610a18565b9150915087801561052857506000816001600160801b0316115b1561054b5760405163052e551560e01b815260ff8716600482015260240161019d565b61055e6001600160801b0382168d610fdb565b9b506105736001600160801b03831688610fdb565b96505050610698565b60011960ff8516016105b25760006105948484610a7d565b5090506105aa6001600160801b0382168c610fdb565b9a5050610698565b60021960ff8516016106655785156105e25760405163052e551560e01b815260ff8516600482015260240161019d565b6000806105ef8585610abb565b9250925050816001600160801b031660000361061e5760405163a169d0e160e01b815260040160405180910390fd5b6106316001600160801b0382168d610fdb565b9b508f67ffffffffffffffff16826106499190610fee565b61065c906001600160801b03168c610fdb565b9a505050610698565b60031960ff85160161067a5760019650610698565b60405163052e551560e01b815260ff8516600482015260240161019d565b505050506104d1565b8387146106c457604051634c83bb7560e11b81526004810185905260240161019d565b886001600160801b03168611156106ff576040516242670160e11b8152600481018790526001600160801b038a16602482015260440161019d565b8060000361072057604051630e5eb8f360e41b815260040160405180910390fd5b61072a8186610fdb565b9450821561074c57606461073f866066611015565b610749919061102c565b94505b50505050965096945050505050565b60008061ffff86161561076e5785610770565b845b9050600061271061078561ffff84168a611015565b61078f919061102c565b90506001600160801b03841615806107ae57506001600160801b038516155b156107bc5791506108299050565b600088856001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000886001600160801b03166107fe9190611015565b610808919061102c565b6108129190610fdb565b90508181116108215781610823565b805b93505050505b95945050505050565b60008415610882576127108261ffff16846001600160801b0316866001600160801b0316886108619190611015565b61086b919061102c565b6108759190611015565b61087f919061102c565b90505b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216610901576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461094e576040519150601f19603f3d011682016040523d82523d6000602084013e610953565b606091505b505090508061014a57604051631196f20d60e21b81526001600160a01b03841660048201526024810183905260440161019d565b6001600160a01b0382166109ae576040516306b7a93160e41b815260040160405180910390fd5b61014a6001600160a01b0384168383610b2f565b6000368160018401816109d6888884610b81565b6002929092019190506109ea888884610baa565b94506001820161ffff82168301610a0381838b8d61104e565b979b909a50969850505061ffff160193505050565b60008060108314801590610a2d575060208314155b15610a4b57604051634796aee160e01b815260040160405180910390fd5b610a5784846000610bcf565b915060208314610a68576000610a74565b610a7484846010610bcf565b90509250929050565b60008060308314610aa1576040516361d0c2c760e11b815260040160405180910390fd5b610aad84846000610bcf565b9150610a7484846010610bf6565b6000808060128414801590610ad1575060228414155b15610aef57604051638b4aa70b60e01b815260040160405180910390fd5b610afb85856000610b81565b9250610b0985856002610bcf565b915060228414610b1a576000610b26565b610b2685856012610bcf565b90509250925092565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261014a908490610c11565b600060028201610b938184868861104e565b610b9c91611078565b60f01c9150505b9392505050565b6000838383818110610bbe57610bbe6110a8565b919091013560f81c95945050505050565b600060108201610be18184868861104e565b610bea916110be565b60801c95945050505050565b600060208201610c088184868861104e565b610829916110f5565b6000610c266001600160a01b03841683610c74565b90508051600014158015610c4b575080806020019051810190610c499190611113565b155b1561014a57604051635274afe760e01b81526001600160a01b038416600482015260240161019d565b6060610c8283836000610c8b565b90505b92915050565b606081471015610cb05760405163cd78605960e01b815230600482015260240161019d565b600080856001600160a01b03168486604051610ccc9190611135565b60006040518083038185875af1925050503d8060008114610d09576040519150601f19603f3d011682016040523d82523d6000602084013e610d0e565b606091505b5091509150610d1e868383610d28565b9695505050505050565b606082610d3d57610d3882610d84565b610ba3565b8151158015610d5457506001600160a01b0384163b155b15610d7d57604051639996b31560e01b81526001600160a01b038516600482015260240161019d565b5080610ba3565b805115610d945780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610dc457600080fd5b919050565b600080600060608486031215610dde57600080fd5b610de784610dad565b9250610df560208501610dad565b9150604084013590509250925092565b600060a08284031215610e1757600080fd5b50919050565b6000806000806101608587031215610e3457600080fd5b610e3e8686610e05565b9350610e4d8660a08701610e05565b925061014085013567ffffffffffffffff80821115610e6b57600080fd5b818701915087601f830112610e7f57600080fd5b813581811115610e8e57600080fd5b886020828501011115610ea057600080fd5b95989497505060200194505050565b600060208284031215610ec157600080fd5b610c8282610dad565b600060208284031215610edc57600080fd5b813567ffffffffffffffff81168114610ba357600080fd5b600060208284031215610f0657600080fd5b813563ffffffff81168114610ba357600080fd5b6001600160801b038116811461044a57600080fd5b600060208284031215610f4157600080fd5b8135610ba381610f1a565b60008060008060808587031215610f6257600080fd5b845193506020850151610f7481610f1a565b6040860151909350610f8581610f1a565b6060860151909250610f9681610f1a565b939692955090935050565b600060208284031215610fb357600080fd5b813561ffff81168114610ba357600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610c8557610c85610fc5565b6001600160801b0381811683821601908082111561100e5761100e610fc5565b5092915050565b8082028115828204841417610c8557610c85610fc5565b60008261104957634e487b7160e01b600052601260045260246000fd5b500490565b6000808585111561105e57600080fd5b8386111561106b57600080fd5b5050820193919092039150565b6001600160f01b031981358181169160028510156110a05780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b6fffffffffffffffffffffffffffffffff1981358181169160108510156110a05760109490940360031b84901b1690921692915050565b80356020831015610c8557600019602084900360031b1b1692915050565b60006020828403121561112557600080fd5b81518015158114610ba357600080fd5b6000825160005b81811015611156576020818601810151858301520161113c565b50600092019182525091905056fea26469706673582212203780ea40a0f93eab5083efacc1d316a7c83f03997bd6b3821d356fbf88b94a5164736f6c6343000816003360a06040523480156200001157600080fd5b50604051620038e7380380620038e78339810160408190526200003491620004de565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b03861617905582828686612ee060008660005b8551811015620000d657620000cc7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000b857620000b8620005b1565b60200260200101516200027d60201b60201c565b5060010162000074565b5060005b815181101562000128576200011e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000b857620000b8620005b1565b50600101620000da565b505050505050806001600160401b03166000036200015957604051635f86e17760e01b815260040160405180910390fd5b806001600160401b0316825110156200019f5781516040516378e2c15760e11b81526001600160401b039182166004820152908216602482015260440160405180910390fd5b6000805b835181101562000231576000848281518110620001c457620001c4620005b1565b60200260200101519050826001600160a01b0316816001600160a01b03161162000201576040516305fa937f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600460205260409020805460ff1916600190811790915590925001620001a3565b50509051600580546001600160401b0393841668010000000000000000026001600160801b0319909116939092169290921717905550505063ffffffff90921660805250620006049050565b60007f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca83148015620002d057506000838152602081815260408083206001600160a01b038616845290915290205460ff16155b156200031d5760018054601590620002f890600160a81b90046001600160401b0316620005c7565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b62000329838362000335565b50600190505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16620003da576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620003913390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200032f565b5060006200032f565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200041157600080fd5b919050565b600082601f8301126200042857600080fd5b815160206001600160401b0380831115620004475762000447620003e3565b8260051b604051601f19603f830116810181811084821117156200046f576200046f620003e3565b60405293845260208187018101949081019250878511156200049057600080fd5b6020870191505b84821015620004bb57620004ab82620003f9565b8352918301919083019062000497565b979650505050505050565b80516001600160401b03811681146200041157600080fd5b60008060008060008060c08789031215620004f857600080fd5b865163ffffffff811681146200050d57600080fd5b60208801519096506001600160401b03808211156200052b57600080fd5b620005398a838b0162000416565b96506200054960408a01620003f9565b955060608901519150808211156200056057600080fd5b6200056e8a838b0162000416565b94506200057e60808a01620004c6565b935060a08901519150808211156200059557600080fd5b50620005a489828a0162000416565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b03198101620005fa57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6080516132b96200062e6000396000818161074c015281816112280152611b1001526132b96000f3fe60806040526004361061022f5760003560e01c80638585c9451161012e578063c7a823e0116100ab578063d547741f1161006f578063d547741f146107aa578063dafe0ccc146107ca578063f010cb23146107ea578063f3b4ebd01461080a578063fd62e7501461082a57600080fd5b8063c7a823e0146106cc578063c7b2370b146106fa578063cd88b9031461071a578063cf34c7681461073a578063d2ae21041461078357600080fd5b8063aef18bf7116100f2578063aef18bf714610617578063b143044b14610647578063c358de0a14610667578063c416aa5114610687578063c5e193cd146106ac57600080fd5b80638585c9451461052a57806391d148541461054a57806395d376d71461056a5780639e9449651461057d578063a217fddf1461060257600080fd5b80632f2ff15d116101bc5780635553fb8e116101805780635553fb8e1461046a5780635c975abb1461048a578063724e78da146104a2578063736c0d5b146104c2578063741bef1a146104f257600080fd5b80632f2ff15d146103ca57806330bb3aac146103ea57806331cb61051461040a57806336568abe1461042a57806352d3b8711461044a57600080fd5b806316c38b3c1161020357806316c38b3c146102e05780631703a01814610300578063248a9ca31461033f57806326e67a371461037d5780632de11376146103aa57600080fd5b8062bf2e801461023457806301e336671461026e57806301ffc9a7146102905780631095b6d7146102c0575b600080fd5b34801561024057600080fd5b5060015461025690600160e81b900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561027a57600080fd5b5061028e610289366004612695565b61084a565b005b34801561029c57600080fd5b506102b06102ab3660046126d6565b610873565b6040519015158152602001610265565b3480156102cc57600080fd5b5061028e6102db366004612695565b6108aa565b3480156102ec57600080fd5b5061028e6102fb36600461270e565b6109ac565b34801561030c57600080fd5b5060055461032790600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610265565b34801561034b57600080fd5b5061036f61035a36600461272b565b60009081526020819052604090206001015490565b604051908152602001610265565b34801561038957600080fd5b5061039d610398366004612758565b6109d1565b6040516102659190612773565b3480156103b657600080fd5b506102b06103c53660046127ba565b610a58565b3480156103d657600080fd5b5061028e6103e53660046127d7565b610add565b3480156103f657600080fd5b5061036f610405366004612866565b610bb2565b34801561041657600080fd5b5061028e6104253660046128dd565b610cca565b34801561043657600080fd5b5061028e6104453660046127d7565b610cf4565b34801561045657600080fd5b5061028e61046536600461290b565b610d0d565b34801561047657600080fd5b5061036f610485366004612991565b610e86565b34801561049657600080fd5b5060015460ff166102b0565b3480156104ae57600080fd5b5061028e6104bd3660046127ba565b610f9e565b3480156104ce57600080fd5b506102b06104dd3660046127ba565b60046020526000908152604090205460ff1681565b3480156104fe57600080fd5b50600254610512906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b34801561053657600080fd5b5061028e6105453660046129e7565b61100c565b34801561055657600080fd5b506102b06105653660046127d7565b611038565b61036f610578366004612a1a565b611061565b34801561058957600080fd5b506105d1610598366004612758565b6006602052600090815260409020546001600160401b03811690600160401b810461ffff1690600160501b90046001600160801b031683565b604080516001600160401b03909416845261ffff90921660208401526001600160801b031690820152606001610265565b34801561060e57600080fd5b5061036f600081565b34801561062357600080fd5b506102b061063236600461272b565b60076020526000908152604090205460ff1681565b34801561065357600080fd5b5061028e610662366004612ac6565b6111d7565b34801561067357600080fd5b5061028e610682366004612b07565b61148c565b34801561069357600080fd5b506001546105129061010090046001600160a01b031681565b3480156106b857600080fd5b5061036f6106c7366004612991565b6114f4565b3480156106d857600080fd5b506106ec6106e7366004612b22565b611661565b604051610265929190612b76565b34801561070657600080fd5b5061028e6107153660046127ba565b61183f565b34801561072657600080fd5b5061028e610735366004612baa565b6118ad565b34801561074657600080fd5b5061076e7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610265565b34801561078f57600080fd5b5060015461032790600160a81b90046001600160401b031681565b3480156107b657600080fd5b5061028e6107c53660046127d7565b6118ec565b3480156107d657600080fd5b5061028e6107e5366004612695565b6119a0565b3480156107f657600080fd5b5061036f610805366004612bef565b611a55565b34801561081657600080fd5b5061028e610825366004612c59565b611a91565b34801561083657600080fd5b50600554610327906001600160401b031681565b60008051602061324483398151915261086281611c3f565b61086d848484611c49565b50505050565b60006001600160e01b03198216637965db0b60e01b14806108a457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000805160206132448339815191526108c281611c3f565b6108da60008051602061322483398151915285611038565b6108f757604051635ee08b9760e01b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0384811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561094157600080fd5b505af1158015610955573d6000803e3d6000fd5b5050604080516001600160a01b038089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b60006109b781611c3f565b81156109c9576109c5611c71565b5050565b6109c5611cc5565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610a4c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610a1d5790505b50505050509050919050565b6000610a847f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e483611038565b15610a9157506000919050565b600154600160a81b90046001600160401b03161580610ac35750610ac360008051602061326483398151915283611038565b15610ad057506001919050565b506000919050565b919050565b81600080516020613264833981519152811480610b1957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610b31575060008051602061322483398151915281145b15610b5b57303314610b5657604051637d5d391d60e11b815260040160405180910390fd5b610ba8565b6000805160206132448339815191528103610b8757610b56600080516020613244833981519152611c3f565b604051634a7ee1b960e11b8152600481018290526024015b60405180910390fd5b61086d8383611cfe565b600083610bbe81610a58565b610bdb57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825263ffffffff8a1660208084018290526001600160401b03808c16858701528a84166060860152600554600160401b900416608085015260015461ffff600160e81b82041660a086015260009283526006909152908490209351637bfa20a960e01b8152929361010090910490911691637bfa20a991610c7d918591908a908a90600401612d1d565b602060405180830381865afa158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbe9190612d77565b98975050505050505050565b303314610cea57604051637d5d391d60e11b815260040160405180910390fd5b6109c58282611d82565b60405163dec9f03160e01b815260040160405180910390fd5b600080516020613244833981519152610d2581611c3f565b60005b82811015610e475736848483818110610d4357610d43612d90565b90506080020190506040518060600160405280826020016020810190610d6991906129e7565b6001600160401b03168152602001610d876060840160408501612b07565b61ffff168152602001610da06080840160608501612dbd565b6001600160801b0316905260066000610dbc6020850185612758565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516001600160801b0316600160501b026fffffffffffffffffffffffffffffffff60501b1961ffff909516600160401b0269ffffffffffffffffffff199094166001600160401b0390931692909217929092179290921691909117905550600101610d28565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051610e79929190612dd8565b60405180910390a1505050565b600081610e9281610a58565b610eaf57604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808a1660208085018290526001600160401b03808b16868801528985166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451637bfa20a960e01b8152939461010090920490921692637bfa20a992610f52928692600401612ebc565b602060405180830381865afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f939190612d77565b979650505050505050565b600080516020613244833981519152610fb681611c3f565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b30331461102c57604051637d5d391d60e11b815260040160405180910390fd5b61103581611edd565b50565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600060008051602061322483398151915261107b81611c3f565b61108b60a08601608087016127ba565b61109481610a58565b6110b157604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c081019091526002546001600160a01b031681526000906020808201906110df908a018a612758565b63ffffffff1681526020016110fa60808a0160608b016129e7565b6001600160401b0316815260200161111860a08a0160808b016127ba565b6001600160a01b039081168252600554600160401b90046001600160401b0316602080840191909152600154600160e81b810461ffff16604090940193909352929350610100909104169063df2b057e90839060069060009061117d908d018d612758565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b81526004016111b89493929190612d1d565b6020604051808303816000875af1158015610f6f573d6000803e3d6000fd5b6000805160206132448339815191526111ef81611c3f565b60005b8281101561086d573684848381811061120d5761120d612d90565b905060200281019061121f9190612f15565b905063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112556020830183612758565b63ffffffff16146112665750611484565b428160600135116112775750611484565b60006112b06112896020840184612758565b61129960408501602086016127ba565b6112a66040860186612f35565b8660600135611a55565b905060006112c5826106e76080860186612f35565b50905080611308576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611484565b600061132861131a6040860186612f35565b61132391612f7b565b611fab565b905080156113a35760008381526007602052604090205460ff1615611389577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611378929190612ff0565b60405180910390a150505050611484565b6000838152600760205260409020805460ff191660011790555b6000806113b660408701602088016127ba565b6001600160a01b03166113cc6040880188612f35565b6040516113da92919061308b565b6000604051808303816000865af19150503d8060008114611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50915091508161147d578215611443576000858152600760205260409020805460ff191690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf878260405161147492919061309b565b60405180910390a15b5050505050505b6001016111f2565b6000805160206132448339815191526114a481611c3f565b6001805461ffff60e81b1916600160e81b61ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611000565b600060008051602061322483398151915261150e81611c3f565b8261151881610a58565b61153557604051634ab5ebcd60e01b815260040160405180910390fd5b6040805160c0810182526002546001600160a01b03908116825261ffff808b1660208085018290526001600160401b03808c16868801528a85166060870152600554600160401b9004166080860152600154600160e81b810490931660a0860152600091825260068152858220865191820187529181529451636f9582bf60e11b815293946101009092049092169263df2b057e926115d8928692600401612ebc565b6020604051808303816000875af11580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612d77565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef8460405161164e91815260200190565b60405180910390a1505050949350505050565b600554600090819061168490600160401b90046001600160401b031660416130ca565b83146116965750600090506001611837565b60006116ef866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b600554600160401b90046001600160401b031681101561182b57366000888861171f8560416130ca565b9061172b8660016130e1565b6117369060416130ca565b92611743939291906130f4565b9150915060008061178a8785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611fe492505050565b50909250905060008160038111156117a4576117a4612b60565b146117bd57600060019850985050505050505050611837565b856001600160a01b0316826001600160a01b0316116117ea57600060029850985050505050505050611837565b6001600160a01b03821660009081526004602052604090205460ff1661181e57600060039850985050505050505050611837565b50935050506001016116f5565b50600160009350935050505b935093915050565b60008051602061324483398151915261185781611c3f565b60018054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611000565b6000805160206132448339815191526118c581611c3f565b63ffffffff841660009081526003602052604090206118e59084846125c2565b5050505050565b8160008051602061326483398151915281148061192857507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611940575060008051602061322483398151915281145b1561196a5730331461196557604051637d5d391d60e11b815260040160405180910390fd5b611996565b6000805160206132448339815191528103610b8757611965600080516020613244833981519152611c3f565b61086d8383612031565b6000805160206132448339815191526119b881611c3f565b6119d060008051602061322483398151915285611038565b6119ed57604051635ee08b9760e01b815260040160405180910390fd5b6040516303d8c5ef60e11b81526001600160a01b038481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001611a7095949392919061311e565b60405160208183030381529060405280519060200120905095945050505050565b42816060013511611ab557604051630bbaf26360e01b815260040160405180910390fd5b30611ac660408301602084016127ba565b6001600160a01b031614611b0957611ae460408201602083016127ba565b604051631ce0bfcd60e01b81526001600160a01b039091166004820152602401610b9f565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611b3d6020830183612758565b63ffffffff1614611b7757611b556020820182612758565b60405163134bf0e160e11b815263ffffffff9091166004820152602401610b9f565b6000611b896112896020840184612758565b90506000611b9e826106e76080860186612f35565b50905080611bbf57604051630af656f760e11b815260040160405180910390fd5b60008281526007602052604090205460ff1615611bf257604051634eb522d360e11b815260048101839052602401610b9f565b60008281526007602052604090819020805460ff1916600117905561086d9060008051602061324483398151915290611c2d90860186612f35565b810190611c3a91906127ba565b611cfe565b61103581336120a9565b6001600160a01b038316611c6657611c6182826120e2565b505050565b611c6183838361218f565b611c796121ca565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b6040516001600160a01b03909116815260200160405180910390a1565b611ccd6121f0565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611ca8565b600060008051602061326483398151915283148015611d245750611d228383611038565b155b15611d6e5760018054601590611d4990600160a81b90046001600160401b0316613164565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612213565b5060019392505050565b6001600160a01b03821660009081526004602052604090205481151560ff909116151503611dd6576040516302c6469560e51b81526001600160a01b03831660048201528115156024820152604401610b9f565b6001600160a01b0382166000908152600460205260408120805460ff191683151517905581611e1c57600554611e17906001906001600160401b031661318a565b611e33565b600554611e33906001600160401b031660016131b1565b6005549091506001600160401b03600160401b9091048116908216811115611e81576040516378e2c15760e11b81526001600160401b03808416600483015282166024820152604401610b9f565b6005805467ffffffffffffffff19166001600160401b038416179055604080516001600160a01b038616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce910161099e565b806001600160401b0316600003611f0757604051635f86e17760e01b815260040160405180910390fd5b6005546001600160401b03908116908216811015611f4b576040516378e2c15760e11b81526001600160401b03808316600483015283166024820152604401610b9f565b600580546fffffffffffffffff00000000000000001916600160401b6001600160401b038516908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611000565b60006001600160e01b03198216630111a9b760e11b148015906108a457506001600160e01b0319821663704316e560e01b141592915050565b6000806000835160410361201e5760208401516040850151606086015160001a612010888285856122a5565b95509550955050505061202a565b50508151600091506002905b9250925092565b60006000805160206132648339815191528314801561205557506120558383611038565b1561209f576001805460159061207a90600160a81b90046001600160401b03166131d1565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611d788383612374565b6120b38282611038565b6109c55760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610b9f565b6001600160a01b038216612109576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612156576040519150601f19603f3d011682016040523d82523d6000602084013e61215b565b606091505b5050905080611c6157604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610b9f565b6001600160a01b0382166121b6576040516306b7a93160e41b815260040160405180910390fd5b611c616001600160a01b03841683836123df565b60015460ff16156121ee5760405163d93c066560e01b815260040160405180910390fd5b565b60015460ff166121ee57604051638dfc202b60e01b815260040160405180910390fd5b600061221f8383611038565b61229d576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556122553390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016108a4565b5060006108a4565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156122e0575060009150600390508261236a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612334573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123605750600092506001915082905061236a565b9250600091508190505b9450945094915050565b60006123808383611038565b1561229d576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016108a4565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180516001600160e01b031663a9059cbb60e01b179052611c619185919060009061243d9084168361248b565b9050805160001415801561246257508080602001905181019061246091906131f4565b155b15611c6157604051635274afe760e01b81526001600160a01b0384166004820152602401610b9f565b6060612499838360006124a0565b9392505050565b6060814710156124c55760405163cd78605960e01b8152306004820152602401610b9f565b600080856001600160a01b031684866040516124e19190613211565b60006040518083038185875af1925050503d806000811461251e576040519150601f19603f3d011682016040523d82523d6000602084013e612523565b606091505b509150915061253386838361253d565b9695505050505050565b6060826125525761254d82612599565b612499565b815115801561256957506001600160a01b0384163b155b1561259257604051639996b31560e01b81526001600160a01b0385166004820152602401610b9f565b5080612499565b8051156125a95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82805482825590600052602060002090601f0160209004810192821561265b5791602002820160005b8382111561262c57833560ff1683826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026125eb565b80156126595782816101000a81549060ff021916905560010160208160000104928301926001030261262c565b505b5061266792915061266b565b5090565b5b80821115612667576000815560010161266c565b6001600160a01b038116811461103557600080fd5b6000806000606084860312156126aa57600080fd5b83356126b581612680565b925060208401356126c581612680565b929592945050506040919091013590565b6000602082840312156126e857600080fd5b81356001600160e01b03198116811461249957600080fd5b801515811461103557600080fd5b60006020828403121561272057600080fd5b813561249981612700565b60006020828403121561273d57600080fd5b5035919050565b803563ffffffff81168114610ad857600080fd5b60006020828403121561276a57600080fd5b61249982612744565b6020808252825182820181905260009190848201906040850190845b818110156127ae57835160ff168352928401929184019160010161278f565b50909695505050505050565b6000602082840312156127cc57600080fd5b813561249981612680565b600080604083850312156127ea57600080fd5b8235915060208301356127fc81612680565b809150509250929050565b80356001600160401b0381168114610ad857600080fd5b60008083601f84011261283057600080fd5b5081356001600160401b0381111561284757600080fd5b60208301915083602082850101111561285f57600080fd5b9250929050565b60008060008060006080868803121561287e57600080fd5b61288786612744565b945061289560208701612807565b935060408601356128a581612680565b925060608601356001600160401b038111156128c057600080fd5b6128cc8882890161281e565b969995985093965092949392505050565b600080604083850312156128f057600080fd5b82356128fb81612680565b915060208301356127fc81612700565b6000806020838503121561291e57600080fd5b82356001600160401b038082111561293557600080fd5b818501915085601f83011261294957600080fd5b81358181111561295857600080fd5b8660208260071b850101111561296d57600080fd5b60209290920196919550909350505050565b803561ffff81168114610ad857600080fd5b600080600080608085870312156129a757600080fd5b6129b08561297f565b93506129be6020860161297f565b92506129cc60408601612807565b915060608501356129dc81612680565b939692955090935050565b6000602082840312156129f957600080fd5b61249982612807565b600060a08284031215612a1457600080fd5b50919050565b600080600060408486031215612a2f57600080fd5b83356001600160401b0380821115612a4657600080fd5b612a5287838801612a02565b94506020860135915080821115612a6857600080fd5b50612a758682870161281e565b9497909650939450505050565b60008083601f840112612a9457600080fd5b5081356001600160401b03811115612aab57600080fd5b6020830191508360208260051b850101111561285f57600080fd5b60008060208385031215612ad957600080fd5b82356001600160401b03811115612aef57600080fd5b612afb85828601612a82565b90969095509350505050565b600060208284031215612b1957600080fd5b6124998261297f565b600080600060408486031215612b3757600080fd5b8335925060208401356001600160401b03811115612b5457600080fd5b612a758682870161281e565b634e487b7160e01b600052602160045260246000fd5b82151581526040810160048310612b9d57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b600080600060408486031215612bbf57600080fd5b612bc884612744565b925060208401356001600160401b03811115612be357600080fd5b612a7586828701612a82565b600080600080600060808688031215612c0757600080fd5b612c1086612744565b94506020860135612c2081612680565b935060408601356001600160401b03811115612c3b57600080fd5b612c478882890161281e565b96999598509660600135949350505050565b600060208284031215612c6b57600080fd5b81356001600160401b03811115612c8157600080fd5b612c8d84828501612a02565b949350505050565b60018060a01b0380825116835263ffffffff602083015116602084015260408201516001600160401b03808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000610140612d2c8388612c95565b612d6360c0840187546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b80610120840152610f938184018587612cf4565b600060208284031215612d8957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b80356001600160801b0381168114610ad857600080fd5b600060208284031215612dcf57600080fd5b61249982612da6565b6020808252818101839052600090604080840186845b87811015612e5f5763ffffffff612e0483612744565b1683526001600160401b03612e1a868401612807565b168584015261ffff612e2d85840161297f565b168484015260606001600160801b03612e47828501612da6565b16908401526080928301929190910190600101612dee565b5090979650505050505050565b60005b83811015612e87578181015183820152602001612e6f565b50506000910152565b60008151808452612ea8816020860160208601612e6c565b601f01601f19169290920160200192915050565b6000610140612ecb8387612c95565b612f0260c0840186546001600160401b0381168252604081811c61ffff16602084015260509190911c6001600160801b0316910152565b8061012084015261253381840185612e90565b60008235609e19833603018112612f2b57600080fd5b9190910192915050565b6000808335601e19843603018112612f4c57600080fd5b8301803591506001600160401b03821115612f6657600080fd5b60200191503681900382131561285f57600080fd5b6001600160e01b03198135818116916004851015612fa35780818660040360031b1b83161692505b505092915050565b6000808335601e19843603018112612fc257600080fd5b83016020810192503590506001600160401b03811115612fe157600080fd5b80360382131561285f57600080fd5b6040815263ffffffff61300284612744565b1660408201526000602084013561301881612680565b6001600160a01b031660608301526130336040850185612fab565b60a0608085015261304860e085018284612cf4565b915050606085013560a08401526130626080860186612fab565b848303603f190160c0860152613079838284612cf4565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000612c8d6040830184612e90565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108a4576108a46130b4565b808201808211156108a4576108a46130b4565b6000808585111561310457600080fd5b8386111561311157600080fd5b5050820193919092039150565b63ffffffff60e01b8660e01b1681526bffffffffffffffffffffffff198560601b1660048201528360188201528183603883013760009101603801908152949350505050565b60006001600160401b03808316818103613180576131806130b4565b6001019392505050565b6001600160401b038281168282160390808211156131aa576131aa6130b4565b5092915050565b6001600160401b038181168382160190808211156131aa576131aa6130b4565b60006001600160401b038216806131ea576131ea6130b4565b6000190192915050565b60006020828403121561320657600080fd5b815161249981612700565b60008251612f2b818460208701612e6c56fe724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19dea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177574845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bcaa26469706673582212203b61bbdddbd40de2a99f40cf79bc54fd320e09acc6ea01dd4f473c7f674ee39f64736f6c6343000816003360a060405234801561001057600080fd5b50604051610e2e380380610e2e83398101604081905261002f916100b7565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610067565b506080526100d0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100c957600080fd5b5051919050565b608051610d436100eb60003960006105fa0152610d436000f3fe6080604052600436106100595760003560e01c806301e3366714610065578063715018a6146100875780637bfa20a91461009c5780638da5cb5b146100cf578063df2b057e146100f7578063f2fde38b1461010a57600080fd5b3661006057005b600080fd5b34801561007157600080fd5b506100856100803660046109c7565b61012a565b005b34801561009357600080fd5b50610085610142565b3480156100a857600080fd5b506100bc6100b7366004610a03565b610156565b6040519081526020015b60405180910390f35b3480156100db57600080fd5b506000546040516001600160a01b0390911681526020016100c6565b6100bc610105366004610a03565b6102e6565b34801561011657600080fd5b50610085610125366004610aa5565b6103cf565b61013261040d565b61013d83838361043a565b505050565b61014a61040d565b610154600061045d565b565b60006101656020850185610ac0565b67ffffffffffffffff166000036101ad576101866040860160208701610aea565b60405163680489c560e11b815263ffffffff90911660048201526024015b60405180910390fd5b6101b783836104ad565b5060006101dc6101cd60a0880160808901610ac0565b67ffffffffffffffff1661051f565b90506000806101ee6020890189610aa5565b6001600160a01b03166388a4124c61020c60408b0160208c01610aea565b8561021a60208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff166044820152606401608060405180830381865afa158015610273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102979190610b25565b9350505091506102da828860200160208101906102b49190610b7a565b6102c460c08c0160a08d01610b7a565b6102d460608c0160408d01610b9e565b8561058b565b98975050505050505050565b60006102f56020850185610ac0565b67ffffffffffffffff16600003610316576101866040860160208701610aea565b61032083836104ad565b5060006103366101cd60a0880160808901610ac0565b90506000806103486020890189610aa5565b6001600160a01b031663c1723a1d61036660408b0160208c01610aea565b8561037460208c018c610ac0565b6040516001600160e01b031960e086901b16815263ffffffff939093166004840152602483019190915267ffffffffffffffff1660448201526064016080604051808303816000875af1158015610273573d6000803e3d6000fd5b6103d761040d565b6001600160a01b03811661040157604051631e4fbdf760e01b8152600060048201526024016101a4565b61040a8161045d565b50565b6000546001600160a01b031633146101545760405163118cdaa760e01b81523360048201526024016101a4565b6001600160a01b0383166104525761013d8282610661565b61013d83838361070e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008082156104f0576000806104c4868685610749565b604051637085244b60e01b815260ff8516600482015290965092945085935050602490910190506101a4565b8083146105135760405163013adb8360e21b8152600481018290526024016101a4565b60009150505b92915050565b60008061052d604184610bd1565b905061053a602082610bfe565b156105625761054a602082610bfe565b6105549082610c12565b61055f906020610c25565b90505b8061056f60e06044610c25565b6105799190610c25565b610584906040610c25565b9392505050565b60008061ffff86161561059e57856105a0565b845b905060006127106105b561ffff84168a610bd1565b6105bf9190610c38565b90506001600160801b03841615806105de57506001600160801b038516155b156105ec5791506106589050565b6000846001600160801b03167f0000000000000000000000000000000000000000000000000000000000000000876001600160801b031661062d9190610bd1565b6106379190610c38565b610641908a610c25565b90508181116106505781610652565b805b93505050505b95945050505050565b6001600160a01b038216610688576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b505090508061013d57604051631196f20d60e21b81526001600160a01b0384166004820152602481018390526044016101a4565b6001600160a01b038216610735576040516306b7a93160e41b815260040160405180910390fd5b61013d6001600160a01b03841683836107a3565b60003681600184018161075d8888846107f5565b6002830192909150610775908990899060030161081c565b94506002820161ffff8216830161078e81838b8d610c4c565b979b909a50969850505061ffff160193505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261013d908490610841565b60006002820161080781848688610c4c565b61081091610c76565b60f01c95945050505050565b600083838381811061083057610830610ca6565b919091013560f81c95945050505050565b60006108566001600160a01b038416836108a4565b9050805160001415801561087b5750808060200190518101906108799190610cbc565b155b1561013d57604051635274afe760e01b81526001600160a01b03841660048201526024016101a4565b60606105848383600084600080856001600160a01b031684866040516108ca9190610cde565b60006040518083038185875af1925050503d8060008114610907576040519150601f19603f3d011682016040523d82523d6000602084013e61090c565b606091505b509150915061091c868383610926565b9695505050505050565b60608261093b5761093682610982565b610584565b815115801561095257506001600160a01b0384163b155b1561097b57604051639996b31560e01b81526001600160a01b03851660048201526024016101a4565b5080610584565b8051156109925780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109c257600080fd5b919050565b6000806000606084860312156109dc57600080fd5b6109e5846109ab565b92506109f3602085016109ab565b9150604084013590509250925092565b600080600080848603610140811215610a1b57600080fd5b60c0811215610a2957600080fd5b859450606060bf1982011215610a3e57600080fd5b5060c08501925061012085013567ffffffffffffffff80821115610a6157600080fd5b818701915087601f830112610a7557600080fd5b813581811115610a8457600080fd5b886020828501011115610a9657600080fd5b95989497505060200194505050565b600060208284031215610ab757600080fd5b610584826109ab565b600060208284031215610ad257600080fd5b813567ffffffffffffffff8116811461058457600080fd5b600060208284031215610afc57600080fd5b813563ffffffff8116811461058457600080fd5b6001600160801b038116811461040a57600080fd5b60008060008060808587031215610b3b57600080fd5b845193506020850151610b4d81610b10565b6040860151909350610b5e81610b10565b6060860151909250610b6f81610b10565b939692955090935050565b600060208284031215610b8c57600080fd5b813561ffff8116811461058457600080fd5b600060208284031215610bb057600080fd5b813561058481610b10565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761051957610519610bbb565b634e487b7160e01b600052601260045260246000fd5b600082610c0d57610c0d610be8565b500690565b8181038181111561051957610519610bbb565b8082018082111561051957610519610bbb565b600082610c4757610c47610be8565b500490565b60008085851115610c5c57600080fd5b83861115610c6957600080fd5b5050820193919092039150565b6001600160f01b03198135818116916002851015610c9e5780818660020360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610cce57600080fd5b8151801515811461058457600080fd5b6000825160005b81811015610cff5760208186018101518583015201610ce5565b50600092019182525091905056fea2646970667358221220a3bc24e7c5cbedac7e00899eb168625849d3210800cd0b59d0aa08cd2b3af71664736f6c6343000816003360e06040523480156200001157600080fd5b5060405162001a4438038062001a44833981016040819052620000349162000179565b33806200005b57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000668162000110565b50600180546001600160a01b0319166001600160a01b038481169190911790915581166080819052600060a0526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa158015620000cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f59190620001b8565b63ffffffff1660c052505060636003556064600455620001e7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200017657600080fd5b50565b600080604083850312156200018d57600080fd5b82516200019a8162000160565b6020840151909250620001ad8162000160565b809150509250929050565b600060208284031215620001cb57600080fd5b815163ffffffff81168114620001e057600080fd5b9392505050565b60805160a05160c05161181162000233600039600061038c015260006102fb0152600081816102c7015281816105d6015281816106df015281816108e50152610aa101526118116000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063996f79c01161006f578063996f79c014610447578063aec336e61461045d578063d80e9bd91461047d578063dabca063146104aa578063f2fde38b146104ca578063fd9be522146104ea57610156565b8063715018a614610365578063726075371461037a57806372d71322146103c35780638da5cb5b146103e55780638f58aa7a14610403578063909532381461042357610156565b80634389e58f116101085780634389e58f1461025a57806354fd4d50146102895780635e280f11146102b557806361d027b3146102e95780636251b6371461031d5780636750cd4c1461034457610156565b806301ffc9a71461016f5780630e97289b146101a457806312cc947f146101dc5780631881d94d146101fe5780631c7c294e1461021a578063334993ff1461023a57610156565b3661015657005b604051632657b6c360e01b815260040160405180910390fd5b34801561017b57600080fd5b5061018f61018a366004610fd6565b61050a565b60405190151581526020015b60405180910390f35b3480156101b057600080fd5b506001546101c4906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b3480156101e857600080fd5b506101fc6101f7366004611041565b610541565b005b34801561020a57600080fd5b50600260405161019b9190611082565b34801561022657600080fd5b506002546101c4906001600160a01b031681565b34801561024657600080fd5b506101fc6102553660046110aa565b6106b3565b34801561026657600080fd5b5061027a6102753660046111bc565b6106c6565b60405161019b93929190611283565b34801561029557600080fd5b50604080516000808252602082015260029181019190915260600161019b565b3480156102c157600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f557600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b34801561032957600080fd5b50610332600181565b60405160ff909116815260200161019b565b34801561035057600080fd5b5061018f61035f3660046112d2565b50600190565b34801561037157600080fd5b506101fc610810565b34801561038657600080fd5b506103ae7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161019b565b3480156103cf57600080fd5b506103d8610824565b60405161019b91906112ed565b3480156103f157600080fd5b506000546001600160a01b03166101c4565b34801561040f57600080fd5b506101fc61041e366004611320565b6108b2565b34801561042f57600080fd5b5061043960035481565b60405190815260200161019b565b34801561045357600080fd5b5061043960045481565b34801561046957600080fd5b506101fc61047836600461134c565b6109a7565b34801561048957600080fd5b5061049d610498366004611369565b6109d1565b60405161019b91906113e4565b3480156104b657600080fd5b506101fc6104c53660046113fb565b610a13565b3480156104d657600080fd5b506101fc6104e536600461134c565b610a2b565b3480156104f657600080fd5b506101fc610505366004611320565b610a6e565b60006001600160e01b031982166325fc096160e21b148061053b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6002546001600160a01b03161580159061056657506002546001600160a01b03163314155b1561058457604051631c2c85bb60e21b815260040160405180910390fd5b6000604051806060016040528061059b8585610b2e565b63ffffffff1681526020016105b08585610b51565b81526020016105bf8585610b71565b6001600160401b0316905290506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a825d747826106068686610b94565b6106108787610ba6565b60405161061e929190611437565b6040805191829003822060e086901b6001600160e01b0319168352845163ffffffff166004840152602085015160248401529301516001600160401b031660448201526001600160a01b039091166064820152608481019190915260a401600060405180830381600087803b15801561069657600080fd5b505af11580156106aa573d6000803e3d6000fd5b50505050505050565b6106bb610bc2565b600491909155600355565b60408051808201909152600080825260208201526060807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461072657604051630fd72cd960e31b815260040160405180910390fd5b6107376107328761145e565b610bef565b9150845160001461074857846107d4565b60058054610755906114fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610781906114fb565b80156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b50505050505b90506107e08282610c47565b60405180604001604052806004548152602001856107ff576000610803565b6003545b9052969195509350915050565b610818610bc2565b6108226000610caf565b565b60058054610831906114fb565b80601f016020809104026020016040519081016040528092919081815260200182805461085d906114fb565b80156108aa5780601f1061087f576101008083540402835291602001916108aa565b820191906000526020600020905b81548152906001019060200180831161088d57829003601f168201915b505050505081565b6108ba610bc2565b6001600160a01b0382166108e157604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610965919061152f565b90506001600160a01b03811661098e576040516354c1781b60e01b815260040160405180910390fd5b6109a26001600160a01b0382168484610cff565b505050565b6109af610bc2565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201909152600080825260208201526040518060400160405280600454815260200183610a04576000610a08565b6003545b905295945050505050565b610a1b610bc2565b6005610a278282611594565b5050565b610a33610bc2565b6001600160a01b038116610a6257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610a6b81610caf565b50565b610a76610bc2565b6001600160a01b038216610a9d57604051633d3496e160e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b21919061152f565b90506109a2818484610d51565b6000610b3e600d60098486611653565b610b479161167d565b60e01c9392505050565b6000610b61602d600d8486611653565b610b6a916116ad565b9392505050565b6000610b81600960018486611653565b610b8a916116cb565b60c01c9392505050565b6000610b6a610ba38484610d74565b90565b366000610bb68360518187611653565b915091505b9250929050565b6000546001600160a01b031633146108225760405163118cdaa760e01b8152336004820152602401610a59565b8051602080830151604080850151606080870151608088015160a089015160c08a015195519398610c3198600198919791966001600160a01b031695016116f9565b6040516020818303038152906040529050919050565b600154604051631f5dad8b60e31b81526001600160a01b039091169063faed6c5890610c799085908590600401611774565b600060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526109a2908490610d84565b6001600160a01b038316610d69576109a28282610de7565b6109a2838383610e94565b6000610b61605160318486611653565b6000610d996001600160a01b03841683610ecf565b90508051600014158015610dbe575080806020019051810190610dbc91906117a2565b155b156109a257604051635274afe760e01b81526001600160a01b0384166004820152602401610a59565b6001600160a01b038216610e0e576040516306b7a93160e41b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b50509050806109a257604051631196f20d60e21b81526001600160a01b038416600482015260248101839052604401610a59565b6001600160a01b038216610ebb576040516306b7a93160e41b815260040160405180910390fd5b6109a26001600160a01b0384168383610cff565b6060610b6a8383600084600080856001600160a01b03168486604051610ef591906117bf565b60006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b5091509150610f47868383610f51565b9695505050505050565b606082610f6657610f6182610fad565b610b6a565b8151158015610f7d57506001600160a01b0384163b155b15610fa657604051639996b31560e01b81526001600160a01b0385166004820152602401610a59565b5080610b6a565b805115610fbd5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610fe857600080fd5b81356001600160e01b031981168114610b6a57600080fd5b60008083601f84011261101257600080fd5b5081356001600160401b0381111561102957600080fd5b602083019150836020828501011115610bbb57600080fd5b6000806020838503121561105457600080fd5b82356001600160401b0381111561106a57600080fd5b61107685828601611000565b90969095509350505050565b60208101600383106110a457634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156110bd57600080fd5b50508035926020909101359150565b600060e082840312156110de57600080fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561111c5761111c6110e4565b60405290565b600082601f83011261113357600080fd5b81356001600160401b038082111561114d5761114d6110e4565b604051601f8301601f19908116603f01168101908282118183101715611175576111756110e4565b8160405283815286602085880101111561118e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b8015158114610a6b57600080fd5b6000806000606084860312156111d157600080fd5b83356001600160401b03808211156111e857600080fd5b6111f4878388016110cc565b9450602086013591508082111561120a57600080fd5b5061121786828701611122565b9250506040840135611228816111ae565b809150509250925092565b60005b8381101561124e578181015183820152602001611236565b50506000910152565b6000815180845261126f816020860160208601611233565b601f01601f19169290920160200192915050565b83518152602080850151908201526080604082015260006112a76080830185611257565b8281036060840152610f478185611257565b803563ffffffff811681146112cd57600080fd5b919050565b6000602082840312156112e457600080fd5b610b6a826112b9565b602081526000610b6a6020830184611257565b6001600160a01b0381168114610a6b57600080fd5b80356112cd81611300565b6000806040838503121561133357600080fd5b823561133e81611300565b946020939093013593505050565b60006020828403121561135e57600080fd5b8135610b6a81611300565b6000806000806060858703121561137f57600080fd5b84356001600160401b038082111561139657600080fd5b6113a2888389016110cc565b955060208701359150808211156113b857600080fd5b506113c587828801611000565b90945092505060408501356113d9816111ae565b939692955090935050565b81518152602080830151908201526040810161053b565b60006020828403121561140d57600080fd5b81356001600160401b0381111561142357600080fd5b61142f84828501611122565b949350505050565b8183823760009101908152919050565b80356001600160401b03811681146112cd57600080fd5b600060e0823603121561147057600080fd5b6114786110fa565b61148183611447565b815261148f602084016112b9565b60208201526114a060408401611315565b60408201526114b1606084016112b9565b60608201526080830135608082015260a083013560a082015260c08301356001600160401b038111156114e357600080fd5b6114ef36828601611122565b60c08301525092915050565b600181811c9082168061150f57607f821691505b6020821081036110de57634e487b7160e01b600052602260045260246000fd5b60006020828403121561154157600080fd5b8151610b6a81611300565b601f8211156109a2576000816000526020600020601f850160051c810160208610156115755750805b601f850160051c820191505b81811015610ca757828155600101611581565b81516001600160401b038111156115ad576115ad6110e4565b6115c1816115bb84546114fb565b8461154c565b602080601f8311600181146115f657600084156115de5750858301515b600019600386901b1c1916600185901b178555610ca7565b600085815260208120601f198616915b8281101561162557888601518255948401946001909101908401611606565b50858210156116435787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808585111561166357600080fd5b8386111561167057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116a55780818660040360031b1b83161692505b505092915050565b8035602083101561053b57600019602084900360031b1b1692915050565b6001600160c01b031981358181169160088510156116a55760089490940360031b84901b1690921692915050565b60ff60f81b8960f81b1681526001600160401b0360c01b8860c01b166001820152600063ffffffff60e01b808960e01b16600984015287600d840152808760e01b16602d840152508460318301528360518301528251611760816071850160208701611233565b919091016071019998505050505050505050565b6040815260006117876040830185611257565b82810360208401526117998185611257565b95945050505050565b6000602082840312156117b457600080fd5b8151610b6a816111ae565b600082516117d1818460208701611233565b919091019291505056fea2646970667358221220990cfb4d672f3a4b176b2a0dac3fbeff814b316fc90a05799662ae7184d6045a64736f6c63430008160033a264697066735822122022d697bcfe71cbd0a9e17d1281877bf347d564e9423dd7644ac9f78470aa31f164736f6c63430008160033","sourceMap":"2206:19797:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14631:163;;;;;;;;;;-1:-1:-1;14631:163:71;;;;;:::i;:::-;;:::i;:::-;;3044:34;;;;;;;;;18330:2608;;;;;;;;;;-1:-1:-1;18330:2608:71;;;;;:::i;:::-;;:::i;3660:7029::-;;;;;;;;;;-1:-1:-1;3660:7029:71;;;;;:::i;:::-;;:::i;2452:134:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:43:71;;;;;;;;;;-1:-1:-1;2909:43:71;;;;-1:-1:-1;;;;;2909:43:71;;;;;;-1:-1:-1;;;;;2867:47:145;;;2849:66;;2837:2;2822:18;2909:43:71;2703:218:145;11027:490:71;;;;;;;;;;-1:-1:-1;11027:490:71;;;;;:::i;:::-;;:::i;3360:151:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17855:469:71:-;;;;;;:::i;:::-;;:::i;3221:133:89:-;;;;;;;;;;;;;:::i;2922:141::-;;;;;;;;;;;;;:::i;3349:204:70:-;;;;;;;;;;-1:-1:-1;3349:204:70;;;;;:::i;:::-;;:::i;:::-;;;;8412:6:145;8400:19;;;8382:38;;-1:-1:-1;;;;;8509:15:145;;;8504:2;8489:18;;8482:43;8561:15;;8541:18;;;8534:43;8370:2;8355:18;3349:204:70;8182:401:145;14989:1687:71;;;;;;;;;;-1:-1:-1;14989:1687:71;;;;;:::i;:::-;;:::i;21259:228::-;;;;;;;;;;-1:-1:-1;21259:228:71;;;;;:::i;:::-;;:::i;:::-;;;9721:14:145;;9714:22;9696:41;;9684:2;9669:18;21259:228:71;9556:187:145;2738:178:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2722:249:70:-;;;;;;;;;;-1:-1:-1;2722:249:70;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;11786:514:71:-;;;;;;;;;;-1:-1:-1;11786:514:71;;;;;:::i;:::-;;:::i;21493:338::-;;;;;;;;;;-1:-1:-1;21493:338:71;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2592:140:89:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3069:146::-;;;;;;;;;;;;;:::i;20944:187:71:-;;;;;;;;;;-1:-1:-1;20944:187:71;;;;;:::i;:::-;;:::i;17277:376::-;;;;;;:::i;:::-;;:::i;21137:116::-;;;;;;;;;;-1:-1:-1;21137:116:71;;;;;:::i;:::-;;:::i;2845:57::-;;;;;;;;;;;;2896:6;2845:57;;;;;15881:25:145;;;15869:2;15854:18;2845:57:71;15735:177:145;2157:141:89;;;;;;;;;;;;;:::i;14307:136:71:-;;;;;;;;;;-1:-1:-1;14307:136:71;;;;;:::i;:::-;;:::i;3159:184:70:-;;;;;;;;;;-1:-1:-1;3159:184:70;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;16427:47:145;;;16409:66;;16506:2;16491:18;;16484:34;;;;16382:18;3159:184:70;16235:289:145;1819:584:83;;;;;;;;;;;;;:::i;2783:56:71:-;;;;;;;;;;;;2826:13;2783:56;;3331:100;;;;;;;;;;-1:-1:-1;3331:100:71;;;;;:::i;:::-;3396:16;:28;;-1:-1:-1;;;;;;3396:28:71;-1:-1:-1;;;;;3396:28:71;;;;;;;;;;3331:100;2304:142:89;;;;;;;;;;;;;:::i;16682:589:71:-;;;;;;:::i;:::-;;:::i;2977:176:70:-;;;;;;;;;;-1:-1:-1;2977:176:70;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;17810:15:145;;;17792:34;;17862:15;;;;17857:2;17842:18;;17835:43;17712:18;2977:176:70;17565:319:145;1572:26:83;;;;;;;;;;-1:-1:-1;1572:26:83;;;;;;;;13482:464:71;;;;;;;;;;-1:-1:-1;13482:464:71;;;;;:::i;:::-;;:::i;14631:163::-;14708:79;14722:7;-1:-1:-1;;;;;14739:29:71;;14731:38;;14708:13;:79::i;:::-;14631:163;;:::o;18330:2608::-;18402:13;18418:21;:12;;:19;:21::i;:::-;18482:17;;;18449:19;18482:17;;;:9;:17;;;;;;18402:37;;-1:-1:-1;;;;;;18482:17:71;;;;;18535:26;18562;:12;;:24;:26::i;:::-;18590:21;:12;;:19;:21::i;:::-;18535:77;;-1:-1:-1;;;;;;18535:77:71;;;;;;;-1:-1:-1;;;;;18801:32:145;;;18535:77:71;;;18783:51:145;18535:77:71;18870:23:145;18850:18;;;18843:51;18756:18;;18535:77:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18510:102;;;18622:20;18659:10;18622:48;;18682:12;18714:10;-1:-1:-1;;;;;18702:31:71;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18681:54;;;;18749:5;-1:-1:-1;;;;;18749:10:71;18758:1;18749:10;18745:2187;;18813:19;18835:6;-1:-1:-1;;;;;18835:16:71;;18852:21;:12;;:19;:21::i;:::-;18875:26;:12;;:24;:26::i;:::-;18835:70;;-1:-1:-1;;;;;;18835:70:71;;;;;;;;20447:15:145;;;;18835:70:71;;;20429:34:145;-1:-1:-1;;;;;20499:32:145;20479:18;;;20472:60;18903:1:71;20548:18:145;;;20541:43;20373:18;;18835:70:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18835:70:71;;;;;;;;;;;;:::i;:::-;18813:92;;18938:7;18963:6;18952:31;;;;;;;;;;;;:::i;:::-;:44;;;18997:1;18952:47;;;;;;;;:::i;:::-;;;;;;;18938:62;;19015:25;19043:21;:12;;:19;:21::i;:::-;19015:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19015:49:71;;-1:-1:-1;19110:22:71;;-1:-1:-1;19110:12:71;;-1:-1:-1;19110:12:71;;-1:-1:-1;19110:20:71;:22::i;:::-;19100:33;;;;;;;:::i;:::-;;;;;;;;19078:55;;19168:23;19205:27;19275:29;;;19322:12;19352:11;19381:3;19235:163;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;19235:163:71;;;;;;;;;;;;;;-1:-1:-1;;;;;19235:163:71;-1:-1:-1;;;;;;19235:163:71;;;;;;;;;;;-1:-1:-1;;;;;;;19445:16:71;;;19462:6;19478;19235:163;19503:22;:15;19521:4;19503:22;:::i;:::-;19445:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19585:58;;25210:66:145;19585:58:71;;;25198:79:145;25293:12;;;25286:28;;;19430:96:71;;-1:-1:-1;19544:28:71;;25330:12:145;;19585:58:71;;;;;;-1:-1:-1;;19585:58:71;;;;;;;19575:69;;19585:58;19575:69;;;;-1:-1:-1;;;19696:32:71;;19704:1;19696:32;;;25535:25:145;25576:18;;;25569:34;;;19575:69:71;-1:-1:-1;19663:7:71;;;;;;19696;;;;25508:18:145;;19696:32:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19781:25;;;;;;26169:19:145;;;;26204:12;;;26197:28;;;;26281:3;26259:16;;;;-1:-1:-1;;;;;;26255:36:145;26241:12;;;26234:58;19781:25:71;;;;;;;;;26308:12:145;;;;19781:25:71;;;;-1:-1:-1;;;;19884:1:71;;-1:-1:-1;19865:21:71;;-1:-1:-1;;;19865:21:71;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19865:21:71;;;;;;;;;;;;;;;;19834:52;;19912:89;;;;;;;;19925:6;19912:89;;;;;;19941:6;-1:-1:-1;;;;;19912:89:71;;;;;19950:14;19912:89;;;;19966:15;19984:4;19966:22;;;;:::i;:::-;19912:89;;;;19990:10;19912:89;;;19900:6;19907:1;19900:9;;;;;;;;:::i;:::-;;;;;;;;;;:101;20015:19;;-1:-1:-1;;;20015:19:71;;-1:-1:-1;;;;;20015:11:71;;;;;:19;;20027:6;;20015:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20084:21;20148:41;;;20207:12;20237:11;20108:154;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;20108:154:71;;;;;;;;;;;;;;-1:-1:-1;;;;;20108:154:71;-1:-1:-1;;;;;;20108:154:71;;;;;;;;;;;-1:-1:-1;;;;;;;20309:16:71;;;20326:6;20342;20108:154;20361:22;:15;20379:4;20361:22;:::i;:::-;20309:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20443:58;;25210:66:145;20443:58:71;;;25198:79:145;25293:12;;;25286:28;;;20294:90:71;;-1:-1:-1;20402:28:71;;25330:12:145;;20443:58:71;;;;;;-1:-1:-1;;20443:58:71;;;;;;;20433:69;;20443:58;20433:69;;;;-1:-1:-1;;;20554:32:71;;20562:1;20554:32;;;25535:25:145;25576:18;;;25569:34;;;20433:69:71;-1:-1:-1;20521:7:71;;;;;;20554;;;;25508:18:145;;20554:32:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20639:25;;;;;;26169:19:145;;;26204:12;;;26197:28;;;-1:-1:-1;;;;;;26281:3:145;26259:16;;;26255:36;26241:12;;;26234:58;20520:66:71;;-1:-1:-1;20520:66:71;;-1:-1:-1;20520:66:71;-1:-1:-1;26308:12:145;;20639:25:71;;;;;;;;;;;;20626:38;;20276:403;;;;;20704:83;;;;;;;;20717:6;20704:83;;;;;;20733:6;-1:-1:-1;;;;;20704:83:71;;;;;20742:8;20704:83;;;;20752:15;20770:4;20752:22;;;;:::i;:::-;20704:83;;;;20776:10;20704:83;;;20692:6;20699:1;20692:9;;;;;;;;:::i;:::-;;;;;;;;;;:95;20801:19;;-1:-1:-1;;;20801:19:71;;-1:-1:-1;;;;;20801:11:71;;;;;:19;;20813:6;;20801:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18761:2070;;;;;;;;18745:2187;;;20851:70;;-1:-1:-1;;;20851:70:71;;-1:-1:-1;;;;;20851:56:71;;;;;:70;;20908:12;;;;20851:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18745:2187;18392:2546;;;;;18330:2608;;:::o;3660:7029::-;3747:32;3799:12;3782:30;;-1:-1:-1;;;;;3782:30:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3782:30:71;;3747:65;;3822:23;3861:12;3848:26;;-1:-1:-1;;;;;3848:26:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3848:26:71;;3822:52;;3927:7;3922:227;3944:12;3940:16;;:1;:16;;;3922:227;;;3977:10;3990:5;:1;3994;3990:5;:::i;:::-;3977:18;;;;4022:3;4009:7;4017:1;4009:10;;;;;;;;;;:::i;:::-;;;;;;:16;;;;;;;;;;;4072:3;4085:4;4057:34;;;;;:::i;:::-;28687:10:145;28675:23;;;28657:42;;-1:-1:-1;;;;;28735:32:145;28730:2;28715:18;;28708:60;28645:2;28630:18;4057:34:71;;;;;;;;;;;;;;;;;;;;;;;4039:12;4052:1;4039:15;;;;;;;;;;:::i;:::-;;;;;;:52;-1:-1:-1;;;;;4039:52:71;;;-1:-1:-1;;;;;4039:52:71;;;;;4105:33;4122:12;4135:1;4122:15;;;;;;;;;;:::i;:::-;;;;;;;4105:16;:33::i;:::-;-1:-1:-1;3958:3:71;;3922:227;;;;4177:25;4219:12;4205:27;;-1:-1:-1;;;;;4205:27:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4205:27:71;;4177:55;;4242:28;4287:12;4273:27;;-1:-1:-1;;;;;4273:27:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4273:27:71;-1:-1:-1;4338:16:71;;;4352:1;4338:16;;;;;;;;;4242:58;;-1:-1:-1;4311:24:71;;4338:16;;;;;;;;;;;;-1:-1:-1;;4377:10:71;;-1:-1:-1;;;;;;4377:10:71;;4385:1;4377:10;;;15881:25:145;4311:43:71;;-1:-1:-1;4377:7:71;;;;15854:18:145;;4377:10:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4364:7;4372:1;4364:10;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;4364:23:71;;;-1:-1:-1;;;;;4364:23:71;;;;;4456:19;4500:4;4478:28;;;;;:::i;:::-;-1:-1:-1;;;;;29389:32:145;;;29371:51;;29359:2;29344:18;4478:28:71;;;;;;;;;;;;;;;;;;;;;;;4456:50;;4522:7;4517:5780;4539:12;4535:16;;:1;:16;;;4517:5780;;;4592:26;4576:12;:42;;;;;;;;:::i;:::-;;4572:5715;;4638:20;4669:12;4682:1;4669:15;;;;;;;;;;:::i;:::-;;;;;;;4638:47;;4704:18;4740:24;4837:4;4844:12;2826:13;2896:6;4814:87;;;;;:::i;:::-;-1:-1:-1;;;;;29868:15:145;;;29850:34;;29920:15;;;;29915:2;29900:18;;29893:43;29967:2;29952:18;;29945:34;30010:2;29995:18;;29988:34;29799:3;29784:19;4814:87:71;;;;;;;;;;;;;;;;;;;;;;;4804:97;;4954:12;4936:31;;;;;:::i;:::-;-1:-1:-1;;;;;29389:32:145;;;29371:51;;29359:2;29344:18;4936:31:71;;;;;;;;;;;;;;;;;;;;;;;4923:44;;4989:12;5002:1;4989:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;:49;;-1:-1:-1;;;4989:49:71;;-1:-1:-1;;;;;29389:32:145;;;4989:49:71;;;29371:51:145;4989:31:71;;;;;;29344:18:145;;4989:49:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5060:12;5073:1;5060:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;:52;;-1:-1:-1;;;5060:52:71;;-1:-1:-1;;;;;29389:32:145;;;5060:52:71;;;29371:51:145;5060:31:71;;;;;;29344:18:145;;5060:52:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5156:7;5134:8;5143:1;5134:11;;;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;5134:30:71;;;-1:-1:-1;;;;;5134:30:71;;;;;5211:10;5186:11;5198:1;5186:14;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5186:36:71;;;;:14;;;;;;;;;;:36;5367:16;;;5381:1;5367:16;;;;;;;;;5259:17;;;;;;5367:16;;;;;5186:14;5367:16;;;;;-1:-1:-1;5367:16:71;5341:42;;5425:4;5405:6;5412:1;5405:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5405:25:71;;;;:9;;;;;;;;;;:25;5484:16;;;5498:1;5484:16;;;;;;;;5453:28;;5484:16;;5498:1;;5484:16;;;;;;;;;-1:-1:-1;5484:16:71;5453:47;;5547:7;5522:11;5534:1;5522:14;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;5522:33:71;;;-1:-1:-1;;;;;5522:33:71;;;;;5602:10;5577:11;5589:1;5577:14;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;5577:36:71;;;-1:-1:-1;;;;;5577:36:71;;;;;5684:12;5730:3;5760:11;5805:9;5849:4;5880:6;5646:262;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5635:273;;5931:26;5960:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6002:46:71;;-1:-1:-1;;;6002:46:71;;-1:-1:-1;;;;;29389:32:145;;;6002:46:71;;;29371:51:145;5931:49:71;;-1:-1:-1;6002:24:71;;;;;;29344:18:145;;6002:46:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6085:1;6089;6085:5;;;;:::i;:::-;6092:11;6113:9;6125:7;6134:1;6137:6;6077:67;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;6071:73;;6166:16;6199:4;6185:19;;;;;:::i;:::-;15881:25:145;;;15869:2;15854:18;6185:19:71;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6226:36:71;;-1:-1:-1;;;6226:36:71;;-1:-1:-1;;;;;29389:32:145;;;6226:36:71;;;29371:51:145;6166:38:71;;-1:-1:-1;6226:19:71;;;;;;29344:18:145;;6226:36:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5319:962;;;;6299:18;6320:12;6299:33;;;;6350:49;6433:11;6402:43;;-1:-1:-1;;;;;6402:43:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6402:43:71;;-1:-1:-1;;6402:43:71;;;;;;;;;;;;6350:95;;6463:44;6536:11;6510:38;;-1:-1:-1;;;;;6510:38:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6510:38:71;;-1:-1:-1;;6510:38:71;;;;;;;;;;;;6463:85;;6571:7;6566:3168;6588:11;6584:15;;:1;:15;;;6566:3168;;;6637:1;6632:6;;:1;:6;;;6628:20;6640:8;6628:20;6670:13;6686:5;:1;6690;6686:5;:::i;:::-;6745:16;;;6759:1;6745:16;;;;;;;;;6670:21;;;;;;-1:-1:-1;6714:28:71;;6745:16;;;;;;;;;;;;-1:-1:-1;;6815:16:71;;;6783:29;6815:16;;;;;;;;;6714:47;;-1:-1:-1;6783:48:71;6878:3;6853:11;6865:1;6853:14;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6853:29:71;;;;:14;;;;;;;;;;;:29;6974:33;;;7005:1;6974:33;;;;;;;;;6931:40;;6974:33;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6931:76;;7033:26;7062:293;;;;;;;;7101:3;-1:-1:-1;;;;;7062:293:71;;;;;7140:11;:18;7062:293;;;;;;7195:12;:19;7062:293;;;;;;7245:1;7062:293;;;;;;7276:11;7062:293;;;;7317:12;7062:293;;;7033:322;;7393:43;;;;;;;;7418:6;7393:43;;;;;;7426:9;7393:43;;;7381:6;7388:1;7381:9;;;;;;;;:::i;:::-;;;;;;;;;;:55;7462:36;;-1:-1:-1;;;7462:36:71;;-1:-1:-1;;;;;7462:28:71;;;;;:36;;7491:6;;7462:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7569:45:71;;-1:-1:-1;7653:1:71;;-1:-1:-1;7617:38:71;;-1:-1:-1;;;7617:38:71;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7569:86;;7681:36;7720:40;;;;;;;;7735:5;7720:40;;;;;;7750:8;-1:-1:-1;;;;;7720:40:71;;;;7681:79;;7798:53;;;;;;;;7828:6;7798:53;;;;;;7836:14;7798:53;;;7786:6;7793:1;7786:9;;;;;;;;:::i;:::-;;;;;;;;;;:65;7877:41;;-1:-1:-1;;;7877:41:71;;-1:-1:-1;;;;;7877:33:71;;;;;:41;;7911:6;;7877:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7989:40:71;;-1:-1:-1;8063:1:71;;-1:-1:-1;8032:33:71;;-1:-1:-1;;;8032:33:71;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7989:76;;8091:26;8120:293;;;;;;;;8159:3;-1:-1:-1;;;;;8120:293:71;;;;;8198:11;:18;8120:293;;;;;;8253:12;:19;8120:293;;;;;;8303:1;8120:293;;;;;;8334:11;8120:293;;;;8375:12;8120:293;;;8091:322;;8451:43;;;;;;;;8476:6;8451:43;;;;;;8484:9;8451:43;;;8439:6;8446:1;8439:9;;;;;;;;:::i;:::-;;;;;;;;;;:55;8520:39;;-1:-1:-1;;;8520:39:71;;-1:-1:-1;;;;;8520:31:71;;;;;:39;;8552:6;;8520:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8664:329:71;;;;;;;;;;;;;8773:4;8664:329;;;;;;;;;;;;;8866:5;8664:329;;;;8913:4;8664:329;;;;8954:16;;-1:-1:-1;;;;;8954:16:71;8664:329;;;;8643:18;;8664:329;;-1:-1:-1;8643:15:71;;-1:-1:-1;8643:18:71;;;;-1:-1:-1;8643:18:71;;;-1:-1:-1;8643:18:71;;;;:::i;:::-;;;;;;:350;;;;9071:210;;;;;;;;9125:6;9071:210;;;;;;9162:4;-1:-1:-1;;;;;9071:210:71;;;;;9207:5;9071:210;;;;;;9254:4;-1:-1:-1;;;;;9071:210:71;;;;9050:15;9066:1;9050:18;;;;;;;;;;:::i;:::-;;;;;;:231;;;;9304:19;9326:9;-1:-1:-1;;;;;9326:34:71;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9434:40;;;9472:1;9434:40;;;;;;;;;9304:58;;-1:-1:-1;9384:47:71;;9434:40;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9434:40:71;;;;;;;;;;;;;;;;9384:90;;9508:159;;;;;;;;9565:6;9508:159;;;;;;9597:48;;;;;;;;9627:11;9623:1;:15;;;;:::i;:::-;-1:-1:-1;;;;;9597:48:71;;;9640:1;9597:48;;;;;;;;;;;9508:159;;9496:9;;:6;;-1:-1:-1;;9496:9:71;;;;:::i;:::-;;;;;;:171;;;;9689:9;-1:-1:-1;;;;;9689:18:71;;9708:6;9689:26;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6606:3128;;;;;6566:3168;6601:3;;;;:::i;:::-;;;;6566:3168;;;-1:-1:-1;9751:38:71;;-1:-1:-1;;;9751:38:71;;-1:-1:-1;;;;;9751:21:71;;;;;:38;;9773:15;;9751:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9807:33:71;;-1:-1:-1;;;9807:33:71;;-1:-1:-1;;;;;9807:16:71;;;-1:-1:-1;9807:16:71;;-1:-1:-1;9807:33:71;;9824:15;;9807:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4620:5235;;;;;;;;4572:5715;;;9881:28;9865:12;:44;;;;;;;;:::i;:::-;;9861:426;;9929:31;9996:4;10011:12;10024:1;10011:15;;;;;;;;;;:::i;:::-;;;;;;;9963:65;;;;;:::i;:::-;-1:-1:-1;;;;;40040:15:145;;;40022:34;;40092:15;;40087:2;40072:18;;40065:43;39972:2;39957:18;9963:65:71;;;;;;;;;;;;;;;;;;;;;;;9929:99;;10046:12;10059:1;10046:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;:52;;-1:-1:-1;;;10046:52:71;;-1:-1:-1;;;;;29389:32:145;;;10046:52:71;;;29371:51:145;10046:31:71;;;;;;29344:18:145;;10046:52:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10138:10;10116:8;10125:1;10116:11;;;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;10116:33:71;;;-1:-1:-1;;;;;10116:33:71;;;;;10192:10;10167:11;10179:1;10167:14;;;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;10167:36:71;;;-1:-1:-1;;;;;10167:36:71;;;;;9911:307;9861:426;;;10242:30;;-1:-1:-1;;;10242:30:71;;40321:2:145;10242:30:71;;;40303:21:145;40360:2;40340:18;;;40333:30;-1:-1:-1;;;40379:18:145;;;40372:50;40439:18;;10242:30:71;;;;;;;;9861:426;4553:3;;4517:5780;;;;10333:7;10328:355;10350:12;10346:16;;:1;:16;;;10328:355;;;10383:19;10405:12;10418:1;10405:15;;;;;;;;;;:::i;:::-;;;;;;;10383:37;;10439:7;10434:239;10456:12;10452:16;;:1;:16;;;10434:239;;;10502:1;10497:6;;:1;:6;;;10493:20;10505:8;10493:20;-1:-1:-1;;;;;10531:30:71;;;10562:5;:1;10566;10562:5;:::i;:::-;10569:8;10578:1;10569:11;;;;;;;;;;:::i;:::-;;;;;;;10531:50;;;;;;;;;;;;;;;40669:4:145;40657:17;;;;40639:36;;-1:-1:-1;;;;;40711:32:145;40706:2;40691:18;;40684:60;40627:2;40612:18;;40468:282;10531:50:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10599:8;-1:-1:-1;;;;;10599:33:71;;10633:1;10637;10633:5;;;;:::i;:::-;10640:11;10652:1;10640:14;;;;;;;;;;:::i;:::-;;;;;;;;;;;10599:59;;-1:-1:-1;;;;;;10599:59:71;;;;;;;40992:4:145;40980:17;;;10599:59:71;;;40962:36:145;-1:-1:-1;;;;;41034:32:145;41014:18;;;41007:60;10656:1:71;41083:18:145;;;41076:34;40935:18;;10599:59:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10434:239;10470:3;;10434:239;;;-1:-1:-1;;10364:3:71;;10328:355;;;;3737:6952;;;;;;3660:7029;;:::o;2452:134:89:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:89;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;11027:490:71:-;11158:22;11214:8;11200:23;;-1:-1:-1;;;;;11200:23:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11200:23:71;-1:-1:-1;11192:31:71;-1:-1:-1;11250:9:71;11233:234;11267:20;11279:8;11267:9;:20;:::i;:::-;11261:26;;:3;:26;;;11233:234;;;11375:14;;;11310:12;11375:14;;;:9;:14;;;;;;;;11356:56;;-1:-1:-1;;;;;11375:14:71;;;11356:56;;;41355:34:145;;;;11400:4:71;41405:18:145;;;41398:43;11375:14:71;41457:18:145;;;41450:50;11325:88:71;;11337:17;;41290:18:145;;11356:56:71;;;;;;;;;;;;11325:11;:88::i;:::-;11310:103;-1:-1:-1;11310:103:71;11427:5;11433:15;11439:9;11433:3;:15;:::i;:::-;11427:22;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11427:29:71;;;:22;;;;;;;;;;;:29;-1:-1:-1;11289:5:71;;11233:234;;;;11494:16;11504:5;11494:9;:16::i;:::-;11027:490;;;;;:::o;3360:151:89:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;17855:469:71:-;18099:18;;;18066:19;18099:18;;;:9;:18;;;;;;-1:-1:-1;;;;;18099:18:71;;18066:19;;18173:39;18203:8;18173:29;:39::i;:::-;18128:84;;;;;;18222:8;-1:-1:-1;;;;;18222:18:71;;18249:5;18261:3;18222:95;18267:5;18274:3;18279:5;18286;18293:12;;18307:9;;;;;;;;;;;;18222:95;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18056:268;;;;17855:469;;;;;;;:::o;3221:133:89:-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:89;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:89;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;3349:204:70:-;3441:12;3455:11;3468:13;3500:46;3538:7;;3500:37;:46::i;:::-;3493:53;;;;;;3349:204;;;;;:::o;14989:1687:71:-;15116:18;;;15146:1;15116:18;;;:9;:18;;;;;;-1:-1:-1;;;;;15116:18:71;15108:72;;;;-1:-1:-1;;;15108:72:71;;43019:2:145;15108:72:71;;;43001:21:145;43058:2;43038:18;;;43031:30;43097:29;43077:18;;;43070:57;43144:18;;15108:72:71;42817:351:145;15108:72:71;15237:21;;;15191:43;15237:21;;;:12;:21;;;;;;;;:34;;;;;;;;;15310:14;15237:34;15310:12;:14::i;:::-;15281:43;;15334:23;15371:13;15388:1;15371:18;15367:201;;15423:14;:5;:12;:14::i;:::-;15405:32;;15367:201;;;15507:13;15486:18;:34;:71;;15539:18;15486:71;;;15523:13;15486:71;15468:89;;15367:201;15584:19;;15577:1093;;15619:17;;;;:::i;:::-;;;;15684:12;15699:15;:5;:13;:15::i;:::-;15728:24;15755:13;;;:7;:13;;;;;15728:40;;15684:30;;-1:-1:-1;15728:24:71;;:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15782:34:71;;-1:-1:-1;;;15782:34:71;;15728:40;;-1:-1:-1;15782:4:71;;:15;;-1:-1:-1;15782:34:71;;-1:-1:-1;15728:40:71;;-1:-1:-1;15811:4:71;;15782:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15830:32:71;;-1:-1:-1;;;15830:32:71;;:4;;-1:-1:-1;15830:19:71;;-1:-1:-1;15830:32:71;;15850:11;;15830:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15877:20:71;15900:19;;;:13;:19;;;;;15877:42;;:20;;-1:-1:-1;15900:19:71;15877:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15937:71;15959:7;351:1:67;15937:21:71;:71::i;:::-;15933:369;;;16029:14;16045:16;16065:39;16096:7;16065:30;:39::i;:::-;16204:28;;16028:76;;-1:-1:-1;16028:76:71;-1:-1:-1;16028:76:71;;16122:10;;-1:-1:-1;;;;;16204:7:71;;;16028:76;;16122:10;16204:28;16122:10;16204:28;16028:76;16204:7;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16188:44;;;16258:4;16250:37;;;;-1:-1:-1;;;16250:37:71;;43726:2:145;16250:37:71;;;43708:21:145;43765:2;43745:18;;;43738:30;-1:-1:-1;;;43784:18:145;;;43777:50;43844:18;;16250:37:71;43524:344:145;16250:37:71;16010:292;;;;15933:369;16319:69;16341:7;294:1:67;16319:21:71;:69::i;:::-;16315:144;;;16408:36;;-1:-1:-1;;;16408:36:71;;:4;;:14;;:36;;16423:11;;16436:7;;16408:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16315:144;-1:-1:-1;;;;;16476:23:71;;;;;;:96;;;16503:69;16525:7;406:1:67;16503:21:71;:69::i;:::-;16472:188;;;16592:53;;-1:-1:-1;;;16592:53:71;;:4;;:14;;:53;;16607:11;;16620:7;;16629:4;;16635:9;;16592:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16472:188;15605:1065;;;15577:1093;;21259:228;21411:21;;;21344:9;21411:21;;;:12;:21;;;;;;;;:34;;;;;;;;21344:9;21462:14;21411:34;21462:12;:14::i;:::-;:18;21455:25;;;21259:228;;;;;:::o;2738:178:89:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2722:249:70;2837:16;2855:21;;2878:14;2911:53;2946:8;;2956:7;2911:34;:53::i;:::-;2904:60;;;;;;;;2722:249;;;;;;;:::o;11786:514:71:-;11861:12;;11846;11883:411;11907:4;11903:1;:8;11883:411;;;11932:14;11962:5;11968:1;11962:8;;;;;;;;:::i;:::-;;;;;;;11932:40;;11991:9;11986:298;12010:4;12006:1;:8;11986:298;;;12039:20;;;12051:8;12039:20;12077:15;12108:5;12114:1;12108:8;;;;;;;;:::i;:::-;;;;;;;12077:41;;12136:16;12156:10;-1:-1:-1;;;;;12156:19:71;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12155:27:71;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12136:48;;12202:9;-1:-1:-1;;;;;12202:17:71;;12220:9;12231:37;12256:10;-1:-1:-1;;;;;21935:23:71;;21837:129;12231:37;12202:67;;-1:-1:-1;;;;;;12202:67:71;;;;;;;;45541:23:145;;;;12202:67:71;;;45523:42:145;45581:18;;;45574:34;45496:18;;12202:67:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12021:263;;11986:298;12016:3;;11986:298;;;-1:-1:-1;;11913:3:71;;11883:411;;;;11836:464;11786:514;:::o;21493:338::-;21664:21;;;21618:43;21664:21;;;:12;:21;;;;;;;;:34;;;;;;;;21582:24;;21712:14;21664:34;21712:12;:14::i;:::-;:18;21708:117;;;21746:12;21761;:5;:10;:12::i;:::-;21801:13;;;;:7;:13;;;;;21787:27;;21746;;-1:-1:-1;21801:13:71;21787:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21732:93;21708:117;21608:223;21493:338;;;;:::o;2592:140:89:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:146;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20944:187:71;21030:18;21051;:11;;:16;:18::i;:::-;21030:39;;21101:4;21087:10;:18;21079:45;;;;-1:-1:-1;;;21079:45:71;;45821:2:145;21079:45:71;;;45803:21:145;45860:2;45840:18;;;45833:30;-1:-1:-1;;;45879:18:145;;;45872:44;45933:18;;21079:45:71;45619:338:145;21079:45:71;21020:111;20944:187;;;:::o;17277:376::-;17447:4;:14;17475:21;:12;;:19;:21::i;:::-;17510:26;:12;;:24;:26::i;:::-;17550:8;17572:5;17591:9;17614:22;:12;;:20;:22::i;:::-;17447:199;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21137:116;21237:8;21201:9;:25;21211:8;-1:-1:-1;;;;;21211:12:71;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21201:25;;;;;;;;;;;;;-1:-1:-1;21201:25:71;:45;;-1:-1:-1;;;;;;21201:45:71;-1:-1:-1;;;;;21201:45:71;;;;;;;;;;-1:-1:-1;21137:116:71:o;2157:141:89:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14307:136:71;14384:52;14398:7;14407:11;14420:1;14431:3;14384:13;:52::i;3159:184:70:-;3238:14;3254:16;3289:47;3328:7;;3289:38;:47::i;:::-;3282:54;;;;3159:184;;;;;;:::o;1819:584:83:-;1873:7;;1853:4;;1873:7;;;;;1869:528;;;-1:-1:-1;1903:7:83;;;;;;;;1819:584::o;1869:528::-;1941:17;2997:42;2985:55;3066:16;1980:374;;2196:43;;;1671:64;2196:43;;;46905:51:145;;;-1:-1:-1;;;46972:18:145;;;46965:34;2196:43:83;;;;;;;;;46878:18:145;;;2196:43:83;;;-1:-1:-1;;1671:64:83;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:83;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:83:o;2304:142:89:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:89;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;16682:589:71:-;16780:19;16813:9;:32;16823:21;:12;;:19;:21::i;:::-;16813:32;;;;;;;;;;;;;-1:-1:-1;16813:32:71;;;;-1:-1:-1;;;;;16813:32:71;;-1:-1:-1;;16887:53:71;16931:8;16887:43;:53::i;:::-;16856:84;;;;16951:20;16974:74;;;;;;;;16981:21;:12;;:19;:21::i;:::-;16974:74;;;;;;17004:21;:12;;:19;:21::i;:::-;16974:74;;;;17027:20;:12;;:18;:20::i;:::-;-1:-1:-1;;;;;16974:74:71;;;16951:97;-1:-1:-1;;;;;;17058:18:71;;;17097:3;17085:5;16951:97;17136:26;:12;;:24;:26::i;:::-;17176:19;:12;;:17;:19::i;:::-;17209:22;:12;;:20;:22::i;:::-;17245:9;;;;;;;;;;;;17058:206;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16770:501;;;;16682:589;;;:::o;2977:176:70:-;3055:11;3068:13;3100:46;3138:7;;3100:37;:46::i;13482:464:71:-;13577:13;13593:21;:12;;:19;:21::i;:::-;13577:37;;13624:18;13645:23;:12;;:21;:23::i;:::-;13724:20;;;13678:43;13724:20;;;:12;:20;;;;;;;;:32;;;;;;;;13624:44;;-1:-1:-1;13811:19:71;:12;;:17;:19::i;:::-;13796:34;-1:-1:-1;13840:21:71;:5;13796:34;13840:15;:21::i;:::-;13871:13;;;;:7;:13;;;;;:28;13887:12;;13871:13;:28;:::i;:::-;-1:-1:-1;13909:19:71;;;;:13;:19;;;;;:30;13931:8;;13909:19;:30;:::i;2671:150:68:-;2734:6;2773:39;706:2;655;2773:7;;:39;:::i;:::-;2766:47;;;:::i;:::-;2759:55;;;2671:150;-1:-1:-1;;;2671:150:68:o;2976:130::-;3044:7;3070:29;:17;3079:7;;3070:8;:17::i;:::-;1210:15:60;1084:151;2230:148:68;2293:6;2332:37;605:2;557:1;2332:7;;:37;:::i;1788:125::-;1851:14;;1884:22;785:2;1851:14;1884:7;;:22;:::i;3397:132::-;3461:14;;3500:21;:7;785:2;3500:7;;:21;:::i;12737:399:71:-;12835:12;12859:21;12913:13;12896:31;;;;;;;;:::i;:::-;;;;-1:-1:-1;;12896:31:71;;;;;;;;;;12883:63;;12929:16;;12896:31;12883:63;;:::i;:::-;;;;;;;;;;;;;12859:87;;13024:8;13018:15;13011:4;13001:8;12997:19;12994:1;12987:47;12979:55;;13069:4;13057:17;13047:73;;13104:1;13101;13094:12;1471:427:70;1570:12;1584:11;1597:13;1623:10;1635:19;1658:113;1702:8;406:1:67;1658:30:70;:113::i;:::-;1622:149;;;;1789:5;1781:59;;;;-1:-1:-1;;;1781:59:70;;52188:2:145;1781:59:70;;;52170:21:145;52227:2;52207:18;;;52200:30;52266:34;52246:18;;;52239:62;-1:-1:-1;;;52317:18:145;;;52310:39;52366:19;;1781:59:70;51986:405:145;1781:59:70;1857:34;;-1:-1:-1;;;1857:34:70;;:4;;:26;;:34;;1884:6;;1857:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1850:41;;-1:-1:-1;;;;;1850:41:70;;;;-1:-1:-1;1850:41:70;;;-1:-1:-1;1471:427:70;-1:-1:-1;;;;1471:427:70:o;2591:371:67:-;2683:12;;;2757:2;2739:20;;;;;:44;;-1:-1:-1;2781:2:67;2763:20;;;2739:44;2735:90;;;2792:33;;-1:-1:-1;;;2792:33:67;;;;;;;;;;;2735:90;2843:16;:7;;2857:1;2843:13;:16::i;:::-;2835:24;-1:-1:-1;2875:17:67;:7;;2890:1;2875:14;:17::i;:::-;2869:23;-1:-1:-1;2928:2:67;2910:20;;:45;;2954:1;2910:45;;;2933:18;:7;;2948:2;2933:14;:18::i;:::-;2902:53;;2591:371;;;;;:::o;5491:168:131:-;5629:12;-1:-1:-1;;;;;5629:12:131;;;-1:-1:-1;;;5616:10:131;;;;;:25;;;;5608:34;;5491:168::o;2441:371::-;2573:10;;2504:13;;-1:-1:-1;;;;;;;;2573:10:131;;;;;2614:12;2601:25;;2597:50;;2635:12;;-1:-1:-1;;;2635:12:131;;;;;;;;;;;2597:50;-1:-1:-1;;2661:11:131;-1:-1:-1;;;;;2694:22:131;;;;;;;2661:11;2694;;:22;;;;;;;2730:29;;;2773:22;;;;;-1:-1:-1;;;2773:22:131;;;;;;;-1:-1:-1;2694:22:131;2441:371::o;1904:228:70:-;2030:10;2064:61;2095:8;2105:19;2064:30;:61::i;:::-;-1:-1:-1;2052:73:70;1904:228;-1:-1:-1;;;1904:228:70:o;1027:438::-;1127:14;1143:16;1172:10;1184:19;1207:115;1251:8;351:1:67;1207:30:70;:115::i;:::-;1171:151;;;;1340:5;1332:60;;;;-1:-1:-1;;;1332:60:70;;53120:2:145;1332:60:70;;;53102:21:145;53159:2;53139:18;;;53132:30;53198:34;53178:18;;;53171:62;-1:-1:-1;;;53249:18:145;;;53242:40;53299:19;;1332:60:70;52918:406:145;1332:60:70;1423:35;;-1:-1:-1;;;1423:35:70;;:4;;:27;;:35;;1451:6;;1423:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1402:56:70;;;;;;-1:-1:-1;1027:438:70;-1:-1:-1;;;;1027:438:70:o;1251:742:67:-;1366:16;1384:21;1366:16;1506:1;1496:11;;1366:16;1568:22;:8;;1496:11;1568:14;:22::i;:::-;1614:1;1604:11;;;;;1554:36;-1:-1:-1;1675:21:67;:8;;1604:11;1675:13;:21::i;:::-;1662:34;-1:-1:-1;1826:1:67;1817:10;;1881:13;;;;;1917:31;1881:13;1817:10;1917:8;;:31;:::i;:::-;1251:742;;1908:40;;-1:-1:-1;1908:40:67;;-1:-1:-1;;;1962:14:67;;;;-1:-1:-1;;;1251:742:67:o;4238:212:131:-;4303:13;4332:12;4338:5;5832:12;-1:-1:-1;;;5818:10:131;;-1:-1:-1;;;;;5818:10:131;;;5832:12;;5818:26;;5729:122;4332:12;4328:37;;;4353:12;;-1:-1:-1;;;4353:12:131;;;;;;;;;;;4328:37;-1:-1:-1;4418:10:131;;-1:-1:-1;;;;;;;;;;4418:10:131;;;;;:14;4406:27;;;;;:11;;;;:27;;;;;;;4238:212::o;3112:138:68:-;3173:7;3207:35;862:3;785:2;3207:7;;:35;:::i;:::-;3199:44;;;:::i;3256:135::-;3320:14;;3359:24;:7;862:3;3359:7;;:24;:::i;2314:271:67:-;2393:14;;2459:2;2441:20;;2437:67;;2470:34;;-1:-1:-1;;;2470:34:67;;;;;;;;;;;2437:67;2523:17;:7;;2538:1;2523:14;:17::i;:::-;2514:26;-1:-1:-1;2561:17:67;:7;;2575:2;2561:13;:17::i;:::-;2550:28;;2314:271;;;;;:::o;614:407:70:-;699:11;712:13;738:10;750:19;773:113;817:8;294:1:67;773:30:70;:113::i;:::-;737:149;;;;904:5;896:59;;;;-1:-1:-1;;;896:59:70;;54108:2:145;896:59:70;;;54090:21:145;54147:2;54127:18;;;54120:30;54186:34;54166:18;;;54159:62;-1:-1:-1;;;54237:18:145;;;54230:39;54286:19;;896:59:70;53906:405:145;896:59:70;980:34;;-1:-1:-1;;;980:34:70;;:4;;:26;;:34;;1007:6;;980:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;965:49:70;;;;;;;-1:-1:-1;614:407:70;-1:-1:-1;;;;614:407:70:o;2384:142:68:-;2447:7;2481:37;655:2;605;2481:7;;:37;:::i;2078:146::-;2140:6;2179:36;557:1;493;2179:7;;:36;:::i;:::-;2172:44;;;:::i;:::-;2165:52;;;2078:146;-1:-1:-1;;;2078:146:68:o;1999:309:67:-;2077:11;;2137:2;2119:20;;;;;:44;;-1:-1:-1;2161:2:67;2143:20;;;2119:44;2115:90;;;2172:33;;-1:-1:-1;;;2172:33:67;;;;;;;;;;;2115:90;2221:17;:7;;2236:1;2221:14;:17::i;:::-;2215:23;-1:-1:-1;2274:2:67;2256:20;;:45;;2300:1;2256:45;;;2279:18;:7;;2294:2;2279:14;:18::i;2827:143:68:-;2892:7;2926:36;785:2;706;2926:7;;:36;:::i;2954:305:131:-;3080:12;;-1:-1:-1;;;;;3080:12:131;;;-1:-1:-1;;3080:16:131;;-1:-1:-1;;;3128:10:131;;;;3114:24;;;;3110:48;;3147:11;;-1:-1:-1;;;3147:11:131;;;;;;;;;;;3110:48;-1:-1:-1;;;;;3172:23:131;;;;;:11;;;:23;;;;;:31;;;;3217:25;;-1:-1:-1;;;;;;3217:25:131;;;;2954:305::o;2138:578:70:-;2348:10;;:27;;-1:-1:-1;;;2348:27:70;;2273:10;;2285:19;;2273:10;;-1:-1:-1;;;;;2348:10:70;;:17;;:27;;2366:8;;2348:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2348:27:70;;;;;;;;;;;;:::i;:::-;2316:59;;;2386:14;2410:300;2426:12;:19;2417:6;:28;2410:300;;;2519:45;;-1:-1:-1;;;2519:45:70;;2462:16;;;;;;2519:4;;:23;;:45;;2543:12;;2557:6;;2519:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2519:45:70;;;;;;;;;;;;:::i;:::-;2461:103;;;;;;2596:19;2582:33;;:10;:33;;;2578:89;;-1:-1:-1;2643:4:70;;-1:-1:-1;2649:2:70;-1:-1:-1;2635:17:70;;-1:-1:-1;;;2635:17:70;2578:89;2689:10;-1:-1:-1;2410:300:70;;-1:-1:-1;;2410:300:70;;2306:410;;2138:578;;;;;:::o;229:215:61:-;306:6;371:1;362:10;;407:18;362:10;:6;407;;:18;:::i;:::-;400:26;;;:::i;:::-;393:34;;;229:215;-1:-1:-1;;;;;229:215:61:o;892:220::-;970:7;1036:2;1027:11;;1075:18;1027:11;:6;1075;;:18;:::i;:::-;1067:27;;;:::i;:::-;1059:36;;;892:220;-1:-1:-1;;;;;892:220:61:o;95:128::-;171:5;201:6;;208;201:14;;;;;;;:::i;:::-;;;;;;;;;95:128;-1:-1:-1;;;;;95:128:61:o;1570:210::-;1647:7;1713:2;1704:11;;1744:18;1704:11;:6;1744;;:18;:::i;:::-;1736:27;;;:::i;:::-;1729:34;1570:210;-1:-1:-1;;;;;1570:210:61:o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:121:145:-;99:10;92:5;88:22;81:5;78:33;68:61;;125:1;122;115:12;68:61;14:121;:::o;140:131::-;-1:-1:-1;;;;;215:31:145;;205:42;;195:70;;261:1;258;251:12;276:386;343:6;351;404:2;392:9;383:7;379:23;375:32;372:52;;;420:1;417;410:12;372:52;459:9;446:23;478:30;502:5;478:30;:::i;:::-;527:5;-1:-1:-1;584:2:145;569:18;;556:32;597:33;556:32;597:33;:::i;:::-;649:7;639:17;;;276:386;;;;;:::o;667:347::-;718:8;728:6;782:3;775:4;767:6;763:17;759:27;749:55;;800:1;797;790:12;749:55;-1:-1:-1;823:20:145;;-1:-1:-1;;;;;855:30:145;;852:50;;;898:1;895;888:12;852:50;935:4;927:6;923:17;911:29;;987:3;980:4;971:6;963;959:19;955:30;952:39;949:59;;;1004:1;1001;994:12;1019:409;1089:6;1097;1150:2;1138:9;1129:7;1125:23;1121:32;1118:52;;;1166:1;1163;1156:12;1118:52;1206:9;1193:23;-1:-1:-1;;;;;1231:6:145;1228:30;1225:50;;;1271:1;1268;1261:12;1225:50;1310:58;1360:7;1351:6;1340:9;1336:22;1310:58;:::i;:::-;1387:8;;1284:84;;-1:-1:-1;1019:409:145;-1:-1:-1;;;;1019:409:145:o;1433:114::-;1517:4;1510:5;1506:16;1499:5;1496:27;1486:55;;1537:1;1534;1527:12;1552:410;1635:6;1643;1696:2;1684:9;1675:7;1671:23;1667:32;1664:52;;;1712:1;1709;1702:12;1664:52;1751:9;1738:23;1770:29;1793:5;1770:29;:::i;:::-;1818:5;-1:-1:-1;1875:2:145;1860:18;;1847:32;1910:1;1898:14;;1888:42;;1926:1;1923;1916:12;1967:465;2020:3;2058:5;2052:12;2085:6;2080:3;2073:19;2111:4;2140;2135:3;2131:14;2124:21;;2179:4;2172:5;2168:16;2202:1;2212:195;2226:6;2223:1;2220:13;2212:195;;;2291:13;;-1:-1:-1;;;;;2287:39:145;2275:52;;2347:12;;;;2382:15;;;;2323:1;2241:9;2212:195;;;-1:-1:-1;2423:3:145;;1967:465;-1:-1:-1;;;;;1967:465:145:o;2437:261::-;2616:2;2605:9;2598:21;2579:4;2636:56;2688:2;2677:9;2673:18;2665:6;2636:56;:::i;2926:127::-;2987:10;2982:3;2978:20;2975:1;2968:31;3018:4;3015:1;3008:15;3042:4;3039:1;3032:15;3058:253;3130:2;3124:9;3172:4;3160:17;;-1:-1:-1;;;;;3192:34:145;;3228:22;;;3189:62;3186:88;;;3254:18;;:::i;:::-;3290:2;3283:22;3058:253;:::o;3316:275::-;3387:2;3381:9;3452:2;3433:13;;-1:-1:-1;;3429:27:145;3417:40;;-1:-1:-1;;;;;3472:34:145;;3508:22;;;3469:62;3466:88;;;3534:18;;:::i;:::-;3570:2;3563:22;3316:275;;-1:-1:-1;3316:275:145:o;3596:186::-;3644:4;-1:-1:-1;;;;;3669:6:145;3666:30;3663:56;;;3699:18;;:::i;:::-;-1:-1:-1;3765:2:145;3744:15;-1:-1:-1;;3740:29:145;3771:4;3736:40;;3596:186::o;3787:462::-;3829:5;3882:3;3875:4;3867:6;3863:17;3859:27;3849:55;;3900:1;3897;3890:12;3849:55;3936:6;3923:20;3967:48;3983:31;4011:2;3983:31;:::i;:::-;3967:48;:::i;:::-;4040:2;4031:7;4024:19;4086:3;4079:4;4074:2;4066:6;4062:15;4058:26;4055:35;4052:55;;;4103:1;4100;4093:12;4052:55;4168:2;4161:4;4153:6;4149:17;4142:4;4133:7;4129:18;4116:55;4216:1;4191:16;;;4209:4;4187:27;4180:38;;;;4195:7;3787:462;-1:-1:-1;;;3787:462:145:o;4254:588::-;4336:6;4344;4352;4405:2;4393:9;4384:7;4380:23;4376:32;4373:52;;;4421:1;4418;4411:12;4373:52;4461:9;4448:23;-1:-1:-1;;;;;4486:6:145;4483:30;4480:50;;;4526:1;4523;4516:12;4480:50;4549:49;4590:7;4581:6;4570:9;4566:22;4549:49;:::i;:::-;4539:59;;;4648:2;4637:9;4633:18;4620:32;4661:29;4684:5;4661:29;:::i;:::-;4709:5;-1:-1:-1;4766:2:145;4751:18;;4738:32;4779:31;4738:32;4779:31;:::i;:::-;4829:7;4819:17;;;4254:588;;;;;:::o;4847:250::-;4932:1;4942:113;4956:6;4953:1;4950:13;4942:113;;;5032:11;;;5026:18;5013:11;;;5006:39;4978:2;4971:10;4942:113;;;-1:-1:-1;;5089:1:145;5071:16;;5064:27;4847:250::o;5102:271::-;5144:3;5182:5;5176:12;5209:6;5204:3;5197:19;5225:76;5294:6;5287:4;5282:3;5278:14;5271:4;5264:5;5260:16;5225:76;:::i;:::-;5355:2;5334:15;-1:-1:-1;;5330:29:145;5321:39;;;;5362:4;5317:50;;5102:271;-1:-1:-1;;5102:271:145:o;5378:598::-;5430:3;5461;5493:5;5487:12;5520:6;5515:3;5508:19;5546:4;5575;5570:3;5566:14;5559:21;;5633:4;5623:6;5620:1;5616:14;5609:5;5605:26;5601:37;5672:4;5665:5;5661:16;5695:1;5705:245;5719:6;5716:1;5713:13;5705:245;;;5806:2;5802:7;5794:5;5788:4;5784:16;5780:30;5775:3;5768:43;5832:38;5865:4;5856:6;5850:13;5832:38;:::i;:::-;5928:12;;;;5824:46;-1:-1:-1;5893:15:145;;;;5741:1;5734:9;5705:245;;;-1:-1:-1;5966:4:145;;5378:598;-1:-1:-1;;;;;;;5378:598:145:o;5981:1077::-;6187:4;6216:2;6256;6245:9;6241:18;6286:2;6275:9;6268:21;6309:6;6344;6338:13;6375:6;6367;6360:22;6401:2;6391:12;;6434:2;6423:9;6419:18;6412:25;;6496:2;6486:6;6483:1;6479:14;6468:9;6464:30;6460:39;6534:2;6526:6;6522:15;6555:1;6565:464;6579:6;6576:1;6573:13;6565:464;;;6644:22;;;-1:-1:-1;;6640:36:145;6628:49;;6700:13;;6745:9;;-1:-1:-1;;;;;6741:35:145;6726:51;;6816:11;;6810:18;6848:15;;;6841:27;;;6891:58;6933:15;;;6810:18;6891:58;:::i;:::-;7007:12;;;;6881:68;-1:-1:-1;;6972:15:145;;;;6601:1;6594:9;6565:464;;;-1:-1:-1;7046:6:145;;5981:1077;-1:-1:-1;;;;;;;;5981:1077:145:o;7063:1114::-;7186:6;7194;7202;7210;7218;7226;7234;7287:3;7275:9;7266:7;7262:23;7258:33;7255:53;;;7304:1;7301;7294:12;7255:53;7343:9;7330:23;7362:30;7386:5;7362:30;:::i;:::-;7411:5;-1:-1:-1;7468:2:145;7453:18;;7440:32;7481:33;7440:32;7481:33;:::i;:::-;7533:7;-1:-1:-1;7591:2:145;7576:18;;7563:32;-1:-1:-1;;;;;7644:14:145;;;7641:34;;;7671:1;7668;7661:12;7641:34;7694:49;7735:7;7726:6;7715:9;7711:22;7694:49;:::i;:::-;7684:59;;7790:2;7779:9;7775:18;7762:32;7752:42;;7846:3;7835:9;7831:19;7818:33;7803:48;;7860:33;7885:7;7860:33;:::i;:::-;7912:7;;-1:-1:-1;7972:3:145;7957:19;;7944:33;;7989:16;;;7986:36;;;8018:1;8015;8008:12;7986:36;;8057:60;8109:7;8098:8;8087:9;8083:24;8057:60;:::i;:::-;7063:1114;;;;-1:-1:-1;7063:1114:145;;-1:-1:-1;7063:1114:145;;;;8031:86;;-1:-1:-1;;;7063:1114:145:o;8588:523::-;8673:6;8681;8689;8697;8750:3;8738:9;8729:7;8725:23;8721:33;8718:53;;;8767:1;8764;8757:12;8718:53;8806:9;8793:23;8825:30;8849:5;8825:30;:::i;:::-;8874:5;-1:-1:-1;8926:2:145;8911:18;;8898:32;;-1:-1:-1;8977:2:145;8962:18;;8949:32;;-1:-1:-1;9033:2:145;9018:18;;9005:32;9046:33;9005:32;9046:33;:::i;:::-;8588:523;;;;-1:-1:-1;8588:523:145;;-1:-1:-1;;8588:523:145:o;9116:117::-;9201:6;9194:5;9190:18;9183:5;9180:29;9170:57;;9223:1;9220;9213:12;9238:313;9305:6;9313;9366:2;9354:9;9345:7;9341:23;9337:32;9334:52;;;9382:1;9379;9372:12;9334:52;9421:9;9408:23;9440:30;9464:5;9440:30;:::i;:::-;9489:5;9541:2;9526:18;;;;9513:32;;-1:-1:-1;;;9238:313:145:o;9748:1569::-;9952:4;9981:2;10021;10010:9;10006:18;10051:2;10040:9;10033:21;10074:6;10109;10103:13;10140:6;10132;10125:22;10166:2;10156:12;;10199:2;10188:9;10184:18;10177:25;;10261:2;10251:6;10248:1;10244:14;10233:9;10229:30;10225:39;10299:2;10291:6;10287:15;10320:1;10341;10351:937;10367:6;10362:3;10359:15;10351:937;;;10436:22;;;-1:-1:-1;;10432:36:145;10420:49;;10492:13;;10579:9;;-1:-1:-1;;;;;10575:35:145;10560:51;;10650:11;;10644:18;10682:15;;;10675:27;;;10763:19;;10532:15;;;10795:24;;;10885:21;;;;10930:1;;10853:2;10841:15;;;10944:236;10960:8;10955:3;10952:17;10944:236;;;11041:15;;-1:-1:-1;;;;;;11037:42:145;11023:57;;11149:17;;;;10988:1;10979:11;;;;;11106:14;;;;10944:236;;;-1:-1:-1;11266:12:145;;;;11203:5;-1:-1:-1;;;11231:15:145;;;;10393:1;10384:11;10351:937;;;-1:-1:-1;11305:6:145;;9748:1569;-1:-1:-1;;;;;;;;;9748:1569:145:o;11322:477::-;11401:6;11409;11417;11470:2;11458:9;11449:7;11445:23;11441:32;11438:52;;;11486:1;11483;11476:12;11438:52;11526:9;11513:23;-1:-1:-1;;;;;11551:6:145;11548:30;11545:50;;;11591:1;11588;11581:12;11545:50;11630:58;11680:7;11671:6;11660:9;11656:22;11630:58;:::i;:::-;11707:8;;11604:84;;-1:-1:-1;11789:2:145;11774:18;;;;11761:32;;11322:477;-1:-1:-1;;;;11322:477:145:o;11804:266::-;11892:6;11887:3;11880:19;11944:6;11937:5;11930:4;11925:3;11921:14;11908:43;-1:-1:-1;11996:1:145;11971:16;;;11989:4;11967:27;;;11960:38;;;;12052:2;12031:15;;;-1:-1:-1;;12027:29:145;12018:39;;;12014:50;;11804:266::o;12075:393::-;12296:4;12288:6;12284:17;12273:9;12266:36;12338:2;12333;12322:9;12318:18;12311:30;12247:4;12358:61;12415:2;12404:9;12400:18;12392:6;12384;12358:61;:::i;:::-;12350:69;;12455:6;12450:2;12439:9;12435:18;12428:34;12075:393;;;;;;;:::o;12473:183::-;12533:4;-1:-1:-1;;;;;12558:6:145;12555:30;12552:56;;;12588:18;;:::i;:::-;-1:-1:-1;12633:1:145;12629:14;12645:4;12625:25;;12473:183::o;12661:966::-;12745:6;12776:2;12819;12807:9;12798:7;12794:23;12790:32;12787:52;;;12835:1;12832;12825:12;12787:52;12875:9;12862:23;-1:-1:-1;;;;;12900:6:145;12897:30;12894:50;;;12940:1;12937;12930:12;12894:50;12963:22;;13016:4;13008:13;;13004:27;-1:-1:-1;12994:55:145;;13045:1;13042;13035:12;12994:55;13081:2;13068:16;13104:60;13120:43;13160:2;13120:43;:::i;13104:60::-;13198:15;;;13280:1;13276:10;;;;13268:19;;13264:28;;;13229:12;;;;13304:19;;;13301:39;;;13336:1;13333;13326:12;13301:39;13360:11;;;;13380:217;13396:6;13391:3;13388:15;13380:217;;;13476:3;13463:17;13493:31;13518:5;13493:31;:::i;:::-;13537:18;;13413:12;;;;13575;;;;13380:217;;;13616:5;12661:966;-1:-1:-1;;;;;;;12661:966:145:o;13632:218::-;13779:2;13768:9;13761:21;13742:4;13799:45;13840:2;13829:9;13825:18;13817:6;13799:45;:::i;13855:280::-;14054:2;14043:9;14036:21;14017:4;14074:55;14125:2;14114:9;14110:18;14102:6;14074:55;:::i;14622:832::-;14728:6;14736;14744;14752;14760;14813:3;14801:9;14792:7;14788:23;14784:33;14781:53;;;14830:1;14827;14820:12;14781:53;14870:9;14857:23;-1:-1:-1;;;;;14940:2:145;14932:6;14929:14;14926:34;;;14956:1;14953;14946:12;14926:34;14995:58;15045:7;15036:6;15025:9;15021:22;14995:58;:::i;:::-;15072:8;;-1:-1:-1;14969:84:145;-1:-1:-1;15160:2:145;15145:18;;15132:32;;-1:-1:-1;15176:16:145;;;15173:36;;;15205:1;15202;15195:12;15173:36;;15228:51;15271:7;15260:8;15249:9;15245:24;15228:51;:::i;:::-;15218:61;;;15326:2;15315:9;15311:18;15298:32;15288:42;;15380:2;15369:9;15365:18;15352:32;15393:31;15418:5;15393:31;:::i;:::-;15443:5;15433:15;;;14622:832;;;;;;;;:::o;15459:271::-;15542:6;15595:2;15583:9;15574:7;15570:23;15566:32;15563:52;;;15611:1;15608;15601:12;15563:52;15650:9;15637:23;15669:31;15694:5;15669:31;:::i;15917:313::-;15984:6;15992;16045:2;16033:9;16024:7;16020:23;16016:32;16013:52;;;16061:1;16058;16051:12;16013:52;16100:9;16087:23;16119:30;16143:5;16119:30;:::i;16529:146::-;-1:-1:-1;;;;;16608:5:145;16604:46;16597:5;16594:57;16584:85;;16665:1;16662;16655:12;16680:247;16739:6;16792:2;16780:9;16771:7;16767:23;16763:32;16760:52;;;16808:1;16805;16798:12;16760:52;16847:9;16834:23;16866:31;16891:5;16866:31;:::i;16932:628::-;17020:6;17028;17036;17089:2;17077:9;17068:7;17064:23;17060:32;17057:52;;;17105:1;17102;17095:12;17057:52;17145:9;17132:23;-1:-1:-1;;;;;17215:2:145;17207:6;17204:14;17201:34;;;17231:1;17228;17221:12;17201:34;17270:58;17320:7;17311:6;17300:9;17296:22;17270:58;:::i;:::-;17347:8;;-1:-1:-1;17244:84:145;-1:-1:-1;17435:2:145;17420:18;;17407:32;;-1:-1:-1;17451:16:145;;;17448:36;;;17480:1;17477;17470:12;17448:36;;17503:51;17546:7;17535:8;17524:9;17520:24;17503:51;:::i;:::-;17493:61;;;16932:628;;;;;:::o;17889:717::-;17979:6;17987;17995;18003;18056:2;18044:9;18035:7;18031:23;18027:32;18024:52;;;18072:1;18069;18062:12;18024:52;18112:9;18099:23;-1:-1:-1;;;;;18182:2:145;18174:6;18171:14;18168:34;;;18198:1;18195;18188:12;18168:34;18237:58;18287:7;18278:6;18267:9;18263:22;18237:58;:::i;:::-;18314:8;;-1:-1:-1;18211:84:145;-1:-1:-1;18402:2:145;18387:18;;18374:32;;-1:-1:-1;18418:16:145;;;18415:36;;;18447:1;18444;18437:12;18415:36;;18486:60;18538:7;18527:8;18516:9;18512:24;18486:60;:::i;:::-;17889:717;;;;-1:-1:-1;18565:8:145;-1:-1:-1;;;;17889:717:145:o;18905:164::-;18981:13;;19030;;19023:21;19013:32;;19003:60;;19059:1;19056;19049:12;19074:330;19150:6;19158;19211:2;19199:9;19190:7;19186:23;19182:32;19179:52;;;19227:1;19224;19217:12;19179:52;19259:9;19253:16;19278:31;19303:5;19278:31;:::i;:::-;19328:5;-1:-1:-1;19352:46:145;19394:2;19379:18;;19352:46;:::i;19409:175::-;19487:13;;-1:-1:-1;;;;;19529:30:145;;19519:41;;19509:69;;19574:1;19571;19564:12;19589:134;19666:13;;19688:29;19666:13;19688:29;:::i;19728:460::-;19811:6;19819;19827;19880:2;19868:9;19859:7;19855:23;19851:32;19848:52;;;19896:1;19893;19886:12;19848:52;19919:39;19948:9;19919:39;:::i;:::-;19909:49;;20001:2;19990:9;19986:18;19980:25;20014:29;20037:5;20014:29;:::i;:::-;20112:2;20097:18;;20091:25;20062:5;;-1:-1:-1;20125:31:145;20091:25;20125:31;:::i;20595:441::-;20648:5;20701:3;20694:4;20686:6;20682:17;20678:27;20668:55;;20719:1;20716;20709:12;20668:55;20748:6;20742:13;20779:48;20795:31;20823:2;20795:31;:::i;20779:48::-;20852:2;20843:7;20836:19;20898:3;20891:4;20886:2;20878:6;20874:15;20870:26;20867:35;20864:55;;;20915:1;20912;20905:12;20864:55;20928:77;21002:2;20995:4;20986:7;20982:18;20975:4;20967:6;20963:17;20928:77;:::i;:::-;21023:7;20595:441;-1:-1:-1;;;;20595:441:145:o;21041:335::-;21120:6;21173:2;21161:9;21152:7;21148:23;21144:32;21141:52;;;21189:1;21186;21179:12;21141:52;21222:9;21216:16;-1:-1:-1;;;;;21247:6:145;21244:30;21241:50;;;21287:1;21284;21277:12;21241:50;21310:60;21362:7;21353:6;21342:9;21338:22;21310:60;:::i;21381:740::-;21446:5;21499:3;21492:4;21484:6;21480:17;21476:27;21466:55;;21517:1;21514;21507:12;21466:55;21546:6;21540:13;21572:4;21596:60;21612:43;21652:2;21612:43;:::i;21596:60::-;21678:3;21702:2;21697:3;21690:15;21730:4;21725:3;21721:14;21714:21;;21787:4;21781:2;21778:1;21774:10;21766:6;21762:23;21758:34;21744:48;;21815:3;21807:6;21804:15;21801:35;;;21832:1;21829;21822:12;21801:35;21868:4;21860:6;21856:17;21882:210;21898:6;21893:3;21890:15;21882:210;;;21971:3;21965:10;21988:31;22013:5;21988:31;:::i;:::-;22032:18;;22070:12;;;;21915;;21882:210;;;-1:-1:-1;22110:5:145;21381:740;-1:-1:-1;;;;;;21381:740:145:o;22126:1115::-;22223:6;22276:2;22264:9;22255:7;22251:23;22247:32;22244:52;;;22292:1;22289;22282:12;22244:52;22325:9;22319:16;-1:-1:-1;;;;;22395:2:145;22387:6;22384:14;22381:34;;;22411:1;22408;22401:12;22381:34;22434:22;;;;22490:4;22472:16;;;22468:27;22465:47;;;22508:1;22505;22498:12;22465:47;22534:22;;:::i;:::-;22579:32;22608:2;22579:32;:::i;:::-;22572:5;22565:47;22644:40;22680:2;22676;22672:11;22644:40;:::i;:::-;22639:2;22632:5;22628:14;22621:64;22717:40;22753:2;22749;22745:11;22717:40;:::i;:::-;22712:2;22705:5;22701:14;22694:64;22790:40;22826:2;22822;22818:11;22790:40;:::i;:::-;22785:2;22778:5;22774:14;22767:64;22870:3;22866:2;22862:12;22856:19;22900:2;22890:8;22887:16;22884:36;;;22916:1;22913;22906:12;22884:36;22953:67;23012:7;23001:8;22997:2;22993:17;22953:67;:::i;:::-;22947:3;22940:5;22936:15;22929:92;;23060:3;23056:2;23052:12;23046:19;23090:2;23080:8;23077:16;23074:36;;;23106:1;23103;23096:12;23074:36;23143:67;23202:7;23191:8;23187:2;23183:17;23143:67;:::i;:::-;23137:3;23126:15;;23119:92;-1:-1:-1;23130:5:145;22126:1115;-1:-1:-1;;;;;22126:1115:145:o;23246:127::-;23307:10;23302:3;23298:20;23295:1;23288:31;23338:4;23335:1;23328:15;23362:4;23359:1;23352:15;23378:271;23561:6;23553;23548:3;23535:33;23517:3;23587:16;;23612:13;;;23587:16;23378:271;-1:-1:-1;23378:271:145:o;23654:379::-;23865:2;23854:9;23847:21;23828:4;23885:45;23926:2;23915:9;23911:18;23903:6;23885:45;:::i;:::-;23877:53;;23966:6;23961:2;23950:9;23946:18;23939:34;24021:4;24013:6;24009:17;24004:2;23993:9;23989:18;23982:45;23654:379;;;;;;:::o;24038:127::-;24099:10;24094:3;24090:20;24087:1;24080:31;24130:4;24127:1;24120:15;24154:4;24151:1;24144:15;24170:125;24235:9;;;24256:10;;;24253:36;;;24269:18;;:::i;24300:474::-;24541:10;24529:23;;24511:42;;-1:-1:-1;;;;;24589:32:145;;24584:2;24569:18;;24562:60;24658:3;24653:2;24638:18;;24631:31;;;-1:-1:-1;;24679:46:145;;24705:19;;24697:6;24679:46;:::i;:::-;24671:54;;24761:6;24756:2;24745:9;24741:18;24734:34;24300:474;;;;;;;:::o;24779:184::-;24849:6;24902:2;24890:9;24881:7;24877:23;24873:32;24870:52;;;24918:1;24915;24908:12;24870:52;-1:-1:-1;24941:16:145;;24779:184;-1:-1:-1;24779:184:145:o;25614:369::-;25700:6;25708;25716;25769:2;25757:9;25748:7;25744:23;25740:32;25737:52;;;25785:1;25782;25775:12;25737:52;25817:9;25811:16;25836:29;25859:5;25836:29;:::i;:::-;25929:2;25914:18;;25908:25;25973:2;25958:18;;;25952:25;25884:5;;25908:25;;-1:-1:-1;25952:25:145;25614:369;-1:-1:-1;;;25614:369:145:o;26331:1453::-;26535:4;26564:2;26604;26593:9;26589:18;26634:2;26623:9;26616:21;26657:6;26692;26686:13;26723:6;26715;26708:22;26749:2;26739:12;;26782:2;26771:9;26767:18;26760:25;;26844:2;26834:6;26831:1;26827:14;26816:9;26812:30;26808:39;26882:2;26874:6;26870:15;26903:1;26913:842;26927:6;26924:1;26921:13;26913:842;;;26992:22;;;-1:-1:-1;;26988:36:145;26976:49;;27048:13;;27120:9;;27131:10;27116:26;27101:42;;27190:11;;;27184:18;-1:-1:-1;;;;;27180:44:145;27163:15;;;27156:69;27264:11;;;27258:18;27084:4;27296:15;;;27289:27;;;27084:4;27343:48;27375:15;;;27258:18;27343:48;:::i;:::-;27329:62;;;27414:4;27469:2;27465;27461:11;27455:18;27450:2;27442:6;27438:15;27431:43;;27497:4;27550:2;27546;27542:11;27536:18;27514:40;;27603:6;27595;27591:19;27586:2;27578:6;27574:15;27567:44;;27634:41;27668:6;27652:14;27634:41;:::i;:::-;27733:12;;;;27624:51;-1:-1:-1;;;27698:15:145;;;;26949:1;26942:9;26913:842;;27789:289;27964:2;27953:9;27946:21;27927:4;27984:45;28025:2;28014:9;28010:18;28002:6;27984:45;:::i;:::-;27976:53;;28065:6;28060:2;28049:9;28045:18;28038:34;27789:289;;;;;:::o;28083:244::-;28240:2;28229:9;28222:21;28203:4;28260:61;28317:2;28306:9;28302:18;28294:6;28286;28260:61;:::i;28332:148::-;28420:4;28399:12;;;28413;;;28395:31;;28438:13;;28435:39;;;28454:18;;:::i;28969:251::-;29039:6;29092:2;29080:9;29071:7;29067:23;29063:32;29060:52;;;29108:1;29105;29098:12;29060:52;29140:9;29134:16;29159:31;29184:5;29159:31;:::i;29433:127::-;29494:10;29489:3;29485:20;29482:1;29475:31;29525:4;29522:1;29515:15;29549:4;29546:1;29539:15;30033:827;30365:4;30411:1;30407;30402:3;30398:11;30394:19;30452:2;30444:6;30440:15;30429:9;30422:34;30504:2;30496:6;30492:15;30487:2;30476:9;30472:18;30465:43;30544:3;30539:2;30528:9;30524:18;30517:31;30571:57;30623:3;30612:9;30608:19;30600:6;30571:57;:::i;:::-;30676:2;30668:6;30664:15;30659:2;30648:9;30644:18;30637:43;30729:2;30721:6;30717:15;30711:3;30700:9;30696:19;30689:44;30782:9;30774:6;30770:22;30764:3;30753:9;30749:19;30742:51;30810:44;30847:6;30839;30810:44;:::i;:::-;30802:52;30033:827;-1:-1:-1;;;;;;;;;;30033:827:145:o;30865:952::-;31300:4;31292:6;31288:17;31277:9;31270:36;31342:3;31337:2;31326:9;31322:18;31315:31;31251:4;31369:57;31421:3;31410:9;31406:19;31398:6;31369:57;:::i;:::-;-1:-1:-1;;;;;31462:32:145;;31457:2;31442:18;;31435:60;31531:22;;;31526:2;31511:18;;31504:50;31577:44;31535:6;31606;31577:44;:::i;:::-;31563:58;;-1:-1:-1;;;;;31662:6:145;31658:31;31652:3;31641:9;31637:19;31630:60;31739:9;31731:6;31727:22;31721:3;31710:9;31706:19;31699:51;31767:44;31804:6;31796;31767:44;:::i;:::-;31759:52;30865:952;-1:-1:-1;;;;;;;;;30865:952:145:o;32511:2036::-;32737:4;32766:2;32806;32795:9;32791:18;32836:2;32825:9;32818:21;32859:6;32894;32888:13;32925:6;32917;32910:22;32951:2;32941:12;;32984:2;32973:9;32969:18;32962:25;;33046:2;33036:6;33033:1;33029:14;33018:9;33014:30;33010:39;33084:2;33076:6;33072:15;33105:1;33115:1403;33129:6;33126:1;33123:13;33115:1403;;;-1:-1:-1;;33224:22:145;;;33220:31;;33208:44;;33275:13;;33320:9;;33331:10;33316:26;33301:42;;33382:11;;33376:18;33414:15;;;33407:27;;;33475:19;;-1:-1:-1;;;;;33471:44:145;33454:15;;;33447:69;33557:21;;;33551:28;33627:4;33668:23;;;33602:2;33651:15;;;33644:48;;;;33733:21;;;33727:28;33818:23;;33778:3;33801:15;;;33794:48;;;;33883:21;;;33877:28;33968:23;;;33928:3;33951:15;;;33944:48;;;;34033:21;;;34027:28;34078:4;34102:15;;;34095:27;34027:28;34149:73;34217:3;34205:16;;34027:28;34149:73;:::i;:::-;34263:21;;34257:28;34327:19;;;34323:28;;34317:3;34305:16;;34298:54;34257:28;34135:87;-1:-1:-1;34375:63:145;34135:87;34257:28;34375:63;:::i;:::-;34496:12;;;;34365:73;-1:-1:-1;;;34461:15:145;;;;-1:-1:-1;33151:1:145;33144:9;33115:1403;;34552:1026;34817:2;34869:21;;;34939:13;;34842:18;;;34961:22;;;34788:4;;34817:2;35002;;35020:18;;;;35061:15;;;34788:4;35104:448;35118:6;35115:1;35112:13;35104:448;;;35177:13;;35252:9;;35213:10;35248:18;;;35236:31;;35306:11;;;35300:18;35356:19;;35352:28;;;35338:12;;;35331:50;35425:21;;35419:28;-1:-1:-1;;;;;35415:54:145;35401:12;;;35394:76;35499:4;35490:14;;;;35527:15;;;;35466:1;35133:9;35104:448;;;-1:-1:-1;35569:3:145;;34552:1026;-1:-1:-1;;;;;;;34552:1026:145:o;35583:251::-;35653:6;35706:2;35694:9;35685:7;35681:23;35677:32;35674:52;;;35722:1;35719;35712:12;35674:52;35754:9;35748:16;35773:31;35798:5;35773:31;:::i;35839:274::-;-1:-1:-1;;;;;35977:10:145;;;35989;;;35973:27;36020:20;;;;35911:34;36059:24;;;36049:58;;36087:18;;:::i;:::-;36049:58;;35839:274;;;;:::o;36118:1093::-;36347:2;36399:21;;;36469:13;;36372:18;;;36491:22;;;36318:4;;36347:2;36532;;36550:18;;;;36591:15;;;36318:4;36634:551;36648:6;36645:1;36642:13;36634:551;;;36707:13;;36782:9;;36743:10;36778:18;;;36766:31;;36836:11;;;36830:18;36886:19;;-1:-1:-1;;;;;36882:60:145;36868:12;;;36861:82;36987:21;;;36981:28;-1:-1:-1;;;;;36977:53:145;36963:12;;;36956:75;37075:21;;37069:28;37065:37;37060:2;37051:12;;37044:59;37132:4;37123:14;;;;37160:15;;;;36670:1;36663:9;36634:551;;37216:175;37253:3;37297:4;37290:5;37286:16;37326:4;37317:7;37314:17;37311:43;;37334:18;;:::i;:::-;37383:1;37370:15;;37216:175;-1:-1:-1;;37216:175:145:o;37396:1355::-;37631:2;37683:21;;;37753:13;;37656:18;;;37775:22;;;37602:4;;37631:2;37816;;37834:18;;;;37875:15;;;37602:4;37918:807;37932:6;37929:1;37926:13;37918:807;;;37991:13;;38033:9;;38044:10;38029:26;38017:39;;38095:11;;;38089:18;-1:-1:-1;;;;;38182:21:145;;;38168:12;;;38161:43;38248:11;;;38242:18;38238:27;38224:12;;;38217:49;38289:4;38337:11;;;38331:18;38351:6;38327:31;38313:12;;;38306:53;38382:4;38427:11;;;38421:18;-1:-1:-1;;;;;38530:23:145;;;38516:12;;;38509:45;;;;38577:4;38625:11;;;38619:18;38615:27;38601:12;;;38594:49;38672:4;38663:14;;;;38700:15;;;;37954:1;37947:9;37918:807;;38756:1033;38991:2;39043:21;;;39113:13;;39016:18;;;39135:22;;;38962:4;;38991:2;39176;;39194:18;;;;39235:15;;;38962:4;39278:485;39292:6;39289:1;39286:13;39278:485;;;39351:13;;39393:9;;39404:10;39389:26;39377:39;;39460:11;;;39454:18;-1:-1:-1;;;;;39450:43:145;39436:12;;;39429:65;39538:11;;;39532:18;39552:6;39528:31;39514:12;;;39507:53;39583:4;39631:11;;;39625:18;-1:-1:-1;;;;;39621:59:145;39607:12;;;39600:81;39710:4;39701:14;;;;39738:15;;;;39314:1;39307:9;39278:485;;41511:151;41601:4;41594:12;;;41580;;;41576:31;;41619:14;;41616:40;;;41636:18;;:::i;41667:380::-;41746:1;41742:12;;;;41789;;;41810:61;;41864:4;41856:6;41852:17;41842:27;;41810:61;41917:2;41909:6;41906:14;41886:18;41883:38;41880:161;;41963:10;41958:3;41954:20;41951:1;41944:31;41998:4;41995:1;41988:15;42026:4;42023:1;42016:15;41880:161;;41667:380;;;:::o;42052:760::-;-1:-1:-1;;;;;42403:15:145;;;42385:34;;42455:15;;42450:2;42435:18;;42428:43;42502:2;42487:18;;42480:34;;;42562:6;42550:19;;42545:2;42530:18;;42523:47;42607:3;42601;42586:19;;42579:32;;;42328:4;;42634:62;;42676:19;;42668:6;42660;42634:62;:::i;:::-;42745:9;42737:6;42733:22;42727:3;42716:9;42712:19;42705:51;42773:33;42799:6;42791;42773:33;:::i;43173:136::-;43212:3;43240:5;43230:39;;43249:18;;:::i;:::-;-1:-1:-1;;;43285:18:145;;43173:136::o;43873:379::-;44066:2;44055:9;44048:21;44029:4;44092:45;44133:2;44122:9;44118:18;44110:6;44092:45;:::i;:::-;44185:9;44177:6;44173:22;44168:2;44157:9;44153:18;44146:50;44213:33;44239:6;44231;44213:33;:::i;44257:549::-;44506:3;44495:9;44488:22;44469:4;44533:46;44574:3;44563:9;44559:19;44551:6;44533:46;:::i;:::-;44627:9;44619:6;44615:22;44610:2;44599:9;44595:18;44588:50;44655:33;44681:6;44673;44655:33;:::i;:::-;44719:2;44704:18;;44697:34;;;;-1:-1:-1;;;;;;;44767:32:145;;;;44762:2;44747:18;;;44740:60;44647:41;44257:549;-1:-1:-1;;44257:549:145:o;45097:249::-;45166:6;45219:2;45207:9;45198:7;45194:23;45190:32;45187:52;;;45235:1;45232;45225:12;45187:52;45267:9;45261:16;45286:30;45310:5;45286:30;:::i;45962:764::-;46287:10;46279:6;46275:23;46264:9;46257:42;46238:4;46335:1;46331;46326:3;46322:11;46318:19;46385:2;46377:6;46373:15;46368:2;46357:9;46353:18;46346:43;46425:3;46420:2;46409:9;46405:18;46398:31;46452:46;46493:3;46482:9;46478:19;46470:6;46452:46;:::i;:::-;46534:6;46529:2;46518:9;46514:18;46507:34;46590:2;46582:6;46578:15;46572:3;46561:9;46557:19;46550:44;46643:9;46635:6;46631:22;46625:3;46614:9;46610:19;46603:51;46671:49;46713:6;46705;46697;46671:49;:::i;:::-;46663:57;45962:764;-1:-1:-1;;;;;;;;;;;45962:764:145:o;47010:384::-;-1:-1:-1;;;;;;47195:33:145;;47183:46;;47252:13;;47165:3;;47274:74;47252:13;47337:1;47328:11;;47321:4;47309:17;;47274:74;:::i;:::-;47368:16;;;;47386:1;47364:24;;47010:384;-1:-1:-1;;;47010:384:145:o;47399:287::-;47528:3;47566:6;47560:13;47582:66;47641:6;47636:3;47629:4;47621:6;47617:17;47582:66;:::i;:::-;47664:16;;;;;47399:287;-1:-1:-1;;47399:287:145:o;47691:202::-;47758:6;47811:2;47799:9;47790:7;47786:23;47782:32;47779:52;;;47827:1;47824;47817:12;47779:52;47850:37;47877:9;47850:37;:::i;47898:872::-;48252:10;48243:6;48237:13;48233:30;48222:9;48215:49;48320:4;48312:6;48308:17;48302:24;48295:4;48284:9;48280:20;48273:54;-1:-1:-1;;;;;48387:4:145;48379:6;48375:17;48369:24;48365:49;48358:4;48347:9;48343:20;48336:79;48480:1;48476;48471:3;48467:11;48463:19;48455:6;48451:32;48446:2;48435:9;48431:18;48424:60;48521:6;48515:3;48504:9;48500:19;48493:35;48565:3;48559;48548:9;48544:19;48537:32;48196:4;48592:62;48649:3;48638:9;48634:19;48626:6;48618;48592:62;:::i;:::-;48703:9;48695:6;48691:22;48685:3;48674:9;48670:19;48663:51;48731:33;48757:6;48749;48731:33;:::i;48900:542::-;49001:2;48996:3;48993:11;48990:446;;;49037:1;49061:5;49058:1;49051:16;49105:4;49102:1;49092:18;49175:2;49163:10;49159:19;49156:1;49152:27;49146:4;49142:38;49211:4;49199:10;49196:20;49193:47;;;-1:-1:-1;49234:4:145;49193:47;49289:2;49284:3;49280:12;49277:1;49273:20;49267:4;49263:31;49253:41;;49344:82;49362:2;49355:5;49352:13;49344:82;;;49407:17;;;49388:1;49377:13;49344:82;;;49348:3;;;48900:542;;;:::o;49618:1202::-;-1:-1:-1;;;;;49735:3:145;49732:27;49729:53;;;49762:18;;:::i;:::-;49791:93;49880:3;49840:38;49872:4;49866:11;49840:38;:::i;:::-;49834:4;49791:93;:::i;:::-;49910:1;49935:2;49930:3;49927:11;49952:1;49947:615;;;;50606:1;50623:3;50620:93;;;-1:-1:-1;50679:19:145;;;50666:33;50620:93;-1:-1:-1;;49575:1:145;49571:11;;;49567:24;49563:29;49553:40;49599:1;49595:11;;;49550:57;50726:78;;49920:894;;49947:615;48847:1;48840:14;;;48884:4;48871:18;;-1:-1:-1;;49983:17:145;;;50083:9;50105:229;50119:7;50116:1;50113:14;50105:229;;;50208:19;;;50195:33;50180:49;;50315:4;50300:20;;;;50268:1;50256:14;;;;50135:12;50105:229;;;50109:3;50362;50353:7;50350:16;50347:159;;;50486:1;50482:6;50476:3;50470;50467:1;50463:11;50459:21;50455:34;50451:39;50438:9;50433:3;50429:19;50416:33;50412:79;50404:6;50397:95;50347:159;;;50549:1;50543:3;50540:1;50536:11;50532:19;50526:4;50519:33;49920:894;;;49618:1202;;;:::o;50825:331::-;50930:9;50941;50983:8;50971:10;50968:24;50965:44;;;51005:1;51002;50995:12;50965:44;51034:6;51024:8;51021:20;51018:40;;;51054:1;51051;51044:12;51018:40;-1:-1:-1;;51080:23:145;;;51125:25;;;;;-1:-1:-1;50825:331:145:o;51161:323::-;-1:-1:-1;;;;;;51281:19:145;;51357:11;;;;51388:1;51380:10;;51377:101;;;51449:1;51445:11;;;;51442:1;51438:19;51434:28;;;51426:37;51422:46;;;;51161:323;-1:-1:-1;;51161:323:145:o;51489:492::-;51664:3;51702:6;51696:13;51718:66;51777:6;51772:3;51765:4;51757:6;51753:17;51718:66;:::i;:::-;51847:13;;51806:16;;;;51869:70;51847:13;51806:16;51916:4;51904:17;;51869:70;:::i;:::-;51955:20;;51489:492;-1:-1:-1;;;;51489:492:145:o;52396:517::-;52483:6;52491;52499;52552:2;52540:9;52531:7;52527:23;52523:32;52520:52;;;52568:1;52565;52558:12;52520:52;52600:9;52594:16;52619:30;52643:5;52619:30;:::i;:::-;52718:2;52703:18;;52697:25;52668:5;;-1:-1:-1;52731:33:145;52697:25;52731:33;:::i;:::-;52835:2;52820:18;;52814:25;52783:7;;-1:-1:-1;52848:33:145;52814:25;52848:33;:::i;53329:312::-;53408:6;53416;53469:2;53457:9;53448:7;53444:23;53440:32;53437:52;;;53485:1;53482;53475:12;53437:52;53517:9;53511:16;53536:31;53561:5;53536:31;:::i;:::-;53631:2;53616:18;;;;53610:25;53586:5;;53610:25;;-1:-1:-1;;;53329:312:145:o;53646:255::-;53766:19;;53805:2;53797:11;;53794:101;;;-1:-1:-1;;53866:2:145;53862:12;;;53859:1;53855:20;53851:33;53840:45;53646:255;;;;:::o;54316:385::-;54395:6;54403;54456:2;54444:9;54435:7;54431:23;54427:32;54424:52;;;54472:1;54469;54462:12;54424:52;54504:9;54498:16;54523:31;54548:5;54523:31;:::i;:::-;54623:2;54608:18;;54602:25;54573:5;;-1:-1:-1;54636:33:145;54602:25;54636:33;:::i;54706:331::-;-1:-1:-1;;;;;;54826:19:145;;54910:11;;;;54941:1;54933:10;;54930:101;;;55002:1;54998:11;;;;54995:1;54991:19;54987:28;;;54979:37;54975:46;;;;54706:331;-1:-1:-1;;54706:331:145:o;55042:558::-;55139:6;55147;55200:2;55188:9;55179:7;55175:23;55171:32;55168:52;;;55216:1;55213;55206:12;55168:52;55249:9;55243:16;-1:-1:-1;;;;;55319:2:145;55311:6;55308:14;55305:34;;;55335:1;55332;55325:12;55305:34;55358:60;55410:7;55401:6;55390:9;55386:22;55358:60;:::i;:::-;55348:70;;55464:2;55453:9;55449:18;55443:25;55427:41;;55493:2;55483:8;55480:16;55477:36;;;55509:1;55506;55499:12;55477:36;;55532:62;55586:7;55575:8;55564:9;55560:24;55532:62;:::i;:::-;55522:72;;;55042:558;;;;;:::o;55899:520::-;55994:6;56002;56010;56063:2;56051:9;56042:7;56038:23;56034:32;56031:52;;;56079:1;56076;56069:12;56031:52;56111:9;56105:16;56130:29;56153:5;56130:29;:::i;:::-;56227:2;56212:18;;56206:25;56178:5;;-1:-1:-1;;;;;;56243:30:145;;56240:50;;;56286:1;56283;56276:12;56240:50;56309:60;56361:7;56352:6;56341:9;56337:22;56309:60;:::i;:::-;56299:70;;;56409:2;56398:9;56394:18;56388:25;56378:35;;55899:520;;;;;:::o;56424:318::-;-1:-1:-1;;;;;;56544:19:145;;56615:11;;;;56646:1;56638:10;;56635:101;;;56707:1;56703:11;;;;56700:1;56696:19;56692:28;;;56684:37;56680:46;;;;56424:318;-1:-1:-1;;56424:318:145:o;56747:345::-;-1:-1:-1;;;;;;56868:19:145;;56963:11;;;;56994:2;56986:11;;56983:103;;;57056:2;57052:12;;;;57049:1;57045:20;57041:29;;;57033:38;57029:47;;;;56747:345;-1:-1:-1;;56747:345:145:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","TREASURY_GAS_CAP()":"baead19c","TREASURY_GAS_FOR_FEE_CAP()":"b1dcf5c8","assertGuid(bytes,bytes32)":"997cff1b","decodeLzComposeOption(bytes)":"518e8ab0","decodeLzReceiveOption(bytes)":"f93e1d61","decodeNativeDropOption(bytes)":"b954fdf6","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","executorValueCap()":"2113ce62","failed()":"ba414fa6","getNextInflightPacket(uint16,bytes32)":"7982cf42","hasPendingPackets(uint16,bytes32)":"5ea0fefe","lzCompose(bytes,bytes,bytes32,address)":"a29c8984","lzCompose(uint32,address,bytes,bytes32,address,bytes)":"3bbd6a94","lzReceive(bytes,bytes)":"ec53eaa0","nextExecutorOption(bytes,uint256)":"6e1775e3","registerEndpoint(address)":"ae6ce400","schedulePacket(bytes,bytes)":"faed6c58","setExecutorValueCap(uint128)":"defd9da6","setUp()":"0a9254e4","setUpEndpoints(uint8,uint8)":"1cc46525","setupOApps(bytes,uint8,uint8)":"2a35d250","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","validatePacket(bytes)":"12cc947f","verifyPackets(uint32,address)":"090852b6","verifyPackets(uint32,bytes32)":"b752b72a","verifyPackets(uint32,bytes32,uint256,address)":"5e7baa42","wireOApps(address[])":"703ca254"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Executor_InvalidLzComposeOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidLzReceiveOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Executor_InvalidNativeDropOption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueueFull\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_GAS_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_GAS_FOR_FEE_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"}],\"name\":\"assertGuid\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzComposeOption\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"index\",\"type\":\"uint16\"},{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeLzReceiveOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"gas\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_option\",\"type\":\"bytes\"}],\"name\":\"decodeNativeDropOption\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executorValueCap\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"getNextInflightPacket\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"packetBytes\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstEid\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"hasPendingPackets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_composerMsg\",\"type\":\"bytes\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_composer\",\"type\":\"address\"}],\"name\":\"lzCompose\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_cursor\",\"type\":\"uint256\"}],\"name\":\"nextExecutorOption\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"optionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"option\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract EndpointV2Mock\",\"name\":\"endpoint\",\"type\":\"address\"}],\"name\":\"registerEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_options\",\"type\":\"bytes\"}],\"name\":\"schedulePacket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_valueCap\",\"type\":\"uint128\"}],\"name\":\"setExecutorValueCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_endpointNum\",\"type\":\"uint8\"},{\"internalType\":\"enum TestHelperOz5.LibraryType\",\"name\":\"_libraryType\",\"type\":\"uint8\"}],\"name\":\"setUpEndpoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_oappCreationCode\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"_startEid\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"_oappNum\",\"type\":\"uint8\"}],\"name\":\"setupOApps\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"oapps\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_packetBytes\",\"type\":\"bytes\"}],\"name\":\"validatePacket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_packetAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_composer\",\"type\":\"address\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_dstAddress\",\"type\":\"bytes32\"}],\"name\":\"verifyPackets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"oapps\",\"type\":\"address[]\"}],\"name\":\"wireOApps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Extends Foundry's Test contract and provides utility functions for setting up mock endpoints and OApps.\",\"errors\":{\"QueueEmpty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}],\"QueueFull()\":[{\"details\":\"A push operation couldn't be completed due to the queue being full.\"}]},\"kind\":\"dev\",\"methods\":{\"schedulePacket(bytes,bytes)\":{\"details\":\"Adds the packet to the front of the queue and stores its options for later retrieval.\",\"params\":{\"_options\":\"The options associated with the packet, used during delivery.\",\"_packetBytes\":\"The packet data to be scheduled.\"}},\"setExecutorValueCap(uint128)\":{\"details\":\"set executorValueCap if more than 0.1 ether is necessarythis must be called prior to setUpEndpoints() if the value is to be used\",\"params\":{\"_valueCap\":\"amount executor can pass as msg.value to lzReceive()\"}},\"setUp()\":{\"details\":\"Initializes test environment setup, to be overridden by specific tests.\"},\"setUpEndpoints(uint8,uint8)\":{\"params\":{\"_endpointNum\":\"The number of endpoints to create.\",\"_libraryType\":\"The type of message library to use (UltraLightNode or SimpleMessageLib).\"}},\"setupOApps(bytes,uint8,uint8)\":{\"params\":{\"_oappCreationCode\":\"The bytecode for creating OApp contracts.\",\"_oappNum\":\"The number of OApps to set up.\",\"_startEid\":\"The starting endpoint ID for OApp setup.\"},\"returns\":{\"oapps\":\"An array of addresses for the deployed OApps.\"}},\"verifyPackets(uint32,address)\":{\"details\":\"verify packets to destination chain's OApp address.\",\"params\":{\"_dstAddress\":\"The destination address.\",\"_dstEid\":\"The destination endpoint ID.\"}},\"verifyPackets(uint32,bytes32)\":{\"details\":\"Calls an overloaded version of verifyPackets with default values for packet amount and composer address.\",\"params\":{\"_dstAddress\":\"The destination address in bytes32 format.\",\"_dstEid\":\"The destination chain's endpoint ID.\"}},\"verifyPackets(uint32,bytes32,uint256,address)\":{\"details\":\"dst UA receive/execute packetswill NOT work calling this directly with composer IF the composed payload is different from the lzReceive msg payload\"},\"wireOApps(address[])\":{\"details\":\"Sets each OApp as a peer to every other OApp in the provided array, except itself.\",\"params\":{\"oapps\":\"An array of addresses representing the deployed OApp instances.\"}}},\"title\":\"TestHelperOz5\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"schedulePacket(bytes,bytes)\":{\"notice\":\"Schedules a packet for delivery, storing it in the packets queue.\"},\"setUpEndpoints(uint8,uint8)\":{\"notice\":\"Sets up endpoints for testing.\"},\"setupOApps(bytes,uint8,uint8)\":{\"notice\":\"Sets up mock OApp contracts for testing.\"},\"verifyPackets(uint32,bytes32)\":{\"notice\":\"Verifies and processes packets destined for a specific chain and user address.\"},\"wireOApps(address[])\":{\"notice\":\"Configures the peers between multiple OApp instances.\"}},\"notice\":\"Helper contract for setting up and managing LayerZero test environments.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol\":\"TestHelperOz5\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol\":{\"keccak256\":\"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9\",\"dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol\":{\"keccak256\":\"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2\",\"dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol\":{\"keccak256\":\"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4\",\"dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol\":{\"keccak256\":\"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497\",\"dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol\":{\"keccak256\":\"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f\",\"dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol\":{\"keccak256\":\"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032\",\"dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol\":{\"keccak256\":\"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4\",\"dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol\":{\"keccak256\":\"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8\",\"dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol\":{\"keccak256\":\"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5\",\"dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol\":{\"keccak256\":\"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89\",\"dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol\":{\"keccak256\":\"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79\",\"dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol\":{\"keccak256\":\"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2\",\"dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol\":{\"keccak256\":\"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9\",\"dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol\":{\"keccak256\":\"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55\",\"dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol\":{\"keccak256\":\"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3\",\"dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol\":{\"keccak256\":\"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc\",\"dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":{\"keccak256\":\"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850\",\"dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol\":{\"keccak256\":\"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691\",\"dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol\":{\"keccak256\":\"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f\",\"dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol\":{\"keccak256\":\"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241\",\"dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol\":{\"keccak256\":\"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c\",\"dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol\":{\"keccak256\":\"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a\",\"dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol\":{\"keccak256\":\"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54\",\"dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72\",\"dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol\":{\"keccak256\":\"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24\",\"dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol\":{\"keccak256\":\"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b\",\"dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol\":{\"keccak256\":\"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f\",\"dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol\":{\"keccak256\":\"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda\",\"dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol\":{\"keccak256\":\"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2\",\"dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol\":{\"keccak256\":\"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11\",\"dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol\":{\"keccak256\":\"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677\",\"dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol\":{\"keccak256\":\"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590\",\"dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol\":{\"keccak256\":\"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045\",\"dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol\":{\"keccak256\":\"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13\",\"dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol\":{\"keccak256\":\"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29\",\"dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol\":{\"keccak256\":\"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f\",\"dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol\":{\"keccak256\":\"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec\",\"dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol\":{\"keccak256\":\"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4\",\"dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol\":{\"keccak256\":\"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574\",\"dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol\":{\"keccak256\":\"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991\",\"dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol\":{\"keccak256\":\"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1\",\"dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e\",\"dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8\",\"dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Executor_InvalidLzComposeOption"},{"inputs":[],"type":"error","name":"Executor_InvalidLzReceiveOption"},{"inputs":[],"type":"error","name":"Executor_InvalidNativeDropOption"},{"inputs":[],"type":"error","name":"QueueEmpty"},{"inputs":[],"type":"error","name":"QueueFull"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_GAS_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY_GAS_FOR_FEE_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"packetBytes","type":"bytes"},{"internalType":"bytes32","name":"guid","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertGuid"},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzComposeOption","outputs":[{"internalType":"uint16","name":"index","type":"uint16"},{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeLzReceiveOption","outputs":[{"internalType":"uint128","name":"gas","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"inputs":[{"internalType":"bytes","name":"_option","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeNativeDropOption","outputs":[{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes32","name":"receiver","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"executorValueCap","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getNextInflightPacket","outputs":[{"internalType":"bytes","name":"packetBytes","type":"bytes"}]},{"inputs":[{"internalType":"uint16","name":"_dstEid","type":"uint16"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"view","type":"function","name":"hasPendingPackets","outputs":[{"internalType":"bool","name":"flag","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes","name":"_composerMsg","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"address","name":"_composer","type":"address"}],"stateMutability":"payable","type":"function","name":"lzCompose"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"bytes","name":"_options","type":"bytes"},{"internalType":"uint256","name":"_cursor","type":"uint256"}],"stateMutability":"pure","type":"function","name":"nextExecutorOption","outputs":[{"internalType":"uint8","name":"optionType","type":"uint8"},{"internalType":"bytes","name":"option","type":"bytes"},{"internalType":"uint256","name":"cursor","type":"uint256"}]},{"inputs":[{"internalType":"contract EndpointV2Mock","name":"endpoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerEndpoint"},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"},{"internalType":"bytes","name":"_options","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"schedulePacket"},{"inputs":[{"internalType":"uint128","name":"_valueCap","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setExecutorValueCap"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint8","name":"_endpointNum","type":"uint8"},{"internalType":"enum TestHelperOz5.LibraryType","name":"_libraryType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setUpEndpoints"},{"inputs":[{"internalType":"bytes","name":"_oappCreationCode","type":"bytes"},{"internalType":"uint8","name":"_startEid","type":"uint8"},{"internalType":"uint8","name":"_oappNum","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setupOApps","outputs":[{"internalType":"address[]","name":"oapps","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"bytes","name":"_packetBytes","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"validatePacket"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"address","name":"_dstAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"},{"internalType":"uint256","name":"_packetAmount","type":"uint256"},{"internalType":"address","name":"_composer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"uint32","name":"_dstEid","type":"uint32"},{"internalType":"bytes32","name":"_dstAddress","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"verifyPackets"},{"inputs":[{"internalType":"address[]","name":"oapps","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"wireOApps"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"schedulePacket(bytes,bytes)":{"details":"Adds the packet to the front of the queue and stores its options for later retrieval.","params":{"_options":"The options associated with the packet, used during delivery.","_packetBytes":"The packet data to be scheduled."}},"setExecutorValueCap(uint128)":{"details":"set executorValueCap if more than 0.1 ether is necessarythis must be called prior to setUpEndpoints() if the value is to be used","params":{"_valueCap":"amount executor can pass as msg.value to lzReceive()"}},"setUp()":{"details":"Initializes test environment setup, to be overridden by specific tests."},"setUpEndpoints(uint8,uint8)":{"params":{"_endpointNum":"The number of endpoints to create.","_libraryType":"The type of message library to use (UltraLightNode or SimpleMessageLib)."}},"setupOApps(bytes,uint8,uint8)":{"params":{"_oappCreationCode":"The bytecode for creating OApp contracts.","_oappNum":"The number of OApps to set up.","_startEid":"The starting endpoint ID for OApp setup."},"returns":{"oapps":"An array of addresses for the deployed OApps."}},"verifyPackets(uint32,address)":{"details":"verify packets to destination chain's OApp address.","params":{"_dstAddress":"The destination address.","_dstEid":"The destination endpoint ID."}},"verifyPackets(uint32,bytes32)":{"details":"Calls an overloaded version of verifyPackets with default values for packet amount and composer address.","params":{"_dstAddress":"The destination address in bytes32 format.","_dstEid":"The destination chain's endpoint ID."}},"verifyPackets(uint32,bytes32,uint256,address)":{"details":"dst UA receive/execute packetswill NOT work calling this directly with composer IF the composed payload is different from the lzReceive msg payload"},"wireOApps(address[])":{"details":"Sets each OApp as a peer to every other OApp in the provided array, except itself.","params":{"oapps":"An array of addresses representing the deployed OApp instances."}}},"version":1},"userdoc":{"kind":"user","methods":{"schedulePacket(bytes,bytes)":{"notice":"Schedules a packet for delivery, storing it in the packets queue."},"setUpEndpoints(uint8,uint8)":{"notice":"Sets up endpoints for testing."},"setupOApps(bytes,uint8,uint8)":{"notice":"Sets up mock OApp contracts for testing."},"verifyPackets(uint32,bytes32)":{"notice":"Verifies and processes packets destined for a specific chain and user address."},"wireOApps(address[])":{"notice":"Configures the peers between multiple OApp instances."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol":"TestHelperOz5"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol":{"keccak256":"0x14899a4398251439938d6ef8a15ea8c6acdddc98a7b0066d7e63676192dea0d1","urls":["bzz-raw://3998d03de7025c2c601a4fdcaf9475d12a1ef661fcf1a685ece84fdde6498cf9","dweb:/ipfs/QmReknRbiGAiPqq9toKyXKo6hUKXrQPJyyS6LnTGjiDKoY"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol":{"keccak256":"0x2fdbd1b13751a264cd6e7fac518a2685b15c968806c03f1d18b177fc0526e9a9","urls":["bzz-raw://600af48bb67939b5f4a3a00c76863ee290a55325ea8697f7cc4b46321ab26ef2","dweb:/ipfs/QmdRigYaB6TXczjtVkvwpUEBwvvvDuymFoViMCB6xQPYUU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol":{"keccak256":"0x400eaa11c7d50b4c25b7625290ff00937b6875ad3986b353c37a4e62b5a834b1","urls":["bzz-raw://1f51eb0785d3630815a9d63de1c1331fe966df4c3f2fb6750b8da7be9e9743a4","dweb:/ipfs/QmaAEf1kjhhff3AUhRiPm6ikpk2YMMrpKc2ccYzNs7waBy"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol":{"keccak256":"0x90ada11d0a330732c56b989e59c8272b70f956a5d7be2cf209d6d51a51d35a9e","urls":["bzz-raw://0abc7a6d07ec40a3a922256ad05bdd6eca10550d85bfd2e67147473617bb0497","dweb:/ipfs/QmRDphmFhx1scRJXcusg6pUhVQvp941oCJwnHGAPdrNY4T"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol":{"keccak256":"0xa0abbbde2d91fc80929bb3214eeb57ecd11cef99c6190bf31bdb9930fa16d14a","urls":["bzz-raw://fbd50b72c788d3a0a71094d5bb81e74199b9ba66d91ff6d6cb1411966214ac2f","dweb:/ipfs/QmUATu63qJouCskf3ePs67d5DbFFADuGpeENN5sZD4ZWwq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol":{"keccak256":"0xf36091f40c969f83831fdf69f91b9ccf25237335bd2696dd18f1b721ddb794b3","urls":["bzz-raw://ccd3dfafa17d068d2c7d9ae4990974833226a50ed96fc190a9bef3b77a2c9032","dweb:/ipfs/QmWKNd24A4ghKCL1BCKLrna5KbpbA11vki9LNXZDBT7vV9"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol":{"keccak256":"0x3647af317ee126b1247a782abb30e59ec5ab21b4945f1d3b4370d1fa3c1bf347","urls":["bzz-raw://5b51cd5e7347ee869a06bd57a698f40e4a901ec7fdcb27f0ef485e4a0e1e9be4","dweb:/ipfs/QmP2Nc73veRzLGdUahkjhQAiKR9ZWYiUtSGwoMB1sPXxUp"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol":{"keccak256":"0xb4df72798a64f5ea44775b526e0c417c3de0ffc661659d7b31d5b28567c6fbcc","urls":["bzz-raw://30ca5fd5e3227a7bffc51654ee3bfebdd591a131f86846ac42dea8a40c5cf1d8","dweb:/ipfs/QmXNmQCF8TZAFpUxgPa1rgWt4ktsBV38A8Hax7TiYLgybW"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol":{"keccak256":"0x2aab2a3cf50e20af56d9204b1367d52a47abba0b0c7c21f304d413de1ced6345","urls":["bzz-raw://f8b603b5e5e62c621715f8449280af240a4add8721c4ae8f5e8e491507f6e4c5","dweb:/ipfs/QmUQ7Ti7CPmKnRbQFN9TLvVbeZhsi1xUjqZPTJ36dCZ6y8"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol":{"keccak256":"0xc3b7b7927472f7c1ca9703af310e9050c798afaccf399ad0f131e179b8582c8d","urls":["bzz-raw://e5be13af32ff6b371985d405bc6fe8ac2faf5445bd88fda2dab4b869f66e3f89","dweb:/ipfs/Qmd21k4H2tAHKrpiuHUbH87eNtHLLJzHj9ZCrMh8AKfDHh"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol":{"keccak256":"0x36c93de122bbb74ae31e3eacf567c0a3bc649ed3ebb2766c76dfa93aebcace44","urls":["bzz-raw://e83bcaa80e2715e68818dd53e4dc6ad8e665b8249d69a08cf2d2635b9757fb79","dweb:/ipfs/QmSKh6NgaTrTSa48gDzGGqGNAcs5jVEHgZSzZzbuJSEsxo"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol":{"keccak256":"0x6d9962ffa476ac2efb78f1415bb2f650a30eedeef2b75fdab0aeafaf3e8da6a5","urls":["bzz-raw://21f32c56b67d2e770444b809c1a85a96627194c605ad317d482dfc5b6ce7e8c2","dweb:/ipfs/QmP5tzoMDzTdduEcSpYHgg6WCHLQGuc1djDMFUBycJPLCU"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol":{"keccak256":"0xa7fbe84ee6a646a09577f409b6c4c5ad05467e6896f9da6db91510801d6eaa4f","urls":["bzz-raw://1038e6fd16a679b6a5e0e4171dd889465e70b867c3b084e92dbf8152490a4bc9","dweb:/ipfs/QmYqhMnurtMYsaL4twHusKEAMuEHBER6ZrXcMKak6Y4GcN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol":{"keccak256":"0x7edb42d1580a08e77d5cc48d83087f7d8c35138605456a5c82a583df3a7cbd73","urls":["bzz-raw://18710ab2a55c410e035aa6c10bc12e347066dfad9ee339841e3dd34cdeda5e55","dweb:/ipfs/QmVaXhPWFjc3YTikbWHS4TKHkmTgZuEyorikFyyUTJh1bN"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol":{"keccak256":"0x308e77078242fd5c5746ec29c12e618249134f9e4377c0028ab8f59c07a6014b","urls":["bzz-raw://2f92cf397a8d26864ac92dfcd1b98e92a32c47f556a62c5e6dc1618734c1caa3","dweb:/ipfs/QmXN3XJXEKq5djV6HeM6jrLycmJPFhMhecsYZ2TaRsQmhg"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol":{"keccak256":"0xcdf7e690e5d5c0a3ec26a0d7b1a7fe49c7d16a3634721c3944f77d13ff5d4a91","urls":["bzz-raw://bd32a05dde1b83be1ce64fcfb9495d8b9bf0c5b3a5b521ac6c214e87e32f3cdc","dweb:/ipfs/QmcDKTor8EQf3cbiWYmeFb9qzUM8JGPzGGN9qJnYjP1nN7"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":{"keccak256":"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27","urls":["bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850","dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol":{"keccak256":"0x47f8ebeaa7d96a6f337a18c46e3c532da578c7cb0a13fb6e6f014286b991902f","urls":["bzz-raw://d51f208b931be54e0ae1801c71c0756251d8c26f8d9b7911be1ad57b3d4a5691","dweb:/ipfs/QmWqjst7jnYtSXQ9pakYHutDvENKLyqNg9nPfMxTH8p2Ed"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol":{"keccak256":"0x9ba881395fe0906e40d9222c318b8c74d45cc4035369db4a4c6c7d5de2c42378","urls":["bzz-raw://bae80a870a797838741f3fcffc57ae6216487ea0640a0f9707efd13a7830372f","dweb:/ipfs/QmVHqnqVP9De8X2ZiDRAn6LXnoUD3Xm7PHWGYrRD1EuBEG"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol":{"keccak256":"0x64330e51de72e8d38cfc0eb5527d36baada46df4bc14233d3a8ecaf98098d69a","urls":["bzz-raw://49aa45e5a26fc62e7af569cf915be8344adc78dceb6871c4c14bc5d115e59241","dweb:/ipfs/QmbTuW7kzPDYForDEPnaNQi6ZrmWqDxGVnHFiugnvTyq9K"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol":{"keccak256":"0x8ab8cb12c8beba699c1a7f22ffa812ac553f7038326d0c0d0af77253005cfe73","urls":["bzz-raw://7c7cba4ae16d0ca46ee0a365a204f7257ceaa892224604bf7c8e65c44737e46c","dweb:/ipfs/QmbQX5hJDKMwKdoo6QkdcusXQXH54SVCPe5hM1ycJZsg7y"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol":{"keccak256":"0x20d36578e810e75346daf064813b76a177087214cae77628b1f9d43798cb52d1","urls":["bzz-raw://475b6f3f1ba5d981d0c5f90b9e892d4f9f539f3b12196639b95770b5be4dbf6a","dweb:/ipfs/QmYyGrnR3vDt8Dqa2paQwTG9qrD6anAGFrDZmMra8KGC6s"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol":{"keccak256":"0x9616f3bd0d7293c9723f2ddf86f9f7030fbd99213c9748557eec8f6d13b25420","urls":["bzz-raw://205e713f5af46f52799e51774ac74dbeee4056de6ddba3c4d78a327536426c54","dweb:/ipfs/QmZ2ZqDwxdjpJbh91qwMfRhhQu4AMEsjUcsTEsdRV4NAys"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0x62150940fb5a3146dd703f8f8db0d054dffed5517fb9ef9ba37550a06e633f8c","urls":["bzz-raw://0baaf94841c14d5f52c2f1df041004e1223ffb9b40348e6e8f95e7e12e6f3d72","dweb:/ipfs/QmYhE56a4AWeWr1rsA52zcXcm6nXiCHHuXecVZ5ZYT2WPq"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol":{"keccak256":"0x35bcd6ca99c4c8d9f7d8413d1b92fb4a4d4a420ce3bf64b0fb01e68e6bcf2fa7","urls":["bzz-raw://0ac14f98563f9c610c936c93e71eff657efaba1e1d892be6a215aa5cb1f63a24","dweb:/ipfs/QmVZZ8owwfDGLQTAzQJJqmYY4KsrChDagh5GBK7rChT5wb"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol":{"keccak256":"0x8a44524af7deb96593f6b5606e9973654a113e1687809f2e45d4a91ba89862d5","urls":["bzz-raw://32dd0b5d1946e0cd5c7b728086aafac50a62c061115afb8b41254589c8a6732b","dweb:/ipfs/QmR9QqtiAUPRLaRVv5wnth3NGPhdWB8rJmWYfz3o5Z1mWj"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol":{"keccak256":"0xb2b55968b26294139742adee6c155897c8334f4c6bf72f1940456cc84e6fbab9","urls":["bzz-raw://e758a1fdcea4039b19f1252e4e2958f4a0e05517eb3e151784431533446c225f","dweb:/ipfs/QmRBG345abgyUeTnSpuxdK1WbK5pvwhSmvBEgW1mnoYqTq"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol":{"keccak256":"0xf1f36bbbc40d03b96affa151affb47da75a1b69dc79f4b311841a072d12fdd22","urls":["bzz-raw://9f4f188c2998ecbda28a389ad8038da15c2260b1df6a8d135b3d96422e292fda","dweb:/ipfs/QmeThR83tcaM4CmxQ2AamTafsgjcbGMfZtYcDHqw2CcwKa"],"license":"BUSL-1.1"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol":{"keccak256":"0x33e9f1577912d2be4daee19839848fc4373488348330c64da086788e0d52d095","urls":["bzz-raw://aad68ac21f6e204e362e5c99d15fb8622b200464393075bfcb6f87b56ef725f2","dweb:/ipfs/QmUxJtmnZFy41bwBAedARau8HCG8YwxqWrbnxTqLm6j6XG"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol":{"keccak256":"0x095146294bc43b42b371d24468741107eea357478816e0728bed16e4ea15ef95","urls":["bzz-raw://ce3ad7e8bb05e93971bfc12f87c02f2a3bb35a701faba783412d4d2eaade5a11","dweb:/ipfs/QmcroUdV8X1mDJMSG3rwUuHh6HHR2HCxAJyx5KfyMJHomW"],"license":"UNLICENSED"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol":{"keccak256":"0x4f78d60b0fd4bebb9d091db945c1908f1ab594c6332ef7e76cc6a27e36a6e2ef","urls":["bzz-raw://1007be62aa5684ac636b45febfa43f69459ea25dcd1e9d944a50a7d6f05a6677","dweb:/ipfs/QmTY7SB6SGbyHEiheQuE4vCjK4sTcbDuhoBL94ncX9Aoon"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol":{"keccak256":"0x88e3df882ad4e26ff793e786b237153adbda2a3a09133958b561659d5ebd4ada","urls":["bzz-raw://0ad6c67e125b3d80476326ce1b06b8b22147edb7bec85e3be135afae513b7590","dweb:/ipfs/QmXwfH4CkqmNk8vDBPuMb1Hv1vBn58wV33XGtDpar8gAMf"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol":{"keccak256":"0xe9096c53611537a121589b56b882fc4dd797d5cac60def708f794a15e3ca98ff","urls":["bzz-raw://4092d5dd582b48a5f703e4361fc5fb66050b5fe3253891175275dc832bc8e045","dweb:/ipfs/QmXSTJJNx4rn2ByCaE6vxiHnkm366ZU7dScYH1JsUbVZ1V"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol":{"keccak256":"0x0cb48e8187ff6c77f35f29f9d266f756d9d544dfe6a007f3f21bd10ff6ea4f21","urls":["bzz-raw://df6452cb2e39b2af3bd839ac021fa62cdea399b34c8d5fce6f50b4e7a3f6eb13","dweb:/ipfs/QmNxDKoByW2NQnVNVsXGLEq9qtgJpAnk4Vt8fpqQwMG1oW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol":{"keccak256":"0xffd919489fab736fd18ac46c917c476b1eb1f8e2190f0c5ac87d969f17d07a16","urls":["bzz-raw://0e30809702b1351fded69e75c13aaee1e8e161a20ad40c8176f66cc1cc737b29","dweb:/ipfs/Qmcke2GWTYGcpcY9k1vgRkkGvo2BQXYmzdkVgXj3x33p1r"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol":{"keccak256":"0xc7c90e073e52af1da6c07e3d3f7477b064a89e78935c16e9872457df503c6830","urls":["bzz-raw://cef1ae2d517e152616aea7f8f5c15fa1fbabbec8896a9c30a9eed35fb56b4f2f","dweb:/ipfs/QmeitPMQht2WfbR9ZLzwKWgThamdsJkobeaWo6ojTCoQG5"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol":{"keccak256":"0xd8f419b25c648287b5b7f0923b069b2449c51e807c9153df39445f2f83e55f44","urls":["bzz-raw://bb300a5bb62655073c7aa9cd2221e60e59ce904a0d73f7f5e06af7c9df3445ec","dweb:/ipfs/QmcYb2qFevymfkWhTqGaNH5HwK9MMUixzAKJJAdNQHSCbw"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol":{"keccak256":"0x8e60b01e9bc801167b374dc119b41832d546afd43c143a0cd15ab1941198e121","urls":["bzz-raw://bb1512762417dda9cd81fd9b41f590fd05888358fda1c2ab7e79e0cfabf61ec4","dweb:/ipfs/QmPAgBwdjLz29vE5L1Jth1Wvx6TTM1ig97amVtAyDFF61Q"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol":{"keccak256":"0x0c5cb54ec6b18e77aa653f7d774ac9d010684dafc96794d1d02f12b6885cc348","urls":["bzz-raw://24c5a8ba8d92c16ec3047229167528f57b38cbd64882140014126ca51ab14574","dweb:/ipfs/QmXQsMDtZ3qNmjnr2LYgctBpPKxffuC6EeWHvFUtLBS5st"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol":{"keccak256":"0xe6c93840c612592686732dd516550816eb77d6cde92514220eacb72443dcb9b9","urls":["bzz-raw://a6a00fb60b7ac66e746f0471c2262fc98febafeb8acad8785d38ce1ddc4cc991","dweb:/ipfs/QmboboJskbXBbsyAGGRbW4JQCPJo9WiLFy7nwQxGVS9UhZ"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol":{"keccak256":"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97","urls":["bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1","dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol":{"keccak256":"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70","urls":["bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e","dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"keccak256":"0xed6b702230a66640a0f1dd96106dd697e821b6b0fbb2eeab1c09d88d7c411a67","urls":["bzz-raw://766996a7c9fb936ae08fc451c6bf6c3a9b49aca26002fb76c7fd1833fca459d8","dweb:/ipfs/QmaFKhhPJCNxESLDoio7aR2KSvi4Y8YKirrb9tu4LM1vDp"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":71} \ No newline at end of file diff --git a/packages/onft-evm/out/Transfer.sol/Transfer.json b/packages/onft-evm/out/Transfer.sol/Transfer.json deleted file mode 100644 index cf8af571d..000000000 --- a/packages/onft-evm/out/Transfer.sol/Transfer.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eadd193da258cdf21eda870b34273d6e96ffa2206ce4e3db2f5e08b4db4a4e9064736f6c63430008160033","sourceMap":"223:897:64:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;223:897:64;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eadd193da258cdf21eda870b34273d6e96ffa2206ce4e3db2f5e08b4db4a4e9064736f6c63430008160033","sourceMap":"223:897:64:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":\"Transfer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":"Transfer"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"}},"version":1},"id":64} \ No newline at end of file diff --git a/packages/onft-evm/out/UlnBase.sol/UlnBase.json b/packages/onft-evm/out/UlnBase.sol/UlnBase.json deleted file mode 100644 index 80b0ebad4..000000000 --- a/packages/onft-evm/out/UlnBase.sol/UlnBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getAppUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getUlnConfig","inputs":[{"name":"_oapp","type":"address","internalType":"address"},{"name":"_remoteEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"rtnConfig","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultUlnConfigs","inputs":[{"name":"_params","type":"tuple[]","internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DefaultUlnConfigsSet","inputs":[{"name":"params","type":"tuple[]","indexed":false,"internalType":"struct SetDefaultUlnConfigParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"config","type":"tuple","internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}]}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UlnConfigSet","inputs":[{"name":"oapp","type":"address","indexed":false,"internalType":"address"},{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"config","type":"tuple","indexed":false,"internalType":"struct UlnConfig","components":[{"name":"confirmations","type":"uint64","internalType":"uint64"},{"name":"requiredDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNCount","type":"uint8","internalType":"uint8"},{"name":"optionalDVNThreshold","type":"uint8","internalType":"uint8"},{"name":"requiredDVNs","type":"address[]","internalType":"address[]"},{"name":"optionalDVNs","type":"address[]","internalType":"address[]"}]}],"anonymous":false},{"type":"error","name":"LZ_ULN_AtLeastOneDVN","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidConfirmations","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount","inputs":[]},{"type":"error","name":"LZ_ULN_Unsorted","inputs":[]},{"type":"error","name":"LZ_ULN_UnsupportedEid","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getAppUlnConfig(address,uint32)":"39e3f938","getUlnConfig(address,uint32)":"43ea4fa9","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":"29460b0b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_ULN_AtLeastOneDVN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidConfirmations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidOptionalDVNThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidRequiredDVNCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_Unsorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"LZ_ULN_UnsupportedEid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"params\",\"type\":\"tuple[]\"}],\"name\":\"DefaultUlnConfigsSet\",\"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\":\"address\",\"name\":\"oapp\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"indexed\":false,\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"UlnConfigSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getAppUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oapp\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_remoteEid\",\"type\":\"uint32\"}],\"name\":\"getUlnConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"rtnConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmations\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"requiredDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNCount\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"optionalDVNThreshold\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"requiredDVNs\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"optionalDVNs\",\"type\":\"address[]\"}],\"internalType\":\"struct UlnConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"internalType\":\"struct SetDefaultUlnConfigParam[]\",\"name\":\"_params\",\"type\":\"tuple[]\"}],\"name\":\"setDefaultUlnConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"includes the utility functions for checking ULN states and logics\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getAppUlnConfig(address,uint32)\":{\"details\":\"Get the uln config without the default config for the given remoteEid.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])\":{\"details\":\"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":\"UlnBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol\":{\"keccak256\":\"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4\",\"dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_ULN_AtLeastOneDVN"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidConfirmations"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNCount"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidOptionalDVNThreshold"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidRequiredDVNCount"},{"inputs":[],"type":"error","name":"LZ_ULN_Unsorted"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"LZ_ULN_UnsupportedEid"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}],"indexed":false}],"type":"event","name":"DefaultUlnConfigsSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"oapp","type":"address","indexed":false},{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}],"indexed":false}],"type":"event","name":"UlnConfigSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getAppUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[{"internalType":"address","name":"_oapp","type":"address"},{"internalType":"uint32","name":"_remoteEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getUlnConfig","outputs":[{"internalType":"struct UlnConfig","name":"rtnConfig","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SetDefaultUlnConfigParam[]","name":"_params","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"struct UlnConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"confirmations","type":"uint64"},{"internalType":"uint8","name":"requiredDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNCount","type":"uint8"},{"internalType":"uint8","name":"optionalDVNThreshold","type":"uint8"},{"internalType":"address[]","name":"requiredDVNs","type":"address[]"},{"internalType":"address[]","name":"optionalDVNs","type":"address[]"}]}]}],"stateMutability":"nonpayable","type":"function","name":"setDefaultUlnConfigs"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"getAppUlnConfig(address,uint32)":{"details":"Get the uln config without the default config for the given remoteEid."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])":{"details":"about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":"UlnBase"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol":{"keccak256":"0xfdb1d04f4996c0a9d35abfbfcf10d978da638885eb77d0a9dc35cea5993074e3","urls":["bzz-raw://776d58d88d13b058f236cf18c32b4b9718a021513fc4e198287f4fe18ec5aba4","dweb:/ipfs/QmdNX8jJu2aXJ8Dpbt2ohfhT8RKQLuvh58sW6SAXcUTcV9"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":24} \ No newline at end of file diff --git a/packages/onft-evm/out/UlnOptions.sol/UlnOptions.json b/packages/onft-evm/out/UlnOptions.sol/UlnOptions.json deleted file mode 100644 index 3d6947979..000000000 --- a/packages/onft-evm/out/UlnOptions.sol/UlnOptions.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"LZ_ULN_InvalidLegacyType1Option","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidLegacyType2Option","inputs":[]},{"type":"error","name":"LZ_ULN_InvalidWorkerId","inputs":[{"name":"workerId","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"LZ_ULN_InvalidWorkerOptions","inputs":[{"name":"cursor","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LZ_ULN_UnsupportedOptionType","inputs":[{"name":"optionType","type":"uint16","internalType":"uint16"}]}],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208be4ec95be46074a6e12968b66d72dedb53706f68c7c11cd05e88b0a58bc204e64736f6c63430008160033","sourceMap":"305:8177:30:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;305:8177:30;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208be4ec95be46074a6e12968b66d72dedb53706f68c7c11cd05e88b0a58bc204e64736f6c63430008160033","sourceMap":"305:8177:30:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LZ_ULN_InvalidLegacyType1Option\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LZ_ULN_InvalidLegacyType2Option\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"workerId\",\"type\":\"uint8\"}],\"name\":\"LZ_ULN_InvalidWorkerId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"name\":\"LZ_ULN_InvalidWorkerOptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"optionType\",\"type\":\"uint16\"}],\"name\":\"LZ_ULN_UnsupportedOptionType\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":\"UlnOptions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol\":{\"keccak256\":\"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141\",\"dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6\"]},\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol\":{\"keccak256\":\"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850\",\"dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol\":{\"keccak256\":\"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d\",\"dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol\":{\"keccak256\":\"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f\",\"dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol\":{\"keccak256\":\"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2\",\"dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535\",\"dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"LZ_ULN_InvalidLegacyType1Option"},{"inputs":[],"type":"error","name":"LZ_ULN_InvalidLegacyType2Option"},{"inputs":[{"internalType":"uint8","name":"workerId","type":"uint8"}],"type":"error","name":"LZ_ULN_InvalidWorkerId"},{"inputs":[{"internalType":"uint256","name":"cursor","type":"uint256"}],"type":"error","name":"LZ_ULN_InvalidWorkerOptions"},{"inputs":[{"internalType":"uint16","name":"optionType","type":"uint16"}],"type":"error","name":"LZ_ULN_UnsupportedOptionType"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":"UlnOptions"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol":{"keccak256":"0x2beee03cdf59a9bc72e94d08b69cb2e908725f4ceabb48651494938100e21e35","urls":["bzz-raw://d88e121a39e74309f3575417df2318e2d2ee8bc8314e68dbf78544a9c393b141","dweb:/ipfs/QmRojBRAyENK21HnjevAWeoZZxtWkYZubB9Y78vCJPYeU6"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol":{"keccak256":"0x5df07fef16b20767f7524c367d90f696c12e8ce0e4fde7aecc9d83fb2b6b0e27","urls":["bzz-raw://0997203f57d736e56ebb3d736550f1c7ff7950c8df0574c7abe95e22f847b850","dweb:/ipfs/QmZBjkH1vaPLyN3Jx9kGfVZKuTdfVWJfJVLSPok8SpjGbT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol":{"keccak256":"0x5c0db161cef6603c3b256d4220f489419e7478ef775e52a80056654129c61875","urls":["bzz-raw://a33245d0fdd3992bb56b31d1840108d36bb46c8d617b659ef1af8dd7ed86302d","dweb:/ipfs/QmWyBqT7Tdrfn5zz9xYM3V1PBtfAZAVwwCrrKwwfi3wMQK"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol":{"keccak256":"0xaad3c72ef43480d2253fd48b394e8fb7286d009991d2bc4e61be58ce48ac5ee9","urls":["bzz-raw://b8c02b14f954416ba2148b389c87da8378ac8dd16ba3d458cbbfba8b0fd8639f","dweb:/ipfs/Qmd2EEQhYL2VmgJi1V4uiHM2WcYxF9iBtxSgcFkbS21rQD"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol":{"keccak256":"0x621c6090fc432f94a99f677a95d72b75f56db89ddc5fc870669777a313587c28","urls":["bzz-raw://69086166f16d29e30c5eb9ca2f97afb27569afe619807d79736833a809a512d2","dweb:/ipfs/QmcZqXjFuVdTrfbteKBF3GuEpjVFZ2YNZTa3J87dyLsqav"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/solidity-bytes-utils/contracts/BytesLib.sol":{"keccak256":"0xa5b10f04797d5a10a9ba07855108b6bd695940e6a3d128927b2f74a0d359868a","urls":["bzz-raw://a38d7680aacbb18dae659876b396b73bcc8f759672213f8a0efc4129e2648535","dweb:/ipfs/QmfKFnwpTEGAnbRnZxMuv3mRCG9S9WMjFhFL23bftBT2Jq"],"license":"Unlicense"}},"version":1},"id":30} \ No newline at end of file diff --git a/packages/onft-evm/out/Vm.sol/Vm.json b/packages/onft-evm/out/Vm.sol/Vm.json deleted file mode 100644 index d9ce7cc7d..000000000 --- a/packages/onft-evm/out/Vm.sol/Vm.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"activeFork","inputs":[],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"allowCheatcodes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"chainId","inputs":[{"name":"newChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"clearMockedCalls","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"coinbase","inputs":[{"name":"newCoinbase","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"deal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newBalance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deleteSnapshot","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"deleteSnapshots","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"difficulty","inputs":[{"name":"newDifficulty","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dumpState","inputs":[{"name":"pathToStateJson","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"etch","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"newRuntimeBytecode","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"gas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectSafeMemory","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectSafeMemoryCall","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fee","inputs":[{"name":"newBasefee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isPersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"persistent","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"loadAllocs","inputs":[{"name":"pathToAllocsJson","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"},{"name":"account2","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prevrandao","inputs":[{"name":"newPrevrandao","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readCallers","inputs":[],"outputs":[{"name":"callerMode","type":"uint8","internalType":"enum VmSafe.CallerMode"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resetNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revertTo","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revertToAndDelete","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"roll","inputs":[{"name":"newHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"selectFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNonceUnsafe","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"skip","inputs":[{"name":"skipTest","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"snapshot","inputs":[],"outputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopPrank","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"store","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"transact","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transact","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"txGasPrice","inputs":[{"name":"newGasPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"warp","inputs":[{"name":"newTimestamp","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","activeFork()":"2f103f22","addr(uint256)":"ffa18649","allowCheatcodes(address)":"ea060291","assume(bool)":"4c63e562","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","chainId(uint256)":"4049ddd2","clearMockedCalls()":"3fdf4e15","closeFile(string)":"48c3241f","coinbase(address)":"ff483c54","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","copyFile(string,string)":"a54a87d8","createDir(string,bool)":"168b64d3","createFork(string)":"31ba3498","createFork(string,bytes32)":"7ca29682","createFork(string,uint256)":"6ba3ba2b","createSelectFork(string)":"98680034","createSelectFork(string,bytes32)":"84d52b7a","createSelectFork(string,uint256)":"71ee464d","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deal(address,uint256)":"c88a5e6d","deleteSnapshot(uint256)":"a6368557","deleteSnapshots()":"421ae469","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","difficulty(uint256)":"46cc92d9","dumpState(string)":"709ecd3f","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","etch(address,bytes)":"b4d6c782","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","expectCall(address,bytes)":"bd6af434","expectCall(address,bytes,uint64)":"c1adbbff","expectCall(address,uint256,bytes)":"f30c7ba3","expectCall(address,uint256,bytes,uint64)":"a2b1a1ae","expectCall(address,uint256,uint64,bytes)":"23361207","expectCall(address,uint256,uint64,bytes,uint64)":"65b7b7cc","expectCallMinGas(address,uint256,uint64,bytes)":"08e4e116","expectCallMinGas(address,uint256,uint64,bytes,uint64)":"e13a1834","expectEmit()":"440ed10d","expectEmit(address)":"86b9620d","expectEmit(bool,bool,bool,bool)":"491cc7c2","expectEmit(bool,bool,bool,bool,address)":"81bad6f3","expectRevert()":"f4844814","expectRevert(bytes)":"f28dceb3","expectRevert(bytes4)":"c31eb0e0","expectSafeMemory(uint64,uint64)":"6d016688","expectSafeMemoryCall(uint64,uint64)":"05838bf4","fee(uint256)":"39b37ab0","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","isPersistent(address)":"d92d8efd","keyExists(string,string)":"528a683c","label(address,string)":"c657c718","load(address,bytes32)":"667f9d70","loadAllocs(string)":"b3a056d7","makePersistent(address)":"57e22dde","makePersistent(address,address)":"4074e0a8","makePersistent(address,address,address)":"efb77a75","makePersistent(address[])":"1d9e269e","mockCall(address,bytes,bytes)":"b96213e4","mockCall(address,uint256,bytes,bytes)":"81409b91","mockCallRevert(address,bytes,bytes)":"dbaad147","mockCallRevert(address,uint256,bytes,bytes)":"d23cd037","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","prank(address)":"ca669fa7","prank(address,address)":"47e50cce","prevrandao(bytes32)":"3b925549","projectRoot()":"d930a0e6","readCallers()":"4ad0bac9","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","resetNonce(address)":"1c72346d","resumeGasMetering()":"2bcd50e0","revertTo(uint256)":"44d7f0a4","revertToAndDelete(uint256)":"03e0aca9","revokePersistent(address)":"997a0222","revokePersistent(address[])":"3ce969e6","roll(uint256)":"1f7b4f30","rollFork(bytes32)":"0f29772b","rollFork(uint256)":"d9bbf3a1","rollFork(uint256,bytes32)":"f2830f7b","rollFork(uint256,uint256)":"d74c83a4","rpc(string,string)":"1206c8a8","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","selectFork(uint256)":"9ebf6827","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","setEnv(string,string)":"3d5923ee","setNonce(address,uint64)":"f8e18b57","setNonceUnsafe(address,uint64)":"9b67b21c","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(uint256,bytes32)":"e341eaa4","signP256(uint256,bytes32)":"83211b40","skip(bool)":"dd82d13e","sleep(uint256)":"fa9d8713","snapshot()":"9711715a","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startMappingRecording()":"3e9705c0","startPrank(address)":"06447d56","startPrank(address,address)":"45b56078","startStateDiffRecording()":"cf22e3c9","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopMappingRecording()":"0d4aae9b","stopPrank()":"90c5013b","store(address,bytes32,bytes32)":"70ca10bb","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","transact(bytes32)":"be646da1","transact(uint256,bytes32)":"4d8abc4b","tryFfi(string[])":"f45c1ce7","txGasPrice(uint256)":"48f50c0f","unixTime()":"625387dc","warp(uint256)":"e5d6bf02","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"allowCheatcodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newChainId\",\"type\":\"uint256\"}],\"name\":\"chainId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clearMockedCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newCoinbase\",\"type\":\"address\"}],\"name\":\"coinbase\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"deal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"deleteSnapshot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteSnapshots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDifficulty\",\"type\":\"uint256\"}],\"name\":\"difficulty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToStateJson\",\"type\":\"string\"}],\"name\":\"dumpState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"newRuntimeBytecode\",\"type\":\"bytes\"}],\"name\":\"etch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemoryCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBasefee\",\"type\":\"uint256\"}],\"name\":\"fee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPersistent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"persistent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pathToAllocsJson\",\"type\":\"string\"}],\"name\":\"loadAllocs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account2\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newPrevrandao\",\"type\":\"bytes32\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"readCallers\",\"outputs\":[{\"internalType\":\"enum VmSafe.CallerMode\",\"name\":\"callerMode\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"resetNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertToAndDelete\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newHeight\",\"type\":\"uint256\"}],\"name\":\"roll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"name\":\"selectFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonceUnsafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"skipTest\",\"type\":\"bool\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newGasPrice\",\"type\":\"uint256\"}],\"name\":\"txGasPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newTimestamp\",\"type\":\"uint256\"}],\"name\":\"warp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"activeFork()\":{\"notice\":\"Returns the identifier of the currently active fork. Reverts if no fork is currently active.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"allowCheatcodes(address)\":{\"notice\":\"In forking mode, explicitly grant the given address cheatcode access.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"chainId(uint256)\":{\"notice\":\"Sets `block.chainid`.\"},\"clearMockedCalls()\":{\"notice\":\"Clears all mocked calls.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"coinbase(address)\":{\"notice\":\"Sets `block.coinbase`.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createFork(string)\":{\"notice\":\"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork.\"},\"createFork(string,bytes32)\":{\"notice\":\"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork.\"},\"createFork(string,uint256)\":{\"notice\":\"Creates a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createSelectFork(string)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork.\"},\"createSelectFork(string,bytes32)\":{\"notice\":\"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork.\"},\"createSelectFork(string,uint256)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deal(address,uint256)\":{\"notice\":\"Sets an address' balance.\"},\"deleteSnapshot(uint256)\":{\"notice\":\"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist.\"},\"deleteSnapshots()\":{\"notice\":\"Removes _all_ snapshots previously created by `snapshot`.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"difficulty(uint256)\":{\"notice\":\"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions.\"},\"dumpState(string)\":{\"notice\":\"Dump a genesis JSON file's `allocs` to disk.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"etch(address,bytes)\":{\"notice\":\"Sets an address' code.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"expectCall(address,bytes)\":{\"notice\":\"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match.\"},\"expectCall(address,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified calldata.\"},\"expectCall(address,uint256,bytes)\":{\"notice\":\"Expects a call to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCall(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCallMinGas(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectCallMinGas(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectEmit()\":{\"notice\":\"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data.\"},\"expectEmit(address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmit(bool,bool,bool,bool)\":{\"notice\":\"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\"},\"expectEmit(bool,bool,bool,bool,address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectRevert()\":{\"notice\":\"Expects an error on next call with any revert data.\"},\"expectRevert(bytes)\":{\"notice\":\"Expects an error on next call that exactly matches the revert data.\"},\"expectRevert(bytes4)\":{\"notice\":\"Expects an error on next call that starts with the revert data.\"},\"expectSafeMemory(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"expectSafeMemoryCall(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"fee(uint256)\":{\"notice\":\"Sets `block.basefee`.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get a `Wallet`'s nonce.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"isPersistent(address)\":{\"notice\":\"Returns true if the account is marked as persistent.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"loadAllocs(string)\":{\"notice\":\"Load a genesis JSON file's `allocs` into the in-memory revm state.\"},\"makePersistent(address)\":{\"notice\":\"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks.\"},\"makePersistent(address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address,address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address[])\":{\"notice\":\"See `makePersistent(address)`.\"},\"mockCall(address,bytes,bytes)\":{\"notice\":\"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked.\"},\"mockCall(address,uint256,bytes,bytes)\":{\"notice\":\"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity.\"},\"mockCallRevert(address,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with specified revert data.\"},\"mockCallRevert(address,uint256,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with a specific `msg.value`, with specified revert data.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"prank(address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address.\"},\"prank(address,address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input.\"},\"prevrandao(bytes32)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"readCallers()\":{\"notice\":\"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification.\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"resetNonce(address)\":{\"notice\":\"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"revertTo(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`.\"},\"revertToAndDelete(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist.\"},\"revokePersistent(address)\":{\"notice\":\"Revokes persistent status from the address, previously added via `makePersistent`.\"},\"revokePersistent(address[])\":{\"notice\":\"See `revokePersistent(address)`.\"},\"roll(uint256)\":{\"notice\":\"Sets `block.height`.\"},\"rollFork(bytes32)\":{\"notice\":\"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block.\"},\"rollFork(uint256)\":{\"notice\":\"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork.\"},\"rollFork(uint256,bytes32)\":{\"notice\":\"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block.\"},\"rollFork(uint256,uint256)\":{\"notice\":\"Updates the given fork to given block number.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"selectFork(uint256)\":{\"notice\":\"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"setNonce(address,uint64)\":{\"notice\":\"Sets the nonce of an account. Must be higher than the current nonce of the account.\"},\"setNonceUnsafe(address,uint64)\":{\"notice\":\"Sets the nonce of an account to an arbitrary value.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"skip(bool)\":{\"notice\":\"Marks a test as skipped. Must be called at the top of the test.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"snapshot()\":{\"notice\":\"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertTo`.\"},\"startBroadcast()\":{\"notice\":\"Using the address that calls the test contract, has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startPrank(address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called.\"},\"startPrank(address,address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"stopPrank()\":{\"notice\":\"Resets subsequent calls' `msg.sender` to be `address(this)`.\"},\"store(address,bytes32,bytes32)\":{\"notice\":\"Stores a value to an address' storage slot.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"transact(bytes32)\":{\"notice\":\"Fetches the given transaction from the active fork and executes it on the current state.\"},\"transact(uint256,bytes32)\":{\"notice\":\"Fetches the given transaction from the given fork and executes it on the current state.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"txGasPrice(uint256)\":{\"notice\":\"Sets `tx.gasprice`.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"warp(uint256)\":{\"notice\":\"Sets `block.timestamp`.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"}},\"notice\":\"The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used in tests, but it is not recommended to use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":\"Vm\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowCheatcodes"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"newChainId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"chainId"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"clearMockedCalls"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"address","name":"newCoinbase","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"coinbase"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"newBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deal"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshot","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshots"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"newDifficulty","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"difficulty"},{"inputs":[{"internalType":"string","name":"pathToStateJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"dumpState"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"newRuntimeBytecode","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"etch"},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemory"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemoryCall"},{"inputs":[{"internalType":"uint256","name":"newBasefee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fee"},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isPersistent","outputs":[{"internalType":"bool","name":"persistent","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"pathToAllocsJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"loadAllocs"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"},{"internalType":"address","name":"account2","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"bytes32","name":"newPrevrandao","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"prevrandao"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"readCallers","outputs":[{"internalType":"enum VmSafe.CallerMode","name":"callerMode","type":"uint8"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"resetNonce"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertTo","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertToAndDelete","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"uint256","name":"newHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"roll"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"selectFork"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonce"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonceUnsafe"},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"skipTest","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"snapshot","outputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startMappingRecording"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopPrank"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"store"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[{"internalType":"uint256","name":"newGasPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"txGasPrice"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"newTimestamp","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"warp"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"activeFork()":{"notice":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"allowCheatcodes(address)":{"notice":"In forking mode, explicitly grant the given address cheatcode access."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"chainId(uint256)":{"notice":"Sets `block.chainid`."},"clearMockedCalls()":{"notice":"Clears all mocked calls."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"coinbase(address)":{"notice":"Sets `block.coinbase`."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createFork(string)":{"notice":"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork."},"createFork(string,bytes32)":{"notice":"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork."},"createFork(string,uint256)":{"notice":"Creates a new fork with the given endpoint and block and returns the identifier of the fork."},"createSelectFork(string)":{"notice":"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork."},"createSelectFork(string,bytes32)":{"notice":"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork."},"createSelectFork(string,uint256)":{"notice":"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deal(address,uint256)":{"notice":"Sets an address' balance."},"deleteSnapshot(uint256)":{"notice":"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist."},"deleteSnapshots()":{"notice":"Removes _all_ snapshots previously created by `snapshot`."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"difficulty(uint256)":{"notice":"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions."},"dumpState(string)":{"notice":"Dump a genesis JSON file's `allocs` to disk."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"etch(address,bytes)":{"notice":"Sets an address' code."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"expectCall(address,bytes)":{"notice":"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match."},"expectCall(address,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified calldata."},"expectCall(address,uint256,bytes)":{"notice":"Expects a call to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value`, gas, and calldata."},"expectCall(address,uint256,uint64,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata."},"expectCallMinGas(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectCallMinGas(address,uint256,uint64,bytes,uint64)":{"notice":"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectEmit()":{"notice":"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data."},"expectEmit(address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectEmit(bool,bool,bool,bool)":{"notice":"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"expectEmit(bool,bool,bool,bool,address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectRevert()":{"notice":"Expects an error on next call with any revert data."},"expectRevert(bytes)":{"notice":"Expects an error on next call that exactly matches the revert data."},"expectRevert(bytes4)":{"notice":"Expects an error on next call that starts with the revert data."},"expectSafeMemory(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"expectSafeMemoryCall(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"fee(uint256)":{"notice":"Sets `block.basefee`."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get a `Wallet`'s nonce."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"isPersistent(address)":{"notice":"Returns true if the account is marked as persistent."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"label(address,string)":{"notice":"Labels an address in call traces."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"loadAllocs(string)":{"notice":"Load a genesis JSON file's `allocs` into the in-memory revm state."},"makePersistent(address)":{"notice":"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks."},"makePersistent(address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address,address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address[])":{"notice":"See `makePersistent(address)`."},"mockCall(address,bytes,bytes)":{"notice":"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked."},"mockCall(address,uint256,bytes,bytes)":{"notice":"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity."},"mockCallRevert(address,bytes,bytes)":{"notice":"Reverts a call to an address with specified revert data."},"mockCallRevert(address,uint256,bytes,bytes)":{"notice":"Reverts a call to an address with a specific `msg.value`, with specified revert data."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"prank(address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address."},"prank(address,address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input."},"prevrandao(bytes32)":{"notice":"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert."},"projectRoot()":{"notice":"Get the path of the current project root."},"readCallers()":{"notice":"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"resetNonce(address)":{"notice":"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"revertTo(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`."},"revertToAndDelete(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist."},"revokePersistent(address)":{"notice":"Revokes persistent status from the address, previously added via `makePersistent`."},"revokePersistent(address[])":{"notice":"See `revokePersistent(address)`."},"roll(uint256)":{"notice":"Sets `block.height`."},"rollFork(bytes32)":{"notice":"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block."},"rollFork(uint256)":{"notice":"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork."},"rollFork(uint256,bytes32)":{"notice":"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block."},"rollFork(uint256,uint256)":{"notice":"Updates the given fork to given block number."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"selectFork(uint256)":{"notice":"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"setEnv(string,string)":{"notice":"Sets environment variables."},"setNonce(address,uint64)":{"notice":"Sets the nonce of an account. Must be higher than the current nonce of the account."},"setNonceUnsafe(address,uint64)":{"notice":"Sets the nonce of an account to an arbitrary value."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"skip(bool)":{"notice":"Marks a test as skipped. Must be called at the top of the test."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"snapshot()":{"notice":"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertTo`."},"startBroadcast()":{"notice":"Using the address that calls the test contract, has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startPrank(address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called."},"startPrank(address,address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"stopPrank()":{"notice":"Resets subsequent calls' `msg.sender` to be `address(this)`."},"store(address,bytes32,bytes32)":{"notice":"Stores a value to an address' storage slot."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"transact(bytes32)":{"notice":"Fetches the given transaction from the active fork and executes it on the current state."},"transact(uint256,bytes32)":{"notice":"Fetches the given transaction from the given fork and executes it on the current state."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"txGasPrice(uint256)":{"notice":"Sets `tx.gasprice`."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"warp(uint256)":{"notice":"Sets `block.timestamp`."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":"Vm"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"id":96} \ No newline at end of file diff --git a/packages/onft-evm/out/Vm.sol/VmSafe.json b/packages/onft-evm/out/Vm.sol/VmSafe.json deleted file mode 100644 index b1a38275a..000000000 --- a/packages/onft-evm/out/Vm.sol/VmSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","addr(uint256)":"ffa18649","assume(bool)":"4c63e562","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","closeFile(string)":"48c3241f","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","copyFile(string,string)":"a54a87d8","createDir(string,bool)":"168b64d3","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","keyExists(string,string)":"528a683c","label(address,string)":"c657c718","load(address,bytes32)":"667f9d70","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","projectRoot()":"d930a0e6","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","resumeGasMetering()":"2bcd50e0","rpc(string,string)":"1206c8a8","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeJson(string,string)":"9b3358b0","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","setEnv(string,string)":"3d5923ee","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(uint256,bytes32)":"e341eaa4","signP256(uint256,bytes32)":"83211b40","sleep(uint256)":"fa9d8713","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startMappingRecording()":"3e9705c0","startStateDiffRecording()":"cf22e3c9","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopMappingRecording()":"0d4aae9b","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","tryFfi(string[])":"f45c1ce7","unixTime()":"625387dc","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get a `Wallet`'s nonce.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"startBroadcast()\":{\"notice\":\"Using the address that calls the test contract, has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"}},\"notice\":\"The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may result in Script simulations differing from on-chain execution. It is recommended to only use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":\"VmSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"view","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startMappingRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get a `Wallet`'s nonce."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"label(address,string)":{"notice":"Labels an address in call traces."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"projectRoot()":{"notice":"Get the path of the current project root."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"setEnv(string,string)":{"notice":"Sets environment variables."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"startBroadcast()":{"notice":"Using the address that calls the test contract, has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":"VmSafe"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"}},"version":1},"id":96} \ No newline at end of file diff --git a/packages/onft-evm/out/WorkerMock.sol/WorkerMock.json b/packages/onft-evm/out/WorkerMock.sol/WorkerMock.json deleted file mode 100644 index c94a0979b..000000000 --- a/packages/onft-evm/out/WorkerMock.sol/WorkerMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowlistSize","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"defaultMultiplierBps","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint8[]","internalType":"uint8[]"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasAcl","inputs":[{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"priceFeed","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultMultiplierBps","inputs":[{"name":"_multiplierBps","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPaused","inputs":[{"name":"_paused","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPriceFeed","inputs":[{"name":"_priceFeed","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSupportedOptionTypes","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_optionTypes","type":"uint8[]","internalType":"uint8[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWorkerFeeLib","inputs":[{"name":"_workerFeeLib","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"withdrawFee","inputs":[{"name":"_lib","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawToken","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"workerFeeLib","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDefaultMultiplierBps","inputs":[{"name":"multiplierBps","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"SetPriceFeed","inputs":[{"name":"priceFeed","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetSupportedOptionTypes","inputs":[{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"optionTypes","type":"uint8[]","indexed":false,"internalType":"uint8[]"}],"anonymous":false},{"type":"event","name":"SetWorkerLib","inputs":[{"name":"workerLib","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"lib","type":"address","indexed":false,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Transfer_NativeFailed","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Transfer_ToAddressIsZero","inputs":[]},{"type":"error","name":"Worker_NotAllowed","inputs":[]},{"type":"error","name":"Worker_OnlyMessageLib","inputs":[]},{"type":"error","name":"Worker_RoleRenouncingDisabled","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","allowlistSize()":"d2ae2104","defaultMultiplierBps()":"00bf2e80","getRoleAdmin(bytes32)":"248a9ca3","getSupportedOptionTypes(uint32)":"26e67a37","grantRole(bytes32,address)":"2f2ff15d","hasAcl(address)":"2de11376","hasRole(bytes32,address)":"91d14854","paused()":"5c975abb","priceFeed()":"741bef1a","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDefaultMultiplierBps(uint16)":"c358de0a","setPaused(bool)":"16c38b3c","setPriceFeed(address)":"724e78da","setSupportedOptionTypes(uint32,uint8[])":"cd88b903","setWorkerFeeLib(address)":"c7b2370b","supportsInterface(bytes4)":"01ffc9a7","withdrawFee(address,address,uint256)":"1095b6d7","withdrawToken(address,address,uint256)":"01e33667","workerFeeLib()":"c416aa51"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer_NativeFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Transfer_ToAddressIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_OnlyMessageLib\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Worker_RoleRenouncingDisabled\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"multiplierBps\",\"type\":\"uint16\"}],\"name\":\"SetDefaultMultiplierBps\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"name\":\"SetPriceFeed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint8[]\",\"name\":\"optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"SetSupportedOptionTypes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"workerLib\",\"type\":\"address\"}],\"name\":\"SetWorkerLib\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lib\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowlistSize\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultMultiplierBps\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"getSupportedOptionTypes\",\"outputs\":[{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"hasAcl\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceFeed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_multiplierBps\",\"type\":\"uint16\"}],\"name\":\"setDefaultMultiplierBps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_paused\",\"type\":\"bool\"}],\"name\":\"setPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_priceFeed\",\"type\":\"address\"}],\"name\":\"setPriceFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint8[]\",\"name\":\"_optionTypes\",\"type\":\"uint8[]\"}],\"name\":\"setSupportedOptionTypes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_workerFeeLib\",\"type\":\"address\"}],\"name\":\"setWorkerFeeLib\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lib\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"workerFeeLib\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_admins\":\"array of admin addresses that are granted the ADMIN_ROLE\",\"_defaultMultiplierBps\":\"default multiplier for worker fee\",\"_messageLibs\":\"array of message lib addresses that are granted the MESSAGE_LIB_ROLE\",\"_priceFeed\":\"price feed address\",\"_roleAdmin\":\"address that is granted the DEFAULT_ADMIN_ROLE (can grant and revoke all roles)\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasAcl(address)\":{\"details\":\"Access control list using allowlist and denylist1) if one address is in the denylist -> deny2) else if address in the allowlist OR allowlist is empty (allows everyone)-> allow3) else deny\",\"params\":{\"_sender\":\"address to check\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceRole(bytes32,address)\":{\"details\":\"overrides AccessControl to disable renouncing of roles\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDefaultMultiplierBps(uint16)\":{\"params\":{\"_multiplierBps\":\"default multiplier for worker fee\"}},\"setPaused(bool)\":{\"details\":\"flag to pause execution of workers (if used with whenNotPaused modifier)\",\"params\":{\"_paused\":\"true to pause, false to unpause\"}},\"setPriceFeed(address)\":{\"params\":{\"_priceFeed\":\"price feed address\"}},\"setWorkerFeeLib(address)\":{\"params\":{\"_workerFeeLib\":\"worker fee lib address\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"withdrawFee(address,address,uint256)\":{\"details\":\"supports withdrawing fee from ULN301, ULN302 and more\",\"params\":{\"_amount\":\"amount to withdraw\",\"_lib\":\"message lib address\",\"_to\":\"address to withdraw fee to\"}},\"withdrawToken(address,address,uint256)\":{\"details\":\"supports withdrawing token from the contract\",\"params\":{\"_amount\":\"amount to withdraw\",\"_to\":\"address to withdraw token to\",\"_token\":\"token address\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol\":\"WorkerMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol\":{\"keccak256\":\"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534\",\"dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol\":{\"keccak256\":\"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0\",\"dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL\"]},\"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol\":{\"keccak256\":\"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1\",\"dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"type":"error","name":"Transfer_NativeFailed"},{"inputs":[],"type":"error","name":"Transfer_ToAddressIsZero"},{"inputs":[],"type":"error","name":"Worker_NotAllowed"},{"inputs":[],"type":"error","name":"Worker_OnlyMessageLib"},{"inputs":[],"type":"error","name":"Worker_RoleRenouncingDisabled"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"uint16","name":"multiplierBps","type":"uint16","indexed":false}],"type":"event","name":"SetDefaultMultiplierBps","anonymous":false},{"inputs":[{"internalType":"address","name":"priceFeed","type":"address","indexed":false}],"type":"event","name":"SetPriceFeed","anonymous":false},{"inputs":[{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"uint8[]","name":"optionTypes","type":"uint8[]","indexed":false}],"type":"event","name":"SetSupportedOptionTypes","anonymous":false},{"inputs":[{"internalType":"address","name":"workerLib","type":"address","indexed":false}],"type":"event","name":"SetWorkerLib","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"lib","type":"address","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allowlistSize","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultMultiplierBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"getSupportedOptionTypes","outputs":[{"internalType":"uint8[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"hasAcl","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"priceFeed","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"uint16","name":"_multiplierBps","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultMultiplierBps"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPaused"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPriceFeed"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint8[]","name":"_optionTypes","type":"uint8[]"}],"stateMutability":"nonpayable","type":"function","name":"setSupportedOptionTypes"},{"inputs":[{"internalType":"address","name":"_workerFeeLib","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setWorkerFeeLib"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_lib","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFee"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawToken"},{"inputs":[],"stateMutability":"view","type":"function","name":"workerFeeLib","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_admins":"array of admin addresses that are granted the ADMIN_ROLE","_defaultMultiplierBps":"default multiplier for worker fee","_messageLibs":"array of message lib addresses that are granted the MESSAGE_LIB_ROLE","_priceFeed":"price feed address","_roleAdmin":"address that is granted the DEFAULT_ADMIN_ROLE (can grant and revoke all roles)"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasAcl(address)":{"details":"Access control list using allowlist and denylist1) if one address is in the denylist -> deny2) else if address in the allowlist OR allowlist is empty (allows everyone)-> allow3) else deny","params":{"_sender":"address to check"}},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceRole(bytes32,address)":{"details":"overrides AccessControl to disable renouncing of roles"},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDefaultMultiplierBps(uint16)":{"params":{"_multiplierBps":"default multiplier for worker fee"}},"setPaused(bool)":{"details":"flag to pause execution of workers (if used with whenNotPaused modifier)","params":{"_paused":"true to pause, false to unpause"}},"setPriceFeed(address)":{"params":{"_priceFeed":"price feed address"}},"setWorkerFeeLib(address)":{"params":{"_workerFeeLib":"worker fee lib address"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"withdrawFee(address,address,uint256)":{"details":"supports withdrawing fee from ULN301, ULN302 and more","params":{"_amount":"amount to withdraw","_lib":"message lib address","_to":"address to withdraw fee to"}},"withdrawToken(address,address,uint256)":{"details":"supports withdrawing token from the contract","params":{"_amount":"amount to withdraw","_to":"address to withdraw token to","_token":"token address"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol":"WorkerMock"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol":{"keccak256":"0xa6b61913767305227576cc6da5067de4208f09a4f58bfbfe32beafdfae9869b1","urls":["bzz-raw://b7fce83bfb831f383606aee7f5ff68a330c8526bb1036f9ba0813d3e4fa8d534","dweb:/ipfs/QmR7zAqJkmCgBj6sguS8t2WthY5k6FwsakgH4UY11uqD4n"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol":{"keccak256":"0x621d6dd5b8b7e827351459fff4ac87c16ba4656757592cf67de8b199aea4cf9a","urls":["bzz-raw://345aa8c007ed8b96a74260d289545713f1d7180df270d67687e3a540a61fa5c0","dweb:/ipfs/QmNWCvpqSuar6UGLDVshUc7shUv3pt1J5FTf9VyZZ13wXL"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol":{"keccak256":"0x6c5bc31c117033dd35fa7ab3b13b1647a4b449c5f5b4cbff41bce8a63529ab97","urls":["bzz-raw://01aa1d3f3b8e2fd4b544312d96916b16b97e01ab740e2bae1137723b2f1a31b1","dweb:/ipfs/QmVMemJ4MSgi6y9NxDdSeB6QbJRtCWojJNxzs3CRLT56EA"],"license":"LZBL-1.2"},"node_modules/@openzeppelin/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd","urls":["bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc","dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":82} \ No newline at end of file diff --git a/packages/onft-evm/out/build-info/237ebf7e30c2451ac4ba3bebd8e90814.json b/packages/onft-evm/out/build-info/237ebf7e30c2451ac4ba3bebd8e90814.json deleted file mode 100644 index c6c521847..000000000 --- a/packages/onft-evm/out/build-info/237ebf7e30c2451ac4ba3bebd8e90814.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"237ebf7e30c2451ac4ba3bebd8e90814","source_id_to_path":{"0":"contracts/libs/ONFTComposeMsgCodec.sol","1":"contracts/onft1155/ONFT1155.sol","2":"contracts/onft1155/ONFT1155Core.sol","3":"contracts/onft1155/interfaces/IONFT1155.sol","4":"contracts/onft1155/libs/ONFT1155MsgCodec.sol","5":"contracts/onft721/ONFT721.sol","6":"contracts/onft721/ONFT721A.sol","7":"contracts/onft721/ONFT721Adapter.sol","8":"contracts/onft721/ONFT721Core.sol","9":"contracts/onft721/interfaces/IONFT721.sol","10":"contracts/onft721/libs/ONFT721MsgCodec.sol","11":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/MessageLibBase.sol","12":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/ReceiveLibBaseE2.sol","13":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBase.sol","14":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/SendLibBaseE2.sol","15":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutor.sol","16":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IExecutorFeeLib.sol","17":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroExecutor.sol","18":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroPriceFeed.sol","19":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/ILayerZeroTreasury.sol","20":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/interfaces/IWorker.sol","21":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/libs/SafeCall.sol","22":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/ReceiveUlnBase.sol","23":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/SendUlnBase.sol","24":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/UlnBase.sol","25":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVN.sol","26":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IDVNFeeLib.sol","27":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/ILayerZeroDVN.sol","28":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/interfaces/IReceiveUlnE2.sol","29":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/DVNOptions.sol","30":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/libs/UlnOptions.sol","31":"node_modules/@layerzerolabs/lz-evm-messagelib-v2/contracts/uln/uln301/interfaces/IUltraLightNode301.sol","32":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol","33":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppCore.sol","34":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppReceiver.sol","35":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OAppSender.sol","36":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppComposer.sol","37":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppCore.sol","38":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppMsgInspector.sol","39":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppOptionsType3.sol","40":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/interfaces/IOAppReceiver.sol","41":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OAppOptionsType3.sol","42":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol","43":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/OAppPreCrimeSimulator.sol","44":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol","45":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/interfaces/IPreCrime.sol","46":"node_modules/@layerzerolabs/lz-evm-oapp-v2/contracts/precrime/libs/Packet.sol","47":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessageLibManager.sol","48":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingChannel.sol","49":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingComposer.sol","50":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/MessagingContext.sol","51":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol","52":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol","53":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol","54":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol","55":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol","56":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol","57":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol","58":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol","59":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol","60":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol","61":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/CalldataBytesLib.sol","62":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Errors.sol","63":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/GUID.sol","64":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/Transfer.sol","65":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/BlockedMessageLib.sol","66":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/BitMaps.sol","67":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/ExecutorOptions.sol","68":"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol","69":"node_modules/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol","70":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/OptionsHelper.sol","71":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/TestHelperOz5.sol","72":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNFeeLibMock.sol","73":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/DVNMock.sol","74":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/EndpointV2Mock.sol","75":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorFeeLibMock.sol","76":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ExecutorMock.sol","77":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/MultiSigMock.sol","78":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/PriceFeedMock.sol","79":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/ReceiveUln302Mock.sol","80":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SendUln302Mock.sol","81":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/SimpleMessageLibMock.sol","82":"node_modules/@layerzerolabs/test-devtools-evm-foundry/contracts/mocks/WorkerMock.sol","83":"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol","84":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol","85":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol","86":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol","87":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol","88":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol","89":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol","90":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol","91":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol","92":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol","93":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol","94":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol","95":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol","96":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol","97":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol","98":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol","99":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol","100":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol","101":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol","102":"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol","103":"node_modules/@openzeppelin/contracts/access/AccessControl.sol","104":"node_modules/@openzeppelin/contracts/access/IAccessControl.sol","105":"node_modules/@openzeppelin/contracts/access/Ownable.sol","106":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","107":"node_modules/@openzeppelin/contracts/token/ERC1155/ERC1155.sol","108":"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155.sol","109":"node_modules/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","110":"node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol","111":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","112":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","113":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","114":"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol","115":"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol","116":"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","117":"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","118":"node_modules/@openzeppelin/contracts/utils/Address.sol","119":"node_modules/@openzeppelin/contracts/utils/Arrays.sol","120":"node_modules/@openzeppelin/contracts/utils/Context.sol","121":"node_modules/@openzeppelin/contracts/utils/Pausable.sol","122":"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol","123":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","124":"node_modules/@openzeppelin/contracts/utils/Strings.sol","125":"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol","126":"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol","127":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","128":"node_modules/@openzeppelin/contracts/utils/math/Math.sol","129":"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol","130":"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol","131":"node_modules/@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol","132":"node_modules/erc721a/contracts/ERC721A.sol","133":"node_modules/erc721a/contracts/IERC721A.sol","134":"node_modules/solidity-bytes-utils/contracts/BytesLib.sol","135":"test/mocks/ComposerMock.sol","136":"test/mocks/InspectorMock.sol","137":"test/onft/ONFTBaseTestHelper.sol","138":"test/onft/onft1155/ONFT1155Performance.t.sol","139":"test/onft/onft1155/mocks/ONFT1155Mock.sol","140":"test/onft/onft721/ONFT721.t.sol","141":"test/onft/onft721/ONFT721Base.sol","142":"test/onft/onft721/mocks/ERC721Mock.sol","143":"test/onft/onft721/mocks/ONFT721AdapterMock.sol","144":"test/onft/onft721/mocks/ONFT721Mock.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/packages/onft-evm/out/console.sol/console.json b/packages/onft-evm/out/console.sol/console.json deleted file mode 100644 index 8fb3f211c..000000000 --- a/packages/onft-evm/out/console.sol/console.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200623ef5014b8bd2e73f651b266854560379688c6fa9c3dbe3e7f09ca7b0b3f1364736f6c63430008160033","sourceMap":"66:66622:97:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;66:66622:97;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200623ef5014b8bd2e73f651b266854560379688c6fa9c3dbe3e7f09ca7b0b3f1364736f6c63430008160033","sourceMap":"66:66622:97:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol\":\"console\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol":"console"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"}},"version":1},"id":97} \ No newline at end of file diff --git a/packages/onft-evm/out/console2.sol/console2.json b/packages/onft-evm/out/console2.sol/console2.json deleted file mode 100644 index db041d099..000000000 --- a/packages/onft-evm/out/console2.sol/console2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122005cdf45b0a6c9c67c977be7017d6506778f38ae18730c84cfc04eb62616b327464736f6c63430008160033","sourceMap":"525:69152:98:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;525:69152:98;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122005cdf45b0a6c9c67c977be7017d6506778f38ae18730c84cfc04eb62616b327464736f6c63430008160033","sourceMap":"525:69152:98:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"The original console.sol uses `int` and `uint` for computing function selectors, but it should use `int256` and `uint256`. This modified version fixes that. This version is recommended over `console.sol` if you don't need compatibility with Hardhat as the logs will show up in forge stack traces. If you do need compatibility with Hardhat, you must use `console.sol`. Reference: https://github.com/NomicFoundation/hardhat/issues/2178\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":\"console2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":"console2"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"}},"version":1},"id":98} \ No newline at end of file diff --git a/packages/onft-evm/out/draft-IERC6093.sol/IERC1155Errors.json b/packages/onft-evm/out/draft-IERC6093.sol/IERC1155Errors.json deleted file mode 100644 index b459ccf4d..000000000 --- a/packages/onft-evm/out/draft-IERC6093.sol/IERC1155Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC1155InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidArrayLength","inputs":[{"name":"idsLength","type":"uint256","internalType":"uint256"},{"name":"valuesLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155MissingApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC1155InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC1155InvalidApprover"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"type":"error","name":"ERC1155InvalidArrayLength"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC1155InvalidOperator"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC1155InvalidSender"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC1155MissingApprovalForAll"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":"IERC1155Errors"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"}},"version":1},"id":106} \ No newline at end of file diff --git a/packages/onft-evm/out/draft-IERC6093.sol/IERC20Errors.json b/packages/onft-evm/out/draft-IERC6093.sol/IERC20Errors.json deleted file mode 100644 index 7af8090c8..000000000 --- a/packages/onft-evm/out/draft-IERC6093.sol/IERC20Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":"IERC20Errors"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"}},"version":1},"id":106} \ No newline at end of file diff --git a/packages/onft-evm/out/draft-IERC6093.sol/IERC721Errors.json b/packages/onft-evm/out/draft-IERC6093.sol/IERC721Errors.json deleted file mode 100644 index b0187d77f..000000000 --- a/packages/onft-evm/out/draft-IERC6093.sol/IERC721Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":"IERC721Errors"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"}},"version":1},"id":106} \ No newline at end of file diff --git a/packages/onft-evm/out/safeconsole.sol/safeconsole.json b/packages/onft-evm/out/safeconsole.sol/safeconsole.json deleted file mode 100644 index 7450d7306..000000000 --- a/packages/onft-evm/out/safeconsole.sol/safeconsole.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205e3d539bb02b055934ad1548b96c1e264f8e11e7c0200c04ab7eac52ab3b964464736f6c63430008160033","sourceMap":"163:397734:102:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;163:397734:102;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205e3d539bb02b055934ad1548b96c1e264f8e11e7c0200c04ab7eac52ab3b964464736f6c63430008160033","sourceMap":"163:397734:102:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"philogy \",\"details\":\"Code generated automatically by script.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol\":\"safeconsole\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol":"safeconsole"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"id":102} \ No newline at end of file diff --git a/packages/onft-evm/out/test.sol/DSTest.json b/packages/onft-evm/out/test.sol/DSTest.json deleted file mode 100644 index fcaeb120a..000000000 --- a/packages/onft-evm/out/test.sol/DSTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526000805460ff1916600117905534801561001d57600080fd5b5061024e8061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063ba414fa61461003b578063fa7626d414610057575b600080fd5b610043610064565b604051901515815260200160405180910390f35b6000546100439060ff1681565b60008054610100900460ff16156100845750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561018a5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091610112917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016101bf565b60408051601f198184030181529082905261012c916101e3565b6000604051808303816000865af19150503d8060008114610169576040519150601f19603f3d011682016040523d82523d6000602084013e61016e565b606091505b509150508080602001905181019061018691906101f6565b9150505b919050565b6000815160005b818110156101b05760208185018101518683015201610196565b50600093019283525090919050565b6001600160e01b03198316815260006101db600483018461018f565b949350505050565b60006101ef828461018f565b9392505050565b60006020828403121561020857600080fd5b815180151581146101ef57600080fdfea26469706673582212200ab3e51b065e60aa24f77e7f312c84fdcdff249a3eda7d2baf154cc51c96baa964736f6c63430008160033","sourceMap":"715:19781:83:-:0;;;1572:26;;;-1:-1:-1;;1572:26:83;1594:4;1572:26;;;715:19781;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063ba414fa61461003b578063fa7626d414610057575b600080fd5b610043610064565b604051901515815260200160405180910390f35b6000546100439060ff1681565b60008054610100900460ff16156100845750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561018a5760408051737109709ecfa91a80626ff3989d68f67f5b1dd12d602082018190526519985a5b195960d21b82840152825180830384018152606083019093526000929091610112917f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4916080016101bf565b60408051601f198184030181529082905261012c916101e3565b6000604051808303816000865af19150503d8060008114610169576040519150601f19603f3d011682016040523d82523d6000602084013e61016e565b606091505b509150508080602001905181019061018691906101f6565b9150505b919050565b6000815160005b818110156101b05760208185018101518683015201610196565b50600093019283525090919050565b6001600160e01b03198316815260006101db600483018461018f565b949350505050565b60006101ef828461018f565b9392505050565b60006020828403121561020857600080fd5b815180151581146101ef57600080fdfea26469706673582212200ab3e51b065e60aa24f77e7f312c84fdcdff249a3eda7d2baf154cc51c96baa964736f6c63430008160033","sourceMap":"715:19781:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584;;;:::i;:::-;;;179:14:145;;172:22;154:41;;142:2;127:18;1819:584:83;;;;;;;1572:26;;;;;;;;;1819:584;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:83;;;;;;;;1819:584::o;1869:528::-;1941:17;2997:42;2985:55;3066:16;1980:374;;2196:43;;;1671:64;2196:43;;;380:51:145;;;-1:-1:-1;;;447:18:145;;;440:34;2196:43:83;;;;;;;;;353:18:145;;;2196:43:83;;;-1:-1:-1;;1671:64:83;;2086:175;;2135:34;;2086:175;;;:::i;:::-;;;;-1:-1:-1;;2086:175:83;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:83:o;485:322:145:-;526:3;564:5;558:12;588:1;598:128;612:6;609:1;606:13;598:128;;;709:4;694:13;;;690:24;;684:31;671:11;;;664:52;627:12;598:128;;;-1:-1:-1;781:1:145;745:16;;770:13;;;-1:-1:-1;745:16:145;;485:322;-1:-1:-1;485:322:145:o;812:278::-;-1:-1:-1;;;;;;997:33:145;;985:46;;967:3;1047:37;1081:1;1072:11;;1064:6;1047:37;:::i;:::-;1040:44;812:278;-1:-1:-1;;;;812:278:145:o;1095:189::-;1224:3;1249:29;1274:3;1266:6;1249:29;:::i;:::-;1242:36;1095:189;-1:-1:-1;;;1095:189:145:o;1289:277::-;1356:6;1409:2;1397:9;1388:7;1384:23;1380:32;1377:52;;;1425:1;1422;1415:12;1377:52;1457:9;1451:16;1510:5;1503:13;1496:21;1489:5;1486:32;1476:60;;1532:1;1529;1522:12","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol\":\"DSTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol":"DSTest"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"}},"version":1},"id":83} \ No newline at end of file diff --git a/packages/onft-evm/out/test.sol/Test.json b/packages/onft-evm/out/test.sol/Test.json deleted file mode 100644 index 60a9f227e..000000000 --- a/packages/onft-evm/out/test.sol/Test.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/\",\":erc721a/=node_modules/erc721a/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/=node_modules/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e\",\"dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e\",\"dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32\",\"dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol\":{\"keccak256\":\"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765\",\"dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol\":{\"keccak256\":\"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe\",\"dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1\",\"dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070\",\"dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh\"]},\"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/","erc721a/=node_modules/erc721a/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol":"Test"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/src/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdChains.sol":{"keccak256":"0x373ec410dbf6bc88f4bb9f03a1bfa7020cecd1afc9c93bc119e80663b02fdc70","urls":["bzz-raw://e602335507a48e0c01bd5979705bc4fb468351bd00c914bf266f17b38b64976e","dweb:/ipfs/Qmdb7t7ELWafv5B8xVwD4BxGPAKRbynj9Eri8GFZQuYw4s"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdJson.sol":{"keccak256":"0x8f914dbd016bd0e318fe2b8bd556fbc8256c7cddc24e3e4fcb9f3c1c1935592d","urls":["bzz-raw://19e704df493dde38323303b07d18cadfeb4dcadf1ddc2301add4aea9474fbb5e","dweb:/ipfs/QmZasuGiLK8LHwWtvpqEBxUR6QFY6GdzLMTJ9q7CMf8PNZ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStorage.sol":{"keccak256":"0x4298f3f4cedaedb07029820b1daad2c03af45379559392201f7bf3ec71105811","urls":["bzz-raw://6e062f36d8d1ae3c383ef8975757926eaa9c4de3a92b5f1fe2d12748bcd8db32","dweb:/ipfs/QmcWkv3ia5Ew4DZNcudMNSTNXZ3W2QiXTZunRd44e9BT8z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Test.sol":{"keccak256":"0x39b1729d5868c8e94ab8af16751eb500a17fe3870dc627d2b7ddcd5df18d7ad0","urls":["bzz-raw://1568c82aff125cc4b0fc168be9d67ac313f469a3c7405c5493caecaaaecfb765","dweb:/ipfs/QmXByuZReJsdu1jDcxj1FcmpcUnzoBcqybn9kWgDAECWri"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/Vm.sol":{"keccak256":"0x87ba9f3edc254e529db9e3129c954391adcc7fc8574203767979d8d2f1e724b9","urls":["bzz-raw://4d16c08d80d9f2869deb6350642cf5af624d21fce6b3b023abbcdedc62e195fe","dweb:/ipfs/QmURpnnFECPKt3i7P7jQRZpr4ZBXjRGcZ9KzcbKzsgYR2W"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xd8703f49411737ecf8d411f8fa66b2bf0ef972ba28b7a4adf1748c63df1bf682","urls":["bzz-raw://b7c10a6b8112f6fe3cdccb6240ecd382765216b1a82e9a86a0fec8f5e09eadd1","dweb:/ipfs/QmdRvPCU4RkjMHsTu3Ric1ZEF1AWDNLp78unFC5aWP17xq"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xa24468244abb66e663fb7eee6463cb518eb9a7c14e1071548ff564cca825bbca","urls":["bzz-raw://145585a2194aa6e2d30edfe709ef2814e20b1b4540469aa6a8f50c841fcb9070","dweb:/ipfs/QmZrwbvtpbtTxqbW5phUrwb3F1tBiPSQc6jZJAXBfsBsAh"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/src/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file